硬件设计_基于STM32单片机的室内数据检测系统
·
一.系统概述
系统实现了对室内环境数据的监测和控制,主要功能模块及控制逻辑如下:
-
温湿度传感器模块
• 实时采集室内温湿度数据。
• 在自动模式下,当温度超出预设阈值时,启动风扇以降低温度;当湿度超出预设阈值时,启动加湿器以调节湿度。 -
CO2传感器模块
• 实时监测室内CO2浓度。
• 当CO2浓度超过设定阈值时,触发蜂鸣器报警,提示需要通风或采取其他措施。 -
光照传感器模块
• 实时获取室内光照强度。
• 在自动模式下,当光照不足(低于设定阈值)时,自动开启LED灯。 -
无线通信模块
• 将各项环境数据通过无线通信模块上传到PC端,实现远程监控和数据显示。 -
PC端控制按钮
• 在PC端设定各参数阈值,并可选择自动或手动控制模式。
• 在手动模式下,通过PC端设计的控制按钮实现对风扇、加湿器、LED灯等调节装置的远程开关控制。

二.电路设计
电路图采用Altium Designer进行设计:
- 系统以STM32F103C8T6单片机作为主控,构成整个电路的最小系统核心;
- 利用MQ-135模块检测CO2浓度,将模块的模拟输出端直接连接至单片机的模拟输入端;
- DHT11传感器用于温湿度检测,通过one-wire总线与单片机的GPIO口进行连接;
- 采用光敏电阻模块来检测光照强度,其模拟输出端与单片机的模拟输入端相连;
- 通过ESP8266-01S模块,将采集到的数据经UART串口上传到上位机;
- 系统采用有源蜂鸣器实现报警功能,通过NPN三极管对蜂鸣器进行驱动。


三.程序设计
#include “sys.h”
#include “delay.h”
#include “adc.h”
#include “math.h”
#include “key.h”
#include “OLED_I2C.h”
#include “Beep_Led_Relay.h”
#include “Control_Report_To_Police.h”
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
delay_init(); //延时函数初始化
Beep_init();
Beep=1;//蜂鸣器初始化 系统上电后先让蜂鸣器停止叫
uart_init(9600);
OLED_Init(); //OLED初始?
Relay_init(); //PB8
Adc_Init(); //PA1 光照
Adc_Init2(); //PB0 二氧化碳
while(DHT11_Init()){} //PA12
OLED_CLS(); //OLED清屏
Usart2_Init(115200); //串口初始化为115200
if(esp8266_start_trans()){}
while(1)
{
OLED_Display_Cotrol(); //显示控制函数
}
}
四.资料内容

24-32-110
更多推荐



所有评论(0)