ESP32-CAM故障排除指南:已修復的最常見問題

ESP32-CAM故障排除指南:已修復的最常見問題


ESP32-CAM故障排除指南:已修復的最常見問題


在使用ESP32-CAM發佈了一些項目後,一些讀者報告了嘗試使用ESP32-CAM時出現的問題。本指南匯編了使用ESP32-CAM時最常見的錯誤以及如何修復這些錯誤。

請注意,有些錯誤我們無法重現。然而,我們收集了讀者提供的所有信息,以獲得最常見問題的答案。

如果您對這些問題有不同的問題或不同的解決方案,可以在下面寫一條評論來分享您的建議。

最常見的錯誤:

1.連接ESP32失敗:等待數據包頭超時

2.Camera init失敗,錯誤為0x20001或類似

3.瀏覽器檢測器或大師冥想錯誤

4.草圖錯誤太大-選擇了錯誤的分區方案

5.COMX上的板不可用–未選擇COM端口

6.Psram錯誤:未安裝GPIO isr服務

7.弱Wi-Fi信號

8.Arduino IDE串行監視器中沒有IP地址

9.無法打開web服務器

10.圖像滯後/顯示大量延遲

11.esp_camera_fb_get():未能按時獲取幀!


1.連接ESP32失敗:等待數據包頭超時


ESP32-CAM故障排除指南:已修復的最常見問題


出現這個錯誤意味著ESP32-CAM沒有在燒錄模式或者開發板可能沒有正確的和FIDI編碼器進行連接。

仔細檢查上傳代碼的步驟

再次檢查您是否按照正確的步驟將ESP32-CAM置於燒錄模式。未能完成其中一個步驟可能會導致該錯誤。以下是您需要遵循的步驟:

用FTDI編碼器連接電腦和ESP32-CAM開發板。

如圖所示:


ESP32-CAM故障排除指南:已修復的最常見問題


(注意點:GPIO 0一定要和GND進行連接,不然沒法燒錄代碼的)

許多FTDI編碼器都有一個跳線,允許您選擇3.3V或5V。確保跳線位於選擇5V的正確位置。

ESP32-CAMFTDI Programmer

GNDGND

5VVCC (5V)

U0RTX

U0TRX

GPIO 0GND

燒錄代碼需要下面幾步:

1)點擊Tools->Board,並選擇AI-Thinker ESP32-CAM

2)點擊Tools->Port,並選擇與ESP32連接的COM端口

3)然後點擊上傳按鈕上傳代碼


ESP32-CAM故障排除指南:已修復的最常見問題


4)如下圖所示,當您開始在調試窗口上看到這些提示時,請按ESP32-CAM開發板上的RST按鈕。


ESP32-CAM故障排除指南:已修復的最常見問題


然後等幾秒鐘,代碼將成功上傳到你的開發板上。

GPIO 0必須連接到GND

重要提示:如果無法上載代碼,請再次檢查GPIO 0是否已連接到GND,以及是否在“工具”菜單中選擇了正確的設置。您還應按下開發板上的重置按鈕,以燒錄模式重新啟動ESP32。另外,檢查您是否將FTDI編程器跳線設置為5V。

檢查你使用的FTDI編碼器

我們的一位讀者朋友發現下面一個問題:“能用USB-to-TTL模式的編碼器CP2102,而無法使用CH340模式的編碼器”。

為ESP32-CAM供電5伏

另外一些讀者朋友報告說只能設置成5v的電源才能正確的上傳代碼,因此最好使用5v的電源。

5v的FTDI編碼器

使用萬用表測量FTDI編程器(VCC和GND)的輸出電壓,確保它為ESP32-CAM提供5伏電壓。


ESP32-CAM故障排除指南:已修復的最常見問題


2.Camera init失敗,錯誤為0x20001或類似


ESP32-CAM故障排除指南:已修復的最常見問題


如果您得到這個確切的錯誤,這意味著您的相機OVX沒有正確地連接到您的ESP32開發板,或者您在代碼中有錯誤的管腳分配。

有時,多次拔掉和插入FTDI程序員的插頭或多次重新啟動電路板,可能會解決這個問題。

攝像頭連接不正確

攝像頭有一個很小的連接器,因此你必須確定它正確地連接到正確的位置,否則它不能正常工作。

代碼中的pin分配錯誤

當您得到這個錯誤時,也可能意味著您沒有在define部分中選擇正確的開發板,或者您的開發板的引腳定義錯誤。

確保在項目中選擇了正確的相機模塊。您只需取消註釋正確的相機模塊並註釋所有其他模塊:

//#define CAMERA_MODEL_WROVER_KIT

//#define CAMERA_MODEL_M5STACK_PSRAM

#define CAMERA_MODEL_AI_THINKER

在這個例子中,我們使用了CAMERA_MODEL_AI_THINKER,因此它是能工作的。否則,它將使引腳分配失敗,攝像頭將無法初始化。

有許多類esp32-cam開發板發佈(“類似板”),因此esp32和OV攝像頭之間的接線可能不同,因此各個被選擇攝像頭模塊可能也不同。您可能需要檢查每個gpio聲明與您的開發板上的引腳輸出。

