从零开始做一个智能排插#2:开始使用NodeMCU

拿到了NodeMCU开发板,让我们来开始吧。
讲真,关于NodeMCU的优秀文章真是太多了,相比之下我这篇文章真是相形见绌,不过咱写博文也不是为了什么,主要还是总结一下自己掌握了多少。
本文主要内容为
如何使用nodemcu-flasher烧录固件
编写一个lua小灯闪烁程序并使用ESPlorer上传代码到开发板
有关SDK,Arduino IDE,虚拟机blabla的请全部抛开一边,因为我们暂时用不到,也不需要。

首先是各种链接

一、使用nodemcu-flasher烧录固件

当然,首先我们得需要一块NodeMCU开发板,这里选择了NodeMCU DEVKIT V1.0

因为开发板用的CP2102 USB转串口模块,所以我们还需要安装一个cp210x驱动(这一步在我走各种弯路的时候已经不知不觉装好了,所以各位还请自行百度下载吧)。

然后我们需要在github上下载用来烧录固件的nodemcu-flasher,点击Release下载对应的32/64位版本就行。

官方文档的Building the firmware里给出了几种构建固件的方式,这里我们使用比较方便的云构建服务

在网页里我们填上自己的邮箱,注意的是不能用QQ邮箱,用其他163之类的都可以。

然后下面的模块,我们选上我们需要的就行,具体怎么选我也不清楚,英语过关的同学可以点击旁边的查阅图标看说明文档,实在不行按默认的就好。

最后我们点击最底下的Start your buid开始云构建,很快我们就会收到一封邮件通知我们云构建已经开始了

再过几分钟又会收到第二封邮件,邮件里会有两个下载链接,这就是我们等下要烧录的固件。integer体积比较小,这里就选择integer了。

然后我们打开下好的ESP8266Flasher,在config选项卡里选中我们的固件,然后回到第一页那点flash就会开始烧录固件,这时候板子上的指示灯会不断闪烁,只要等进度条完成就行了。


二、编写一个nodemcu小灯闪烁程序并使用ESPlorer上传代码到开发板

首先我们需要下载一个esplorer,运行这个软件我们还需要JAVA环境,所以我们还需要安装一个JDK(JDK官网下载地址),具体可以看我这篇如何搭建安卓开发环境

安装完JDK之后我们直接打开ESPlorer.jar就可以了,那个ESPlorer.bat只是用命令行执行ESPlorer.jar,两个都一样。


软件左边部分是一个编辑器还有各种按键,我们暂时只需要用到最底下的那个Upload上传lua文件,然后右边是一个串口调试工具,这里我们在最上面选择我们nodemcu对应的串口(打开ESPlorer之前必须先连接nodemcu,不然无法识别,只能关掉重新打开),波特率选择115200,然后点击Open,如无意外会出现Communication with MCU..的字样,这个时候需要按下nodemcu的RST键重启一下,然后就会显示下图信息,这个时候就说明我们的nodemcu已经可以正常使用了。

第一次使用nodemcu如无意外会出现lua: cannot open init.lua的错误,这是因为我们还没有上传任何lua文件进flash里面,固件无法运行init.lua文件,自然就报错了,那么我们现在新建一个init.lua文件,并在里面写上官网的示例代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-- 闪烁LED
pin=4 -- 一个值为4的变量pin,用来表示IO引索4,对应GPIO2
lighton=0 -- 一个变量lighton,用来记录指示灯的状态
gpio.mode(pin,gpio.OUTPUT) -- 设置GPIO2为输出模式
tmr.alarm(1,1000,1,function() -- 设置定时器,定时器id为1,间隔为1000ms,模式为自动循环
if lighton==0 then -- 当指示灯状态为0
lighton=1 -- 设置指示灯状态为1
gpio.write(pin,gpio.LOW) -- GPIO2输出低电平
print("lighton=" .. lighton) -- 通过串口输出lighton状态
else
lighton=0
gpio.write(pin,gpio.HIGH)
print("lighton=" .. lighton)
end
end)

这里简单说明一下:
具体lua语法可以看这个Lua 教程
使用GPIO2是因为ESP-12E模块的指示灯是通过GPIO2控制的,具体可以在安信可官网上的模块选型表和其他文档上查看。
gpio和tmr是固件提供的两个接口,NodeMCU官方文档上有详细的使用说明。



然后我们把点击下面的Upload把写好的init.lua文件上传到flash中,很快我们就能看到succsh的提示


这时候我们按下RST重启nodemcu,正常工作的话就可以看到指示灯不断闪烁,串口工具上也会不断输出lighton状态

这就说明,我们的nodemcu已经可以正常工作了!我们终于能够开始写程序了!