用Micropython点亮ESP8266:从固件刷写到第一个LED控制程序

ESP8266入门教程03:点亮LED灯 ESP8266点亮LED的教程。ESP8266使用digitalWrite函数设置引脚电平状态,使用digitalRead函数读取引脚电平状态,点亮LED灯。 阅读详情

用Micropython点亮ESP8266:从固件刷写到第一个LED控制程序

在物联网开发的世界里,ESP8266凭借其低廉的价格和强大的功能,成为了众多开发者的首选。而Micropython的出现,更是让Python开发者能够轻松上手嵌入式开发。本文将带你从零开始,完成ESP8266的Micropython固件刷写,并编写第一个LED控制程序,体验物联网开发的乐趣。

1. 准备工作

在开始之前,我们需要准备以下工具和材料:

  • ESP8266开发板:市面上常见的型号包括NodeMCU、Wemos D1 mini等
  • Micro USB数据线:用于连接电脑和ESP8266
  • Micropython固件:针对ESP8266的专用版本
  • 固件刷写工具:如esptool.py或NodeMCU Flasher
  • 串口终端工具:如PuTTY、Tera Term等

固件下载注意事项:

务必从Micropython官网下载对应ESP8266的固件版本,不同型号的ESP8266可能需要不同的固件。

2. 刷写Micropython固件

2.1 安装刷写工具

对于Windows用户,推荐使用NodeMCU Flasher,它提供了图形化界面,操作简单:

  1. 从GitHub下载最新版本的NodeMCU Flasher
  2. 解压后直接运行可执行文件,无需安装
  3. 确保ESP8266已通过USB连接电脑

对于macOS或Linux用户,可以使用esptool.py,这是一个基于Python的命令行工具:

pip install esptool

2.2 刷写固件步骤

使用NodeMCU Flasher的步骤如下:

  1. 打开NodeMCU Flasher
  2. 在"Config"选项卡中选择下载好的Micropython固件
  3. 在"Operation"选项卡中选择正确的串口
  4. 点击"Flash"按钮开始刷写

刷写过程中可能需要手动进入刷机模式:

  1. 按住FLASH按钮不松开
  2. 按下并松开RST按钮
  3. 松开FLASH按钮

刷写成功后,工具会显示"Finished"状态。

使用esptool.py的命令如下:

esptool.py --port /dev/ttyUSB0 erase_flash
esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 esp8266-xxx.bin

3. 验证固件刷写

3.1 连接串口终端

刷写完成后,我们可以通过串口终端与ESP8266交互:

  1. 打开PuTTY或Tera Term
  2. 选择正确的串口
  3. 设置波特率为115200
  4. 点击连接

成功连接后,按ESP8266上的RST按钮,应该能看到Micropython的REPL提示符:

>>>

3.2 测试基本功能

在REPL中尝试输入以下命令:

print("Hello, ESP8266!")

如果能看到输出,说明Micropython已经成功运行。

4. 控制板载LED

4.1 了解硬件

大多数ESP8266开发板都带有板载LED,通常连接到GPIO2。在NodeMCU开发板上,这个LED是蓝色的,当GPIO2输出低电平时点亮。

4.2 编写LED控制程序

在REPL中直接输入以下代码:

import machine
import time

led = machine.Pin(2, machine.Pin.OUT)

while True:
    led.on()     # 关闭LED
    time.sleep(1)
    led.off()    # 点亮LED
    time.sleep(1)

这段代码会让LED以1秒的间隔闪烁。需要注意的是,在大多数ESP8266开发板上,LED是低电平有效,所以on()方法实际上会关闭LED,而off()会点亮LED。

4.3 将程序保存为启动脚本

如果想让程序在开发板启动时自动运行,可以将代码保存为main.py:

  1. 首先在REPL中初始化文件系统:
import uos
uos.mkfs('/flash')
  1. 然后创建并编辑main.py:
