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 官网]( 下载最新的固件。

  1. 使用工具(如 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: 设置开发环境

  1. 下载并安装 Visual Studio Code
  2. 安装 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 并运行

  1. 使用 Pymakr 将代码上传到 NodeMCU。
  2. 运行代码并查看串口监视器上的连接信息。

步骤 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 领域探索的第一步。希望你继续学习,创造更多有趣的项目!