APP下载

基于树莓派+Arduino的WiFi反馈控制系统的研究

2017-05-04周栋梁郭永安

智能计算机与应用 2017年2期
关键词:树莓派智能家居

周栋梁+郭永安

摘 要: 随着物联网的发展,智能家居越来越被人们重视。为了解决智能家居中使用ZigBee高成本的问题,本文介绍了以树莓派为主的控制端,Arduino开发板和无线模块作为数据反馈端,实现了在WiFi环境下,对LED灯的开关控制,并反馈LED灯真实亮灭情况。简化了智能家居的控制结构,并降低了成本。

关键词: 智能家居;树莓派;Arduino;WiFi;开关控制

中圖分类号:TP391.9

文献标志码:A

文章编号:2095-2163(2017)02-0038-04

Abstract: With the development of the Internet of Things, smart home has attracted growing attention.In order to solve the problem of high cost of using ZigBee in smart home, this paper introduces Raspberry as the console, Arduino development board and wireless module as the data feedback terminal, which realizes the switch control of LED and the real situation feedback of LED in WiFi environment. The research simplifies the control structure of the smart home, and reduces the cost.

Keywords:smart home; Raspberry pie;Arduino; WiFi; switch control

0 引 言

随着智能家居的普及发展,使用智能家居产品已然成为时尚自然首选。然而当今市面上主要是使用ZigBee来设计实现智能家居的核心控制,ZigBee的使用不仅是成本有所增加,安装也变得复杂,而且还不能直接连接用户手机。WiFi控制即可有效避免这些问题,WiFi的速度相对较快,无需网桥就可接入互联网,而且可以与手机进行无缝通信,在如今智能手机提档升级飞速变化的时代,以WiFi控制为主的智能家居已然成为研究设计主流。本文即对这一课题展开如下论述。

1 硬件设计

1.1 树莓派控制台

树莓派(Raspberry Pi)是一款基于ARM的微型电脑主板,以SD卡为内存硬盘,在卡片主板周围有2个USB接口和一个网口,可连接键盘、鼠标和网线,同时拥有视频模拟信号的电视输出接口和HDMI高清视频输出接口,以上部件全部整合在一张仅比信用卡稍大的主板上,具备所有PC的基本功能。在设计上,则基于Linux的操作系统,Python的语言开发环境,同时也支持C、JAVA等语言。

在此,研究给出系统环境搭建的过程步骤如下:

1)安装Raspbian 官方镜像

① 从官方下载最新Raspbian 镜像,下载网址为:https://www.raspberrypi.org/downloads/;

② 使用SDFormatter格式化TF卡;

③ 使用Win32DiskImager把官方镜像烧录到TF 卡。

2)获取LCD 驱动

将 LCD-show-160701.tar.gz 驱动复制到树莓派系统根目录下,执行以下操作命令解压驱动:

① cd /boot;

② sudo tar zxvf LCD-show-160701.tar.gz;

③ cd LCD-show/。

3)安装LCD 驱动

研究中,具体选用了7寸C款1024X600显示屏,因此需执行以下操作命令:

sudo ./LCD7C-show

树莓派LCD屏界面显示效果如图1所示。在此基础上,将树莓派与电源连接,LCD屏的HDMI口与树莓派HDMI口连接,因此即架构形成了实际的树莓派系统。

1.2 数据发送端

1.2.1 ESP8266 WiFi Shield

数据发送端的无线模块主要采用ESP8266 WiFi Shield模块,该模块支持无线802.11b/g/n标准,组建STA/AP两种工作模式,内设TCP/IP协议栈,可以附带一个Socket,并且支持标准TCP/UDP Server和Client,还可以基于Web Server配置WiFi参数和串口参数,是真正串口WiFi,在Arduino程序中无需任何配置。

1.2.2 Arduino Uno R3

Arduino是一款便捷灵活、操作明晰的开源电子原型平台,包含硬件(各种型号的Arduino板)和软件(Arduino IDE),由一个欧洲开发团队于2005年冬季首创推出。该平台构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。重点包含2个主要部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,也就是计算机中的程序开发环境。

1.2.3 反馈电路设计

[JP+1]设计光敏电阻读取LED灯的亮度值,通过光敏电阻读取到的亮度值,判断LED灯是否点亮,并通过LED灯反馈的数据直观地看出LED的亮灭情况。反馈电路图则如图2所示。

2 软件设计

[JP+1]设定光敏电阻的阈值n=850(850为LED灯亮时的亮度值),发送命令“1”时,输出“LED on”,由判断语句根据光敏电阻读取的数值判断光亮强度,如果大于设定的阈值850,将输出“really on”,如果不大于阈值850,则输出“not really on”;发送命令“0”时,输出“LED off”。软件设计流程即如图3所示。

3 无线控制设计

