NodeMCU学习(二)--NodeMCU介绍及使用(一)
作者:互联网
1.NodeMCU简介
NodeMCU 是一款开源的物联网开发平台,其固件和开发板均开源,自带 WIFI 模块。基于该平台,用几行简单的 Lua 脚本就能开发物联网应用。
其主要特点如下:
-
像 Arduino 一样操作硬件 IO 提供硬件的高级接口,可以将应用开发者从繁复的硬件配置、寄存器操作中解放出来。用交互式 Lua 脚本,像 Arduino 一样编写硬件代码!
-
用 Nodejs 类似语法写网络应用 事件驱动型 API 极大的方便了用户进行网络应用开发,使用类似 Nodejs 的方式编写网络代码,并运行于 5mm*5mm 大小的 MCU 之上,加快您的物联网开发进度。
-
超低成本的 WIFI 模块 用于快速原型的开发板,集成了售价低于 10 人民币 WIFI 芯片 ESP8266,为您提供性价比最高的物联网应用开发平台。
基于乐鑫 ESP8266 的 NodeMCU 开发板,具有 GPIO、PWM、I2C、1-Wire、ADC 等功能,结合 NodeMCU 固件为您的原型开发提供最快速的途径。
其硬件详细配置如下:
- 核心模组为 ESP8266
- MCU 为 Xtensa L106
- RAM 50K
- Flash 512K
- D1~D10:10 GPIO, 每个都能配置为 PWM, I2C, 1-wire
有两种串口配置
- CP2102 USB 串口,即插即用(官方驱动支持 Windows, OS X,Linux 以及 VMware)
- CH340 USB 串口,国内用的较多,需要安装ch340驱动。
注:VMware中,安装Ubuntu系统,只需在主机中安装驱动即可。然后将设备连接到VMware中。虚拟机->可移动设备,可以看到ch340设备,点击连接即可。
CP2102版本
CH340版本
2.开发环境
NodeMCU 目前支持的开发主机系统类型涵盖 Windows,Linux 和 Mac OS X,也支持通过 VMware 虚拟机搭建的 Linux 环境。
需要提到的是,如果用虚拟机的话,请优先用 VMware 而不是 VirtualBox。虽然用 VirtualBox 也能够通过串口虚拟化 进行 Lua 开发,但是由于 VirtualBox 无法虚拟 uhci 的 cp210x,所以 VirtualBox 中的 Linux 上就无法直接烧录固件,会很不方便。
下面是我们推荐的优选开发环境:
纯 Linux(首推 ubuntu)
在 Mac OS X 上安装 VMware,在 VMware 中运行 Linux(首推 Lubuntu)
在 Windows 上安装 VMware,在 VMware 中运行 Linux(首推 Lubuntu)
本文主要介绍上述三种,实际上核心还是 Linux 开发环境,后面两个只要额外安装 VMware 并在主机上也安装上 USB 串口驱动即可。
如果大家手头没有 Linux 环境,那么建议通过 VMware 来安装 Linux,这样更安全可靠,避免搞坏原来的系统。
VMware 可以从官方下载,安装好以后再从 Ubuntu 官方下载 Lubuntu 14.04 ISO,之后启动 VMware 来安装 Lubuntu。安装时先创建/Add 一个 Lubuntu(Create a custom virtual machine -> Linux -> Ubuntu 64bit),之后通过设置/Settings 选择 Startup Disk 从 CD/DVD 启动安装,选择刚下载的 ISO,安装成功后,再通过 Startup Disk 选回从 Hard Disk(SCSI) 启动即可。
至于纯 Windows 或者纯 Mac OS X 环境,都不推荐,因为在 Linux 下,一条命令就可以安装所需的大部分工具,而在 Windows 和 Mac OS X 会浪费掉大量的时间去不同地方找不同工具,然后再花费更多倍的时间去解决各类软件编译和安装问题,事倍功半。而且 OS X 对于基本的开发环境,往往还存在收费服务,实在是不友好,珍惜生命,远离它们!
但是如果真地厚爱它们,大家还是可以通过参考后续资料,尤其是 Noduino/Noduino SDK 相关部分,很详细地介绍到了 Windows 和 Mac OS X 的开发环境,另外,参考资料中的其他软件或者工具基本都有提供 README.md 对各自的安装做了说明,请予以参考。
3.操作步骤
以Windows 和 VMware下Ubuntu环境为例(CH340版本):
Windows环境下NodeMCU开发
需要用到的工具:
- sciTe –lua开发环境,用于lua学习。具体参考:http://www.runoob.com/lua/lua-environment.html
注:在安装过程中,如果连接服务器失败。可以自行下载所需的库,然后重新进行安装。 - CH340驱动
- ESP8266Flasher – 烧录ESP固件
- ESPlorer – 类似于串口调试助手,用于和NodeMCU进行交互,也可以上传lua脚本
注:需要java环境,需要安装JDK。 - Fans_ESP8266_SDK_Make.exe – 编译ESP固件 具体参考:http://blog.csdn.net/u013636122/article/details/50630235
(1)安装CH340驱动
下载CH340驱动,安装之后。
右击 我的电脑->管理->设备管理器->端口(COM和LPT) 可以看到ch340驱动以及串口号。
(2)获取固件
有三种方式可以得到固件:
-
NodeMCU提供了在线云编译,选择好需要的模块,填写邮箱地址,很快会发到邮箱中。参考:https://nodemcu-build.com/(推荐)
-
下载别人编译好的固件包。
-
自行编译,得到固件包。
(3)固件烧录
设置好串口号
点击Config->点击小齿轮按钮,设置好得到的固件路径
点击Flash
(4)开始使用
-
打开ESPlorer.jar,会看到如下界面:
注:ESPlorer需要安装JDK环境 -
点击刷新按钮,选择串口号,点击open,会显示正在连接。如果好长时间连接不上,可以按一下NodeMCU上的reset按钮。会显示出固件信息,点击Chip ID,会返回ID信息,说明交互正常。
-
右边区域是交互页面,会显示交互信息
左下有一行输入框,可以输入需要执行的命令,也可以在下拉菜单中选择,点击send发送。
命令参考:
https://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_cn
如:>print(“Hello,NodeMCU”) >Hello,NodeMCU
- 1
- 2
4. 左边区域是lua脚本编写区域。
编写好lua脚本,点击Send to ESP,可以看到右边区域开始上传代码,结束之后。代码开始执行,右边区域显示交互信息。
点击 Upload ,将代码上传到NodeMCU, 命令行输入dofile(“filename.lua”),开始执行filename.lua。
注:如果在Send 或者 Upload 失败,可以按reset之后,多次尝试。
注:Save to ESP、Send to ESP、Run、Upload四种有些区别,可以自己去发现,本人没有深究。
Vmare下Ubuntu环境开发
注: 本人使用的版本
- VMware workstations 12 pro
- Ubuntu 14.0 Desktop
需要用到的工具:
- minicom – 串口调试工具
- luatool – 上传lua代码
- esptool – 烧录esp固件
- lua开发环境,用于lua学习(非必须) 注:学习教程:http://www.runoob.com/lua/lua-environment.html
(1)下载安装ch340驱动
需要主机安装驱动,然后VMware中点击 虚拟机->可移动设备 可以看到ch340设备,点击连接。
dmesg 命令查看已经安装的ch340驱动
ls -l /dev/ttyUSB0 查看驱动安装的时间等
- 1
- 2
(2)安装minicom
minicom为linux下串口通信工具,用做NodeMcu调试
$ sudo apt-get install minicom -- 下载安装minicom
$ sudo minicom -D /dev/ttyUSB0 -- 使用-D可以指定串口设备
- 1
- 2
进入minicom之后,可以通过crtl-A进入设置模式,然后按 A - Z 键进入不同的设置界面。
常用的按键:
Q :退出minicom
L :保存串口日志
Z :获得帮助
P :设置串口
(3) 下载并烧录esp固件
NodeMCU提供了在线云编译,选择好需要的模块,填写邮箱,很快会发到邮箱中,链接:https://nodemcu-build.com/
也可以自己进行编译,在https://github.com/nodemcu/nodemcu-firmware/releases/下载源代码。
也可以使用
$ wget -c https://github.com/nodemcu/nodemcu-firmware/``releases/download/0.9.6-dev_20150704/nodemcu_float_0.9.6-dev_20150704.bin
- 1
下载别人编译好的固件
接着咱们把烧录工具 esptool.py 下载下来。同时安装其他必要工具。
$ sudo apt-get install git python python-serial python-setuptools
$ git clone https://github.com/themadinventor/esptool.git
$ cd esptool
$ python setup.py install
- 1
- 2
- 3
- 4
接着通过 esptool.py 烧录固件:
$ sudo esptool.py --port /dev/ttyUSB0 write_flash -fm dio -fs 32m -ff 40m 0x00000 nodemcu_float_0.9.6-dev_20150704.bin
- 1
烧录完以后按下 RST 重启进入新固件。
sptool.py 烧写时默认的通信波特率为 115200,为了加速烧写速度,可以通过 –baud 921600 设置为 921600。
开机之后可以通过
file.format() 格式化文件系统
(4) 下载并安装luatool
测试过两个工具都可以用来上传 Lua 程序,分别是:
luatool.py:可用于命令行传送 Lua 脚本,无须复杂的图形化工具支持,同时支持通过串口和 Telnet 上传
nodemcu.py:除了不支持通过 Telnet 上传外,基本功能同 luatool,只是操作方式稍有差异
下载上述工具:
$ git clone https://github.com/4refr0nt/luatool.git
$ git clone https://github.com/md5crypt/nodemcu.py.git
- 1
- 2
两个都可以进行文件传输,第二个还可以作为串口终端,两个都依赖 pySerial,第二个还需要安装 clipboard:
$ easy_install clipboard
- 1
(5)开始使用
$ minicom -D /dev/ttyUSB0 --进入串口助手
file.format() --格式化文件系统
print(“Hello,NodeMCU”) --打印字符串
gpio.mode(0, gpio.OUTPUT) --设置0脚为输出模式
gpio.write(0, gpio.LOW) --0脚置低
gpio.write(0, gpio.HIGH) --0脚置高
node.restart() --重启NodeMCU
- 1
- 2
- 3
- 4
- 5
- 6
- 7
以上是通过串口操作执行每条命令,可以通过luatool批量上传,将脚本提前写好进行批量上传。
在上传前,写好一个lua脚本
$ vi test.lua
print('Hello, NodeMCU 1.0')
gpio.mode(4, gpio.OUTPUT)
gpio.write(4, gpio.LOW)
- 1
- 2
- 3
- 4
通过luatool上传
$ cd /luatool
$ sudo ./luatool.py -p /dev/ttyUSB0 -b 9600 -f test.lua -r
- 1
- 2
上传完成之后,
$sudo minicom -D /dev/ttyUSB0 --进入minicom
dofile("test.lua") --执行test脚本
- 1
- 2
-p 指定上传设备
-b 设置波特率
-f 指定脚本路径
-r 上传完重启
-h 获得帮助
标签:--,学习,lua,NodeMCU,串口,固件,安装,VMware 来源: https://blog.csdn.net/zwb_578209160/article/details/113122094