基于物联网的STM32内部温度监听系统
- 摘要
主要通过STM32单片机内部温度传感器采集芯片内部温度,并通过ESP8266-01模块连接路由器,将采集的数据通过HTTP协议发送到oneNET云服务器,使用APP Inventor开发APP,实时监听内部温度。(其实没有那么高大上,就是APP通过云服务器接收数据,后面又加了一个发送指令点亮LED灯的) - 最终效果图
说明:监听数据(包括时间,温度值)均为MCU上传云服务器的最新数据
一、 下位机配置
- 配置 ESP8266
其实也不是什么配置,就是看文档,了解ESP8266的相关AT指令,并会用STM32串口发送AT指令(随便搜一下就有好多的博文,这里就不再赘述,我们的重点在下面)
注:ESP8266固件使用的是官方AT固件,换而言之,买来的模块AT指令测试正常就能够使用 - 采集温度
使用STM32单片机的内部温度传感器,ADC,采集温度数据(开发板的例程里面有,这里也不再赘述)
二、oneNET云端
- 1、创建产品
进入开发文档,快速入门,了解该平台的基本操作(注册,登录,数据流,设备,应用等等)
了解完后,创建产品,由于我们使用的是HTTP协议,所以选择多协议接入,进去后选择HTTP,创建产品
这些信息大家根据自己的条件填写(其实也没多大用,哈哈)
- 2、添加设备,添加数据流
注意这里的“Master-APIkey”,设备ID,数据流ID(即数据流名称)这三个选项,是MCU接入云端的主要识别参数
以下是我的这三个参数的截图
好了,做到这一步,基本的配置已经完成了,结合MCU代码,数据已经可以上云了,下面码代码
三、 STM32相关协议配置
见资源代码(有详细的注释)
四、APP Inventor编程
可参考以下三个资源
麒麟座开发板
APP接入
老巫婆的天气预报文章(极力推荐)
-
组件设计
组件参考源码即可(就是一些界面设计,没啥好说的) -
逻辑设计
1、GET数据流
这些代码可以通过HTTP在云服务器 获取/创建 数据流
全局变量URL_POST/URL_GET分别对应云服务器的POST和GET的URL
全局变量HEADER_POST/HEADER_GET分别对应云服务器的POST和GET的URL的header
具体可参见oneNET平台接入文档入口
注:URL的header底层格式APP Inventor已经封装好了,咱们只要写入密钥即可
2、处理GET到的数据
由于HTTP GET到的数据是json格式的(列表数据,如果不懂,请查阅相关文档,可以参考oneNET的返回实例),所以需要处理后得到我们需要的数据。
建议:可以先不要处理数据,讲json数据显示到APP上,抄下来整理清楚,不难看懂数据处理部分
3、POST数据流
往设备中新增数据流,其中button为新增数据流的名称,0/1为新增数据流的参数
注意,新增数据流的参数发送时只能是0/1
我的开发板是STM32F103RCT6(原子的mini板),用的ESP8266-01 源码在我的资源里
第一次发博文,有许多操作不太熟悉,请多多见谅,有任何疑问可以加我QQ私聊:2315375208