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条评论)
登录后参与讨论