APP下载

基于WiFi的无线测控终端系统设计

2018-09-29王愿祥程悦琪孙先松

物联网技术 2018年9期

王愿祥 程悦琪 孙先松

摘 要:文中主要研究通过微控制器ARM结合WiFi技术,设计并制作一套微型测控终端系统模型,利用STM32F103主控芯片控制WiFi模块ESP8266,结合上位机实现对家居节能灯、窗帘的无线控制,以及对室内温度湿度的采集和监测,实现局域网内多节点无线智能测控的问题,详细介绍了系统总体工作的基本原理、硬件设计、软件设计以及系统简易实物模型的设计。

关键词:WiFi;STM32F103;ESP8266;无线控制

中图分类号:TP273 文献标识码:A 文章编号:2095-1302(2018)09-00-04

0 引 言

现代科技越来越广泛地影响着人们的学习、生活和娱乐。同时,物联网的高速发展使得智能家居成为研究热点[1]。而WiFi技术的应用则起着举足轻重的作用,WiFi技术越来越成熟,使用WiFi技术对智能设备进行无线控制更加符合实际需要。同时,测控系统在各领域广泛应用,为了适应测控环境的多样性、多变性和复杂性,将有线与无线网络技术相结合是测控网络的发展趋势。基于无线测控终端应用的巨大市场空间与WiFi技术,本文设计了一个可以进行无线测量与控制,测量精度高,可实时进行数据传输的简易智能家居系统。该系统以ARM系列单片机STM32F103为主控芯片,通过继电器控制室内节能灯的亮灭,从而控制步进电机带动窗帘的拉开与闭合;使用温湿度传感器DHT11采集室内的温度和湿度,并将采集到的数据通过ESP8266无线模块实时传送到上位机,实现温度与湿度的同时监测,从而实现对室内的简单智能

控制。

1 系统总体结构设计

本文系统分散布局,集中控制。系统下位机由WiFi无线通信模块ESP8266和微控制器STM32F103以及外接设备构成,相应的传感器(DHT11或DS18b20)与执行设备(继电器、步进电机)等均安装在STM32处理器模块上。处理器上搭载的多种传感器实现对室内环境数据(如温度、湿度、光线等)的采集,并将采集到的数据通过WiFi模块上传至手机客户端。同时,也可将手机作为控制端,将控制指令通过WiFi下传至处理器模块的执行设备,控制室内灯的亮灭、窗帘的开合等,从而实现对设备的监控与控制。系统整体结构如图1所示。

2 系统硬件设计

系统硬件包括单片机控制系统、无线传输模块、温湿度检测模块、继电器LED灯模块。系统硬件电路如图2所示。

2.1 单片机控制系统设计

单片机控制系统为整个系统的控制部分,该部分以单片机STM32F103为核心处理器,内核为ARM 32位Cortex-M3 CPU,最高工作频率为72 MHz。其外设电路分别由时钟电路、复位电路、电源电路、JTAG下载调试电路组成。该芯片是一款常用的增強型系列微控制器,应用广泛,主要应用于电机驱动、应用控制、警报系统。所以本文系统使用该芯片既能满足要求,又降低了成本。

2.2 无线传输模块

WiFi是一种基于IEEE 802.1Ib标准[2]的短程无线传输技术,能够在数百米范围内支持互联网接入的无线电信号(通常是2.4 GHz UHF或5 GHz SHF ISM射频频段),最大优点是传输速度较高,在信号较弱或有干扰的情况下,带宽可调整,有效地保障了网络的稳定性和可靠性。

WiFi模块选用ESP8266模块,该模块是一个完整且自成体系的WiFi网络解决方案,能够搭载软件应用,具有超高集成度(内置TCP/IP协议,PLL,稳压器和电源管理组件)、超低功耗(3.3 V低电平供电,转TTL电平)、成本低、体积小等优点,非常适用于无线控制领域。该模块是一款高性能的串口转WiFi(UART-WiFi)模块,ESP8266支持AP,STA,AP+STA三种模式。AP模式即无线接入点模式;STA模式通过路由器连接互联网,手机或电脑通过互联网实现对设备的远程控制。

2.3 温湿度检测模块

DHT11数字温湿度传感器[3]是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术与温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件与一个NTC测温元件,单线制串行接口使系统集成变得简易快捷,体积小、功耗低,信号传输距离可达20 m以上,一次完整的数据传输为40 bit,高位先出。

2.4 继电器LED灯模块

继电器是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定阶跃变化的一种电器。本文系统使用电磁继电器,给线圈加一个电压,产生一个磁场,该磁场使继电器的触点闭合,触点的接通与断开就能实现开关功能。设计中使用的型号为高/低电压都支持的3.3 V继电器模块,因为主控芯片的电压为3.3 V,

所以可直接用于驱动,简单方便。

2.5 电动窗帘模块

步进电机是一种能将电脉冲信号转换成角位移或线位移的机电元件,实际上是一种单相或多相同步电动机。本文系统使用五线四相制步进电机,其驱动电源为5 V,所以采用TPS7350电源管理芯片进行5 V稳压输出,亦同时使用L298N驱动步进电机。如果换作12 V的电机,则利用MC34063电源管理芯片进行升压电路设计,从而使电路满足电机正常运行的设计要求。

3 系统软件设计与实现

3.1 系统软件总体设计

