网易首页 > 网易号 > 正文 申请入驻

用几行代码5分钟实现EC800 4G MQTT 通信

0
分享至

EC800 4G MQTT 通信(推荐)

本教程参考于 FlexLua 官网,降低 IoT 硬件开发难度,零门槛 Lua 低代码编程技术开发 IoT 硬件。

前言:MQTT是一种基于TCP的物联网通信协议,在物联网领域应用非常广泛,基本上所有的云平台都支持设备以MQTT协议接入,所以如果您的设备支持MQTT连接,就可以很容易的对接各云平台(比如ONE NET、阿里云、腾讯云等)。CORE提供的MQTT库函数也十分简单,您只需根据各云平台的规则,在调用MQTT库函数时对传入的参数做相应的调整即可对接各家云平台。

一、本篇章例程实现功能描述

实现了4G模块通过MQTT协议接入OneNet(中移物联网)云平台。开发者可以参考本实例,针对各种云平台(阿里云、腾讯云,百度云等)只需调整代码中的参数即可实现对接。

二、 Core提供的MQTT功能介绍

使用Core提供的基于EC800 4G 模块的库函数能够很容易的将Core对接入云平台,涉及的库函数只有如下三个:

LIB_Cat1MqttEC800Config() --初始化Mqtt通信
LIB_Cat1MqttEC800RecvSub() --接收服务端(broker)下发的信息
LIB_Cat1MqttEC800SendPub() --向服务端(broker)发送信息

三、接线图


注意1:EC800 其他没到的引脚可以不用接。

注意2:上图中虽然是ML302,但和EC800完全兼容。

四、材料清单
  1. EC800 4G模块


五、完整例程代码 (以接入OneNet云平台为例)

本例程实现了通过MQTT协议向OneNet云平台发送实时温度和湿度数据,接收并解析OneNet云平台下发的json格式指令控制Core电路板上的LED2灯的亮灭。

(1)完整例程代码
--MQTT服务器地址(适用于ONE NET平台)
server_addr = "XXX" --中移物联网MQTT接入服务域名/ip地址
server_port = 1883
--MQTT 连接参数(适用于ONE NET平台)
mqtt_con_clientID = "TestDevice002"
mqtt_con_username = "353255"
mqtt_con_password = "version=2018-10-31&res=products%2F353255%2Fdevices%2FTestDevice002&et=1893427200&method=md5&sign=VNzqoi1o%2BSaqUOogFzUb6Q%3D%3D"
--MQTT topic相关参数(适用于ONE NET平台)
mqtt_sub_topic = "$sys/353255/TestDevice002/cmd/request/+"--订阅用
mqtt_pub_topic = "$sys/353255/TestDevice002/dp/post/json" --发布用
--设置EC800模块占用TX0、RX0、D5、D6引脚,MQTT模式,KeepAlive周期180秒,不开启GPS功能
LIB_Cat1MqttEC800Config("UART0","D5","HIGH","D6","HIGH",server_addr,server_port,mqtt_con_clientID,mqtt_con_username,mqtt_con_password,180,mqtt_sub_topic,"QOS0","NO_GPS")
--配置D9为普通输出,控制LED2
LIB_GpioOutputConfig("D9","STANDARD")
--使能系统10毫秒定时器开始工作
LIB_10msTimerConfig("ENABLE")
--变量初始化
cnt_10ms = 0--作为计时器用
cnt1_10ms = 0--作为计时器用
pub_id = 0
temprature = 0.00--用该变量模拟温度数据
humidity = 0.00--用该变量模拟湿度数据
--定义10ms中断回调函数
function LIB_10msTimerCallback()
cnt_10ms = cnt_10ms + 1
cnt1_10ms = cnt1_10ms + 1
temprature = temprature + 0.1--模拟温度动态变化
if temprature >= 60 then
temprature = 0
end
humidity = humidity + 0.2--模拟湿度动态变化
if humidity >= 100 then
humidity = 0
end
end
--开始大循环
while(GC(1) == true)
do
--查询是否收到服务器下发的cmd数据(已订阅的"$sys/353255/TestDevice002/cmd/request/+")
recv_flag,topic,data = LIB_Cat1MqttEC800RecvSub()
if recv_flag == 1 then
--根据json路径"$.LED"解析服务器下发的json文本,并执行LED亮灭操作
Json_Val = LIB_JsonParse(data, "$.LED")
--服务器下发的是"{"LED":0}"
if Json_Val == "0" then
LIB_GpioWrite("D9",1) --LED2灭
--服务器下发的是"{"LED":1}"
elseif Json_Val == "1" then
LIB_GpioWrite("D9",0) --LED2亮
--服务器下发的是"{"LED":2}"
elseif Json_Val == "2" then
LIB_GpioToggle("D9") --LED2亮灭切换
else
LIB_GpioWrite("D9",1) --LED2灭
end
--根据收到的topic中的cmdid应答服务器,
--将收到的topic中"request"替换成"response"后作为应答topic发给服务器
topic = string.gsub(topic,"request","response")
--应答服务器的内容可自定义,这里为"Got it!"
LIB_Cat1MqttEC800SendPub("QOS0", topic, "Got it!")
end
--每5秒发送温湿度度数据给server
if cnt_10ms >= 500 then
cnt_10ms = 0
pub_id = pub_id + 1
json_str = string.format("{\"id\":%d, \"dp\":{\"temperatrue\":[{\"v\": %.2f,}], \"humidity\":[{\"v\":%.2f,}]}}", pub_id, temprature, humidity)
--注意json_str的总长度不要超过150字节
LIB_Cat1MqttEC800SendPub("QOS0", mqtt_pub_topic, json_str) --publish
end
--每12秒打印一次4G模组信息(包含sim卡)
--注意:这里只是为了演示如何获取模组信息,实际应用中您可以根据您的需求查询即可,不需要一直查询
if cnt1_10ms >= 1200 then --12000ms
cnt1_10ms = 0
State,IMSI,ICCID,CSQ = LIB_Cat1StatusQuery()
print(string.format("module State: %s", State))
print(string.format("module IMSI: %s", IMSI))
print(string.format("module ICCID: %s", ICCID))
print(string.format("module CSQ: %d ", CSQ))
end
end

