基于STM32F103的智能家居环境监测系统设计
创作时间:
作者:
@小白创作中心
基于STM32F103的智能家居环境监测系统设计
引用
CSDN
等
12
来源
1.
https://blog.csdn.net/weixin_51676207/article/details/136808996
2.
https://blog.csdn.net/qq_42930154/article/details/104532523
3.
https://blog.csdn.net/xingmujia/article/details/139182583
4.
https://blog.csdn.net/qq_52241440/article/details/139728912
5.
https://blog.csdn.net/Chen_rr/article/details/85373363
6.
https://blog.csdn.net/Dust_Fear/article/details/137612636
7.
https://blog.csdn.net/zy2232652/article/details/142419057
8.
https://cloud.baidu.com/article/3423580
9.
https://blog.csdn.net/weixin_68094467/article/details/137456560
10.
https://cloud.baidu.com/article/3411192
11.
https://www.cnblogs.com/zhaoweiwei/p/18310882/SPI
12.
https://wiki.ruilongmaker.cc/index.php?title=(SKU:RLSEB011HT)DHT11%E6%B8%A9%E6%B9%BF%E5%BA%A6%E4%BC%A0%E6%84%9F%E5%99%A8
随着物联网技术的快速发展,智能家居已经逐渐走进我们的生活。本文将介绍如何使用STM32F103微控制器,结合DHT11温湿度传感器和ESP8266 Wi-Fi模块,打造一个简单实用的智能家居环境监测系统。
01
系统架构
整个系统由三个核心部分组成:
- STM32F103微控制器:作为主控单元,负责数据采集和处理。
- DHT11温湿度传感器:用于监测环境的温度和湿度。
- ESP8266 Wi-Fi模块:实现数据的无线传输,将监测数据上传至云端。
02
硬件连接
STM32F103与DHT11的连接
DHT11采用单线制串行接口,只需一根数据线即可完成通信。连接方式如下:
- DHT11的VDD引脚接STM32F103的3.3V电源
- DHT11的GND引脚接地
- DHT11的DATA引脚接STM32F103的任意一个GPIO口(例如PA4)
STM32F103与ESP8266的连接
ESP8266通过串口与STM32F103通信,连接方式如下:
- ESP8266的TXD引脚接STM32F103的RXD引脚(例如PA10)
- ESP8266的RXD引脚接STM32F103的TXD引脚(例如PA9)
- ESP8266的VCC引脚接3.3V电源
- ESP8266的GND引脚接地
03
软件设计
DHT11数据读取
DHT11的数据读取需要精确的时序控制。以下是读取DHT11数据的关键代码:
u8 DHT11_Read_Bit(void)
{
u8 retry=0;
while(DHT11_DQ_IN && retry<100) retry++;
if(retry>=100) return 0;
retry=0;
while(!DHT11_DQ_IN && retry<100) retry++;
if(retry>=100) return 0;
DELAY_US(40);
if(DHT11_DQ_IN) return 1;
else return 0;
}
u8 DHT11_Read_Byte(void)
{
u8 i,dat=0;
for(i=0;i<8;i++)
{
dat<<=1;
dat|=DHT11_Read_Bit();
}
return dat;
}
u8 DHT11_Read_Data(u8 *temp,u8 *humi)
{
u8 buf[5],i,sum=0;
DHT11_Rst();
if(DHT11_Check()==0) return 1;
for(i=0;i<5;i++) buf[i]=DHT11_Read_Byte();
for(i=0;i<4;i++) sum+=buf[i];
if(sum!=buf[4]) return 1;
*humi=buf[0];
*temp=buf[2];
return 0;
}
ESP8266通信控制
ESP8266通过AT指令进行控制。以下是连接Wi-Fi和发送数据的关键代码:
void ESP8266_SendData(char *data)
{
char cmd[100];
sprintf(cmd,"AT+CIPSEND=%d\r\n",strlen(data));
HAL_UART_Transmit(&huart2,(uint8_t*)cmd,strlen(cmd),0xFFFF);
HAL_UART_Transmit(&huart2,(uint8_t*)data,strlen(data),0xFFFF);
HAL_UART_Transmit(&huart2,(uint8_t*)"\r\n",2,0xFFFF);
}
void ESP8266_Init(void)
{
char cmd[100];
// 设置为Station模式
HAL_UART_Transmit(&huart2,(uint8_t*)"AT+CWMODE=1\r\n",13,0xFFFF);
// 连接Wi-Fi
sprintf(cmd,"AT+CWJAP=\"%s\",\"%s\"\r\n",SSID,PASSWORD);
HAL_UART_Transmit(&huart2,(uint8_t*)cmd,strlen(cmd),0xFFFF);
// 启动TCP连接
HAL_UART_Transmit(&huart2,(uint8_t*)"AT+CIPSTART=\"TCP\",\"api.thingspeak.com\",80\r\n",46,0xFFFF);
}
04
实际应用
本系统可以应用于多种智能家居场景:
- 环境监测:实时监测室内温湿度,通过手机APP远程查看。
- 异常报警:当温湿度超出设定范围时,系统自动发送报警信息。
- 数据记录:将历史数据上传至云端,方便用户随时查看和分析。
通过以上设计,我们成功搭建了一个基于STM32F103的智能家居环境监测系统。该系统具有成本低、功耗小、可靠性高等特点,非常适合家庭使用。读者可以根据自己的需求,进一步扩展系统的功能,如添加更多的传感器或实现更复杂的控制逻辑。
热门推荐
槽钢层漏水问题及处理方法
经常吃“芋头”有什么好处?中医:或能解决5个问题,别嫌样子丑
银行的金融市场业务的投资策略制定方法有哪些?
汽车电瓶一般用几年更换?了解电瓶保养与更换的正确方式
LLM大语言模型原理、发展历程、训练方法、应用场景和未来趋势
在“周末实验室”逐梦科学
殡葬行业:展望未来的演变与革新之路
我国股市当前经济形势及投资策略分析
机场安检员揭示:这4样物品可顺利带上飞机,别再扔掉!
丙烯颜料稀释技巧:创造不同流动性的抽象画效果
吊桥效应背后的秘密:如何理智地吸引对方?
泉州市培元中学:百年名校的传承与创新
孜然是个啥?中国孜然的产地主要在哪?为啥烧烤离不开它?涨知识
为什么要食用碘盐 不会碘过量吗?
朝阳区将打造一批精品街区,朝外、国贸、三里屯等片区将焕新
健身减脂必备!鸡胸肉怎么吃更能瘦?
万华化学拳头产品在美国遭反倾销调查
智慧服务区建设情况及发力方向
感冒药,多种联用、换用要当心
新中国75周年华诞 新中国跨越式发展之航空工业篇/国产大飞机 C919飞向世界
外卖食品的五大健康隐患:从营养失衡到环境污染
如何计算和改进餐厅COGS
华为鸿蒙2024年一季度在中国超越苹果iOS
探秘深海:带你领略《海底两万里》的奇幻冒险
港中大毛传斌团队开发新型噬菌体纳米纤维,增强光动力治疗效果
长期不换微信头像的人,通常是这样的性格,不能小看
10本世界顶级数学大师教材著作,全是0基础自学神器!
比赛前瞻:张志磊VS卡巴耶尔——中国力量能否碾碎欧洲新贵的野心
破除产业链“内卷”竞争,外卖行业打响第一枪
帮ADHD孩子克服拖延症:专家建议4个实用方法