with open('main.py', 'w') as f:
    f.write('''
import machine
import time

led = machine.Pin(2, machine.Pin.OUT)

while True:
    led.on()
    time.sleep(1)
    led.off()
    time.sleep(1)
''')
  1. 重启开发板,程序会自动运行。

5. 进阶应用

5.1 使用WebREPL

Micropython提供了WebREPL功能,允许通过网页与ESP8266交互:

  1. 首先在REPL中启用WebREPL:
import webrepl_setup
  1. 按照提示设置密码并启用
  2. 连接同一网络的电脑访问http://micropython.org/webrepl/
  3. 输入ESP8266的IP地址和密码即可连接

5.2 文件传输

WebREPL还可以用于文件传输,方便开发:

  1. 在WebREPL界面点击"Send a file"或"Get a file"
  2. 选择要传输的文件
  3. 文件会被传输到ESP8266的文件系统中

5.3 使用外部LED

除了板载LED,我们还可以连接外部LED:

  1. 准备一个LED和220Ω电阻
  2. 将电阻一端连接到ESP8266的GPIO引脚(如GPIO4)
  3. 将LED正极连接到电阻另一端,负极连接到GND
  4. 修改代码控制新的GPIO:
import machine
import time

led = machine.Pin(4, machine.Pin.OUT)

while True:
    led.on()
    time.sleep(0.5)
    led.off()
    time.sleep(0.5)

6. 常见问题解决

6.1 刷写失败

可能原因及解决方案:

问题现象可能原因解决方案
无法识别串口驱动未安装安装CH340或CP2102驱动
刷写进度不前进未进入刷机模式按正确顺序操作FLASH和RST按钮
刷写中途失败波特率过高降低波特率至115200

6.2 REPL无响应

如果连接串口后没有看到>>>提示符:

  1. 检查波特率是否正确(通常为115200)
  2. 尝试按RST按钮重置开发板
  3. 检查USB线是否接触良好

6.3 LED不亮

如果LED没有按预期工作:

  1. 确认GPIO号是否正确
  2. 检查LED极性是否接反
  3. 确认LED是否损坏

7. 项目扩展思路

掌握了基本的LED控制后,可以尝试以下扩展项目:

  • 物联网气象站:连接温湿度传感器,将数据上传到云平台
  • 智能家居控制:通过继电器控制家电开关
  • 无线遥控车:用ESP8266控制电机驱动模块
  • 网页控制LED:搭建简单的Web服务器,通过浏览器控制LED

实现网页控制LED的简单示例:

import machine
import socket

led = machine.Pin(2, machine.Pin.OUT)

def web_page():
    if led.value():
        gpio_state="ON"
    else:
        gpio_state="OFF"
    
    html = """<html><body>
    <p>GPIO state: <strong>""" + gpio_state + """</strong></p>
    <p><a href="/on"><button>ON</button></a></p>
    <p><a href="/off"><button>OFF</button></a></p>
    </body></html>"""
    return html

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('', 80))
s.listen(5)

while True:
    conn, addr = s.accept()
    request = conn.recv(1024)
    if '/on' in request:
        led.on()
    elif '/off' in request:
        led.off()
    response = web_page()
    conn.send('HTTP/1.1 200 OK\n')
    conn.send('Content-Type: text/html\n')
    conn.send('Connection: close\n\n')
    conn.sendall(response)
    conn.close()

将这段代码保存为main.py并重启ESP8266,然后通过浏览器访问ESP8266的IP地址,就能看到控制界面了。

MicroPython-On-ESP8266——使用四角按钮控制LED灯 MicroPython-On-ESP8266——使用四角按钮控制LED灯 1. 四角开关原理 2. 接线 3. 实验:按开关点亮板载led灯 板载led使用的是GPIO 02针脚,前面把开关连接到了GPIO 05针脚,因为四角开关不带自锁功能,实验目的就是按住开关灯就亮,不按就不亮 ... 阅读详情

相关推荐

micropython入门教程-【ESP8266】MicroPython的快速入门教程

