--- title: Thonny IDE for ESP32-CAM 安裝與設定 (for MicroPython) tags: AIoT 實作研習 --- # Thonny IDE for ESP32-CAM 安裝與設定 (for MicroPython) By 蓉爸 RungBa Created: 2023-06-07 Revised: 2023-09-01 --- :::danger - **ESP32 操作注意事項:** - **有使用擴充版的人,一定要確認插對方向,否則接上 USB 電源時,可是會燒毀 ESP 板子的!!!** - **由於 ESP32 需要較大電流,所以建議要接電腦的 USB 3.0 的插孔!!** - **ESP32-CAM 所連的 Wifi 網段,必須與要瀏覽的電腦同一個區網,電腦才能瀏覽 ESP32-CAM 的影像串流。而且同時間 ESP32-CAM 只能給一個訪問者瀏覽。** - **ESP32 Wifi 只支援 2.4G,且 SSID 只支援用英文命名的 Wifi!!** ::: **Ref:** - **[夜市小霸王版ESP32CAM測試 - 使用micropython 及 Thonny IDE on MacOS (by 國順老師)](https://hackmd.io/y1qnXwi2SWGSFmL15TS4fA?view)** - **[Getting Started with Thonny MicroPython (Python) IDE for ESP32 and ESP8266](https://randomnerdtutorials.com/getting-started-thonny-micropython-python-ide-esp32-esp8266/)** - **[shariltumin/esp32-cam-micropython-2022 (on Github)](https://github.com/shariltumin/esp32-cam-micropython-2022)** > **具有 Camera 套件的 MicroPython 韌體** - **[Write Binary Data to Flash: write_flash](https://docs.espressif.com/projects/esptool/en/latest/esp32s3/esptool/basic-commands.html)** - [Flashing MicroPython Firmware with esptool.py on ESP32 and ESP8266](https://randomnerdtutorials.com/flashing-micropython-firmware-esptool-py-esp32-esp8266/) - (★★★) **[How to retrieve and format wifi MAC address in MicroPython on ESP32 (2022-04-17)](https://stackoverflow.com/questions/71902740/how-to-retrieve-and-format-wifi-mac-address-in-micropython-on-esp32)** --- ## 一、幫 ESP32-CAM 刷 MicroPython 韌體 :::danger **由於官方 MicroPython 韌體並不支援 Camera 模組,因此需要自行下載有支援 Camera 模組的第三方 MicroPython 韌體!!!** ::: ### 1. 下載支援 Camera 的第三方MicroPython for ESP32韌體 - **1-1. 下載點:https://github.com/shariltumin/esp32-cam-micropython-2022** :::danger **注意:以下這種下載方式,會下載不完全,應避免使用!!** ![](https://hackmd.io/_uploads/SywR9NJvn.png) ::: :::success **建議使用這種下載方式:** ![](https://hackmd.io/_uploads/rk7x3NyP2.png) ::: - **1-2. Camera 範例程式可參考:https://github.com/lemariva/micropython-camera-driver** ---- ### 2. 下載官方 MicroPython for ESP32 :::info **這節內容是以 Thonny 4.0.2 版來進行的,Thonny 新版 4.1.0 已經不需要事先自行下載官方 MicroPython 韌體了!!!** ::: - **2-1. 下載點:https://micropython.org/download/esp32/** **下載最新穩定的 Releases (不要用 Nightly builds)** ![](https://hackmd.io/_uploads/rJPLJ6pLn.png) ---- ### 3. 使用 Thonny IDE 來燒錄官方 MicroPython 韌體 :::info **這節內容是以 4.0.2 版的畫面,來進行截圖撰寫,新的 4.1.0 版畫面,有稍微改變,不過暫時仍可參考!!!** ::: - **2-1. 開啟 Thonny IDE 後,點「執行 / 設定直譯器」,如下圖:** ![](https://hackmd.io/_uploads/ry9Bu3pIh.png) - **2-2. 接下來點選步驟,如下圖:** ![](https://hackmd.io/_uploads/BkuBi3aI2.png) - **2-3. 接下來點選「安裝或是更新 MicroPython」,如下圖:** ![](https://hackmd.io/_uploads/Sy8X23a83.png) - **2-4. 接下來點選步驟,即可幫 ESP32-CAM 燒錄,如下圖:** ![](https://hackmd.io/_uploads/SJzix6pU2.png) **燒錄進行中(沒裝燒錄擴充版的,記得要先按一下 Flash 才會開始燒錄,否則會出現 No serial data received 的錯誤訊息!)** ![](https://hackmd.io/_uploads/HJhrETTL2.png) **燒錄成功後,按「關閉」離開本作業。** ![](https://hackmd.io/_uploads/BkuOSTpI3.png) **要按一下 ESP32-CAM 上的 RTS 鈕,如下圖的 B :** ![](https://hackmd.io/_uploads/ryKRC82U3.png) **再按「確認」,如下圖。** ![](https://hackmd.io/_uploads/SJRKw6aI3.png) **燒錄成功,可以看到如下的訊息:** ![](https://hackmd.io/_uploads/H1dx_pTLn.png) ---- ### 4. 手動刷 MicroPython 韌體 :::danger - **4-0. 特別說明:由於 Windows 的 Thonny 4.1.0 版,在刷非官方(或稱第三方)的 MicroPython 韌體,會有錯誤訊息,而無法刷成功,在這個 bug 被解決之前,可降版本,或是使用下方的指令,全手動方式進行刷第三方韌體!!!(2023-06-10)** ::: - **4-1. 請先開啟「工具/開啟系統終端機」,然在利用「複製/貼上」的方式,在終端機內,一條一條的執行以下指令。** **esptool-flash-esp32.txt** ```bash= ## ## for Thonny 4.1.0 for MS Windows. ## by AI4kids 蓉爸 ## Created: 2023-06-10 ## Revised: 2023-06-10 ## ## 請先開啟「工具/開啟系統終端機」,然在執行以下指令。 # 更新 pip 套件 pip install --upgrade pip # 安裝 gdown and esptool 套件 pip install gdown esptool ## ===================================================== ## 這時要先去執行 ## dlmpfm_with_camera_support.py ## 以便下載韌體 firmware-20230607.bin! ## ===================================================== # 先清除 ESP32 上的韌體 python -m esptool --chip esp32 erase_flash ## ===================================================== ## 以下指令是使用 COM 4 的範例!! ## 需先確定自己的 COM 埠,再執行以下程式 ## ===================================================== # 刷新的韌體 flash the firmware to ESP32 ## python -m esptool --chip esp32 --port <serial_port> write_flash -z 0x1000 <esp32-X.bin> python -m esptool --chip esp32 --port COM4 write_flash -z 0x1000 firmware-20230607.bin ``` - **4-2. 在 Thonny 內執行下面這隻 python 程式,即能自動下載支援 Camera 模組的第三方 MicroPython 韌體。** **dlmpfm_with_camera_support.py 的內容如下:** ```python= import gdown ## ## 下載 MicroPython with camera support on an ESP32-Camera ## 網址:https://github.com/shariltumin/esp32-cam-micropython-2022 # url = "https://github.com/shariltumin/esp32-cam-micropython-2022/raw/main/firmwares-20230607/WIFI%2BTLS/firmware.bin" output_File = "firmware-20230607.bin" gdown.download(url, output=output_File, quiet=False, fuzzy=True) ``` **Ref:** - **[Python subprocess 模組使用教學 (2023-06-16)](https://www.myapollo.com.tw/blog/python-subprocess/)** --- ## 二、MicroPython 測試 **Ref:** - **[Access images from ESP32-cam in Python (Flask) (2021-02-21)](https://nannigalaxy.medium.com/how-to-get-images-from-esp32-cam-for-python-using-flask-115d288a891c)**