本文主要介绍了如何在ESP8266模块上运行MicroPython。
根据官方的快速参考的描述,MicroPython已经实现了ESP8266基本硬件资源接口,包括GPIO、PWM、ADC、软SPI和硬SPI、IIC、睡眠模式(Deep-sleep mode)、OneWire等。
准备工作
- 固件 从官网下载最新的固件 esp8266-20210418-v1.15.bin
- 串口工具 SecureCRT
- 下载工具 esptool
- ESP8266开发板
烧写固件
将ESP8266设置成烧录模式后,两条命令即可:
//擦除FLASH
esptool.py --port COM13 erase_flash
//下载固件
esptool.py --port COM13 --baud 460800 write_flash --flash_size=detect 0 esp8266-20210418-v1.15.bin
上电打印
固件烧写完成后,上电重启,用secureCRT工具来查看串口打印信息。有打印如下字符信息说明固件烧写成功。
MicroPython v1.15 on 2021-04-18; ESP module with ESP8266
Type "help()" for more information.
>>>
简单测试
- 输入help(),打印的信息会告诉你怎么样连接WIFI
>>>
>>> help()
Welcome to MicroPython!
For online docs please visit http://docs.micropython.org/en/latest/esp8266/ .
For diagnostic information to include in bug reports execute 'import port_diag'.
Basic WiFi configuration:
import network
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
sta_if.isconnected() # Check for successful connection
# Change name/password of ESP8266's AP:
ap_if = network.WLAN(network.AP_IF)
ap_if.config(essid="<AP_NAME>", authmode=network.AUTH_WPA_WPA2_PSK, password="<password>")
Control commands:
CTRL-A -- on a blank line, enter raw REPL mode
CTRL-B -- on a blank line, enter normal REPL mode
CTRL-C -- interrupt a running program
CTRL-D -- on a blank line, do a soft reset of the board
CTRL-E -- on a blank line, enter paste mode
For further help on a specific object, type help(obj)
>>>
- 检查固件,当返回True,说明固件是OK的
>>>
>>> import esp
>>> esp.check_fw()
size: 632616
md5: 4dc294d98d5869f6f5bdc8689270a7d6
True
>>>
上传文件
MicroPython官方提供的文件管理工具webREPL有点麻烦。在这里我们采用uPyLoader这个工具来进行文件的上传和下载。
设置上电自动连接WiFi
MicroPython初始化后都会自动执行main.py文件,所以我们只需要设置该文件即可上电自动连接WiFi。
# main.py
import network
import webrepl
SSID = "SSID"
PASSWORD = "password"
def do_connect():
import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
print('connecting to network...')
wlan.connect(SSID, PASSWORD)
start = utime.time()
while not wlan.isconnected():
utime.sleep(1)
if utime.time()-start > 5:
print("connect timeout!")
break
if wlan.isconnected():
print('network config:', wlan.ifconfig())
do_connect()
之后通过uPyLoader客户端上传该文件,完成之后,尝试给ESP8266重启一下,看看ESP8266的会话窗口是不是打印了user init!,如果成功打印,说明上电后确实执行上面的代码了。
总结
基于ESP8266的MicroPython初体验就到这里了,本文简单介绍了固件的下载和烧写,以及使用的方法,最后还介绍了如何上传代码到ESP8266,并且配置上电自动连接WiFi。
本文暂时没有评论,来添加一个吧(●'◡'●)