基于树莓派的家庭视频监控系统设计与实现
- 格式:pdf
- 大小:2.83 MB
- 文档页数:4
第40
卷第10
期
2019
年10
月湖南科技学院学报
Journal of Hunan University of Science and EngineeringVol.40 No.10
Oct.2019
基于树莓派的家庭视频监控系统设计与实现
武嘉敏吴大非
(湖南科技学院电子与信息工程学院,湖南永州425199)
摘要:论文主要研究如何使用树莓派开发板连接相应传感器等外部设备以及云服务器来搭建无线家庭视频监控系统,
用户通过电脑或手机等终端可随时随地上网查看家居环境.当家中发生起火冒烟,有害气体泄漏、陌生人入室偷盗时,系统
自动通过网络发送提醒邮件给用户,以便用户及时监控处理。经过测试,该系统可用于独居老人和小孩的智能监护以及外出
防入侵■J
艮警,能有效保护人们6
勺生命财产安全.
关键词:物联网;树莓派;传感器;视频监控系统
中图分类号:TP311
文献标识码:A
文章编号:1673-2219 (2019) 10-0074-04
1引言
随着我国人口老龄化不断加剧,空巢老人比例不断上
升,老人独自居住会有很多安全隐患,例如摔倒了无人知道、
做饭菜后忘记关天然气、外出忘记关门。另外,随着国家放
开二胎政策,中青年人群由于工作忙,有时周末也要加班,
只能把幼儿反锁在家里自己玩,这样会产生安全隐患,例如
幼儿在家攀爬摔倒、打开水龙头忘记关闭等。因此,人们出
于对老人和幼儿独自在家生命安全的担忧,使得广大群众对
家庭视频监控系统的需求日益增加
论文基于这个社会背景,在树莓派开发板上连接了烟雾
传感器、人体红外传感器和火焰传感器,结合阿里云服务器
的服务,设计开发了一个家庭视频监控系统。该系统若检测
到家中出现有害气体泄漏、非法入侵或发生火灾的情况,则
自动发送报警邮件到用户邮箱中,以便用户及吋查看监控,
采取相应措施,避免人身和财产损失。另外,该系统创新之
处在于将具有公网地址的云服务器作为代理,为树莓派做内
网穿透,这样可实现用户通过Internet
随时随地对家中的情
况进行实时监控。
收稿日期:2019-03-10
基金项目:湖南科技学院应用特色学科建设项目
作者简介:武嘉敏(1996-),
女,山西省太原人,湖
南科技学院数字媒体技术专业2015
级学生,研究方向为嵌
入式开发和大数据应用。
通讯作者:吴大非(1975 —)
,男,湖南省永州人,湖
南科技学院讲师,硕士,研究方向为计算机应用和网络信息
安全。
742系统需求分析
2.1
功能需求
本文设计了家庭视频监控系统需求分析方面的问卷,并
通过“问卷星”在网上发布,最后对回收的627
份有效问卷
进行统计分析,发现人们对该系统主要有以下三大功能需
求:
(1)
检测功能,能实现对有害气体及烟雾检测、火灾
检测、非法入侵检测。
(2)
监控功能,能实现远程调用摄像头进行实时监控
和录相。
(3)
报警功能,若发生异常情况,能实现系统自动将
报警信息以邮件或手机短信形式发送给用户。
2.2
性能需求
通过阅读参考文献,了解相关同类系统的性能参数,认
为质量较好的家庭视频监控系统,其性能需求应当满足如下
要求:
(1)
系统要基于物联网云平台运行,前端为树莓派或
Arduino
等开发板,连接烟雾传感器等外接设备,对采集的
数据进行传输;后台端为云服务器和相关处理软件,对开发
板传输过来的数据进行处理,最后将处理结果反馈给用户。
(2)
系统中对硬件性能要求为摄像头拍照和录相清晰,
分辨率能达到720dpi;
人体红外传感器探测距离不低于10
米,感应角度不低于100
度,探測温度范围10-300
度;烟
雾传感器检测浓度300~10000ppm,
能检查可燃气体和烟
雾,工作电压12V
以下;火焰传感器能探测火源或其它波
长在760
纳米〜1100
纳米范围内的热源,探测角度不低于
60
度何
。(3)
系统中对云服务器里部署的检测处理软件,对其
性能要求是响应速度快,延迟时间短,检测准确。
3系统设计
3.1
系统总体设计
基于树莓派的家庭视频监控系统包括硬件和软件两大
部分,其系统结构如图1
所示:
图1
基于树莓派的家庭视频监控系统结构
在该系统中,摄像头用于获取视频,Mjpg-streamer
软
件安装在树莓派上用于控制摄像头获取视频流数据,frp
软
件安装在树莓派和云服务器上,树莓派上的frpc
和云服务
器上的ftps
负责传输数据。烟雾传感器、火焰传感器、人体
红外传感器连接到树莓派开发板的GPIO
接口上进行实时检
测,若发现异常则通过scp
命令将信息上传到云服务器。云
服务器上安装了 mailx
软件,用于发送警报邮件给用户,用
户收到后,可通过云服务器上的ftps
监控家中情况,采取相
应处理措施〔讥
3.2
主要功能模块设计
3.2.1
视频监控与传感器控制模块
(1) Mjpg-streamer
视频监控处理
Mjpg-streamer
是一个流转发程序,主要用于抓取前端
摄像头捕捉到的视频流,通常采用HTTP
输出通道,将视频
流信息传送到用户端浏览器。
(2)
树莓派控制模块
该系统的控制模块选用的是树莓派3B
开发板,树莓派
是一款可搭载Linux
系统的微型主板,结合外部设备编程可
以实现很多功能。它以SD/MicroSD
卡为内存硬盘,集成了
WiFi
模块与蓝牙模块,可连接键盘、鼠标、摄像头等外部
设备,其搭载的GPIO
接口模块能连接各种传感器,实现功
能拓展。
3.2.2GPIO
接 口模块
GPIO (General Purpose I/O Ports),
即通用输入输岀端
口,通过这些端口与传感器进行数据交互,输岀高电平或低
电平。树莓派通过读取各个引脚的电平状态,来判断传感器
等硬件的工作状态,也可以通过输出电平状态来控制与之相
连的硬件,如控制LED
灯点亮和熄灭,具体是在编程时通
过程序来控制,图2
是树莓派开发板的GPIO
接口图。■
吟
一
議
書
-
目
a
-
图2
树莓派开发板GPIO
接口
3.2.3
后台云服务器处理模块
后台云服务器处理模块主要用来配置邮件服务,当系统
监测到异常时自动发送报警邮件到用户邮箱中。另外,云服
务器还有一个功能是实现frp
内网穿透配置。frp
是一个用于
内网穿透的反向代理应用,它可利用处于内网或防火墙后的
机器,对外网环境提供web
服务。用户访问具有公网地址
的frp
服务器,而frp
服务器和客户端通过配置文件中规定
的绑定端口进行数据传输,frp
服务器作为反向代理服务器
可将来自互联网的请求发送到frp
客户端的相应端口上,从
而实现内网穿透同。
4系统实现
4.1
开发环境设置
4.1.1
树莓派开发板配置
(1)
安装系统
首先从官网
"https://www.raspberrypi.org/downloads/raspbian/”
下载最新
的系统镜像,通过“Win32DiskImager”
软件将镜像文件写
入TF
卡中,系统正常启动后,要确保连接到因特网。
(2)
开启ssh
服务
为了使用ssh
远程登录树莓派,需要在终端中输入
"/etc/init.d/ssh start"
命令开启ssh
服务。然后通过在终端
中输入命令“ifconfig”
,获取树莓派开发板的IP
地址后,
使用Putty
或XShell
等软件实现远程登陆,默认的用户名是
pi,
密码为raspberry„
远程登录树莓派开发板的操作过程如
图3
所示。
图3
树莓派登录界面
75(3)
安装GPIO
库来控制传感器
通过在树莓派系统控制台中依次输入"sudo apt-get
install *pip -y" , "sudo pip3 install gpio" , wimport
RPi.GPIO”
这三条命令安装好GPIO
库,从而通过编写程序
来控制传感器。
4.1.2
后台云服务器配置
(1)
创建配置实例
本系统选择阿里云平台搭建云服务器,首先注册阿里云
账号并选择购买相应规格的ECS
实例类型。在ECS
中为云
服务器选择“CentOS7”
操作系统并安装,具体操作过程不
再赘述。
(2)
配置远程连接
首先,在阿里云服务器管理控制台中重置密码,提高安
全系数。具体操作如图4
所示。
wujiamin
>-mi«vgxi<)63csh6gtw! I?
v ;: 3: /. Vil~ 可用ZG
i:>~ wtflanai I?
•6/es-
图4
后台云服务器密码设置
然后,配置服务器安全组信息,加一条公网安全组规则,
允许所有公网ip
能通过ssh
登陆到该服务器实例。
(3)
部署邮件服务器用于报警
登录163
邮箱,开启P0P3/SMTP/IMAP
功能,获得授权
码,然后设置安全规则,最后测试一下发送邮件能否成功,
具体操作如图5
所示。
POP3/5MTP/IMAP
iS«POP3/SMTP/IMAP吃
POP3/SMTPBB务
@【
MAP/SMTP眼务
收取®7
溫砂亍:
it便用愷权码登录策三方粥件複尸賞
i£SPOP3/SMTP/IMAP
当邮件
4T户换券邮
4牛旳.系徒会通过邮件芨
1逊
S?値豐
图5
邮件服务器设置
4.2
系统主要功能模块实现
4.2.1
烟雾检测报警功能实现
(1)
传感器设置
该系统中,树莓派开发板GPIO
接口连接了 MQ-2
烟雾
气体传感器,所用的气敏材料是二氧化锡(SnO2)o
该传感器
对液化气、氢气、丙烷和天然气的检测相当理想,适用于多
种可燃气体的检测。其检测可燃气体与烟雾的浓度范围是
100~10000ppm,
加热电压范围(5±0.2) V,
该传感器外观
如图6
所示。图6 MQ-2
烟雾气体传感器
该传感器共四个引脚,图6
中1
号引脚为VCC:
接电源
正极(5V) , 2
号引脚为GND:
接电源负极,3
号引脚为
DO:TTL
开关信号输出,4
号引脚为AO:
模拟信号输出。其
工作原理是当监测到目标环境中可燃气体或烟雾浓度达到
阀值时,会将3
号引脚设置为低电平。
(2)
监测程序编写
在后台阿里云服务器中,编写一个Python
脚本程序来
控制MQ-2
传感器,当该传感器检测到目标环境中有烟雾
时,该传感器连接在树莓派开发板上的36
号引脚会转变成
低电平。云服务器中的脚本程序会一直远程循环读取36
号
引脚状态,一旦读到该引脚为低电平信号,说明目标环境有
烟雾或气体泄露,程序就会将烟雾出现或气体泄露的时间写
入一个文本文档,并发送包含该文档的一个报警邮件到用户
邮箱中,其关键代码如图7
所示。
#! /usr/bin python3
import RPi.GPIO as GPIO
import os
import time
#按照真实位置确定引脚号
CHANNEL=36
#选择引脚系统为BOARD
GPIO.setmode(GPIO.BOARD)
#初始化引脚,将36
号引脚设置输入
GPIO.setup(CHANNEL,GPIO.IN)
while True:
#获取36
号引脚的电平状态
status=GPIO.input(CHANNEL)
if status = True:
time.sleep(l)
else:
os.system('echo "detecting dangerous
gas in ' date “+%m/%d/%Y %H:%M”'!” >
waming-gas.txt1)
os.system('scp 7waming-gas.txt
root@47.96.136
」28:/root')
os.system('ssh root@47.96.136.128 "mail -s