目录
一、前言
二、知己知彼,百战不殆
三、装驱动、配环境和跑例程
1.驱动
2.配环境
3.跑例程
例子一:串口通信
例子二:控制LED闪烁
因为自己参加的一个比赛需要与硬件结合呀,虽然在大二时期学习了单片机,但是学习太过理论化了。没有去做一点软硬结合的项目,真的很后悔。所以现在在网上查找一些资料,决定选用NodeMcu板子,原因如下:
在比赛中要用到NodeMcu,所以先了解一下相关信息。
NodeMCU,是一个开源的物联网平台。 它使用Lua脚本语言编程。该平台基于eLua 开源项目,底层使用ESP8266 sdk 0.9.5版本。该平台使用了很多开源项目, 例如 lua-cjson, spiffs. NodeMCU包含了可以运行在 esp8266 Wi-Fi SoC芯片之上的固件,以及基于ESP-12模组的硬件。总结来说,nodemcu本质就是ESP8266+USB转串口芯片,ESP8266是一块可编程的WIFI芯片。
据了解 ,NodeMcu可分为v2版本和v3版本,v2版本的价格比v3版本稍贵一点,并且v2尺寸稍微小一点,具体差别可查阅其他资料,我根据自己的需要买了v2版。如果你是第1次玩硬件的话,记得买一根数据线 。
板子大概长这样:
第1步需要做的就是下载相应的驱动 。比较简单的方法就是先在电脑下载一个驱动精灵类似的驱动软件 ,然后使用数据线将板子连接到电脑上 ,接着使用驱动精灵自动检测并安装所需要的驱动,然后进入设备管理器,查看是否安装完成,安装成功的话,结果类似如下所示:
刚刚已经说到要在Arduino开发NodeMcu,那么首先要下载Arduino,官网arduino下载,或者推荐在这个地址 搜索下载各式各样软件。安装后打开,界面如下:
依次点击文件|首选项, 然后跳转到如下界面,将下面的附加开发版管理器网址设置为http://arduino.esp8266.com/stable/package_esp8266com_index.json:
随后点击按钮“好”即可。再接着点击工具|开发板|开发板管理器,跳转到如下界面:
然后找到如上所示的包, 再点击安装即可,因为我已安装,所以它显示已安装, 如果找不到这个开发包,那就试着检查一下地址有没有弄错,或者 重启Arduino并重新按照上面的步骤添加附加开发版 管理器地址。
在下载过程中,如果非常缓慢的话,可以将我提供的这个包替换你的对应路径里面的Arduino15文件,如下所示,Karry是对应我自己的用户名,在替换的时候记得对应的找到你自己的路径。
替换成功后,不出意料的话, 你就可以在开发版中选择NodeMcu了,如下所示:
在经过第2步后,我们已经选好了NodeMcu, 所以我们可以来运行一些例子吧,刚开始先让自己看到运行的结果,后期再慢慢把代码消化,这样可能会更有兴趣和信心~tips: 以下代码都来自这位优秀的大佬的博客https://www.scaugreen.cn/
主要功能是定时在串口打印信息。
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
delay(10);
Serial.println();
Serial.println();
Serial.print("Connecting to ");
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println("WiFi connected");
delay(1000);
}
Arduino的相关功能区如下, 下面将对其一一介绍:
验证: 类似于c语言中的编译;
上传: 类似于c语言中的编译+运行;
后面三个功能按钮就比较容易理解了,就不讲了。
把以上代码直接复制到Ardunio中,点击验证,如果如下图所示,则成功上传到硬件:
按照如下操作即可看到打印的信息:
注意串口中设置的波特率要与代码中的波特率是一样的,不然的话接收的信息就会乱码,如下所示代码中设置的波特率是115200,如果我们将串口里的波特率改为9600,就会出现乱码的情况。
//如果是nodemcu V3版,需要另外定义LED引脚
//#define LED_BUILTIN 2
void setup() {
pinMode(LED_BUILTIN, OUTPUT); // Initialize the LED_BUILTIN pin as an output
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, LOW); // Turn the LED on (Note that LOW is the voltage level
// but actually the LED is on; this is because
// it is active low on the ESP-01)
delay(1000); // Wait for a second
digitalWrite(LED_BUILTIN, HIGH); // Turn the LED off by making the voltage HIGH
delay(2000); // Wait for two seconds (to demonstrate the active low LED)
}
 类似地进行上传,在100%上传完成之后,板子上的灯便会定时闪烁如下所示: