我的ESP32實做書籍:我出書了 ESP32 物聯網專題
博客來網址:https://www.books.com.tw/products/0010901195
操作前準備材料
送你這麼多東西,價格卻想像不到的便宜。露天賣場:https://goods.ruten.com.tw/item/show?21910115309507
另外還需要準備一個USB TTL工具,我是採用CH340 (HW-597)模組
露天賣場:https://goods.ruten.com.tw/item/show?21618647811364
如果你用的是另一款 Prolific USB-to-Serial TTL
請參考這篇的驅動安裝: https://youyouyou.pixnet.net/blog/post/119643042
安裝Arduino IDE
1. 首先至下載arduino IDE
至原廠網站下載最新開發套件ESP32-CAM需要最新的核心程式,建議下載1.8.8最新版(update 20210327 最新版為1.8.13),此外我建議使用zip file選項,解壓縮即可使用,不需要安裝,未來電腦更新或升級也可以直接開啟,甚至放在USB都可以使用。
下載後,直接解壓縮到C:或D:底下都可以使用,建議不要使用中文目錄。
2. 安裝ESP32開發版套件
開啟Arduino IDE後,選擇file/preferences,出現preferences視窗,在addition boards manager URL輸入以下文字後,按OK。
https://dl.espressif.com/dl/package_esp32_index.json
接下來到Tools,選擇Board,並在右側開啟開發版管理員
在開發版管理員中輸入ESP32,找到ESP32套件後,點選install安裝。
這裡說明一下,有許多人反應安裝1.0.6套件,無法進行臉部辨識,因此只能先建議安裝1.0.4版本。
(下圖是舊版,請選擇1.0.4較為正常)
下載並安裝完畢後,點選close。
最後點選Tools/Board,在右側往下拉,就可以找到ESP32系列的板子,其中這次ESP32-CAM是使用ESP32 Wrover Module。
選擇後,ESP32-CAM開發版的屬性則多了以下幾個,大部分都不用更動,除了Port最後安裝完驅動程式後在選擇即可。
安裝USB TTL及驅動程式
將USB接在電腦上,並安裝驅動程式,不同類型USB有不同驅動程式,請自行下載安裝。
安裝完畢後,可在電腦的裝置管理員中查看到com port的數字,本例為COM31。
到Arduino IDE中指定COM PORT的編號。
連接USBTTL及ESP32-CAM
找一個麵包版,將ESP32-CAM與USBTTL連接,其連線方式參考圖▼。圖中綠線IO0<->GND則是在燒錄時才插上,平常保持斷開。
修改範例程式
上圖安裝完成後,就可以載入範例video stream server的範例程式
▼ 在範例程式中選擇ESP32/Camera/CameraWebSerser
▼ 將第10行//#define CAMERA_MODEL_WROVER_KIT註解起來,
將第12行#define CAMERA_MODEL_AI_THINKER的註解刪除,如下圖,並在14,15行修改你的WIFI設定
▼ 由於這個程式包含stream server及臉部辨識,因此檔案較大,將燒錄區域改成Huge APP(3MB No OTA)
上傳程式碼步驟
- 開啟序列通訊,要查看訊息用
- 拿一條母母線對接IO0+GND後,按RST,此時會進入下載模式,序列通訊會跳出以下視窗waiting for download
- 在Arduino IDE上按上傳按鈕,等候上傳
- 上傳完畢後,Arduino IDE下方的訊息欄會出現 Hard restting by RTS pin
- 再按一次RST
- 就可以觀察esp32cam的執行狀態了
另外注意,ESP32用電量較高,因此如果出現brownout的錯誤時,代表請給予較好的線材或者USB接口(建議USB3.0)
另外解決的方案可以強制關閉電流偵測,參考:https://youyouyou.pixnet.net/blog/post/120729180
ESP32-CAM stream 效能評估
▼ 一但連上線之後,就會顯示ESP32拿到的IP位置,本例為192.168.1.133
▼ 輸入在瀏覽器內,即可獲得ESP32所建立的stream server畫面
接下來只要按下Start Stream就可以獲得串流,按Get Still就獲得照片
1. 320×240效能評估
由於每個人的環境不太相同(WIFI、電力的穩定),這裡的效能評估只作為參考,根據Serial提供的報表,在320×240的時候,約在20-30fps之間
▼ 我覺得這樣的效果非常好,一般影像辨識不須太大的影像,而傳輸速度也非常好
2. 640×480效能評估
▼ 根據Serial提供的報表,在640×480的時候,約在10-20fps之間
3. 1024×768效能評估
▼ 根據Serial提供的報表,在1024×768的時候,約在3-10fps之間
4. 1280×1024效能評估
▼ 根據Serial提供的報表,在1280×1024的時候,約在落在5fps以下 .
5. 臉部偵測功能
▼ 臉部辨識,打開下方的Face Detection,就可以開啟臉部偵測的功能,一旦偵測到臉部,就會以黃色框框。至於他的效能…就有點 。
6. 臉部驗證
▼ 如果你想要作到,看到臉就開啟門,或者打開蜂鳴器等功能,可以在app_httpd.cpp頁簽中找到副程式static void draw_face_boxes,你可以把需要的功能自己加到裡面。
我看程式裡面說可以存到七張臉,就可以做臉部驗證開門,這部份就有賴其他網友幫忙測試 。