0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在NodeMCU ESP8266上使用MicroPython

454398 来源:工程师吴畏 2019-07-26 10:28 次阅读

MicroPython:用于微控制器的Python

Python是一种开源编程语言,易于使用使用语法和许多库来帮助使编码更容易。 Python有很多来自Web应用程序,科学和数字计算以及创建软件原型的应用程序。因为它是开源的,所以它也得到了社区的大力支持。

Python主要用于Web和软件,但基于Python的硬件呢?这就是MicroPython的用武之地。

MicroPython是一种基于Python 3的编程语言,用C语言编写,用于在微控制器上运行。 MicroPython允许在微控制器上使用Python语言的简单性而不是更复杂的低级语言。

NodeMCU ESP8266 Board

NodeMCU ESP8266板有30个引脚连接到开发板。在30个引脚中,17个是GPIO引脚。这些GPIO引脚可用作:

ADC通道:10位ADC(模数转换器)通道

UART接口:用于串行加载代码

PWM输出:用于调光LED或控制电机

SPI和I2C接口:连接各种传感器和外围设备

I2S:添加声音您的项目

这些GPIO引脚是多路复用的,这意味着单个GPIO引脚可以充当PWM/UART/SPI。

如何在NodeMCU ESP8266上使用MicroPython

NodeMCU ESP8266电路板引脚详情

要将NodeMCU ESP8266的GPIO引脚与MicroPython代码一起使用,我们需要使用I/O索引号而不是GPIO引脚号来解决它们。下面是GPIO引脚的等效I/O索引号表。

设置uPyCraft IDE

虽然有MicroPython编程选项,但本教程使用uPyCraft IDE为ESP8266 NodeMCU刷新固件和代码。为了安装适用于Windows PC的uPyCraft IDE,我们需要将Python 3安装到我们的操作系统中。

要安装Python 3,请转到Python下载并从Python网站下载安装文件。

下载Python 3.7X

安装下载的Python 3.7.X.exe并启用添加Python 3.7到PATH。然后单击立即安装。

安装Python 3.7.X

安装Python 3后,我们可以下载适用于Windows的uPyCraft IDE。要下载,请查看下面的图片。

下载uPyCraft

接下来,将下载的uPyCraft安装到Windows。

uPyCraft.exe

安装并打开uPyCraft后,您将看到以下屏幕:

uPyCraft IDE

安装uPyCraft后,我们可以使用它来使用MicroPython固件刷新ESP板。但首先我们需要最后一次下载:CP20X驱动程序。

安装CP210X驱动程序

In为了将任何内容闪存到我们的主板上,我们需要下载并安装CP210X驱动程序。 CP210X驱动程序是USB-to-UART桥接器虚拟COM端口驱动程序,便于主机通信

下载CP210X

下载后,将CP210X安装到Windows。这将使我们能够在uPyCraft IDE上看到NodeMCU使用的COM端口。

将MicroPython固件刷新到ESP8266

默认情况下,ESP8266不会使用MicroPython进行闪存。所以在我们开始编程之前,让我们在我们的主板上闪存MicroPython固件。

首先,为ESP8266下载最新版本的MicroPython固件。

下载ESP8266固件

注意:确保为电路板下载正确的固件。在MicroPython下载中为特定板使用不同的固件。

下载MicroPython固件后,打开uPyCraft IDE并检查正在使用的串口和板。

选择串口端口,转到工具》串行并选择您的ESP8266 COM端口(请参阅ESP8266所在的COM端口,我的是COM4)。

选择电路板,转到工具》电路板并选择ESP8266电路板。

选择COM端口

现在,我们选择了ESP8266连接的端口和我们正在使用的电路板。让我们将固件刷到电路板上。

转到工具》 BurnFirmware 和单击刻录固件。

刻录固件

使用以下选项设置固件:

板:esp8266

burn_addr :0x0

erase_flash :是

com:COM4

固件:选择“用户“并选择我们之前下载的esp.8266.bin文件

Flash设置

在点击OK之前,按住ESP8266板上的flash按钮。

ESP8266上的Flash按钮

按住按钮的同时单击刻录固件窗口中的“确定”按钮。

Flash进度条

当刻录固件的进度条开始时,您可以释放闪光灯按钮。一旦刻录达到100%,固件就会闪烁到ESP8266板上。

如果收到“擦除假”注意框,这意味着ESP8266板未处于闪烁模式。重复这些步骤并再次按住闪光灯按钮,ESP8266进入闪烁模式。

删除错误错误

uPyCraft和ESP8266文件系统

ESP板文件可以在“device”文件夹中看到。该文件夹包含默认的“ boot.py ”,它在启动时运行设备并设置设备的配置。在设备文件夹下,建议创建“ main.py ”以运行主代码。

设备文件夹

除了设备文件夹,IDE的左侧有许多文件夹。我们来讨论这些不同的文件夹。

sd - 用于访问SD卡的存储,仅适用于带有SD卡模块的主板。

uPy_lib - 包含内置IDE库文件。

workSpace - 保存文件存储在计算机中的位置。您可以设置保存文件的目录路径。

基本uPyCraft示例

我们已经设置将uPyCraft和闪存固件放到我们的ESP8266上。现在让我们运行一个示例代码来检查我们与ESP8266的连接是否正常。

有许多示例代码可以在uPyCraft中使用。在本例中,我们将使用blink.py查看是否可以使NodeMCU板上的LED闪烁。

转到示例》基本》 blink.py

导航示例blink.py

以下是blink.py的示例代码

Blink.py

要连接到我们的ESP8266电路板,请单击断开的链图标以建立与电路板的连接。一旦建立与电路板的连接,链就会从断链变为连接链。

连接图标

