MicroPython开发ESP8266——环境搭建
- 0.前言
- 一、固件烧写
- 1.使用乐鑫官方的烧写工具
- 2.使用python中的esptool工具烧写
- 3.使用uPyCraft烧写
- 4.测试
- 二、IDE工具安装
- 1.windows环境搭建
- 2.Linux环境搭建
- 3.测试
- 1)软件设置
- 2)测试程序
- 3)烧录
0.前言
最近刷视频感觉 ESP32 好像挺火的,翻了翻杂货堆只找到以前学习时用的NodeMCU,核心是ESP-12f,主频160MHz,内置 4MB 的 SPI Flash。找了一下教程发现这个小板子用不了乐鑫官方的 ESP - IDF 开发工具,之前学习是用 Arduino 通过串口功能进行联网,这样就浪费了这个板子自带的主控。这次给它刷一个 MicroPython 的固件,虽然对比官方的 RTOS_SDK 开发,程序的执行速度会有一些降低,但是本来和新款的 ESP-C/S 系列芯片相比性能就不太强,已经算老旧设备了,python开发起来还更加方便,先玩玩再说。
一、固件烧写
1.使用乐鑫官方的烧写工具
使用 MicroPython 开发需要烧写对应的固件,在 MicroPython 官网下载对应的固件,然后使用乐鑫官方的 flash download tool 进行烧写。最新版的烧写工具好像不用选择 flash 大小了,不太清楚是不是已经开发好了自动适配功能,先烧写上去看看。
将下载的bin文件烧写到 0x0 地址,在烧写之前先点击ERASE擦除信息,然后再开始烧写。
2.使用python中的esptool工具烧写
笔者在使用flash download tool工具进行烧写时,烧写过程不报错,但是烧写完重启后无法进入命令行,终端打印乱码,所以使用了python中的esptool进行烧写。
# 安装esptool工具
pip install esptool
# 擦除芯片中的固件,/dev/ttyUSBX为开发板端口
esptool.py --port /dev/ttyUSBX erase_flash
# 烧写固件
esptool.py --port /dev/ttyUSBX --baud 460800 write_flash --flash_size=detect -fm dio 0 ~/esp8266-20220618-v1.19.1.bin
烧写固件的参数 flash-mode,如果能找到相关用户手册可以确认,笔者的开发板闲置太久,找不到相关手册了,不过大多数ESP8266 ESP-01 / 07(512 KB模块)使用参数qio,大多数ESP8266 ESP-12(> = 4 MByte模块)使用dio,可以尝试一下。
烧写成功后,复位开发板,使用串口调试工具可以看到如下信息:
3.使用uPyCraft烧写
这种方式比较简单,安装uPyCraft后,在菜单栏中的 Tools --> Serial 中选择开发板的 COM 口,然后在 Tools 中选择 BurnFirmware 即可烧写,这里笔者就不演示了。
4.测试
固件烧写完成后,复位开发板,可以搜索到一个名为 MicroPython-xxxxxx 的wifi。使用串口工具连接开发板,在终端中输入以下程序,可以看到板载的LED闪烁:
from machine import Pin
import time
LED = Pin(2, Pin.OUT)
while True:
LED.value(1)
time.sleep(1)
LED.value(0)
time.sleep(1)
LED灯连接在开发板上的 GPIO2 引脚,NodeMCU 相关的引脚图可以在这篇博客中找到。
二、IDE工具安装
使用命令行进行开发不是很友好,所以可以选择一个IDE进行开发。可以选择的 IDE 有 uPyCraft 和 Thonny,笔者就选 Thonny 进行开发。
1.windows环境搭建
在windows中,使用 Thonny 之前需要先安装 python 环境,然后安装 Thonny 工具,如果 python 设置好了系统的环境变量,安装之后就可以直接设置好编程环境,否则需要手动设置一下 python 环境。网上有很多教程,这里就不再赘述。
2.Linux环境搭建
windows下的工具安装比较麻烦,所以笔者选择了在 Linux 下进行开发。Linux 中的python设置自行选择,笔者使用的是 Ubuntu 自带的 python3 软件包。然后在终端使用如下命令安装 Thonny:
pip install thonny
安装完成后在终端输入 thonny 即可打开软件,也可以自行添加桌面快捷方式,这里就先略过。使用 apt 也可以安装,不过版本太低了用不了。
在Linux下进行开发还需要一个串口调试工具,可以用 putty 或者 CuteCOM,笔者更喜欢CuteCOM 的界面风格,安装起来也比较方便:
sudo apt install cutecom
安装完成后选择开发板的端口,点击 open 即可进行调试:
如果提示 Permission denied,一般是设备端口的权限问题,使用以下命令赋予端口权限再open即可(赋予权限后需要注意端口操作行为):
sudo chmod 777 /dev/ttyUSBX
3.测试
1)软件设置
在 thonny 菜单栏中的 工具 --> 选项 --> 解释器中选择自己的开发板和端口:
然后软件主界面左下角会出现一个 boot.py 文件,这个就是开发板对应的配置文件:
2)测试程序
新建一个main.py文件,注:用户程序只能以此文件名命名,所以只能一个程序一个目录进行管理
,程序内容如下:
import network
import time
import urequests
from machine import Pin
LED = Pin(2, Pin.OUT)
AP_name='要连接的无线名称'
password='密码'
sta_if = network.WLAN(network.STA_IF); sta_if.active(True)
sta_if.scan() # Scan for available access points
sta_if.connect(AP_name, password) # Connect to an AP
while not sta_if.isconnected():
print('connect...')
time.sleep(2)
# Change name/password of ESP8266's AP:
ap_if = network.WLAN(network.AP_IF)
ap_if.config(essid="要创建的wifi名", authmode=network.AUTH_WPA_WPA2_PSK, password="密码")
response = urequests.get('http://www.baidu.com')
print(response.text)
while True:
LED.value(1)
time.sleep(1)
LED.value(0)
time.sleep(1)
3)烧录
点击软件上方的运行按钮可以直接运行,此方式是在开发板的 RAM 中运行,断电重启后丢失。
在软件菜单栏中选中 视图 --> 文件,在软件左侧会出现文件目录,右击编写的 main.py,选择 上传到 / ,就可以将程序烧写到开发板中,此时下方的 boot.py 所在的栏中也会出现一个main.py,表示烧写成功。
如果想要移除开发板中的程序,右击左下角的 main.py,选择删除即可。
烧写完成后复位开发板,就可以查看到串口打印如下内容:
同时可以在路由器界面中找到已连接的开发板,也可以搜索到自己开发板创建的wifi。