問題:ESP8266不能被識別為USB盤,也不能通過串口傳送文件,只能通過wifi傳送文件,需要事前在串口連接后的repl狀態下,用命令行方式配置網絡參數,之后才可以用wifi傳送文件(webrepl方式)。
目的:解決wifi傳送文件的設置問題。
工具:使用putty或TeraTerm
固件:升級后的固件MicroPython v1.9.3-8-g63826ac5c on 2017-11-01
平台:windows XP
一. AP方式直接連接到PC機
1. 配置AP(不用配置,默認網關為192.168.4.1 )
你的PC機直接連接到ESP8266 ssid = "micropython-xxx" password="micropythoN"
自己可以修改:
>>> ap_if = network.WLAN(network.AP_IF)
>>> ap_if.config(essid="micropython-xxx", authmode=network.AUTH_WPA_WPA2_PSK, password="micropythoN")
2.啟動webrepl
用putty或TeraTerm以串口連接后,在串口repl模式下,輸入:
>>> import webrepl_setup
按(E)able
按y/n?(y)
輸入密碼:h1234
再輸入密碼:h1234
按y,重新啟動。
顯示>>>
!設置已經保存文件中,下次啟動時有效。
3. wifi傳送文件(兩種方法傳送文件)
(1). 瀏覽器方式wifi傳送文件和webrepl命令
javascript實現,不用Python3,要求高版本瀏覽器
<1> PC機上,雙擊webrepl.html 打開黑色瀏覽窗口(firefox esr 52.0.1 (32-bit)測試正確;js代碼中要求IE10以上,但沒有測試。)
<2> 默認地址和端口不變:192.168.4.1:8266
<3> 輸入密碼:h1234
<4> 顯示>>>
<5> 黑色瀏覽窗口右上角收發文件正常
<6> webrepl中命令正常
(2). webrepl_cli.py命令行方式wifi傳送文件
!要求已經安裝python3
<1> 執行cmd,進入命令行狀態,進入webrepl_cli.py所在目錄
<2> 幫助
>>> python webrepl_cli.py --help
<3> ESP--->PC接收文件
>>> python webrepl_cli.py -p h1234 192.168.4.1:/boot.py ./esp2pc_test.txt
上行命令寫入批處理文件中,點擊就執行。自己修改目錄和文件。
<4> PC--->ESP發送文件
>>> python webrepl_cli.py -p h1234 pc2esp_test.txt 192.168.4.1:/pc2esp_test.txt
上行命令寫入批處理文件中,點擊就執行。自己修改目錄和文件。
二. STA方式經過自己的路由器連接到PC機
1. 配置ESP8266 wifi網絡參數
配置STA,連接到自己的wifi自己的路由器(ssid=hyper1, password=hj1234567):
用putty或TeraTerm以串口連接后(repl方式),設置ESP8266 wifi STA模式,並連接到自己的wifi路由器。
串口連接ESP8266, 在repl方式下輸入如下命令:
>>> import network
>>> sta_if = network.WLAN(network.STA_IF); sta_if.active(True)
>>> sta_if.connect("hyper1", "hj1234567") #連接到hyper1路由器。
>>> sta_if.ifconfig() # 查看ip地址 192.168.0.106 !記住這個IP
>>> sta_if.isconnected() #查看是否連接到自己的路由器
>>> import port_diag #診斷板
2. 啟動webrepl
用putty或TeraTerm以串口連接后,在串口repl模式下,輸入:
>>> import webrepl_setup
按(E)able
按y/n?(y)
輸入密碼:h1234
再輸入密碼:h1234
按y,重新啟動。
顯示>>>
!設置已經保存文件中,下次啟動時有效。
3. wifi傳送文件(兩種方法傳送文件)(esp8266 STA方式連接到自己路由器)
(1). 瀏覽器方式wifi傳送文件和webrepl命令
javascript實現,不用Python3,要求高版本瀏覽器
<1> PC機上,雙擊webrepl.html 打開黑色瀏覽窗口(firefox esr 52.0.1 (32-bit)測試正確;js代碼中要求IE10以上,但沒有測試。)
<2> 修改8266的STA地址:192.168.0.106,端口8266不變
<3> 輸入密碼:h1234
<4> 顯示>>>
<5> 黑色瀏覽窗口右上角收發文件正常
(2). webrepl_cli.py命令行方式wifi傳送文件
!要求已經安裝python3
<1> 執行cmd,進入命令行狀態,進入webrepl_cli.py所在目錄
<2> 幫助
>>> python webrepl_cli.py --help
<3> ESP--->PC接收文件
>>> python webrepl_cli.py -p h1234 192.168.0.106:/boot.py ./esp2pc_test.txt
上行命令寫入批處理文件中,點擊就執行。自己修改目錄和文件。
<4> PC--->ESP發送文件
>>> python webrepl_cli.py -p h1234 pc2esp_test.txt 192.168.0.106:/pc2esp_test.txt
上行命令寫入批處理文件中,點擊就執行。自己修改目錄和文件。
三. 使用
用wifi傳送文件,有線串口調試。
(1)兩種網絡連接方式
AP或STA連接,選擇一種就行,建議用第一種方式,方便、不用配置、只啟動就行。
(2) 兩種文件傳送方式
有兩種文件傳送方式,網頁方式和命令行方式,選擇一種就行,第一種方便,不用安裝Python3,但對瀏覽器要求高。
(3)兩種命令操作方式
建議用串口repl命令行操作esp中文件和調試代碼片段。
網絡中webrepl也可以,但不穩定,慢。
(4) 文件操作
import os
os.listdir()
os.remove("test.py")
...
四. 停止與重啟動
停止webrepl
(1) 串口repl中Ctr-C后Ctr-D啟動,wrepl守護進程停止。
(2) >>> import webrepl
>>> webrepl.stop()
(3)>>> import webrepl_setup
按d (Disable)
按y (yes)
修改boot中開機啟動守護進程項,關閉。重新啟動webrepl
(1) >>> import webrepl
>>> webrepl.start()
顯示如下:
WebREPL daemon started on ws://192.168.4.1:8266
WebREPL daemon started on ws://192.168.0.100:8266
Started webrepl in normal mode
表示webrepl已經啟動。(2)上電或復位后會自動啟動webrepl守護進程,
(3)>>> import webrepl_setup,並重新輸入密碼。
修改boot中開機啟動守護進程項,打開,並保存新密碼。
以上方式全部測試通過!
五. 出現的問題:
- 固件1.9.3,在putty或TeraTerm連接開始時,repl窗口出現很多亂碼,連接三次后正常。或者板上電后,延時5秒以上時間后,再打開putty或TeraTerm.
- putty會有串口鎖住的問題,而TeraTerm不會鎖住串口。
微信:h790516
qq :790516
博客:http://www.cnblogs.com/hyper99
微店:嵌入式系統工匠坊 ---http://wd.koudai.com/s/259792644
作者:黃永平(Hyper)
時間:2017年12月7日