ESP8266版本的MicroPython和pybaord版本的有不少区别,无论从使用习惯还是API上,都有许多不同。下面以ESP-MP-01开发板为例,介绍使用方法。这个方法也可以用在NodeMcu、机智云等开发板上。准备工作在开始玩MicroPython前,我们需要做好准备工作。硬件上,只需要一根macroUSB数据线,大部分安卓手机的数据线都可以,很多开发板也带有macroUSB线,即使没有...

q6q6q的专栏 2774

用MicroPython点亮ESP8266:从固件刷写到第一个LED控制

本文详细介绍了如何为ESP8266刷写MicroPython固件,并实现首个LED控制项目。从环境准备、固件刷写工具使用,到通过REPL交互环境验证,再到利用machine模块控制GPIO引脚点亮板载LED,最后编写并上传可自动运行的闪烁脚本,为物联网开发提供了快速入门的实践指南。

milk5的博客 1079

【ESP8266】MicroPython的快速入门教程

ESP8266版本的MicroPython和pybaord版本的有不少区别,无论从使用习惯还是API上,都有许多不同。下面以ESP-MP-01开发板为例,介绍使用方法。这个方法也可以用在NodeMcu、机智云等开发板上。 准备工作 在开始玩MicroPython前,我们需要做好准备工作。 硬件上,只需要一根macroUSB数据线,大部分安卓手机的数据线都可以,很多开发板也带有macroU...

weixin_41501409的博客 2353

Micropython ESP8266固件刷写实战指南

本文提供了一份详尽的Micropython ESP8266固件刷写实战指南。文章从选择Micropython的优势讲起,详细介绍了刷机前的软硬件准备、两种主流刷写方法(图形化工具ESP8266Flasher与命令行工具esptool.py)的步骤,并指导如何验证环境及使用Thonny IDE提升开发效率,最后分享了常见问题排查与实战技巧,帮助开发者快速上手物联网开发。

peach的博客 966

【脑电分析系列】第15篇:脑电功能连接性与脑网络分析(二):Granger因果性、图论指标与复杂网络构建

摘要: 本文深入探讨了脑电(EEG)分析中的高阶连接性方法——有效连接(Effective Connectivity),重点介绍了Granger因果性(Granger Causality, GC)的原理与应用。GC通过统计预测揭示脑区间信息流动方向,超越了传统功能连接的同步性分析。文章还结合图论指标(如度、路径长度、聚类系数和模块化)量化脑网络的拓扑结构,并通过Python代码(MNE和NetworkX库)演示了从EEG数据构建、分析复杂脑网络的完整流程。该研究为理解大脑动态互动、认知任务信息流及神经系统疾

qq_32516809的博客 1567

手把手教你用S7-PLCSIM Advanced V3.0搭建PLC仿真测试环境(含WinPcap避坑指南)

本文详细介绍了如何使用西门子S7-PLCSIM Advanced V3.0搭建PLC仿真测试环境,包括WinPcap 4.1.3驱动的安装避坑指南。从环境准备、软件安装到配置调试,提供了一套完整的解决方案,帮助工程师和教学人员快速构建可靠的PLC仿真环境,解决常见的报错问题。

weixin_30879169的博客 642

【esp8266】:python也能控制单片机?esp8266 micropython开发环境搭建及点亮led

买来8266后一直卡在了清除固件那一块,今天才发现自己安装的python3.6版本不支持,电脑兼容安装python2.7.7和python3.6.6成功后解决了清除和下载固件失败问题,成功点亮led 1.安装esptool pip install esptool 2.安装固件 下载地址:http://micropython.org/ 我安装的是最新的V1.12版本 3.清空和写入固件 与电脑...

傅里叶也头大 4625

NXP S32K3 Safety软件生态全解析:RTD、SPD、SAF、SCST到底怎么选?

本文深入解析NXP S32K3系列MCU的安全软件生态,详细对比RTD、SPD、SAF和SCST四大组件的功能定位与选型策略。针对不同ASIL等级需求,提供从架构设计到工程实践的完整解决方案,帮助开发者高效实现功能安全认证,优化汽车电子系统的安全性与可靠性。

