摘要:本文次要讲述应用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平台的数据交互通道买通。
点击关注,第一工夫理解华为云陈腐技术~