基于NodeMCU(ESP8266)搭建Python开发环境
类别: IoT 标签: MicroPython NodeMCU ESP8266 esptool SecureCRT WebREPL upip目录
准备
硬件
-
NodeMCU 开发板
-
数据线,一头是 USB-A 接口,另一头是 Micro-USB 接口。
软件
PINOUT
搭建 MicroPython 开发环境
安装工具
- 安装烧录工具
esptool
pip3 install esptool
- 运行
esptool.py read_mac
命令,确认连接成功。$ esptool.py read_mac esptool.py v3.0 Found 2 serial ports Serial port /dev/cu.usbserial-0001 Connecting.... Detecting chip type... ESP8266 Chip is ESP8266EX Features: WiFi Crystal is 26MHz MAC: f4:cf:a2:ec:0a:86 Uploading stub... Running stub... Stub running... MAC: f4:cf:a2:ec:0a:86 Hard resetting via RTS pin...
- 查看设备文件
$ ls /dev/cu* /dev/cu.Bluetooth-Incoming-Port /dev/cu.usbserial-0001
烧录固件
- 下载 ESP8266固件
wget https://micropython.org/resources/firmware/esp8266-20210202-v1.14.bin
- 擦除 Flash 芯片
esptool.py --port /dev/cu.usbserial-0001 erase_flash
- 烧录固件
esptool.py --port /dev/cu.usbserial-0001 --baud 460800 write_flash --flash_size=detect -fm dio 0 esp8266-20210202-v1.14.bin
验证成功
Wi-Fi
烧录成功后,设备会将其自身配置为您可以连接的WiFi接入点(AP)。 ESSID的格式为MicroPython-xxxxxx
,其中x替换为设备MAC地址的一部分(因此每次都相同,并且对于所有ESP8266芯片而言都不同)。 WiFi的密码为micropythoN
(注意大写的N)。 连接到其网络后,其IP地址将为192.168.4.1
。
SecureCRT (交互解释器)
- Download SecureCRT
- SecureCRT Connect Config
- 检测连接是否成功(返回True)
import esp >>> esp.check_fw() size: 632048 md5: fccbe03ec7fd06fcfa29ccb626bb3db1 True >>>
WebREPL (基于Web浏览器交互解释器)
WebREPL (通过WebSockets的REPL, 可以通过浏览器使用)。 可以从 https://github.com/micropython/webrepl 下载并打开html文件运行。 (在线托管版可以通过访问 http://micropython.org/webrepl)直接使用, 通过执行以下 命令进行配置:
import webrepl_setup
按照屏幕的提示操作。重启后,允许使用WebREPL。如果你禁用了开机自动启动WebREPL,可以通过以下命令使用:
import webrepl
webrepl.start()
这个 WebREPL 通过连接到ESP8266的AP使用,如果你的路由器配网络配置正确,这个功能也可以通过STA方式使用,那意味着你可以同时上网和调试ESP8266。(如果遇到不可行的特殊情况,请先使用ESP8266 AP方式)。 除了终端/命令符的访问方式, WebREPL同时允许传输文件 (包含上传和下载)。Web客户端有相应的功能按钮,也可以通过 webrepl_cli.py 模块上存储的命令行进行操作。
测试例子:点亮开发板的灯
- 亮 Pin(2, Pin.OUT)
- 灭 Pin(2, Pin.IN)
>>> from machine import Pin >>> pin = Pin(2, Pin.OUT) >>> pin = Pin(2, Pin.IN)
安装开发库到开发板
在串口 REPL 中运行下面的命令就可以安装开发库
>>> import upip
>>> upip.install('micropython-umqtt.simple')
部署应用到开发板
下载 pyboard
wget https://raw.githubusercontent.com/micropython/micropython/master/tools/pyboard.py
在开发板上运行Python代码
- 方法1 使用命令参数
./pyboard.py --device /dev/cu.usbserial-0001 -c 'print("Hello World!")'
- 方法2 使用环境变量
export PYBOARD_DEVICE=/dev/cu.usbserial-0001 ./pyboard.py -c 'print("Hello World!")'
在开发板上运行Python脚本
./pyboard.py --device /dev/cu.usbserial-0001 hello.py
开发板文件系统访问(-f)
- cp
- cat
- ls
- rm
- mkdir
- rmdir
编写应用 main.py
import machine
import time
#指明 GPIO2 管脚
pin = machine.Pin(2, machine.Pin.OUT)
while True:
time.sleep(2) #等待 2 秒
pin.on() #控制 LED 关
time.sleep(2) #等待 2 秒
pin.off() #控制 LED 开
部署应用到开发板
这个文件的名字必须是 main.py
,系统启动后会自动运行main.py。
./pyboard.py -f cp main.py :