如果感兴趣,上面代码中出现的LIB开头的库函数可以在 API文档 中通过Ctrl+F查询。

(2)OneNet云平台配置

请参考网站上的《NBIOT M5311 MQTT 接入OneNet物联网平台》教程,这里就不详细介绍OneNet的接入方法。

同样针对其他云平台(阿里云、腾讯云,百度云等)的用法,调整代码中下面的参数,即可接入

--MQTT服务器地址(适用于ONE NET平台)
server_addr = "XXX" --中移物联网MQTT接入服务ip地址
server_port = 1883
--MQTT 连接参数(适用于ONE NET平台)
mqtt_con_clientID = "TestDevice002"
mqtt_con_username = "353255"
mqtt_con_password = "version=2018-10-31&res=products%2F353255%2Fdevices%2FTestDevice002&et=1893427200&method=md5&sign=VNzqoi1o%2BSaqUOogFzUb6Q%3D%3D"
--MQTT topic相关参数(适用于ONE NET平台)
mqtt_sub_topic = "$sys/353255/TestDevice002/cmd/request/+"--订阅用
mqtt_pub_topic = "$sys/353255/TestDevice002/dp/post/json" --发布用

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
7月15日入伏,今年是60年一遇的“热伏”还是“冷伏”?农谚咋说

7月15日入伏,今年是60年一遇的“热伏”还是“冷伏”?农谚咋说

爱下厨的阿椅
2024-06-16 10:52:56
突发!26岁国门离世,生命最后一战拿MVP

突发!26岁国门离世,生命最后一战拿MVP

足球大号
2024-06-16 11:57:02
拜登彻底失算!外媒:美国想卖,中国也不买了

拜登彻底失算!外媒:美国想卖,中国也不买了

趣说世界哈
2024-06-14 07:40:08
多位留学生证实韩国大学食堂限量一块肉,拿多就会被人冷眼相待

多位留学生证实韩国大学食堂限量一块肉,拿多就会被人冷眼相待

映射生活的身影
2024-06-13 23:20:16
笑麻了!男孩回家第一件事先喊妈上热搜,网友:谁的DNA又在动了

笑麻了!男孩回家第一件事先喊妈上热搜,网友:谁的DNA又在动了

阿燕姐说育儿
2024-06-16 11:42:53
广东女子吐槽婆婆做的饭菜,婚后5个月瘦23斤,网友:根本没法吃

广东女子吐槽婆婆做的饭菜,婚后5个月瘦23斤,网友:根本没法吃

