{"id":17485,"date":"2025-03-02T17:02:50","date_gmt":"2025-03-02T17:02:50","guid":{"rendered":"https:\/\/edukeytech.com\/?post_type=product&#038;p=17485"},"modified":"2025-03-02T17:02:50","modified_gmt":"2025-03-02T17:02:50","slug":"esp32-cam-dual-core-camera-wifi-bluetooth","status":"publish","type":"product","link":"https:\/\/edukeytech.com\/en\/product\/esp32-cam-dual-core-camera-wifi-bluetooth\/","title":{"rendered":"ESP32-CAM Dual Core Camera Wifi Bluetooth"},"content":{"rendered":"<p><strong>ESP32-CAM \u2013 Module Cam\u00e9ra WiFi &amp; Bluetooth pour Applications IoT et Vision<\/strong><\/p>\n<p><strong>L\u2019ESP32-CAM est un module embarqu\u00e9 puissant et polyvalent, int\u00e9grant une puce ESP32-S double c\u0153ur avec connectivit\u00e9 WiFi et Bluetooth 4.2, ainsi qu\u2019une cam\u00e9ra OV2640 haute r\u00e9solution. Con\u00e7u pour des applications IoT, de surveillance vid\u00e9o, de reconnaissance d\u2019images et d\u2019intelligence artificielle embarqu\u00e9e, ce module est un choix optimal pour les ing\u00e9nieurs, d\u00e9veloppeurs et makers cherchant \u00e0 ajouter une capacit\u00e9 de vision \u00e0 leurs projets embarqu\u00e9s.<\/strong><\/p>\n<p><strong>Caract\u00e9ristiques principales :<\/strong><\/p>\n<p><strong>\u2705<\/strong><strong> Microcontr\u00f4leur ESP32-S : Double c\u0153ur, architecture Xtensa LX6 cadenc\u00e9e jusqu\u2019\u00e0 240 MHz, avec 520 Ko de RAM et 4 Mo de m\u00e9moire Flash.<br \/>\n<\/strong><strong>\u2705<\/strong><strong> Cam\u00e9ra OV2640 : Capteur d\u2019image 2 MP avec une r\u00e9solution maximale de 1600&#215;1200 pixels.<br \/>\n<\/strong><strong>\u2705<\/strong><strong> Connectivit\u00e9 sans fil avanc\u00e9e : WiFi 802.11 b\/g\/n et Bluetooth 4.2 (BR\/EDR et BLE) pour des applications IoT et de streaming vid\u00e9o.<br \/>\n<\/strong><strong>\u2705<\/strong><strong> Stockage externe : Emplacement pour carte microSD (jusqu\u2019\u00e0 4 Go) pour stocker des images et vid\u00e9os captur\u00e9es.<br \/>\n<\/strong><strong>\u2705<\/strong><strong> Multiples GPIO : Permet l\u2019int\u00e9gration avec divers capteurs, actionneurs et autres modules \u00e9lectroniques.<br \/>\n<\/strong><strong>\u2705<\/strong><strong> Faible consommation \u00e9nerg\u00e9tique : Con\u00e7u pour des applications IoT embarqu\u00e9es n\u00e9cessitant une autonomie optimis\u00e9e.<br \/>\n<\/strong><strong>\u2705<\/strong><strong> Compatibilit\u00e9 logicielle \u00e9tendue : Programmable avec l\u2019IDE Arduino, Espressif IDF, MicroPython et autres environnements de d\u00e9veloppement embarqu\u00e9s.<\/strong><\/p>\n<p><strong>Applications typiques :<\/strong><\/p>\n<p><strong>\ud83d\udcf7<\/strong><strong> Surveillance et s\u00e9curit\u00e9 : Cam\u00e9ra WiFi pour projets de surveillance domestique ou industrielle.<br \/>\n<\/strong><strong>\ud83d\udce1<\/strong><strong> Projets IoT intelligents : Capture et traitement d\u2019images en temps r\u00e9el pour des applications embarqu\u00e9es.<br \/>\n<\/strong><strong>\ud83d\udee0<\/strong><strong> Prototypage rapide : Id\u00e9al pour tester et d\u00e9velopper des solutions connect\u00e9es.<br \/>\n<\/strong><strong>\ud83d\udd0d<\/strong><strong> Reconnaissance faciale et intelligence artificielle : Compatible avec ESP-WHO, framework d\u2019ESP32 pour l\u2019IA.<br \/>\n<\/strong><strong>\ud83d\ude97<\/strong><strong> Vision embarqu\u00e9e pour robots et drones : Int\u00e9gration possible pour la navigation et la d\u00e9tection d\u2019objets.<\/strong><\/p>\n<p><strong>Configuration et mise en route avec Arduino<\/strong><\/p>\n<p><strong>Mat\u00e9riel n\u00e9cessaire<\/strong><\/p>\n<p><strong>\ud83d\udd39<\/strong><strong> ESP32-CAM<br \/>\n<\/strong><strong>\ud83d\udd39<\/strong><strong> Adaptateur FTDI (pour la programmation via UART)<br \/>\n<\/strong><strong>\ud83d\udd39<\/strong><strong> C\u00e2ble micro-USB<br \/>\n<\/strong><strong>\ud83d\udd39<\/strong><strong> Carte microSD (pour le stockage d\u2019images)<\/strong><\/p>\n<p><strong>Installation de l\u2019ESP32 dans l\u2019IDE Arduino<\/strong><\/p>\n<p><strong>1\ufe0f<\/strong><strong>\u20e3<\/strong><strong> T\u00e9l\u00e9chargez et installez l\u2019IDE Arduino.<br \/>\n2\ufe0f<\/strong><strong>\u20e3<\/strong><strong> Ajoutez le support ESP32 dans le gestionnaire de cartes via l\u2019URL suivante :<\/strong><\/p>\n<p><strong>https:\/\/dl.espressif.com\/dl\/package_esp32_index.json<\/strong><\/p>\n<p><strong>3\ufe0f<\/strong><strong>\u20e3<\/strong><strong> S\u00e9lectionnez la carte : <em>ESP32 Wrover Module<\/em> dans l\u2019IDE Arduino.<\/strong><\/p>\n<p><strong>Branchement du module ESP32-CAM<\/strong><\/p>\n<table>\n<thead>\n<tr>\n<td><strong>ESP32-CAM<\/strong><\/td>\n<td><strong>Adaptateur FTDI<\/strong><\/td>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>GND<\/strong><\/td>\n<td><strong>GND<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>5V<\/strong><\/td>\n<td><strong>VCC (5V)<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>U0TXD<\/strong><\/td>\n<td><strong>RX<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>U0RXD<\/strong><\/td>\n<td><strong>TX<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>\u26a0<\/strong><strong> Attention : Mettre IO0 \u00e0 GND lors du flashage du firmware.<\/strong><\/p>\n<p><strong>Exemple de Code Arduino : Capture et Sauvegarde d\u2019une Image sur microSD<\/strong><\/p>\n<p><strong>#include \u00ab\u00a0esp_camera.h\u00a0\u00bb<\/strong><\/p>\n<p><strong>#include \u00ab\u00a0FS.h\u00a0\u00bb<\/strong><\/p>\n<p><strong>#include \u00ab\u00a0SD_MMC.h\u00a0\u00bb<\/strong><\/p>\n<p><strong>#include \u00ab\u00a0WiFi.h\u00a0\u00bb<\/strong><\/p>\n<p><strong>\u00a0<\/strong><\/p>\n<p><strong>const char* ssid = \u00ab\u00a0your_SSID\u00a0\u00bb;<\/strong><\/p>\n<p><strong>const char* password = \u00ab\u00a0your_PASSWORD\u00a0\u00bb;<\/strong><\/p>\n<p><strong>\u00a0<\/strong><\/p>\n<p><strong>\/\/ D\u00e9finition des broches de la cam\u00e9ra<\/strong><\/p>\n<p><strong>#define PWDN_GPIO_NUM\u00a0\u00a0\u00a0\u00a0 -1<\/strong><\/p>\n<p><strong>#define RESET_GPIO_NUM\u00a0\u00a0\u00a0 -1<\/strong><\/p>\n<p><strong>#define XCLK_GPIO_NUM\u00a0\u00a0\u00a0\u00a0\u00a0 0<\/strong><\/p>\n<p><strong>#define SIOD_GPIO_NUM\u00a0\u00a0\u00a0\u00a0 26<\/strong><\/p>\n<p><strong>#define SIOC_GPIO_NUM\u00a0\u00a0\u00a0\u00a0 27<\/strong><\/p>\n<p><strong>#define Y9_GPIO_NUM\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 35<\/strong><\/p>\n<p><strong>#define Y8_GPIO_NUM\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 34<\/strong><\/p>\n<p><strong>#define Y7_GPIO_NUM\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 39<\/strong><\/p>\n<p><strong>#define Y6_GPIO_NUM\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 36<\/strong><\/p>\n<p><strong>#define Y5_GPIO_NUM\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 21<\/strong><\/p>\n<p><strong>#define Y4_GPIO_NUM\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 19<\/strong><\/p>\n<p><strong>#define Y3_GPIO_NUM\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 18<\/strong><\/p>\n<p><strong>#define Y2_GPIO_NUM\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 5<\/strong><\/p>\n<p><strong>#define VSYNC_GPIO_NUM \u00a0\u00a0\u00a025<\/strong><\/p>\n<p><strong>#define HREF_GPIO_NUM\u00a0\u00a0\u00a0\u00a0 23<\/strong><\/p>\n<p><strong>#define PCLK_GPIO_NUM\u00a0\u00a0\u00a0\u00a0 22<\/strong><\/p>\n<p><strong>\u00a0<\/strong><\/p>\n<p><strong>void setup() {<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 Serial.begin(115200);<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 <\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 WiFi.begin(ssid, password);<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 while (WiFi.status() != WL_CONNECTED) {<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/strong><strong>delay(1000);<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Serial.println(\u00ab\u00a0Connexion WiFi en cours&#8230;\u00a0\u00bb);<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 }<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 Serial.println(\u00ab\u00a0Connect\u00e9 au WiFi\u00a0\u00bb);<\/strong><\/p>\n<p><strong>\u00a0<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 \/\/ Configuration de la cam\u00e9ra<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 camera_config_t config;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 config.ledc_channel = LEDC_CHANNEL_0;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 config.ledc_timer = LEDC_TIMER_0;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 config.pin_d0 = Y2_GPIO_NUM;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 config.pin_d1 = Y3_GPIO_NUM;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 config.pin_d2 = Y4_GPIO_NUM;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 config.pin_d3 = Y5_GPIO_NUM;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 config.pin_d4 = Y6_GPIO_NUM;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 config.pin_d5 = Y7_GPIO_NUM;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 config.pin_d6 = Y8_GPIO_NUM;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 config.pin_d7 = Y9_GPIO_NUM;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 config.pin_xclk = XCLK_GPIO_NUM;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 config.pin_pclk = PCLK_GPIO_NUM;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 config.pin_vsync = VSYNC_GPIO_NUM;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 <\/strong><strong>config.pin_href = HREF_GPIO_NUM;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 config.pin_sscb_sda = SIOD_GPIO_NUM;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 config.pin_sscb_scl = SIOC_GPIO_NUM;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 config.pin_pwdn = PWDN_GPIO_NUM;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 config.pin_reset = RESET_GPIO_NUM;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 config.xclk_freq_hz = 20000000;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 config.pixel_format = PIXFORMAT_JPEG;<\/strong><\/p>\n<p><strong>\u00a0<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 if(psramFound()){<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 config.frame_size = FRAMESIZE_UXGA;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 config.jpeg_quality = 10;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 config.fb_count = 2;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 } else {<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 config.frame_size = FRAMESIZE_SVGA;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 config.jpeg_quality = 12;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 config.fb_count = 1;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 <\/strong><strong>}<\/strong><\/p>\n<p><strong>\u00a0<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 \/\/ Initialisation de la cam\u00e9ra<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 if (esp_camera_init(&amp;config) != ESP_OK) {<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Serial.println(\u00ab\u00a0Erreur d&rsquo;initialisation de la cam\u00e9ra\u00a0\u00bb);<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 return;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 }<\/strong><\/p>\n<p><strong>\u00a0<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 \/\/ Initialisation de la carte SD<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 if(!SD_MMC.begin()){<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Serial.println(\u00ab\u00a0\u00c9chec du montage de la carte SD\u00a0\u00bb);<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/strong><strong>return;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 }<\/strong><\/p>\n<p><strong>\u00a0<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 \/\/ Capture d&rsquo;une image<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 camera_fb_t * fb = esp_camera_fb_get();<\/strong><\/p>\n<p><strong>\u00a0 \u00a0\u00a0if (!fb) {<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/strong><strong>Serial.println(\u00ab\u00a0Capture de l&rsquo;image \u00e9chou\u00e9e\u00a0\u00bb);<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 return;<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 }<\/strong><\/p>\n<p><strong>\u00a0<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 \/\/ Sauvegarde de l&rsquo;image sur la carte SD<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 <\/strong><strong>File file = SD_MMC.open(\u00ab\u00a0\/photo.jpg\u00a0\u00bb, FILE_WRITE);<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 <\/strong><strong>if(!file){<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Serial.println(\u00ab\u00a0Erreur d&rsquo;ouverture du fichier\u00a0\u00bb);<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 <\/strong><strong>} else {<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 file.write(fb-&gt;buf, fb-&gt;len);<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/strong><strong>Serial.println(\u00ab\u00a0Image sauvegard\u00e9e sur la carte SD\u00a0\u00bb);<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 <\/strong><strong>}<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 file.close();<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 esp_camera_fb_return(fb);<\/strong><\/p>\n<p><strong>}<\/strong><\/p>\n<p><strong>\u00a0<\/strong><\/p>\n<p><strong>void loop() {<\/strong><\/p>\n<p><strong>\u00a0\u00a0\u00a0 \/\/ Boucle principale (peut \u00eatre utilis\u00e9e pour prendre des photos en continu)<\/strong><\/p>\n<p><strong>}<\/strong><\/p>","protected":false},"excerpt":{"rendered":"<p><strong>L\u2019ESP32-CAM est un module embarqu\u00e9 puissant et polyvalent, int\u00e9grant une puce ESP32-S double c\u0153ur avec connectivit\u00e9 WiFi et Bluetooth 4.2, ainsi qu\u2019une cam\u00e9ra OV2640 haute r\u00e9solution<\/strong><\/p>","protected":false},"featured_media":17487,"comment_status":"open","ping_status":"closed","template":"","meta":{"_joinchat":[]},"product_brand":[],"product_cat":[161],"product_tag":[],"class_list":["post-17485","product","type-product","status-publish","has-post-thumbnail","product_cat-capteurs","first","instock","shipping-taxable","purchasable","product-type-simple"],"_links":{"self":[{"href":"https:\/\/edukeytech.com\/en\/wp-json\/wp\/v2\/product\/17485","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/edukeytech.com\/en\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/edukeytech.com\/en\/wp-json\/wp\/v2\/types\/product"}],"replies":[{"embeddable":true,"href":"https:\/\/edukeytech.com\/en\/wp-json\/wp\/v2\/comments?post=17485"}],"version-history":[{"count":1,"href":"https:\/\/edukeytech.com\/en\/wp-json\/wp\/v2\/product\/17485\/revisions"}],"predecessor-version":[{"id":17489,"href":"https:\/\/edukeytech.com\/en\/wp-json\/wp\/v2\/product\/17485\/revisions\/17489"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/edukeytech.com\/en\/wp-json\/wp\/v2\/media\/17487"}],"wp:attachment":[{"href":"https:\/\/edukeytech.com\/en\/wp-json\/wp\/v2\/media?parent=17485"}],"wp:term":[{"taxonomy":"product_brand","embeddable":true,"href":"https:\/\/edukeytech.com\/en\/wp-json\/wp\/v2\/product_brand?post=17485"},{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/edukeytech.com\/en\/wp-json\/wp\/v2\/product_cat?post=17485"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/edukeytech.com\/en\/wp-json\/wp\/v2\/product_tag?post=17485"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}