【2G模组Air202开发】Lua脚本编程实现MQTT协议连接Tlink平台(五)
整体思路:
- 在TLINK平台上创建一个MQTT协议的设备
- 对Air202模组进行lua编程并烧录
- 使用串口向Air202模组发送TLINK平台规定格式的payload数据,Air202接收到数据后进行封装并转发
- 观察TLINK平台的设备数据并下发数据观察串口接收到的数据
因为篇幅过长,我这里分成5篇来详细记录。
【2G模组Air202开发】Lua脚本编程实现MQTT协议连接Tlink平台(一)
【2G模组Air202开发】Lua脚本编程实现MQTT协议连接Tlink平台(二)
【2G模组Air202开发】Lua脚本编程实现MQTT协议连接Tlink平台(三)
【2G模组Air202开发】Lua脚本编程实现MQTT协议连接Tlink平台(四)
【2G模组Air202开发】Lua脚本编程实现MQTT协议连接Tlink平台(五)
ntp和Rssi的获取比较简单:
-- ntp功能模块采用多个免费公共的NTP服务器来同步时间
-- 并不能保证任何时间任何地点都能百分百同步到正确的时间
-- 所以,如果用户项目中的业务逻辑严格依赖于时间同步功能
-- 则不要使用使用本功能模块,建议使用自己的应用服务器来同步时间
require"ntp"
require"misc"
require "net"
require "utils"
local function prinTime()
local tm = misc.getClock()
local time = "time = " .. string.format("%04d/%02d/%02d,%02d:%02d:%02d", tm.year, tm.month, tm.day, tm.hour, tm.min, tm.sec)
local rssi = "Rssi = " .. string.format("%d",net.getRssi())
log.info("ntpTask.Time and Rssi", time,rssi)
uart.write(1, "\r\n ntpTask.Time and Rssi -->", time," ",rssi)
end
sys.timerLoopStart(prinTime,5000)
ntp.timeSync()
通过对应的函数获取即可,这里把获取和串口打印封装成了一个功能块,然后创建了一个5s定时器定时执行这个功能呢块。
相关的api:
接下来把上述的代码烧到板子后就可看到结果了:
设备给平台发送消息
然后在把开关的状态加上,这里只是模拟一个
平台给设备发送消息
来个更直观点的,平台把开关打开,对应的就有“switcher”:“1”。
至此整个项目就完成了。
By Urien 2019年7月1日 17:19:43