利用arduino给ESP8266 01S烧录程序----记录

26 篇文章 7 订阅

首先感谢参考链接们

参考链接1
参考1提供了可行的arduino与ESP8266之间的接线方式。同时提供了利用arduino UNO 的串口给ESP8266烧录程序的操作流程参考(本文使用的流程稍微有所不同。)。

参考链接2
参考2提供了ESP8266 01S烧录环境的搭建步骤。

参考链接3
感谢参考3为参考1提供了参考

目标:

  1. 实现ESP8266的wifi配置功能
  2. 实现ESP8266自动连接WiFi

环境搭建:

  • 所需硬件

硬件数量
arduino UNO1个
ESP8266 01S1个
面包板1个
杜邦线若干

要面包板的主要原因是因为arduino上的3.3V和GND接口不够用,所以要通过面包板并联一下。

  • 所需软件

    • arduino IDE
    • arduino IDE下的esp8266开发板的相关开发包
  • 软件开发环境搭建步骤

    1. 添加开发包的地址,顺便改一个IDE的参数,烧录时能看到烧录信息:
      在这里插入图片描述附上地址,拷贝粘贴进去就好。
      http://arduino.esp8266.com/stable/package_esp8266com_index.json
    2. 接着重启arduino IDE。
      在这里插入图片描述
    3. 找到esp8266,安装
      在这里插入图片描述
    4. 安装完成后选择开发板
      在这里插入图片描述ok,开发用的软件环境搭建完毕。
  • 硬件接线方式

ESP8266 01Sarduino UNO
3.3V3.3V
RST不接线
EN3.3V
TXTX
RXRX
IO0GND
IO2不接线
GNDGND

说明一下:上述搭建的环境是用来编译和烧录ESP8266 01S程序的。写好的程序只会借道arduino的串口线写进ESP8266中去运行,并不会写进arduino。这也就是为什么arduino和8266之间的串口是直接TX接TX,RX接RX的原因。如果没有买8266配套的烧录器的话可以用这种方式烧录。

开始烧录之前先渣渣两句:
现在记录的烧录步骤只是针对ESP8266 01S的,ESP8266系列的其他产品没有买所以也没有尝试。该步骤是我参照参考1文中的方法瞎试验试出来的,所以不提供理论依据,毕竟我也没有仔细把官方文档看完。。。

  • 烧录步骤:

  1. 步骤1
    按照表格提供的接线方式接通arduino与ESP8266 01S之间的线路。3.3V和GND的接线最好用面包板并联转接一下,方便后续操作。参考下图:红线和黑线分别是3.3V和GND。
    在这里插入图片描述

  2. 用arduino IDE编译写好的程序。可以是毫无意义的空程序。只要能编译通过就可以,现在只是讲烧录步骤,能烧录成功即可。

  3. 拔出ESP8266 01S的3.3V和IO0在面包板上的接线。

  4. 点arduino IDE的上传按钮开始烧录。等待IDE提示连接开发板。

  5. 提示出现Connecting…______…这样的提示时,先把IO0插回原位(GND),再把3.3V插回原位(3.3V)。

  6. 等待I烧录完成,IDE会有烧录进度提示。

  7. 烧录完成后再拔出IO0和3.3V。

  8. 再将3.3V插回原位(3.3V)。切记不要再插回IO0了。
    这么做的大致原因,根据参考文章提供的理论做的纯猜测:IO0接地时启动ESP8266 01S,8266会进入下载模式,即可以接受烧录。IO0不接线时ESP8266 01S会进入正常工作模式,工作模式就不接受烧录。而拔插3.3V相当于重启ESP8266 01S。所以每次刷机都需要先拔出IO0和3.3V,然后先把IO0接地,再接通3.3V的供电。刷机完成后IO0空置,重启ESP8266 01S。

  • 烧录过程中可能遇到的问题:

  1. 如果arduino中本来就有串口读写的代码,有可能会导致烧录失败,所以烧录前先给arduino里写入一个没有串口读写的程序。
  2. 这种刷机方式的成功率不算高,要多尝试几次。
  3. 基于以上两点原因建议购买专用烧录器。免得烧录烧崩溃。。。

  • 烧录截屏:
    在这里插入图片描述
    怎么验证烧录成功没有?
    好吧,这个可以提供点理论依据:
    因为ESP8266 01S在正常工作模式下可以通过串口收发数据。所以可以烧录一段串口定时自动收发数据的小程序在ESP8266 01S和arduino里面。然后将两者的TX接RX,RX接TX。通过arduino IDE的串口查看器查看串口输出就可以验证。IDE自带的案例里就有现成的代码。在loop里稍微改动一下就可以实现。此处不提供代码,提供一个案例参考。
    在这里插入图片描述到此基本操作完成。

配网功能实现:

本来以为要写很多代码的。。。结果搜着搜着发现已经有大神实现了,关键还很好用!那就直接放代码吧。所以这其实就是一篇没有烧录器和串口调试器条件下的利用arduino烧录ESP8266 01S的一个教程!
依照惯例感谢参考先。
参考链接
参考链接里有代码,不想跳转过去拷贝的抄这里!要看详细说明的跳转过去看。

#include <ESP8266WiFi.h>          
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h>         
 
void setup() {
    Serial.begin(9600);       
    // 建立WiFiManager对象
    WiFiManager wifiManager;
    
    // 自动连接WiFi。以下语句的参数是连接ESP8266时的WiFi名称
    wifiManager.autoConnect("AutoConnectAP");
    
    // 如果您希望该WiFi添加密码,可以使用以下语句:
    // wifiManager.autoConnect("AutoConnectAP", "12345678");
    // 以上语句中的12345678是连接AutoConnectAP的密码
    
    // WiFi连接成功后将通过串口监视器输出连接成功信息 
    Serial.println(""); 
    Serial.print("ESP8266 Connected to ");
    Serial.println(WiFi.SSID());              // WiFi名称
    Serial.print("IP address:\t");
    Serial.println(WiFi.localIP());           // IP
}
 
void loop() {}

为了节约篇幅可耻的去掉了源代码的一些注释。

  • 编译上段代码并烧录进ESP8266 01S中。重启ESP8266 01S,使其进入工作模式。
  • 手机扫描WiFi,连接一个SSID叫AutoConnectAP的WIFI热点
  • 连接成功后会弹出配网的页面。如果没有自动弹出页面就在浏览器里访问192.168.4.1配置。
  • 关于wifimanager库的更多操作请跳转去官方自行查阅。
  • wifimanager需要安装库文件。在arduino Ide的库文件管理里搜索添加就可以。放个截图:
    在这里插入图片描述在这里插入图片描述wifimanager相关的库还不少,选图上这个就可以了。

完成!


---------------------
作者:qq_30019617
来源:CSDN
原文:https://blog.csdn.net/qq_30019617/article/details/109778468
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:CSDN,CNBLOG博客文章一键转载插件

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值