nodemcu入门|初学者指南

在本教程中,我们将学习关于NodeMCU, ESP-12E模块,NodeMCU板的布局,一个简要的pinout和如何用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堆栈,由Espressif Systems开发。

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

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

带回ESP8266的原因是Nodemcu。即使我迟到了Nodemcu及其项目,我想创建另一组项目,从这个开始,因为更多的人正在购买这个董事会。

NodeMCU是什么?

技术上,Nodemcu是使用C编程语言开发的ESP8266的固件,eSpressif非操作系统SDK和Lua脚本语言。

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

事情与Nodemcu完全不同。您可以将Nodemcu固件视为LUA脚本的翻译。因此,如果您的ESP8266装入了Nodemcu固件,您可以简单地在LUA中写下您的应用程序并将其发送到ESP8266。

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

开发NodeMCU Firmware的团队还开发了一种ESP-12E模块的转接板,称为NodeMCU Devkit。所以,我们很多人都在使用NodeMCU板用Arduino IDE编程,而不是Lua脚本。

重要的提示:ESP8266上只能存在一个固件。它可以是命令固件,Nodemcu固件或基于Arduino的代码。一旦上传Arduino草图,将删除Nodemcu固件。如果您想与Lua脚本和Nodemcu一起使用,那么您必须刷新Nodemcu固件。

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

正如前面提到的,NodeMCU Devkit实际上是ESP-12E模块的接板。ESP-01是ESP8266的第三方模块制造商ai -思想者生产的ESP8266 Wi-Fi SoC的普通版本。

ESP8266 Arduino Image 2
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模块
带有边缘星座的ESP-12E模块

如果你还记得ESP8266入门“教程,我们不得不经历很多麻烦,为了编程ESP-01模块。它需要一个USB接口UART模块,在编程模式(GPIO 0之间必须连接到GND)和正常操作模式(GPIO 0可以留下浮动,或者可以将浮动或可以拉高到3.3V)。

Nodemcu Board简化了所有这些。首先,由于它基于ESP-12E模块,因此有很多GPIO引脚。其次,有一个板载3.3V调节器(请记住,ESP8266EX SOC在3.3V上工作,而不是5V)。

关于Nodemcu的另一个美好的事情是将USB的内容纳入UART控制器,在我的情况下是CP2102 IC。关于该CP2102 IC的一个有趣的事情是ESP8266 SoC的GPIO 0和RST引脚由DTR(数据终端就绪)和CP2102 IC的RTS(请求发送)引脚控制。

因此,当您尝试从Arduino IDE上传任何草图时,CP2102 IC将自动选择编程模式并重置电路板。完成编程后,它将ESP8266返回正常运行模式。美丽的。

NodeMCU的github官方页面是这里

NodeMCU ESP-12E Breakout Board布局图

如下图所示为基于ESP-12E Module的转接板NodeMCU单板布局。ESP-12E模块由边缘铸件组成,便于焊接到PCB上。

Nodemcu零件在板上
NodeMCU单板布局

图像中可以看到,NodeMCU董事会由30针两边(15),一个ESP-12E模块PCB天线,CP2102 USB UART桥控制器从硅实验室,两个按钮(一个是重置,另一个是Flash),权力和上传的微型USB连接器,3.3 v调节器,有些被动和主动组件和两个发光二极管。

是的。NodeMCU有两个板载led。第一个LED与ESP8266 SoC的GPIO 2连接,与ESP-12E模块配套。第二个LED在击穿板上(靠近CP2102 IC),并连接到GPIO 16。

Nodemcu-on-Lab-LED
在Nodemcu上的两个板载LED

注意:两个LED都是高电平的,这意味着当引脚较低时,LED亮起,引脚高,LED熄灭。

引脚

我将展示一个简短的引脚的NodeMCU ESP-12E板。在单独的教程中,我将讨论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没有安装,那么首先安装它),然后进入文件- >首选项

底部有一个名为“附加板Manager URL的部分”部分。将以下URL粘贴在此旁边的字段中。

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

如果要添加多个URL,则只需逗号即可分隔它们。

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

这使得Arduino IDE可以从互联网上寻找更多的板。所以,确保你的系统连接到互联网。现在,去工具 - >董事会 - >板经理。..选择。

使用搜索字段在顶部,搜索“ESP8266”。您将得到一个“esp8266 by esp8266 Community”的结果。选择这个并点击安装。它将下载所有的工具,图书馆,板等。

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中单击“工具”选项,则更改变了所有相关选项,并且特定于ESP8266 Nodemcu。除端口外,将所有设置留给其默认值。选择USB的适当端口为UART控制器。在Windows中,您可以从“设备管理器”获取此信息。

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

使用Blinky Sketch进行测试

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

NodeMCU上闪烁led的代码如下所示。

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

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

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

NodeMCU-LED-Blinking

结论

一个完整的初学者开始使用Nodemcu的指南。Nodemcu是ESP8266 SoC的伟大版本,因为它拥有您所需要的所有铃声和吹口哨,以便构建完整的系统。在即将到来的教程中,我将使用此Nodemcu板实施更多初学者以及高级项目。所以,保持调整。

2回复

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

留下一个回复

您的电子邮件地址不会被公开。必需字段被标记

Electronicshub图标
<\/i>","library":""}}" data-widget_type="nav-menu.default">
Baidu