摘要:本文次要讲述应用 MQTT 形式对接华为云 IoT 平台的具体过程。
应用的计划:指标板为 STM32L431BearPI(带 E53 扩大板); TCPIP 性能由开发板的 ESP8266 提供;MQTT 应用 Paho-Client-Embeded;IoT 对接接口采纳 V5 版本接口;Demo 抉择 target 的 MQTTdemo。
整个开发分为两个局部:云端开发、设施侧开发。云端开发包含创立产品、创立设施;设施侧开发包含依据计划配置性能、编译烧录、调试。
云端开发
创立产品模型
产品模型其实就是用户设施的形象。用编程术语来解释就是产品模型是 Class,设施是对象。对于产品模型的介绍以及如何创立产品模型能够参考创立产品。
本文最初创立的产品模型如下:
设施属性包含:温度、湿度、光照强度、LED 状态、Motor 状态。设施命令包含两条:管制 LED ON/OFF, 管制 Motor ON/OFF。
创立设施
当产品模型创立结束之后,咱们能够创立基于该产品模型的设施。设施 –> 注册设施。依据对话框填写对应的信息。本文为了不便创立的设施标识为 demoTest, 秘钥为 012345678(该设施曾经删除,请勿连贯)。后果如下:
注册胜利之后如下:
至此,咱们曾经注册了端侧设施,并能够在咱们的设施 –> 所有设施中看到咱们新注册的设施。
设施端开发
设施端的开发次要包含配置工程、编译烧录、调试几个步骤。下文基于此逐个进行介绍。
工程配置
因为 SDK 是一个全栈的软件,蕴含所有的代码,因而咱们须要告知编译器哪些文件须要编译、怎么编译这些文件,这个工作次要是由 menuconfig 实现。对于工程配置领导能够参考工工程配置示范 [](https://link.zhihu.com/?targe…。
进入到 target/STM32L431_BearPi 目录下,输出 menuconfig(macos 或者 linux 输出 menuconfig.py) 即可进入到配置界面。
确认进入 SDK 的配置。
开发板的串口以及 DEMO 抉择
设置 AT 串口波特率和模组匹配;设置设施 ID 和秘钥,其和在 IoT 平台上创立设施时候的设置统一。
TCPIP 配置
在 Network 下,抉择 TCPIP 性能,并设置 esp8266 模式,并设置热点的 SSID 和 PWD。
配置 SSL
配置 MBEDTLS 的次要起因是,IoT 平台生成 MQTT 的三元组的时候须要应用到 HMAC 算法。使能 TLS 并抉择 mbedtls 并配置为 CERT 模式。
配置 MQTT 协定
在 Network 菜单下使能 MQTT。此处配置的 MQTT 为规范 MQTT 协定。
配置 IoT MQTT 接入服务
在 OC 菜单下,使能 OC MQTT(能够抉择敞开 OC COAP 以及 OC LWM2M)。
此处咱们配置的为 MQTT 接入 IOT 的流程;没有使能规范 DEMO 是因为咱们应用 target 下的 demo.
输出 Q 并保留退出,会发现咱们方才的配置会保留在.config 文件中。
再输出 genconfig(genconfig.py) 会生成或者更新 iot_config.h 文件。Makefile 根据.config 文件抉择哪些组件编译;编译器会依据 iot_config.h 文件决定怎么编译这个组件。
至此咱们对于工程的配置曾经实现。
编译烧录调试
编译
性能源码采纳的是 Makefile 进行组织,实践上你有 Make 工具以及对应的穿插编译器都能够进行编译。本文应用的是 AC6 公司的 SW4ST 这个工具(基于 Eclipse 的一款工具)。其应用能够参考 SW4ST 应用_Guide.md)
在 SW4ST 的菜单 Project–>Clean 下勾选革除后编译即可编译,并能够在 Console 下看到编译后果。
如果呈现 FLASH 溢出行为,能够将不须要的组件(stime shell)通过配置禁用;或者在 Makefile 中批改优化等级从 -O0 - g 批改为 -Os。
烧录
在 SW4ST 的菜单中 Run–>Debug Configurations。
创立一个 Ac6 STM32Debugging(应用的 stlink)。
只须要保障 MCU 的型号统一即可。
对于 BearPI 而言,还须要设置重启模式,设置为软模式即可。
点击 apply 并 debug,能够看到烧录结束并进入调试界面。
调试
进入 debug 页面之后,咱们能够像其余的 IDE 一样 step into/step over/step out/run 等调试。
同时能够接入串口,设置正确的波特率,会看到零碎的输入信息。(wifi 连贯上并获取 IP,向 IoT 平台订阅主题胜利)。
联结调试
设施在线并上报信息
当端侧显示连贯 OK 时候,咱们在 IoT 平台能够看到对应的设施应该曾经在线,并接管到对应数据。
IoT 平台下发命令
在命令中抉择同步命令下发,能够观测到端侧设施能够接管到相干的命令。
至此,咱们将设施端和 IoT 平台的数据交互通道买通。
点击关注,第一工夫理解华为云陈腐技术~