NodeMCU之旅:构建、刷入固件,上传代码

资源分享评论7,662

本系列文章将试图实现,使用Web页面远程点亮led。具体包括:

  • 在NodeMCU上搭建HTTP服务器,使其可以通过Web页面配置要接入的网络。
  • 在配置页面可以显示附近中英网络名与信号强度。
  • 使用MQTT协议与Node.js服务端的通信。

文章源自HAM小站-https://bh8sel.com/1955.html

构建固件

Building the firmware提供了三种构建你自己固件的方式。文章源自HAM小站-https://bh8sel.com/1955.html

这里推荐使用简单的云构建服务NodeMCU custom builds来定制自己的固件,只需要在该网站选择你需要的库,留下邮箱,不一会就能收到编译好的固件。文章源自HAM小站-https://bh8sel.com/1955.html

文章源自HAM小站-https://bh8sel.com/1955.html

文章源自HAM小站-https://bh8sel.com/1955.html

ADC:可通过API中ADC模块读取接口电压值文章源自HAM小站-https://bh8sel.com/1955.html

file:提供文件操作API文章源自HAM小站-https://bh8sel.com/1955.html

PWM:可在pin口1~12输出PWM波文章源自HAM小站-https://bh8sel.com/1955.html

TSL2561:光强传感器读取文章源自HAM小站-https://bh8sel.com/1955.html

bit:对lua中代码进行位操作文章源自HAM小站-https://bh8sel.com/1955.html

GPIO:对IO口读写操作

RC:无文档

U8G:用作屏幕显示的API函数库

BMP085:气压传感器读取

HX711:24位 AD转换芯片的读取

RTX fifo:实现传感器数据的先入先出的储存操作

UART:串口通讯操作

CJSON:提供cjson库操作

I2C:I2C通信操作

RTC mem:实时时钟的访问操作

UCG:TFT显示屏图形开发库

CoAP:提供CoAP实现

MQTT:提供MQTT协议实现

RTC time:计时、睡眠控制

WIFI:提供wifi的AP和station模式操作

crypto:提供加密算法支持

net:网络操作(加入、发生、接受等)

SNTP:网络时间网络协议提供

WS2801:恒流驱动IC控制

DHT:温湿度传感器读取

node:内部芯片操作

SPI:支持SPI

WS2812:同WS2801,只是实现效果不同

end user setup:提供wifi认证的无线修改

1-Wire:1-Wire通信协议支持

timer:延迟、定时等操作

我选择了这些库:cjson,crypto,file,gpio,http,mqtt,net,node,pwm,tmr,uart,wifi

刷入固件

下载nodemcu-flasherRelease版本,注意操作系统位数。

连接NodeMCU到电脑,运行flasher

Config选项卡下,配置好自己固件的路径。

然后回到Operation下,点击Flash(F),稍等片刻即可。

上传代码

Uploading code同样提供了多种工具来上传代码与文件到NodeMCU。

推荐使用ESPlorer,需要Java环境。下载ESPlorer.zip

解压后,运行ESPlorer.jar

在ESPlorer窗口右上部,设置端口号。

点击Open,按下NodeMCU上的RST按钮重启。如果一切正常,会有这些输出:

NodeMCU会在启动后立即运行init.lua,但是现在我们还没有上传这个文件。

用你喜爱的编辑器保存下面代码为init.lua。这些代码会使NodeMCU连接到一个AP(Access Point),通过修改第四行代码来配置SSID和密码。对于开放网络,使用空文本作为密码。

  1. -- init.lua
  2. print('Setting up WIFI...')
  3. wifi.setmode(wifi.STATION)
  4. wifi.sta.config('MY_SSID', 'MY_PASSWORD')
  5. wifi.sta.connect()
  6. tmr.alarm(1, 1000, tmr.ALARM_AUTO, function()
  7.     if wifi.sta.getip() == nil then
  8.         print('Waiting for IP ...')
  9.     else
  10.         print('IP is ' .. wifi.sta.getip())
  11.     tmr.stop(1)
  12.     end
  13. end)

保存后,点击ESPlorer窗口左下区域的Upload ...来上传。如果上传失败,尝试重启NodeMCU再试。

上传完毕后重启NodeMCU。如果一切正常,你将看到NodeMCU成功连入你的AP。

相关资源

NodeMCU文档

NodeMCU custom builds

nodemcu-flasher

ESPlorer.zip

你也可以在NodeMCU-Tutorial下载到本文的相关资源和代码。

 最后更新:2020-8-31
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证