APP下载

基于PIC32的居室智能化平台的设计与实现

2016-01-12张庆磊,王珍珍,王传刚

电子科技 2015年9期
关键词:信息管理智能家居数据库

基于PIC32的居室智能化平台的设计与实现

张庆磊,王珍珍,王传刚,杨亮

(西安电子科技大学 电子工程学院,陕西 西安710071)

摘要系统以PIC32 单片机作为核心控制器,植入TCP/IP通信协议和文件系统,通过WiFi模块和无线网络可实时访问存储在SD卡设备文件中的系统参数和传感数据,并能进行参数的配置和数据的管理,进而实现智能家居系统的远程监控、管理和控制。系统可通过个人电脑或手机进行访问,具有较好的人机交互功能,方便易用,功能可扩展性强,且设计运行成本低。

关键词PIC32;智能家居;WiFi;信息管理;数据库

收稿日期:2015-01-26

作者简介:张庆磊(1990—),男,硕士研究生。研究方向:电子设计自动化,嵌入式技术,物联网技术。E-mail:jangcingly@163.com

doi:10.16180/j.cnki.issn1007-7820.2015.09.036

中图分类号TP274

Information System for Smart Home Based on PIC32

ZHANG Qinglei,WANG Zhenzhen,WANG Chuangang,YANG Liang

(School of Electronic Engineering,Xidian University,Xi’an 710071,China)

AbstractThe designed system uses PIC32 MCU as the core controller with embedded TCP/IP communication protocols and file system.WiFi module can be used to access system parameters and sensors’ data stored in the SD card through a wireless network.The device parameters can be configured with data management for monitoring or control of the status of intelligent household system.The system can be conveniently accessed through personal computers or mobile phones.The system also has advantages of good scalability and low design and running cost.

KeywordsPIC32;smart home;WiFi;information management;database

随着人们对智能居室系统要求的不断提高,智能化系统正向着传感节点多、数据量大、控制更加复杂的方向发展。针对具有复杂节点网络的系统来说,系统参数的配置和数据的管理显得尤为重要。通常情况下,系统会配合专用服务器及数据库实现远程控制和数据的管理。但对于小型的家居系统而言,整个系统的运行需使用专用的服务器来支撑,这通常是没必要的,由此不仅增加了系统的设计成本,还会使系统的运行成本大幅增加,造成资源的浪费。本文旨在通过架构基于PIC32 微控制单元(Micro Control Unit,MCU)的嵌入式服务器来实现更加简洁实用的居室智能化系统。系统控制核心兼做数据服务处理器,大幅降低了系统的设计和运行成本,适合于中小型智能系统中的参数和数据的管理。另外,系统还可配合云端服务器进行使用,完成数据的同步等任务,更具有实际的设计价值。

1系统组成与原理

系统核心微处理器采用Microchip公司的PIC32MX695F512L[1]32位单片机,其内部资源丰富,具有图形接口、USB控制器、CAN模块、以太网接口、ADC模块等,最高工作主频可达80 MHz,适用于智能化系统中,不仅方便各种传感数据的采集,人机交互功能的实现,也具有一定的数据处理能力。WiFi模块选用的是该公司的MRF24WG0MA[2],该模块可通过SPI接口与PIC32 MCU进行通信,通过该模块使系统接入无线网络,以达到通过网络对系统进行访问的目的。可视化动态Web交互界面主要采用HTML,JavaScript,Ajax,jQuery和CSS网络前端设计语言来实现,并将相应Web服务端文件存储在SD卡中,核心处理器解析到网络页面或文件请求后,在SD卡中进行相应文件的查找,若文件存在,则对SD卡相应文件进行读取,并将文件数据返回,以呈现在客户端。若需要对系统进行配置或控制,则处理器通过解析相应的请求和参数,将相应的信息写入文件,或直接转化为对设备的控制信号。系统中数据的来源主要通过传感器模块进行采集,而控制器指的是居室系统中的各种受控设备的控制驱动电路。传感器和控制器根据不同的系统会做出不同的调整,本文仅选择单个节点用作测试。系统组成如图1所示。

图1 系统组成

2硬件平台设计

2.1 WiFi模块

