基于RaspberryPi的远程家居智能控制系统的设计和实现概述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于RaspberryPi的远程家居智能控制系统的设计和实现概述
摘要本文介绍了以搭载Linux系统的树莓派为控制中心,以家庭电信网络为网关,以手机或电脑为远程控制客户端,设计了一种基于LAMP架构的新型远程控制系统。其中树莓派实现了控制器的后端服务和驱动,前端是基于Android 或MacOS的APP或者直接通过网页浏览器来实现用户控制。客户端和服务端之间采用Socket消息通信,完成控制指令的发送、接收和查询等。各类家居设备以模块化的形式由驻于树莓派上的主控中心进行统一管理。此远程家居控制系统具有架构简单、价格低廉、操作方便等特点,为家居用户提供了异地远程控制家居设备的便捷服务。
关键词智能家居;RaspberryPi(树莓派);LAMP
引言
近年来,随着信息化、智能化的飞速发展,物联网技术也取得了长足的发展和进步,在智能化领域得到了广泛的应用,特别是在与普通大众密切相关的智能家居行业也是显得尤为突出,各种智能控制模式和方案应用在大众的家居生活上。本文设计了一款新型的远程家居控制系统。
1 总体框架设计
本文设计的系统,整体框架如图1所示。该系统选用树莓派(搭载Linux系统)作为主控中心,各类家居设备均以模块化的形式由其进行统一式管理。树莓派通过GPIO控制各类家居设备所对应的驱动,从而智能化地管理各类家居设备。同时,该系统中树莓派又充当服务器的角色,用于接收手机APP客户端或网页(HTML5实现)发送的控制指令,并根据不同的控制指令改变相对应家居设备的工作状态。客户端和服务器端之间采用Socket进行数据通信。其中,中控服务器以PHP/Python语言结合Apache2框架进行搭建,用户和设备状态等数据通过MySQL数据库来实现管控。此外,为了克服内外网IP设备无法直接传输数据的问题,本文引入了具有外网IP的路由器作为桥梁,间接搭建起外网访问内网的通道。手机客户端(或网页)通过外网地址访问路由器,路由器再将该数据包转发给树莓派,从而间接完成手机或电脑网页(客户端)到树莓派(服务器端)的数据传输[1]。如图1:
2 相关硬件设计
如图1所示,整个系统主要选用的硬件有树莓派、传感器和执行器等。下面分别介绍各个器件:
2.1 树莓派的配置
树莓派源于英国,只有信用卡大小的卡片式电脑,因价格低廉、接口丰富等
等优势,现在已经广泛应用于智能微控制开发领域,它可以安装Windows、Linux 等系统,官方推荐安装基于Linux的Raspbian系统。本文中,树莓派既充当主控中心,同时又实现了服务器的功能。
可以使用SSH/FTP等工具远程访问树莓派,或直接通过连接于树莓派上的显示器和登录普通Linux电脑一样直接登录,完成服务器端各个服务和数据库的安装和部署。
2.2 传感器(依控制需求选用)
用户可以根据自己的特定需求,选取相应的传感器,本文以智能窗控为例介绍若干传感器:
(1)光敏传感器
光敏传感器对环境光线敏感,可用来检测周围环境的光线的亮度,触发控制器或继电器模块等执行相关动作。
当环境光线亮度达不到设定的阈值时,输出端输出高电平;当光线亮度超过设定阈值时,输出端输出低电平。通过高低电平可以直接控制相关执行机构或继电器模块,从而形成一个光控开关,实现白天或夜晚时间段的自动控制窗户的开关[2]。
(2)雨水传感器
雨水传感器可以检测天气状况,通过内部的比较器,完成数字开关量输出(0或1)和AO电压输出,灵敏度高且可调。
2.3 执行器
可以根据控制需求选用合适的执行器,本文选用了罗伊尔科技的笔式推杆来作为执行器,通过控制推杆的伸或缩来实现窗户的开或关。
3 相关软件设计
软件部分主要包括服务器搭建、网页界面设计和控制器实现等。
3.1 服务器搭建
本文所述服务器是基于LAMP架构技术的,LAMP是一组免费的搭建网络服务器的开源软件包,主要是指由Linux+Apache+MySQL+PHP/Python组成,各自本身都是独立的程序。在Linux系统上分別安装各个应用和服务,然后配置各软件关联的环境变量和Apache服务参数。
3.2 用户界面设计和控制器实现
文中采用当下流行的Html5+EasyUI+JavaScript技术实现了前端用户操作页面,
用户登录进去以后,选择某种家居产品操作界面,就可以实现对相应家居产品的远程智能控制。
服务器和控制器是在树莓派上实现的,通过PHP+JavaScript来实现界面逻辑控制以及相关用户数据库MySQL的操作,用户点击相关页面按钮的操作是通过PHP解析和Python转换后,按照预定时间下发指令给树莓派,由树莓派控制GPIO 端子高低电平等的输出,进而实现了对相关执行机构的控制[3]。
3.3 内外网络互访
本文采用了路由器端口转发的方法,解决了广大用户可能面临内外网IP设备无法直接通信的问题。其中,路由器作为桥梁,一头桥接了客户端,另外一头桥接了服务器端。
当然,也可以借助于外部云服务平台或其他中转平台,比如花生壳等等。
4 结束语
本论文所研究的基于树莓派的集中式智能家居控制系统,不仅可以随时随地手动或自动地控制各种家居设备,还可以在此基础上,增添其他类型的室外控制组件;从设计目的和完成功能的角度,此研究对于解决当前发展中所存在的成本高、结构复杂的问题具备有效性,同时为物联网产业发展应用也起到了一定的启发作用,本设计成本低、功能多、可靠性高、扩展性好,具有很高的实用性,极大地方便了用户定制化的需求。
参考文献
[1] SimonMonk. Raspberry Pi Python编程入门[M]. 北京:科学出版社,2014:113.
[2] EbenUpton,GarethHalfacree. 树莓派用户指南.第3版[M]. 北京:人民邮电出版社,2016:213.
[3] RichardWentk. Raspberry Pi实战入门[M]. 北京:人民邮电出版社,2015:19.
毕金元(1975-),男,汉族,安徽合肥人,中科院研究生院人工智能和模式识别专业硕士毕业,现为中兴通讯股份有限公司高级研发工程师,研究方向:人工智能、软件工程、无线通信。