ESP8266 NodeMCU Python编程指南
ESP8266 NodeMCU 是一个开源的 IoT 开发板,支持使用 MicroPython 进行编程。本文将带你了解如何从零开始使用 NodeMCU 进行 Python 编程。我们通过一个简单的项目——“通过 WiFi 控制 LED 灯”来进行实践。
项目流程
以下是实现此项目的步骤:
| 步骤 | 描述 |
|---|---|
| 1 | 安装 MicroPython 固件到 NodeMCU |
| 2 | 设置开发环境(如:安装 VS Code,配置 MicroPython 插件) |
| 3 | 编写代码,实现 WiFi 连接和 LED 控制 |
| 4 | 上传代码到 ESP8266 并运行 |
| 5 | 测试和调试代码 |
每一步的详细说明
步骤 1: 安装 MicroPython 固件
在 NodeMCU 上安装 MicroPython 固件。可以前往 [MicroPython 官网]( 下载最新的固件。
- 使用工具(如 esptool.py)将固件烧录到 NodeMCU:
pip install esptool esptool.py --port /dev/ttyUSB0 erase_flash # 擦除闪存 esptool.py --port /dev/ttyUSB0 write_flash -fm dout 0 nodemcu.bin # 写入固件
步骤 2: 设置开发环境
- 下载并安装 Visual Studio Code。
- 安装 Pymakr 插件以便与 MicroPython 设备交互。
步骤 3: 编写代码
在 VS Code 中编写以下代码,控制 LED 灯的开关状态:
import network # 用于管理网络
import socket # 用于网络协议
from machine import Pin # 用于控制 GPIO
# 连接到 WiFi
ssid = 'your_SSID' # 替换为你的 WiFi 名称
password = 'your_PASSWORD' # 替换为你的 WiFi 密码
# 连接 WiFi 函数
def connect_wifi():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, password)
while not wlan.isconnected(): # 等待连接
pass
print('Connection successful:', wlan.ifconfig())
# 控制 LED 的函数
def control_led(state):
led = Pin(2, Pin.OUT) # D2 引脚连接 LED
if state == 'on':
led.on() # 开启 LED
else:
led.off() # 关闭 LED
connect_wifi() # 调用连接 WiFi 函数
# 配置 Web 服务器
addr = socket.getaddrinfo('0.0.0.0', 80)[0]
s = socket.socket()
s.bind(addr)
s.listen(1)
# 循环等待客户端请求
while True:
cl, addr = s.accept()
print('Client connected from', addr)
request = cl.recv(1024) # 接收请求
request = str(request)
if 'GET /on' in request:
control_led('on') # 开灯
elif 'GET /off' in request:
control_led('off') # 关灯
cl.send('HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n') # 发送响应
cl.send('LED is on' if 'GET /on' in request else 'LED is off')
cl.close()
注:此代码实现了连接 WiFi,配置一个简单的 Web 服务器以控制 LED 的开关。
步骤 4: 上传代码到 ESP8266 并运行
- 使用 Pymakr 将代码上传到 NodeMCU。
- 运行代码并查看串口监视器上的连接信息。
步骤 5: 测试和调试代码
使用浏览器访问以下地址以控制 LED:
- 开灯:
http://<你的 NodeMCU IP>/on - 关灯:
http://<你的 NodeMCU IP>/off
甘特图
gantt
title ESP8266 NodeMCU Python项目流程
dateFormat YYYY-MM-DD
section 固件安装
安装 MicroPython固件 :a1, 2023-10-01, 1d
section 开发环境设置
设置 VS Code和插件 :a2, after a1, 1d
section 编写代码
WiFi连接和LED控制代码 :a3, after a2, 3d
section 上传代码
上传代码至设备 :a4, after a3, 1d
section 测试
控制LED灯的开关 :a5, after a4, 2d
结尾
通过上述步骤和代码,你已经成功地在 ESP8266 NodeMCU 上使用 Python 实现了一个简单的控制 LED 灯的项目。这不仅仅是个开始,更是你在 IoT 领域探索的第一步。希望你继续学习,创造更多有趣的项目!
















