基于树莓派的智能家居监测
本文设计了一种基于树莓派与EnOcean技术的智能家居环境监测系统,通过无线传感器采集温湿度、光照等数据,利用WiFi传输至控制器,并采用B/S架构实现浏览器端实时监控。系统具备低功耗、免布线、易维护等优点,具有良好的实用性和应用前景。
基于树莓派的智能家居环境监测系统设计
0. 引言
随着对高品质生活的不断追求,人们对居住环境的安全性、舒适性、自动化和智能化要求越来越高[1]。当前环境监控系统的研究主要分为两类:第一类是基于CAN总线和RS‐485总线的分布式温湿度环境监控系统;第二类是无线类,包括基于GSM、ZigBee和蓝牙技术的可穿戴式智能环境参数采集系统。智能家居系统是指利用先进的计算机技术、网络通信技术、智能控制技术、无线传感器网络技术,将多种家居设备有机结合起来,为人们提供高效的家居环境[2]。本文基于ARM Cortex‐A53内核的树莓派,采用B/S架构和无线网络技术,设计了一套智能家居环境监测系统,该系统由智能家居控制器、EnOcean/Wi‐Fi无线传感器控制网络和智能家居客户端组成,使用户能够通过客户端个人计算机等设备连接至智能家居控制器。系统通过 EnOcean和 Wi‐Fi无线网络实现对家居环境工作状态的实时查询,对于实现智能家居环境具有一定的实际意义[3]。
1. 智能家居系统总体方案
智能家居环境监测系统以ARM平台构建的智能家庭控制器为核心,EnOcean无线传感器控制网络用于家庭网络,采用 B/S架构设计智能家居客户端,如图1所示。该系统分为家庭内部网络和家庭外部网络。内网是指通过 EnOcean协议建立的无线传感器控制网络,用于控制家用电器和家居环境的传感器节点以采集数据。外网是指Wi‐Fi热点和互联网网络,智能家居客户端与智能家居控制器通过外部网络连接[4]。内部网络与外部网络之间通过智能家居控制器实现连接和信息交换。
1.1 智能家居控制器功能设计
智能家居控制器是家庭内部网关,主要通过 EnOcean构成的传感器控制网络与互联网网络相连,并实现异构网络数据之间的转发和控制协议分析[5]。智能家居无线传感器网络中所有传感器采集的数据均传输至智能家居控制器,个人计算机客户端通过IP地址和端口访问智能家居控制器,以获取用户所需的家庭信息,或通过控制器向家庭内部无线网络中的设备和电器发送指令。智能家居控制器的设计包括以下模块:树莓派最小系统、触摸屏模块、EnOcean控制协议收发模块、网络接入模块、数据存储模块。

1.2 智能家庭内部网络设计
采用EnOcean构建家居环境内的传感器控制网络,实现家居环境的监测与控制。客户端可通过Wi‐Fi热点或互联网连接实现对用户家居环境的监控。EnOcean终端节点可配备常用控制设备和传感器模块(如窗帘、人体红外传感器、温度传感器、湿度传感器、光传感器),构成基于EnOcean的无线传感器控制网络。
2. 智能家居控制器硬件电路与软件设计
2.1 智能家居控制器硬件电路设计
智能家庭控制器的硬件设计主要包括控制器系统设计、电源模块电路、USB接口电路、FLASH存储器电路和LCD触摸屏接口电路。
树莓派是一种基于ARM的微型计算机主板,采用 SD/MicroSD卡作为内存硬盘,板载1/2/4个USB接口和一个10/100以太网接口,可连接键盘、鼠标和网线,还配有视频模拟信号电视输出接口和HDMI高清视频输出接口。上述所有组件均集成在一块略大于信用卡的主板上,具备个人计算机的全部基本功能。只需接通电视和键盘,即可实现电子表格、文字处理、玩游戏、播放高清视频等多种功能[6]。树莓派内部集成的片上资源非常丰富,具体硬件结构如图2所示。

2.2 智能家居控制器Linux操作系统移植
该系统在引导加载程序之前使用开源的U‐Boot。U‐Boot在内核启动和加载之前完成相关硬件的初始化,并通过关联机制将内核启动所需的参数传递给内核。U‐Boot源码目录结构分为芯片相关代码目录和芯片无关代码目录,移植U‐Boot需要修改前者中包含的 Board目录和CPU目录中的源代码。
2.3 智能家居控制器驱动设计
从实际应用的角度来看,USB无线网卡驱动包含两个部分:USB驱动和网卡驱动。本设计采用较新的 Linux‐3.4.2内核,已包含常用的无线网络卡驱动;为了提高开发效率,选用TP‐LINK的TL‐WN721无线网卡,其VID为0x148f,PID为0x3070,因此无需从头编写无线网卡驱动,只需配置Linux内核以使其支持该无线网卡。在配置内核之前,需要先配置开发环境,使物理机、主机和目标机处于同一IP网段。使用开源的无线网络配置工具wpa_supplicant对无线网卡进行测试和配置。
2.4 EnOcean采集单元
EnOcean采集单元采用能量收集技术获取所需的电能。如图3所示,其主要组成部分包括:能量采集模块、能量管理模块、传感器模块、微控制器模块、射频模块和无线模块。

传感器模块将室内环境中的温度、湿度和光照强度转换为电信号,并将采集到的电信号输入微处理器。微处理器通过无线模块过滤后收集数据,发送到路由器,最终传输到服务器。能量转换模块将收集的环境能量转化为电能,然后通过能量管理模块将储存的能量供给其他模块。图4是几种EnOcean能量收集单元的实物图。

