esp8266-01板的arduino烧写方式
来源:互联网 发布:淘宝怎样领取淘金币 编辑:程序博客网 时间:2024/05/17 21:39
作用:不用AT指令,不用多余的串口调试工具,直接用arduino编辑器对esp8266-01板烧写arduino程序。
Arduino环境的搭建:
除了从arduino官网上下载完整的编辑器(建议下载1.6.7—1.6.9版本,1.6.10以上版本貌似改了太多东西不确定能不能用)外,还需要连网下载有关esp8266的arduino插件
1.点工具—>开发板—>开发板管理器
2.在确保连上互联网的前提下收esp8266,下载最高版本
3.点文件—>首选项,将
http://arduino.esp8266.com/stable/package_esp8266com_index.json这个地址添加到如图位置
4.重启编辑器,发现工具—>开发板里多了几个关于ESP8266的可选开发板(第一张图左下方这样)表示搭建成功。
接线图:
一些有关的重要说明:
1.esp8266-01板对电压的要求很高,烧写时电源一定要采用3.25V左右的(USB转TTL模块直接提供的电压貌似太高,不行,当然如果你觉得可以,不妨试试。我采用一个ARDUINO UNO供电)正负极再并联一个10Uf的电容,稳压。在烧完程序后的使用过程中它对电压的要求就没这么高了。
2.ESP8266板其中有一个引脚叫GPIO16,这个脚还有一个名称叫RESET,一般这个引脚悬空或者最好接一个10K左右的上拉电阻(上拉电阻就是将不确定的信号通过一个电阻钳位在高电平)。一旦这个脚接到了负极,板子就会reset.
3.RX,TX交叉链接
4.CH_PD这个引脚无论是烧程序也好,烧完程序应用也好,一定要加个20k左右的上拉电阻(不这么做串口是没有数据的,或者烧好的程序也是没法跑的)
5.GPIO0这个引脚在烧程序的时候必须接负极,烧完程序后想要掉电重新运行的话,必须将这个引脚拉高或者悬空。
烧写:
温馨提示:这个步骤是最需要耐心的,不仅烧写过程大约需要2分钟,而且还不保证每次都烧成功(成功率在30%左右,可能和电压有关,保持稳定的3.25V电压可提高成功率)但是如果上述步骤都做对了,我保证,并且请你一定要相信自己一定会成功的。
先提供一段有注释的MQTT nodemcu的代码
#include <ESP8266WiFi.h>#include <PubSubClient.h>const char* ssid = "Ubiways";//连接的路由器的名字const char* password = "123abc456d";//连接的路由器的密码const char* mqtt_server = "iot.eclipse.org";//服务器的地址WiFiClient espClient;PubSubClient client(espClient);long lastMsg = 0;//存放时间的变量 char msg[50];//存放要发的数据int settem;//温控变量void setup_wifi() {//自动接入网络 delay(10); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); }}void callback(char* topic, byte* payload, unsigned int length) {//用于接收服务器接收的数据 for (int i = 0; i < length; i++) { Serial.print((char)payload[i]);//串口打印出接收到的数据让你看看 } Serial.println();//换行 if ((char)payload[0] == 'a') {//如果收到的数据是a settem++; } }void reconnect() {//等待,直到连接上服务器 while (!client.connected()) { if (client.connect("HZYhahahASa")) {//接入时的用户名,尽量取一个不易与别人重复的用户名 client.subscribe("setmessage");//接收外来的数据时的intopic } else { Serial.print("failed, rc="); Serial.print(client.state());//重新连接 Serial.println(" try again in 5 seconds"); delay(5000); } }}void setup() {//初始化程序,只运行一遍 settem=0; Serial.begin(9600);//设置串口波特率(与烧写用波特率不是一个概念) setup_wifi(); client.setServer(mqtt_server, 1883);//1883为端口号 client.setCallback(callback); }void loop() {//主循环 float tem=24.68;//温度,测试使用 digitalWrite(BUILTIN_LED, HIGH); reconnect();//确保连上服务器,否则一直等待。 client.loop();//MUC接收数据的主循环函数。 long now = millis();//记录当前时间 if (now - lastMsg > 2000) {//每隔2秒发一次信号 lastMsg = now;//刷新上一次发送数据的时间 dtostrf(tem,1,2,msg);//将float转为char的数组msg,其中第三个传入值(2)是保留的位数(2位) client.publish("temperature", msg);//发送数据,其中temperature是发出去的topic(不清楚请百度mqtt) snprintf (msg, 75, "%d", settem);//将int类型的settem转为char的数组. client.publish("backa", msg);//反馈设定的温度值 Serial.println("ok!");//串口打印OK! }}
点工具—>开发板—>Generic ESP8266 Module
然后Flash mode选QIO
然后编程器选上图这个,因为这个比较快速。
选好端口后直接点击上传(这个时候等到差不多编译完成的时候,最好断开CH_PD这个脚,然后马上再接上,会发现蓝灯闪一下,这样可以提高成功率,具体什么原因我还不清楚,多次实验得出)。
若上传失败,必须断开CH_PD这个脚,然后再接上,蓝灯闪一下后再次烧写。
离开烧写环境自运行:为你烧好程序的esp8266提供一个3.3V左右的电源,电源的要求再也没烧写时这么苛刻。 用上拉电阻把CH_PD这个脚一直拉高,GPIO0在板子刚启动时禁止拉低。由于此板可用引脚数少,所以最好用串口与其他单片机双机通信。(双机通信程序在我另一篇博客里有写)
- esp8266-01板的arduino烧写方式
- 【arduino】通过Esp8266-01模块实现的WiFi通信(2)与电脑的连接和烧写
- ESP8266-01 使用 Arduino IDE
- esp8266开发板WeMos的arduino开发环境搭建
- ubuntu16.04环境下使用Arduino IDE编译和烧写nodemcu-esp8266程序
- 基于esp8266的开发导航帖arduino ide for esp8266
- Arduino使用ESP8266通信的实践
- ESP8266烧写注意事项
- ESP8266程序烧写
- esp8266烧写MicorPython
- Arduino IDE 烧录 ESP8266教程
- ESP8266 ESP01 Arduino IDE 烧录配置
- Arduino uno R3 + ESP8266-01 测试例程
- [Arduino]烧写Arduino BootLoader的几种方法
- arduino安装ESP8266 Arduino core
- 【arduino】通过Esp8266-01模块实现的WiFi通信(1)简介和搭建编程环境
- 【arduino】通过Esp8266-01模块实现的WiFi通信(4)关于透传
- 【arduino】通过Esp8266-01模块实现的WiFi通信(1)简介和搭建编程环境
- CentOS 6.8 配置GO语言开发环境
- iOS平台下cookie实现自动登录
- 注册模块
- 关于排序算法的理解(一)
- 我的笔记
- esp8266-01板的arduino烧写方式
- 未来已来——划时代的 Hololens
- K-core, coreness,betweeness
- 锁
- NCL学习笔记(1)——NCL读取nc文件一个变量存入一个新的nc文件
- Android:EditText限制文字输入
- ZooKeeper原理及使用实例
- Python:三级菜单
- XSS测试用例