NodeMCU入門:燒錄、除錯、聯網

Li_Mo發表於2018-05-11

NodeMCU簡介

NodeMCU(節點微控制器單元)是一個開源的物聯網軟硬體平臺。該平臺基於開源eLua專案,底層使用ESP8266 SDK,旨在簡化ESP8266的開發。它提供了兩個元件:

  1. 一個基於ESP8266 SDK的開源韌體,該韌體提供了一個基於eLua的程式設計環境,開發者可使用Lua指令碼語言對硬體進行程式設計控制。
  2. 一個DEVKIT開發板,該開發板有一個已與ESP8266晶片連線的內建 USB 埠、一個硬體重置按鈕、一個Flash燒錄按鈕、Wifi 天線、LED 燈,以及可插入電路試驗板中的標準尺寸 GPIO(通用輸入輸出)引腳。

韌體獲取和燒錄

韌體獲取

NodeMCU官方為開發者免費提供了靈活的可定製化的雲端編譯韌體服務,開發者可訪問NodeMCU Custom Build網站獲取該服務。

使用該服務首先需要填寫自己的郵箱地址用於接收編譯完成後包含下載連結的提醒郵件。隨後可根據需求勾選自己需要的功能模組。推薦勾選以下模組(包含預設勾選模組):ADC模組(用於讀取外部/系統電壓)、crypto模組(提供資料加密支援)、DHT模組(提供DHT系列感測器的資料讀取支援)、file模組、GPIO模組、net模組、node模組、RTC time模組(提供高階時鐘支援)、SNTP(配合RTC time模組使用)、SJSON(提供JSON資料格式讀寫支援)、timer模組、UART模組、WIFI模組。

選擇完模組後點選開始編譯按鈕,一段時間後之前填寫的郵箱會收到一封包含下載連結的郵件,該郵件提供了Integer和Float兩種版本的韌體供下載,建議若無特殊需求選擇Float版本進行下載。

韌體燒錄

首先訪問安信可公司的ESP8266模組開發工具清單下載最新的ESP_DOWNLOAD_TOOL(推薦也將安信可串列埠除錯助手、TCP/UDP 網路除錯助手等軟體下載下來備用,大廠出品,不知道比那些出處不明的相關軟體高到哪裡去了)

注:請使用最新版燒錄工具,舊版本的燒錄工具會出現無法成功燒錄最新韌體的情況。

下載完成後解壓執行燒錄軟體,如下圖

NodeMCU入門:燒錄、除錯、聯網

選擇ESP8266 DownloadTool,進入如下介面

NodeMCU入門:燒錄、除錯、聯網
選擇之前下載的韌體,燒錄地址為0x0,其餘設定不動。將DEVKIT開發板連線到計算機,選擇對應COM,點選START,開始燒錄韌體,如下圖

NodeMCU入門:燒錄、除錯、聯網
完成後如下圖

NodeMCU入門:燒錄、除錯、聯網

注:此方法僅適用於DEVKIT開發板。DEVKIT開發板燒錄韌體時只要連線到計算機即可,無需按任何按鈕,其他硬體實現可能需要拉低GPIO 0電壓之類的操作。

若韌體燒錄失敗,開發板可能出現傳送亂碼資訊或LED燈頻閃等現象。此時首先下載擦除韌體,然後在燒錄工具中選擇該韌體,點選ERASE按鈕進行韌體擦除,完成擦除後再次燒錄需要的韌體即可。

除錯

針對NodeMCU的程式設計和除錯推薦使用ESPlorer,下載解壓後直接雙擊jar檔案執行,介面如圖

NodeMCU入門:燒錄、除錯、聯網
選擇對應的COM,點選Open按鈕,然後按下開發板上的RST按鈕,建立開發板和ESPorer的連線

NodeMCU入門:燒錄、除錯、聯網
建立開發板和ESPlorer的連線後,即可開始編寫控制程式碼並下載至開發板進行除錯執行。ESPlorer的具體用法自行Google,在此不再贅述。

聯網

NodeMCU支援三種網路模式:AP(接入點模式)、STA(站模式)、AP+STA(接入點+站模式),在日常開發中使用STA模式較多,是以此處以STA模式為例,其餘模式使用方法可參考NodeMCU WIFI模組文件

首先建立WIFI配置表,程式碼如下

-- WiFI Config --
station_cfg={}
station_cfg.ssid="Your WIFI Name"
station_cfg.pwd="Your WiFi password"
複製程式碼

隨後將NodeMCU設定為STA模式,傳入配置表,開始連線WiFI,程式碼如下

-- Setup Connection --
wifi.setmode(wifi.STATION)
wifi.sta.config(station_cfg)
tmr.create():alarm(1000,tmr.ALARM_AUTO,function(wifi_timer)
    if wifi.sta.getip() == nil then
        print("Connecting to AP...\n")
    else
        print("Connect OK!")
        wifi_timer:unregister()
    end
end)
複製程式碼

在ESPlorer中新建檔案輸入以上程式碼,按Ctrl+s儲存並下載至NodeMCU執行,可以見到如下輸出資訊

NodeMCU入門:燒錄、除錯、聯網
NodeMCU已經成功連線至WIFI。

END

相關文章