MQTT应用实战指南

一、使用角色

角色:MQTTFX、微信小程序、百度智能云、STM32F103RET6MCU的开发板(前几篇文章中)

二、快速入门

1. 使用准备

在使用物联网核心套件服务前,您需要创建一个百度智能云账号,请按照下述步骤进行注册和登录。

(1)在百度智能云登录页面,选择百度账号,点击“立即注册”,进入百度账号注册界面。

(2)如果未进行实名认证,请先进行实名认证。

(3)开通IoT Core:开通服务并同意按需计费,可进入“实例列表”。

2. 操作流程

(1)创建IoT Core实例:使用物联网核心套件IoT Core服务需要先创建一个 IoT Core 实例。

(2)创建设备:点击实例名称,进入详情页面,点击设备列表即可创建和管理设备。

(3)获取连接信息:查看连接信息,包含IoTCoreId、DeviceKey 和 DeviceSecret。

(4)使用MQTT客户端连接及收发消息:配置 MQTT 的应用客户端,可以快速验证是否可以实现与IoT Core服务交流发送或者接收消息。

(5)使用规则引擎将设备消息流转到业务服务器:天工平台将设备上报的数据流转至百度kafka中,之后,业务应用服务器可以消费kafka中的数据进行业务处理。

3. 创建IoT实例

(1)已有百度云账号(注册略)

(2)登录IoT Core控制台页面

(3)点击创建实例

(4)填写信息

填写需要创建 IoT Core 的名称、描述(选填),并“提交”即可。创建完成后,即可在列表页看到刚才创建的 IoT Core 实例。其中第一列展示了其名称及 ID。

(5)创建设备

已完成IoT Core实例的创建。使用物联网平台的第一步是在云端创建产品和对应设备,获取设备证书(productKey、deviceName和deviceSecret)。

创建设备模板:设备模板当前提供对设备主题的描述。默认的设备模板包含两个主题。

② 增加自定义主题,点击IoT Core实例名称

③ 点击左侧导航栏中的“模板”并点击“添加模板”。

点击模板名称,添加主题:其中 {deviceName} 为变量,表示使用对应设备连接时,应替换为设备名称。

如:使用 device1的身份信息进行 MQTT 连接,此时可通过这个连接向 $iot/device1/events 主题发布消息,并可云端规则引擎接收及转发。

创建设备:左侧点击设备列表,添加设备,配置设备信息,点击秘钥认证方式,选择模板(demo),点击提交后,就会获得一个链接配置弹窗信息。

(6)获取连接信息

在列表中,点击上一步骤中创建设备的名称,进入设备详情页。在连接信息栏目,找到「DeviceSecret」字段,点击右侧小眼睛图标,查看连接信息,包含IoTCoreId、DeviceKey 和 DeviceSecret。

① 生成 MQTT 连接信息

使用MD5算法生成连接信息;快速体验中,也可以在线生成器来进行使用,打开MQTT连接信息生成器,使用拿到的 IoTCoreId、DeviceKey 和 DeviceSecret,生成 MQTT 连接所需的用户名及密码。

MQTT连接的三种方式及对应的端口

MQTT Broker 连接地址在 IoT Core 详情页可以查看。

(7)获取MQTT三元组信息

打开连接信息生成器并填写信息。

(8)安装MQTT客户端MQTT.fx并测试

① 点击安装包

百度网盘链接: https://pan.baidu.com/s/1dyFjtU1AauuLf3ogE5XMUg?pwd=8iiy

 提取码: 8iiy

② 一直点击NEXT到以下界面

③ 找到安装路径,文件夹:该文件夹在安装的时候会进行选择,一般安装到默认文件夹

④ 打开文件夹,找到mqttfx.exe

⑤ 打开文件夹中的MQTT.fx

⑥ 小齿轮图片,进行设置。

⑦ 界面的左下角”+“,进行添加新的配置

详细配置。

连接测试

发布和订阅测试,发布的内容不能是中文。

发布之前先选择主题

(9)微信小程序

① 将mqtt库引入微信小程序工程(SMARTHOME)中

https://unpkg.com/mqtt@4.1.0/dist/mqtt.min.js

② 在utils下创建mqtt.min.js文件,将上面的链接内容复制粘贴进当前文件

③ 保存代码后编译,会报错:

这个报错的原因是微信小程序的网络安全策略限制,你使用的MQTT连接域名,没有配置在小程序的合法socket域名列表中。微信小程序为了保障网络通信安全,要求所有发起的网络请求(包括WebSocket连接)的域名,必须先在小程序管理后台的 “合法域名” 中进行配置,否则会被拦截并抛出该错误。

解决步骤:登录微信小程序管理后台;找到「开发」→「开发管理」→「服务器域名」;在「服务器域名」板块中,找到「socket 合法域名」配置项,点击「修改」;添加 wss://你的百度云实例域名(broker地址) 到合法域名列表中,提交审核(个人小程序需注意:部分域名可能需要完成主体认证后才能配置);审核通过后,打开微信小程序详情,勾选不校验合法域名,重新编译并运行小程序项目即可。

微信小程序管理后台
wss://你的百度云实例域名(broker地址)

发布测试(未完待续...)。

订阅测试。

1-1
1-2
2-1
2-2
2-3
2-4

4. AT指令测试

(1)AT

(2)AT+RST:复位

(3)AT+CWMODE=1:WiFi工作模式

(4)AT+CWJAP="WiFi名称","WiFi密码":连接WiFi指令

(5)AT+CIFSR:查看esp8266的ip和mac

(6)ESP8266连接百度云

① AT+MQTTUSERCFG=0,1,"ESP8266","MQTT用户名(连接信息生成器生成)","MQTT密码(连接信息生成器生成)",0,0,"":用于设置 MQTT 用户信息

② AT+MQTTCONN=0,"broker地址",1883,1:用于建立 MQTT 连接

(7)AT+MQTTSUB=0,"$iot/mqtt_smarthome/user/control_led",0:订阅 MQTT 主题


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

相关阅读更多精彩内容

友情链接更多精彩内容