基于单片机的井盖监测系统
摘要: 本研究设计了一种基于STM32单片机的智能井盖监测系统,旨在解决传统井盖防盗措施不足的问题。系统通过霍尔传感器实时监测井盖移动状态,并集成温度检测(DS18B20)、水位监测(超声波模块)和甲烷浓度检测功能。采用NB-IoT无线通信技术将监测数据实时传输至管理平台,当检测到异常时可立即向管理人员发送报警信息。硬件设计包括主控电路、传感器模块和通信模块,软件部分采用Keil5开发环境编写数据
摘 要
当前我国设计的井盖监测主要通过在井盖上放置标识等放置被盗,然后监测到被盗后,通过摄像头对其进行跟踪,导致当前还是存在很多井盖被盗,因此此次设计一款主要针对井盖防盗系统,监测到井盖移动时发送信息到管理人员的手机上,此外此次设计还增加了温度检测、水位监测和甲烷监测,使得井盖更加的安全。
此次设计采用硬件和软件配合进行设计,硬件采用STM32单片机作为主控芯片,采用霍尔传感器对当前井盖是否移动进行监测,采用DS18B20对当前的温度进行实时监测,采用超声波对当前的水位进行实时监测,采用甲烷监测模块对当前的甲烷浓度进行监测。然后通过keil5对程序的编程,进行主程序、数据采集功能子程序、按键子程序、显示子程序、WIFI通信子程序进行撰写和调试,然后通过软件和硬件的配合进行调试,此次设计最终调试可以实现井盖的情况和井盖环境进行实时监测和数据的实时传输。该控制方案更加科学合理,性能稳定,功能完善,成本低廉,实际效果理想.
关键词:STM32F103;井盖监测;温度检测;水位监测;甲烷监测
Abstract
The thermoregulation function of infants is not perfect. One of the most important measures for effective nursing of infants, especially infants with very low body weight, is to maintain an optimal environment. A large amount of modern biomedical data shows that a warm environment can reduce the incidence and mortality of infants caused by direct or indirect cold stress response, thus effectively guaranteeing the survival rate of newborns. The crib can create a comfortable environment with clean air and suitable temperature and humidity for the newborn, so as to avoid the infection of the baby to enhance its body resistance and ensure the growth of the baby. Traditional cribs have the following drawbacks: family members listen to crying before calming down, lack of crying detection; Lack of bed-wetting monitoring; ; Can not realize automatic temperature and humidity control; The crib cannot be tested for impact.
In view of the traditional control equipment of the poor ability of automatic control is improved, the baby bed temperature and humidity control system as the carrier to complete the data acquisition and signal processing, core USES STM32 MCU, and comply with, drive heating, cooling, humidification, dehumidification, music playback, shaking table for processing, with liquid crystal display module as a display unit, complete the temperature and humidity, the baby is No crying detection module, whether the baby is bed-wetting detection module, whether the baby is hit detection module and other signals are sampled to realize the monitoring of the designed crib.
The monitoring system is an improvement on the traditional crib in both hardware and software. Bed-wetting monitoring module and music playing are added in the system. The control scheme is more scientific and reasonable, stable performance, perfect function, low cost and ideal practical effect..
Key words: STM32; Infant; Monitoring; Testing; Design
目录
1 绪论
1.1 研究背景及其研究意义
随着国民经济的快速发展,人民生活水平得到提高,我国的城市现代化进程也在快速推进,由此推动了城市基础设施的建设,例如地下排水排污管道,地下电缆电线的排线,地下天然气管道的安置等等。
为了方便后期的维护和管理,工作人员设置了诸多检查井,大量的检查井的设置最终使得每一个城市出现了大量的井盖。当前每个城市的检查井的数量已经达到几十万甚至上百万,虽然检查井在推动城市现代化快速发展上发挥着重要作用,但是如此多的检查井的出现,也就意味着我们并不能对每一个检查井做到实时监控和管理,这就导致井盖问题的出现,如井盖的丢失、破损、污水溢出、可燃气体浓度过高等。
一是由于我们的的监控和管理方式不到位,导致社会上的不法分子做出偷窃检查井的井盖,盗窃检查井内的电缆电线等犯罪行为,井盖的丢失也会存在诸多隐患,如大众不小心掉落检查井中,汽车轮胎陷入检查井中等等。二是由于部分地区排水排污管道设施的规划并不合理,加上后期维护不及时,从而导致管道堵塞,以至污水从检查井中溢出,这不仅影响民众出行,对城市的卫生建设也增添了不少阻力。三是检查井内的排污物没有及时排出,不断发酵产生大量可燃气体,这对于经济的发展和个人的安全都是一个巨大的隐患;此外天然气管道的长时间使用,后期维护不到位,可能会引起天然气泄漏,从而导致燃烧甚至爆炸等严重危害我们人身安全的隐患。
这些问题不仅影响着相关企业设备的正常使用,也会造成不必要的经济损失,甚至会引发社会风气不正的危机。为了尽量防止井盖隐患的发生,我国的许多城市采取了人工巡查的方式进行定期的监测。但是人工巡查不可能全方位的监测城市井盖状况,也不能及时发现所有的问题井盖,井盖出现问题有时需要很久才能发现,而往往危害就产生在这个时间段,并且实施专人巡查会造成大量的人力、物力、财力的浪费。考虑到人工巡查井盖的不足,以及当前井盖问题的频发,本文把如何实现城市井盖的安全监测作为了课题的主要研究内容。
随着物联网的快速发展,在 2012 年我国就提出了"智慧城市”的试点,这也标志着我国对城市现代化建设的越来越重视,城市井盖的实时监测系统也顺势而起。本文提出的基于物联网的智能井盖安全监测系统,实现了对城市井盖群的实时监测,有效的避免了人工监测对部分井盖的遗漏。该系统将采集终端节点放置在井盖下,对井盖的角度、可燃气体浓度和水位高度进行实时采集,然后通过无线通信方式将采集的信息传输至监测中心平台,管理工作人员可以通过上位机实时的监测各个井盖的状况,如有异常即可通过监测平台的警示,及时前去处理。该系统利用了当下前沿的传感器技术,对井盖情况的多数据采集,并且充分发挥了无线传输在井盖监测系统的应用。对于城市井盖的安全状况若采用有线监测,那么就需要重新挖掘铺线管道,这样会造成严重的人力、物力、财力的浪费。本系统的通过无线通信方式,不仅减少了重新挖掘铺线管道的高成本问题,而且避免了人工定期巡查城市井盖模式中易出现的安全隐患,管理者只需在办公室就可以实时了解井盖群的状况信息,降低了管理成本,提高管理者的工作效率。
1.2 国内外研究现状
城市井盖群事故的频频发生,不仅影响着我们公众的人身安全和财产安全,还影响着城市的基础设施的稳定开展。同时,我国的城市井盖群的防护工作开始较晚,在进入改革开放后,政府相关部门才开始关注城市井盖群的安全防护问题。虽然我国井盖安防管理工作开展相对较晚,但是我国对于井盖安防的专利成果还是有很多的,在这些成果中有 100 多项是复合材料井盖,有 100 多项是采用技术手段进行井盖安防管理和防盗井盖的设置,如曲柄双滑杆式防盗锁,有线无线结合的实时监测等。
解兆延教授为防止井盖和电缆被盗,设计了一种基于物联网的井盖防盗技术。采用工频非接触式供电和直流电机驱动井盖技术,通过专用设备打开井盖,并利用无线通信技术将井盖情况发送到客户端。
江苏物泰信息科技有限公司提出了井盖防盗报警技术应用解决方案,采用有线无线结合的方式,将井盖是否被窃取的信息及时上传给管理平台,以便管理人员及时处理,虽然该系统可以实现大范围的井盖群实时监测,但是该方案采用有线方式进行数据传输,需要单独铺线,会造成大量的人力、物力以及财力的浪费。
与国内相比,那些发达国家的经济发展更早,对于国家的环保和安全问题早已成为其当前最为关注的问题,井盖的安防管理在市政建设中也因此得到了极大的重视,所以国外发达国家在井盖的安防管理方面更加领先,日本颁布了相关的法律法规,使得被盗窃的井盖不能变现,并且日本有专门的的井盖维护公司,当井盖出现问题时,政府联系相关负责公司即可及时解决问题。日本在积极采用法律法规、责任到公司方式进行井盖保护的同时,还对此城市中的每个井盖都设定了不同的编号,通过对城市井盖的编号设定,确保每一个井盖都有相应的记录,并将所有的井盖统计到一个系统中,方便后期的管理。一方面管理者通过管理系统查询破损的井盖,另一方面管理者通过管理系统知道井盖使用时间,方便后期的及时更换。此外日本基于RFID技术研发了井盖监管系统,此系统应用于下水道的井盖安防管理上,研发人员将RFID电子信息标签安放在城市井盖中,方便工作人员及时发现井盖状况,该系统可以帮助工作人员快速定位井盖位置,虽然日本针对城市井盖问题采取了诸多积极的举措,在一定程度上避免城市井盖隐患的发生,但是不能全方位全时段的对城市井盖进行实时监测。
井盖管理模式从无防护无管理的模式开始,接着发展到了采用人工巡查的方式进行井盖安防管理。之后又出现了物防和人防结合的井盖安防管理模式,即对井盖进行改造为防盗井盖,同时进行人工巡查和维护。最后随着科学技术的日新月异,技防也因此产生,尤其是当前物联网的快速发展,国家对“智慧城市”项目的越加重视,井盖安防管理也将物联网技术融入安防管理中,以此实现对井盖安防的全时段和全方位的监管。城市井盖的安全防护工作大体经历了四个阶段。
每个城市井盖安全防护阶段的特点:
第一阶段-无防护:
◆ 没有任何防护措施
◆ 井盖丢失、损毁严重
第二阶段-人防:
◆ 需要人工定期进行巡视
◆ 不能全方位的进行井盖安全监测,易遗漏
◆ 不能全时段监测,不法分子有可趁之机
◆ 井盖丢失现象仍然频发
第三阶段-物防:
◆ 对井盖进行改造,成本高
◆ 科技不断进步,防盗井盖易破解
◆ 仍然需要人防结合
第四阶段-技防:
◆ 将科学技术融入井盖管理工作中
◆ 实现全时段、全方位的井盖安防管理
◆ 实现井盖异常状况及时报警功能
◆ 城市井盖群安防问题得到有效解决
根据国内外发展现状的分析发现,当前人们越来重视城市井盖丢失的问题,却忽视了城市井盖的其他问题,如污水溢出,可燃气体浓度过高等,这些问题都会危及市民的人身安全。因此本文设计了多传感器的采集节点,实现了对井盖角度、可燃气体浓度和水位高度的数据采集,结合单片机技术和NB技术,实现了井盖数据的无线传输,最终通过监测中心平台实时监测城市井盖情况。
2 系统设计方案
2.1 整体方案设计
本设计以STC89C52单片机为核心控制器,加上其他的模块一起组成井盖检测的整个系统,其中包含中控部分、输入部分和输出部分。中控部分采用了STC89C52单片机,其主要作用是获取输入的部分数据,经过内部处理,控制输出部分。输入由五部分组成,第一部分是温度检测模块,通过该模块可以当前环境的温度;第二部分是超声波检测模块,通过该模块检测水位;第三部分是甲烷检测模块,通过该模块检测甲烷的距离;第四部分是霍尔传感器模块,通过该模块检测井盖是否移动,防止井盖被偷;第五部分是供电模块,通过该模块可给整个系统进行供电。输出通过NB模块将检测的数据传输到手机,系统框图如图2.1所示。