例如,不帶PSRAM的M5Stack開發板的管腳分配與帶有PSRAM的M5Stack開發板的管腳分配是不同的(默認情況下在代碼中定義)。因此,您需要根據電路板的pinout相應地更改代碼中的pin定義。

USB電源供電不足

如果您正在通過計算機上的USB端口為ESP32供電,它可能無法提供足夠的電源。

錯誤的FTDI編碼器

一些讀者反應FTDI編碼器可能使用中會有一些問題

攝像機/連接器壞了

如果出現此錯誤,也可能意味著相機或相機功能區已損壞。如果是這樣,您可能會得考慮買一個新的OV2640相機探頭。

3.瀏覽器檢測器或大師冥想錯誤

當您打開Arduino IDE串行監視器時,錯誤消息“Brownout detector was triggered”(瀏覽器檢測器已觸發)不斷被打印。這意味著有某種硬件問題。

它通常與以下問題之一有關:

劣質USB線;

USB線太長;

有缺陷的板(焊點不良);

電腦USB接口壞;

或者計算機USB端口提供的電源不足。

解決方案:

嘗試其他較短的USB電纜(帶數據線)

使用其他計算機USB端口或使用帶外部電源的USB集線器

一些讀者報告說,當用5V為ESP32-CAM供電時,問題得到了解決。

另外,請遵循第3條中描述的建議。

4.草圖錯誤太大-選擇了錯誤的分區方案


ESP32-CAM故障排除指南:已修復的最常見問題


當你得到下面的錯誤時:

Sketch too big; see http://www.arduino.cc/en/Guide/Troubleshooting#size for tips on reducing it.

Error compiling for board ESP32 Dev Module.

這意味著您沒有選擇正確的分區方案。確保選擇了正確的分區方案。在Arduino IDE中,進入“工具>分區方案”,選擇“大型應用程序(3MB無OTA)”。

5.COMX上的板不可用–未選擇COM端口


ESP32-CAM故障排除指南:已修復的最常見問題


如果你得到下面的錯誤輸出:

serial.serialutil.SerialException: could not open port 'COM8': WindowsError(2, 'The system cannot find the file specified.')

Failed to execute>

the selected serial port Failed to execute>

does not exist or your board is not connected

Board at COM8 is not available

這意味著您尚未在“工具”菜單中選擇COM端口。在Arduino IDE中,轉到工具>端口並選擇ESP32連接到的COM端口。

這也可能意味著ESP32-CAM沒有與您的計算機建立串行連接,或者沒有正確連接到USB接口。

6.Psram錯誤:未安裝GPIO isr服務


ESP32-CAM故障排除指南:已修復的最常見問題


您如果使用的是不帶PSRAM的板,會出現以下錯誤或類似錯誤:

E (161) gpio: gpio_isr_handler_remove(380): GPIO isr service is not installed, call gpio_install_isr_service() first

Camera init failed with error 0x101

當開發板初始的時候進行下面的設置:

config.frame_size = FRAMESIZE_UXGA;

config.jpeg_quality = 10;

config.fb_count = 2;

添加以下內容可以解決問題(它降低了圖像分辨率,因此不需要太多空間來存儲圖像。但是,由於內存有限,無法獲得某些高分辨率格式):

if(psramFound()){

config.frame_size = FRAMESIZE_UXGA;

config.jpeg_quality = 10;

config.fb_count = 2;

} else {

config.frame_size = FRAMESIZE_SVGA;

config.jpeg_quality = 12;

config.fb_count = 1;

}

注意:沒有PSRAM的開發板無法進行人臉識別和檢測。但是,您仍然可以使用電路板的所有其他功能。例如,雖然您不能使用此項目的人臉識別和檢測功能(ESP32-CAM視頻流和Arduino IDE的人臉識別),但只要您在代碼中具有正確的管腳分配,您仍然可以播放此示例並探索電路板功能。

7.弱Wi-Fi信號

一些讀者報告說,用5V為ESP32-CAM供電後,他們得到了更穩定的Wi-Fi信號。

ESP32-CAM可以選擇使用內置天線或外部天線。如果您的ESP32-CAM AI-Thinker沒有Wi-Fi連接或連接不良,則可能啟用了外部天線。如果您將外部天線連接到連接器,它應該工作正常。

檢查天線接頭上的跨接電阻0K是否位於所需天線的正確位置。有3個白色的小方格像“


ESP32-CAM故障排除指南:已修復的最常見問題


下面的照片顯示了該區域的詳細情況。你可以清楚地看到一個小的0千電阻連接到內置天線。


ESP32-CAM故障排除指南:已修復的最常見問題


打開電路板,使PCB天線向上:

要使用PCB天線,電阻器必須位於頂部位置,如下所示:/

對於天線接頭,電阻器必須位於底部位置,如下所示:\\

因此,要啟用板載天線:

把天線上的電阻搬開,它就在這個位置\\

並將兩個連接焊接在一起,以啟用板載天線。

8.Arduino IDE串行監視器中沒有IP地址

如果您只看到串行監視器上打印的點(……),則表示您的ESP32-CAM沒有與路由器建立Wi-Fi連接。

