一.系统概述

工厂环境监测系统的具体功能如下:
1. 通过温湿度传感器、烟雾传感器、乙醇传感器、CO传感器、光敏检测模块进行环境参数检测;
2. 检测到的环境参数会通过OLED显示屏进行显示;
3. 使用按键进行参数阈值设定,当检测到环境参数超过设定阈值后就会控制蜂鸣器和LED灯报警;
4. 使用语音播报模块进行检测参数的实时播报;
5. 当检测到温度超过阈值还会进行风扇降温,当检测到光强过低就会控制开灯;
6. 通过无线模块将检测到环境参数上传到上位机端。

二.电路设计 

电路图采用Altium Designer进行设计:
1. 通过STM32F103C8T6单片机作为系统主控,最小系统电路是整个电路的核心;
2. 通过DHT11进行温湿度检测,并通过one-wire总线与单片机的GPIO脚进行连接;
3. 使用MQ-2进行烟雾浓度检测并将模块的模拟输出脚与单片机的模拟输入脚相接;
4. 使用MQ-7进行CO浓度检测并将模块的模拟输出脚与单片机的模拟输入脚相接;
5. 使用MQ-4进行乙醇浓度检测并将模块的模拟输出脚与单片机的模拟输入脚相接;
6. 使用光敏电阻模块进行光强检测,传感器的模拟端与单片机的模拟输入端相接;
7. 使用独立按键进行阈值设定,按键的一端接地,一端接单片机的GPIO口;
8. 通过0.96寸的OLED12864进行数据显示,采用IIC总线的形式与单片机进行通信;
9.. 使用JR6001进行语音播报,并通过UART串口与单片机进行连接;
10. 通过继电器模拟风扇控制,并将继电器的数据输出脚与单片机的GPIO脚进行连接;
11. 使用蜂鸣器进行报警,蜂鸣器采用的有源蜂鸣器,使用NPN三极管进行蜂鸣器进行驱动。

三.程序设计

#include "sys.h"
#include "delay.h"
#include "adc2.h"
#include "math.h"
 #include "adc.h"
#include "key.h"
#include "OLED_I2C.h"
#include "Control_Report_To_Police.h"
/************************************************
版权:小常硬件
公众号:微信搜索“小常硬件“在公众号免费下载相关资料
************************************************/

int main(void)
 {	
	 u32 JR6001_Uart_bound=9600;
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
	delay_init();	    	 //延时函数初始化	
  JR6001_Uart1_init(&JR6001_Uart_bound);	 
	TIM4_Init(300,7200);
	while(DHT11_Init());
	OLED_Init(); 
	OLED_CLS();
	 Beep_init();
	 OLED_ShowCN(32,2,0);
	 OLED_ShowCN(32+16,2,1);
	 OLED_ShowCN(32+32,2,2);
	 OLED_ShowCN(32+48,2,3);
	Adc_Init();
	Adc2_Init();
	Adc_Init_ch0();
	Adc2_Init_ch1();
	KEY_Init();
	Relay_init();
	ALi_ESP8266_GPIO_Init();
	MQTT_Buff_Init();
  AliIoT_Parameter_Init();
 Servor_GPIO_Config_Time2_Init();
 OLED_CLS();
 OLED_ShowCN(0,0,10);
 OLED_ShowCN(16,0,11);
  OLED_ShowCN(64,0,6);
 OLED_ShowCN(64+16,0,7);
 OLED_ShowCN(64+8,2,12);
 OLED_ShowCN(64+24,2,13);
 OLED_ShowCN(0,2,14);
 OLED_ShowCN(16,2,15);
 OLED_ShowCN(0,4,4);
 OLED_ShowCN(16,4,5);
 OLED_ShowCN(64,4,16);
 OLED_ShowCN(64+16,4,17);
 OLED_ShowCN(0,6,18);
 OLED_ShowCN(16,6,19);
 OLED_ShowCN(32,6,20);
 OLED_ShowCN(48,6,21);
 JR6001_Uart1_Voice_Add();
  while(1)
	{
    OLED_Display_Cotrol(); //显示控制函数
	}	 
} 

上位机开发界面如下:

四.资料内容

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