1. 硬件准备
本文中我准备的腾讯官方EVB_MX_Plus开发板和ESP8266 WIFI通信模组:
2. 云端产品创建
在云端创建产品的过程和下文相同,不再赘述。
3. mqttclient
mqttclient是一个高性能、高稳定性的跨平台MQTT客户端,基于socket API之上开发,可以在嵌入式设备(FreeRTOS/LiteOS/RT-Thread/TencentOS tiny)、Linux、Windows、Mac上使用,拥有非常简洁的API接口,以极少的资源实现QOS2的服务质量,并且无缝衔接了mbedtls加密库。
项目作者JiejieTop,项目地址为:https://github.com/jiejieTop/mqttclient。
该开源组件遵循 Apache License v2.0开源协议。
项目架构如下:
4. 在TencentOS-tiny中使用mqttclient
mqttclient已经适配了TecentOS-tiny操作系统,源码如下:
并且针对官方提供的EVB_MX_Plus官方板,也有一份对应的工程,修改云端对接信息之后即可上云:
在本文中为了演示如何使用mqttclient,不使用该官方工程,基于helloworld从头演示如何使用。
4.1. 在项目工程中添加MQTT组件相关文件
在工程中新建devices
、hal
、at
和mqttclient
组, 并添加下列源文件:
上述文件分别位于TencentOS-tiny\devices\esp8266
,TencentOS_tiny\net\at
, TencentOS_tiny\components\connectivity\mqttclient
和TencentOS_tiny\platform\hal\st\stm32l4xx\src
目录下
最后添加mqttclient.c文件:
此处添加board\TencentOS_tiny_EVB_MX_Plus\BSP\Src
下的mqttclient.c示例文件。
再将这些文件包含的头文件路径也添加:
最后修改mqttclient.c文件:
4.2. 一些额外的修改
本实验中直接复制之前的Helloworld工程中,没有做lpuart1的接收中断处理,所以进行如下操作。
将stm32l4xx_it.c
替换为stm32l4_it_module.c
:
5. 实验现象
在云端查看设备是否上线:
在云端向设备下发数据,设备接收到数据后在串口打印日志:
至此,使用mqttclient组件对接IoThub测试成功。
接收更多精彩文章及资源推送,欢迎订阅我的微信公众号:『mculover666』。