MicroPython on WeMos D1 (ESP8266)開發板(2):調試方法


跟據上篇的教學,如果成功燒寫了韌體後,我們就可以開始對Micropython進行調試及燒寫程序。在Micropython我們會通過REPL來調試及更新程序。REPL(交互式解釋器)全稱是Read Evaluate Print Loop,使用REPL是迄今為止來測試你的代碼和運行命令的最簡單的方法。說白了,就是一個類似Python 3.x IDLE Shell 那個介面。

  Python 3.x Shell

REPL

以上就是REPL和Python 3 IDLE Shell 的對比圖,很相似對吧? ESP8266和REPL可以通過UART及WIFI進行相互連接。

a. UART 連接REPL
在ESP8266中,REPL用UART0串口作為接口,而且是不可屏閉的,該外設連接到TX的GPIO1和RX的GPIO3;波特率為115200。因為WeMos D1上已經有了USB轉UART的IC,所以接上PC,裝好驅動,打開終端機軟件便能使用。驅動程序在第一篇教學已經提及,在這裡就不多說了。以下是我用PuTTY連接REPL的例子:

1. 打開PuTTY。到Serial把baud rate 設置成115200 和 Flow control 調成None.
**COM口要跟據自己電腦的接口作出相應的改動


2. 在Session部份設置成Serial



3. 按Open開啟,再按WeMos D1開發板的reset鍵,會出現亂碼和>>>的標誌代表成功了!!


4. 用ESP8266模組內建的LED做測試,LED 是接到模組的GPIO2的腳位。當低電平時就會點亮,高電平時熄滅。輸入以下代碼點亮LED。
import machine
led = machine.Pin(2, machine.Pin.OUT)
led.value(0)
如果成功會像下圖一樣,ESP8266右上角的LED會點亮。
再輸入led.value(1),LED就會熄滅

b. WebREPL調試
除了UART連接REPL之外,我們還可以通過WiFi連接REPL。WiFi連接REPL有兩種方法。1.把電腦連接到ESP8266作為AP的MicroPython-xxxx的網絡。2. 把ESP8266和電腦連接到同一個路由器上組成區域網絡。無論哪種方法,我們都要先通過UART的REPL設置。

1. 設置WebREPL
在REPL輸入import webrepl_setup會出現:
Would you like to (E)nable or (D)isable it running on boot?
(Empty line to quit)
再輸入E 去開啟WebREPL的功能,這時會出現
To enable WebREPL, you must set password for it
New password (4-9 chars):
要求你輸入兩次同樣的密碼。這個密碼用於以後每次登錄WebREPL時用,我這裡用admin做例仔。
Changes will be activated after reboot
Would you like to reboot now? (y/n)
輸入兩次密碼後會告訴你重起機後,設置才會生效。
輸入y 重起,完成設置。

2. 連接ESP8266 通過WebREPL
2.1 方法1(連接ESP8266 的WiFi):

  • 連接ESP8266 的WiFi, SSID: MicroPython-xxxxx Password: micropythoN

  • 打開webrepl.html檔案


  • 在WebREPL按connect,打之前設置的密碼(e.g:admin)

  • print("Have fun") 或之前的點燈程序去測試一下


2.2 方法2(ESP8266連接與PC同一個路由器的WiFi):
我們先在電腦上準備好一個boot.py的檔案。在板子上電時會先執行boot.py,如果有main.py存在的話,會再執行main.py
boot.py下載: https://drive.google.com/file/d/1s_QC4Z7yih-y-Z5_Tw9r_1Xv9ojRJd86/view?usp=sharing
準備好boot.py的檔案後,我們就可以上傳(upload)到ESP8266板子上。如果大家可以方法1連接到WebREPL,在右手邊有個選擇檔案的按鍵。
按下按鍵,點選boot.py
再按Send to device


如果成功的話重起後會在UART的REPL出現以下畫面
192.168.1.104 是ESP8266連接到到路由器(router)WiFi分配的IP地址,有機會和我的不一樣。到http://micropython.org/webrepl/打上自已的IP地址就可以連接到板子。








留言

此網誌的熱門文章

MicroPython on WeMos D1 (ESP8266)開發板(1): 燒寫韌體Firmware