文章目录仅作为本人学习《物联网开发实战》的学习笔记,原课程链接:极客时间《物联网开发实战》——郭朝斌
- 搭建 MicroPython 开发环境
- 第一步:准备固件文件
- 第二步:安装烧录工具
- 第三步:烧录固件
- 第四步:确认运行状态
- 体验交互
- 部署代码到开发板
原课程选择使用 Python 作为开发语言,硬件平台为 NodeMCU(ESP8266),开发板上不能直接运行 Python,但可以运行 MicroPython 。
搭建 MicroPython 开发环境 第一步:准备固件文件MicroPython ,是Python3编程语言的一个完整软件实现,用C语言编写,被优化于运行在微控制器之上。MicroPython是运行在微控制器硬件之上的完全的Python编译器和运行时系统。提供给用户一个交互式提示符(REPL)来立即执行所支持的命令。除了包括选定的核心Python库,MicroPython还包括了给予编程者访问低层硬件的模块。
——百度百科
我们需要 NodeMCU 准备好的 MicroPython 固件,我们可以直接去官方下载现成的,否则就需要自己用专门的软件进行交叉编译。
固件下载地址:(原课程使用的是 ESP8266,而我的芯片型号是 ESP32)
ESP8266: https://micropython.org/download/esp8266/
ESP32: https://micropython.org/download/esp32/
烧录工具需要在 Python 终端上进行安装,所以我们需要先安装 Python,版本这里选择 Python3.8(听说需要安装3.6以上的版本才行),下载地址:https://www.python.org/downloads/release/python-385/
下载对应版本,我选择的是 Windows 64位,下载安装程序,
运行安装程序,pip 是用来下载和安装 Python 软件包的工具,安装烧录工具就需要用到 pip 命令,可以勾选 “Add Python 3.8 to PATH”,这样就可以直接在控制台运行 Python 了。
在控制台输入 python -V
查看 Python 版本,
Python 环境安装好后,就可以开始安装烧录工具了,在控制台输入以下命令,
pip install esptool
将 NodeMCU 连接电脑(前提是已经安装 USB-TTL 驱动),可以通过 esptool.py read_mac
命令,确认 NodeMCU 是否连接成功,如下图:
烧录固件前,需要先将 Flash 里的数据擦除,使用 esptool.py --chip esp32 --port COM5 erase_flash
(COM5 是我电脑里与 NodeMCU 连接的端口,具体根据实际情况而定,chip 选项可需要注意)
我在擦除时,遇到了无法访问串口的问题,
could not open port 'COM5': PermissionError(13, '拒绝访问。', None, 5)
开始以为是 Python 权限的问题,后来发现就连串口调试助手也不能访问该串口,最后通过拔插 USB 数据线(同时用串口调试助手测试能否正常打开)解决了这个问题。
擦除成功:
擦除成功后,进入固件所在目录,运行如下命令,即可将固件烧录到开发板中:
# 芯片信号,端口号和固件名称需要根据具体情况修改
esptool.py --chip esp32 --port COM5 --baud 460800 write_flash -z 0x1000 esp32-20220117-v1.18.bin
第四步:确认运行状态
怎么知道开发板是否在运行呢?
这里介绍两种方法:
- 用手机或电脑搜索周围的 Wi-Fi 热点,如果看到类似 “MicroPython-xxxxxx” 名称的热点,说明 NodeMCU 工作正常。(但是我实测是没有热点的,可能默认没打开吧)
- 使用串口终端软件连接开发板,这类软件很多,比如 Putty,XShell 等,我这里使用的是 MobaXterm。
先用 “hello world” 来检测测试一下,然后再体验一下 MicroPython 控制 LED 灯。
可以看到蓝色的 LED 被点亮:
MicroPython 的官方提供了一个工具,名为pyboard.py,可以使用它来 *** 作开发板上的文件系统,如文件拷贝、创建文件夹、文件删除等功能。
将 pyboard.py 下载到电脑,就可以使用这个工具了。
下面是原文的一个代码段,功能是让 LED 灯以 1 秒间隔闪烁。
import machine
import time
# 指明 GPIO2 管脚
pin = machine.Pin(2, machine.Pin.OUT)
# 循环执行
while True:
time.sleep(1)
pin.on()
time.sleep(1)
pin.off()
要在开发板上运行这个 Python 代码,我们需要做两件事:
- 将代码保存在一个文件中,命名为 main.py。(必须是这个名字)
- 将 main.py 放到开发板的文件系统中,而且是根目录。
开发板启动时,就会自动执行 main.py 文件中的代码。如何把 main.py 复制到开发板上呢,这就要用到前面提到的 pyboard.py 了。
具体 *** 作如下:
将 main.py 复制到开发板,重启开发板后,main.py 自动运行
pyboard.py --device COM5 -f cp main.py :main.py
运行效果:
我们也可以不复制 main.py ,直接让它在开发板上运行:
pyboard.py --device COM5 main.py
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)