原创 MCU 串口发送数据 通过mqtt协议的AIR202 连接到ONENET.

2018-10-4 09:55 5729 19 2 分类: MCU/ 嵌入式 文集: AIR202
 1 首先  AIR202必须连接ONENET的MQTT服务器。 如果不会,请见我上一篇博文。

 2 AIR202的DEMO中有 MQTT和UART的DEMO.拼接起来,做个透传就可以了。  
  
  3先看接收。  想要接收,必须先订阅。 

    订阅的主题 分别是  
SetMyIP,
SetMyMask,
SetMyGate,
SetMyPort,
EnterStopState,
SetTemperiture,
SetTime,
SetLampTime,
SetLampMode,
SetFanMode,
SetLightBoxTime,
LUAT的API   订阅:
if mqttClient:subscribe({["SetMyIP"]=0,
                         ["SetMyMask"]=1,
                         ["SetMyGate"] =2,
["SetMyPort"] = 3,
["EnterStopState"]=4,
["SetTemperiture"]=5,
["SetTime"]=6,
["SetLampTime"]=7,
["SetLampMode"]=8,
["SetFanMode"]=9,
["SetLightBoxTime"]=10,})   then



4  发布 

LUAT的发布格式如下:
mqttc:publish(topic, payload[, qos=0][, retain=0])

参数
参数 释义
topic string,UTF8编码的字符串
payload string,用户自己控制payload的编码,mqtt.lua不会对payload做任何编码转换
qos number,此参数可选,默认值为: 0。0/1/2, default 0
retain number,此参数可选,默认值为: 0。0或者1
返回值
bool 发布成功返回true,失败返回false

-------------------------------------------------------------------------
设备端发布:
    ip,mask gate,port,
     LockSts
     FanSts
     LampSts
     LightBoxSts
   
mqttc:publish(topic, payload[, qos=0][, retain=0])
mqttcClient:publish("ip","{\"IP\":\"192.168.1.200\"}",0,{cb=pubQos0TaskCb})
mqttcClient:publish("mask","{\"mask\":\"192.168.1.200\"}",1,{cb=pubQos1TaskCb})
mqttcClient:publish("Gate","{\"Gate\":\"192.168.1.1\"}",2,{cb=pubQos2TaskCb})
mqttcClient:publish("port","{\"port\":\"4099\"}",3,{cb=pubQos3TaskCb})

mqttcClient:publish("LockSts","{\"LockSts\":\"1\"}",4,{cb=pubQos4TaskCb})   --LockSts,门磁,锁头状态
mqttcClient:publish("FanSts","{\"FanSts\":\"1\",\"SetTemperiture\":"23"}",4,{cb=pubQos4TaskCb}) --anMode,FanSts,SetTemp,CurrentTemp
mqttcClient:publish("LampSts","{\"LampSts\":\"1\"}",5,{cb=pubQos5TaskCb})    --LampMode,LampSts,LampTime
mqttcClient:publish("LightBoxSts","{\"LightBoxSts\":\"1\"}",6,{cb=pubQos6TaskCb})  --LightBoxSts,LightBoxTime
mqttcClient:publish("SenserSts","{\"SenserSts\":\"1\"}",7,{cb=pubQos7TaskCb})    --SenserMode,SenserSts

5 MCU的订阅不用管, AIR202 已经订阅了。   AIR202 接收到订阅的数据 PAYLOAD ,串口发送到MCU.
   需要MCU 的JOSN解析。

6 MCU的发布, 需要编译成JOSN 格式,UART 发送到AIR202,由AIR202 发送出去。
AIR202 在连接好服务器后,只负责订阅主题,然后剩下的就是透传功能了。
LUAT 中API 有
json.encode()
json.decode()
因此可以把JSON的编译和解析 放到AIR202 中去做。

7  MCU 和AIR202的匹配问题。。。。通过设备号或企业号。

8 串口的格式  1 CMD  + DATA + 0XC0+\N
 ---------------------------------------------------------------2018 1004   工作是快乐的
      
  






文章评论0条评论)

登录后参与讨论
我要评论
0
19
关闭 站长推荐上一条 /2 下一条