王俊童+刘艳艳+兰旭婷
摘 要:"基于树莓派通过java实远程控制和接收数据的智能家居",采取以智能手机发送数据到服务器,在通过服务器返回数据到树莓派使之做出相应的处理,本项目设计使智能家居突破传统的地理位置和空间上的限制,无论用户身处室内或室外都可以对家居进行控制,和实现对家庭内部设备的控制。如今我们仅仅需要一部智能手机,就可以对家里的家居完全的掌控,和对家里的情况完全的了解,如:当我们下班回家的路上,我们完全可以仅仅通过控制手机,就可以把家里的台灯、风扇打开。
由西北民族大学电气工程学院"双E"项目资助(项目编号:20161823 )
1 绪论
近年来,随着信息技术的更新换代,物联网技术取得了长足的发展和进步,物联网这一新兴的信息革命产物受到了密切的關注,在智能化领域也得到了广泛的应用,这一现象在贴近我们生活的智能家居行业更是尤为突出。针对当前智能家居系统结构复杂、成本高昂的问题,采用价格低廉的树莓派作为家庭网关、开源硬件Arduino Uno作为微控制器、yeelink作为网络服务平台,并通过编程语言来搭建控制开关,从而有效的简化了智能家居系统的控制结构,降低了开发成本。实验结果验证了此方法的有效性。
2 整体设计方案
具体设计方案如图2-1所示,1和7分别代表是远程控制的PC端和手机端,即为三级结构中的控制层,2代表以太网,即系统中的yeelink网络服务平台,3表示路由器,即连接以太网的网络硬件设施,2、3共同组成控制信息的传输层,4代表以AVR为核心的Arduino Uno微控制器,5代表网络信号,6代表搭载在Arduino Uno上的LED小灯,处于系统的被控制层。在这个设计中,用户可以通过PC端或者手机终端访问yeelink网络服务平台,在平台上远程查看小灯的开关情况,并可以通过同样路径对于小灯进行控制,当点击开关按钮时,yeelink网络服务平台会通过相应的转换程序将开关小灯的指令信息发送给Arduino Uno微控制器,从而实现对于室内小灯的控制。
3系统开发设计
该部分主要介绍系统所采用的技术及开发工具,涉及采用的架构有:树莓派、LINUX系统、Python和JAVA语言、Arduino Uno单片机、网络服务平台等。
3.1 Arduino Uno硬件设计
Arduino是一款基于AVR的微控制器的开源硬件,近年来,因其良好的开源性和以及高度的可扩展性,得到了迅速的发展,在带有传感器的系统设计领域得到了广泛的应用。Arduino Uno的硬件设计所采用的协议是CC BY-SA3.0,UNO型号的Arduino具有1KB的EEPROM、32KB的Flash、14路数字输入输出口,其中6路为PWM输出,6路为模拟输入口,还有ICSP下载线接口,支持在线烧写程序同时在UNO里,还预先设置了Bootloader程序,因此在给板子烧写程序时,并不需要外部烧写器,直接通过USB接口下载程序即可,同时该板子还带有复位键、USB程序烧写口和电源接口。
在本智能家居的控制开关的设计中,为了实现远程控制功能,作为搭载底层传感器的Arduino Uno也需要具备联网功能,,此时我们需要借助一款具备联网功能的扩展板Arduino Ethernet,它可以让Arduino控制器连接网络。
3.2 树莓派的基本配置和开发
作为系统的控制中心,树莓派上需要万层控制功能的开发和配置,因此除了核心部件开发板以外,还需要针对树莓派配备其他的硬件外设:连接网线、配备鼠标键盘,通过HDMI高清输出线,将树莓派与显示器相连。然后就需要进行具体的配置的步骤:首先为树莓派安装操作系统,将Raspbian系统的镜像文件通过Win32DiskImager解压导入SD卡中,将SD卡插入树莓派的SD卡槽,接通电源,然后就进入了树莓派的内部配置界面 raspi-config,此时需要针对开关的功能需要进行配置,在本研究中,为了更充分的利用树莓派的内部空间,选择expand_rootfs这一项,将它的大小扩展到与SD卡大小相同;为了实现控制功能和其他应用软件的安装,需要使树莓派具备网络功能,因此选取 NG8508-GS无线网卡,将无线网卡插入后,重新启动树莓派,等开机以后,输入sudo lsusb命令行。
3.3 网络服务平台的配置
作为针对物联网开发应用的云端网络服务平台,要利用yeelink完成智能家居控制开关的设计,实现Arduino Uno与yeelink的数据传递和信息交互,就必须为所接入的设备申请yeelink所分配的ID号和API key,同时需要指明传感器的类型和数据格式,然后通过HTTP POST请求为传感器分配ID号。在yeelink平台上,API key为设备操作的识别号,控制功能的实现。同时还需要根据硬件的实际连接情况,设置相应的端口,比如设置通信的波特率为9600,输出为5号口。设置完基本的硬件连接,确定网络连通后,程序就进入了主体的执行部分,此部分主要进行的功能是实现yeelink与Arduino Uno的网络通信,以及实现对Arduino Uno的远程控制,当用户进入yeelink平台的网络界面,选择关灯时,yeelink会向Arduino发送"turn off the LED"指令,给5号口所接的LED小灯输出低电平实现关灯功能;当用户选择开灯时,点击开灯按钮,yeelink会向Arduino发送"turn on the LED"指令,给5号口所接的LED小灯输出高电平实现开灯功能。
4 结论
本论文所研究的基于树莓派通过java实远程控制和接收数据的智能家居,不仅可以随时随地的查看控制照明设备的情况,还可以在此基础上,增添其他类型的传感器,完善平台功能,实现人与物之间的信息交互,真正赋予物体以智慧和沟通能力,同时这种开发模式并不局限于智能家居,还可以应用在工业、农业的环境中,达到高效生产、节能减排的作用。
参考文献:
[1] 李凡希.爱上Raspberry Pi.北京:科学出版社,2013.
[2] 郭天祥.新概念51单片机C语言教程.北京:电子工业出版社,2009.