基于Arduino开发ESP8266-12F

ESP8266是一款由乐鑫 Espressif 公司制作的低成本的 Wi-Fi 芯片,具有完整的 TCP / IP 协议栈和微控制器功能。它专为移动设备、可穿戴电子产品和物联网应用设计,功耗很低且价格非常低廉,该模块集成了ESP8266 芯片,Xtensa® 32-bit LX6 单核处理器,时钟频率高达 160 MHz ,+19.5 dBm 天线端输出功率,确保良好的覆盖范围,开放的外设包括UART,GPIO,I2S,I2C,SDIO,PWM,ADC和SPI, 本文将采用UART+Arduino来开发ESP8266,将实现UART的数据收发并透传,以及配网功能,废话不多说,先看下ESP8266的引脚定义以及说明。


引脚图


引脚说明-001


引脚说明-002

通过上图的引脚说明也大概清楚了esp8266的工作流程了,整备好以下开发需要的工具能更好的方便我们快速编码以及调试:

1.ch340串口调试线,记得安装驱动哦,提供一个驱动下载网盘:https://pan.baidu.com/s/1k9QgG4piQTkXTKhEqMvHrw 密码:ua9x

 2.串口调试工具:https://pan.baidu.com/s/1ewrVr8A6YD6Dj_vkDx2dcg 密码:1zcc

3.网络调试工具:https://pan.baidu.com/s/1pprj65yziUYXR0Sqnt6Buw 密码:tch3

4.刷入工具:https://pan.baidu.com/s/1zplU2sZEI-q3wmgxBtXfMw 密码:gzer

5.安装VSCode,在VSCode中安装Platformio插件,对esp8266进行Arduino开发

6.保持一个好的心态,遇bug先别慌,多调试一下,就能找到解决方案

一切整备就绪,整备开始编码工作

1.创建一个Arduino项目,在项目的src目录下,创建一个main.cpp文件,该目录也是主要用于esp8266的主程序,引入esp8266的头文件,因为项目用到了配网,透传,Uart功能,所以需要导入esp8266对应的文件。      

导入头部文件

2.初始化当前程序的主入口,对当前的程序设置波特率,以及读取出当前模块作为ap和作为sta模式下的mac地址,并判断当前是否配置好了网络,如果未配置,会启动一个websocket,并把模式自己设置为ap模式,如果配置了,会转换成sta模式,自己连接已配置的ssid,并自动与当前配置的服务端进行TCP/IP通信。


程序主入口


开放一个websocket,方便用户连接上Wi-Fi后可访问网页


当Wi-Fi连接成功后,以服务端建立连接,如果断开廉价后,Wi-Fi模块会每3秒闪烁一次

3.Arduino有一个loop()一直在执行这,可以理解为一个死循环,可在该方法中,设置socket断开重连,uart读写,socket读写等功能。


连接成功后,灯光100毫秒闪烁一次,如果发现串口有数据返回,直接读取串口数据


如果当前有tcp的数据,则对socket的缓冲池进行读取,并解析出对应的数据

4.收到串口数据或socket发送的数据后,会分别调用readService2Serial()和readSerial2Service()告知串口或tcp,这样就能达到一个透传效果。


将服务端发送过来的数据透传给串口


将串口发送过来的数据透传给服务端

5.执行完以上的步骤后,就可以对当前的代码进行编译了,编译出来的文件是一个.bin文件,也就是二进制文件,拿到该文件后,就可以对当前的板子进行烧录了,烧录的时候需要把管角25和管角26进行短接,因为短接才是烧录模式。


烧录工具上面已提供链接,波特率需设置为115200

6.等待烧录完成后,拔掉管角25和管角26的短接,即可进行开机,基于esp8266的Arduino开发的配网,透传功能也基本完成,感兴趣的小伙伴们可继续深入探究。


源码下载地址:https://pan.baidu.com/s/1gn13hqLInQPbZl_Cv4gIMQ 密码:ece9

有问题的小伙伴可联系:[email protected],欢迎交流,共同进步

你可能感兴趣的:(基于Arduino开发ESP8266-12F)