2017.04.10 星期一
這篇文章介紹一些可以開發ESDP8266的編輯器,目前個人偏好使用MicroPython使用開發ESP8266程,因此這些軟體是可以編寫MicroPython為主,但通常可以編寫MicroPython的軟體通常是可以編寫LUA語法的。目前收集到免費軟體有三種,分別為ESPlorer,ESPyHarp,ESPCut。但是很遺憾地到目前為止(2017,04,10)個人測試及網友的留言皆表示軟體ESPlorer在Micropython的檔案上傳及編輯功能仍然有問題。ESPyHarp個人使用經驗是之前編輯過的檔案會消失,無法再開啓舊檔案。有點令人失望。ESPCut正在試用中。
(1) ESPlorer
今天發現了用Java所撰寫,可以在Windows執行ESP8266開發環境的ESPlorer軟體,這是一個類似Arduino IDE開發環境的軟體,但是Arduino IDE有支援NodeMCU的開發,但没有支援MicroPython的開發環境。ESPlorer軟體可以同時支援NodeMCU和MicroPython的開發環境。因為小編個人偏愛使用Python去控制ESP8266,所以希望使用MicroPython程式語言的環境,安裝軟體且搜尋軟體的使用方法時,發現有關ESPlorer軟體教學真是少之不少,且官網竟然無ESPlorer支援開發MicroPython的文件資料,真讓人驚訝,所以搜尋一些文章且做一些教學記錄。其實二種程式誩言(MicroPython 及NodeMCU)在ESPlorer開發環境中只差一個選項而宜,其餘的操作方式及功能都是一樣的(當然你安裝的韌體和開發使用的程式誩言是不同的),所以學會一種後自然而然可以運用到一個誩言。
首先
1. 下載軟體 最新版 ESPlorer v0.2.0-rc6
官方網站: http://esp8266.ru/esplorer
最新版軟體下載 http://esp8266.ru/esplorer#download
2. ESPlorer軟體特點 ( 最新版ESPlorer v0.2.0-rc6 )
- Java 寫的,支援 Windows / Linux / Solaris / Mac 作業系統
- 支援 LUA 和 Python 的語法
- 程式編輯器可設置不同的主題:default, darl, Eclipse, IDEA, Visual Studio
- 程式編輯器支援 Undo / Redo 功能
- 程式碼自動完成 ( Ctrl+Space )
- 聰明的餵食資料給 ESP8266 並且確認每一條發出去的指令回覆是否正確
- 程式碼片段 ( Code snippet ) 管理功能
- 詳細的記錄 ( logging ) 功能
- 可將多個寫好的 Lua 腳本存放到 flash,讓 ESP8266 自己執行
電腦須先安裝JAVA7以上的執行環境,下載之後解開,直接執行ESPlorer.bat即可:
ESPlorer操作環境
啟動後的畫面分左右兩半,左上方編輯功能區、左中間是程式編輯區,左下方是功能按鈕區。右上方是與ESP8266通訊的連線設定區,右中間是訊息及結果顥示區域,右下方則是snippet區域。
編輯功能
- New file:開新檔案
- Open:開啟lua檔
- Save:儲存lua檔
- Line:將目前游標所在行的程式碼送到NodeMCU執行
功能按鈕
- Save&Compile:將NodeMCU上的lua檔編譯成lc檔
- Save to ESP:將lua檔儲存到NodeMCU,並執行該lua檔
- Send to ESP:將lua檔內容傳送到NodeMCU上執行,但不儲存到NodeMCU
- Run:用dofile()去執行NodeMCU上的lua檔
- Upload:將lua檔上傳到NodeMCU
畫面右方三個按鈕的作用是:
Format :將ESP8266格式化,使用者程式會全部被刪除。
FS Info:查看ESP8266的檔案狀況。
Reload :重新載入使用者程式。
在右方的選項可在[VIEW]功能項中設定
資料來源: ESPlorer — Integrated Development Environment (IDE) for ESP8266 developers
1. ESP8266通訊的連線設定
nodeMCU 預設連線的UART設定是 9600,8,N,1 ,使用 ESPlorer 的時候要設定畫面右半邊的連線區域上的 Baudrate 選項設定為 9600 ,然後指定連線設備為 "/dev/tty.usbserial" (在 Linux 系統上應該是 "/dev/ttyUSB0")
設置完按下 "Open" 按鍵就開始連線。這時如果把ESP8266重新上電的話應該會看到類似下面的訊息:
設定右上方的COM port之後,按下open按鈕就可以連線,連線後如果出現Can’t autodetect…. 錯誤訊息,先忽略不看。
2. 編輯 Lua Script 檔 & 執行 & 燒錄 Lua Script 程式
開發工具的左半邊是 Lua script 的程式碼編輯區,在此區編輯要燒入ESP8266模組的Lua script檔。要在連線的狀態之下才能燒入 Lua Script。
開發工具也支援將lua script 用檔案的形式儲存在晶片之中,之後再呼叫出來運行的方式。做法是先在編輯區之中把程式碼打好,然後按上面的 "Save" -> 指定存檔檔名(副檔名要為.lua)。最後再按下下方的 "Save to ESP" 按鈕,就會看到開發工具會用 lua 的 file open 的方式來把程式碼檔案寫入晶片之中的檔案系統,並且用剛剛存檔的檔名。之後就可以使用 lua 的 dofile("檔名") 來執行已存在晶片之中的 lua script檔。
dofile("script.lua")
開機後執行的第一個lua script檔
NodeMCU的韌體預設在晶片開機的時候,會先自動呼叫 init.lua 這個檔案來執行。 如果要有開機後執行初始化設定的需求的時候,就把初始化動作寫好之後存指定檔名為 init.lua之後,再按下 Save to ESP 按鈕。以下程式,可以讓NodeMCU開機後,LED不斷的閃爍。
然後按下編輯區下方的 "Send to ESP" 按鈕,會看到開發工具會把該行程式碼傳送給ESP後馬上執行。如果有程式碼不只一行的話會看到,傳一行執行一行,結束後才執行下一行的動作狀況。
(1) 第一步是開啓新的或編輯舊的lua檔
(2) 程式編輯完後。可以選擇Save&Run ,Save&Compile........等功能。
(3) 傳送和執行
- Save to ESP:將lua檔儲存到NodeMCU,並執行該lua檔
- Send to ESP:將lua檔內容傳送到NodeMCU上執行,但不儲存到NodeMCU
- Run:用dofile()去執行NodeMCU上的lua檔
- Upload:將lua檔上傳到NodeMCU
在畫面左方 Scripts 視窗輸入程式,然後按下下方的 Send to ESP 按鈕,即可送至 NodeMCU立即執行。Lua 語言也可以將程式模組化,然後呼叫模組來執行某些動作。
先來一行最簡單的程式:
print("Hello, world")
將上面的程式輸入到Scripts視窗,按下 Send to ESP 按鈕,就可以在右邊的終端機視窗看到如下圖的傳送過程與結果。
(2) ESPyHarp
ESPyHarp是一套由韓國人利用Java所寫的ESP8266開發軟體,同樣地也是支援MicroPython語,但個人試用的結果是之前所寫的Booy.py & Main.py 及其他儲存在晶片內的py檔,都無法再回復。
(3) ESPCut
ESPCut 是一個為ESP8266整合性的開發環境,這個軟體支援LUA及Python開發程式語言。在 ESPCut軟體內你可以燒錄新的靭體及使用拖、拉操作方式上傳及下載檔案 。支援程式語言包括了
軟體下載:
操作說明
不過這套軟體安裝完後執行seeting選項即會出現存存取記憶體錯誤的訊息,所以系統無法儲存port number 設定,因此每次軟體執行後再按disconnect,選擇正確地port number 後再重新connect。這也可能是軟體的bug所致。
總結三套軟體的功能,有二套是用Java所寫的,其功能皆是大同小異,但三套在檔案編輯上都用問題,重裝micropython後,晶片內會有boot.py,但上傳或複製檔後以前的檔案會消失無法再出現,但晶片RESET後,boot.py和main.py是會正常執行但三套軟體皆看到檔案目錄。三套軟體中比較特別的ESPCut可以直接燒錄firmware,而ESPyHarp在檔案編輯比較直接簡單,但檔案目錄出現的檔案會重複出現要常按refresh才會出現單筆的檔案。總而言之,没有一套是完美的,目前只能三套混合使用,如果有讀者知道原因還真希望有人告訴我為知上傳檔案至ESP後,整個檔案目錄會消失看不見。