基于Android平台的WIFI控制系统的设计与实现

  • 格式:docx
  • 大小:41.95 KB
  • 文档页数:10

基于Android平台的WIFI控制系统的设计与实现

杨洪涛;王英卓;杜娟

【摘 要】为实现基于Android平台的WIFI控制系统的设计,采用STM32F103C8增强型芯片作为节点控制,节点传感器模块与WIFI模块采用串口协议通信,软件部分设计了终端UI,规划了无线通信协议数据帧结构和串口数据帧结构,通过Socket网络编程,实现了智能平台通过WIFI对风扇的控制,最终完成了基于Android平台的WIFI控制系统的设计.实验证明:该系统运行稳定,有很强的扩展性和可移植性.

【期刊名称】《北京工业职业技术学院学报》

【年(卷),期】2016(015)003

【总页数】7页(P10-16)

【关键词】Android;WIFI;智能;控制

【作 者】杨洪涛;王英卓;杜娟

【作者单位】北京工业职业技术学院电气与信息工程学院,北京100042;北京工业职业技术学院电气与信息工程学院,北京100042;北京市丰台区第二中学信息中心,北京100071

【正文语种】中 文

【中图分类】TN-47

信息网络时代的到来,科技的不断进步,尤其是WIFI技术、Zigbee技术、蓝牙技术、3G/4G移动通信技术等无线通信技术的大发展,催生了各种智能终端蓬勃发展。计算机处理技术的发展、嵌入式技术的发展、芯片制作工艺的精密化都为智能终端的持续发展提供了可能性。以Android 操作系统为代表的智能平台,因为其开源性和智能性,迅速成为受用人数众多的智能平台,广泛应用于各种智能化设备中。将智能平台与控制系统组合在一起,不仅智能平台具有便携能力,可以实现真正的移动的通信方式,其功能也根据现实的应用场景有了更多的创新。

本文成功实现了一种基于Android手机的WIFI控制风扇系统。系统中Android

手机可利用自身的WIFI与其它控制装置进行交互并实施控制。控制装置采用STM32F103C8增强型模块做为硬件控制模块[1],在硬件平台上传感器与处理器通过串口通信的协议实现。在智能终端设计了UI界面,规划了WIFI通信协议数据结构和串口间通信协议,为了实现WIFI控制风扇的应用,需对通信协议的实现进行Android Socket网络编程[2-3],完成了Android平台与控制设备之间的数据传输,实现了Android平台对风扇模块的控制。手机做为智能平台,不仅让智能平台有了更多的选择性,还可以在手机平台通过WIFI控制开发更多的控制应用。如果Android平台添加Zigbee、蓝牙、GPRS、3G/4G等其它无线控制模块,可大大拓展智能控制的应用领域,将对我们的工作方式及生活方式产生重大影响。

基于Android平台的风扇控制系统包括智能终端平台、控制节点。系统的总体结构如图1所示,图中WIFI模块和风扇模块共同组成控制节点。智能终端平台通过WIFI和节点的WIFI模块进行通信;节点内部,WIFI模块和风扇模块通过串口通信进行数据的透传。

系统工作过程描述如下:

(1)网络构建。对控制节点进行设置,让其具有无线访问接入点Access Point(AP)的角色,智能终端配置静态IP,让其和AP在同一网段,构建WIFI网络。

(2)智能终端平台。编写应用程序,将Socket数据包通过WIFI发送到控制节点,控制节点解析数据,分析WIFI数据协议帧中传感器数据[4]。

(3)控制节点。解析传感器数据中相应字段,通过串口透传到风扇模块,解析后风扇模块按照解析内容做出低速、高速、停止的动作。也可将传感器电路的信号状态通过串口传递给WIFI模块,之后再通过WIFI网络传给智能终端平台。

系统的硬件主要包括核心控制电路、WIFI通信电路、风扇控制电路,此外还包括电源电路和时钟电路等[5]。这里我们重点分析前三者。

2.1 核心控制电路

核心控制电路设计采用STM32F103C8增强型芯片,如图2所示。该芯片通过PA口实现2组串口控制引脚的连接。其中串口1和风扇控制电路连接,可以接收风扇传感器电路的状态信号以及发送控制信号给风扇控制电路;串口2和WIFI通信电路连接,将传感器数据发送到串口2实现WIFI透传。

2.2 WIFI通信电路

本模块设计采用HF-A11集成模块。该模块主要功能是通过WIFI和智能终端平台通信,完成和STM32F103C8增强型芯片的串口2透传通信。主要的电路模块包括WIFI天线接口、UART接口、电源接口和外围电路。该模块硬件结构如图3 所示。

控制节点采用WIFI透明传输模式,在此模式下,所有收发数据都在串口与WIFI接口之间做透明传输,不做任何解析。控制节点设置为AP模式,负责热点的建立及传感器数据的透传,其配置方法类似于一般路由器的AP模式配置方法。假如控制节点的透传地址配置为192.168.1.120,只需将智能终端中的WIFI接入到当前AP热点后,再将其地址设置为静态192.168.1.120,即可接收WIFI模块数据。

