利用arduino给ESP8266 01S烧录程序 |
您所在的位置:网站首页 › arduino烧录程序是什么意思 › 利用arduino给ESP8266 01S烧录程序 |
首先感谢参考链接们
参考链接1 参考1提供了可行的arduino与ESP8266之间的接线方式。同时提供了利用arduino UNO 的串口给ESP8266烧录程序的操作流程参考(本文使用的流程稍微有所不同。)。 参考链接2 参考2提供了ESP8266 01S烧录环境的搭建步骤。 参考链接3 感谢参考3为参考1提供了参考 目标: 实现ESP8266的wifi配置功能实现ESP8266自动连接WiFi 环境搭建: 所需硬件 硬件数量arduino UNO1个ESP8266 01S1个面包板1个杜邦线若干要面包板的主要原因是因为arduino上的3.3V和GND接口不够用,所以要通过面包板并联一下。 所需软件 arduino IDEarduino IDE下的esp8266开发板的相关开发包软件开发环境搭建步骤 下载arduino IDE。附上官网下载地址安装arduino IDE完毕后安装esp8266开发板的开发包。如图: 添加开发包的地址,顺便改一个IDE的参数,烧录时能看到烧录信息: 附上地址,拷贝粘贴进去就好。 http://arduino.esp8266.com/stable/package_esp8266com_index.json接着重启arduino IDE。 找到esp8266,安装 安装完成后选择开发板 ok,开发用的软件环境搭建完毕。硬件接线方式 ESP8266 01Sarduino UNO3.3V3.3VRST不接线EN3.3VTXTXRXRXIO0GNDIO2不接线GNDGND说明一下:上述搭建的环境是用来编译和烧录ESP8266 01S程序的。写好的程序只会借道arduino的串口线写进ESP8266中去运行,并不会写进arduino。这也就是为什么arduino和8266之间的串口是直接TX接TX,RX接RX的原因。如果没有买8266配套的烧录器的话可以用这种方式烧录。 开始烧录之前先渣渣两句: 现在记录的烧录步骤只是针对ESP8266 01S的,ESP8266系列的其他产品没有买所以也没有尝试。该步骤是我参照参考1文中的方法瞎试验试出来的,所以不提供理论依据,毕竟我也没有仔细把官方文档看完。。。 烧录步骤:步骤1 按照表格提供的接线方式接通arduino与ESP8266 01S之间的线路。3.3V和GND的接线最好用面包板并联转接一下,方便后续操作。参考下图:红线和黑线分别是3.3V和GND。 用arduino IDE编译写好的程序。可以是毫无意义的空程序。只要能编译通过就可以,现在只是讲烧录步骤,能烧录成功即可。 拔出ESP8266 01S的3.3V和IO0在面包板上的接线。 点arduino IDE的上传按钮开始烧录。等待IDE提示连接开发板。 提示出现Connecting…______…这样的提示时,先把IO0插回原位(GND),再把3.3V插回原位(3.3V)。 等待I烧录完成,IDE会有烧录进度提示。 烧录完成后再拔出IO0和3.3V。 再将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。 烧录过程中可能遇到的问题: 如果arduino中本来就有串口读写的代码,有可能会导致烧录失败,所以烧录前先给arduino里写入一个没有串口读写的程序。这种刷机方式的成功率不算高,要多尝试几次。基于以上两点原因建议购买专用烧录器。免得烧录烧崩溃。。。 烧录截屏: 怎么验证烧录成功没有? 好吧,这个可以提供点理论依据: 因为ESP8266 01S在正常工作模式下可以通过串口收发数据。所以可以烧录一段串口定时自动收发数据的小程序在ESP8266 01S和arduino里面。然后将两者的TX接RX,RX接TX。通过arduino IDE的串口查看器查看串口输出就可以验证。IDE自带的案例里就有现成的代码。在loop里稍微改动一下就可以实现。此处不提供代码,提供一个案例参考。 到此基本操作完成。 配网功能实现:本来以为要写很多代码的。。。结果搜着搜着发现已经有大神实现了,关键还很好用!那就直接放代码吧。所以这其实就是一篇没有烧录器和串口调试器条件下的利用arduino烧录ESP8266 01S的一个教程! 依照惯例感谢参考先。 参考链接 参考链接里有代码,不想跳转过去拷贝的抄这里!要看详细说明的跳转过去看。 #include #include #include #include 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相关的库还不少,选图上这个就可以了。完成! |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |