ESP32與MicroPython入門-01 搭建開發環境

来源:https://www.cnblogs.com/frozencandles/archive/2022/08/15/16587706.html
-Advertisement-
Play Games

Charles:讓天底下沒有難抓的包。 前言 今天給大家推薦一個我所使用過的抓包工具中最好用的抓包工具-Charles(音譯:查爾斯),它可以抓各端發起的網路請求,我主要用來抓移動設備上的請求,上次小明就通過這種方式找到了一款付費App課程的漏洞,咳咳,不展開說了,畢竟web端的瀏覽器網路請求,打開 ...


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 作為開發板。該開發板的特點為:

  1. 尺寸很小(約 52mm x 28mm )
  2. 價格低廉(僅需 ¥20 左右,相比樂鑫官方動輒 60+ 非常親民)
  3. 板載一個藍色 LED 燈,方便在無額外元器件時便可以調試
  4. 遠銷海外( 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 作為開發環境,主要是出於以下考慮:

  1. VSCode 相對 MicroPython 入門來說,還是有些過於重量級。並且 VSCode 主要依賴於插件來開發 MicroPython ,並不能很好地用到 VSCode 的所有優勢,而且開發環境的配置也對入門級別不是很友好,因此除非日後需要利用到一些進階功能,否則並不推薦將 VSCode 作為入門開發環境。
  2. uPyCraft 儘管是專門支持 MicroPython 的開發環境,但是它目前版本還比較低,不僅功能很少,而且使用者也很少,許多功能沒有得到廣泛的測試,可能存在許多 bug 未能得到解決。
  3. 相比之下,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 官網首頁找到 DownloadESP32

一般來說,推薦下載第二新的固件版本。註意下載的是 .bin 格式的固件。

接下來就可以準備將 MicroPython 燒入到 ESP32 設備中。

將 ESP32 使用 microusb 線連接到電腦上,如果 ESP32 開發板上的紅色燈亮起,同時電腦的設備檢測到串口信息,則證明連接正常:

打開 ESP32 的 Flash 燒入工具,在第一個下拉菜單晶元類型中選擇 ESP32:

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

  1. 燒入的固件文件,可在右側省略號按鈕選取文件
  2. 燒入地址為 0x1000
  3. 記得勾上要燒入的文件
  4. 這些選項保持圖示的預設選項即可
  5. 波特率以 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.pymain.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 的執行。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • #使用Nginx在 Linux 上托管 ASP.NET Core 6.0應用:GitHub Actions自動部署 前言 本文主要參考微軟這篇文檔而來 Host ASP.NET Core on Linux with Nginx,並使用Github Actions做CI&CD,部署到阿裡雲伺服器,所有 ...
  • 一、在使用WinDbg調試之前,我們先使用VS的調試功能 1、文件 -> 打開 -> 文件 -> 打開Dump文件 2、調試 -> 選項 -> 調試 -> 符號 -> 添加該應用的.pdb所在的文件夾 3、使用 僅限托管 進行調試 正常情況下會執行到拋出異常的位置,並且顯示異常詳情。 二、WinDb ...
  • 一:背景 上一篇我們聊到瞭如何用 PerfView 去偵察 NTHeap 的記憶體泄漏,這種記憶體泄漏往往是用 C 的 malloc 或者 C++ 的 new 分配而不釋放所造成的,這一篇我們來聊一下由 VirtualAlloc 方法造成的泄漏如何去甄別? 瞭解 VirtualAlloc 的朋友肯定說, ...
  • podman基礎用法 podman常用命令 查看版本 [root@localhost ~]# podman -v podman version 3.3.1 [root@localhost ~]# podman version Version: 3.3.1 API Version: 3.3.1 Go ...
  • 目錄 一、前景回顧 二、任務切換相關 三、實現TSS 四、運行測試 一、前景回顧 在上一回我們已經實現了鍵盤的驅動編寫和環形緩衝區的實現,現在讓我們來想這麼一個問題: 一直以來我們的程式都在最高特權級0下工作,這意味著任何程式都和操作系統平起平坐,可以改動任何資源。如果不改變這種現狀的話,某個不聽話 ...
  • 蘋果滑鼠右鍵無法新建txt文檔?iRightMouse mac版是Macos上一款超級右鍵滑鼠輔助工具,彌補了蘋果右鍵功能較弱的短板,為mac增加右鍵新建菜單,蘋果右鍵可以新建TXT,為用戶豐富蘋果右鍵功能。歡迎大家前來體驗! 詳情:iRightMouse for Mac(超級右鍵滑鼠輔助工具) i ...
  • 以下說明在 Ubuntu 下如何配置 HC32L110 的燒錄環境, 當前使用的是 JLink. 可以使用 JFlashExe 通過界面進行操作, 也可以通過 JLinkExe 命令行進行操作 ...
  • podman的部署和應用 podman官方網站(https://podman.io/) 什麼是podman Podman是一個無守護進程的容器引擎,用於在Linux系統上開發、管理和運行OCI容器。容器可以作為根運行,也可以以無根模式運行。簡單地說:別名docker=podman 它是一款集合了命令 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...