飘易博客(作者:Flymorn)
订阅《飘易博客》RSS,第一时间查看最新文章!
飘易首页 | 留言本 | 关于我 | 订阅Feed

乐鑫ESP8266使用MQTT-AT固件连接乐为物联网

Author:飘易 Source:飘易
Categories:物联网 PostTime:2019-9-2 18:03:01
正 文:

本篇文章介绍下乐鑫ESP8266使用MQTT-AT固件连接乐为物联网,MQTT的固件乐鑫官方并未提供,我们就到淘宝上找一家卖MQTT固件的卖家花几块钱买一个吧,飘易找的是一个辰天物联的固件,具体的淘宝链接就不放了,免得广告嫌疑。


如何给esp8266刷固件,参考飘易的这一篇文章:http://www.piaoyi.org/iot/espressif-ESP8266-MQTT-AT.html


这个mqtt的固件4个bin文件对应的烧录地址如下:


刷好固件之后,重启之后,会提示你要授权这个硬件:

Server Type=0
AT+INFO=invalid hardware to run the software,need license, failed

 类似这段话,就去找卖家在线授权吧,未授权前,会联网查询授权,授权之后,只要不是全FLASH刷写,即使刷了其他固件,这个授权文件也会保留。授权之后,固件就不会再联网查询了。


乐联网的设置

乐联网可以方便的在线调试硬件设备,支持TCP\MQTT\MODBUS协议的接入。

网址:https://www.lewei50.com/,先注册账户吧。


创建设备

是否可控这里,我们选择使用乐联网的MQTT,后续可以通过mqtt协议控制设备。


设置UserKey

用户账户的 Userkey,我们不使用默认的32位长度的key,我们使用短key:

为什么使用短key呢?因为mqtt登录的时候,需要提供一个client id,这个client id的长度固件那里限制为最多32字节,如果乐联网的userkey使用长key,那么再拼接上设备标识的时候,就会超过固件允许的长度了。


创建传感器

我们创建2个传感器,分别是温度和湿度:


乐联网MQTT介绍

乐为物联MQTT服务支持协议: MQTT 3.1 and 3.1.1, 设备可以上传数据接收控制命令并返回结果,完全兼容使用乐为物联TCP服务的操作方式。


服务器::

mqtt://mqtt.lewei50.com:1883


连接Client Id:使用SN或者Userkey_设备标识方式,比如  d9feb24d00_02


连接时服务器会使用 Client Id进行校验,只有验证通过才允许建立连接。


服务限制 同一IP最多可以保持5个连接, 同一IP30秒内pub次数超过20次或者连接次数超过10次会被禁用IP10分钟。


仅允许发布或者订阅/lw/*/Client Id方式的主题:

/lw/u/clientid 上传数据
/lw/c/clientid 控制命令
/lw/r/clientid 返回控制结果



ESP8266使用MQTT示例

联网:

AT+AP=SSID,PASSWORD

查看连接路由器状态:

AT+GAPSTATUS

设置模块的设备编号,即client id(最大长度 32byte):

AT+DEVICEID=d9feb24d00_02

获取模块的设备编号:

AT+GDEVICEID

设置服务器登录信息(标准 MQTT,没有登录账号的默认填 username,password 即可):

AT+MQTTCLOUD=mqtt.lewei50.com,1883,username,password

获取模块服务器配置信息:

AT+GMQTTCLOUD

设置模块当前协议:

AT+MODULE=0

标准 MQTT 协议填 0,然后回车,成功会重启。


获取模块连接服务器状态:

AT+GSERVERSTATUS

订阅主题:

AT+SUB=/lw/u/d9feb24d00_02,0

发布主题:

AT+PUB=/lw/u/d9feb24d00_02,[{"Name":"temp","Value":"33"},{"Name":"humi","Value":"53"}],0



更多MQTT支持的AT指令

订阅主题:

AT+SUB=ct,0

说明: ct 是指主题名,0 表示 qos 的值(值范围 0-2)

返回值:成功 AT+INFO=Subscribe OK; 失败 AT+INFO=Subscribe FAILED


取消订阅:

AT+UNSUB=ct

说明: ct 是指主题名。

返回值:成功 AT+INFO=Unsubscribe OK; 失败 AT+INFO= Unsubscribe FAILED


发布主题:

AT+PUB=ct,hellowold,0

说明: ct 是指主题名;hellowold 表示发布的消息内容,支持 json 格式

数据;0 表示 qos 的值

返回值:成功 AT+INFO=Publish OK; 失败 AT+INFO= Publish FAILED

如果先前订阅了该主题还会收到:AT+RECTOPIC=ct,hellowold


设备收到订阅的主题的信息:

AT+RECTOPIC=ct,hellowold

说明:ct 是指接收到的主题名;hellowold 是指接收到的消息

备注:AT+GSERVERSTATUS 可以查看当前连接服务器状态。


常用AT指令

模块上网:

AT+AP=SSID,PASSWORD

SSID 指路由器的用户名,PASSWORD 指路由器的密码。


模块重启:

AT+RST


模块设备编号(最大长度 32byte):

AT+DEVICEID=88888888


模块波特率:

AT+RATE=115200

只支持 115200、38400、19200、9600 四种,默认为 115200,对接端也要相应的切到对应波特率,否则通信无效。


模块调试模式:

AT+DEBUG=1

等于 1 时表示切到 debug 版本,等于 0 表示关闭打印信息


MQTT 的存活期:

AT+KEEPALIVE=120

值范围 0-3600 秒,默认 120 秒,0 是 mqtt 连接不断开


获取模块当前设备编号:

AT+GDEVICEID



获取模块协议模式:

AT+GMODULE

0 标准 MQTT、1 阿里基础版(自定义主题)、2 百度MQTT、3TCP、4UDP、5 阿里高级版(固定主题)设置完后模块会重启、6 模块做 TCP 服务器、7 模块做 AP 服务器。


获取模块阿里设备配置:

AT+GALIDEVICE



获取模块服务器配置信息:

AT+GMQTTCLOUD



获取模块连接路由器状态:

AT+GAPSTATUS

成功会返回模块的 IP 地址


获取模块连接对应服务器状态:

AT+GSERVERSTATUS


获取模块的 MAC 地址:

AT+GMAC

成功会返回模块的 sta 及 ap 的 MAC 地址


获取模块软件版本信息:

AT+GSWVERSION


获取模块 AP 配置信息:

AT+GAPINFO


获取模块波特率配置信息:

AT+GRATE

这个只有波特率选对了才有效果


获取模块静态 IP 信息:

AT+GIPSTA


模块 OTA 升级:

AT+OTA


模块复位参数初始化:

AT+MODULEINIT

会把所有配置都初始化成默认值


模块进入一键配网:

AT+SMARTCONFIG

用一键配网时,如果失败了,可以先输入该 AT 指令


各种 AT 指令操作后,模块信息返回:

AT+INFO=return data
AT+RECTOPIC=return data


打个链接:泰州app开发

【参考】:

1、乐联网MQTT协议使用说明

作者:飘易
来源:飘易
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。
上一篇:微信小程序开发之webview实战
下一篇:乐鑫ESP8266烧录固件、升级最新固件、刷MQTT固件
0条评论 “乐鑫ESP8266使用MQTT-AT固件连接乐为物联网”
No Comment .
发表评论
名称(*必填)
邮件(选填)
网站(选填)

记住我,下次回复时不用重新输入个人信息
© 2007-2019 飘易博客 Www.Piaoyi.Org 原创文章版权由飘易所有