一次与设备连接后,我们现在可以下载并运行代码了。在我们这样做之前,让我们首先创建一个“main.py”。

要创建一个新文件,请单击此图标:

新文件

#Copy this code below from the blink.py to the new file

#hardware platform: FireBeetle-ESP8266

import time

from machine import Pin

led=Pin(2,Pin.OUT) #create LED object from pin2,Set Pin2 to output

while True:

led.value(1) #turn off

time.sleep(0.5)

led.value(0) #turn on

time.sleep(0.5)

粘贴新代码后无标题文件。转到文件并将其保存到“ main.py ”。

现在我们已准备好下载并运行代码到ESP8266。要刷新代码,请单击“下载并运行”按钮。

下载并运行

当代码正确闪烁时,确认显示在shell和main.py文件上,表示下载成功。

MicroPython Shell

在NodeMCU ESP8266板上,你应该看到LED每0.5秒闪烁一次。

LED开启和关闭0.5s

闪烁的LED指示ESP8266上闪烁的blink.py代码有效。

恭喜! MicroPython已成功写入ESP8266。现在轮到您探索ESP8266项目的所有可能性。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NODEMCU
    +关注

    关注

    13

    文章

    289

    浏览量

    21414
  • Micropython
    +关注

    关注

    0

    文章

    68

    浏览量

    4742
收藏 人收藏

    评论

    相关推荐

    ESP8266 太空人动画的 OLED 显示

    ESP8266 太空人动画的 OLED 显示
    的头像 发表于 10-08 15:06 283次阅读
    <b class='flag-5'>ESP8266</b> 太空人动画的 OLED 显示

    ESP8266 通过 MQTT 协议实现 LED 的远程控制

    本文简要介绍了搭建 EMQX 服务器实现基于 MQTT 协议远程控制 NodeMCU ESP8266 板载 LED 的解决方案。
    的头像 发表于 09-25 09:11 2013次阅读
    <b class='flag-5'>ESP8266</b> 通过 MQTT 协议实现 LED 的远程控制

    esp32和esp8266代码共用吗

    本文将介绍ESP32和ESP8266两款流行的微控制器在代码共用性方面的可能性与差异性。 一、引言 随着物联网技术的飞速发展,越来越多的智能设备开始进入我们的生活。其中,ESP32和ESP82
    的头像 发表于 08-19 18:23 1158次阅读

    esp8266esp32区别是什么

    以下是关于ESP8266ESP32的主要区别: 处理器和架构 : ESP8266 :使用一个Tensilica L106 80MHz的处理器,属于Xtensa架构。 ESP32 :使
    的头像 发表于 08-19 18:16 5424次阅读

    esp8266不烧录可以使用吗

    ESP8266是一款非常流行的Wi-Fi模块,广泛应用于物联网项目中。然而,如果不进行烧录,ESP8266将无法正常工作。 1. ESP8266简介 ESP8266是一款由Espres
    的头像 发表于 08-19 17:28 812次阅读

    esp8266wifi模块怎么连接手机

    ESP8266 WiFi模块连接手机主要可以通过两种方式实现: 通过路由器连接(STA模式)和直接作为热点连接(AP模式) 。以下是两种连接方式的步骤: 一、通过路由器连接(STA模式) 配置
    的头像 发表于 08-19 17:27 2835次阅读

    Arduino Nano 和 NodeMCU ESP8266 读取 DHT11 环境温湿度数据及 OLED显示

    Arduino Nano 和 NodeMCU ESP8266 读取 DHT11 环境温湿度数据及 OLED显示
    的头像 发表于 08-13 18:04 1174次阅读
    Arduino Nano 和 <b class='flag-5'>NodeMCU</b> <b class='flag-5'>ESP8266</b> 读取 DHT11 环境温湿度数据及 OLED显示

    何在UART启动加载模式下设置ESP8266

    我需要能够使用 UART 通过不同的 MCU 对 ESP8266 进行编程。但是,我找不到有关如何执行此操作的任何文档。有谁知道怎么做?我知道如何在 UART 启动加载模式下设置 ESP8266
    发表于 07-19 14:25

    ESP8266加载micropython,文件的MD5与闪存中的数据不匹配怎么解决?

    ESP8266 加载 micropython,文件的 MD5 与闪存中的数据不匹配!
    发表于 07-19 08:08

    何在ESP8266获取并刷写最新固件?

    /espressif/esp8266_rtos_sdk,这是 readme.md 说 \"eagle.app.v6.flash.bin, downloads to flash
    发表于 07-19 06:04

    何在ESP8266使用SSDP,并使用RTOS SDK?

    我正在尝试在 ESP8266 使用 SSDP,并使用 RTOS SDK。
    发表于 07-18 08:23

    何在ESP8266运行OTA升级?

    ESP8266ESP-12F) 运行 OTA 升级
    发表于 07-10 06:13

    求助,请问如何在RTOS SDK 1.5的PlatformIO IDE ESP8266实现MQTT?

    在这里,我使用的开发板是 NodeMcu ESP8266 V3 Lua CH340 Wifi 开发板 Development Environment -> Platform IO
    发表于 07-08 06:22

    ESP8266网络天气时钟OLED显示

    基于ESP8266实现网络获取天气和时钟并OLED显示
    的头像 发表于 06-28 04:46 1180次阅读
    <b class='flag-5'>ESP8266</b>网络天气时钟OLED显示

    国产低成本Wi-Fi SoC解决方案芯片ESP8266ESP8285对比差异

    ESP8266ESP8285对比差异 ESP8285相当于在ESP8266基础多加了1/2MB Flash,
    的头像 发表于 05-17 11:44 1343次阅读
    国产低成本Wi-Fi SoC解决方案芯片<b class='flag-5'>ESP8266</b>与<b class='flag-5'>ESP</b>8285对比差异