首页

NodeMCU |入门指南

在本教程中,我们将学习NodeMCU, ESP-12E模块,NodeMCU板的布局,一个简单的引脚,以及如何使用Arduino IDE编程NodeMCU。这是一个完整的初学者指南,开始使用NodeMCU ESP-12E板。让我们开始吧。

Getting-Started-with-NodeMCU
NodeMCU (ESP-12E)

ESP8266的简要回顾

ESP8266对爱好者和DIY社区的影响是绝对压倒性的,特别是在物联网(Internet of Things)相关应用的发展方面。ESP8266 SoC是一款廉价的Wi-Fi微控制器,具有完整的TCP/IP栈,由espresso Systems公司开发。

这不是我第一次谈论ESP8266 Wi-Fi模块。事实上,我已经使用ESP8266的香草版本创建了一系列项目,即ESP-01模块。

有关ESP8266入门、它的Pinout、固件和其他项目的更多信息,请查看这个“适合初学者的15个最佳ESP8266项目”。

带回ESP8266的原因是NodeMCU。尽管我对NodeMCU及其项目的参与已经很晚了,但随着越来越多的人开始购买这个板子,我想从NodeMCU入门教程开始创建另一组项目。

NodeMCU是什么?

从技术上讲,NodeMCU是一个针对ESP8266的固件,使用C编程语言、Espressif NON-OS SDK和Lua脚本语言开发。

传统上,我们为微控制器写代码,比如Arduino, STM32,8051等等,用C或c++编译,然后用一组工具编译,生成一个二进制文件。然后将这个二进制文件上传到微控制器的闪存中并执行。

NodeMCU的情况则大不相同。您可以将NodeMCU固件视为Lua脚本的解释器。因此,如果您的ESP8266加载了NodeMCU固件,您可以简单地用Lua编写您的应用程序并将其发送到ESP8266。

NodeMCU Firmware将解释字节码并执行命令。没有编译,没有二进制文件等。只需编写一个脚本并运行它。

开发NodeMCU Firmware的团队还为ESP-12E模块开发了一种名为NodeMCU Devkit的断接板。所以,我们中的许多人实际上在使用一个叫NodeMCU的板,用Arduino IDE而不是Lua Scripts来编程。

重要提示:在ESP8266上只能存在一个固件。它可以是AT命令固件,NodeMCU固件或基于Arduino的代码。一旦你上传了Arduino草图,NodeMCU固件就会被删除。如果你想使用Lua脚本和NodeMCU,那么你必须闪光NodeMCU固件。

ESP-01 vs. NodeMCU (ESP-12E)

如前所述,NodeMCU Devkit实际上是ESP-12E模块的断接板。ESP-01是由ai -思考者(ESP8266的第三方模块制造商)生产的ESP8266 Wi-Fi SoC的普通版本。

ESP8266 Arduino图像
ESP-01模块插针

事实上,ai -思考者生产的模块是广泛应用于其他ESP8266板的模块之一。ai -思考者的一些模块是ESP-01, ESP-02, ESP-03,等等,直到ESP-14。

注意:所有模块都基于相同的ESP8266 Wi-Fi芯片。主要的区别是GPIO引脚的可用性。例如,ESP-01模块只有2个GPIO引脚,而ESP-12E模块有17个GPIO引脚、ADC引脚、SPI引脚等。

在所有这些模块中,ESP-12E是相当受欢迎的。使用该模块作为主板,NodeMCU团队开发了NodeMCU Devkit,通常简称为NodeMCU board。

ESP-12E-Module
ESP-12E带有边缘铸件的模块

如果你还记得ESP8266入门的教程,我们不得不经历了很多麻烦,以编程的ESP-01模块。它需要一个USB接口UART模块,一些按钮可以在编程模式(GPIO 0必须连接到GND)和正常工作模式(GPIO 0可以保持浮动状态,也可以拉高到3.3V)之间切换。

NodeMCU板简化了这一切。首先,由于它基于ESP-12E模块,所以有很多GPIO引脚。其次,有一个板载3.3V稳压器(记住,ESP8266EX SoC工作在3.3V而不是5V)。

NodeMCU的另一个优点是它包含了板载USB to UART控制器,在我的例子中是CP2102 IC。关于这个CP2102 IC的一个有趣的事情是,ESP8266 SoC的GPIO 0和RST引脚由CP2102 IC的DTR(数据终端准备)和RTS(请求发送)引脚控制。

因此,当您试图从Arduino IDE上传任何草图时,CP2102 IC将自动选择编程模式,并复位板。一旦编程完成,它将把ESP8266配置回正常运行模式。美丽。