weixin_42524226的博客 324

MicroPython:点亮LED灯|ESP8266-NodeMCU开发板

LED正极(长脚)接入到D1针脚(也就是GPIO5) LED负极(短脚)接入到GUN针脚(任意GUN)

异想实验室|Arduion|ESP8266|Micro Python| 1959

谷歌账号国家或地区设置修改全攻略:条件、流程与避坑指南

谷歌账号的国家或地区设置与付款资料、账号历史行为及登录环境强绑定,修改时需满足特定条件。其原理在于地区作为索引键,关联内容库、货币结算和风控策略。正确切换可解决内容推荐错乱、付款失败等问题,适用于搬家、订阅区域限定服务等场景。操作前需在目标地区创建付款资料、清空余额并取消订阅,且一年仅能修改一次。本文详解从准备到验证的完整流程,并揭示官方文档未提及的实操陷阱,助你安全完成地区切换。

weixin_42521558的博客 2370

保姆级教程:手把手带你玩转英飞凌TC397开发板的板载资源(CAN FD、LCD、SD卡)

本文提供英飞凌TC397开发板的全面开发指南,涵盖CAN FD通信、LCD显示、SD卡文件系统和以太网通信等核心功能。通过详细的代码示例和硬件连接说明,帮助开发者快速上手并充分利用开发板的丰富资源,实现高效嵌入式系统开发。

weixin_33726313的博客 243

ESP8266_MicroPython——GPIO_LED_KEY_外部中断

MicroPython比较简单但是没有系统的更新过文章,准备写一下ESP8266——MicroPython的文章做一个系列。可以看出MicroPython还是比较简单的,当你想使用GPIO时导入machine 包就可以了,可以配置输入、输出、外部中断等等。

戚晨夕的博客 1558

x86架构学习之中断

外部中断,一般是由CPU的外部引脚电信号触发,这些引脚留给硬件厂商去定义中断,例如主板厂商可以将USB中断挂载70号中断引脚上,MCU厂商可以将片上外设(SPI、I2C等)的中断挂载在指定中断线上。中断描述符主要用于说明该中断的入口地址,中断描述符表则是将中断描述符一项一项管理在一个数组中,每一项中断描述符占用8个字节(64位模式下,占用16字节),其。简称中断,后文如果没特别说明,中断都指外部中断,由外部IO事件触发,由于时钟源来自CPU外部,与CPU时钟不同源,因此是异步事件。

qq_26962739的博客 1572

esp8266 micropython开发环境搭建及点亮led

esp8266

u014421313的博客 1110

解决Anaconda环境下catkin_make编译报错:Python路径冲突与empy模块缺失

本文详细分析了在Anaconda环境下使用catkin_make编译时出现的Python路径冲突与empy模块缺失问题,提供了快速解决方案和永久性环境配置方法。通过显式指定Python解释器路径或调整Anaconda配置,有效解决编译报错问题,适用于ROS开发与科学计算并行的场景。

weixin_28829629的博客 354

OpenGL ES 3.0 开发(一):绘制一个三角形

该原创文章首发于微信公众号:字节流动 什么是 OpenGLES OpenGLES 全称 OpenGL for Embedded Systems ,是三维图形应用程序接口 OpenGL 的子集,本质上是一个跨编程语言、跨平台的编程接口规范,主要应用于嵌入式设备,如手机、平板等。由科纳斯(Khronos)组织定义和推广,科纳斯是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准。 O...

字节流动 8万+

【ESP8266 MicroPython】烧录固件、开发环境、点亮LED、RGB呼吸灯、TCP、HTTP、MQTT一篇文章全学会

摘要 这篇文章介基于安信可 NodeMCU 绍了ESP8266 MicroPython固件的烧录,开发环境的使用,给出了LED,RGB呼吸灯,TCP 客户端,TCP 服务器,HTTP获取网页,MQTT通信等示例程序。 固件烧录

我是鹏老师 1563

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

