基于红外控制的智能家居网络系统
2017-03-09牛宇辉麻超赵梦丽李珺磊李
牛宇辉++麻超++赵梦丽++李珺磊++李润宁
【摘 要】本设计以STM32为控制核心,手机APP为人机交互界面、互联网作为信号传输媒介、STM32接收端进行红外信号转换、家中电器设备作为执行机构,通过该系统用户可以通过手机APP远程控制家中NEC红外电器设备,突破红外遥控的距离限制,该控制系统创造性的将网络信号转化成红外信号,无需电器设备的升级换代,即可实现互联网远程控制红外电器设备,通过手机APP控制具有控制方便,操作简单等特点,互联网传输控制指令具有传输距离远,数据安全快速等优势,将网络信号转化成红外信号可以最大限度的降低家居智能化成本。
【关键词】智能家居;红外控制;网络通讯
引言
随着网络和嵌入式技术的发展,智能家居得到发展并成为物联网的重要领域之一。但是目前的智能家居系统主要用在一些高档社区并没有进入普通家庭。制约智能家居系统推广的主要因素有两条,一是现有技术要对传统设备不兼容,设备必须升级换代接入互联网才能实现智能化控制,二是系统操作复杂,不易推广。目前智能家居领域迫切需要建立一个成本低、稳定性高,而且方便操作的智能家居控制系统解决方案。本文提出了一种基于智能手机的智能家居控制系统,以手机APP作为智能家居控制终端,以互联网为媒介,以STM32嵌入式系统为接收端,STM32接收端将APP的网络信号转换成红外信号发出,可以兼容目前市面上的绝大多数的NEC红外设备。最大限度地降低用户构建智能家居使用成本。用户通过手机就能够随时随地查看家庭的实时状态并进行操控管理,实现了对家居用电的随时随地在线管控,减少了家居能源的消耗本,该智能家居控制系统操作简单,具有极强的兼容性软件设计。
一、控制系统设计概述
基于红外控制的智能家居网络系统包括手机APP客户端,网络服务器和STM32接收端。用户通过手机发送控制指至令网络服务器,服务器将接收到的控制指令转发到家中的STM32接收设备,STM32接收端将来自服务器的网络指令解析和处理之后以红外信号发送到家中电气设备。
二、硬件设计
接收端主要以STM32嵌入式控制芯片作为主控制器,外接各种传感器模块,通讯模块组成。
1.控制器。
随着近几年微处理器的不断发展, 各种微处理器已逐渐浮现,其中 ARM 系列芯片作为应用最广泛的处理器之一。 ARM 内核具有兼容性好、功耗低、性能高等优点。 本文采用的是意法半导体(ST)公司生产的 STM32F407芯片,该芯片采用ARM Cortex-M4内核,主频高达168MHz,具有14个定时器,144个接口,具有低功耗、集成度高、 处理速度快、低调试成本等众多优点。 作为 ARM 系列的一员,由于其功能强、易开发、性价比高等特点,目前应用已十分广泛.。十分符合本系统的设计要求和实际应用。
2.网络模块。
网络模块选择ATK-ESP8266模块,ESP8266是ALIENTEK推出的一款高性能的UART-WiFi(串口-无线)模块,该模块通过FCCCE认证,该模块采用串口与MCU通信,内置TCP/IP协议栈,能够实现串口与WIFI之间的转换。通过ATK-ESP8266模块,串口设备只是需要根据模块通信协议,进行串口配置,即可通过网络( WIFI)传输自己的数据。模块支持串口转WIFI STA、串口转AP和WIFI STA+WIFI AP的模式。
3.NEC红外模块。
红外模块选择NEC红外发射模块,该模块内置硬件NEC協议可以节省单片机资源,提升控制系统的运行速度。单片机通过串口和红外模块相连,红外 NEC模块将单片机的指令以红外信号发射给电器设备。
三、软件设计
1.APP设计。
Android的APP客户端控制系统设计主要包括用户界面UI、Socket通信、SQLite数据库的设计。Android应用程序由多个组件构成,其中包括activities、services、content providers、broadcast receivers等组件,每个组件在应用程序中执行不同的任务。
2.基于Socket通信。
在网络编程方面,Android提供了非常好的支持。对于TCP传输,Android提供Socket和SetverSocket类。对于UDP传输,提供DatagramSocket和DatagramPackage类。Socket编程是底层的网络编程方式,是建立与其他应用协议的基础。通过建立Socket对象,就可以通过打开输入输出流进行通信。客户端和服务器之间通信的实现一般需要下面九个基本步骤:
(1)建立Serversocket类对象,初始化服务器,等待客户端发出连接请求;
(2)建立Socket类对象,初始化客户端,同时向服务器发出连接请求;
(3)服务器响应客户端请求并且实现服务器与客户端的连接;
(4)客户端发出命令和数据给服务器;
(5)服务器响应客户端请求;
(6)服务器返回并处理客户端的结果;
(7)客户端接收服务器返回的结果;
(8)重复(4)至(7)步,直至客户端结束对话;
(9)中断连接,结束通信。
3.SQLite数据库。
由于智能家居各种家居信息量较小.时期较短,无需较大的数据库,所以本应用程序使用了Android的平台内置的SQLite数据库。SQLite可以减少应用程序管理数据的开销,对于SQLite的操作,Android提供了SQLiteDam—base类和SQLiteOpenHelper类。SQLiteOpenHelper类提供两个方法onCreat()和onUpgrade()对SQLite数据库进行创建和更新,提供getWritableDatabase()方法来获得数据库对象。SQLiteDatabase类则提供一些方法,可以创建、删除、执行SQL指令、完成常规的数据库管理任务,如execSQL()可以执行SQL语句,insert()可以插入表项,update()可以更新表项等。数据库主要存储如下信息:,设备号,家用电器设备类型,各个设备的信息状态。
4.STM32接收端软件设计。
软件设计的思想是,单片机通过esp8266网络模块配置好TCP/IP协议族的ARP、IP、ICMP、TCP、UDP、DHCP协议。在TCP—CLIENT模式下,STM32接收端主动向远端服务器发出连接请求,远端服务器相应的监听程序在运行,则建立连接。连接建立后。接收端与远程服务器可以进行双向的数据传输,在与手机APP建立通讯链接之后,将APP的网络信号以红外信号的形式发出。软件设计流程图如图2。
四、结束语
将开发完成的APP安装在手机上,经多次测试,可以通过Internet上的服务器实现家居电器设备的远程控制。通过本系统实现家居电器设备的集中控制,得到当前家居设备运行最新状况。采用智能手机软件控制+接收端信号转化控制,和当前其他的几种终端控制方式相比优势明显。采用的手机软件具有通用性,易于移植。市场的应用价值高,易于推广。本系统所需硬件简单易用、稳定可靠,智能家居成本大大降低。
参考文献:
[1] 戴敏,王宜怀,潘启勇.基于 ZigBee 技术的智能家居系统设计[J].计算机测量与控制,2013,21(3):0706-03.
[2] 董亮,张云.陈云化.基于限制广播的 ZigBee 分布式动态能量均衡协议[J].传感技术学报,2014,27(8):1120-1124.
[3]俞文俊,凌志浩.一种物联网智能家居系统的研究[J].自动化仪表,2011,32(8):56—59.
[4]王云良,王敏其,程凌.智能家居网络系统的优化及控制稳定性分析f J].自动化仪表,2014,35(8):78—82.