点亮LED: 如何用Arduino IDE给NodeMCU编程

网友投稿 2018-11-19 11:31

NodeMCU的由来 

在「ESP8266和物联网神器NodeMCU」中我们谈到过在ESP8266出现之前,让Arduino连上网的成本很高,特别是通过WiFi上网,买一块官方的Wi-Fi扩展板的价格都够你买3块官方Arduino UNO了。

https://cdn.china-scratch.com/timg/181121/11310Jb4-0.jpg

但自从乐鑫推出了ESP8266EX芯片以后,开源硬件的人士发现它的巨大潜能:“我靠,这块芯片成本只要10元不到就可以给Arduino提供WiFi上网的功能!”,后来ESP8266模块就成了现在Arduino WiFi模块的代名词。

https://cdn.china-scratch.com/timg/181121/11310Va1-1.jpg

后来,人们又发现,ESP8266EX这块芯片里面自带了一个32位的处理芯片Tensilica L106,性能还不烂,处理WiFi只占用了20%的性能,剩下的潜能完全可以再开发啊。于是就有人把ESP8266EX芯片加上了外围电路做成了相对独立和完整的开发板。这些最小化系统通常包含了USB串口通讯,电源管理模块,还有丰富的引脚接口。其中,NodeMCU是这些开发板中最稳定的开发板之一。

https://cdn.china-scratch.com/timg/181121/11310R105-2.jpg

 NodeMCU的硬件版本 

NodeMCU市面上有2种硬件版本--LoLin和Amica。相对于Amica, LoLin体积更大一点,而且使用串口芯片是CH340,而不是CP2102。但除此之外,二者并无太大的差异。使用CH340的Lolin在使用前需要装特定的驱动,而CP2102一般情况下即插即用,Windows/Mac系统会自动识别下载驱动。

https://cdn.china-scratch.com/timg/181121/11310Q161-3.jpg

 ESP8266 core for Arduino 

NodeMCU原生编程语言并不是汇编,也不是Arduino的C++,而是一种叫Lua的脚本语言。可以说用的人还是相对比较小众的,但自从ESP8266 core for Arduino这个库出现以后,迅速让ESP8266/NodeMCU在Arduino社区里火爆起来。ESP8266 core for Arduino是什么呢?简而言之,有了它,你就可以用Arduino的方式(IDE编程环境,Arduino语言,库)给NodeMCU编程。可以不太科学地说,NodeMCU就是一块自带WiFi功能的Arduino!针脚齐全,体积还小。

https://cdn.china-scratch.com/timg/181121/1131092630-4.jpg

 实践:点亮LED 

介绍完了背景,我们就来亲自实践一下,经典的点亮LED实验。

1. 安装驱动

首先,要根据你的NodeMCU的版本(Amica还是Lolin)来判断你要不要安装串口驱动,大一号的Lolin肯定是要安装CH340驱动的。可以到下面的网站根据自己的系统下载对应的驱动程序:

http://www.wch.cn/download/CH341SER_EXE.html

如果安装成功,NodeMCU插到电脑USB上后,可以现在设备管理器端口栏里看见带有CH340字样的串口。

https://cdn.china-scratch.com/timg/181121/1131091338-5.jpg

苹果系统的用户,同样,你可以在命令行工具里输入下面的命令查看串口

ls /dev/tty*

如果出现“tty.wchusbserialxxxx”字样说明驱动就安装成功了。

https://cdn.china-scratch.com/timg/181121/1131092316-6.jpg

如果你是Amica版本的NodeMCU,正常情况下,插上USB,系统会自动识别无需安装驱动。但有些情况下,也可能无法自动识别。同样你可以在设备管理器端口里查看是否出现CP201x字样。

https://cdn.china-scratch.com/timg/181121/1131095454-7.jpg

Mac用户查看是否有“tty.SLAB_USBtoUART”字样。如果没有,到以下网址选择安装对应系统的驱动程序:

https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers

如果安装后还无法识别,那可能你买的板可能是坏了。

2. 安装ESP8266 core for Arduino

第二步,ESP8266 core for Arduino并不是Arduino IDE自带的库,我们需要手动安装。打开Arduino IDE 从菜单>文件>首选项。

在附加开发板管理器URL字段填入: http://arduino.esp8266.com/stable/package_esp8266com_index.json

https://cdn.china-scratch.com/timg/181121/1131104627-8.jpg

重启IDE,打开 工具->开发板->开发板管理器

稍等一会儿,然后拉到最下面,安装 esp8266 by ESP8266 Community

https://cdn.china-scratch.com/timg/181121/1131102H0-9.jpg

安装成功后,重启IDE, 工具>开发板菜单就会发现Arudino Core For ESP8266所能支持的板子了,包括NodeMCU。

https://cdn.china-scratch.com/Public/Home/images/grey.gif

注意:很多人在安装过程中会遇到“文件下载失败”的错误。

https://cdn.china-scratch.com/timg/181121/1131105S1-11.jpg

很大的可能是,你所在的网络无法访问资源网站,一个办法是使用VPN翻墙再试一下,或者参考以下网址的方法把所有安装文件离线下载下来:

http://file.yfrobot.com/file/wifi/nodemcu/arduino/arduinoIDEForTheESP8266.html

3. 选择正确的板

工具>板>选择预设的NodeMCU 1.0 

确保NodeMCU连接着电脑的USB口,然后在工具>端口中选择正确的串口。

https://cdn.china-scratch.com/Public/Home/images/grey.gif

4. 连接电路

如图连接好电路板。

https://cdn.china-scratch.com/timg/181121/1131105224-13.jpg

NodeMCU的LED_BUILTIN是GPIO16/D0

https://cdn.china-scratch.com/timg/181121/1131113L7-14.jpg

 上传代码 

之前我们说过,只要安装了ESP8266 core for Arduino,Arduino的已有大部分代码实例和库都可以直接使用。我们打开Blink示例代码。

// the setup function runs once when you press reset or power the board

void setup() {

  // initialize digital pin LED_BUILTIN as an output.

  pinMode(LED_BUILTIN, OUTPUT);

}

// the loop function runs over and over again forever

void loop() {

  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)

  delay(1000);                       // wait for a second

  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW

  delay(1000);                       // wait for a second

}

跟普通的Arduino操作一样,点击上传就行了。当然NodeMCU代码编译和上传的过程要比普通的Arduino时间花的久一点。

如果运行成功,我们就可以看见LED在闪烁了。

https://cdn.china-scratch.com/timg/181121/1131111509-15.jpg

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com