仔細檢查您的網絡憑據

您需要確保在以下變量中鍵入了準確的網絡憑據(SSID和密碼):

const char*ssid=“用您的ssid替換”;

const char*password=“用您的密碼替換”;

在Arduino IDE串行監視器中選擇正確的波特率

如果您在Arduino IDE串行監視器中沒有選擇正確的波特率,您將無法獲得您的板IP地址,或者您只會在屏幕上得到垃圾信息。

確保選擇正確的波特率。在我們使用ESP32-CAM的例子中,我們使用115200波特率。

多次復位電路板

您可能還需要多次按下ESP32-CAM板載重置按鈕,以重新啟動ESP並在引導期間打印IP地址。

RX和TX交換

仔細檢查ESP32板和FTDI編碼器之間的連接。RX轉到TX,TX轉到RX。如果交換了這些連接,ESP32-CAM將無法與您的計算機建立串行通信。

Wi-Fi範圍

如果路由器遠離ESP32板,它可能無法捕捉Wi-Fi信號。確保ESP32-CAM與路由器相當接近。

9.無法打開web服務器

如果ESP32-CAM正在Arduino IDE串行監視器中打印IP地址,但當您嘗試在web瀏覽器中打開web服務器時,您會看到一個空白屏幕,這通常意味著您正嘗試使用多個web瀏覽器選項卡訪問ESP32-CAM web服務器。

目前,這些ESP32-CAM草圖一次只能與一個連接的客戶端一起工作。

10.圖像滯後/顯示大量延遲

對於這樣一個小而便宜的相機來說,有一定的延遲是正常的。一些讀者建議如下以減少延遲:

使用獨立的5V電源為ESP32-CAM供電

在代碼中使用以下命令減小幀大小:

config.frame_size=FRAMESIZE_SVGA或config.frame_size=FRAMESIZE_VGA

使用外部天線。

11.esp_camera_fb_get():未能按時獲取幀!

我個人從未遇到過這個問題。然而,一些讀者在使用ESP32-CAM開發板時會遇到這個錯誤。

我們的一位讀者建議如下來解決這個問題:

“我使用了來自Aliexpress的ESP32-CAM模塊帶2MP OV2640攝像機傳感器模塊C型USB模塊。雖然沒有提到,它沒有額外的PSRAM其他M5型號做,相機有一個改變了IO引腳。

請參見:https://github.com/m5stack/m5stack-cam-psram/blob/master/README.md並向下滾動至“接口比較”。

我們使用的CameraWebServer Arduino示例可能沒有定義此ESP32-CAM模型。

您需要自己在主選項卡中添加它添加:

#define CAMERA_MODEL_M5STACK_NO_PSRAM

在camera_pins.h選項卡中添加以下內容:

#elif defined(CAMERA_MODEL_M5STACK_NO_PSRAM)

#define PWDN_GPIO_NUM -1

#define RESET_GPIO_NUM 15

#define XCLK_GPIO_NUM 27

#define SIOD_GPIO_NUM 25

#define SIOC_GPIO_NUM 23

#define Y9_GPIO_NUM 19

#define Y8_GPIO_NUM 36

#define Y7_GPIO_NUM 18

#define Y6_GPIO_NUM 39

#define Y5_GPIO_NUM 5

#define Y4_GPIO_NUM 34

#define Y3_GPIO_NUM 35

#define Y2_GPIO_NUM 17

#define VSYNC_GPIO_NUM 22

#define HREF_GPIO_NUM 26

#define PCLK_GPIO_NUM 21

還要注意的是,沒有保護的ESP32-CAM模塊的最大分辨率是XGA 1024×768,我想也是因為缺少PSRAM。“

我們希望這個建議能解決你的問題。請在評論部分告訴我們。

使用較大尺寸的microSD卡

根據他的數據表,ESP32-CAM應該只支持4GB microSD卡。

不過,我們已經用16GB的microSD卡進行了測試,效果很好。

您可能無法存儲超過4GB的空間,即使您有16GB的空間。我們還沒有測試過存儲容量超過4GB,所以對此還不確定。

這些項目是否與M5Stack板兼容?

是的,M5Stack ESP32板與out項目兼容。但是,您必須檢查您的相機引腳,以確保您在代碼中有正確的分配。

設置ESP32-CAM作為wifi熱點(AP)

您可以將ESP32-CAM設置為wifi熱點(AP)。這意味著您可以直接連接到ESP32-CAM,而無需連接到路由器。您可以使用以下代碼將視頻流web服務器設置為訪問點,可以參考我前面的文章:

https://www.toutiao.com/i6799853017756598792/

結束

我們希望您已經發現這個故障排除指南很有用,並且您能夠使您的ESP32-CAM與我們的項目一起工作。

如果您有任何其他問題或建議如何解決,請張貼在下面的評論。

謝謝你的閱讀。

P、 當我們不能在我們這邊重現錯誤時,很難理解你的項目出了什麼問題。但是,如果您發佈了錯誤,可能會有其他讀者使用相同的問題/解決方案,因此我們鼓勵您在評論部分進行交互。


分享到:


相關文章: