基于ESP8266的无线通信系统设计
2022-03-17马媛
马媛
(中煤科工集团西安研究院有限公司,陕西西安,710077)
0 引言
近年来,物联网技术在工业控制、智能家居、智慧城市及环境监控等领域得到了广泛应用,融入了人们生活及生产的各个方面[1-3]。其中,WiFi技术具有传输距离远、带宽高、组网容易等优势,因此更适合在物联网技术实际应用场景中使用[4]。ESP8266模块是乐鑫公司研发的一款WiFi芯片,在成本、功耗、可靠性及传输性能等方面具有一定的优势,非常适合应用在高速数据传输、数字通信控制系统中。本文基于该ESP8266平台设计了一套WiFi无线通信控制系统,可以满足需要进行大量数据高速传输的应用场景。
1 系统总体设计
本系统主要包括基于ESP8266模块的硬件电路、手机终端及通信控制软件,ESP8266模块设置为AP模式,手机终端通过WiFi连接该热点,运行在手机终端上的APP与无线模组建立服务器连接,从而实现手机终端与ESP8266无线通信模块的指令配置及数据传输,系统设计总体框图如图1所示。
图1 系统设计总体框图
2 硬件设计
本系统基于STM32F103C8T6单片机作为硬件主控芯片搭建了最小系统电路,STM32单片机通过SPI接口与ESP8266模块连接并实现查询、配置、控制和数据通信的功能,系统同时包含电源电路及传感器模块等外围电路,其设计框图如图2所示。
图2 硬件设计框图
2.1 主控模块
STM32F103C8T6芯片是一款基于ARM Cortex-M3内核的32位微控制器,采用LQFP48封装,由意法半导体公司推出,具有高性能,低功耗的特点[5]。内置闪存容量是64KB,SRAM容量是20KB,无需外扩存储器。2个12bit ADC,37个通用I/O口,4个16bit通用定时器,2个看门狗定时器,2个I2C接口,2个SPI接口,3个USART接口,1个CAN接口,工作电压2V~3.6V,工作温度为-40℃~85℃,工作频率最高可达72MHz,使用时可用内部分频器生成自己需要的相应频率。
本设计中主控模块通过SPI接口与WiFi模块相连,STM32F103C8T6芯片外部供电电压3.3V,采用8M外部晶振作为系统时钟,构成了如图3所示的最小系统电路。
图3 STM32F103C8T6最小系统电路
2.2 ESP8266模块
ESP8266是由乐鑫公司开发的一款WiFi芯片,作为高度集成的WiFi SoC解决方案,其低功耗、紧凑设计和高稳定性可以满足用户的需求。ESP8266模块既可以独立应用,也可以作为从机搭载于其他主机MCU运行。此外,ESP8266模块只需通过SPI接口或者UART接口即可作为WiFi适配器,应用到基于任何微控制器的设计中[6-7]。
ESP8266模块的主要特性包括:
(1)支持802.11b/g/n
(2)802.11n(2.4 GHz),速度高达 72.2Mbps
(3)2路虚拟Wi-Fi接口
(4)Beacon自动监测(硬件TSF)
(5)支持基础结构型网络Station模式/SoftAP模式/混杂模式
(6)天线分集
ESP8266模块在低功耗及高集成度方面的特性保证了其典型应用仅需极少的外部电路,因此能将电路印制板的尺寸降到最小。如下表1所示为该模块的主要技术参数。
表1 ESP8266模块主要技术参数
本系统中ESP8266模块供电电压为3.3V,采用AP模式,由手机终端APP与该模块连接通信,具体原理如图4所示。
图4 ESP8266电路设计原理
2.3 电源模块
由于主控及ESP8266模块均需3.3V供电,本系统输入电源为5V,因此利用TPS82140电源芯片设计稳压电路,为主控及WiFi模块提供电源,保证系统正常运行,具体原理如图5所示。
图5 稳压电路设计原理
2.4 传感器模块
传感器模块部分可根据用户检测的不同需求进行灵活更换,也可连接高精度AD模数转换器进行过采样,以满足系统分辨率、动态范围等性能指标的要求。
3 软件设计
本系统的软件部分包括两方面,一是主控芯片对ESP8266模块的初始化及配置,另一方面是手机终端APP的设计,主要功能是连接WiFi热点服务器,完成手机APP与模块之间的无线数据传输。
3.1 ESP8266模块的配置程序设计
本系统中的单片机启动后首先完成与WiFi模块通信接口的初始化,创建与热点之间的UDP通信连接,从而完成命令下发数据上传的工作.整体工作流程如下图6所示。
图6 单片机配置8266模块工作流程图
3.2 手机终端APP设计
本系统的上位机APP运行在基于安卓平台的手机终端上,采用Android studio 3工具开发,编程语言为Java。该APP能够通过WiFi热点与下位机建立UDP点对点数据通信,完成对下位机指令及参数的下发位置,接收来自下位机的数据,实现双向无线数据通信功能。具体的软件工作流程如图7所示。
图7 手机APP设计流程图
4 总结
本文基于ESP8266模块设计了一套无线通信系统,采用STM32低功耗单片机搭建最小系统电路,与WiFi模块热点建立了UDP数据通信,实现了手机APP与单片机之间的无线数据传输,本文所设计的无线通信系统能够实现MCU与终端之间的高速数据传输,可以满足数据采集、无线控制及智慧物联等多种应用场景。