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

    浏览量

    21031
  • Micropython
    +关注

    关注

    0

    文章

    68

    浏览量

    4609
收藏 人收藏

    评论

    相关推荐

    ESP8266使用MicroPython怎么查看无线信号强度?

    ESP8266使用MicroPython怎么查看无线信号强度
    发表于 11-10 07:40

    esp8266microPython如何调用Arduino库?

    esp8266microPython如何简单的调用Arduino库,本人C++不是太熟练,想把ATmega328p的一个LCD屏驱动移植到esp8266 microPython ,不
    发表于 10-30 07:42

    nodemcuesp8266是什么关系?

    nodemcuesp8266是什么关系 nodemcuesp8266是什么关系?通俗理解就是nodemcu是一个开发板,基于
    的头像 发表于 10-20 14:53 2350次阅读
    <b class='flag-5'>nodemcu</b>和<b class='flag-5'>esp8266</b>是什么关系?

    NodeMCU家庭自动化(ESP8266)

    电子发烧友网站提供《NodeMCU家庭自动化(ESP8266).zip》资料免费下载
    发表于 07-10 14:59 0次下载
    <b class='flag-5'>NodeMCU</b>家庭自动化(<b class='flag-5'>ESP8266</b>)

    如何将ESP8266 NodeMCU用作WiFi无线电

    电子发烧友网站提供《如何将ESP8266 NodeMCU用作WiFi无线电.zip》资料免费下载
    发表于 07-05 11:37 1次下载
    如何将<b class='flag-5'>ESP8266</b> <b class='flag-5'>NodeMCU</b>用作WiFi无线电

    使用ESP8266MicroPython支持MQTT的滚动文本

    电子发烧友网站提供《使用ESP8266MicroPython支持MQTT的滚动文本.zip》资料免费下载
    发表于 06-13 15:49 0次下载
    使用<b class='flag-5'>ESP8266</b>和<b class='flag-5'>MicroPython</b>支持MQTT的滚动文本

    可以使用MicroPython将相同的应用程序移植到ESP8266吗?

    我有一个 PYTHON 应用程序,它使用了一些外部 python 包,并且在 Raspberry pi 运行良好。 我可以使用 MicroPython 将相同的应用程序移植到 ESP8266 吗?
    发表于 06-06 09:11

    如何使用ESP8266 NodeMCU在Atmega32刷写固件?

    您好,我想使用基于 esp8266NodeMCU 在另一台设备的 Atemga32 芯片刷新新固件。Nodemcu 和 Atemga32 设备都有 MOSI / MISO 和
    发表于 06-05 11:01

    ESP8266初次如何实现无线通信(基于电脑与ESP8266)

    的且集成的国产WIFI模块,它有很多种型号,但是使用方法没什么太大的区别,也可以说没区别,有些看起来引脚比较多的ESP8266模块只是将这个芯片的IO口拓展出来了而已。还有 一种原因就是它采用的是Micropython编程的ESP826
    发表于 05-30 09:53 20次下载
    <b class='flag-5'>ESP8266</b>初次如何实现无线通信(基于电脑与<b class='flag-5'>ESP8266</b>)

    何在Windows 10启动/设置ESP8266/ESP32 RTOS环境?

    我在 Arduino IDE 上有一些关于 ESP8266/ESP32 的经验。 请告诉我,如何在 Windows 10 启动/设置 ESP826
    发表于 05-19 10:33

    ESP8266 NodemCu V3是如何工作的?

    我买了一个 ESP8266 NodemCu V3。我已经用 IDE Arduino 上传了一个程序。 现在我想更改/修改我已经上传的程序。 它是如何工作的?我必须格式化/初始化 ESP8266 并在
    发表于 05-17 06:10

    nodemcu esp8266做一个项目,nodemcu总是重置报错的原因?

    我正在用 nodemcu esp8266 做一个项目,但 nodemcu 总是重置给出这个错误。
    发表于 05-12 08:07

    何在ESP8266-07使用AT命令?

    AT 命令固件闪存到模块,在我将 GPIO15 保持为低电平并重置模块后,我收到以下消息 我使用 FTDI 来烧写模块,现在我想使用来自 UART 的 AT 命令,但是,我无法从模块获得任何 AT 响应,请帮助我,我如何在 ESP8266-07
    发表于 05-11 06:01

    ESP8266编程线的疑问求解

    好的,安装 Arduino IDE 并连接到 ESP8266 模块不会这么难 LOL 我正在尝试连接和编程 HiLetgo ESP8266 NodeMCU CP2102 ESP
    发表于 05-06 08:14

    无法串入MicroPython ESP8266是为什么?

    我正在使用 NodeMCU Amica 开发板。我使用以下命令擦除 ESP8266 的闪存... sudo esptool.py --port /dev/ttyUSB0 erase_flash
    发表于 05-06 07:14