緣起:去年買了一個NodeMUC的模塊,今天突然翻騰出來后發現完全沒印象,完全不知道該如何去使用,所以準備把今天重新搜索學習的過程整理下,免得下次還需要重新整理思路。
目標板介紹
該板子名稱為NodeMCU,當時買它的原因是商家說支持LUA腳本編寫,并且有無線,最關鍵是便宜。我買的這個板子是NodeMCU V3,圖片如下:
應該如何去使用它?
下載邏輯
如果要讓這個板子可以運行lua腳本程序,那么就必須在板子中預先下載一個程序,這個被下載的程序可以看作是這個硬件的操作系統,提供了對硬件的訪問接口,同時提供了lua腳本的解釋器引擎。
因為這個板子買回來以后就已經下載了這個程序,所以我今天不用重新下載了,也許下次需要添加其他模塊支持的時候,會需要重新編譯,重新下載這個程序,到時再把這個章節補充完整。
腳本的編寫
其實,在找到這個版本的第一反應,就是百度官網,直接打開的官網除了宣傳性質的說明,有用的信息實在太少了。官網上有個github的鏈接,進入該頁面,相對來說看到的信息更有價值一些,讀者可以以這個github頁面作為學習的起點。
我把自己的操作步驟做一個簡單的總結,對于那些想快速入門的同學可以快速參考這個操作步驟來上手。
1. 下載對應的工具,ESPlorer,下載地址:http://esp8266.ru/esplorer-latest/?f=ESPlorer.zip。
2. 連接目標板。
3. 編寫lua腳本保存執行。
后續小章節分別對步驟2, 3進行稍微羅嗦一點點地說明。
連接目標板
ESPlorer軟件下載成功后,打開目錄,文件組織大概如下:
通過ESPlorer.bat打開軟件,軟件打開后如下圖:
在右側視圖中,選擇串口,設置串口波特率,然后打開串口。如下圖:
點擊打開按紐后,停留在此狀態比較長時間沒有變化,所以我不能確定是否打開成功,所以點擊了右視圖中的Heap,相當于發一個堆查詢命令,然后界面狀態如下:
到了這一步,我認為算是打開成功了。
編寫Lua腳本
在ESPlorer軟件的左視圖中編寫lua腳本,隨便編寫一個腳本測試下,編寫內容如下:
然后對腳本進行保存,注意保存腳本時文件名一定要寫為init.lua,因為板子上的腳本引擎默認加載執行init.lua文件。正確保存后,右側視圖輸出如下信息:
從輸出信息可以看到,將文件傳輸到目標板上是通過串口命令實現的,例如輸出中有原有文件刪除,新文件創建,文件內容寫入等。
到目前為止,確實已經將lua腳本在目標板上運行起來了,但我們并不是為了打印一個hello才使用這個目標板,所以后續還需要對lua如何訪問目標板的硬件接口進行學習。
第一個硬件接口的調用
在官網首頁中有一個例子,就是來驅動pin,代碼如下:
pin = 1
gpio.mode(pin,gpio.OUTPUT)
gpio.write(pin,gpio.HIGH)
當知道了如何通過這個代碼來驅動pin,那么就要知道該目標板的引腳是如何定義的,這個pin=1到底是哪個引腳?
針對這個問題,我參考了這個文章,https://blog.csdn.net/leytton/article/details/51646624,其中很明確的說明了引腳的映射關系,并且我對此作了驗證。例如本例代碼中pin=1就是對應了GPIO05,也就是目標板上標記的D1。
如何使用其他硬件接口?
寫這個文章的時候,暫時還沒有用其他接口,所以沒有整理,可能過幾天會整理下,因為至少需要對該目標的網絡部分熟悉,不然買這個板就沒用了。