搭建esp8266+ardunio-IDE的开发环境

时间:2021-05-21 22:19:37

前面的文章说明了如何安装arduino的IDE。http://blog.csdn.net/k7arm/article/details/51553167
这篇文章主要记录如何通过arduino编译下载后的代码到esp8266的板子上去。

首先按照原理图连接好esp8266的各个引脚。
搭建esp8266+ardunio-IDE的开发环境
需要说明的是,我用的usb2ttl是没有RTS和DTR这两个引脚的。

搭建esp8266+ardunio-IDE的开发环境

所以REST通过10K的上拉接到VCC,然后想复位的时候手动连接到GND一下。
GPIO0引脚也如法炮制。
搭建esp8266+ardunio-IDE的开发环境
其他引脚按照上面的电路图连接就行。

在这里还是加入上传固件和运行程序时的引脚控制吧,免得看本篇文档时还得再另外开个窗口看datasheet。

即在上传固件时需要将GPIO0接低电平,GPIO2接高电平。别用悬空状态,不稳定,还是接到高电平稳定。
搭建esp8266+ardunio-IDE的开发环境

完了之后打开电源,可以看到esp8266板子上的蓝色LED闪了一下,不知道什么意思,看起来是活了,仔细观察了一会,板子没有冒烟儿,不错。继续。

回到Arduino-IDE。上一篇记录已经安装完了SDK,所以此时需要选一个板子的SDK。
Tools->Board里面就选吧,我这里就选了个Generic ESP8266 Module,你要问我为什么选这个,我会告诉你,我看视频里就选的这个,你会问哪里的视频? 视频在这里 https://www.youtube.com/watch?v=8J7zflVO8K0 其实也能猜出来,毕竟我买的时候人卖家也没说我这是什么什么开发板,都是公版来的,那不是generic是什么,当然了,这种猜测也不完全正确,万一错了也好办,就一个一个的试吧,啥都不懂的时候是这样的,就像没头的苍蝇乱撞一样。所以为了防止以后我哪天想不起来怎么搭建环境了,趁着现在还有印象赶紧记下来吧,也别说我很无私为了大家,其实也为了自己。你看,事情往往就是这样,没有唯一的属性。
搭建esp8266+ardunio-IDE的开发环境

这里还有个疑问,就是我不知道板子上的flash是多大的,所以暂时先选512K,以后再想办法看看能不能读取板子上的flash容量。

然后开始选择测试程序,见下图,选HelloServer。

搭建esp8266+ardunio-IDE的开发环境

然后需要修改一下代码中的变量值,把你家里的WIFI的SSID和接入密码填进去。
搭建esp8266+ardunio-IDE的开发环境

然后怀着忐忑的心开始编译,下载,也就是点击Arduino上的Upload按钮,我会成功吗?会成功吗?就这样担心的看着它在编译,过了一会,一颗激动的心终于平静了,那是因为我看到了结果…MBD我就知道没有这么简单。
搭建esp8266+ardunio-IDE的开发环境

我一看图片,卧槽,这是什么鬼,通讯错了?
检查了一下硬件和设置参数,没错啊,跟视频上的一样。

然后放狗去搜,点了几个链接后欣然发现这是个通病。
http://arduino.stackexchange.com/questions/20219/upload-with-esptool-fails-with-espcomm-send-command-cant-receive-slip-payload

摘录如下:
This is a known issue with the included esptool, and for the Arduino IDE there are quite a few blog posts to be found on this problem. But most are outdated, and are not applicable when using PlatformIO with some other IDE. So, February 2016:

Install esptool.py

git clone https://github.com/themadinventor/esptool/ (or download the ZIP file)
cd esptool
sudo python setup.py install
When using Arduino IDE

Open ~/Library/Arduino15/packages/esp8266/hardware/esp8266/2.0.0/platform.txt.
Find the line tools.esptool.upload.pattern and disable that by prefixing with a hash. Check that your version only mentions -ca 0x00000, not -ca 0x10000 as well (like in most outdated blog posts):

# tools.esptool.upload.pattern="{path}/{cmd}" {upload.verbose} -cd {upload.resetmethod} -cb {upload.speed} -cp "{serial.port}" -ca 0x00000 -cf "{build.path}/{build.project_name}.bin"

Add the following, referring to the esptool.py you installed above and also using different command line parameters:

# Fix for espcomm_send_command: cant receive slip payload data
tools.esptool.upload.pattern="/path/to/new/esptool.py" --port "{serial.port}" --baud {upload.speed} write_flash 0x00000 "{build.path}/{build.project_name}.bin"

Restart the IDE.
(One might be tempted to just change tools.esptool.path and tools.esptool.cmd instead, but beware that the command line parameters need changing as well.)

完全照做。

重启IDE之后再次点击Upload,喔,看起来好像下载成功了?真的成功了?
搭建esp8266+ardunio-IDE的开发环境

此时把GPIO0的接地端把掉,让它接到VCC,即退出flash编程模式,然后累,把RST接地地一下,也就是复位一下,这时打开串口,没有意外的话应该能看到下图的提示信息:
搭建esp8266+ardunio-IDE的开发环境

bluechris是我的wifi-ssid,就是在HelloServer中填写的那个ssid的变量值。

这时基本上就是成功了,为什么说是基本上呢,因为还需要最后一步,找个终端比如手机或pc的浏览器,访问一下esp8266的局域网地址,看看它是不是把自己当服务器运行呢。

搭建esp8266+ardunio-IDE的开发环境

看到上面的那个图才可以说:终于完成了。我流下了两行幸福的眼泪。