2.3 核心控制电路和WIFI电路交互原理

核心控制电路和WIFI电路是节点中重要的硬件电路,其交互原理如图4所示。

系统上电启动后,首先核心控制电路中的串口1进行初始化,开启接收中断信号,串口1和风扇控制电路连接,等待接收风扇传感器电路的状态信号,并准备好以便发送控制信号给风扇控制电路;其次串口2初始化,开启接收中断,串口2和WIFI通信电路连接,准备让风扇传感器数据和串口2实现WIFI透传;再次WIFI模块进行初始化。全部初始化完毕后,开启全局中断,循环检测是否通过串口1接收到风扇传感器电路状态信号信息:如果接收到了,则将接收到的数据打包发送给串口2;如果没有接收到,则检测是否接收到串口2的透传信号;如果接收到了,则将接收到的数据发送到串口1,再把控制信号发送给风扇控制电路让其停止、低速和高速运行;如果没有接收到串口2的数据,则将再次循环检测是否接收到串口1的数据,直到收到为止。

2.4 风扇控制电路

风扇控制电路的处理器选用STM8S103F3,此电路和WIFI通信电路通过并口P1,P2相连,通过此电路中的核心芯片STM8S103F3对传感器电路控制和交互,通过解析后的传感器输出数据,控制风扇的IO,以达到控制风扇的作用。通过STM8开发工具IAR SWSTM8,可以进行在线仿真和在线调试。

风扇控制电路的原理如图5所示,系统初始化包括初始化时钟、初始化定时器为PWM模式、初始化IO。之后,串口初始化,开启全局中断,判断是否接收到串口数据:如果接收到串口的数据,则处理接收到的数据,并控制风扇的IO;如果没有收到串口的数据,则发送当前风扇的状态(停止、低速、高速)到串口。之后通过WIFI通信电路发送给智能终端,在智能终端上的界面显示出来。

基于Android的WIFI风扇控制系统的软件设计包括对Android上层UI界面设计和用WIFI实现风扇控制的程序设计。应用实现的硬件环境要求Android设备(手机、平板等),系统版本为2.3以上,软件采用JDK + Eclipse + SDK + ADT[6]。

3.1 通信协议

这里,定义了数据协议帧的结构和传感器发送给串口数据帧的结构。数据协议帧的定义,考虑了网络的拓展,考虑了不同传感器类型,预留了保留字节,让通信协议传输的内容有了现实意义;传感器发送给串口的数据包让不同的传感器数据有了统一的格式,对数据的处理有统一性。

3.1.1 数据协议帧

通信协议的一帧数据定长46字节,数据协议帧的数据结构如下:

u8 DataHeadH; //包头0xEE

u8 DataDeadL; //包头0xCC

u8 NetID; //所属网络标识01(ZigBee) 02(IPv6)03(WIFI)04(Bluetooth)05(RFID)

u8 NetInfoChnanelList[18]; //WIFI 热点名称(不到18 个字节数据放入低字节)

u8 NodeNwkAddress[4]; //节点IPv4 地址(32bits)//保留WIFI 固件暂不支持获取IP

u8 NodeFamilyAddress[4]; //服务器IPv4 地址(32bits)

u8 NodeType; //节点类型(0:AP,1:STA)

u8 NodeState; //节点状态(0:掉线,1:在线)

u8 NodeDepth; //Socket 通讯端口号高字节

u8 NodeLinkRSSI; //Socket 通讯端口号低字节

u8 NodePosition; //节点位置(同ZigBee 部分)

u8 SensorType; //传感器类型

u8 SensorIndex; //传感器ID

u8 SensorCMD; //传感器命令序号

u8 Sensordata1; //传感器数据1

u8 Sensordata2; //传感器数据2

u8 Sensordata3; //传感器数据3

u8 Sensordata4; //传感器数据4

u8 Sensordata5; //传感器数据5

u8 Sensordata6; //传感器数据6 u8 DataResv1; //保留字节1

u8 DataResv2; //保留字节2

u8 DataEnd; //节点包尾0xFF

3.1.2 传感器通信协议

根据不同的应用,可以有不同的传感器类型,为了能够将传感器采集的数据统一处理,我们需要统一规定传感器发送串口的数据包。

(1)传感器发送串口数据包

传感器发送给串口的数据包格式如表1所示。其中,该串口参数设置为波特率115200,数据位8,停止位1,无校验位。

说明:

SOF 固定为0xEE 0xCC,标志一帧的开始;

Sensor type 根据不同的传感器类型定义;

Sensor index 固定为 0x01;

Cmd id 固定为 0x01;

Data 为6Byte传感域,见表2传感器输出数据;

Exten data 为2Byte扩展数据域;

END 固定为0xFF,标志一帧的结束。

(2)传感器说明

根据现实应用,传感器部分可以是磁检测传感器、光照传感器、红外对射传感器、烟雾传感器等等,这些模块在硬件层面统一接口接入,它们的WIFI通信电路和核心控制电路可以相同。本设计用到了风扇传感器模块,传感器说明如表2所示。

3.3 UI界面设计

UI界面设计需做以下工作:

(1)设计布局应用程序界面