《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于Raspberry Pi的远程监测系统的设计与实现
基于Raspberry Pi的远程监测系统的设计与实现
2014年微型机与应用第19期
郑世珏, 徐 虹
华中师范大学 计算机学院,湖北 武汉 430079
摘要: 为解决普通计算机爱好者及在校学生难以入门物联网和嵌入式技术的问题,介绍了一种基于ARM的简单而强大的微型计算机,并利用该计算机平台设计和实现了智能监控、火警预警和温湿度监测。
Abstract:
Key words :

  摘 要: 为解决普通计算机爱好者及在校学生难以入门物联网和嵌入式技术的问题,介绍了一种基于ARM的简单而强大的微型计算机,并利用该计算机平台设计和实现了智能监控、火警预警和温湿度监测

  关键词:ARM;Raspberry Pi;监测;智能家居;温/湿度监测;红外拍照

0 引言

  随着集成电路技术的发展,计算机的体积继续缩小,各方面的性能飞速提高,而价格却不断下跌,计算机逐渐走进人们生产生活的各个领域。物联网和集成电路的快速发展及人们对居住环境舒适、便捷、安全等要求的不断提高,智能设备及智能家居已经呼之欲出[1]。目前,国内外都对智能家居进行了广泛而深入的研究及建设,然而大多数开发组都是自己设计电路、焊接元件,这就将很多非电子专业的电脑爱好者限制在了门外。本文介绍了基于Raspberry Pi的监控系统的设计与实现,大大降低了普通爱好者及个人开发智能家居的难度。

  Raspberry Pi[2]是一款基于ARM的只有一张信用卡大小的单板机计算机。它由英国的Raspberry Pi基金会所开发,目的是以低价硬件及自由软件刺激在学校的基本的电脑科学教育。Raspberry Pi只有信用卡大小,B板配有基于ARM11的700 MHz处理器,512 MB内存,RJ45以太网接口和GPIO、UART、I2C、SPI等接口。本文利用GPIO(通用输入/输出接口)实现了温度/湿度监测、火焰警报,并且红外配合摄像头实现了有人时才拍照存档及通过手机或电脑查看“MJPG-streamer[3]”实时视频流的一种智能家居解决方案。

1 系统设计

  1.1 系统架构

  智能家居采用三层结构,用户可以通过PC或手机登录浏览器查看存储在服务器上的温度、湿度、照片、火焰异常。其中照片以时间为文件名,火焰异常时记录时间,用户可以查看指定时间段的照片或火焰异常。用户还可以通过PC或手机登录浏览器直接查看终端摄像头实时视频监控。终端将收集到的温度、湿度、照片上传到CentOS服务器,用户通过浏览器查看终端上传到服务器的数据[4]。当查看实时视频监控时用户通过客户端直接查看终端视频流。完整智能家居系统框架如图1所示。

001.jpg

  1.2 终端模块

  终端由Raspberry Pi B板、获取温湿度的DHT11传感器模块、人体红外感应模块、火焰传感器模块和用于拍照及视频监控的摄像头模块组成。其中DHT11[5]温度测量范围为0~50℃,湿度测量范围为20 %RH~90 %RH,人体红外感应模块为 HC-SR501,火焰传感器模块基于LM393,摄像头模块为Raspberry Pi Camera模块。终端模块及接口如图2所示。

002.jpg

2 系统实现

  2.1 各模块实现

  Raspberry Pi终端开机后启动监控主程序,主程序创建3个进程,分别为温湿度监测进程、火焰预警进程和人体红外监测进程。系统每隔60 s通过GPIO激活温湿度传感器获取一次数据。火焰预警进程每隔3 s查询一次火警传感器状态是否正常,若不正常则发出预警并记录时间。人体红外监测进程查询人体红外状态并进行拍照,为了减少拍照数量且不漏拍重要照片,本文设计了两种拍照方式:连拍3张和拍1张。当监测区域内之前没有人活动,现在有人进入区域时采用第一种连拍3张方式;当监测区域内持续有人活动时采用第二种拍摄1张方式。为此,需要设置两种状态:上次查询状态ilstate和本次查询状态iv,伪代码如下:

  while(true)

  {

  infr(iv); //获取本次状态

  if(iv==1&&ilstate==0) //有人进入区域

  {

  拍照3张,时间间隔0.5 s;

  }

  else if(iv==1&&ilstate==1)

  {

  拍照1张;

  ilstate=iv;

  }

  sleep(3);

  }

  火焰传感器和人体红外传感器是状态传感器,分别有3个接口:正极、接地和信号输出口,当状态发生转变时信号输出电平翻转,Raspberry Pi通过单个GPIO接口接收状态转变。本文使用GPIO1作为火焰传感器的信号检测接口,即26个接口中的12号,GPIO4作为人体红外传感器信号检测接口,即26个接口中的16号,GPIO6作为DHT11的通信接口,即26个接口中的22号。火焰传感器被触发后输出高电平,当GPIO1检测到高电平时则启动预警。人体红外传感器被触发后由输出低电平转变为输出高电平,GPIO4检测到高电平后根据两个状态调用拍照功能。DHT11采用单个针脚实现与Raspberry Pi之间的同步和通信,一次完整的数据传输为40 bit,高位先出,数据格式为8 bit湿度整数数据、8 bit湿度小数数据、8 bit温度整数数据、8 bit温度小数数据,8 bit校验位,其时序如图3所示。各模块实物连接如图4所示。

