在本教程中,我们将学习NodeMCU, ESP-12E模块,NodeMCU板的布局,一个简单的引脚,以及如何使用Arduino IDE编程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的普通版本。
事实上,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。
如果你还记得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板由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。
注意:两个led都是active LOW,这意味着,当引脚是LOW时,led是ON,当引脚是HIGH时,led是OFF。
引出线
我将展示一个简单的NodeMCU ESP-12E Breakout板的引脚。在单独的教程中,我将讨论NodeMCU板的完整引脚,ESP-12E模块,引脚描述和其他重要功能。
下图是NodeMCU板的引脚图。
如何使用Arduino IDE编程NodeMCU ?
在使用Arduino IDE上传Blinky Sketch之前,NodeMCU入门还没有完成。因此,让我们继续配置Arduino IDE。如果您使用的是ESP-01模块或其他基于ESP8266的板,那么您可能在Arduino IDE中完成了初始设置。
准备Arduino IDE
尽管如此,让我再解释一遍步骤。打开Arduino IDE(如果没有安装Arduino IDE,那么,先安装它),然后转到文件- >首选项.
在底部有一个叫做“附加板管理器url:”的部分。在此旁边的字段中粘贴以下URL。
如果您想添加多个url,那么只需用逗号分隔它们。
这使得Arduino IDE能够从互联网上寻找额外的电路板。所以,确保你的系统连接到互联网。现在,去工具-> Board -> Boards Manager…选择。
使用顶部的搜索字段,搜索"esp8266”。您将得到一个结果为“esp8266 by esp8266 Community”。选择它并单击install。它将下载所有的工具,库,板等。
在安装ESP8266单板之后,可以开始为新的NodeMCU单板编写代码。首先,将micro-USB连接线连接到NodeMCU上,将另一端插入到计算机上。
现在,再一次转到工具—>单板—> ESP8266单板在Arduino IDE中选择“NodeMCU 1.0 ESP-12E模块”。
如果您在IDE中单击Tools选项,所有与板相关的选项都将更改,并且是特定于ESP8266 NodeMCU的。保留除Port之外的所有设置为默认值。为USB到UART控制器选择合适的端口。在Windows中,你可以从“设备管理器”中获得这些信息。
使用Blinky Sketch进行测试
正如我前面提到的,NodeMCU有两个板上led分别连接到GPIO 2和GPIO 16。因此,在这个示例中,我将交替闪烁两个led。
NodeMCU上闪烁led的代码如下。
单击Upload按钮后,Arduino IDE将调用一些ESP8266相关工具来编译代码并生成二进制文件。
以下是输出的短视频片段。
结论
一个完整的初学者指南开始使用NodeMCU。NodeMCU是ESP8266 SoC的一个很好的版本,因为它具有构建一个完整系统所需的所有功能。在接下来的教程中,我将使用这个NodeMCU板实现更多的初级和高级项目。所以,请继续关注。
3反应
J 'ai vraiaiment adoré ce didacticiel grand merci étant donné que je débute avec IOT
你好,谢谢你的详细解释,很容易理解。除了设置端口的最后一步之外,所有工作都按照您的解释进行。端口是灰色的,所以我可以将它设置为正确的值。有什么改正的建议吗?谢谢
可能有点晚了。但你把电路板和你的笔记本电脑连接了吗?