智能家居网关及其Web控制软件的设计和实现
侯维岩;魏耀徽;庞中强
【摘 要】In accordance with the current status of multi-network and multi-system in IOT smart home field, the B/S smart home control system that is compatible with ZigBee, Bluetooth, and Ethernet and easy to operate is proposed. In the gateway, STM32F103 is adopted as the core processor for expanding multiple functional modules and constituting the hardware platform. The thread programming is used in software, and the drive of ENC28J60 is added, data transmission and transformation of different subsystems are controlled through thread polling mode. With MySQL as the database of the system, the information interaction among users, gateway and database is implemented via PHPsocket programming, while the communication between gateway and child nodes is through the serial port circuit. The experimental results show that the system is running with excellent effect and is easy operated;it features lower maintenance difficulty, and is suitable for applying in the field of smart home.%针对物联网智能家居领域多网络和多系统的现状,提出
了一种能够同时兼容ZigBee、Bluetooth和以太网,并且能方便操作的B/S智能家居控制系统。网关采用STM32F103作为核心处理器,扩展多个功能模块和各个子系统节点构成硬件平台。软件方面采用线程编程,添加ENC28J60驱动,通过线程轮询的模式来控制不同子系统的数据传输与转换。以MySQL作为数据库,通过PHPsocket编程实现用户与网关、数据库之间的信息交互。网关与子节点之间通过串口电路进行通信。试验结果表明,系统运行效果良好、使用方便、维护难度较低,能更好地应用到智能家居领域。
【期刊名称】《自动化仪表》
【年(卷),期】2015(000)005
【总页数】4页(P64-67)
【关键词】数据库;ZigBee技术;Bluetooth技术;ENC28J60;网关;B/S架构
【作 者】侯维岩;魏耀徽;庞中强
【作者单位】郑州大学信息工程学院1,河南 郑州 450001; 上海市电站自动化技术重点实验
室2,上海 200072;郑州大学信息工程学院1,河南 郑州 450001;郑州大学信息工程学院1,河南 郑州 450001
【正文语种】中 文
【中图分类】TN871
随着无线传感器网络技术的发展,物联网技术从最开始的工业控制领域向民用领域逐步扩展[1]。最近几年,各大家电生产厂商逐步将生产方向转向高端智能化领域,并提出了智慧城市、智慧地球理念。目前各个大电子生产厂商生产的无线设备种类众多,例如ZigBee和Bluetooth[2]等。但是没有一个通用的控制系统将这些不同的通信设备进行有效融合。[3]
针对上述问题,本文设计一种易于大规模生产且能兼容不同协议的智能家居网关[4],即支持以太网、蓝牙4.0和ZigBee这3种不同网络间的信息交换,并设计与其相关的控制软件模型:MySQL数据库[5]和PHP界面。网关可以通过Socket通信[6]对家居环境中各种设备进行控制,实现远程智能监控。
整个系统可分为:STM32F103VET6嵌入式网关和基于PHP的Web操控界面2大部分。嵌入
式网关则由ZigBee模块、Bluetooth模块、RS232外设串口、ENC28J60以太网模块和MCU-STM32F103VET6组成。
1.1 网关MCU设计
网关的硬件核心部分选用CortexTM-M3系列的STM32F103嵌入式芯片,主频76 MHz,外接管脚功能较全。
网关需要处理和转换多种通信协议,并且还要能够运行以太网协议,所以本系统对网关的MCU内存容量要求较高。为了能使系统流畅地运行,选择STM32F103VET6嵌入式芯片为核心处理器,其内存可达512 kB。
JTAG接口通过STM32F103VET6芯片的JTDI(测试数据输入)、JTDO(测试数据输出)、JTCK(测试时钟)、JTMS(测试模式选择)、JTRST(测试复位) 管脚下载和调试程序。
ZigBee和Bluetooth模块通过STM32F103VET6的内置UART1和UART2管脚与芯片直接相连。UART3管脚则经过MAX232电源电平转换芯片设置为串口外设接口(方便程序的检测和调试)。各个子系统和MCU可以通过串口实现透明传输。
网络接口主要负责网关和以太网相连,使用ENC28J60网络芯片与STM32F103VET6的SPI接口相连,之后通过HR911105A网口与网线连接。
电源采用AMS1117芯片,实现5 V到3.3 V电压的转换,为主控芯片和各个子系统芯片提供电压。网关硬件设计如图1所示。
tcpip协议栈中的协议主要定义
1.2 ZigBee节点设计
ZigBee节点硬件设计主要包括:按键、CC2530、电源、LED灯,结构如图2所示。
ZigBee模块与网关共享同一个电源,子节点起采集信息及设备状态的作用。子节点周期性读取传感器的状态,后通过单播的方式将数据传输到协调器节点,协调器则通过串口将数据发送至网关。发送数据前,将采集数据与上次数据进行比较,如果没有变化,则不发送数据。这样不仅降低了节点能耗,而且避免了网关收发大量数据时产生的数据拥堵现象。LED等显示网络的连接状态是否正常,如不正常,则通过按键可以重启ZigBee模块。
本系统中对协调器和各个子节点进行了统一编码,并采用单播通信的方式通过地址响应,而非根据通信内容的响应来控制各个子节点设备,极大地降低了系统网络中数据的传输量,也
简化了子节点的编程难度。数据帧格式如表1所示。
从表1可以看出,帧头帧尾以固定的数据填充,用来校验数据格式是否正确,数据帧长度为15 B,其中帧头中Z表示系统类型(ZigBee),K或F表示控制或状态。而设备类型是描述设备的用途。节点网络地址占4 B,用来区分不同的终端设备。传感器采集的信号存放在数据段(少于4 B时,补0)。
当协调器收到子节点发送的数据时,自动查询子节点的网络地址,将网络地址以表1的格式打包发送给网关,再由网关转发到上层控制端。当协调器收到网关的控制指令后,根据网络地址将数据字符串发送给终端节点,终端节点收到消息后触发相应的响应函数,实现对设备的控制。
1.3 Bluetooth节点设计
蓝牙芯片采用TI生产的CC2540芯片,其硬件设计包括:CC2540、电源、按键、LED电路,结构如图3所示。Bluetooth节点运行TI官方的BLE协议栈。该协议栈是最新的蓝牙4.0协议,较之前的版本它具有功耗小、延时短以及成本低的优点,大大扩展了其在无线设备领域的应用范围。通信网络由主机和从机组成。
由图3可知,主机(Central)通过对SimpleBLECentral_ProcessEvent()函数插入自动搜索语句,使主机能够上电自动搜索周围的广播设备。当搜索到可连接的设备后会自动连接,这时主机会通过串口向网关发送字符和广播内容,LED等闪烁表明连接已经建立。若连接失败,可以通过按键手动重新连接。
从机上电后自动广播,连接建立后主要通过两条特性值数据通道与主机通信。两条特性值数据通道定义为Char6和Char7。Char6设置为可读写的特性值语句,从机主要通过这条数据通道接收主机发送的信息,Char7为消息特性值语句。当从机收到外部数据后写入Char7,主机可以从Char7读取从机发送的数据。Bluetooth通信格式如表2所示。
表2表明,帧头帧尾以固定的数据填充,用来校验数据格式是否正确,数据帧长度为14 B。其中帧头B表示系统类型(Bluetooth),K或F表示控制或状态。后面的是节点网络地址用来区分不同的终端节点。蓝牙协议的网络地址是由48位IEEE地址构成,所以将节点网络地址字段设置为6 B。数据段为传感器发送的数据(少于4 B时,补0)。
1.4 ENC28J60模块设计
ENC28J60是闭环网络控制芯片,它符合IEEE 802.3的全部规范,内部拥有一个DMA模块,以实现高速数据的收发和IP校验与计算[7]。MCU通过2个中断引脚和SPI连接,最高传输速率可达10 Mbit/s。硬件设计主要包括:NEC28J60、按键、电源、晶振。WiFi结构原理图如图4所示。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。