硬件开发_基于物联网的沼气池环境监测系统
一.系统概述
沼气池环境监测系统的功能如下:
-
数据采集功能:采用STM32单片机作为核心控制器,负责系统的整体数据处理和控制。集成温湿度传感器、甲烷传感器和气压传感器,实时监测沼气池内部的温度、湿度、甲烷浓度和气压。通过OLED显示屏实时显示采集到的环境参数。
-
无线通信功能:通过无线通信模块将采集到的环境数据上传至服务器。
-
远程监控软件功能:监控端与服务器进行信息交互,实时读取并显示沼气池内的环境数据。监控端设有控制按钮,用户可以设定甲烷浓度的报警阈值。当系统监测到甲烷浓度超过设定阈值时,将触发报警措施,通知相关人员进行处理和干预。
二.电路设计
电路图采用Altium Designer进行设计,主要内容如下:
-
核心控制单元:使用STM32F103C8T6单片机作为系统的主控,构成最小系统电路。
-
温湿度检测:通过DHT11传感器进行温湿度检测,采用one-wire总线连接至单片机的GPIO口。
-
甲烷浓度检测:使用MQ-4传感器检测甲烷浓度,将其模拟输出端连接至单片机的模拟输入端口。
-
气压检测:采用XGZP6847气压模块进行气压监测,其模拟输出端接入单片机的ADC输入端。
-
数据无线传输:通过ESP8266-01S模块将检测到的数据上传至上位机,与单片机通过UART串口进行通信。
-
报警功能:使用有源蜂鸣器进行报警,采用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)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
delay_init(); //延时函数初始化
Usart1_Init(115200);
TIM4_Init(300,7200);
while(DHT11_Init()){}
OLED_Init();
OLED_CLS();
OLED_ShowCN(32,2,0);
OLED_ShowCN(32+16,2,1);
OLED_ShowCN(32+32,2,2);
OLED_ShowCN(32+32+16,2,3);
OLED_CLS();
Adc_Init();
Adc2_Init();
Beep_init();
ALi_ESP8266_GPIO_Init();
MQTT_Buff_Init();
AliIoT_Parameter_Init();
OLED_ShowCN(0,0,10);
OLED_ShowCN(0+16,0,11);
OLED_ShowCN(64,0,12);
OLED_ShowCN(64+16,0,13);
OLED_ShowCN(0,2,4);
OLED_ShowCN(0+16,2,5);
OLED_ShowCN(0,4,24);
OLED_ShowCN(16,4,25);
OLED_ShowCN(0,6,4);
OLED_ShowCN(0+16,6,5);
while(1)
{
OLED_Display_Cotrol(); //显示控制函数
}
}
四.资料内容
24-32-43