python 串口接收数据 发送至MQTT服务器
项目背景:
购买了一个雷达,检测室内人员,需要将雷达数据上传至云服务器保存、展示和分析。 由于雷达是购买的,只留下了usb口通讯,因此只能接在电脑上
设计方案:
使用python,接收来自串口的消息,并将雷达数据上传到云服务器, 主要使用到了pyserial和paho-mqtt这两个py的第三方库。
代码:
import serial from time import sleep import json import sys import os import paho.mqtt.client as mqtt import time sys.path.append(os.path.abspath(os.path.dirname(__file__) + / + ..)) sys.path.append("..") TASK_TOPIC = test # 客户端发布消息主题 client_id = time.strftime(%Y%m%d%H%M%S, time.localtime(time.time())) client = mqtt.Client(client_id, transport=tcp) client.connect("xxx.xxx.xxx.xxx", 1883, 60) # 第一个参数填入mqtt服务器ip,mqtt端口默认为1883,通信端口期keepalive默认60 client.loop_start() if __name__ == __main__: #需要修改此处的串口和波特率 serial = serial.Serial(COM9, 115200) if serial.isOpen() : print("open success") else : print("open failed") while True: #根据实际接收长度修改参数 data =serial.read(5) if data != : time_now = time.strftime(%Y-%m-%d %H-%M-%S, time.localtime(time.time())) #上传的数据包括串口接收数据和接收时间 payload = { "msg": "%s" % data, "data": "%s" % time_now} client.publish(TASK_TOPIC, json.dumps(payload, ensure_ascii=False)) print("Successful send message!") print("receive : ",data) print(type(data))
下一篇:
总结C程序中常见的与内存有关的错误