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))
经验分享 程序员 微信小程序 职场和发展