一种基于WiFi的多功能智能控制系统设计

2018-07-11 07:51,,
单片机与嵌入式系统应用 2018年7期
关键词:处理单元服务端嵌入式

,,

(东北大学 计算机科学与工程学院,沈阳110819)

引 言

近年来,随着计算机网络技术、嵌入式技术和自动控制技术的迅猛发展,智能化应用技术在世界各地得到了广泛应用[1]。传统的智能家居控制系统一般通过有线方式组建并且通过PC控制,这种控制方式不仅增加使用者的学习成本,同时降低了设备的便携性。而WiFi作为全球应用最为广泛的WLAN通信技术,其具有功耗较低,组网成本低廉等优点,适合在智能家居系统中使用[2]。

1 系统总体概述

本文设计了如图1所示的基于WiFi的嵌入式智能控制系统,嵌入式智能控制系统服务端通过WiFi技术和TCP/IP协议将系统资源接入到局域网,用户可以通过Android智能手机连上局域网,从而实现对家居设备的控制。

该系统集实时控制、文件传输和多媒体于一身,能够实现对设备的实时控制、对室内温湿度数据的采集和处理、对音频播放的控制并支持音频文件从客户端上传到服务端,同时拥有良好的扩展性和稳定性。

图1 嵌入式智能控制系统

2 系统模块化结构

嵌入式智能控制系统由基于Android平台的控制终端APP、承担信息处理的STM32F103ZET6芯片、WiFi通信模块、设备和传感器以及起辅助作用的SD卡模块和OLED显示模块组成[3-4]。系统中各个模块构成及其功能分别进行介绍。

2.1 中央处理单元

中央处理单元是嵌入式智能控制系统的信息处理、设备控制以及数据采集的中心。负责处理来自传感器采集的数据,并对其进行加工,然后反馈到Android控制终端,而对于一些紧急事件,处理中心会触发蜂鸣器以达到提醒用户的作用;其次,中央处理单元响应来自Android控制终端请求,例如对LED的开断;此外中央处理单元在系统出现异常时重新复位系统,并记录异常到SD卡。

2.2 WiFi通信模块

WiFi通信模块在中央处理单元的配置下有STA和AP两种工作模式,建立两种Android客户端接入方式。WiFi通信模块是服务端和客户端的通信桥梁,负责完成WiFi信号同电信号的相互转换,以及实现服务端同客户端的连接。

2.3 辅助模块

SD卡模块作为嵌入式智能控制系统的数据存储设备,支持中央处理单元的读写操作,在本文SD卡也是家庭云盘的抽象,存储一些个人重要信息等(例如播放SD卡内的音频文件、存储Android控制终端上传的音频文件显示系统异常信息)。OLED显示模块负责时钟和一些重要信息的显示。

2.4 设备和传感器

温湿度传感器负责实时采集室内的温度和湿度,通过单总线采集的数据传输到数据处理中心。LED作为室内灯具的抽象,以此来替代灯具,在本文中它作为控制对象存在。继电器作为室内开关器件的抽象,通过控制它来替代对室内具有开关特性设备的控制。音频播放模块则用于对音频文件的播放。

3 系统软硬件设计

3.1 硬件设计

嵌入式智能控制系统服务端的硬件部分由中央处理单元、WiFi通信模块、SD卡模块、OLED显示模块、音频播放模块,以及其它控制设备和传感器组成[5]。图2为嵌入式智能控制系统服务端硬件结构框图。

图2 嵌入式智能控制系统硬件结构图

3.2 软件设计

服务端应用程序的实现依赖μC/OS Ⅲ实时操作系统的多线程技术和文件系统,考虑到串口通信不定时地接收到客户端的信息,音频播放模块能够一直播放音频,同时传感器一直向中央处理器发送温湿度信息,本文对应用程序做如下设计:

① 使用串口中断完成对客户端信息的监控。

② 实现3个线程,数据解析线程主要完成串口中断发来的一帧数据的解析,以及一些不占用CPU资源的任务;音频播放线程主要完成音频文件的播放控制;OLED显示线程主要完成时间的显示以及一些重要操作的显示。

③ 使用μC/OS III的消息队列完成线程间的通信。

④ 使用FATFS文件系统,简化对SD卡读写的操作。整体软件结构如图3所示。

图3 服务端程序结构模型

3.3 系统客户端设计

嵌入式智能控制系统的客户端是一款基于Android平台的操作简洁、可视化软件。嵌入式智能控制系统启动后,Android控制终端能够自动感知同一网络内的嵌入式智能控制系统,并能够自动连接[6-7]。用户可以通过Android控制终端查看连接到智能控制系统上的设备以及传感器等状态信息。Android控制终端还具有温湿度自动更新功能,不需要用户繁琐地进行状态查询操作。此外,Android控制终端支持对系统所存储音乐的播放,也可以根据自己的需求将Android手机内的音乐等文件上传到嵌入式控制系统所管理的SD卡。在设备连接方面,嵌入式智能控制系统支持多用户同时连接并发出请求等功能。图4为客户端设备管理界面。

图4 设备管理界面

图5为嵌入式智能控制系统客户端的程序结构图,本系统由用户界面和后台处理模块两部分组成。用户界面负责完成人机交互工作;后台处理模块包括用户界面交互接口、数据解析和分发模块、数据封装处理模块、连接控制模块、消息接收模块、消息发送模块、WiFi通信模块、嵌入式智能控制系统扫描模块[8]。

3.4 系统传输协议设计

在嵌入式智能控制系统中,Android控制终端需要完成和中央处理单元之间的数据传输,由于连接到STM32的设备和传感器种类众多,通信时传输的数据也不尽相同,因此设计一种传输协议用于解决嵌入式智能控制系统内客户端与服务端之间的通信问题是十分必要的[9]。基于以上目的,本节设计了一种系统传输协议,如表1所列。

图5 嵌入式智能控制系统客户端程序结构图

帧头数据类型数据长度数据扩展位校验位0xFE1byte2byte0~65536byte1byte1byte

传输协议中各字段的含义如下:

① 帧头:用以标识一帧数据开始,其内容为0xFE。当接收方收到一帧数据时,首先对数据帧头进行判断,以确定数据的合法性。

② 数据类型:标识一帧数据的类型。

③ 数据长度:表示一帧数据中数据的字节数。

④ 数据位:表示一帧数据中的数据内容,例如控制命令、响应消息等。

⑤ 扩展位:在控制方面,该扩展位用于对数据类型位补充,在数据传输方面,该扩展位用来标识当前数据帧的ID。

⑥ 校验位:存储一帧数据的CRC-8校验值,用于接收方进行数据校验,提高数据的准确性。

结 语

猜你喜欢
处理单元服务端嵌入式
不同生物链组合对黄河下游地区引黄水库富营养化及藻类控制
城市污水处理厂设备能耗及影响因素分析研究
长填龄渗滤液MBR+NF组合工艺各处理单元的DOM化学多样性
一种高可用负载均衡网络数据采集处理的方法及系统
云存储中基于相似性的客户-服务端双端数据去重方法
新时期《移动Web服务端开发》课程教学改革的研究
搭建基于Qt的嵌入式开发平台
在Windows Server 2008上创建应用
嵌入式软PLC在电镀生产流程控制系统中的应用
Altera加入嵌入式视觉联盟