未来智讯 > 智能家居论文 > 基于树莓派的多功能智能家居系统

基于树莓派的多功能智能家居系统

发布时间:2018-11-20 01:06:10 文章来源:未来智讯    
    基于树莓派的多功能智能家居系统作者:未知   摘 要:为了打造更舒适平安的家居环境,解决普通智能家居用品功能集成度低的问题,并降低购买成本,文中设计了一种以树莓派作为抑制终端,通过多种传感器采集信息,实现集室内温湿度调节、人脸识别门锁、红外感应夜灯、实时监控多种功能于一体的智能家居系统。该系统可对室内温湿度进行调控,增各位居环境的平安系数,并满足节能便利的生活需求。整个系统功能集成度高,成本低廉,具有一定的应用价值与市场前景。
  关键词:树莓派;智能家居;多功能集成;室内温湿度调节;人脸识别门锁;红外感应夜灯;实时监控
  中图分类号:TP273;TP212 文�I标识码:A 文章编号:2095-1302(2018)02-00-04
  0 引 言
  家居环境的平安性与人们的生活息息相关。在湿热的环境下,人体的散热功能受到控制,易导致急躁、中暑、精神紊乱;而干冷的环境易使人体的皮肤枯燥,同时也会诱发呼吸系统病症。此外,空气湿度过大或过小时,都有利于一些细菌和病毒的繁殖和传播。因此,保持室内合理的温湿度尤为重要。
  由于人的面部特征具有唯一性[1],在传统门锁中投入人脸识别系统,并实时监控,可大大增加家居环境的平安系数并方便出行。另外,根据光线情况与是否有人,灯具可自动变换开关状态,满足了节能与便利的需求。
  随着物联网技能的发展,各种智能家居设备应运而生,普通智能家居用品功能单一,集成度低。单独购买智能家居用品往往花费较高,树莓派作为一款基于ARM的微型电脑主板,具有成本低,可扩展性强等优点[2],并拥有视频模拟信号的输出接口,若将其作为抑制终端,可设计出集多种功能于一体的智能家居系统。
  1 总体结构设计
  系统以树莓派作为抑制终端,通过多种传感器采集信息,选取相应的硬件连接与软件支持,使用Python编程,可实现集室内温湿度调节、人脸识别门锁、红外感应夜灯、实时监控等功能于一体的智能家居系统。各功能以及相关软硬件示意如图1所示。
  (1)室内温湿度调节:根据DHT11温湿度传感器测得室内温湿度,加湿器与风扇自动开关;将插座与连接树莓派的继电器相连,可使用树莓派抑制插座上电器的开关状态。
  (2)人脸识别门锁:当触摸传感器感应到有人触碰时,500 W像素树莓派摄像头将拍摄照片,并启动人脸识别功能,通过Face++云平台实现人脸图像的识别处理,根据人脸识别判断的结果抑制电磁锁的开关。
  (3)红外感应夜灯:通过光敏传感器与HC-SR501人体红外传感器感应信息,在天黑且有人的情况下,LED灯将自动打开。
  (4)实时监控:利用Motion软件通过局域网将摄像头的实时监控情况呈如今Web网页上。
  系统主要由抑制终端、感应单元、受控单元及云服务四个局部组成:抑制终端为树莓派;感应单元由各种传感器组成;受控单元包括各种家具器件及继电器;云服务主要指Face++云平台。
  感应单元将传感器采集的信息数据传递给抑制终端树莓派,其中,局部信息直接在本地处理,局部信息上传至云端,云端对图像信息进行处理后,将结果返回给树莓派。根据处理后的结果,树莓派发出相应抑制指令到受控单元,抑制相连的各器件。系统总体的信息数据流向方式如图2所示。
  2 系统的设计与实现
  2.1 抑制核心
  系统对数据传输能力要求较高,在视频数据与图像数据上需要保证流畅及稳定性,普通的单片微抑制器[3](如Arduino)难以实现。考虑到成本与功能需求,该系统选取树莓派Raspberry Pi 3b作为抑制终端。
  树莓派Raspberry Pi 3bBroadcom BCM2837为片上系统,其运行频率为1.2 GHz,拥有四核ARM处理器, 1 GB RAM存储器,与40个GPIO引脚,CSI摄像头接口,HDMI接口,4个USB 2.0端口,10/100以太网端口,RAC av端口,USB电源接口,DSI显示连接器,搭载蓝牙和WiFi模块。
  树莓派的GPIO 引脚定义如图3所示。GPIO引脚的编号方式有三种,分辨为BCM编号方式(如图3中BCM列所示);BOARD编号方式(如图3中Physical列所示);wiringPi编号方式(如图3中wPi列所示)。图3中的Mode列为引脚的输入/输出状态,可通过编程设定[4]。
  2.2 室内温湿度调节
  根据DHT11温湿度传感器所测得的室内温度与湿度数据,在树莓派中对数据信息进行分析与处理。根据当前温湿度情况,通过二路继电器抑制风扇或加湿器的打开与关闭。相关硬件连接如图4所示。
  加湿器选取额定电压为DC 5 V、额定功率约2 W的小型加湿器;风扇选取供电电压为DC 5 V、输出电流为1 A、功率约3 W的小型风扇。小型加湿器与风扇可使用树莓派供电。若考虑功率更大的加湿器或风扇,可将加湿器或风扇插在与树莓派相连的插座上,通过220 V交流电源供电。
  由于树莓派的GPIO引脚在Output状态默认为0,因此选取高电平触发的5 V二路继电器。树莓派提供5 V电源引脚与继电器的常开(No1、No2)触点相连,在常态(不通电)下处于断开状态,风扇与加湿器处于关闭状态。
  DHT11温湿度传感器含有电阻式感湿元件与NTC测温元件,可输出经过校验后的温度与湿度数字信号[5],适用于室内温湿度的测量。其湿度测量范围为20%~95%;温度测量范围为0~50℃。
  利用DHT11温湿度传感器的检测数据抑制加湿器与风扇的开关状态,每隔5 min判断一次。由于人体适宜的湿度为45%~65%[6],因此在湿度小于45%的情况下打开加湿器,湿度大于65%的情况下关闭加湿器;温度大于27℃时风扇打开,温度小于23℃时,风扇关闭。该功能实现的程序流程如图5所示。   2.3 人脸识别门锁
  实现人脸识别门锁功能的硬件连接图如图6所示。通过220 V交流电压转12 V直流变压器,将电压转换为12 V直流电磁锁所需要的电压。当需要被检测时,触碰触摸传感器,此时启动树莓派摄像头拍照,根据人脸识别结果,通过树莓派抑制5 V继电器来抑制电磁锁电流的通断,即开锁或关锁。
  触摸传感器是一个基于触摸检测IC(TTP223B)的电容式点动型触摸开关模块[7]。常态下,模块输出低电平;当有人触摸相应位置时,输出高电平。该模块可安装在非金属材料如塑料、玻璃表面,也可将薄纸片等非金属材料覆盖在模块表面,隐藏在墙壁等位置。
  由于树莓派的GPIO引脚在Output状态默认为0,因此选取高电平触发5 V继电器,变压器的V+与继电器的常开(No)触点相连,在常态(不通电)下处于断开状态,电磁锁不通电,处于关锁状态。
  人脸识别功能基于Face++云平台,其API以Http请求的方式进行调用[8],所使用的接口及其功能描述见表1所列。
  最初判断是否有人需要被检测,当有人需要被检测时,将在本地的人脸图像及相关信息上传至Face++云平台,存入FaceSet中,建立人脸数据库,再判断拍摄的待识别图像中是否有人脸。若有,则与FaceSet中的人脸图像进行对比,当相似度大于80%时,则打开门锁。程序流程如图7所示,主要步骤(使用Python编程语言)如下:
  (1)选取BOARD编号方式,GPIO2设置为Input状态,GPIO29设置为Output状态:
  GPIO.setmode(GPIO.BOARD)
  GPIO.setup(13,GPIO.In)
  GPIO.setup(40,GPIO.Out)
  (2)判断是否有人需要被检测,触碰了触摸传感器。
  while True:
  if GPIO.Input(13)==True:
  ...
  time.sleep(2)
  (3)若有人需要被检测,启动摄像头拍摄:
  os.system('raspistill -w 480 -h 360 -o customer.jpg -t 2000')
  (4)创建人脸聚集FaceSet
  api.faceset.create(outer_id='SetTest')
  (5)将本地图片上传:
  Picture = {}
  save1 = api.detect(image_file=facepp.File(/test/test1.jpg))
  Picture ['name1'] = save1 ["faces"][0]["face_token"]
  save2 = api.detect(image_file=facepp.File(/test/test2.jpg))
  Picture ['name2'] = save2 ["faces"][0]["face_token"]
  (6)�⒈镜赝计�的FaceTocken存入FaceSet中上传:
  api.faceset.addface(outer_id='SetTest',
  face_tokens= Picture.itervalues())
  (7)得到拍摄图像的face_token:
  customer_pic = api.detect(image_file=facepp.File(customer.jpg))
  (8)判断是否检测到了人脸:
  if(len(customer_pic ["faces"])==0):
  //未检测到人脸,删除
  api.faceset.delete(outer_id='SetTest', check_empty=0)
  else:
  //在 FaceSet 中寻找与所拍摄人脸最相似的,返回相似度
  result = api.search(face_token= customer_pic ["faces"][0]["face_token"], outer_id='SetTest')
  (9)得到相似度:
  similarity = result ["results"]
  judge=int(similarity [0]['confidence'])
  (10)若相似度大于80%,则开锁:
  if judge > 80 :
  GPIO.Output(40, True)
  time.Sleep(3)
  GPIO.Output(40, False)
  2.4 红外感应夜灯
  红外感应夜灯的硬件组成为光敏传感器与HC-SR501人体红外传感器。
  光敏传感器利用半导体的光电效应判断光线强弱,随着入射光线的增强,其电阻值减小,将光信号转换为电信号[9]。当光线强度小于设定的阈值时,DO端输出高电平;当光线强度大于设定的阈值时,DO端输出低电平。
  通过HC-SR501人体红外传感器可判断是否有人。若人进入其感应范围,则输出高电平;若人离开感应范围,则自动延时关闭高电平,输出低电平。HC-SR501有以下两种触发方式[10](可跳线选择):
  (1)不可反复触发方式(L):在感应到有人输出高电平后,不再进行感应判断,延时时间结束后,输出低电平;
  (2)可反复触发方式(H):在感应到有人输出高电平后,仍然进行感应判断,以最终一次感应到有人的时间为延时的起始时间。   这里选取可反复触发方式(H)。
  为了防止HC-SR501的针脚处于悬浮状态,出现输出电平状态不稳定的情况,接入10 kΩ下拉电阻,使其处于明确的低电平状态。硬件连接如图8所示。
  红外感应夜灯在天黑且有人的情况下自动打开。功能实现的关键代码(使用Python编程语言)如下:
  light = 12 //LED灯与树莓派相连的GPIO引脚编号
  infrared = 25 //人体红外传感器与树莓派相连的GPIO引脚编号
  photosen = 16 //光敏传感器与树莓派相连的GPIO引脚编号
  GPIO.setmode(GPIO.BCM) //选取BCM的编号方式
  GPIO.setup (light,GPIO.Out)
  GPIO.setup (infrared,GPIO.In)
  GPIO.setup (photosen,GPIO.In)
  While True:
  if(GPIO.Input(infrared) ==True and GPIO.input(photosen) ==True):
  GPIO.Output(light,GPIO.HIGH)
  time.sleep(30) //天黑且有人的情况下,开启灯30 s
  else:
  GPIO.Output(light,GPIO.LOW) //否�t,关灯
  time.sleep(5)
  2.5 实时监控
  摄像头与树莓派的CSI摄像头接口通过15芯的排线连接,利用Motion软件,通过局域网实现实时监控。
  (1)在终端中使用如下下令安装Motion软件:
  sudo apt-get install motion
  (2)配置motion daemon守护进程,使其在后台运行:
  sudo nano/etc/default/motion
  start_motion_deamon=yes
  (3)批改motion的配置文件,将deamon off 改成 on,设置分别率,关闭localhost的限制:
  sudo vim /etc/motion/motion.conf
  deamon on
  width 800
  height 600
  webcam_localhost off
  (4)运行motion:
  sudo motion
  (5)查看树莓派IP地址:
  ifconfig
  (6)在同一局域网下,访问树莓派IP的8081端口,即可获取实时监控的视频数据:
  http://[Raspberry Pi IP]:8081
  3 结 语
  本文介绍了通过树莓派实现多功能智能家居系统的可行性,设计了各功能的硬件连接图与软件实现方案。以树莓派作为抑制终端,可实现室内温湿度调节、通过人脸识别开闭门锁、红外感应夜灯、实时监控。对各项功能进行实验与操作,已全部达到预期效果。系统功能集成度较高,设计易于搭建,相关硬件成本低廉,具有辽阔的应用市场与发展前景。
  参考文献
  [1] 邱丽华.人脸信息认证系统基于设计模式的设计与实现[D].武汉:华中科技大学, 2008.
  [2] Rushi Gajjar.树莓派+传感器:创建智能交互项目的实用方法、工具及最佳实践[M]. 胡训强,张欣景,译.北京:机械工业出版社,2016.
  [3] 张毅刚,刘旺,邓立宝.单片机原理及接口技能[M].北京:人民邮电出版社,2016.
  [4] Alex Bradbury, Ben Everard.树莓派Python编程指南[M].王文峰,译.北京:机械工业出版社,2015.
  [5] Tero Karvinen,Kimmo Karvinen,Ville Valtokari.传感器实战全攻略[M].于欣龙,李泽,译.北京:人民邮电出版社,2016.
  [6]眭晋华,史红梅,眭广瑞.空气湿度及其影响[J].山西科技,2011,26(3):143-144.
  [7]来清民.传感器与单片机接口及实例[M].北京:北京航空航天大学出版社,2008.
  [8] face++ API文档[EB/OL].https://console.faceplusplus.com.cn/documents/4887579.
  [9]王琦,阮淑云.光敏电阻传感器的特性研讨[J].都市家教(上半月),2014(6):188.
  [10]李萌.智能楼道照明节电抑制系统的设计[J].电子制作,2014(10X):49-50.
转载请注明来源。原文地址:https://www.7428.cn/page/2018/1120/44357/
 与本篇相关的热门内容: