MicroPython:ESP8266上的Python
之前一直用Arduino,现在来尝试一下Python。
烧录
1. 到官网下载固件
http://www.micropython.org/download
2. 安装esptool工具
请确保有Python环境(Linux或Windows)
pip install esptool
3. 清空Flash
这一步很重要,可以避免很多错误:
esptool.py --port /dev/ttyUSB0 erase_flash (Windows下port为COM口)
4. 下载到ESP8266上
下载前先将GPIO0下拉,进入下载模式:
esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 esp8266-20180511-v1.9.4.bin
有些模块的Flash是512K的,可能无法下载固件,可以通过esptool来查看:
esptool.py --port /dev/ttyUSB0 flash_id
连接WiFi与远程编程
通过串口连接ESP8266,可以看到串口输出:
依次输入:
>>> import network
>>> sta_if = network.WLAN(network.STA_IF)
>>> sta_if.active(True)
>>> sta_if.connect("", "") #SSID,PASSWD
>>> sta_if.isconnected()
>>> print("IP:",sta_if.ifconfig()[0])
连接后可以看到模块的IP。
远程编程需要用到webrepl,你可以使用MicroPython的在线客户端,或从Github获取:
在使用webrepl前,需要进行配置,在串口输入:
>>> import webrepl_setup #按提示配置
配置完成后再在串口输入下面的代码,来开启:
>>> import webrepl
>>> webrepl.start()
你可以通过webrepl来上传/下载文件。
webrepl的界面:
文件系统
输入下面命令查看当前有的文件:
>>> os.listdir()
['boot.py', 'webrepl_cfg.py', 'main.py']
boot.py main.py前被执行(开发板启动时将执行这个该脚本,它设置了开发板的多个选项参数) | main.py 主程序
查看剩余空间:
>>> import micropython
>>> micropython.mem_info()
stack: 2112 out of 8192
GC: total: 35968, used: 10000, free: 25968
No. of 1-blocks: 44, 2-blocks: 15, max blk sz: 264, max free sz: 1417