MRF24WG0MA是符合IEEE 802.11的低功耗 2.4 GHz 表面贴装模块,含有所有相关的 RF元件——晶振、带集成MAC的旁路和无源偏置电路、基带、RF 和功率放大器,以及支持 AES 和 TKIP(WEP、WPA 和 WPA2 安全性)的内置硬件。支持802.11 b/g无线通信,最高传输速率可达54 Mbit·s-1[2]。

图2 MRF24WG0MA与PIC32连接方式

MRF24WG0MA 模块需要与 Microchip 的 TCP/IP软件协议栈配合使用。该软件协议栈集成有驱动程序,其实现的 API 在模块中用于命令和控制,以及管理和数据包通信。

2.2 SD卡模块

SD数据存贮卡可分为SD和SPI两种工作模式,SD模式是标准的默认模式,该模式下利用SD总线进行数据传输,位宽一般为4 bit,读写最高时钟可达50 MHz,读取速度能到达20 MByte·s-1以上,可充分发挥SD卡的性能。而SPI模式则是SD卡可选的第二种模式,该模式下利用SPI总线进行数据传输,位宽为1 bit,时钟最高只能到25 MHz,读取速度通常低于3 MByte·s-1,但该模式对硬件要求较低,可将设计花费减到最小。鉴于本次设计对SD卡的读写速率要求不高,并需要能较好地与WiFi模块通信带宽和数据的处理速度进行配合,采用SPI模式基本可满足设计要求,系统采用Micro SD Card作为数据存储器,器件引脚定义及典型SPI模式应用电路如图3所示[3-4]。

图3 Micro SD Card SPI方式工作电路

3系统软件设计

3.1 系统软件架构

系统软件部分,是在Microchip公司提供的TCP/IP协议栈和应用层Http协议基础上进行应用程序的设计与开发的。整个系统架构框图如图4所示[5],其中用户应用层的设计是本次设计的核心工作。

图4 系统软件架构图

3.2 嵌入式服务器的设计

该平台下嵌入式服务器,主要是基于PC端浏览器和移动端APP进行设计的。因此,仅采用HTTP协议即可满足设计要求,HTTP协议是建立在TCP/IP协议之上的应用层协议,客户端进行数据发送时会对报文进行格式化,因此只需在服务器端对报文格式进行解析,提取相应的控制信息和数据即可;返回数据时也需要将返回的内容格式化成HTTP协议报文格式,以便被客户机解析。TCP/IP连接建立过程和数据收发流程如图5所示[5]。

图5 TCP/IP连接的建立流程图

首先服务器端需要进行系统初始化工作,包括打开套接字,绑定端口,建立侦听等[6],最后将状态转移到“接受连接请求”;TCP是面向连结的传输机制,客户端与其套接字建立连接前需要进行3次“握手”确认[6],才能通过建立连接的套接字进行数据的收发,数据格式均采用HTTP协议,在HTTP报文解析部分,通过编写的应用程序,将HTTP请求的参数和数据解析出来,根据实际应用将服务器端状态机进行转移,状态机主要包括通过外设获取信息,向I/O口发送控制信息,进入文件系统读取SD卡中的相应文件并将数据返回,或者将提交的数据信息写入文件或更新系统状态等。套接字连接一旦建立将会一直保持[6],除非客户端或服务器端主动请求断开,例如客户端直接关闭应用程序或服务器端长时间无数据请求自动断开。

3.3 数据管理软件的实现

数据管理软件部分是基于文件系统API进行设计的。文件系统提供的基础API主要包括open(),close();read(),write(),seek()等接口函数;而所需主要数据操作函数如表1所列。

数据存储文件选择普通的文本文件基本可满足要求,但考虑到数据的增删查改实际操作的需要,选择标签语言文件XML格式更便于应用程序的编写,另外当客户端进行数据加载时,通过MSXml2组件也能方便地直接加载数据。

表1 数据管理关键函数和功能

考虑到人机交互的用户体验以及PIC32 MCU的数据处理能力[7],文中将众多运算处理放在了前端文件中,前端文件一旦首次加载成功,便可在客户机完成主要的人机交互操作,最终将处理后的数据通过部分提交的方式发送至服务器端,使用Ajax部分提交技术无需重载界面,提高微控制器的处理能力[8]。另外,由于大部分人机交互的工作可放在前端通过JavaScript脚本语言处理。因此,需提交的数据量也会大幅减小,PIC32的处理任务也会相应减少,资源利用率也有所提高,能使系统达到一个比较好的运行状态。

