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程序中常见的与内存有关的错误
