Skip to content
Snippets Groups Projects
Commit c49f91e2 authored by REMY Laurent's avatar REMY Laurent
Browse files

First deployment

parent d5a441f0
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/env python
from asyncore import write
from datetime import datetime
from influxdb_client import InfluxDBClient, Point, WritePrecision
from influxdb_client.client.write_api import SYNCHRONOUS
import json
class influxdb_api():
def __init__(self,db_url : str, db_token : str) -> None:
self.token = db_token
self.org = "AIPL"
self.bucket = "SAC40"
self.url = db_url
print("InfluxDB Starting .. ",db_url)
self.connect()
def connect(self):
self.client = InfluxDBClient(url=self.url, token=self.token, org=self.org)
self.write_api = self.client.write_api(write_options=SYNCHRONOUS)
def write_point(self,point):
self.write_api.write(self.bucket, self.org, point)
def write_dist(self,dictionaire : dict):
tmp = { "measurement": "Position",
"tags": {"TAG_ID":str(dictionaire["id"])},
"fields": { "x":float(dictionaire["x"]),
"y":float(dictionaire["y"]),
"z":float(dictionaire["z"]),
#"json" :json.dumps(dictionaire),
"quality":dictionaire["quality"]},
"time": str(datetime.utcnow())}
self.write_point(tmp)
print(tmp)
def exe_query(self):
query = '''from(bucket: "SAC40")
|> range(start: -1m, stop: now())
|> filter(fn: (r) => r["_measurement"] == "Position")
|> filter(fn: (r) => r["_field"] == "x" or r["_field"] == "y" or r["_field"] == "z" or r["_field"] == "quality")
|> aggregateWindow(every: 1s, fn: last, createEmpty: false)
|> yield(name: "last")'''
tables = self.client.query_api().query(query, org=self.org)
for table in tables:
print("Table: ")
for record in table.records:
print("Record")
print(record)
def __del__(self):
print("Connextion close")
self.client.close()
if __name__ == "__main__":
print("Starting Influx")
influx = influxdb_api("127.0.0.1:8086","u5I9m5PzeRGe8bQe69zp_MIiMScm-UtPdXX9gGNd32T509TTlzPJYUlWU0GJU6XNqa86tiAfIzJpORMiC_wAOg==")
influx.connect()
influx.exe_query()
influx.client.close()
\ No newline at end of file
serial_port : "/dev/ttyACM0" serial_port : "/dev/ttyACM0"
db_url : "127.0.0.1:8086" db_url : "127.0.0.1:8086"
db_token : "9tgsHOjZ0RBtd2F2Ql8hkk7s_fN8ofeLGpTwyV-69RGm--Dk3UVy5hN44O4CtaxozWiX_deqglAOVuBTtK987g==" db_token : "u5I9m5PzeRGe8bQe69zp_MIiMScm-UtPdXX9gGNd32T509TTlzPJYUlWU0GJU6XNqa86tiAfIzJpORMiC_wAOg=="
mqtt_url : "127.0.0.1" mqtt_url : "127.0.0.1"
mqtt_port : 1883 mqtt_port : 1883
\ No newline at end of file
...@@ -17,7 +17,7 @@ class DWM1001_Driver(DWM1001_UART_API): ...@@ -17,7 +17,7 @@ class DWM1001_Driver(DWM1001_UART_API):
#if verbose : print(data) #if verbose : print(data)
if (len(data) == 8 and 'nan' not in data): if (len(data) == 8 and 'nan' not in data):
tmp = { "seat" : data[1], tmp = { "seat" : data[1],
"id" : data[2], "id" : str(data[2]),
"x" : float(data[3]), "x" : float(data[3]),
"y" : float(data[4]), "y" : float(data[4]),
"z" : float(data[5]), "z" : float(data[5]),
......
...@@ -4,6 +4,7 @@ from asyncore import write ...@@ -4,6 +4,7 @@ from asyncore import write
from datetime import datetime from datetime import datetime
from influxdb_client import InfluxDBClient, Point, WritePrecision from influxdb_client import InfluxDBClient, Point, WritePrecision
from influxdb_client.client.write_api import SYNCHRONOUS from influxdb_client.client.write_api import SYNCHRONOUS
import json
class influxdb_api(): class influxdb_api():
...@@ -24,13 +25,14 @@ class influxdb_api(): ...@@ -24,13 +25,14 @@ class influxdb_api():
def write_point(self,point): def write_point(self,point):
self.write_api.write(self.bucket, self.org, point) self.write_api.write(self.bucket, self.org, point)
def write_dist(self,dict : dict): def write_dist(self,dictionaire : dict):
tmp = { "measurement": "Position", tmp = { "measurement": "Position",
"tags": {"TAG_ID":dict["id"]}, "tags": {"TAG_ID":str(dictionaire["id"])},
"fields": { "x":dict["x"], "fields": { "x":float(dictionaire["x"]),
"y":dict["y"], "y":float(dictionaire["y"]),
"z":dict["z"], "z":float(dictionaire["z"]),
"quality":dict["quality"]}, "json" :json.dumps(dictionaire),
"quality":dictionaire["quality"]},
"time": str(datetime.utcnow())} "time": str(datetime.utcnow())}
self.write_point(tmp) self.write_point(tmp)
print(tmp) print(tmp)
......
...@@ -8,10 +8,6 @@ import asyncio,json ...@@ -8,10 +8,6 @@ import asyncio,json
config = read_yaml("DWM_config.yaml") config = read_yaml("DWM_config.yaml")
print(config) print(config)
driver = DWM1001_Driver(config["serial_port"])
# Set lep mode
driver.lep()
#Setup mqtt #Setup mqtt
mqtt = mqtt_client(config["mqtt_url"],config["mqtt_port"]) mqtt = mqtt_client(config["mqtt_url"],config["mqtt_port"])
...@@ -19,6 +15,12 @@ mqtt = mqtt_client(config["mqtt_url"],config["mqtt_port"]) ...@@ -19,6 +15,12 @@ mqtt = mqtt_client(config["mqtt_url"],config["mqtt_port"])
influx = influxdb_api(config["db_url"],config["db_token"]) influx = influxdb_api(config["db_url"],config["db_token"])
driver = DWM1001_Driver(config["serial_port"])
# Set lep mode
driver.lep()
async def main(): async def main():
while True: while True:
...@@ -29,7 +31,8 @@ async def main(): ...@@ -29,7 +31,8 @@ async def main():
mqtt.publish(r['id'],json.dumps(r)) mqtt.publish(r['id'],json.dumps(r))
influx.write_dist(r) influx.write_dist(r)
except KeyboardInterrupt: except KeyboardInterrupt:
driver.handleKeyboardInterrupt() driver.handleKeyboardInterrupt()
print("FIN")
return 1 return 1
time.sleep(0.05) time.sleep(0.05)
......
#!/usr/bin/env python
import time
from paho.mqtt import client as paho_mqtt_client
class mqtt_client():
def __init__(self,mqtt_url : str,mqtt_port : int) -> None:
self.MQTT_HOST = mqtt_url
self.MQTT_PORT = mqtt_port
self.MQTT_CLIENT_ID = 'Python-MQTT-client'
self.MQTT_USER = 'RPI4'
self.MQTT_PASSWORD = None
self.ROOT = '/AIP/DWM/TEST/'
print("MQTT Starting .. ",mqtt_url,mqtt_port)
self.mqtt_connect()
def mqtt_connect(self):
self.client = paho_mqtt_client.Client(self.MQTT_CLIENT_ID)
self.client.username_pw_set(self.MQTT_USER, self.MQTT_PASSWORD)
self.client.connect(self.MQTT_HOST, self.MQTT_PORT)
time.sleep(1)
def publish(self,topic,message):
try:
print(self.ROOT + topic + message)
self.client.publish(self.ROOT + topic,message,2,True)
# except:
#Reconnection
self.mqtt_connect()
if __name__ == '__main__':
mqtt = mqtt_client()
mqtt.publish("mqtt","coucou")
maps/aip_in.png

986 KiB

This diff is collapsed.
http://100.65.63.251:8891/lab?token=87843236d65826b45039e5ec0f4a8b6f51c6bfc05e785aac
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment