我的ESP32實做書籍:https://youyouyou.pixnet.net/blog/post/121105860
博客來網址:https://www.books.com.tw/products/0010901195
ESP32-CAM是一個ESP32基礎的開發版,除了ESP32本身內建WIFI及藍芽BLE之外,再加上OV2640兩百萬畫素相機模組、TF卡、閃光燈模組,所組成的開發版。
送你這麼多東西,價格卻想像不到的便宜。露天賣場:https://goods.ruten.com.tw/item/show?21910115309507
▼以下為ESP32-CAM外觀及規格。
▼另外還需要準備一個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
以下說明ESP32-CAM video stream server的步驟
一、安裝Arduino IDE
二、安裝USB TTL及驅動程式
三、連接USBTTL及ESP32-CAM
四、修改範例程式
五、ESP32-CAM stream 效能評估:包括stream效能以及臉部辨識效能評估
一、安裝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)
▼上傳步驟
1. 開啟序列通訊,要查看訊息用
2.拿一條母母線對接IO0+GND後,按RST,此時會進入下載模式,序列通訊會跳出以下視窗
waiting for download
3. 在Arduino IDE上按上傳按鈕,等候上傳
4. 上傳完畢後,Arduino IDE下方的訊息欄會出現 Hard restting by RTS pin
5. 再按一次RST
6. 就可以觀察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. 320x240效能評估
由於每個人的環境不太相同(WIFI、電力的穩定),這裡的效能評估只作為參考,根據Serial提供的報表,在320x240的時候,約在20-30fps之間
▼我覺得這樣的效果非常好,一般影像辨識不須太大的影像,而傳輸速度也非常好
2. 640x480效能評估
▼根據Serial提供的報表,在640x480的時候,約在10-20fps之間
3.1024x768效能評估
▼根據Serial提供的報表,在1024x768的時候,約在3-10fps之間
4. 1280x1024效能評估
▼根據Serial提供的報表,在1280x1024的時候,約在落在5fps以下 .
5. 臉部偵測與驗證功能
▼臉部辨識,打開下方的Face Detection,就可以開啟臉部偵測的功能,一旦偵測到臉部,就會以黃色框框。至於他的效能…就有點 。
▼如果你想要作到,看到臉就開啟門,或者打開蜂鳴器等功能,可以在app_httpd.cpp頁簽中找到副程式static void draw_face_boxes,你可以把需要的功能自己加到裡面。
6. 臉部驗證
我看程式裡面說可以存到七張臉,就可以做臉部驗證開門,這部份就有賴其他網友幫忙測試 。

能送訊號 拍照存檔嗎??
當然可以啊
https://www.totalcardiagnostics.com/support/Knowledgebase/Article/View/92/20/prolific-usb-to-serial-fix-official-solution-to-code-10-error
http://www.totalcardiagnostics.com/files/PL2303_64bit_Installer.exe
您好,我開啟Face Detection都抓不到臉,版主有遇過這個問題嗎?
臉部辨識只有在低解析度可用。如果低解析度還是沒有,要改安裝esp32模組編號1.0.1,因為1.0.2的模組臉部辨識有問題
你好,請問燒錄好程式之後wifi一直連不上有什麼解決方法嗎 原本看其他網站是推薦接3.3v但我用時會一直brownout 接5v又變成wifi訊號太弱 連不上😢
要接5V喔,3.3V不夠,這類的印刷天線,WIFI收訊都不太佳,最好放在AP附近
感謝指導
應該的沒問題,大家一起研究分享
10/23再度嘗試成功,感謝 往下關挑戰
不好意思 請問在燒錄的過程會一直跳 esptool.py v2.6 Serial port COM5 Connecting..... Chip is ESP32D0WDQ5 (revision 1) Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None MAC: 84:0d:8e:c2:20:b0 Uploading stub... A fatal error occurred: Timed out waiting for packet header A fatal error occurred: Timed out waiting for packet header 該怎麼處理 換過USB也還是不行
IO0<->GND 對接再按reset鈕試試
想問一下霸王大~ 這可以拿來做 ip cam? 如高速公路監控實況, 有無此類的教學? 謝謝! 我想要遠端連入家裡~
遠端連入家中這類問題跟網路架構有關,請查詢您的無線AP使用廠牌後搜尋關鍵字虛擬伺服器或連接阜轉送
請問它可識別特定人臉?還是只能識別是人臉而已?
內建功能可以辨識七個特定人臉,但是重開機會洗掉重來
如果我把esp32 cam 相左旋轉 90 度 , 如此取得的影象也會向右旋轉 90 , 請問如何設定,讓 web server 中影像不要向右旋轉 90 , 謝謝
目前arduino程式只有提供水平跟垂直翻轉,90度翻轉,可能要用js去寫
老師你好 請問esp32 cam 有深度睡眠的教學嗎? 謝謝
正在寫深度睡眠,網址先給你 https://youyouyou.pixnet.net/blog/post/120403519
請問網頁設定完後,關掉網頁,辨識功能會消失嗎,還是網頁要一直開著?
他的辨識功能是寫在JS里,用瀏覽器執行,所以要一直開著
老師您好 想請教您 我照著文章步驟後會出現下面這段文字錯誤 可以請您幫忙解決嗎 如果知道原因的話 感謝 A fatal error occurred: Timed out waiting for packet header ESP32套件:1.0.4(1.0.1~1.0.4都嘗試過) esptool.py v2.6 TTL to USB 型號:pl2303hx
完成後,即可上傳燒錄,要注意的是ESP32系列,必須在.….____.....____.....____.....時 非常重要~~ 非常重要~~ 非常重要~~ 非常重要~~ 非常重要~~ 非常重要~~ 非常重要~~ ####燒錄時將IO0與GND對接並RESET,燒錄完成後,將IO0與GND分開,然後RESET####
感謝老師 問題已解決 發現是因為RESET按不夠久~ 燒錄時都有把IO0和GND對接
請問一下 連上線之後,就會顯示ESP32拿到的IP位置 我拿到 IP 位置 但是輸入後 沒有顯示畫面 請問要如何排除?
*****
*****
*****
*****
老師不好意思打擾了 請問一下 esp32-cam 是否可以將影像上傳到 Firebase 上面去
應該可以,只是我沒研究哦
*****
*****
*****
請問一下M5看youtubeu影片可以到1080P會不會停格?我用M4只能到480P可以正常撥放。
我覺得還行
老師不好意思打擾了想請問一下,當我上傳完並按RST後跑出的是這個 rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:1 load:0x3fff0030,len:1448 load:0x40078000,len:14844 ho 0 tail 12 room 4 load:0x40080400,len:4 load:0x40080404,len:3356 entry 0x4008059c E (473) camera: Camera probe failed with error 0x105(ESP_ERR_NOT_FOUND) Camera init failed with error 0x105 請問該如何解決?