从头搭建ESP8266 MicroPython开发环境指南
# 前言
在整理杂物的时候,翻到了大学时候买的ESP8266,当时关顾着折腾了树莓派了,并没有仔细研究它,如今焊点上都已经氧化的不成样子了,本着废物利用的心态,把它捯饬捯饬准备做一些有趣的东西。
经过研究和整理,我选择了 micropython 作为我的开发环境,虽然 Arduino 的性能更好,但对于我这种普通折腾的人来说,更加容易上手才是更关键的, 毕竟C我不会鸭。
本文主要内容是从零开始为 ESP8266 搭建 micropython 开发环境,后续将会以此为基础发布一系列文章。
# 准备工作
首先我们需要准备好以下资料:
WebREPL: https://github.com/micropython/webrepl
ch340G驱动: https://www.wch.cn/search?q=CH340&t=downloads
micropython固件: http://www.micropython.org/download/esp8266/
putty安装包: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
python 安装包:https://www.python.org/downloads/
下载完成后保存到文件夹中备用,应该是如下图所示:
# 安装步骤
1、安装 python
因为我的开发环境是Windows,所以我们首先需要安装 python for Windows,双击之前下载好的安装包,一路下一步即可。
安装完成后,打开命令行,输入 ‘python -V’ 输出如下图所示的话,这一步就安装完了。
2、安装 esptool
esptool.py 是乐鑫提供的开源库工具,用于乐鑫 ESP8285, ESP8266, ESP32, ESP32-S等系列芯片和 ROM Bootloader(即:一级 bootloader)通讯,从而实现:
固件烧录,flash 擦除,flash 读取,读 MAC 地址,读 flash id ,elf 文件转 bin 等常用功能;
flash 校验, 读取内存,载入 bin 到 RAM 执行,读内存,写内存,读 flash 状态,写 flash 状态,读 chip id,组装 bin等高级功能。
项目地址: https://github.com/espressif/esptool
上一个步骤我们已经安装好了python,所以现在我们直接使用pip3安装esptool:
pip3 install esptool
如果没有报错的话,输出应该是像下图这样:
3、安装ch340G驱动
双击驱动安装包,一路确定,点击安装即可。
4、刷写固件
这一步比较繁琐,首先你要确定你的开发板的COM口,右键我的电脑,打开设备管理器:
找到你的设备COM号,我这里就是4号,所以下面的命令中,端口就是COM4
:
清除数据
esptool.py --port COM4 erase_flash
写入固件
目前最新的固件是esp8266-20220618-v1.19.1.bin
,等到你下载的时候可能会有变化,记得修改。在固件文件目录按住Ctrl+Shift+鼠标右键,点选在此处打开powershell窗口
。在窗口内输入以下命令:
esptool.py --port COM4 --baud 460800 write_flash --flash_size=detect -fm dio 0 esp8266-20220618-v1.19.1.bin
固件写入成功后,返回应该如下图所示:
5、使用putty调试
首先要安装putty,双击之前下载下来的安装包,一路下一步安装。然后打开它。
在打开的界面连接方式选择 Serial
,端口输入你设备上的实际端口,码率输入 115200
,点击open即可打开连接。
正常连接成功就是没有任何输出的,使用print
命令打印字符串试试看,如果是和我差不多的输出就是固件写入成功了。
6、使用 WebREPL 连接
ESP8266最强大的还是它的WiFi能力,所以我们没需要非要使用有线连接进行调试,可以打开 WebREPL 功能,通过浏览器调试它。
首先我们要让它能联网,以下代码请在使用 putty 连接的窗口内逐行复制粘贴。最后一行是wifi的名称和密码,请根据实际情况修改,我这里以 TEST 作为示例:
import networkwlan = network.WLAN(network.STA_IF)wlan.active(True)wlan.connect('TEST', 'PASSWD')
稍等片刻后在路由器的后台你将会看到它上线了,输入以下代码配置 WebREPL。
import webrepl_setup
首先会提示你是否允许自启动,输入 e 并回车。
接着是配置密码,4-9个字符,输入两次即可。
最后还有个是否允许重启开发板,输入Y回车板子就重启好了,这个时候打开 webrepl-master
文件夹内的webrepl.html。
系统会自动使用默认浏览器打开以下这个界面:
在打开的页面输入你的开发板 ip:8266 点击Connect
,会提示你输入密码,输入刚刚设置的密码,验证通过就连接上了。这里我是用help命令简单测试了一下。
7、快速重置
有的时候我们写入失败或者部署的文件有了问题,需要重置板子的时候,就可以使用bat文件快速的将开发板恢复到初始状态。将下面代码中的端口和文件名修改为你实际的名称,然后保存为ANSI格式的bat文件。
当需要使用的时候,双击这个文件,就会自动重置。
@echo offecho "开始清除主板上数据"esptool.py --port 【COM端口】 erase_flashecho "开始写入新的镜像数据"esptool.py --port 【COM端口】 --baud 460800 write_flash --flash_size=detect -fm dio 0 【BIN文件名】pause
# 后记
这小东西是真的有意思,小小一个,可以实现N多种功能,还可以组建智能家居,如果自己买成品的可能动辄三四位数,这玩意tb上售价才十几块钱,还要啥自行车呢?
后续看使用情况我会再更新几篇ESP8266的实际使用案例。