在之前的章节中,我们已经学习了传感器数据的采集和显示,但仅限于本开拓板之上。既然是物联网开拓板,那么接下来的需求便是将传感器数据通过网络上传云端。本章我们来完成开拓板入网的事情,为下一步数据上云做准备。
【学习目标】

STM32掌握ESP8266入网实在并不繁芜,但落实到细节还是有不少东西可讲的,本章打算分三个部分来讲解,本文是第一部分。

低本钱低代码的联网模块已在物联网设备上广泛利用,ESP8266 WiFi模块便是个中突出的代表,我们首先来认识一下这款在业内广受欢迎的模块。
1.1 ESP8266 芯片与模组ESP8266EX是由上海乐鑫信息科技公司(ESpressif)出品的一款运用于物联网编程的WiFi芯片。从它被设计出来,就引起了物联网开拓的热潮,得到了业内广泛同行切实其实定。ESP8266系列模组是深圳安信可(Ai-thinker)公司开拓的一系列基于乐鑫ESP8266EX的超低功耗UART-WiFi模组,可以方便的进行二次开拓,接入云端做事,加速物联网产品原型设计。图1是常见的几款ESP8266模组,不同的封装适用于不同的电路板布局,我们开拓板上利用的是ESP-12F这款。
图1 几款常见的ESP8266模组
从厂商的角度看,乐鑫是ESP8266的芯片厂商,安信可是依赖ESP8266生产模组的厂商。后者在ESP8266芯片的根本上,完善了外围器件布局和天线优化,并供应一系列开拓方案。从用户的角度来看,ESP8266是一个WiFi模块,可以联网,既可以用在STM32平台上,也可以用在Arduino等其他硬件平台上。
1.2 ESP8266的事情模式ESP8266的事情模式一共有三种:AP模式、STA模式以及稠浊模式,选择何种模式取决于运用处景。
1)AP模式
AP是Access Point的缩写,即接入点的意思。如图2所示,该模式供应无线接入做事和数据访问,许可其它无线终端接入。大略来说便是和无线路由器的事情模式相同,能让手机接入。这种模式紧张用于动态修正接入点信息,一些用ESP8266制作的WIFI广告播放器便是事情在这种模式下的。
图2 AP模式示意图
2)STA模式
STA是Station的简称,类似于无线终端,STA本身并不接管无线的接入,它可以连接到AP,大略来说便是和手机连接WiFi热点的事情状态相同,如图3所示。在接下来的实验中,采取的便是这种模式,让开发板作为无线终端接入WiFi热点。
图3 STA模式示意图
3)稠浊模式
理解了前两个观点,AP稠浊STA模式就不难明得了,便是既可以连接到其它的WiFi热点,也可以让别的无线终端连接,这两个过程能同时进行,如图4所示。
图4 稠浊模式示意图
1.3 ESP8266的AT指令每个ESP8266模块出厂之前一样平常都有刷好的固件,正是由于内置了这样的固件,开拓者就可以很方便的通过指令对ESP8266进行配置,而这些指令格式都以“AT”开头(Attention的缩写),以是称之为AT指令。
乐鑫官方的AT指令有将近百条,但常用的就十几条,理解起来也非常大略,表1列举的几条指令,是我们接下来编程实践中要用到的。通过这些指令,便可以一步一步的配置ESP8266接入WiFi热点和连接云平台做事器。更多AT指令可以查阅官方的《ESP8266 AT指令集手册》。
表1 本章用到的AT指令
总结AT指令的构成便是,每条指令要以AT开始,后面跟要查询(读)或者要设置(写)的参数,例如查询WiFi模式对应的指令为 AT+CWMODE?,设置WiFi模式为AT+CWMODE=?。其余,还有一点须要特殊把稳,每条指令都要以回车换行符结尾,从C措辞字符串的角度来说,便是要在待发送的内容后面追加\r\n,即十六进制的0x0D 0x0A。
二、ESP8266开拓实践准备ESP8266作为物联网无线通信模块集成化、低代码化、低本钱化的范例代表,在运用上实在门槛并不高。理解了入网所需的几条AT指令,再结合STM32串口编程的根本,就可以进行开拓实践了。下面就针对我们开拓板所涉及的软硬件,进行以下准备事情。
2.1 拟办理的问题我们先来看硬件层面须要办理的问题,图5展示了开拓板连接物联网云平台所涉及的关键硬件,这里我们只关注与ESP8266“对话”的接口。从图中可以看出,ESP8266通过串口2与STM32“对话”,而我们通过串口1与STM32“对话”。因此,硬件上便是通过这两个串口,配置开拓板上的ESP8266入网并连接云平台做事器。
图5 开拓板连接云平台示意
再来看软件层面,那便是“对话”的规则和内容了,我们想让ESP8266做什么事情,就通过串口助手给它发送对应的AT指令,做完它还会“申报请示”结果,如图6所示。
图6 通过串口助手与ESP8266“对话”
2.2 ESP8266与STM32的连接如图7所示,开拓板上的ESP8266 WiFi模块和M6312 GSM模块都是通过串口2与STM32通信,因此须要借助跳线帽来对这两个模块二选一,不接或接错都无法联网。
图7 ESP8266与STM32连接示意图
再来看事理图8,由于中间有跳线的部分,以是图中旗子暗记线的连接看起来有点弯曲,但实在真正有效的旗子暗记线就三条:
ESP8266的串口吸收URXD接STM32的串口2发送(PA2)ESP8266的串口发送UTXD接STM32的串口2吸收(PA3)ESP8266的复位旗子暗记RESET_WIFI接STM32的PC14图8 ESP8266与STM32连接事理图
2.3 工程文件清单考虑到物联网云平台的开拓涉及硬件设备、网络协议、云平台API等多类源码,因此我们在工程中新增了必要的子目录来分类存放,如图9所示,本章只聚焦ESP8266的设备驱动文件esp8266.c和esp8266.h。此外,由于加入了串口2并启用了中断,因此串口驱动文件usart.c的源码也须要补充。
图9 ESP8266工程文件清单
2.4 程序实行流程由于涉及到两个串口的数据收发和联动,为了使程序彼此兼顾,两个串口的吸收都通过中断程序处理,图10给出了这两个中断程序和主程序的分工和联系。
图10 程序实行流程图
(第一部分完,第二部分开始对源码进行阐发)








