Arduino-IDE配置ESP32-CAM開發環境踩過的那些坑
Arduino-IDE配置ESP32開發環境踩過的那些坑
坑一IDE下載開發版速度慢:
在首選項裏添加了附加開發版網址:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
https://dl.espressif.com/dl/package_esp32_index.json
之後在工具的開發版管理下載ESP32相關開發版,速度極慢,解決方案:
- 開梯子
- 手動下載安裝 (Window參考這裏)
我上傳了已下載好的軟件包 可以在這裏下載 傳送門
坑二get速度慢:
linux&MacOS適用:
在安裝包裏的tools裏運行get.py下載相關開發工具速度極慢,解決方案
- 手機開熱點試試
- 在早上等網絡暢通的時候下載,秒完,親測
坑三編譯出錯:
等一切下載安裝完畢後,運行示例CameraWebServer後編譯出錯,解決方案
再裝一遍ESP32
坑N上傳出錯:
網上大多數的配置ESP32的開發版的參數是這樣的,但是並不適用所有的,比如我的這樣設置就無法上傳程序。
坑一:
出現以下錯誤:
項目使用了 2612056 字節,佔用了 (83%) 程序存儲空間。最大爲 3145728 字節。
全局變量使用了54068字節,(16%)的動態內存,餘留273612字節局部變量。最大爲327680字節。
esptool.py v2.6
Serial port /dev/cu.usbserial-14310
Connecting........_____....._____....._____....._____....._____....._____.....____上傳項目出錯
_
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
是因爲IO_0
沒有接GND
,因爲IO_0
接GND
是串口燒錄模式。
坑二:
出現以下錯誤:
Arduino:1.8.12 (Mac OS X), 開發板:"ESP32 Wrover Module, Huge APP (3MB No OTA/1MB SPIFFS), QIO, 80MHz, 921600, None"
項目使用了 2612056 字節,佔用了 (83%) 程序存儲空間。最大爲 3145728 字節。
全局變量使用了54068字節,(16%)的動態內存,餘留273612字節局部變量。最大爲327680字節。
esptool.py v2.6
Serial port /dev/cu.usbserial-14310
Connecting.....
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
MAC: 8c:aa:b5:86:72:0c
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
A fatal error occurred: Timed out waiting for packet content
A fatal error occurred: Timed out waiting for packet content
是由於ESP32的開發版下載速度太大出的問題,把下載速度設爲460800
波特率或者更低試試。
坑三:
波特率設置好後,程序下載成功了,出現一下信息,說明程序下載成功:
riting at 0x00204000... (99 %)
Writing at 0x00208000... (100 %)
Wrote 2612176 bytes (2068304 compressed) at 0x00010000 in 52.2 seconds (effective 400.6 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 119...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (119 compressed) at 0x00008000 in 0.0 seconds (effective 2865.4 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
斷開IO_0
和GND
並且rst一下ESP32,但是ESP32一直重啓,串口一直打印以下信息:
ets Jun 8 2016 00:22:57
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:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:10864
load:0x40080400,len:6432
entry 0x400806b8
ets Jun 8 2016 00:22:57
rst:0x3 (SW_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:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:10864
load:0x40080400,len:6432
entry 0x400806b8
ets Jun 8 2016 00:22:57
rst:0x3 (SW_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:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:10864
load:0x40080400,len:6432
entry 0x400806b8
ets Jun 8 2016 00:22:57
rst:0x3 (SW_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:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:10864
load:0x40080400,len:6432
entry 0x400806b8
ets Jun 8 2016 00:22:57
......
這是因爲ESP32的芯片頻率設置錯誤,需要把頻率改爲40MHz。
最後全部設置好應該是這樣的:
最終實現效果
一切問題都解決後,串口會打印出以下信息:
ets Jun 8 2016 00:22:57
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:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:10864
load:0x40080400,len:6404
entry 0x400806b8
..
WiFi connected
Starting web server on port: '80'
Starting stream server on port: '81'
Camera Ready! Use 'http://192.168.0.14' to connect
用瀏覽器打開http://192.168.0.14
網址就可以看到ESP32-CAM的畫面裏。