图2.1 系统框图
2.2 主要器件选型选择
2.2.1 主控模块方案选择
选择STM32单片机,选择STM32单片机作为此次设计井盖监测智能监护的主控芯片,使用STM32具有很多的优点:该模块可供用户使用的串口较多,后期用户进行无线通信等功能的增加较为方便,且该单片机的运行速度较快,使得该设计灵敏度更高[7]。采用STC89C52单片机,选择这款单片机具有的优点:这款单片机结构较为简单,可供用户使用的输入输出口较多,具有8K的闪存。此次设计采用STM32更加的灵敏、且后期进行功能拓展更加的方便,且STC89C52只有一个串口,不能满足此次设计的要求,所以最后选择采用STM32作为此次设计的主控芯片[8]。
2.2.2 温度检测模块方案选择
方案一:热敏电阻,它是通用电阻元件。其基本原理是电阻值会随着温度的升高而减小。它类似于滑动变阻器。在电路原理上,它通常与ADC集成IC一起使用,根据采集到的脉冲信号将其转换为模拟信号,然后发送至微控制器进行设计和解决。
方案二:DS18B20集成IC,它是一个集成传感器,它由一个复杂的电源电路组成。它是一个数字温度收集传感器。由于它是一个内部晶体振荡器,因此不需要先将脉冲信号转换为模拟信号。该电路将受到工作温度的影响,并根据引起固定频率的单个脉冲进行计数,然后对数据信息进行分析,然后获得测得的温度值[9]。
分析方案一:由于电路原理更加复杂,并且由于温度传感器和温度值不能线性变化,测量的温度和实际的温度存在很大差异,并且成本很高。因此,该计划被丢弃。
分析方案二:DS18B20传感器是一个相对稳定的温度传感器,它目前在市场上得到广泛使用,并且参考资料较为完整的。有许多参考示例和代码,可以大大减少开发和设计。难度较低和价格也很划算,本论文设计检测系统是基于温度传感器的,要求能要尽可能的体积小、精度高、电路简洁和价格低。并且要适应此次设计工作环境。在此基础上,选择了美国DALLAS半导体公司新一代的数字传感器DS18B20。
附录
附录1:原理图