3 智能家居无线传感器网络设计
EnOcean网络架构由物理层、数据链路层、网络层和应用层组成。前三层基于国际标准ISO/IEC 14543‐3‐10,应用层由EnOcean开放联盟开发[7]。
ISO/IEC 14543‐3‐10 标准定义:
- 物理层 :使用315MHz或868.3MHz射频频段,ASK调制方式,有效传输速率为125Kbit/s,标准通信距离为室内30米,室外300米[7]。
- 数据链路层 :负责子消息时序机制和数据完整性检测的管理。为了确保传输的可靠性,在发送时会使用“预监控”机制,此外每条消息将基于特定的时间算法发送3次[7]。
- 网络层 :负责数据包转换、数据包转发和潜在的数据包定向[7]。
每个EnOcean设备都有一个唯一的32位硬件地址,用于通信过程中的设备识别。EnOcean通信模块采用 EnOcean的集成模块TCM310,TCM310具备双向串行通信接口和射频通信接口,使用的无线通信频率为868MHz。在TCM310内部集成了时钟模块、天线模块以及射频SOC芯片EO3000I。EO3000I是一款基于16MHz 8051内核的低功耗射频SOC,内置315/868MHz射频收发器,具有32KB闪存和2KB内存,同时配备10位精确AD和8位精确DA接口。EO3000I功耗极低,在睡眠模式下仅为0.2μA。
采用德州仪器的WiFi嵌入式芯片CC3000作为 WiFi通信模块,为电子设备提供互联网连接能力,该芯片包含完整的TCP/IP协议栈和WiFi驱动,支持标准 Socket编程,具备IEEE802.11b/g无线网卡功能。在 IEEE802.11b/g工作模式下,发射功耗为190mA,接收功耗为92mA。
4 基于B/S架构的系统软件设计
4.1 服务器的建立
B/S架构的服务器有多种类型,本系统选用的是 Tomcat服务器。Tomcat服务器由阿帕奇组织开发并维护,支持JSP和Servlet的开发使用。通过 Myeclipse集成Tomcat,可以利用Myeclipse发布并调试WEB项目,直接将项目部署到服务器上,从而建立起B/S架构的服务器。
4.2 动态网页开发
本设计基于JSP(Java服务器页面)技术。太阳微系统公司在Web服务器、应用服务器、交易系统和开发工具供应商的广泛支持与合作下,整合了现有支持 Java编程环境的技术和工具,从而形成了一种新的基于 Web应用的技术[8]。
4.3 B/S架构的动态网页运行机制
设计基于B/S架构的环境监控系统流程时,我们必须首先了解B/S架构的运行机制,B/S架构的运行机制如图5[8]所示。
系统采用SQLite数据库进行数据存储,使用JSP(Java服务器页面)实现前端数据显示,脚本语言和页面布局通过Jquery操作,后台程序采用轻量级框架Jfinal设计。

5 智能家居环境监控系统测试
5.1 监控页面
如图6所示,采用B/S架构设计的软件系统将采集到的温度、湿度、光照强度数据在浏览器上显示。B/S三层架构采用三层客户/服务器结构。它增加了一层数据管理和用户界面层结构,称为中间件,将整个架构划分为三个层次。三层结构伴随着中间件技术的成熟而兴起。其核心概念是利用中间件将应用划分为表现层、业务逻辑层和数据存储层三个不同的处理级别。这三个级别的划分是逻辑上的划分,具体的物理划分可以有多种组合方式。作为构建三层应用系统的基础平台,中间件主要负责客户端与服务器之间、服务器与服务器之间的连接和通信。
在Firefox浏览器地址栏中输入地址:localhost:8080/SmartHome/,即可进入环境监控界面。该环境监控界面分为上方的标题、左侧的实时数据列表和右侧的实时数据曲线部分。

为了使采集的数据更加准确,系统设计采用多点采集的方式,在三个位置分别安装了温度传感器和湿度传感器,并安装了三个光照强度传感器。温度传感器和湿度传感器分别安装在左窗、右窗和门处,光传感器安装在右窗处。传感器采集到的数据实时显示在左侧的数据列表中。
图7显示了实时数据图,即右侧窗口温度实时数据的默认初始显示。横轴表示时间,纵轴表示数据类型值。

5.2 监控数据显示
以右窗采集的数据为例。在实时数据图中,横轴表示时间,纵轴表示采集的数据值,虚线表示平均值。横轴的时间轴随当前时间值向右移动,并实时更新。
图8为右窗温度实时数据曲线。

图9为右窗湿度实时数据曲线。

图10为右侧窗口光照实时数据曲线。

6 结论
本文设计并完成了一种基于EnOcean技术的智能家居环境监测系统。该系统利用自供能EnOcean无线采集单元对温度、湿度、光照强度数据进行采集,并发送至智能家居控制器,再由控制器通过WiFi通信传送到服务器,最后通过个人计算机上的浏览器实现实时监控显示。系统软件部分采用B/S架构,并使用 Tomcat服务器和经典的MVC模型进行整体设计。
与传统环境监测系统相比,该系统具有以下优点:系统功能完善,能够实时采集温度、湿度和光照数据;其次,系统显示直观、操作简单、布线少、维护和修改方便,可节省资源和能源;最后,根据实际应用需求,系统采用网页浏览器和EnOcean无线采集模块,提高了系统的智能化程度并增强系统的实用性,具有非常广泛的应用前景。
更多推荐
所有评论(0)