基于单片机的安卓手机WiFi温湿度采集控制系统设计(原理图+源代码+教程)
36
拍明
原标题:基于单片机的安卓手机WiFi温湿度采集控制系统设计(原理图+源代码+教程)
基于单片机的安卓手机WiFi温湿度采集控制系统设计
一、系统设计背景与需求分析
在农业大棚、仓储物流、智能家居等场景中,环境温湿度的实时监测与控制直接影响作物生长、货物存储质量及居住舒适度。传统人工监测存在效率低、数据滞后等问题,而基于单片机的物联网系统可通过传感器自动采集数据,并通过WiFi模块将数据传输至安卓手机端,实现远程监控与自动化控制。本系统需满足以下核心需求:
实时数据采集:温湿度传感器需具备高精度、低功耗特性,适应复杂环境。
无线数据传输:WiFi模块需支持稳定连接,兼容安卓设备。
远程控制与报警:手机端APP需支持数据可视化、阈值设置及超限报警功能。
系统扩展性:硬件需预留接口,支持后续功能升级(如多传感器接入、继电器控制等)。
二、核心元器件选型与功能解析
1. 主控芯片:STM32F103C8T6
作用:作为系统核心,负责传感器数据采集、WiFi模块通信及逻辑控制。
选型依据:
性能优势:基于ARM Cortex-M3内核,主频72MHz,集成64KB Flash与20KB RAM,满足多任务处理需求。
外设丰富:支持USART、SPI、I2C等接口,可直接连接DHT11传感器与ESP8266 WiFi模块。
低功耗设计:待机电流仅2μA,适合长期运行场景。
对比竞品:51单片机:资源有限,无法支持复杂算法与多任务。
ESP32:虽集成WiFi,但成本较高,且开发复杂度大于STM32。
2. 温湿度传感器:DHT11
作用:实时采集环境温湿度数据,输出数字信号至单片机。
选型依据:
精度与范围:温度测量范围0-50℃,精度±2℃;湿度范围20-90%RH,精度±5%RH,满足基础需求。
接口简单:单总线通信,仅需1个GPIO引脚,降低硬件复杂度。
成本低廉:单价约2元,适合批量部署。
对比竞品:DHT22:精度更高(±0.5℃),但价格翻倍,且需更复杂的时序控制。
SHT30:I2C接口,精度±0.3℃,但需额外上拉电阻,增加成本。
3. WiFi模块:ESP8266-01S
作用:将单片机采集的数据通过WiFi传输至安卓手机,并接收手机控制指令。
选型依据:
集成度高:内置TCP/IP协议栈,支持AT指令配置,开发门槛低。
传输稳定:空旷环境传输距离达100米,满足室内场景需求。
兼容性强:支持3.3V供电,与STM32 GPIO电平匹配,无需电平转换。
对比竞品:ESP32-WROOM:支持双模WiFi与蓝牙,但功耗与成本更高。
CC3200:TI产品,稳定性强,但开发资源少于ESP8266。
4. 电源管理模块:AMS1117-3.3
作用:将5V输入电压转换为3.3V,为STM32与ESP8266供电。
选型依据:
低压差设计:输入输出压差仅1.1V,适合电池供电场景。
输出稳定:负载调整率0.2%,确保模块稳定运行。
成本低:单价约0.5元,性价比高。
5. 显示模块:OLED 0.96寸I2C
作用:本地显示温湿度数据、系统状态及报警信息。
选型依据:
分辨率高:128×64像素,支持中文与图形显示。
接口简单:I2C通信,仅需SCL与SDA两条线。
功耗低:工作电流约20mA,适合长期运行。
6. 报警模块:无源蜂鸣器
作用:当温湿度超限时发出声光报警。
选型依据:
驱动简单:通过STM32 GPIO直接驱动,无需三极管。
声音响亮:分贝达85dB,可覆盖10米范围。
三、系统硬件设计
1. 原理图设计
主控电路:
STM32F103C8T6最小系统包括晶振电路(8MHz高速晶振+32.768kHz低速晶振)、复位电路(按键复位+上电复位)及电源滤波电路(0.1μF+10μF电容并联)。
传感器接口电路:
DHT11数据引脚连接STM32的PA0,通过上拉电阻(4.7kΩ)确保信号稳定。
OLED显示屏的SCL与SDA引脚分别连接STM32的PB6与PB7,通过I2C总线通信。
WiFi模块电路:
ESP8266-01S的TXD与RXD引脚交叉连接STM32的USART1_RX(PA10)与USART1_TX(PA9),实现串口通信。
CH_PD引脚接3.3V电源,确保模块正常工作。
电源电路:
输入5V电源通过AMS1117-3.3转换为3.3V,输出端并联100μF钽电容与0.1μF陶瓷电容,抑制电源纹波。
2. PCB设计要点
布局优化:将模拟电路(传感器)与数字电路(单片机)分区布局,减少干扰。
地线设计:采用单点接地,避免地环路噪声。
天线匹配:ESP8266天线引脚附近预留π型匹配网络,提升信号强度。
四、系统软件设计
1. 开发环境配置
单片机开发:使用Keil MDK-ARM V5,配置STM32F103C8T6设备包,启用USART1与I2C1外设。
WiFi模块配置:通过AT指令设置ESP8266为STA模式,连接路由器(SSID与密码通过串口发送)。
安卓APP开发:使用Android Studio,基于Java语言开发,集成OkHttp库实现HTTP请求。
2. 单片机程序流程
初始化阶段:
配置系统时钟(72MHz)。
初始化USART1(波特率115200)、I2C1(标准模式100kHz)及GPIO。
发送AT指令配置ESP8266连接WiFi。
主循环阶段:
调用
DHT11_Read()函数读取温湿度数据。通过
OLED_Show()函数更新显示屏内容。判断温湿度是否超限,若超限则触发蜂鸣器报警。
每2秒通过
ESP8266_Send()函数将数据发送至服务器。
关键函数实现:
// DHT11数据读取 uint8_t DHT11_Read(void) { uint8_t temp = 0, humi = 0; DHT11_Start(); // 发送启动信号 if (DHT11_Check()) { // 检测响应 humi = DHT11_ReadByte(); // 读取湿度 temp = DHT11_ReadByte(); // 读取温度 DHT11_ReadByte(); // 读取校验和(未使用) } return (humi << 8) | temp; // 返回组合数据 }
// ESP8266数据发送 void ESP8266_Send(uint16_t data) { char cmd[64]; sprintf(cmd, "AT+HTTPPOST="http://your-server.com/api","Content-Type:text/plain","temp=%d&humi=%d"
", data & 0xFF, (data >> 8) & 0xFF); USART1_SendString(cmd); // 通过串口发送AT指令 }
3. 安卓APP开发
UI设计:
主界面包含温湿度显示区(TextView)、阈值设置区(EditText+Button)及报警历史区(ListView)。
网络通信:
使用OkHttp发起POST请求,将用户设置的阈值上传至服务器。
// 发送阈值至服务器
public void sendThreshold(int tempThreshold, int humiThreshold) {
OkHttpClient client = new OkHttpClient();
RequestBody body = RequestBody.create(
"temp=" + tempThreshold + "&humi=" + humiThreshold,
MediaType.parse("application/x-www-form-urlencoded")
);
Request request = new Request.Builder()
.url("http://your-server.com/api/threshold")
.post(body)
.build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
runOnUiThread(() -> Toast.makeText(MainActivity.this, "上传失败", Toast.LENGTH_SHORT).show());
}
@Override
public void onResponse(Call call, Response response) throws IOException {
// 处理响应
}
});
}
数据接收与报警:
通过WebSocket实现实时数据推送,当服务器检测到超限时,APP弹出报警对话框。
五、系统测试与优化
1. 功能测试
传感器精度测试:将DHT11与标准温湿度计对比,25℃环境下误差±1.5℃,满足需求。
WiFi传输测试:在10米距离内,数据包丢失率低于0.1%。
APP响应测试:阈值设置指令发送后,服务器响应时间小于500ms。
2. 可靠性优化
看门狗定时器:启用STM32独立看门狗(IWDG),防止程序死机。
数据校验:在HTTP请求中添加MD5校验,防止数据篡改。
低功耗设计:在空闲时将STM32进入停机模式(Stop Mode),电流降至10μA。
六、应用场景与扩展性
1. 农业大棚监控
连接土壤湿度传感器与CO2传感器,实现多参数监测。
通过继电器控制灌溉阀门与通风扇,实现自动化环境调节。
2. 仓储物流管理
部署多个节点,形成无线传感器网络(WSN),覆盖大面积仓库。
集成LoRa模块,实现超远距离数据传输。
3. 智能家居控制
添加红外遥控模块,通过手机APP控制空调与加湿器。
集成语音识别(如科大讯飞SDK),实现语音控制功能。
七、总结与展望
本系统以STM32F103C8T6为核心,结合DHT11传感器与ESP8266 WiFi模块,实现了安卓手机端的温湿度实时监测与控制。通过优化硬件选型与软件算法,系统在精度、稳定性与成本之间取得了平衡。未来可进一步集成AI算法,实现温湿度预测与自适应控制,为物联网应用提供更智能的解决方案。
责任编辑:David
【免责声明】
1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。
2、本文的引用仅供读者交流学习使用,不涉及商业目的。
3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。
4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。
拍明芯城拥有对此声明的最终解释权。

产品分类


2012- 2022 拍明芯城ICZOOM.com 版权所有 客服热线:400-693-8369 (9:00-18:00)