通過WiFi連接到REPL¶
概要¶
在某些特定的場合和需求下,你可能想要通過無線的方式接入REPL,設想你正在使用MicroPython 和ESP32測試一輛自己制作的小車,但是小車的運行不希望被數據線所牽絆。這個時候,你可能就需要通過WiFi接入到REPL。
本節內容主要介紹通過WiFi連接到REPL的方法。
首先連接到WiFi¶
想要通過WiFi連接到REPL,首先你要讓你的設備連接到WiFi。
作為一塊叱咤物聯網的MCU,怎么能缺少了連接WiFi的這一技能?
使用network模塊連接至WIFI¶
network
模塊中的其余內容,我們之后會在network模塊中詳細的講解。
import network # 導入network模塊 wifi = network.WLAN(network.STA_IF) # 設置為STA_IF模式,即接入wifi路由器的模式AP_IF為作為熱點
輸出如下圖所示:
接下來我們需要激活wifi,并進行連接
wifi.active(True) # 將wifi激活 wifi.connect('<essid>','<password>') #連接至wifi
注意: 請將\<essid>替換為你的WiFi名稱,\<password>替換為你的WiFi密碼
輸出如下圖所示:
如果如上圖中,沒有出現>>>
提示符,按下回車,即完成連接。
查看wifi連接狀態¶
使用ifconfig
查看網絡狀態:
分別對應于:
-
192.168.2.189 內網IP
-
255.255.255.0 子網掩碼
-
192.168.2.1 網關
接下來,我們開始進入正題。
WebREPL¶
WebREPL是一個使用Web前端技術棧構建的單頁應用。
WebREPL允許你通過WiFi使用MicroPython的REPL,通過瀏覽器連接,使用了WebSockt通信協議。
在MicroPython的網站上托管了WebREPL的單頁應用,點擊如下鏈接即可訪問:
http://micropython.org/webrepl
如上圖所示,即就是WebREPL。
WebREPL允許你通過WiFi使用MicroPython的REPL,通過瀏覽器連接。我們現在打開的這個界面 ,就是WebREPL在瀏覽器中的操作面板。在使用之前,我們需要在MicroPython中稍作配置,才能和這個界面建立連接。
之后你需要進行的步驟分為以下幾步:
-
初始化WebREPL
-
開啟WebREPL
初始化WebREPL¶
初次使用WebREPL,我們先要使用webrepl_setup
模塊來進行初始化設置。
>>> import webrepl_setup >>>
然后如圖所示,按照筆者的標注行事。
筆者去讀過該模塊的源碼,以上的步驟其實就是把你設置的密碼保存到一個名為webrepl_cfg.py
的腳本文件中,然后修改你boot.py
中的代碼,去掉了哪些注釋用的#
。
為什么不重啟呢, 因為重啟了你需要再連一遍wifi
開啟WebREPL¶
接下來,我們直接開啟webrepl的服務:
>>> import webrepl >>> webrepl.start()
如上兩句指令執行后,如下圖所示:
記住線框中的URL,然后打開我們之前在瀏覽器中訪問的WebREPL的頁面開始進行連接。
連接WebREPL¶
訪問http://micropython.org/webrepl
輸入正確的URL,然后點擊Connet按鈕
看到Password字樣后,輸入你設置的密碼,輸入密碼時,并不會顯示你的密碼,請確保輸入的準確性,然后回車。
當你看到親切的>>>
提示符時,則表明你已成功的連接到了WebREPL
試試WebREPL¶
現在,你可以在這個Web頁面上歡快的玩耍了。
REPL里能做的,WebREPL都能做¶
你可以輸入幾行代碼試著執行:
你甚至可以像在上一節串口連接REPL的教程里那樣,試著通過WiFi來點亮一個LED燈。
同時你依舊可以使用ctrl+E
進入粘貼模式,但是粘貼前需要你先按下ctrl+A
你也依舊可以使用ctrl+C
來終止你的程序。
使用WebREPL上傳文件¶
當然,WebREPL界面上還有Send a file
和Get a file
的按鈕,分別用來上傳文件和獲取文件:
- Send a file 點擊上傳一個文件到MicroPython的文件系統
警告¶
不要選擇空的文件上傳,WebREPL存在這個Bug
不要傳入帶中文字符的文件,MicroPython的文件系統不支持中文字符
選擇文件
點擊上傳
上傳成功
- Get a file 輸入一個文件名稱,從MicroPython的文件系統下載到本地
輸入文件名,點擊獲取
下載該文件
至此,WebREPL的所有內容便全部介紹完畢了。
WebREPL并不是很理想的工具¶
看完以上的教程,我相信大部分的讀者都仿佛被WebREPL這一神奇的工具所吸引住了。
WebREPL相較于串口連接的REPL而言,具有以下幾點優勢:
-
擺脫了數據線的束縛,可以實現無線接入REPL
-
WebREPL可以上傳文件,并從MicroPython獲取到文件
我們曾說,REPL是在MicroPython中 測試代碼 *和 *運行代碼 **最簡單的方法。
無線的方式,取消了我們對*測試代碼 * 和運行代碼的接線束縛。
文件的上傳和獲取,讓我們更加容易的更改和獲取MicroPython中的代碼。
在一定程度上,他確實可以提高我們的效率,但是他依舊存在不足,設計上也存在些不合理的地方:
-
WebREPL開機的自動啟動,依賴于WiFi連接的建立,而新手用戶并不會合理而優雅的去處理開機自動啟動WiFi這一問題
-
WebREPL存在一些技術上的bug
-
WebREPL基本不再有更新和迭代,以及缺少維護
我們1Z實驗室堅信,工具本身應該足夠簡單易用,介于WebREPL的不夠理想,我們秉承著Make Things Easy的理念,創建了EMP項目,接下來的一章,我們詳細講述。