<button id="ssm6u"><optgroup id="ssm6u"></optgroup></button>
  • 跳轉至

    通過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 fileGet 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項目,接下來的一章,我們詳細講述。


    韩国精品无码一区二区三区,精品无码一区二区三区AV,欧洲丰满美熟女乱又伦AV,亚洲午夜久久久影院伊人