近期在准备一个物联网课程,主要是针对STM32OTA升级,这次使用的是小熊派物联网开发板
项目地址:https://gitee.com/wenzhengclub/bearpi_iot_ota
其实这个开发板去年我就拿到手了,只是一直没有机会和时间去体验,所以就搁置了,最近着重研究了STM32OTA部分,所以想着把OTA移植到小熊派开发板中,来实现远程升级,同时再加入一些IOT方面的知识,最终我选择了STM32+Nodered+ThingsBoard+IOT固件上传平台的方案。全部自己来完成,都是自己搭建的,并没有去使用现有的物联网平台。
Nodered:用于Http Server的搭建,实现固件版本请求API、文件下发API、以及对接Mysql数据库。 ThingsBoard:用于MQTT Server 实现MQTT的数据交互,同时制作IOT显示大屏 IOT固件上传平台:主要用于固件的上传以及版本的更新,支持文件拖拽上传,以及和数据库的交互,是Nodered的补充 123
首先看下OTA部分主板的界面:
这里主要是BootLoader启动过程中的界面,有一个图标,同时下方具备一个进度条,提示当前的进度,再一个就是会有一个当前状态的日志。同时一旦启动异常,也是支持固件版本的回滚的。因为在启动的时候,会备份一份代码到外部SPI Flash中。
接下来是STM32运行过程中的UI界面:
界面上方左上角显示当前固件版本号,右上角具备一个4G信号天线图标,可实时根据模组CSQ值进行一个动态的变化,下方有一个简单的UI可以展示温度湿度光照强度等,刷新速度可以根据自己的需求调整。
ThingsBoard 数据展示大屏:
大屏主要展示了设备E53插接件上面的传感器值,同时也展示了模组的信号状态变化,有仪表盘也有折线图,一目了然。同时还具备命令下发的功能,可以下发命令开启或者关闭E53插接板上面的电机和LED灯。
最后就是自己做的OTA固件上传平台:
这是我自己学了一上午的PHP做的一个主页,主要是对Nodered的一个补充,因为Nodered暂不支持文件上传(可能我没找到这个功能)。我用PHP做了这个小主页,支持文件的拖拽上传,同时也可以更新版本信息到mysql数据库。非常的方便。
课程规划:
录制预告视频录制硬件软件材料准备以及服务器搭建视频开始正式的教程,预计会在接下来的12月中旬完结QQ群:476840321 (欢迎一起讨论学习)