香辛料细细品
2024-05-30 17:17:58
“不文明行为成过去式!”韩媒:访韩中国游客形象正逐渐改变

“不文明行为成过去式!”韩媒:访韩中国游客形象正逐渐改变

环球网资讯
2024-06-16 11:12:40
深圳一房企涉嫌违规裁员,监管部门介入,在建楼盘何去何从?

深圳一房企涉嫌违规裁员,监管部门介入,在建楼盘何去何从?

南方都市报
2024-06-15 22:22:18
《歌手》第六期收视率排名公布 ,那英垫底,孙楠第三,黑马夺冠

《歌手》第六期收视率排名公布 ,那英垫底,孙楠第三,黑马夺冠

岚仔小弟
2024-06-15 23:25:22
90后女“台独”黄捷:为“港独”筹集物资,母亲在大陆卖茶叶捞金

90后女“台独”黄捷:为“港独”筹集物资,母亲在大陆卖茶叶捞金

影视解说阿相
2024-06-13 19:43:13
没想到大家都在偷偷降级消费了!网友操作太6了一个比一个夸猛!

没想到大家都在偷偷降级消费了!网友操作太6了一个比一个夸猛!

奇特短尾矮袋鼠
2024-06-14 11:07:20
上海第一“鬼站”漕宝路地铁站:殡仪馆停尸房围在四周,诡事频出

上海第一“鬼站”漕宝路地铁站:殡仪馆停尸房围在四周,诡事频出

神秘历史故事
2023-06-29 15:56:50
肇庆市两名住建部门领导被查

肇庆市两名住建部门领导被查

中国基建报
2024-06-16 16:06:16
回LA?️BR交易猜想:湖人得卡鲁索 送出范德彪+受保护首轮签

回LA?️BR交易猜想:湖人得卡鲁索 送出范德彪+受保护首轮签

直播吧
2024-06-16 17:02:15
消亡的“东方哈佛”:曾在中国碾压一切名校,校友都是泰斗级大神

消亡的“东方哈佛”:曾在中国碾压一切名校,校友都是泰斗级大神

天气观察站
2024-06-16 07:35:08
伊万:孙兴慜身价是我们全队的50倍,但我们在很多方面限制了他

伊万:孙兴慜身价是我们全队的50倍,但我们在很多方面限制了他

直播吧
2024-06-15 19:33:36
大s羡慕了,马筱梅一只手表,是孩子一年抚养费,具俊晔望尘莫及

大s羡慕了,马筱梅一只手表,是孩子一年抚养费,具俊晔望尘莫及

娱记掌门
2024-06-16 16:49:43
2024年1季度结婚登记同比减少17.8万对,全年数据或继续下降

2024年1季度结婚登记同比减少17.8万对,全年数据或继续下降

界面新闻
2024-06-16 10:05:56
赖清德参加“校庆”活动突发状况,礼仪兵中暑一片被现场救治

赖清德参加“校庆”活动突发状况,礼仪兵中暑一片被现场救治

阿离家居
2024-06-16 12:56:08
儿子高考前去世,母亲一同火化了儿子的手机,几日后竟意外接通!

儿子高考前去世,母亲一同火化了儿子的手机,几日后竟意外接通!

华人星光
2024-06-15 16:19:40
2024-06-16 17:40:49
FlexLua
FlexLua
用 Lua 编程语言开发 IoT 物联网硬件
107文章数 1关注度
往期回顾 全部

科技要闻

iPhone 16会杀死大模型APP吗?

头条要闻

今年上半年尚未结束 已有4名正部级被查

头条要闻

今年上半年尚未结束 已有4名正部级被查

体育要闻

没人永远年轻 但青春如此无敌还是离谱了些

娱乐要闻

上影节红毯:倪妮好松弛,娜扎吸睛

财经要闻

打断妻子多根肋骨 上市公司创始人被公诉

汽车要闻

售17.68万-21.68万元 极狐阿尔法S5正式上市

态度原创

健康
时尚
艺术
教育
游戏

晚餐不吃or吃七分饱,哪种更减肥?

40岁女人的“优雅范”穿搭,夏天学会这么搭,也能美得很轻松

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

教育要闻

填写“高考志愿”,要注意以下这些点

《深岩银河》限期免费游玩 多人合作第一人称射击

无障碍浏览 进入关怀版