一.系统概述

系统实现了对室内环境数据的监测和控制,主要功能模块及控制逻辑如下:

  1. 温湿度传感器模块
    • 实时采集室内温湿度数据。
    • 在自动模式下,当温度超出预设阈值时,启动风扇以降低温度;当湿度超出预设阈值时,启动加湿器以调节湿度。

  2. CO2传感器模块
    • 实时监测室内CO2浓度。
    • 当CO2浓度超过设定阈值时,触发蜂鸣器报警,提示需要通风或采取其他措施。

  3. 光照传感器模块
    • 实时获取室内光照强度。
    • 在自动模式下,当光照不足(低于设定阈值)时,自动开启LED灯。

  4. 无线通信模块
    • 将各项环境数据通过无线通信模块上传到PC端,实现远程监控和数据显示。

  5. PC端控制按钮
    • 在PC端设定各参数阈值,并可选择自动或手动控制模式。
    • 在手动模式下,通过PC端设计的控制按钮实现对风扇、加湿器、LED灯等调节装置的远程开关控制。

在这里插入图片描述

二.电路设计

电路图采用Altium Designer进行设计:

  1. 系统以STM32F103C8T6单片机作为主控,构成整个电路的最小系统核心;
  2. 利用MQ-135模块检测CO2浓度,将模块的模拟输出端直接连接至单片机的模拟输入端;
  3. DHT11传感器用于温湿度检测,通过one-wire总线与单片机的GPIO口进行连接;
  4. 采用光敏电阻模块来检测光照强度,其模拟输出端与单片机的模拟输入端相连;
  5. 通过ESP8266-01S模块,将采集到的数据经UART串口上传到上位机;
  6. 系统采用有源蜂鸣器实现报警功能,通过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

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