揚帆起航
本系列文章將試圖實現,使用Web頁面遠程點亮led。具體包括:
-
在NodeMCU上搭建HTTP服務器,使其可以通過Web頁面配置要接入的網絡。
-
在配置頁面可以顯示附近中英網絡名與信號強度。
-
使用MQTT協議與Node.js服務端的通信。
構建固件
Building the firmware提供了三種構建你自己固件的方式。
這里推薦使用簡單的雲構建服務NodeMCU custom builds來定制自己的固件,只需要在該網站選擇你需要的庫,留下郵箱,不一會就能收到編譯好的固件。
我選擇了這些庫:cjson,crypto,file,gpio,http,mqtt,net,node,pwm,tmr,uart,wifi
刷入固件
下載nodemcu-flasher的Release版本,注意操作系統位數。
連接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和密碼。對於開放網絡,使用空文本作為密碼。
-- 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再試。
上傳完畢后重啟NodeMCU。如果一切正常,你將看到NodeMCU成功連入你的AP。
相關資源
你也可以在NodeMCU-Tutorial下載到本文的相關資源和代碼。