ESP32簡介
ESP32 是上海樂鑫公司開發的一款比較新的32位微控制器,它集成了WiFi及藍牙等功能,有著性能穩定、功耗低、價格低廉等特點,非常適用于物聯網開發,但也可以作為普通的MCU使用,
ESP8266 也是樂鑫公司開發的一種非常流行的WiFi芯片,相比 ESP8266 ,ESP32 更加強大,這篇文章 比較了 ESP8266 和 ESP32 之間的差別,
ESP32的主要芯片種類有ESP32-C系列、ESP32-S系列和ESP32系列,這些芯片的引數和功能略有差異,例如ESP32-S2就不支持藍牙功能,在選型時注意檢查芯片型號,
完整的芯片型號對比可以參考官方網站的介紹:https://www.espressif.com/zh-hans/products/socs
模塊是基于ESP32芯片,按照一定功能封裝了基本的外設等形成的集成芯片,樂鑫提供的ESP32模塊主要可分為WROOM系列、WROVER系列以及MINI系列,完整的介紹及對比可以參見官方網站:https://www.espressif.com/zh-hans/products/modules ,模塊引數的詳細PDF檔案可以從 https://www.espressif.com/zh-hans/products/modules/esp32 處下載,
而開發板則是由ESP32模塊和USB口、復位開關等組成的完整開發套件,開發板的廠商較多,使用時需要查看對應的開發板電路連接原理圖,并注意開發板提供的功能,樂鑫提供的官方開發板介紹可以參見 https://www.espressif.com/zh-hans/products/devkits ,
這里選擇 DOIT ESP32 DEVKIT V1 作為開發板,該開發板的特點為:
- 尺寸很小(約 52mm x 28mm )
- 價格低廉(僅需 ¥20 左右,相比樂鑫官方動輒 60+ 非常親民)
- 板載一個藍色 LED 燈,方便在無額外元器件時便可以除錯
- 遠銷海外( platformIO 甚至還有該開發板專門的介紹檔案)
其外觀如下,事實上很多商家的 ESP32 的開發板結構都非常類似,在選擇開發板時只需注意主要結構及功能即可,

MicroPython簡介
什么是MicroPython
MicroPython是基于Python實作的簡易版本,用于在嵌入式系統中運行,例如樹莓派、ARM單片機和ESP32,它兼容大部分Python3語法,因此只要熟悉Python3就能無障礙上手MicroPython,
相比Python3,MicroPython精簡了許多實作細節,并且刪去了許多標準庫以及標準庫里的內容,不過,MicroPython卻額外包含了能夠操作底層GPIO等外設的標準庫,這些是對底層暫存器的高度封裝,
建立MicroPython開發環境
目前來說,有 3 個比較常用的 MicroPython 開發環境,它們都是免費、開源且跨平臺的,它們分別為:
- uPyCraft IDE
uPyCraft IDE 是一個簡單并且對入門 MicroPython 友好的集成開發環境,它自身可以直接燒入 MicroPython 到 ESP32 中,并且支持從撰寫程式到串口除錯的所有基本功能,除此之外,它還內置了許多示例代碼,可以直接運行這些示例代碼查看效果,
uPyCraft 的 GitHub 地址為:https://github.com/DFRobot/uPyCraft ,可以從中下載軟體與查看官方檔案,
- Thonny IDE
Thonny IDE 是一個 Python 的集成開發環境,不過它同時也支持直接開發 MicroPython ,Thonny IDE 功能豐富,支持各種除錯方式,,并且可以加上插件進一步擴展功能,
Thonny IDE 的官方網站為:https://thonny.org ,GitHub 倉庫地址為:https://github.com/thonny/thonny ,
- Visual Studio Code
大名鼎鼎的 VSCode 想必許多人都有所耳聞,VSCode 想要開發 MicroPython ,主要依靠插件的支持,
這里推薦將 Thonny IDE 作為開發環境,主要是出于以下考慮:
- VSCode 相對 MicroPython 入門來說,還是有些過于重量級,并且 VSCode 主要依賴于插件來開發 MicroPython ,并不能很好地用到 VSCode 的所有優勢,而且開發環境的配置也對入門級別不是很友好,因此除非日后需要利用到一些進階功能,否則并不推薦將 VSCode 作為入門開發環境,
- uPyCraft 盡管是專門支持 MicroPython 的開發環境,但是它目前版本還比較低,不僅功能很少,而且使用者也很少,許多功能沒有得到廣泛的測驗,可能存在許多 bug 未能得到解決,
- 相比之下,Thonny IDE 非常輕量級,卻也支持許多高級的功能,由于有足夠多的使用者,現版本的 Thonny 已經非常穩定,完全可以滿足 MicroPython 的全流程開發,
由于 Thonny 不支持燒入功能,因此需要額外下載燒入工具,在燒入之前,需要安裝 CP210x 串口轉 USB 驅動,讓設備識別到 ESP32 ,
該驅動可以在 https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers 處下載,打開網站后點擊 DOWNLOAD 頁面,選擇對應系統的驅動下載即可:

下載完成驅動后,安裝對應的驅動檔案即可,安裝方式就和一般的軟體一致:

