一.系统概述
城市地下管廊智能监测系统的设计如下:
1. 甲烷气体传感器模块:用于实时检测地下管道中甲烷气体的浓度。数据通过无线模块上传至上位机端进行显示和进一步处理。可以在上位机端设定甲烷浓度的阈值,一旦超过设定阈值,触发蜂鸣器报警。
2. 温湿度传感器模块:实时采集地下管道的温度和湿度数据。数据传输至上位机端,用于环境参数监测和分析。
3. GPS定位模块:用于获取管道位置的精确定位信息,辅助监测系统的管道管理和事件定位。
4. 无线通信模块:实现数据的无线传输,将采集到的各种数据上传至上位机端。
5. 上位机端设计:接收和显示来自地下管廊监测系统的数据。可以设置和调整甲烷浓度的阈值。当监测到甲烷浓度超过设定阈值时,触发蜂鸣器报警,提醒操作人员或自动系统。
6. HX711压力传感器模块:用于检测管道内部的压力变化,特别是异常压力情况。将异常压力数据发送至上位机端,用于及时响应管道的异常状态。
二.电路设计
电路图采用Altium Designer进行设计:
1. 通过STM32F103C8T6单片机作为系统主控,最小系统电路是整个电路的核心;
2. 使用MQ-4进行甲烷浓度检测并将模块的模拟输出脚与单片机的模拟输入脚相接;
3. 通过DHT11进行温湿度检测,并通过one-wire总线与单片机的GPIO脚进行连接;
4. 使用HX711压力检测模块进行管道内的压力检测,通过DAT数据脚和SCK脚与单片机的GPIO脚进行连接;
5. 通过GPS定位模块ATGM336H进行位置检测,并通过UART串口与单片机进行连接;
6. 通过ESP8266-01S将检测到数据上传到上位机,通过UART串口与单片机进行通信;
7. 使用蜂鸣器进行报警,蜂鸣器采用的有源蜂鸣器,使用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(9600);
TIM4_Init(300,7200);
// while(DHT11_Init()){}
Adc2_Init();
Relay_init();
Beep_init();
HX711_InIt();
Get_Maopi();
Led1_init();
Relay_init();
ALi_ESP8266_GPIO_Init();
MQTT_Buff_Init();
AliIoT_Parameter_Init();
while(1)
{
OLED_Display_Cotrol(); //显示控制函数
}
}