1.在ESP8266上開始使用MicroPython
使用MicroPython是充分利用ESP8266電路板的好方法。反之亦然,ESP8266芯片是使用MicroPython的絕佳平台。本教程將指導您設置MicroPython,獲取提示,使用WebREPL,連接到網絡以及與Internet通信,使用硬件外圍設備以及控制某些外部組件。
讓我們開始吧!
1.1。要求
您需要的第一件事是帶有ESP8266芯片的電路板。MicroPython軟件本身支持ESP8266芯片,任何電路板都可以工作。電路板的主要特點是它具有多少閃存,GPIO引腳如何連接到外部世界,以及它是否包含內置USB串行轉換器以使UART可用於您的PC。
閃存大小的最低要求是1Mbyte。還有一個特殊的版本用於512KB的電路板,但與普通版本相比它是非常有限的:不支持文件系統,因此依賴它的功能將無法工作(WebREPL,upip等)。因此,對於根據特定應用程序的源和微調參數構建的用戶來說,512KB構建將更有趣。
本教程將使用芯片名稱(例如GPIO0)給出引腳名稱,並且應該可以直接找到與您的特定電路板相對應的引腳。
1.2。為電路板供電
如果您的主板上有USB連接器,則很可能在連接到PC時通過此連接器供電。否則你需要直接給它供電。有關詳細信息,請參閱電路板的文檔。
1.3。獲取固件
您需要做的第一件事是下載最新的MicroPython固件.bin文件以加載到您的ESP8266設備上。您可以從MicroPython下載頁面下載它 。從這裡,您有3個主要選擇
為1024kb及以上模塊構建穩定的固件。
每日固件版本為1024kb及以上模塊。
每日固件構建512kb模塊。
如果您剛開始使用MicroPython,最好的辦法是選擇Stable固件版本。如果您是一位經驗豐富,經驗豐富的MicroPython ESP8266用戶,他希望密切關注開發並幫助測試新功能,那麼每日構建(注意:您實際上可能需要一些開發經驗,例如準備好關注git歷史記錄以了解新功能引入了變化和功能)。
在功能預覽的基礎上提供對512kb模塊的支持。對於最終用戶,建議使用閃存為1024kb或更高的模塊。因此,僅提供512kb模塊的每日構建。
1.4。部署固件
獲得MicroPython固件(編譯代碼)後,需要將其加載到ESP8266設備上。執行此操作有兩個主要步驟:首先需要將設備置於引導加載程序模式,然後需要在固件中進行複制。這些步驟的確切步驟在很大程度上取決於特定的電路板,您需要參考其文檔以獲取詳細信息。
如果您的主板具有USB連接器,USB串行轉換器,並且以特殊方式連接DTR和RTS引腳,那麼部署固件應該很容易,因為所有步驟都可以自動完成。具有此類功能的板包括Adafruit Feather HUZZAH和NodeMCU板。
為獲得最佳效果,建議在使用新的MicroPython固件之前先擦除設備的整個閃存。
目前我們只支持esptool.py來複製固件。你可以在這裡找到這個工具:https://github.com/espressif/esptool/,或者使用pip安裝它:
pip 安裝 esptool
以1.3開頭的版本支持Python 2.7和Python 3.4(或更新版本)。舊版本(至少需要1.2.1)工作正常,但需要Python 2.7。
任何其他閃爍程序都應該可以使用,所以請隨意嘗試或參考您的電路板的文檔以查看其建議。
使用esptool.py,您可以使用以下命令擦除閃存:
esptool 。py - port / dev / ttyUSB0 erase_flash
然後使用以下方式部署新固件:
esptool 。py - port / dev / ttyUSB0 - 波特 460800 write_flash - flash_size = 檢測 0 esp8266 - 20170108 - v1 。8.7 。箱子
您可能需要將“端口”設置更改為與PC相關的其他設置。如果在閃爍時出現錯誤(例如,低至115200),您可能還需要降低波特率。固件的文件名也應該與您擁有的文件相匹配。
對於某些具有特定FlashROM配置的電路板(例如NodeMCU板的某些變體),您可能需要使用以下命令來部署固件(請注意該選項):-fm dio
esptool 。py - port / dev / ttyUSB0 - 波特 460800 write_flash - flash_size = detect - fm dio 0 esp8266 - 20170108 - v1 。8.7 。箱子
如果上述命令運行沒有錯誤,那麼應該在你的主板上安裝MicroPython!
1.5。串口提示
在設備上安裝固件後,您可以通過UART0(GPIO1 = TX,GPIO3 = RX)訪問REPL(Python提示符),這可能連接到USB串行轉換器,具體取決於您的主板。波特率為115200.本教程的下一部分將更詳細地討論提示。
1.6。無線上網
全新安裝和啟動後,設備將自身配置為可以連接的WiFi接入點(AP)。ESSID的形式為MicroPython-xxxxxx,其中x被設備的部分MAC地址替換(因此每次都是相同的,並且很可能與所有ESP8266芯片不同)。WiFi的密碼是micropythoN(注意大寫的N)。一旦連接到其網絡,其IP地址將為192.168.4.1。WiFi配置將在本教程後面詳細討論。
1.7。解決安裝問題
如果您在閃存期間遇到問題或者在緊接其後運行固件時遇到問題,則以下是故障排除建議:
請注意並嘗試排除硬件問題。有兩個常見問題:電源質量差和FlashROM磨損/有缺陷。說到電源,不僅僅是原始安培數很重要,而且一般來說還有低紋波和噪聲/ EMI。如果您遇到自製或壁式電源問題,請嘗試從計算機上取下USB電源。眾所周知,出土電源會引起問題,因為它們會增加EMI(電磁干擾) - 至少會導致電氣設備故障。因此,建議您在使用ESP8266和其他電路板時避免使用未接地的電源連接。關於FlashROM硬件問題,有獨立的(以任何方式與MicroPython無關)報告 (例如) 在某些ESP8266模塊上,在發生編程錯誤之前,FlashROM可以編程少至20次。對於ESP8266與信譽良好的供應商一起使用的類型的FlashROM芯片而言,這遠遠少於100,000個編程週期,這些芯片指向生產廢品,或者在某些(顯然便宜的)模塊/板上使用的二手磨損閃存芯片。您可能希望對所購買的模塊/電路板的來源,價格,文檔,保修,售後支持使用最佳判斷。
上面的閃爍指令使用460800波特的閃爍速度,這是速度和穩定性之間的良好折衷。但是,根據您的模塊/板,USB-UART轉換器,電纜,主機操作系統等,上述波特率可能過高而導致錯誤。在這種情況下,嘗試更常見的115200波特率。
如果較低的波特率沒有幫助,您可能需要嘗試使用舊版本的esptool.py,它具有不同的編程算法:
pip install esptool == 1.0 。1
此版本不支持--flash_size=detect選項,因此您需要明確指定FlashROM大小(以兆位為單位)。它還需要Python 2.7,因此您可能需要使用pip2而不是pip在上面的命令中。
--flash_size上述命令中的選項是必需的。省略它會導致固件損壞。
要捕獲不正確的閃存內容(例如,從芯片上的缺陷扇區),請將--verify開關添加到上面的命令。
此外,您可以從MicroPython REPL提示符檢查固件完整性(假設您能夠閃存它並且--verify選項不報告錯誤):
導入 esp
esp 。check_fw ()
如果最後一個輸出值為True,則固件正常。否則,它已損壞,需要正確重新刷新。
如果您遇到與其他閃存應用程序(不是esptool.py)的任何問題,請嘗試使用esptool.py,它是ESP8266社區中普遍接受的閃存應用程序。
如果您仍然遇到閃存固件的問題,請參閱esptool.py項目頁面,https://github.com/espressif/esptool 以獲取可以報告問題的其他文檔和錯誤跟踪器。
如果您能夠閃存固件,但是即使多次重試也可以--verify選擇或 esp.check_fw()返回錯誤,您可能有一個有缺陷的FlashROM芯片,如上所述。
使用MicroPython是充分利用ESP8266電路板的好方法。反之亦然,ESP8266芯片是使用MicroPython的絕佳平台。本教程將指導您設置MicroPython,獲取提示,使用WebREPL,連接到網絡以及與Internet通信,使用硬件外圍設備以及控制某些外部組件。
讓我們開始吧!
1.1。要求
您需要的第一件事是帶有ESP8266芯片的電路板。MicroPython軟件本身支持ESP8266芯片,任何電路板都可以工作。電路板的主要特點是它具有多少閃存,GPIO引腳如何連接到外部世界,以及它是否包含內置USB串行轉換器以使UART可用於您的PC。
閃存大小的最低要求是1Mbyte。還有一個特殊的版本用於512KB的電路板,但與普通版本相比它是非常有限的:不支持文件系統,因此依賴它的功能將無法工作(WebREPL,upip等)。因此,對於根據特定應用程序的源和微調參數構建的用戶來說,512KB構建將更有趣。
本教程將使用芯片名稱(例如GPIO0)給出引腳名稱,並且應該可以直接找到與您的特定電路板相對應的引腳。
1.2。為電路板供電
如果您的主板上有USB連接器,則很可能在連接到PC時通過此連接器供電。否則你需要直接給它供電。有關詳細信息,請參閱電路板的文檔。
1.3。獲取固件
您需要做的第一件事是下載最新的MicroPython固件.bin文件以加載到您的ESP8266設備上。您可以從MicroPython下載頁面下載它 。從這裡,您有3個主要選擇
為1024kb及以上模塊構建穩定的固件。
每日固件版本為1024kb及以上模塊。
每日固件構建512kb模塊。
如果您剛開始使用MicroPython,最好的辦法是選擇Stable固件版本。如果您是一位經驗豐富,經驗豐富的MicroPython ESP8266用戶,他希望密切關注開發並幫助測試新功能,那麼每日構建(注意:您實際上可能需要一些開發經驗,例如準備好關注git歷史記錄以了解新功能引入了變化和功能)。
在功能預覽的基礎上提供對512kb模塊的支持。對於最終用戶,建議使用閃存為1024kb或更高的模塊。因此,僅提供512kb模塊的每日構建。
1.4。部署固件
獲得MicroPython固件(編譯代碼)後,需要將其加載到ESP8266設備上。執行此操作有兩個主要步驟:首先需要將設備置於引導加載程序模式,然後需要在固件中進行複制。這些步驟的確切步驟在很大程度上取決於特定的電路板,您需要參考其文檔以獲取詳細信息。
如果您的主板具有USB連接器,USB串行轉換器,並且以特殊方式連接DTR和RTS引腳,那麼部署固件應該很容易,因為所有步驟都可以自動完成。具有此類功能的板包括Adafruit Feather HUZZAH和NodeMCU板。
為獲得最佳效果,建議在使用新的MicroPython固件之前先擦除設備的整個閃存。
目前我們只支持esptool.py來複製固件。你可以在這裡找到這個工具:https://github.com/espressif/esptool/,或者使用pip安裝它:
pip 安裝 esptool
以1.3開頭的版本支持Python 2.7和Python 3.4(或更新版本)。舊版本(至少需要1.2.1)工作正常,但需要Python 2.7。
任何其他閃爍程序都應該可以使用,所以請隨意嘗試或參考您的電路板的文檔以查看其建議。
使用esptool.py,您可以使用以下命令擦除閃存:
esptool 。py - port / dev / ttyUSB0 erase_flash
然後使用以下方式部署新固件:
esptool 。py - port / dev / ttyUSB0 - 波特 460800 write_flash - flash_size = 檢測 0 esp8266 - 20170108 - v1 。8.7 。箱子
您可能需要將“端口”設置更改為與PC相關的其他設置。如果在閃爍時出現錯誤(例如,低至115200),您可能還需要降低波特率。固件的文件名也應該與您擁有的文件相匹配。
對於某些具有特定FlashROM配置的電路板(例如NodeMCU板的某些變體),您可能需要使用以下命令來部署固件(請注意該選項):-fm dio
esptool 。py - port / dev / ttyUSB0 - 波特 460800 write_flash - flash_size = detect - fm dio 0 esp8266 - 20170108 - v1 。8.7 。箱子
如果上述命令運行沒有錯誤,那麼應該在你的主板上安裝MicroPython!
1.5。串口提示
在設備上安裝固件後,您可以通過UART0(GPIO1 = TX,GPIO3 = RX)訪問REPL(Python提示符),這可能連接到USB串行轉換器,具體取決於您的主板。波特率為115200.本教程的下一部分將更詳細地討論提示。
1.6。無線上網
全新安裝和啟動後,設備將自身配置為可以連接的WiFi接入點(AP)。ESSID的形式為MicroPython-xxxxxx,其中x被設備的部分MAC地址替換(因此每次都是相同的,並且很可能與所有ESP8266芯片不同)。WiFi的密碼是micropythoN(注意大寫的N)。一旦連接到其網絡,其IP地址將為192.168.4.1。WiFi配置將在本教程後面詳細討論。
1.7。解決安裝問題
如果您在閃存期間遇到問題或者在緊接其後運行固件時遇到問題,則以下是故障排除建議:
請注意並嘗試排除硬件問題。有兩個常見問題:電源質量差和FlashROM磨損/有缺陷。說到電源,不僅僅是原始安培數很重要,而且一般來說還有低紋波和噪聲/ EMI。如果您遇到自製或壁式電源問題,請嘗試從計算機上取下USB電源。眾所周知,出土電源會引起問題,因為它們會增加EMI(電磁干擾) - 至少會導致電氣設備故障。因此,建議您在使用ESP8266和其他電路板時避免使用未接地的電源連接。關於FlashROM硬件問題,有獨立的(以任何方式與MicroPython無關)報告 (例如) 在某些ESP8266模塊上,在發生編程錯誤之前,FlashROM可以編程少至20次。對於ESP8266與信譽良好的供應商一起使用的類型的FlashROM芯片而言,這遠遠少於100,000個編程週期,這些芯片指向生產廢品,或者在某些(顯然便宜的)模塊/板上使用的二手磨損閃存芯片。您可能希望對所購買的模塊/電路板的來源,價格,文檔,保修,售後支持使用最佳判斷。
上面的閃爍指令使用460800波特的閃爍速度,這是速度和穩定性之間的良好折衷。但是,根據您的模塊/板,USB-UART轉換器,電纜,主機操作系統等,上述波特率可能過高而導致錯誤。在這種情況下,嘗試更常見的115200波特率。
如果較低的波特率沒有幫助,您可能需要嘗試使用舊版本的esptool.py,它具有不同的編程算法:
pip install esptool == 1.0 。1
此版本不支持--flash_size=detect選項,因此您需要明確指定FlashROM大小(以兆位為單位)。它還需要Python 2.7,因此您可能需要使用pip2而不是pip在上面的命令中。
--flash_size上述命令中的選項是必需的。省略它會導致固件損壞。
要捕獲不正確的閃存內容(例如,從芯片上的缺陷扇區),請將--verify開關添加到上面的命令。
此外,您可以從MicroPython REPL提示符檢查固件完整性(假設您能夠閃存它並且--verify選項不報告錯誤):
導入 esp
esp 。check_fw ()
如果最後一個輸出值為True,則固件正常。否則,它已損壞,需要正確重新刷新。
如果您遇到與其他閃存應用程序(不是esptool.py)的任何問題,請嘗試使用esptool.py,它是ESP8266社區中普遍接受的閃存應用程序。
如果您仍然遇到閃存固件的問題,請參閱esptool.py項目頁面,https://github.com/espressif/esptool 以獲取可以報告問題的其他文檔和錯誤跟踪器。
如果您能夠閃存固件,但是即使多次重試也可以--verify選擇或 esp.check_fw()返回錯誤,您可能有一個有缺陷的FlashROM芯片,如上所述。