基于ARM的远程温度监测报警系统的设计与实现
摘要:设计了一个基于ARM的远程温度监测报警系统。该温度监测报警系统以Tiny6410为平台,通过DS18B20温度传感器采集温度,利用数据库存储温度、时间值并通过网页显示温度数据。此外,通过在网页上设置温度阈值范围,对超出范围的温度点利用蜂鸣器报警,温度监测范围是-55℃~125℃。
本文引用地址://m.amcfsurvey.com/article/201610/305828.htm0 引言
温度监测广泛应用于社会生活的各个领域,如家电、汽车、材料、电力电子等。在很多生产过程中,温度的监测和控制都直接和安全生产、提高生产效率、保证产品质量、节约能源等重大技术经济指标相联系。随着生活水平的提高和科学技术的进步,无论是工业还是农业或者是日常生活中对温度监测的要求越来越高。温度监测的精度以及不同控制对象的控制方法选择都起着至关重要的作用,在很多领域中温度可能较高或较低,使我们无法靠近或无法实现人力监控,或者在某些环境下温度监测比较危险。因此,需要设计一种可实现智能监测的监测系统,以满足对温度监测日益迫切的需求。
基于此,本文设计了一个基于ARM的远程温度监测报警系统,该系统利用ARM处理器的强大功能,通过读取温度传感器数据,并与设定阈值进行比较,然后对温度进行监测报警。通过内嵌的操作系统μCLinux获得极好的实时性,并且通过TCP/IP协议能与PC机很快的通讯。
1 系统硬件
1.1 ARM平台
该远程温度监测报警系统使用Tiny6410开发板,它是一款以ARM11芯片(三星S3C6410)作为主处理器的嵌入式核心板,该CPU基于ARM1176 JZF—S核设计,内部集成了强大的多媒体处理单元,支持Mpeg4,H.264/H.263等格式的视频文件硬件编解码,可同时输出至LCD和TV显示,它还带有3D图形硬件加速器,以实现OpenGL ES 1.12.0加速渲染。Tiny6410采用高密度6层板设计,尺寸为64×50 mm,它集成了128 M/256M DDR RAM,SLC NAND Flash(256M/1GB)或MLC NAND Flash(2GB)存储器,采用5 V的电压供电,实现CPU必需的各种核心电压转换,还带有专业复位芯片,通过2.0 mm间距的排针,引出各种常见的接口资源,以供开发者进行快捷的二次开发使用。
1.2DS18B20数字温度计
DS18B20数字温度计提供9位(二进制)温度读数,指示器件的温度。信息经过单线接口送入DS18B20或从DS18B20送出。DS18B20的电源可以由数据线本身提供而不需要外部电源。它的测量范围从-55℃~+125℃,精度为0.5℃。可在1 s内把温度变换成数字。
每一个DS18B20包括一个唯一的64位长的序号,序号值存放在DS1820内部的ROM中。DS1820中还有用于贮存测得的温度值的两个8位存贮器RAM,编号为0号和1号。DS18B20有3个引脚,引脚1(GND)的功能是接地,引脚2(DQ)的功能是实现数字输入、输出,引脚3(VDD)的功能是可选+5 V的电源。
本文设计的远程温度监测报警系统硬件部分如图1所示。
![基于ARM的远程温度监测报警系统的设计与实现](http://m.amcfsurvey.com/editerupload/fetch/20160912/305828_1_0.jpg)
2 软件设计
2.1 温度阈值的设置和存储
用户通过web网页界面设置温度阙如图2所示,然后将设定好的温度阈值通过CGI程序以长整型的形式存入缓存文件中,供应用程序调用。
![基于ARM的远程温度监测报警系统的设计与实现](http://m.amcfsurvey.com/editerupload/fetch/20160912/305828_1_1.jpg)
2.2 温度的采集与存储
系统通过DS18B20对周围环境的温度进行采集,每隔十秒采集一次。DS18B20将温度采集值存入到传感器驱动设定好的文件中。系统后台从设备文件中读取温度值与其对应的时间值,并把这些数据存入到数据库中。
2.3 温度报警的实现
首先程序从缓存文件中读取网页上设定好的温度阈值,如果发现从设备文件中读取的当前温度值不在阈值范围内,应用程序就控制蜂鸣器鸣响。如果高于上限报警器每隔1 s响一次,低于下限则报警器响5 s,在阈值区间内则蜂鸣器不报警。传感器如果测量的温度值恢复正常的话,就会关闭蜂鸣器,否则会一直响铃报警。
2.4 远程异常温度信息查看
当用户登陆网页查看异常温度信息时,CGI程序会自动打开数据库,通过命令查询数据库中的全部信息,将异常温度信息及发生的时间提取出来,最后在网页上呈现出这些异常信息。
远程温度监测报警系统各功能模块关系如图3所示。
![基于ARM的远程温度监测报警系统的设计与实现](http://m.amcfsurvey.com/editerupload/fetch/20160912/305828_1_2.jpg)
3 测试结果
首先在web页面上将温度阈值分别设置为:温度下限12℃和温度上限24℃。然后通过DS18B20数字温度计对室内环境温度进行采集,每隔10 s采集一次,其中包括对一杯温度为40℃的热水进行监测30 s。温度采集开始时间是2013年5月6日上午11时,采集总时间为2 min,室温为20℃。温度采集结果如图4所示。
![基于ARM的远程温度监测报警系统的设计与实现](http://m.amcfsurvey.com/editerupload/fetch/20160912/305828_1_3.jpg)
由图4可以看出,2 min内共采集到12条数据,其中包括对热水温度采集的3条数据。在图4的左边一列给出温度采集时间,右边一列给出对应时刻的温度值。
在对图4所示的温度值进行采集过程中,由于杯中热水温度40℃不在阈值范围内,即大于温度上限24℃,所以蜂呜器会自动报警鸣响,报警器每隔1 s响一次,直到在2013年5月6日11:01:30时温度采集值20.75℃处于阈值范围内才关闭蜂鸣器。为了获取温度报警时的相关信息,可登陆网页查看所需报警温度信息,CGI程序自动从数据库中提取出对应温度信息,并将这些信息呈现在网页上,如图5所示。
![基于ARM的远程温度监测报警系统的设计与实现](http://m.amcfsurvey.com/editerupload/fetch/20160912/305828_1_4.jpg)
评论