在表1所列出的关键函数中,file_read_line()按行读取文件内容,多用于检索数据。sys_config()实现的功能是更改指定标签后的设定值,主要用于进行系统参数配置。read_config()用于读取配置信息,即读取指定标签后的设定值,多用于系统参数的实时显示和监控。modify_flag()用于修改固定格式数据条目中的指定数据,例如读取数据条目时,若该条目已被读取过,则修改条目中相应标记为已读取或修改为已被读取的次数。read_next_schedule()按顺序或条件读取固定格式数据,其更多地用于管理具有时间标记的数据。在智能居室系统多以时间为控制主线,很多数据都具有时间标记,通常需要根据时间节点进行数据操作,由于日期和时间数据的特殊性,在进行具有时间标记的数据条目的读写前,进行日期时间的计算是必须的,这在较多数据操作中均有体现。add_item()增加固定格式数据条目。del_line()按行删除数据,被调用时会先按照标记如索引ID号查找该条目,然后删除。clear_data()用于清除数据文件内容,因为用的是XML文件,所以实际进行数据清除操作时应保留文件头。run_log()用于记录系统运行日志,设备运行状态的变换都会被记录下来,这对于系统运行的监控和维护是非常必要的。通过以上基本的数据操作函数,可以完成对数据的增、删、查、改等操作,能够满足系统的设计要求。

4系统测试

4.1 测试平台

测试平台采用Chipkit-WF32核心板与外围设备扩展板组成。Chipkit-WF32核心板集PIC32MX695F512L单片机、MRF24WG0MA WiFi模块和Micro SD卡接口于一体,配合设计的用于连接各类传感器、控制器和显示设备的外设扩展板构成居室智能化系统硬件平台。测试平台硬件实物如图6所示。

图6 系统测试平台

4.2 测试结果

通过系统配置的网络参数对系统平台进行登陆访问,系统参数配置以及通过传感器(温度)实时采集的信息实时更新到客户机前端,通过配置界面或者控制界面也可对系统的配置进行更改和外设模块的控制。另外实时数据也可以被记录到系统后台数据文件中,可单独或批量调出,方便查看。系统的所有配置,数据详情以及控制日志等数据均进行相应存储,并可进行基本的管理。图7为通过PC端IE浏览器访问系统的部分结果。

图7 系统测试结果

5结束语

采用PIC32 MCU移植TCP/IP协议和FAT32文件系统,通过WiFi网络实现的居室智能化信息平台可方便实现居室智能化系统本地数据的管理及控制,也可通过网络将数据与云端同步,并实现远程控制。大幅降低了智能控制类家居系统的设计成本和运行成本,也在一定程度上提高了系统的易用性和易维护性。

参考文献

[1]Microchip.PIC32MX5XX/6XX/7XX data sheet[M].USA:Microchip Technology Inc,2010.

[2]Microchip.MRF24WG0MA/MB data sheet[M].USA:Microchip Technology Inc,2013.

[3]闫广明,张波,孙小君.零点起步:PIC单片机常用模块典型实例[M].北京:机械工业出版社,2011.

[4]何乐生.PIC单片机原理、开发方法及实践[M].北京:高等教育出版社,2011.

[5]Microchip.802.11WiFi嵌入式应用开发[M].USA:Microchipi Corporation,2010.

[6]Behrouz A Forouzan.TCP/IP协议族[M].4版.北京:清华大学出版社,2011.

[7]石广范.PIC单片机原理与接口技术[M].哈尔滨:哈尔滨工业大学出版社,2012.

[8]闫晨阳,燕一松,李涛涛.基于MPC8313E的网络服务器设计[J].电子科技,2014,27(6):160-162.

猜你喜欢

信息管理智能家居数据库
造价信息管理在海外投标中的应用探讨
评《现代物流信息管理与技术》(书评)
基于PLC的智能家居控制系统研究
基于Zigbee的无线通信技术在智能家居中的应用
数据库
在高速公路信息管理中如何做好QC小组活动
数据库
关于智能家居真正需求的探讨
数据库
数据库