首先使用外网,基于BigIoT/Yeelink云平台通过网页实现对Arduino开发板的远程控制;然后使用Socket tool客户端,在局域网环境下,搭载ESP8266无线模块,通过指令设计生成对Arduino开发板的无线控制;最后使用树莓派代替PC机,通过树莓派使用WiFi而实际获得对下位机的远程控制。

3.1 BigIoT/Yeelink

该系统可以通过使用BigIoT、Yeelink等云智能平台,将数据上传显示到网站上,可以实现远程控制。控制界面如图4所示。

由图4可知,其中每个设备拥有各自独特的ID与APIKEY,通过在图5的代码中修改”DEVICEID”与”APIKEY”实现连接。

3.2 Socket tool电脑无线控制

该系统也设计并研发了通过Socket tool来提供并展开电脑对Arduino系统的WiFi控制。其中的关键步骤可分做如下论述。

3.2.1 創建TCP Client

选中如图6a)的TCP Client, 然后点击”创建”按钮, 软件弹出输入框:输入ESP8266(无线模块)的IP地址和监听端口如图6b)所示。

确认后,由此软件即成功创建了一个TCP Client Socket。

3.2.2 连接Socket

点击最近创建的TCP Client,右方会出现其相关操作面板,点击“连接”按钮进行Socket连接,如图7所示。

这时,TCP Client就建立了与TCP Server的连接。在TCP Server下面,自动增加了一个与该连接对应的Socket。

3.2.3 数据收发(LED灯亮演示)

在确保连接建立后,可以开启数据收发的测试:

当鼠标点中每个Socket时, 软件都会在右方呈现操作该Socket的面板。在面板里给出了数据收发的窗口。居于下方的即是数据发送窗口。

在Arduino代码中,设置了发送数据1,LED灯亮,并输出“LED on”;然后由光敏电阻判断亮度,并输出光敏电阻读出的亮度值,准确判断LED是否已点亮,如果已点亮,输出“LED really on”;如果LED并未点亮,输出”LED not really on”。过程效果界面如图8所示。

3.2.4 数据收发(LED灯灭演示)

相应地,如图9所示,发送数据“0”,LED灯灭,同时输出“LED off”。

3.3 树莓派WiFi控制

在此基础上,即需针对树莓派+Arduino的WiFi控制展开研究。首先在树莓派的Linux系统中下载netcat-0.7.1.tar.gz;然后输入指令netcat 192.168.4.1(IP地址) 9000(端口号)连接到无线模块;输入指令1,LED灯亮,输出LED on,判断光敏电阻读取数值大于设定的阈值,输出LED really on;输入指令0,LED灯灭,输出LED off。显示效果如图10a)、b)所示。

整体系统硬件包括:LCD显示屏、无线键鼠、树莓派开发板、Arduino开发板、ESP8266WiFi Shield无线模块等。系统整体实物连接如图11所示。

4 结束语

本文研究了通过WiFi传输数据,并反馈信息。展开来说,即通过控制台无线控制LED灯的亮灭,同时接收数据发送端发送的反馈数据。而且,在使用BigIoT、yeelink等外部服务器重要处理的基础上,首先在PC上设计使用socket tool软件接收判断数据信息,并反馈信息;然后使用树莓派开发提供了树莓派对下行数据发送端的WiFi控制,并接收数据反馈;最终实现了在WiFi环境下,多种控制端对LED灯的开关控制,以及对LED灯真实亮灭情况的反馈。

参考文献:

蔡睿妍. Arduino的原理及应用[J]. 电子设计工程,2012,20(16):155-157.

[2] Michael McRoberts. Arduino从基础到实践[M]. 杨继志,郭敬,译. 北京:电子工业出版社,2006.

[3] 汪鑫,彭丽薇. 基于树莓派的网络监控系统的研究与实现[J]. 硅谷,2014(14):25-26.

[4] 宋凯,姚嘉明,李静,等. 基于树莓派的智能家居控制开关的研究[J]. 电子技术与软件工程,2015(21):140-141.

[5] 李龙棋,方美发,唐晓腾. 树莓派平台下的实时监控系统开发[J]. 闽江学院学报,2014(5):67-72.

[6] LIU C, SU X. Research and design for mobile terminal-based on smart home system[J]. Open Automation and Control Systems Journal,2015,7(1):479-484.

[7] JAIN S, VAIBHAV A, GOYAL L. Raspberry Pi based interactive home automation system through E-mail[C]// Optimization, Reliabilty, and Information Technology (ICROIT), 2014 International Conference on. Faridabad, India:IEEE,2014:277-280.

猜你喜欢

树莓派智能家居
智能家居行业仍无“独角兽”
智能家居产业现状和发展趋势
智能家居 走向星辰大海
智能安全防盗探测小车
智能家居未来感初体验
基于嵌入式技术的农村医疗系统设计