NodeMCU之旅(一):构建、刷入固件,上传代码
2016-07-22 19:45
375 查看
扬帆起航
本系列文章将试图实现,使用Web页面远程点亮led。具体包括:在NodeMCU上搭建HTTP服务器,使其可以通过Web页面配置要接入的网络。
在配置页面可以显示附近中英网络名与信号强度。
使用MQTT协议与Node.js服务端的通信。
![](https://images2015.cnblogs.com/blog/414844/201607/414844-20160722193916904-2003107913.jpg)
构建固件
Building the firmware提供了三种构建你自己固件的方式。这里推荐使用简单的云构建服务NodeMCU custom builds来定制自己的固件,只需要在该网站选择你需要的库,留下邮箱,不一会就能收到编译好的固件。
我选择了这些库:cjson,crypto,file,gpio,http,mqtt,net,node,pwm,tmr,uart,wifi
刷入固件
下载nodemcu-flasher的Release版本,注意操作系统位数。连接NodeMCU到电脑,运行flasher。
在Config选项卡下,配置好自己固件的路径。
![](https://images2015.cnblogs.com/blog/414844/201607/414844-20160722193952529-187913251.png)
然后回到Operation下,点击Flash(F),稍等片刻即可。
![](https://images2015.cnblogs.com/blog/414844/201607/414844-20160722194026247-2145869732.png)
![](https://images2015.cnblogs.com/blog/414844/201607/414844-20160722194045419-1084859728.png)
上传代码
Uploading code同样提供了多种工具来上传代码与文件到NodeMCU。推荐使用ESPlorer,需要Java环境。下载ESPlorer.zip。
解压后,运行ESPlorer.jar。
在ESPlorer窗口右上部,设置端口号。
点击Open,按下NodeMCU上的RST按钮重启。如果一切正常,会有这些输出:
![](https://images2015.cnblogs.com/blog/414844/201607/414844-20160722194136701-1848054599.png)
NodeMCU会在启动后立即运行init.lua,但是现在我们还没有上传这个文件。
用你喜爱的编辑器保存下面代码为init.lua。这些代码会使NodeMCU连接到一个AP(Access Point),通过修改第四行代码来配置SSID和密码。对于开放网络,使用空文本作为密码。
-- init.lua print('Setting up WIFI...') wifi.setmode(wifi.STATION) wifi.sta.config('MY_SSID', 'MY_PASSWORD') wifi.sta.connect() tmr.alarm(1, 1000, tmr.ALARM_AUTO, function() if wifi.sta.getip() == nil then print('Waiting for IP ...') else print('IP is ' .. wifi.sta.getip()) tmr.stop(1) end end)
保存后,点击ESPlorer窗口左下区域的Upload ...来上传。如果上传失败,尝试重启NodeMCU再试。
![](https://images2015.cnblogs.com/blog/414844/201607/414844-20160722194221419-2071193537.png)
上传完毕后重启NodeMCU。如果一切正常,你将看到NodeMCU成功连入你的AP。
![](https://images2015.cnblogs.com/blog/414844/201607/414844-20160722194300107-350057556.png)
相关资源
NodeMCU文档NodeMCU custom builds
nodemcu-flasher
ESPlorer.zip
你也可以在NodeMCU-Tutorial下载到本文的相关资源和代码。
相关文章推荐
- node V4.47版本,傻瓜式安装!(终于让俺装上了)
- GDataXMLNode使用
- leetcode 24.Swap Nodes in Pairs
- leetcode 24.Swap Nodes in Pairs
- Datanode概述
- 安装node.js
- DAY9:leetcode #19 Remove Nth Node From End of List
- DataNode工作原理(四)
- NameNode元数据的管理机制(三)
- nodejs--process
- How To Work With JSON In Node.js / JavaScript
- Node.js:常用工具util
- JavaScript之firstChild属性、lastChild属性、nodeValue属性学习
- mac使用homebrew手动管理node版本
- node.js 使用createServer创建最基础的node应用。
- Node log4js
- LeetCode 237. Delete Node in a Linked List
- LeetCode 24. Swap Nodes in Pairs
- nodejs安装express遇到的坑
- Nodejs使用mailer发送邮件(未测试)