附录二:PCB
附录3 主程序
/**********************************
包含头文件
**********************************/
#include "sys.h"
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#include "math.h"
#include "delay.h"
#include "gpio.h"
#include "usart.h"
#include "ds18b20.h"
#include "adc.h"
#include "hc-sr04.h"
#include "bc26.h"
/**********************************
变量定义
**********************************/
uint32_t time_num = 0; //10ms计时
char display_buf[32]; //显示数组
short temp_value = 0; //温度值
short temp_old = 0; //上次温度值
u16 gas_value = 0; //甲烷值
u16 gas_old = 0; //上次甲烷值
u16 distance_value = 0; //距离值
u16 distance_old = 0; //上次距离值
_Bool state_mc = 0; //井盖上次状态
/**********************************
函数声明
**********************************/
void Monitor_function(void); //监测函数
/****
******* 主函数
*****/
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //配置中断分组为2号
Delay_Init(); //延时初始化
Gpio_Init(); //IO初始化
Usart1_Init(115200); //串口1初始化,打印信息用
Usart2_Init(115200); //串口2,BC26模块通信
Adc_Init(); //ADC初始化
HC_SR04_Init(); //HC_SR04初始化
UsartPrintf(USART1,"DS18B20初始化\r\n");
while(DS18B20_Init()); //DS18B20初始化
UsartPrintf(USART1,"BC26初始化\r\n");
BC26_Init(); //BC26初始化
MQTT_Init(); //MQTT初始化
UsartPrintf(USART1,"初始化完成\r\n");
while(1)
{
Monitor_function(); //监测函数
time_num++; //计时变量+1
Delay_ms(10);
if(time_num % 5 == 0) //最小系统LED闪烁
LED_SYS = ~LED_SYS;
if(time_num >= 5000)
{
time_num = 0;
}
}
}
/****
*******监测函数
*****/
void Monitor_function(void)
{
if(time_num % 10 == 0) //约2s检测一次
{
temp_value = DS18B20_Get_Temp(); //获取温度值
gas_value = 30*(Get_Adc_Average(0,3)*3.3/4096.0); //获取甲烷值
distance_value = Hcsr04_GetDistance(temp_value/10); //获取距离值
}
if(temp_old != temp_value || gas_old != gas_value || distance_old != distance_value || state_mc != CHECK_MC)
{ //如果有值和上次测量值不一致,那么发送所有测量值
BC26_Send_MeasureData(temp_value,gas_value,distance_value,(u16)CHECK_MC);
temp_old = temp_value;
gas_old = gas_value;
distance_old = distance_value;
state_mc = CHECK_MC;
}
}
以上为部分内容节选,如您需要获取完整版,欢迎随时联系我们
更多推荐

所有评论(0)