close

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-panels (1).png

資料來源: 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後,整個檔案目錄會消失看不見。 

 

回ESP8266文件主目錄

 

 

 



 

 

 

 

 

 

 

 

 

 

 

arrow
arrow
    全站熱搜

    stanley 發表在 痞客邦 留言(2) 人氣()