nodeMCU搗鼓筆記(從韌體刷入到wifi掃描)
本文作者:loid
這個小東西是安卓老師送我的,然後就一直在搗鼓這個玩意兒。挺好玩的,這搗鼓的過程也學到了很多東西。
網上資料也算比較多,只是遇到很多問題,也搗鼓了很久。
首先你要有一個nodeMCU, 他是長這樣的,並且我的是ESP8266
到手之後,首先是找文件瞅瞅
ofollow,noindex">官方文件
可以看到快速開始的三個步驟
step1. 構建韌體(選擇你自己喜歡的模組構建)
step2. 刷入韌體
step3. 上傳程式碼到裝置
通過線上雲構建韌體cloud build service
輸入要接收韌體的郵箱(兩次確認, 這裡好像並不能用@qq.com,我用的是@ http://163.com)
選擇需要的模組(因為需要,這裡我就只新勾選了一個mqtt模組), 然後就點選最下面的start your build
等會兒就可以收到email(一共兩條email,其中一條是韌體下載地址)
準備刷入韌體的工具
官方這裡推薦了幾個工具,一個是esptool.py, 另一個是NodeMCU PyFlasher等
這裡我推薦用後者,後者圖形化也簡單些 (
https://github.com/marcelstoer/nodemcuyflasher )
韌體刷入
根據需要選擇. 串列埠,韌體位置,波特率,Flash mode(點選那個小紅點會有提示,根據自己的硬體選擇,我這裡的是esp8266),是否擦除資料
ps: 用type-c轉usb的轉換器的同學,請換個介面,我寫這篇文章的時候,一直刷入失敗!!!刷了一個下午….我tm…
使用ESPlorer連線nodeMCU並進行指令碼編寫/上傳/執行
我這使用官方的ESPlorer連線時會有問題(點連線後,傳送一個訊息才能看到連線成功的回顯), 找了一箇中文版的可以正常連線
準備工作結束
----------------------------------------------------------------------------- 一個華麗的分割線 -------------------------------------------------------------------
編寫並上傳指令碼
整體思路
1、作為HTTP Server
2、建立AP,可以被其他裝置連線
3、其他裝置通過IP訪問Web介面進行Wi-Fi掃描/連線管理
專案程式碼 自行找合適的程式碼
這裡需要
httpServer.lua,table_to_string.lua,start_http.lua,wifi_set_ap.lua,index.html
Wi-Fi AP的名字和密碼可以修改wifi_set_ap.lua
下載httpServer庫,編寫web介面( httpServer方法 )
呼叫的時候,可以先dofile(filename)匯入庫,然後呼叫函式
其他指令碼/檔案上傳如上一步操作
測試是否可用
傳送單行命令依次執行wifi_set_ap.lua與start_http.lua分別建立熱點和建立web服務
dofile('wifi_set_ap.lua')與dofile('start_http.lua')
手機連線名為nodemcu的Wi-Fi,密碼為12345678(這是預設的,修改過wifi_set_ap.lua的不一樣)
手機瀏覽器訪問192.168.4.1可以看到web介面
掃描wifi和連線wifi
ps: 這裡我驗證Wi-Fi是否連線成功是等待10秒檢視是否獲取到ip,
如果你有更好的方法驗證,可以自己修改下start_http.lua
開機自動部署
如果你喜歡開機就自己設定AP和開啟Web服務, 可以寫一個init.lua,
裡面加上開機執行的程式碼比如
dofile('wifi_set_ap.lua') dofile('start_http.lua'