前言:
- 感謝太極創客推薦所有要入門NodeMCU的朋友看他們的教程!
- 使用的闆子是NodeMCU
- 參考資料:太極創客 以及ESP8266-Arduino 文檔
引腳
- 數字引腳:輸出0-3.3V、輸入不得高于3.3V(與arduino通訊時要用電平轉換子產品)
- 模拟引腳:輸入0-1V
- 硬體序列槽:TX/RX(要少用、因為下載下傳程式時使用這兩)、U1TXD/U1RXD
- GPIO6-11用于内部開發,一般不使用
協定
TCP/IP
- 由應用層(HTTP、FTP等)、傳輸層(TCP、UDP)、網絡層(IP)、網絡接口層(Ethernet、WI-FI)等的多種協定組成
- WI-FI的連接配接模式:Access Point(兩裝置連接配接)、Wireless Station(多裝置通過終端連接配接)、混合模式
- IP位址:裝置的位址,用于準确的接受發送資訊。IPv4協定:由4組用小數點隔開的數組成。IPv6協定:由8組數字字母混合字元串組成。預設網關:區域網路終端(路由器)的IP位址,與連到www(World Wide Web)的伺服器配置設定到位址不同。
- TCP協定,可以保證資訊被接收(1.資料順序不亂 2.出現損壞就重發)。UDP特點是快,但不保證所有資料被接收(1.資料損壞就丢棄 2.不會重新發送)。
- HTTP:請求(傳通路請求給索要通路的伺服器)-響應(伺服器傳回給裝置)
- 請求
GET / HTTP/1.1 //操作指令/協定形式/版本 Host: www.XX.com
- 響應
HTTP/1.1 200 OK //協定形式/版本 狀态碼 Content-Type: text/html; charset=UTF-8
- 請求
- DNS伺服器:當裝置發出HTTP請求時,裝置隻知道www.XX.com不知道伺服器IP位址,這時裝置先傳到DNS伺服器上,DNS伺服器會傳回www.XX.com伺服器對應的IP位址給裝置。
函數
ESP8266WiFi.h庫
- 作為wifi發起者
-
// WiFi.softAP用于啟動NodeMCU的AP模式。ssid與password需是位址WiFi.softAP(ssid, password);
-
// 通過調用WiFi.softAPIP()可以得到NodeMCU的IP位址Serial.println(WiFi.softAPIP());
- 例程:NodeMCU開發闆的接入點模式
-
- 作為接入方
-
// 啟動網絡連接配接WiFi.begin(ssid, password);
-
如果WiFi連接配接成功則傳回值為WL_CONNECTEDWiFi.status()
-
// 該函數的傳回值即NodeMCU的IP位址。Serial.println(WiFi.localIP());
- 例程:NodeMCU開發闆的無線終端模式
-
ESP8266WiFiMulti.h庫
-
建立結構體ESP8266WiFiMulti XX
-
添加可選wifiXX.addAP(“ ”)
-
開始搜尋最強的并連接配接,傳回值就是左邊那個while (wifiMulti.run() != WL_CONNECTED)
ESPWebServer.h庫
-
建結構體,參數為端口選擇,80是網絡監聽端口,25是郵件發送端口…ESP8266WebServer XX(80)
-
開始建構XX.begin()
-
當用某種方式(GET、POST…可省略)通路某個頁面時,程式執行跳轉到子程式中。相當于一個判斷語句XX.on("網頁相對位址",“方式”,子程式)
-
,未找到頁面時執行子程式XX.onNotFound(子程式)
閃存-FS.h庫
- ESP8266中的RAM劃分了Sketch、OTA update、File system、EEPROM、WiFi config (SDK)等存儲空間,庫<FS.h>是對File system進行操作。
- 主要的指令
- 格式化
SPIFFS.format()
- 開始
、結束SPIFFS.begin()
如圖C或python的檔案書寫一樣,将它打開後也需要關閉。SPIFFS.end()
-
可以寫、讀、追加檔案SPIFFS.open(path, mode)
//定義一個檔案類型f File f = SPIFFS.open("/f.txt", "w"); if (!f) { Serial.println("file open failed");}
- 格式化