APP Inventor + ESP8266oneNET平台 +STM32内部温度监听系统

基于物联网的STM32内部温度监听系统

  • 摘要
    主要通过STM32单片机内部温度传感器采集芯片内部温度,并通过ESP8266-01模块连接路由器,将采集的数据通过HTTP协议发送到oneNET云服务器,使用APP Inventor开发APP,实时监听内部温度。(其实没有那么高大上,就是APP通过云服务器接收数据,后面又加了一个发送指令点亮LED灯的)
  • 最终效果图

APP最终效果图
说明:监听数据(包括时间,温度值)均为MCU上传云服务器的最新数据

一、 下位机配置

  • 配置 ESP8266
    其实也不是什么配置,就是看文档,了解ESP8266的相关AT指令,并会用STM32串口发送AT指令(随便搜一下就有好多的博文,这里就不再赘述,我们的重点在下面)
    注:ESP8266固件使用的是官方AT固件,换而言之,买来的模块AT指令测试正常就能够使用
  • 采集温度
    使用STM32单片机的内部温度传感器,ADC,采集温度数据(开发板的例程里面有,这里也不再赘述)

二、oneNET云端

oneNET入口

  • 1、创建产品
    进入开发文档,快速入门,了解该平台的基本操作(注册,登录,数据流,设备,应用等等)在这里插入图片描述
    了解完后,创建产品,由于我们使用的是HTTP协议,所以选择多协议接入,进去后选择HTTP,创建产品在这里插入图片描述
    这些信息大家根据自己的条件填写(其实也没多大用,哈哈)
    在这里插入图片描述
  • 2、添加设备,添加数据流
    注意这里的“Master-APIkey”,设备ID,数据流ID(即数据流名称)这三个选项,是MCU接入云端的主要识别参数
    以下是我的这三个参数的截图
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    好了,做到这一步,基本的配置已经完成了,结合MCU代码,数据已经可以上云了,下面码代码

三、 STM32相关协议配置

见资源代码(有详细的注释)

四、APP Inventor编程

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

### 如何在App Inventor中与OneNet平台进行集成或交互 #### 一、准备工作 为了使App Inventor应用程序能够与OneNet平台通信,需先完成一些必要的准备。这包括注册并登录OneNet账号,在平台上创建项目获取API Key以及设备ID等重要参数[^1]。 #### 二、配置网络连接组件 在App Inventor的设计视图里添加Web服务客户端组件(Web),通过设置URL属性指向OneNet提供的HTTP API接口地址。对于POST请求来说,则要构建合适的JSON格式数据包作为上传内容的一部分。 #### 三、编写逻辑代码实现功能对接 利用内置的程序块编辑器定义当按钮被点击或其他事件触发时执行的操作流程。例如发送传感器读数给云端服务器存储;或是接收来自云平台的消息推送至移动终端显示通知信息等互动行为。下面是一个简单的例子展示如何向OneNet提交温度测量值: ```blocks // 设置web对象的目标网址为目标API端点 set Web1.Url to "http://api.heclouds.com/devices/{device_id}/datapoints" // 构造待传输的数据体字符串形式表示json结构 set Web1.RequestBody to "{""datastreams"": [{ ""id"": ""temp"", ""datapoints"": [{ ""value"": tempValue }] }]}" // 添加认证头部字段携带之前获得过的apikey用于鉴权校验 add header named "api-key" value of apiKeyVariableName here. // 发起post方式调用远程资源操作命令 call Web1.Post ``` 以上过程实现了基本的功能需求——即把本地采集到的信息传递给物联网服务平台保存处理。当然实际开发过程中可能还会涉及到更多细节方面的工作比如错误重试机制设计、异常情况捕获反馈等等。
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值