基于ARM和WIFI的家电智能控制系统设计
2016-07-01作者张文郑文田远波成都理工大学信息科学与技术学院
作者 / 张文、郑文、田远波,成都理工大学信息科学与技术学院
基于ARM和WIFI的家电智能控制系统设计
作者 / 张文、郑文、田远波,成都理工大学信息科学与技术学院
随着智能家居逐渐走入人们的日常生活,我们提出了一套家电的智能控制系统方案。该方案采用Cortex-M4为控制核心,通过WIFI接收并处理用户指令,控制转向设备,进而发送控制特定家电的命令。同时,系统可以将室内的环境检测数据发送到手机并显示到APP上,用户也可以通过手机APP实现对各种类型家电的实现智能控制。该系统设计工作稳定可靠,操作简单方便,对市面上的各类遥控器协议进行了整合,并实现智能学习键码功能,故能很好的支持各类家电设备。
Cortex-M4;WIFI;手机APP;红外;转向设备;通信协议
引言
随着人们的物质生活的水平提高,像电视、冰箱、空调等各类家电已经走进了千家万户,但是随之也带来了一些问题。家里有太多的家电设备,而它们的生产厂家不同,功能不一,往往红外遥控器遥控界面是不一致的,而且使用的红外通信协议也是各异的,无疑这会给用户带来找寻遥控器困难,分辨各类家电设备遥控器的烦恼。本设计即是基于此,设计一种整合各类家电遥控器协议的设备,用户可以通过手机APP对家里的各种家电实行智能控制。这很好的解决了各类家电设备遥控器不兼容问题。
1. 系统架构
本系统通过设计一个ARM处理器为控制中枢,以WIFI、无线作为媒介,以转向装置和红外发射装置为遥控设备的智能控制系统来解决上述问题。如图1所示。
图1 家电智能控制系统
本系统设计以手机APP为系统输入,用户可以通过WIFI实现与该系统连接,通过手机APP界面上的指示,发送命令去控制家电。Cortex-M4控制器通过WIFI读取用户的命令并解析,调用内部整合的红外通信协议,然后通过无线模块发送给转向装置,并通过红外发射管发射指令给各类待控制的家电(如空调、电视、机顶盒、DVD等)。
本系统设计使用一个中央控制器去控制多个转向装置,从而实现用户所有房间的全覆盖。一个房间仅需要一个转向装置,通过转向装置转动,实现房间中360°无死角精确控制。其中转向装置内部是由控制板、两个舵机和一个固定架组成。Cortex-M4可以向转向装置发送两个舵机的转动角度,让红外发射管始终处于正朝待控制设备的状态。其中舵机的转向角预先设定好,并通过储存设备保存,防止设备意外掉电而丢失数据。
该系统除了实现了智能控制不同房间的家电遥控设备,还装配了一些传感器,来对用户的室内情况实时监控。如对室内的温湿度等环境信息的采集,然后自动控制空调的工作状态,并将各个房间的采集信息显示在中枢的OLED屏上和用户APP上等。
该系统主要包括Cortex-M4微处理器,WIFI模块,无线模块,转向装置,液晶显示模块,温湿度传感器,储存芯片,APP。
2. 硬件平台设计
家电智能控制系统设计主要由WIFI交互数据、红外发射、环境监测三个部分组成。其处理器采用STM-32F407ZGT6;其WIFI模块使用HLK-RM04;无线模块使用低廉的NRF24L01;使用红外收发模块来发射数据或者学习键码;DHT11为环境的信息采集模块。
■2.1 WIFI交互数据硬件设计
WIFI数据交互是本系统设计最核心部分之一。主控芯片STM32F407ZGT6通过UART与HLK-RM04通信。WIFI在正常通信前,需要通过WEB配置或者通过串口使用AT指令集进行配置。在配置好通信的各种参数(IP,gateway,mask,波特率等)之后,设为透传模式,此时,主控芯片就可以与用户APP进行数据交互(用户需控制设备的命令信息,传感器采集的室内环境信息等)。
■2.2 红外发射的硬件设计
红外发射是本系统的主要输出部分,它通过无线模块NRF24L01与主控芯片实现通信。闲置状态下一直处于休眠模式(好处:低功耗,防止误操作),当主控芯片发出信号需要遥控设备工作时,遥控设备才会被无线模块的中断脚唤醒,并控制舵机转动和发送指令。随后,再次进入休眠状态。
图2 传统NEC编码格式
■2.3 环境监测硬件设计
环境状态监测采用DHT11模块,它内部集成了温湿度传感器,通过它实现对室内的温湿度的信息采集,并通过无线模块NRF24L01的ACK将采集数据回传至中央处理器,并通过WIFI模块,将数据发送至用户APP上显示。
3. 家电智能控制系统软件平台设计
■3.1 红外通信协议
市面上的红外协议多样,但主要是NEC通信协议。但是由于家电的厂商不同,它们并不是原封不动的直接使用NEC通信协议,而是自己稍作修改。所以各种遥控器虽然不兼容,但是使用的最基本协议仍是NEC通信协议。故下面介绍NEC通信协议和几种常用的修改方式。
3.1.1 NEC红外通信协议
NEC协议的一帧数据包括5个部分,共32bits的数据,分别是引导码、用户码、用户码反码、数据码、数据码反码。所有码值均是通过发送0或者1实现的,而逻辑1与逻辑0的有序组合被称之为编码。通常情况下,逻辑1是560μs有载波和1690μs的无载波;逻辑0是560μs的有载波与560μs的无载波。
其中引导码的作用是提示将有数据要发送。其次是用户码,它是用来分辨发出信号者身份的码值,随后的用户码反码是用来检验用户码是否正确。数据码是发送者发送的数据,最后的数据码反码同理是用来校验数据码。其编码格式如图2所示。
3.1.2 NEC的修改方式
不同的商家基于NEC协议变种出多种协议。例如空调,它的功能比较多,而传统的NEC一次就仅仅能发送一位有效数据,故传统的NEC就不再适用。所以厂家一般会改变一次发送的数据量,一帧的数据由若干位有效数据组成,把每一位赋予一定的含义,或者把某些固定位设为固定数据,从而来校验数据。此外,还有些商家为了一次传输更多的数据,把一次需要发送的数据,分成两段或者更多,一段一段的发送,段与段之间由连接码连接。总之,它们都基本满足传统的NEC的编码格式。
■3.2 红外码值的存储
正是由于商家的红外协议不一致这一问题,我们整合了各种红外协议,但是它仍然不能全部适用,故该系统设计还增加了一个装置来学习不同遥控器键值的功能,实现虽然通信协议未知,仍然可以达到智能控制的目的。因此我们必须开辟一个空间专门来储存我们的整合的红外通信协议和学习的键值数据。该部分使用一个EEPROM来存储数据。即是在掉电情况下,数据仍然不会丢失。
4. 结束语
本设计实现了家电的智能控制并通过室内环境数据的采集,反馈,自动控制。仅仅通过一个APP即可控制室内所有的家电红外遥控设备,很好的解决了遥控器不兼容的问题。同样,这一套系统可以很好的应用于智能家居上,对室内的家电的集中控制,远程智能控制等。
* [1]张召.基于STM32的智能家居控制系统设计[D].南昌航空大学.2014
* [2]李灵.基于STM32的家居环境检测和家电控制系统[D].杭州电子科技大学.2014
* [3]王佳.基于STM32的智能家居控制系统的设计与开发[D].长安大学.2013
* [4]杜德飞.智能家居无线系统设计及实现[D].华南理工大学.2012
* [5]侯海涛.国内外智能家居发展现状[J].建材发展导向.2004.05
* [6]吴建军.智能家居系统软件设计与实现[D].电子科技大学.2014