嵌入式设计中常用的无线通信方式主要由蓝牙、WiFi、Zigbee、Lora、NB-IOT等等。这些是最常用的,也是在实际项目开发中根据项目的数据通信特点来选择相应的无线通信方式。本设计主要是讲解WiFi在嵌入式开发中的使用。
1. ESP8266-01S烧录固件
WiFi通信的频段和蓝牙一样,都是2.4G免费频段。我们使用ESP8266-01S模块,这款WiFi模块的芯片是乐鑫公司设计的,由安信可公司生产的模组。相当于ARM公司设计芯片,ST公司生产STM32单片机。ESP8266-01S是基于乐鑫ESP8266芯片制造的一款WiFi通信模组,其内部集成了802.11b/g/n协议栈和TCP/IP协议栈,具备完整的Wi-Fi和网络功能。但是多数人都喜欢拿它来做WiFi通信使用。ESP芯片的多款模组选型如下:
1.1 ESP8266-01S模块引脚图
管脚号 | 管脚名字 | 功能 |
1脚 | GND | 接地 |
2脚 | IO2 | GPIO2/UART1_TXD |
3脚 | IO0 | GPIO0。下载模式:内部拉低 运行模式:外部拉高或者悬空 |
4脚 | RXD | UART0_RXD/GPIO3 |
5脚 | TXD | UART0_TXD/GPIO1 |
6脚 | EN | 芯片使能端,高电平有效 |
7脚 | RST | 复位 |
8脚 | VCC | 3,.3V供电 |
提示:电源供电不足会导致烧录固件程序失败,烧录固件的时候就会出现一直在等待上电情况,建议采用外部专用电源供电,使用TTL转USB烧录时候可以用万用表检测一下你的TTL转USB模块3.3V供电是不是达到了3.3V,如果没有的话就把ESP8266-01S的把VCC端接到5V上。
该模块出厂时默认自带出厂固件的,但如果进行其他开发需要烧录固件,比如如果想用机智云结合ESP8266-01S开发就需要烧录机智云的固件(这个可以在机智云网站找到),如果想用ESP8266-01S把STM32的数据传到阿里云上,就需要烧录MQTT的固件,因为传数据到阿里云上需要用到MQTT协议。
1.2 ESP8266-01S烧录MQTT固件
烧录方式有两种:一种是用ESP8266-01S的专用下载器下载,淘宝卖7块钱一个,下载器采用CH340C USB转TTL芯片,并增加了ESP8266自动下载电路,非常方便用户给安信可的ESP-01/01S 下载程序、升级固件、串口调试等,支持Arduino IDE 、安信可ESP8266 Flasher和乐鑫FLASH_DOWNLOAD_TOOLS 等下载软件软件一键下载,不需要接线,不需要按任何按键。WiFi模块会自动进入下载模式。我用下载器下载出现串口连接失败,不知道是不是我买的下载器有问题,已经弃用。下载器长这样:
把ESP8266-01S直接插上去就行了,注意插的方向。
一种是用USB转TTL模块配合烧录软件操作,我用这种方式烧录成功的,先把USB转TTL模块和ESP8266-01S接线,接线如下:
ESP8266-01S | USB转TTL模块 |
GND | GND |
IO0 | GND |
IO2 | 悬空不接 |
RXD | TXD |
TXD | RXD |
EN | 3.3V(如果你的3.3V输出电压不够则改接5V) |
RST | 3.3V(如果你的3.3V输出电压不够则改接5V) |
VCC | 3.3V(如果你的3.3V输出电压不够则改接5V) |
接好线后把USB端插到电脑上,要提前在电脑上安装好CH340的驱动程序,这个网上教程和驱动程序一大堆,自己百度去吧。
然后进入安信可公司官网->开发资料->WiFi模组系列->ESP8266系列->资源汇总->各类AT固件,选择第7个:MQTT透传AT固件(固件号:1471),点击固件下载
然后下载烧录软件,进入安信可公司官网->开发资料->WiFi模组系列->ESP8266系列->资源汇总->开发工具,选择第二个:烧录WiFi固件工具:ESP_DOWNLOAD_TOOL,下载烧录软件
固件和烧录软件准备好以后,解压烧录软件压缩包,然后打开下图的flash_download_tool_v3.8.5.exe
然后界面就如下分步讲解:
1.选择你上面下载的AT固件解压后的位置
2.然后手动输入0x00000(我不知道是不是自动加载的)
3.选择晶振频率24M(下图的40M是不对的,我懒得重新截图了,要改成24M)
4.选择SPI MODE:DOUT。若是下载失败可以改SPI MODE为QIO试看看。
5.选择FLASH SIZE:8Mbit。因为ESP8266-01S的flash大小就是8Mbit
6.选择你的CH340的端口,这个可以通过你电脑的设备管理器查看,我的是COM7,波特率选择115200
7.点击START开始烧录固件
然后拔插一下ESP8266-01模块的3V3那根线,相当于复位操作,然后可以看到显示下载中,下载进度条也可以看到。
等个几十秒,显示下载完成。
1.3 测试固件是否下载成功
接下来只接这几个线,其他线都不接。
ESP8266-01S模块 | USB转TTL模块 |
3V3 | 3V3 |
TXD | RXD |
RXD | TXD |
GND | GND |
接好后如下图所示。
然后打开串口助手,选择对应的COM口,波特率选择115200,勾选新行
然后发送:AT。回复OK就说明烧录成功。
2.阿里云物联网网页端配置
配置的话可以参考这篇文章,如有侵权请联系我
https://archie.blog.csdn.net/article/details/135248254
按照这篇文章的配置就可以了,包括测试配置是否正确。
3.下位机代码实现
今天困了,明天下班继续写...