micropython esp8266刷固件

micropython编程及ESP8266 本次所需工具: ESP8266 适用于ESP8266的Micropython固件https://micropython.org/download/esp8266/ ESP8266Flasher 下载 https://github.com/nodemcu/nodemcu-flasher putty https://www.putty.org/ 1.固件上载 作为在ESP8266模块上运行Python,您应该下载ESP8266的MicroPython固件并将其上载到电

weixin_40570700的博客 2342

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

ESP8266单片机MicroPython保姆级把玩笔记

esp8266保姆级笔记教程

weixin_42422720的博客 4141

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

micropython esp8266基于webServer控制LED

“”" 基于TCP实现webServer控制LED状态 “”" import socket, time, re from connectWiFi import connectWiFi from machine import Pin ssid = "ssid " pswd = "pswd " LED控制 %s xmlhttp.onreadystatechange = ...

fjwfoshan的博客 4068

基于MicroPython的ESP8266控制七彩LED灯模块的设计方案

1. 将七彩 LED 模块的三个引脚(红、绿、蓝)分别连接到 ESP8266 开发板的三个GPIO引脚。例如,可以将红色连接到 GPIO5,绿色连接到 GPIO4,蓝色连接到 GPIO0。2. 确保七彩 LED 模块的共阳(或共阴)引脚连接到开发板的适当电源引脚(对于共阳模块连接到 3.3V,对于共阴模块连接到 GND)。通过以上设计方案,你可以使用ESP8266和MicroPython来控制七彩LED模块,实现各种颜色的显示。#设置为黄色(红色和绿色同时亮)#设置为紫色(红色和蓝色同时亮)

m0_46311182的博客 962

(1)Micropython+ESP32 点亮一个LED

之前有接触过通过adriuno来进行ESP32和ESP8266的开发。 但是因为日常工作当中没有太多的机会使用CPP,所以进展一直不大。知道后面开始使用MicroPython进行ESP32的开发,感觉路一下都亮了。 今天尝试回顾一个初学者的使用过程。点亮一个RGB LED 。 使用的硬件ESP32 开发板一个 RGB LED一个 如图,RGB LED 一共4个引脚。分别是 GND - 接地 R - Red Y - Yellow G - Green 简单进行一个接入 : 分别对应了 GND — G

陈饭老司机 4057

用MicroPython开发ESP8266

配置ESP8266的MicroPython开发环境

博客地址 https://hjr-08.github.io/ 5914

MicroPython-On-ESP8266——PWM脉宽调制

1. PWM概念 脉冲宽度调制(英语:Pulse-width modulation,缩写:PWM),简称脉宽调制, 是将模拟信号转换为脉冲的一种技术, 一般转换后脉冲的周期固定,但脉冲的工作周期会依模拟信号的大小而改变。 PWM涉及到两个重要的概念频率和占空比 频率 Frequency (freq) PWM完成一个周期的速度,如100Hz即是每秒100个周期。理解为PWM在高低态电平之间切换的速度。ESP8266的频率范围为 0 < freq < 78125 占空比 Duty Cyc

南极嗑烤队 5124

ESP8266+MicroPython开发:使用ESP8266+Thonny烧录MicroPython固件

在Thonny中我们可以新建一个文件然后Ctrl+S直接保存到ESP8266的Flash中。将ESP8266与电脑连接,打开Thonny,点击右下角解释器,然后点击。根据ESP8266的flash选择,一般选择如图所示。自己随便选择一个版本下载,注意记住自己的下载路径。选择串口端口,如果没有,可能是串口驱动没有安装。选择Thonny版本,然后下载安装即可。安装完成后,运行下面ESP8266呼吸灯代码测试。选择windows版本。

darlingqx的博客 5616
上一篇: CLion中文乱码终极解决方案:3种方法实测对比(含MinGW/UTF-8配置)
下一篇: QuickTime隐藏技巧:5分钟搞定方向键快进快退(无需第三方软件)
github5actions
博客等级 码龄1天 0粉丝 1824原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值