004.jpg

  Raspberry Pi已经安装了Raspberry Pi Camera驱动,使用摄像头前要进行设置,命令为sudo raspi-config,然后选择Enable Camera 确认后关机就可以连接Raspberry Pi Camera模块了。Raspberry Pi用raspistill命令配合参数拍照。将拍照时间设为照片文件名,方便以后按时间查看及分类,拍照及照片上传代码在shoot.sh脚本中,通过C++程序来调用此脚本。

  MJPG-streamer[6]是基于IP网络的命令行应用程序,它从摄像头获取JPEG文件流发送到Firefox、Cambozola、VLC、Windows Mobile或者移动电话等包含浏览器的设备。可以利用摄像头对JPEG文件进行硬件压缩,减少服务器上的CPU周期消耗,这为CPU资源不足的嵌入式设备或者常规服务器提供了一种轻量级的解决方案。例如,在一个200 MHz的路由器上960×720像素的文件流使用的CPU资源小于10% 。

  使用“MJPG-streamer”需要安装相关库libjpeg8-dev,源码下载方法可以使用wget 或者git:wget:https://codeload.github.com/jacksonliam/mjpg-streamer/zip/master;git pull: https://github.com/jacksonliam/mjpg-streamer.git。

  2.2 代码编写

  程序为每个模块创建了一个进程,代码托管在google code,可以使用git克隆或者打包下载,git下载地址为:https://pottery19@code.google.com/p/ccnu-smart-house/。进行编译前要先安装wiringPi库和mysqlclient库,安装后make即可编译链接生成运行文件main。

3 系统测试


005.jpg

  经测试系统基本达到了预定目标,获得温度、湿度数据如图5所示,数据属性分别为温度、湿度、时间。可以看到并不是每30 s都产生一组数据,这是因为DHT11不够准确,通过校验码校验删除传输错误及明显超过范围的数据(如温度大于100℃)后可得到大部分准确数据。

  如图6所示,人体红外感应模块探测到有人活动时输出高电平,记录1。从图7可以看到,摄像头确实根据图6所示红外探测情况拍下了照片。火焰探测模块探测到火焰时输出低电平,记录0,图8为用火机测试情况,火焰探测确实根据严格的3 s时间记录了有火焰时的时间。

006.jpg

  远程视频测试如图9所示,当画面为20帧像素320×240时占用带宽约为600 kb/s,画面十分流畅,当画面为10帧像素320×240时占用带宽约为300 kb/s,画面略有卡顿。

4 结束语

  本文提出了一种新的智能家居方案,实现了智能家居远程监测系统功能,整个系统架构简单,功能扩展方便,在此系统设计上稍加修改即可添加更多功能的传感器,实现更加智能的功能,可结合ZigBee实现无线传输,结合arduino实现更方便的管理。

参考文献

  [1] 朱仲英.传感网与物联网的进展与趋势[J].微型电脑应用,2010,26(1):1-3.

  [2] Wikipedia. Raspberry_Pi [S/OL]. http://it.wikipedia.org/wiki/Raspberry_Pi.

  [3] 肖儿良,毛海军,鞠军平,等.基于开源软件MJPG_ Streamer的智能视频监控系统设计[J].微电子学与计算机, 2013,30(6):84-87.

  [4] 刘政,袁国良,王丽芳.基于Cortex-M0 的室内温控系统的设计[J].中国科技信息,2011(8):165-166.

  [5] D-Robotics UK. DHT11[S/OL].http://www.micro4you.com/files/sensor/DHT11.pdf.

  [6] Jacksonliam. MJPG-streamer [CP/OL].https://github.com/jacksonliam/mjpg-streamer#.


此内容为AET网站原创,未经授权禁止转载。