点亮LED: 如何用Arduino IDE给NodeMCU编程
NodeMCU的由来
在「ESP8266和物联网神器NodeMCU」中我们谈到过在ESP8266出现之前,让Arduino连上网的成本很高,特别是通过WiFi上网,买一块官方的Wi-Fi扩展板的价格都够你买3块官方Arduino UNO了。
但自从乐鑫推出了ESP8266EX芯片以后,开源硬件的人士发现它的巨大潜能:“我靠,这块芯片成本只要10元不到就可以给Arduino提供WiFi上网的功能!”,后来ESP8266模块就成了现在Arduino WiFi模块的代名词。
后来,人们又发现,ESP8266EX这块芯片里面自带了一个32位的处理芯片Tensilica L106,性能还不烂,处理WiFi只占用了20%的性能,剩下的潜能完全可以再开发啊。于是就有人把ESP8266EX芯片加上了外围电路做成了相对独立和完整的开发板。这些最小化系统通常包含了USB串口通讯,电源管理模块,还有丰富的引脚接口。其中,NodeMCU是这些开发板中最稳定的开发板之一。
NodeMCU的硬件版本
NodeMCU市面上有2种硬件版本--LoLin和Amica。相对于Amica, LoLin体积更大一点,而且使用串口芯片是CH340,而不是CP2102。但除此之外,二者并无太大的差异。使用CH340的Lolin在使用前需要装特定的驱动,而CP2102一般情况下即插即用,Windows/Mac系统会自动识别下载驱动。
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!针脚齐全,体积还小。
实践:点亮LED
介绍完了背景,我们就来亲自实践一下,经典的点亮LED实验。
1. 安装驱动
首先,要根据你的NodeMCU的版本(Amica还是Lolin)来判断你要不要安装串口驱动,大一号的Lolin肯定是要安装CH340驱动的。可以到下面的网站根据自己的系统下载对应的驱动程序:
http://www.wch.cn/download/CH341SER_EXE.html
如果安装成功,NodeMCU插到电脑USB上后,可以现在设备管理器端口栏里看见带有CH340字样的串口。
苹果系统的用户,同样,你可以在命令行工具里输入下面的命令查看串口
ls /dev/tty*
如果出现“tty.wchusbserialxxxx”字样说明驱动就安装成功了。
如果你是Amica版本的NodeMCU,正常情况下,插上USB,系统会自动识别无需安装驱动。但有些情况下,也可能无法自动识别。同样你可以在设备管理器端口里查看是否出现CP201x字样。
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
重启IDE,打开 工具->开发板->开发板管理器
稍等一会儿,然后拉到最下面,安装 esp8266 by ESP8266 Community
安装成功后,重启IDE, 工具>开发板菜单就会发现Arudino Core For ESP8266所能支持的板子了,包括NodeMCU。
注意:很多人在安装过程中会遇到“文件下载失败”的错误。
很大的可能是,你所在的网络无法访问资源网站,一个办法是使用VPN翻墙再试一下,或者参考以下网址的方法把所有安装文件离线下载下来:
http://file.yfrobot.com/file/wifi/nodemcu/arduino/arduinoIDEForTheESP8266.html
3. 选择正确的板
工具>板>选择预设的NodeMCU 1.0
确保NodeMCU连接着电脑的USB口,然后在工具>端口中选择正确的串口。
4. 连接电路
如图连接好电路板。
NodeMCU的LED_BUILTIN是GPIO16/D0
上传代码
之前我们说过,只要安装了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在闪烁了。
--end--
声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com