天天看點

Arduino初學者-NodeMCU前言:引腳

前言:

  • 感謝太極創客推薦所有要入門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:請求(傳通路請求給索要通路的伺服器)-響應(伺服器傳回給裝置)
    1. 請求
      GET / HTTP/1.1  //操作指令/協定形式/版本
      Host: www.XX.com 
                 
    2. 響應
      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發起者
    1. WiFi.softAP(ssid, password);

      // WiFi.softAP用于啟動NodeMCU的AP模式。ssid與password需是位址
    2. Serial.println(WiFi.softAPIP());

      // 通過調用WiFi.softAPIP()可以得到NodeMCU的IP位址
    3. 例程:NodeMCU開發闆的接入點模式
  • 作為接入方
    1. WiFi.begin(ssid, password);

      // 啟動網絡連接配接
    2. WiFi.status()

      如果WiFi連接配接成功則傳回值為WL_CONNECTED
    3. Serial.println(WiFi.localIP());

      // 該函數的傳回值即NodeMCU的IP位址。
    4. 例程:NodeMCU開發闆的無線終端模式

ESP8266WiFiMulti.h庫

  • ESP8266WiFiMulti XX

    建立結構體
  • XX.addAP(“ ”)

    添加可選wifi
  • while (wifiMulti.run() != WL_CONNECTED)

    開始搜尋最強的并連接配接,傳回值就是左邊那個

ESPWebServer.h庫

  • ESP8266WebServer XX(80)

    建結構體,參數為端口選擇,80是網絡監聽端口,25是郵件發送端口…
  • XX.begin()

    開始建構
  • XX.on("網頁相對位址",“方式”,子程式)

    當用某種方式(GET、POST…可省略)通路某個頁面時,程式執行跳轉到子程式中。相當于一個判斷語句
  • XX.onNotFound(子程式)

    ,未找到頁面時執行子程式

閃存-FS.h庫

  • ESP8266中的RAM劃分了Sketch、OTA update、File system、EEPROM、WiFi config (SDK)等存儲空間,庫<FS.h>是對File system進行操作。
  • 主要的指令
    1. 格式化

      SPIFFS.format()

    2. 開始

      SPIFFS.begin()

      、結束

      SPIFFS.end()

      如圖C或python的檔案書寫一樣,将它打開後也需要關閉。
    3. SPIFFS.open(path, mode)

      可以寫、讀、追加檔案
      //定義一個檔案類型f
      File f = SPIFFS.open("/f.txt", "w");
      if (!f) {
          Serial.println("file open failed");}
                 

繼續閱讀