台州职业技术学院电气信息学院 蒋开伟 孙凌杰
随着经济的飞速发展和人们物质生活水平的不断提高,人们对家居环境也提出了更高的要求。互联网技术、控制技术、通信技术的进步使得家居设备的系统化、网络化和智能化控制成为可能,尤其是近年来物联网技术的发展进一步推动“智能家居”的概念变成现实。智能家居(Smart Home),利用各种先进的技术和设施实现对家庭的综合性管理和控制,从而改善了人类的居住环境。和普通的住宅相比,智能家居具有很多优点,与人类的生活密切相关。
智能家居为用户提供更高效、快捷的控制方式,不仅提高用户的生活乐趣,也为家庭日常生活减少一些不必要的能耗。在当前大力提倡环保的背景下,智能家居能很好的践行节能环保、低碳生活的倡导,伴随着人们对生活质量要求的不断提高,将智能家居应用于家庭住宅中是时代发展的潮流,未来智能家居也将步入寻常百姓家中,由此可见开发出一款高性价比的智能家居控制系统对加快智能家居的推广和普及具有重要意义。
在智能家居发展的过程中,总是不断涌现出各种新的技术,比如现在流行的各种无线通信技术,就被引入了智能家居领域,“无线家居”的家居理念应运而生。常见的无线家居方式有:蓝牙、Zigbee、WiFi。其中以Zigbee和WiFi的方式应用最为广泛。研究了基于Zigbee技术的智能家居系统,基于WiFi技术设计系统。指出智能家居系统的关键技术为基于嵌入式的智能家居网关,并给出了最新的“云+端”智能家居模式。
本文将以近年来流行的机智云平台作为系统设计和开发的切入点,该平台不仅提供了可靠的云平台,还为开发者提供强大的技术支持,极大地缩小了开发成本和开发周期。
本设计旨在实现通过手机应用程序远程或本地控制家里的电灯、插座、红外遥控电器的开关,设置空调温度值,以及实时监测室内的信息,如温湿度等。
系统的总体设计如图1所示。不难看出,智能网关是整个设计的核心,它起着承上启下的作用,一端通过2.4G无线通信方式连接各个控制模块,另一端通过WiFi方式接入家庭无线路由器继而连接到英特网上,以实现手机端远程控制。此时桥接无线路由和手机端的是云平台。当手机和智能网关连接到同一个无线路由器,即处在同一个局域网时,则手机端的控制无需借助云端就应该可以直接和智能网关进行通信。
图1 总体设计
我们将控制模块分成三大类:红外遥控类,监测报警类以及强电控制类。其中,红外遥控类顾名思义控制家用遥控器;监测类是将信息上报给手机端;而强电类则需要处理强电相关的控制。因此,整个智能家居控制系统包括:手机控制端、智能网关控制器、红外遥控控制模块、监测报警控制模块、强电控制模块等。
由于篇幅限制以及各个模块的设计相对较为简单,我们后续的设计主要围绕着智能网关部分。
本系统的主控制芯片选择的是:STM32F103CBT6。STM32F-103CBT6是中等容量增强型微处理器,基于ARM Cortex-M3 32位RISC内核,工作在72MHZ的工作频率下。芯片内部具有20K字节高速存储器,闪存高达128K字节。该芯片具有体积小、成本低、功能强大等特点,采用LQFP48封装,价格上与常见的8位、16位单片机接近,拥有完全满足需求的48个增强I/O端口和丰富的外设。包含USB、CAN、2个ADC、7个定时器、9个通信接口,其中3个全双工串行接口。 STM32F103CBT6工作于-40°C至85°C的温度范围,供电电压2.0V至3.6V,芯片具有省电模式,这种模式能提高设备在缺电的特殊环境下的生存能力。
主控芯片是本系统的核心,它要与WiFi模块和NRF24L01无线通信模块进行通信,其中WiFi模块是其和云平台或手机端通信的纽带,而NRF24L01将协助完成和其他终端模块通信。
WiFi模组采用的是乐鑫ESP8266模块。ESP8266在较小尺寸封装中集成了业界领先的 在较小尺寸封装中集成了业界领先的Tensilica L106超低功耗32位微型MCU,带有16位精简模式,主频支持80MHz 和160MHz,支持RTOS,集成WiFi MAC/BB/RF/PA/LNA,板载天线。支持标准的 IEEE802.11 b/g/n协议,完整的TCP/IP 协议栈。用户可以使该模块为现有的设备添加联网功能,也可以构建独立的络控制器。ESP8266是高性能无线 SOC,以最低成本提供最大实用性,为WiFi功能嵌入其他系统提供了无限可能。
值得注意的是,它只能检测到2.4G频段的WiFi信号,此外它支持USART等通信接口,为物联网这种低流量的应用场合作了优化。本设计的主控芯片与WiFi模组采用USART通信方式进行数据同步。由于把贴片封装的WiFi模组直接焊接在电路板上,所以在加上了相应的0欧电阻,为了以后能够进行升级所用。
在智能家居控制系统中,用户要想通过手机控制具体的功能模块,还需要通过智能网关将信息下发至该功能模块。本设计使用的无线通信模块是NRF24L01+,与主控芯片的通讯采用SPI的方式。
除了上述几个主要电路之外,还有一个比较重要的就是供电电路。由于系统中的STM32,NRF24L01+,WIFI模组都需要在3.3V的电压下才能正常工作,这些芯片和模块对电源的质量要求较高,尤其是对稳定性的要求。因此选用了AMS1117稳压芯片,它具有线性稳压、纹波小、稳定等特点。
根据本系统的设计,依照传统的开发方式,需要分别在手机端开发APP、WiFi模组通信协议、STM32单片机软件以及在各位模块上开发对应的处理程序。而采用机智云平台后这些工作量将大大减少,甚至不用。
我们首先在机智云官网上创建产品,此时将分配到Product Key和Product Secret,其中Product Key是WiFi模组和云端正确通信的基础,Product Secret参数是手机APP和服务器对接时所使用的参数。
在创建产品过程中,首先需要做的是创建数据点,根据这些数据点以及Product Key和Product Secret,机智云能自动生成手机APP和MCU的程序框架,我们仅需添加相应的驱动程序。与此同时,ESP8266模组的固件我们也可以直接下载得到,无需自行开发。这些便利给开发者带来极大好处。
数据点即设备产品的功能的抽象,用于描述产品功能及其参数。创建数据点后,设备与云端通讯的数据格式即可确定,设备、机智云可以相互识别设备与机智云互联互通的数据。
数据点定义基本内容可分为显示名称,标识名,读写类型,数据类型及备注。根据设计,强电模块涉及的有插座电源控制、灯电源,该数据为开关量;红外遥控模块涉及空调开关和调温,其中空调开关为布尔值,温度设定为数值型;检测报警模块包括室内温湿度的监测,均为数值型。
WiFi模组在第一次连接到WiFi路由器时需要输入用户名和密码,由于所使用的模组没有输入和先显示界面,没法直接做上述操作。ESP8266模组提供了两种入网方式:SoftAP和AirLink。在SoftAp模式中,模组将自己从工作站模式切换到接入点模式,此时,手机可以连接到该模组,输入用户名和密码,便将信息传送给模组,得到上述信息后,模组重新切换到工作站模式,并连接到相应的接入点上。而在AirLink模式下,模组会不断接收特定编码的WiFi广播包,该广播包是由手机在连接可用的WiFi网络后,通过指定的App发送编码后的WiFi网络的SSID和密码广播,设备接收到之后自动尝试连接此WiFi网络,连接成功即配置完成。
完成入网方式选择的对应配置函数为gizwitsSetMode,参数为WIFI_SOFTAP_MODE和WIFI_AIRLINK_MODE。
这里,我们通过短按和长按按键来触发WiFi入网模式。短按时进入SoftAp模式,长按则进入AirLink模式。无论哪种模式,配置成功后,LED灯都亮起。
在智能家居控制过程中,云端/APP发送过来的控制事件经由智能网关下发至智能家居模块,而网关端与控制型协议相关的函数调用关系。各函数说明如下。
protocolIssuedProcess:该函数被gizwitsHandle调用,接收来自云端或app端下发的相关协议数据。ACTION_CONTROL_DEVICE:进行“控制型协议”的相关处理。gizDataPoint2Event:根据协议生成“控制型事件”,并进行相应数据类型的转化转换。
gizwitsEventProcess:根据已生成的“控制型事件”进行相应处理(包括相应的驱动函数)。
借助于机智云的虚拟设备,分别调试手机APP和云端,以及云端和网关端的通讯。
文中提出了一种基于机智云平台的智能家居控制系统,实现手机APP控制常用家居设备的功能。该系统的核心为智能网关部分,它承接着云平台或手机端与各个智能家居模块的信息中转功能。其中MCU采用价格低廉、功能强大的STM32单片机。通讯方式采用较为成熟和常见的WiFi以及2.4G无线方式。此外,借助于机智云的强大功能,极大地减小开发复杂度、缩短开发周期,进而降低整个系统的成本,为该系统应用推广奠定了基础。