接下來需要下載 Flash 燒入工具,用來將 MicroPython 燒入到 ESP32 內,燒入軟體可以選用樂鑫官方提供的 Flash 下載工具,下載地址在 https://www.espressif.com/zh-hans/support/download/other-tools ,或在樂鑫官網找到支持→相關下載→工具:

解壓下載得到的檔案夾即可,
最后一步是下載 MicroPython 韌體,下載的地址為:https://micropython.org/download/esp32/) ,或在 MicroPython 官網首頁找到 Download→ESP32 :

一般來說,推薦下載第二新的韌體版本,注意下載的是 .bin 格式的韌體,
接下來就可以準備將 MicroPython 燒入到 ESP32 設備中,
將 ESP32 使用 microusb 線連接到計算機上,如果 ESP32 開發板上的紅色燈亮起,同時計算機的設備檢測到串口資訊,則證明連接正常:

打開 ESP32 的 Flash 燒入工具,在第一個下拉選單芯片型別中選擇 ESP32:

接下來進入到燒入配置界面,其中幾個關鍵的選項已經在圖中標示出來了:

- 燒入的韌體檔案,可在右側省略號按鈕選取檔案
- 燒入地址為
0x1000 - 記得勾上要燒入的檔案
- 這些選項保持圖示的默認選項即可
- 波特率以 921600 為佳,上方的埠號注意和 ESP32 的埠號匹配
接下來就可以下載韌體了,下載前需要先擦除原有內容,按住開發板上的“BOOT”按鍵,然后點擊下載工具左下角的“ERASE”按鈕,剛點擊時上方綠色矩形里的文字會從“等待/IDLE”變成“等待上電同步/SYNC”,如果文字再次變成“下載中/DOWNLOAD”,那么便可以松開開發板上的“BOOT”按鍵了,等到文字再次變為“完成/FINISH”,則說明擦除成功,

接下來點擊下載工具左下角的“START”按鈕,類似上一步,在開始下載前也需要按住開發板上的“BOOT”按鍵,在下載時,下載工具最下方的進度條將會顯示當前下載進度,
這樣,MicroPython 就燒入完畢了,接下來可以建立第一個MicroPython 工程,同時測驗燒入是否正確,
建立第一個工程
這里使用 Thonny IDE 作為開發環境,首先可以在官網下載該軟體:

也可以在 GitHub 倉庫里找到 Release 版本,這些地址在上文都提到過,
安裝成功 Thonny 后,打開軟體,接下來還需要進行一些初始化配置,
首先,在選單欄里找到運行→選擇解釋器,之前說過 Thonny 主要用于進行常規 Python 開發,因此如果要將其用于 MicroPython 開發需要修改解釋器選項:

修改解釋器為 MicroPython (ESP32) ,該頁面中同時可以修改埠配置,如果有時發現識別出現問題,不妨檢查一下埠號是否正確,

接下來,將 ESP32 接入計算機,然后點擊功能按鈕欄里的“停止/重啟后端行程(Ctrl+F2)”:

如果此時在下方的終端(Shell)內看到如下所示的 Python 解釋器提示,則說明與 MicroPython 的連接成功:

如果在打開 Thonny 前就維持著 ESP32 與計算機的連接,那么進入 Thonny 時應該就能看到該提示資訊,“停止/重啟后端行程(Ctrl+F2)”用于重新使計算機與 ESP32 里的 MicroPython 連接,在每次插拔 ESP32 后都需要這樣手動使兩者重新連接,
終端(Shell)允許在串口通信中使用 MicroPython 命令列互動視窗,例如:
MicroPython v1.17 on 2021-09-02; ESP32 module with ESP32
Type "help()" for more information.
>>> print('Hello, world!')
Hello, world!
print() 函式可以讓 ESP32 向計算機通過串口發送除錯資訊,
MicroPython 還支持以檔案的形式運行,新建一個檔案后,點擊保存(如果 Thonny 成功連接上了 ESP32 的 MicroPython ),那么此時就會出現兩個選項,可以將 .py 檔案保存在計算機上,還可以將其保存在 ESP32 里:

選擇將檔案保存在 ESP32 內,此時會發現 ESP32 內已經有一個 boot.py 檔案了,這里,將檔案命名為 main.py 保存,boot.py 和 main.py 是 MicroPython 里的兩個比較特殊的檔案,將在之后詳細介紹,

在 main.py 內撰寫以下代碼后保存:
from machine import Pin
import time
led = Pin(2, Pin.OUT)
while True:
led.value(0)
time.sleep(0.5)
led.value(1)
time.sleep(0.5)
點擊功能按鈕欄里的“運行當前腳本(F5)”,即可運行以上代碼,運行成功后,可以看到開發板上藍色的 LED 燈以 0.5 秒為間隔閃爍,說明運行成功,

while 回圈可以通過在互動式控制臺內按下 CTRL+C 觸發鍵盤中斷退出,如果再次將 ESP32 接入計算機后重啟后臺行程,一直顯示 ESP32 處于繁忙狀態或無顯示,則可能是由于 ESP32 一直在執行代碼導致的,可以通過鍵盤中斷強制停止 MicroPython 的執行,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/501867.html
標籤:其他
