NodeMCU学习系列(一)----环境搭建

NodeMCU是开源的硬件平台,适用于物联网应用的原型开发,功能验证。使用Lua作为开发语言,只需几行脚本就能实现联网等功能。

基于乐鑫esp8266的NodeMCU开发板,具有GPIO、PWM、I2C、ADC等功能,还包含了4M外部flash,TB上只卖十几软妹币,性价比很高。使用Lua脚本开发,代码很容易被读走,并且运行效率不高,所以NodeMCU主要用于实现使用Wifi联网的物联网应用原型、个人小制作等。

本系列是记录学习NodeMCU,目标是最终实现一个基于MQTT协议的物联网显示屏。开发板上的显示屏显示从手机/PC端发送的数据,并且可以采集传感器数据并传到云端及手机/PC端。

1. 环境搭建

NodeMCU开发需要的工具主要有:

  1. 串口驱动,使用串口下载代码、调试及输出log
  2. ESP8266Flasher用于下载NodeMCU基础固件
  3. ESPlorer 用于下载Lua脚本、调试及查看log,注意:需要安装Java环境7或以上
    https://esp8266.ru/esplorer/
  4. 可选,Visual Studio Code 用于编写Lua脚本,ESPlorer也可以写脚本,但是与代码神器VScode相比不是一个等级的
  5. 可选,mqttfx PC上的MQTT客户端,用于与NodeMCU通信
  6. 可选,MQTT Client Android上的MQTT客户端,用于与NodeMCU通信

2. 开发流程

NodeMCU的一般开发流程如下:

2.1 编译基础固件

固件可以在线编译也可以本地编译,由于固件不需要经常改动,所以使用在线编译。在线编译地址为https://nodemcu-build.com/,输入邮箱地址并确认。根据需要选择要加入的模块:

点击页面最下面的Start your build按钮开始编译,然后邮件会收到开始编译的邮件,过一段时间会收到编译完成的邮件。在此邮件中包含两个版本固件的bin文件,其中float表示支持浮点运算,integer表示只支持整形运算。这里选用float版本,支持浮点数比较方便,只是固件稍微大一些,对于4M flash影响不大。

2.2 基础固件下载

打开工具ESP8266Flasher,配置串口参数:

选择要下载的基础固件文件:

连接NodeMCU开发板,按一下开发板的FLASH按钮,点击下载工具的Flash(F)按钮后等待下载完成:

2.3 Lua脚本下载

下载完基础固件后,重新上电,代码将自动从init.lua文件开始运行,所以Lua脚本的入口就是init.lua文件。
连接开发板,打开ESPlorer.bat,配置波特率115200,点击open按钮:

Tip:有时候串口通信不正常,可以按开发板上的复位按钮,或者点击ESPlorer的FS Info按钮试试。

连接上开发板后就可以开发写Lua脚本了,先写init.lua,脚本语法参考Lua的教程,各个模块的功能参考链接https://nodemcu.readthedocs.io/en/master/
编写init.lua脚本后,点击Save to ESP按钮,就可以将脚本下载到flash中,复位后将运行init.lua脚本。注意脚本中不能有中文,否则无法运行。

Tip:NodeMCU上电后立马运行init.lua脚本,如果脚本中有错误就会运行出错并复位,复位后又会运行init.lua脚本,陷入死循环。解决办法是脚本开始加一段延时,留足够的时间重新下载出错脚本或者直接点击Format删除所有脚本。
示例代码:
tmr.delay(1000000)
print(“nodemcu start 0.1”)
tmr.delay(1000000)

3. 总结

从上面的介绍看得出NodeMCU开发十分简单方便,但是也正因为太简单,代码没有任何保护,而且也不是特别稳定,所以NodeMCU比较适合原型开发及个人小制作。

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值