首先对STM32F103内部各硬件单元进行系统初始化[4],包括串口 USARTx_Config(),时钟SysTick_Init(),LED灯: LED_Init (),Motor_Init ()等基本部件初始化,最重要的是ESP8266模块ESP8266_Init()初始化,温湿度DHT11_Init ()传感器模块初始化,步进电机初始化。初始化结束后根据ESP8266芯片的datasheet、模块自带的ESP8266_WiFi使用教程,利用主控芯片对模块进行相应的驱动。驱动的实质为在相应模式下合理使用AT指令。利用主控上的串口连接ESP8266的UTXD,URXD进行数据收发,在控制程序中将接收到APP的数据与程序中设定的数据进行对比,若相同,则执行相应的控制操作。本文系统主要使ESP8266工作在AP模式。系统软件设计框图如图3所示。

3.2 系统采集端软件设计

温湿度DHT11传感器一次完整的数据传输为40 bit,高位先出,其数据格式为:8 bit湿度整数数据+8 bit湿度小数数据+8 bit温度整数数据+8 bit温度小数数据+8 bit校验和[5]。数据传送正确时校验和数据等于“8 bit湿度整数数据+ 8 bit湿度小数数据+8 bit温度整数数据+8 bit温度小数数据”所得结果的末8位。具体代码[6]如下:

步进电机程序设计为:采用L298n双H桥直流电机驱动芯片,包括4个三极管和1个电机,要使电机运转,必须导通对角线上的1对三极管。根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。IN1,IN2,IN3,IN4接主控的4个管脚,用于给出脉冲; 五线四相制步进电机中的橙、黄、粉、蓝分别接L298n的OUT1,OUT2,OUT3,OUT4;+5 V接开发板的5 V;5 V驱动电源接外接电源;GND接外接电源GND; ENA,ENB,板载5 V等分别用跳接帽短接。步进电机驱动时序如下述代码:

本文系统使用8个节拍,步进电机的转速取决于脉冲频率、转子齿数和拍数。在设计代码时,可通过设置两个脉冲之间的延时从而改变速度。如Delay_ms(N),通过改变N的大小改变电机转速。

3.3 系统服务端程序设计

ESP8266模块程序设计:AP模式为默认模式,ESP8266模块作为热点,实现手机或电脑对模块的直接通信,并实现局域网[7]的搭建。ESP8266模块的具体配置如图4所示。

经过上述配置后,模块自身建立了局域网,在此局域网内可实现数据互传以及命令的控制。模块配置过程中的指令以及回应可通过串口助手实时显示,如图5所示。

无线控制程序设计:手机APP发送的数据通过ESP8266传给主控芯片进行解析,解析后再进行相应的命令操作。具体解析代码[8]如下:

APP端发送来的信息为"CMD_MOTORN_0""CMD_MOTORN_1""CMD_LED_1_0"等,通过程序对其指令进行解析。

系统上位机使用秉火物联的APP,其界面如图6所示。界面信息包括连接信息、灯控按钮、温湿度数据上传显示、蜂鸣器等。在界面左侧可以自主添加控制信息,如本文系统中开关窗帘的控制等。上位机界面如图7所示。

4 系统测试与实物展示

为上述系统供电,进行室内测试。在供电5~8 s后,手机APP连接上ESP8266模块发出的WiFi信号,WiFi名称为"ESP8266_TEST"。同时,温度与湿度数据也实时显示在界面上,且比较稳定。按下窗帘按钮,窗帘(步进电机启动)拉动,再次按下窗帘按钮,窗帘收合。按下LED1,板载LED灯点亮,按下LED2,外部220 V家居节能燈点亮。将微型智能家居系统逐步远离控制端APP,最远接收距离为十几米,仍能够满足家庭的基本需要。后续会进行联网处理,实现真正的物联网。系统实物如图8所示。

5 结 语

本文系统初步实现了简易的智能家居系统控制与测量,在主控芯片的控制下,顺利实现了APP通过ESP8266构建的局域网发送控制命令,接收数据,从而达到无线控制外部设备的目的,使家居用品更加智能化。同时,本文系统的原理可应用到各行各业,实现无人监管、无人操控,更有助于提高工作效率,极大程度上避免安全事故的发生。

参考文献

[1]李智,涂亮,孙先松.基于ZigBee技术的智能照明系统设计[J].物联网技术,2012,2(4):29 -31,37.

[2]徐文.基于WiFi与Android的智能家居监控系统设计[D].成都:西南交通大学,2017.

[3]樊智一.基于STM32的无线WiFi温湿度监测系统设计[J].电子世界,2016(18):35.

[4]韩晓英,张方樱,朱静.基于STM32单片机的智能家居控制系统设计与实现[J].硅谷,2013,6(12):14-15.

[5]谭浩强. C 程序设计教程[M].北京:高等教育出版社,2006.

[6] YIU J.ARM Cortex-M3与Cortex-M4权威指南(3版)[M].吴常玉,曹孟娟,王丽红,译.北京: 清华大学出版社,2015.

[7]屈良潘,唐曼玲,刘静,等.基于ESP8266的LED灯无线远程控制设计[J].电子世界,2017 (9):179,181.

[8]袁正道,董丽莎,王家斌.基于nRF24L01和Cortex-M3的无线测控系统[J].物联网技术,2012,2(8): 48-49.