基于STM32单片机的新版ONENET物联网云平台环境检测手机APP系统
1 系统功能介绍
本系统为 基于STM32单片机的新版OneNET物联网云平台环境检测手机APP系统,旨在实现智能化环境监测与远程控制。随着物联网与智能农业、智能家居的发展,环境参数实时采集与云平台交互逐渐成为主流。通过云端平台的中转,用户不仅可以远程查看数据,还能对设备进行远程控制,从而提高了系统的智能化程度与实用性。
系统功能主要体现在以下几个方面:
- 温湿度检测:通过 DHT11温湿度传感器 实时采集环境温度和湿度数据。
- 数据上传:STM32 单片机通过网络模块将采集到的数据上传至 新版OneNET物联网云平台。
- APP查看:用户可以通过手机APP随时查看实时温湿度数据,数据同步及时。
- 远程控制:用户可通过APP远程下发指令,控制系统端的 LED 灯开关。
- 云端交互:利用OneNET提供的设备管理、数据存储与命令下发功能,实现本地与云端的数据交互。
该系统不仅具备实时数据监测能力,同时具备远程操控功能,可广泛应用于智慧农业、智能家居、实验室环境监测等场景。
2 系统电路设计
系统电路分为 核心控制电路、传感器采集电路、网络通信电路、执行器控制电路 及 电源电路 五大部分。
2.1 核心控制模块(STM32F103C8T6)
STM32F103C8T6 作为主控单片机:
- 主频 72MHz,性能稳定,适合实时采集与数据处理。
- 提供 GPIO 用于 DHT11 数据采集和 LED 控制。
- 内部定时器与串口资源丰富,便于与网络模块通信。
- 作为系统核心,负责采集传感器数据、打包并上传云端,同时接收来自云端的控制指令。
2.2 温湿度采集模块(DHT11)
DHT11 是一种常用的数字式温湿度传感器,特点如下:
- 数字信号输出,无需ADC转换,通信简单。
- 测温范围:0~50℃;湿度范围:20%~90%RH,满足日常环境检测需求。
- 通过单总线协议与 STM32 进行数据通信。
在电路上,DHT11的 数据引脚 连接至STM32的GPIO,且通过上拉电阻保证数据传输稳定。
2.3 网络通信模块
为了实现数据与云平台的交互,需要配置网络通信模块,本系统常见的选择包括 ESP8266 WiFi模块 或 NB-IoT 模块。本文以 ESP8266 为例:
- 通过串口(USART)与 STM32 通信。
- 连接 WiFi 热点后,通过 MQTT 或 HTTP 协议与OneNET云平台建立连接。
- 负责将采集的数据发送至云端并接收云端下发的控制命令。
2.4 执行器控制模块(LED)
LED作为远程控制对象:
- 连接至STM32 GPIO,通过电阻限流。
- 由单片机根据APP下发的控制命令实现点亮或熄灭。
- 通过云端与APP实现交互,用户可在手机端一键控制。
2.5 电源模块
系统由 5V直流电源 供电:
- STM32与DHT11工作在3.3V或5V环境下,需提供稳定电源。
- ESP8266 模块要求3.3V电源,因此电路中需要使用 LDO 稳压芯片(如 AMS1117-3.3)。
- 设计时需保证电源稳定,避免因电压波动导致通信异常。
3 程序设计
系统软件主要包括 主机程序 和 云端交互逻辑,其核心分为:
- 传感器采集模块
- OneNET数据上传模块
- 云端指令解析模块
- LED控制模块
- APP交互与数据刷新逻辑
3.1 主程序框架
int main(void)
{
System_Init(); // 系统初始化
DHT11_Init(); // 初始化温湿度传感器
ESP8266_Init(); // 初始化WiFi模块
OneNET_Connect(); // 连接OneNET云平台
while(1)
{
DHT11_ReadData(&temperature, &humidity); // 采集温湿度
OneNET_SendData(temperature, humidity); // 上传至云端
if(OneNET_ReceiveCmd(&ledState)) // 接收云端指令
{
if(ledState == 1)
LED_On();
else
LED_Off();
}
Delay_ms(2000); // 2秒一次数据上传
}
}
3.2 温湿度采集模块
uint8_t DHT11_ReadData(uint8_t *temp, uint8_t *humi)
{
uint8_t buffer[5];
if(DHT11_ReadBytes(buffer))
{
*humi = buffer[0];
*temp = buffer[2];
return 1;
}
return 0;
}
此模块负责采集环境的温湿度信息,并以整型数据返回给主控。
3.3 OneNET 数据上传模块
系统通过 MQTT 协议与OneNET交互,STM32将采集到的数据封装为 JSON 格式上传。
void OneNET_SendData(uint8_t temp, uint8_t humi)
{
char jsonBuf[64];
sprintf(jsonBuf, "{\"Temperature\":%d,\"Humidity\":%d}", temp, humi);
MQTT_Publish("onenet/device/data", jsonBuf);
}
3.4 云端指令接收模块
APP端可通过OneNET平台下发控制命令,STM32解析后执行。
uint8_t OneNET_ReceiveCmd(uint8_t *ledState)
{
char cmdBuf[32];
if(MQTT_Receive("onenet/device/cmd", cmdBuf))
{
if(strstr(cmdBuf, "LED_ON"))
{
*ledState = 1;
return 1;
}
else if(strstr(cmdBuf, "LED_OFF"))
{
*ledState = 0;
return 1;
}
}
return 0;
}
3.5 LED 控制模块
void LED_On(void)
{
GPIO_ResetBits(GPIOC, GPIO_Pin_13);
}
void LED_Off(void)
{
GPIO_SetBits(GPIOC, GPIO_Pin_13);
}
此模块根据云端下发的指令实现LED灯的开关操作。
4 手机APP交互设计
在新版OneNET物联网云平台中,手机APP是数据展示与控制的主要接口。
-
数据展示界面
- 实时显示当前温度和湿度数据。
- 通过折线图、数字显示等形式直观展现历史与实时数据。
-
设备控制界面
- APP内置控制按钮,可发送 LED_ON 或 LED_OFF 指令。
- 通过MQTT消息下发,实现与硬件端的实时交互。
-
报警提示
- 当温湿度超过设定阈值时,OneNET平台可触发报警,并通过APP推送消息。
- 用户可即时获取环境异常信息。
5 总结
本系统通过 STM32F103C8T6 单片机 与 DHT11传感器 实现了温湿度数据的实时采集,并通过 ESP8266 WiFi 模块 将数据上传至 新版OneNET物联网云平台。借助 手机APP,用户可随时查看环境信息,并可远程控制本地LED设备。
系统的特点包括:
- 实时性强:温湿度数据以秒级频率上传至云端。
- 交互性好:用户不仅能查看数据,还能下发控制指令。
- 易扩展性:在现有系统基础上,可进一步扩展光照、土壤湿度、空气质量等传感器,实现更完善的环境监控。
- 应用前景广阔:适用于智能家居、农业大棚、实验室环境监测等多种场景。
该设计展示了基于 STM32 + OneNET云平台 + 手机APP 的完整物联网应用流程,为后续更多的智慧环境监控系统提供了借鉴与参考。
更多推荐
所有评论(0)