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

2018-10-4 09:55 2813 1 1 分类: 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条评论)

登录后参与讨论
相关推荐阅读
esad0 2020-05-14 13:58
关于读写ic卡的程序注释
         IC卡,RFID卡,M1卡。E:\eDiary\2020\4\PIC18F97J60_SPI.cE:\eDiary\202...
esad0 2020-02-10 19:32
NTP 不好用
[2020-02-10 19:29:09.704]: [I]-[testNtp.printTime] 2012/06/01,11:17:12[2020-02-10 19:29:10.701]: [I]...
esad0 2020-02-09 15:27
用AIR202 在ONENET 上位置定位
onenet 有位置的增值服务。是收费的。 但是ONENET 还是很厚道的, 每天300万以下的定位服务是不收费的。 鉴于我的设备是固定安装的, 因此只使用应用管理中的  地图 ...
esad0 2020-02-06 10:44
python 做智力题
和儿子一块学PYTHON .   感觉和C 语言基础的没有什么不同。感觉还不如C语言灵活。编程语言,一通百通。题目见下图。结题思路:   这是一个最简单的密码加...
esad0 2019-12-31 15:23
超声波模块开放笔记
       这是简单文章。       市场上的超声波模块大部分和我DIY的一样 是用HOLTEK的45F23A做的。...
广告
我要评论
0
1
广告
关闭 热点推荐上一条 /5 下一条