NodeMCU的官方github页面是在这里

NodeMCU ESP-12E断线板布局

下图是基于ESP-12E模块的断接板NodeMCU板的布局图。ESP-12E模块由边缘铸造组成,使其易于焊接到PCB上。

NodeMCU-Parts-on-Board
NodeMCU单板布局

如图所示,NodeMCU板由30个引脚(每边15个),一个带PCB天线的ESP-12E模块,来自Silicon Labs的CP2102 USB到UART桥控制器,两个按钮(一个是RESET,另一个是Flash),一个用于电源和上传的微型USB连接器,一个3.3V调节器,一些无源和有源组件和两个led组成。

是的。NodeMCU有两个板载led。第一个LED随ESP-12E模块而来,并连接到ESP8266 SoC的GPIO 2。第二个LED位于分离板上(靠近CP2102 IC),连接到GPIO 16。

NodeMCU-On-board-LEDs
NodeMCU上有两个板载led

注意:两个led都是active LOW,这意味着,当引脚是LOW时,led是ON,当引脚是HIGH时,led是OFF。

引出线

我将展示一个简单的NodeMCU ESP-12E Breakout板的引脚。在单独的教程中,我将讨论NodeMCU板的完整引脚,ESP-12E模块,引脚描述和其他重要功能。

下图是NodeMCU板的引脚图。

NodeMCU-Pinout-2
NodeMCU引出线

如何使用Arduino IDE编程NodeMCU ?

在使用Arduino IDE上传Blinky Sketch之前,NodeMCU入门还没有完成。因此,让我们继续配置Arduino IDE。如果您使用的是ESP-01模块或其他基于ESP8266的板,那么您可能在Arduino IDE中完成了初始设置。

准备Arduino IDE

尽管如此,让我再解释一遍步骤。打开Arduino IDE(如果没有安装Arduino IDE,那么,先安装它),然后转到文件- >首选项

在底部有一个叫做“附加板管理器url:”的部分。在此旁边的字段中粘贴以下URL。

http://arduino.esp8266.com/stable/package_esp8266com_index.json

如果您想添加多个url,那么只需用逗号分隔它们。

Arduino-IDE-NodeMCU-1
在Arduino首选项中添加URL

这使得Arduino IDE能够从互联网上寻找额外的电路板。所以,确保你的系统连接到互联网。现在,去工具-> Board -> Boards Manager…选择。

使用顶部的搜索字段,搜索"esp8266”。您将得到一个结果为“esp8266 by esp8266 Community”。选择它并单击install。它将下载所有的工具,库,板等。

Arduino-IDE-NodeMCU-2
搜索和安装ESP8266

在安装ESP8266单板之后,可以开始为新的NodeMCU单板编写代码。首先,将micro-USB连接线连接到NodeMCU上,将另一端插入到计算机上。

现在,再一次转到工具—>单板—> ESP8266单板在Arduino IDE中选择“NodeMCU 1.0 ESP-12E模块”。

Arduino-IDE-NodeMCU-3
在Arduino Boards中选择NodeMCU

如果您在IDE中单击Tools选项,所有与板相关的选项都将更改,并且是特定于ESP8266 NodeMCU的。保留除Port之外的所有设置为默认值。为USB到UART控制器选择合适的端口。在Windows中,你可以从“设备管理器”中获得这些信息。

Arduino-IDE-NodeMCU-5
特定于NodeMCU的选项

使用Blinky Sketch进行测试

正如我前面提到的,NodeMCU有两个板上led分别连接到GPIO 2和GPIO 16。因此,在这个示例中,我将交替闪烁两个led。

NodeMCU上闪烁led的代码如下。

单击Upload按钮后,Arduino IDE将调用一些ESP8266相关工具来编译代码并生成二进制文件。

Arduino-IDE-NodeMCU-4
上传Blinky Sketch到NodeMCU

以下是输出的短视频片段。

NodeMCU-LED-Blinking

结论

一个完整的初学者指南开始使用NodeMCU。NodeMCU是ESP8266 SoC的一个很好的版本,因为它具有构建一个完整系统所需的所有功能。在接下来的教程中,我将使用这个NodeMCU板实现更多的初级和高级项目。所以,请继续关注。

3反应

  1. 你好,谢谢你的详细解释,很容易理解。除了设置端口的最后一步之外,所有工作都按照您的解释进行。端口是灰色的,所以我可以将它设置为正确的值。有什么改正的建议吗?谢谢

留下一个回复

您的电邮地址将不会公布。

Electronicshub图标
Baidu
map