企业宣传,产品推广,广告招商,广告投放联系seowdb

MQTT应用看这篇!合宙Air780EP (mqtt应用领域)

接口: mqttc:publish(topic,> 传入值类型 解释 主题,必填 消息,必填,但长度可以是0 消息级别 0/1 默认0 是否存档, 0/1,默认0

返回值

返回值类型 解释
消息id, 当qos为1或2时会有效值. 若底层返回是否, 会返回nil

7. 接收消息

8. 断开服务器的连接

接口: ​ mqttc:disconnect()

参数:

返回值

返回值类型 解释
发起成功返回true, 否则返回false

示例

本文以 demo_luaLuatOSdemomqtt 这个demo为例作为演示,以MQTTX工具来测试MQTT运行状况

1.在MQTTX软件上建立连接

2.在MQTTX软件上添加订阅

注意 :订阅主题格式要求默认为 /luatos/pub/ 加模块的IMEI号,例如 /luatos/pub/868488076506128

3.设置MQTTX软件上发布消息的主题

注意 :格式要求默认为 /luatos/sub/ 加模块的IMEI号,例如 /luatos/sub/868488076506128

4.烧录脚本,上电开机后模块会自动向服务器发送消息,这是代码默认设置的,若不需要可以删掉

5.模块向服务器发送消息,通过Luatools软件可以看到

MQTT单链接示例

在代码开头部分,可根据自己的服务器修改指定的参数

注意 :user_name、password在有些服务器上是可以不传入的,或者是对传入的值没有要求限制。要根据实际服务器要求来填写

--根据自己的服务器修改以下参数local mqtt_host = "lbsmqtt.airm2m.com"local mqtt_port = 1884local mqtt_isssl = falselocal client_id = "abc"local user_name = "user"local password = "password"local pub_topic = "/luatos/pub/" .. (.unique_id():toHex())-- 该变量在下方代码有重新赋值,根据实际应用场景,可自行修改脚本逻辑local sub_topic = "/luatos/sub/" .. (mcu.unique_id():toHex())-- 该变量在下方代码有重新赋值,根据实际应用场景,可自行修改脚本逻辑

此task实现的是mqtt的连接、订阅消息、发布消息的流程。

要先等待网络就绪之后才可进行mqtt后续操作

待网络就绪之后,根据代码编写情况此时client_id、pub_topic和sub_topic会发生变化,会覆盖掉代码开头部分时的配置,这点需要注意。device_id为模块的IMEI号

sys.taskInit(function()-- 等待联网local ret, device_id = sys.waitUntil("net_ready")-- 下面的是mqtt的参数均可自行修改-- client_id = device_idpub_topic = "/luatos/pub/" .. device_idsub_topic = "/luatos/sub/" .. device_id-- 打印一下上报(pub)和下发(sub)的topic名称-- 上报: 设备 ---> 服务器-- 下发: 设备 <--- 服务器-- 可使用mqtt.x等客户端进行调试log.info("mqtt", "pub", pub_topic)log.info("mqtt", "sub", sub_topic)-- 打印一下支持的加密套件, 通常来说, 固件已包含常见的99%的加密套件-- if crypto.cipher_suites then--log.info("cipher", "suites", json.encode(crypto.cipher_suites()))-- endif mqtt == nil thenwhile 1 dosys.wait(1000)log.info("bsp", "本bsp未适配mqtt库, 请查证")endend--------------------------------------------- MQTT 演示代码 ---------------------------------------------------mqttc = mqtt.create(nil, mqtt_host, mqtt_port, mqtt_isssl, ca_file)mqttc:auth(client_id,user_name,password) -- client_id必填,其余选填-- mqttc:keepalive(240) -- 默认值240smqttc:autoreconn(true, 3000) -- 自动重连机制mqttc:on(function(mqtt_client, event, target="_blank">透传,利用串口工具给服务器发消息或者接收来着服务器的消息

© 版权声明
评论 抢沙发
加载中~
每日一言
不怕万人阻挡,只怕自己投降
Not afraid of people blocking, I'm afraid their surrender