{"id":4763,"date":"2024-06-26T21:32:13","date_gmt":"2024-06-26T19:32:13","guid":{"rendered":"https:\/\/www.domotic.phdata.fr\/domotic\/?p=4763"},"modified":"2024-07-17T08:23:03","modified_gmt":"2024-07-17T06:23:03","slug":"esp32-cam","status":"publish","type":"post","link":"https:\/\/www.domotic.phdata.fr\/domotic\/esp32-cam\/","title":{"rendered":"ESP32-S-CAM"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"4763\" class=\"elementor elementor-4763\">\n\t\t\t\t<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c++\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#include &lt;esp_sleep.h&gt;\n#include &lt;driver\/rtc_io.h&gt;\n#include &lt;Arduino.h&gt;\n\n#define WAKEUP_PIN GPIO_NUM_13\n\nvoid setup() {\n    Serial.begin(115200);\n    delay(1000); \/\/ Attendre un peu pour permettre l'ouverture du moniteur s\u00e9rie\n\n    \/\/ Configurer la broche pour l'entr\u00e9e\n    pinMode(WAKEUP_PIN, INPUT);\n\n    \/\/ Configurer la m\u00e9thode de r\u00e9veil par interruption externe sur GPIO 13, signal bas\n    esp_err_t err = esp_sleep_enable_ext0_wakeup(WAKEUP_PIN, 0);\n    if (err != ESP_OK) {\n        Serial.printf(\"Erreur de configuration du r\u00e9veil externe : %s\\n\", esp_err_to_name(err));\n        return;\n    }\n\n    Serial.println(\"Mise en veille...\");\n    delay(1000); \/\/ Attendre un peu avant de dormir\n\n    \/\/ Entrer en sommeil profond\n    esp_deep_sleep_start();\n}\n\nvoid loop() {\n    \/\/ Ce code ne sera jamais atteint car l'ESP32 red\u00e9marre apr\u00e8s chaque r\u00e9veil\n}\n\n}<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a73fdd2 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"a73fdd2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1605209b e-flex e-con-boxed e-con e-parent\" data-id=\"1605209b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8e3c1fa elementor-widget elementor-widget-text-editor\" data-id=\"8e3c1fa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>ESP32-CAM Contr\u00f4le de l&rsquo;image liaison WIFI.\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-59dce0b5 elementor-widget elementor-widget-text-editor\" data-id=\"59dce0b5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><\/p>\n<pre data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#include \"esp_camera.h\"<br>#include \"WiFi.h\"\n#include \"camera_pins.h\"\n\n\/\/\n\/\/ WARNING!!! PSRAM IC required for UXGA resolution and high JPEG quality\n\/\/            Ensure ESP32 Wrover Module or other board with PSRAM is selected\n\/\/            Partial images will be transmitted if image exceeds buffer size\n\/\/\n\/\/            You must select partition scheme from the board menu that has at least 3MB APP space.\n\/\/            Face Recognition is DISABLED for ESP32 and ESP32-S2, because it takes up from 15\n\/\/            seconds to process single frame. Face Detection is ENABLED if PSRAM is enabled as well\n\n\/\/ ===================\n\/\/ Select camera model\n\/\/ ===================\n\/\/#define CAMERA_MODEL_WROVER_KIT \/\/ Has PSRAM\n#define CAMERA_MODEL_ESP_EYE  \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_ESP32S3_EYE \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_M5STACK_PSRAM \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_M5STACK_V2_PSRAM \/\/ M5Camera version B Has PSRAM\n\/\/#define CAMERA_MODEL_M5STACK_WIDE \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_M5STACK_ESP32CAM \/\/ No PSRAM\n\/\/#define CAMERA_MODEL_M5STACK_UNITCAM \/\/ No PSRAM\n\/\/#define CAMERA_MODEL_M5STACK_CAMS3_UNIT  \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_AI_THINKER \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_TTGO_T_JOURNAL \/\/ No PSRAM\n\/\/#define CAMERA_MODEL_XIAO_ESP32S3 \/\/ Has PSRAM\n\/\/ ** Espressif Internal Boards **\n\/\/#define CAMERA_MODEL_ESP32_CAM_BOARD\n\/\/#define CAMERA_MODEL_ESP32S2_CAM_BOARD\n\/\/#define CAMERA_MODEL_ESP32S3_CAM_LCD\n\/\/#define CAMERA_MODEL_DFRobot_FireBeetle2_ESP32S3 \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_DFRobot_Romeo_ESP32S3 \/\/ Has PSRAM\n#include \"camera_pins.h\"\n\n\/\/ ===========================\n\/\/ Enter your WiFi credentials\n\/\/ ===========================\nconst char *ssid = \"**********\";\nconst char *password = \"**********\";\n\nvoid startCameraServer();\nvoid setupLedFlash(int pin);\n\nvoid setup() {\n  Serial.begin(115200);\n  Serial.setDebugOutput(true);\n  Serial.println();\n\n  camera_config_t config;\n  config.ledc_channel = LEDC_CHANNEL_0;\n  config.ledc_timer = LEDC_TIMER_0;\n  config.pin_d0 = Y2_GPIO_NUM;\n  config.pin_d1 = Y3_GPIO_NUM;\n  config.pin_d2 = Y4_GPIO_NUM;\n  config.pin_d3 = Y5_GPIO_NUM;\n  config.pin_d4 = Y6_GPIO_NUM;\n  config.pin_d5 = Y7_GPIO_NUM;\n  config.pin_d6 = Y8_GPIO_NUM;\n  config.pin_d7 = Y9_GPIO_NUM;\n  config.pin_xclk = XCLK_GPIO_NUM;\n  config.pin_pclk = PCLK_GPIO_NUM;\n  config.pin_vsync = VSYNC_GPIO_NUM;\n  config.pin_href = HREF_GPIO_NUM;\n  config.pin_sccb_sda = SIOD_GPIO_NUM;\n  config.pin_sccb_scl = SIOC_GPIO_NUM;\n  config.pin_pwdn = PWDN_GPIO_NUM;\n  config.pin_reset = RESET_GPIO_NUM;\n  config.xclk_freq_hz = 20000000;\n  config.frame_size = FRAMESIZE_UXGA;\n  config.pixel_format = PIXFORMAT_JPEG;  \/\/ for streaming\n  \/\/config.pixel_format = PIXFORMAT_RGB565; \/\/ for face detection\/recognition\n  config.grab_mode = CAMERA_GRAB_WHEN_EMPTY;\n  config.fb_location = CAMERA_FB_IN_PSRAM;\n  config.jpeg_quality = 12;\n  config.fb_count = 1;\n\n  \/\/ if PSRAM IC present, init with UXGA resolution and higher JPEG quality\n  \/\/                      for larger pre-allocated frame buffer.\n  if (config.pixel_format == PIXFORMAT_JPEG) {\n    if (psramFound()) {\n      config.jpeg_quality = 10;\n      config.fb_count = 2;\n      config.grab_mode = CAMERA_GRAB_LATEST;\n    } else {\n      \/\/ Limit the frame size when PSRAM is not available\n      config.frame_size = FRAMESIZE_SVGA;\n      config.fb_location = CAMERA_FB_IN_DRAM;\n    }\n  } else {\n    \/\/ Best option for face detection\/recognition\n    config.frame_size = FRAMESIZE_240X240;\n#if CONFIG_IDF_TARGET_ESP32S3\n    config.fb_count = 2;\n#endif\n  }\n\n#if defined(CAMERA_MODEL_ESP_EYE)\n  pinMode(13, INPUT_PULLUP);\n  pinMode(14, INPUT_PULLUP);\n#endif\n\n  \/\/ camera init\n  esp_err_t err = esp_camera_init(&amp;config);\n  if (err != ESP_OK) {\n    Serial.printf(\"Camera init failed with error 0x%x\", err);\n    return;\n  }\n\n  sensor_t *s = esp_camera_sensor_get();\n  \/\/ initial sensors are flipped vertically and colors are a bit saturated\n  if (s-&gt;id.PID == OV3660_PID) {\n    s-&gt;set_vflip(s, 1);        \/\/ flip it back\n    s-&gt;set_brightness(s, 1);   \/\/ up the brightness just a bit\n    s-&gt;set_saturation(s, -2);  \/\/ lower the saturation\n  }\n  \/\/ drop down frame size for higher initial frame rate\n  if (config.pixel_format == PIXFORMAT_JPEG) {\n    s-&gt;set_framesize(s, FRAMESIZE_QVGA);\n  }\n\n#if defined(CAMERA_MODEL_M5STACK_WIDE) || defined(CAMERA_MODEL_M5STACK_ESP32CAM)\n  s-&gt;set_vflip(s, 1);\n  s-&gt;set_hmirror(s, 1);\n#endif\n\n#if defined(CAMERA_MODEL_ESP32S3_EYE)\n  s-&gt;set_vflip(s, 1);\n#endif\n\n\/\/ Setup LED FLash if LED pin is defined in camera_pins.h\n#if defined(LED_GPIO_NUM)\n  setupLedFlash(LED_GPIO_NUM);\n#endif\n\n  WiFi.begin(ssid, password);\n  WiFi.setSleep(false);\n\n  while (WiFi.status() != WL_CONNECTED) {\n    delay(500);\n    Serial.print(\".\");\n  }\n  Serial.println(\"\");\n  Serial.println(\"WiFi connected\");\n\n  startCameraServer();\n\n  Serial.print(\"Camera Ready! Use 'http:\/\/\");\n  Serial.print(WiFi.localIP());\n  Serial.println(\"' to connect\");\n}\n\nvoid loop() {\n  \/\/ Do nothing. Everything is done in another task by the web server\n  delay(10000);\n}\n\n<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6bbc7e7 e-flex e-con-boxed e-con e-parent\" data-id=\"6bbc7e7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-5431a19 e-con-full e-flex e-con e-child\" data-id=\"5431a19\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4aed9b0 elementor-widget elementor-widget-text-editor\" data-id=\"4aed9b0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3 class=\"wp-block-heading\">ESP32-S CAM &#8211; Code de t\u00e9l\u00e9chargement<\/h3>\n<p>Pour t\u00e9l\u00e9charger du code sur la carte ESP32-CAM, connectez-la \u00e0 votre ordinateur \u00e0 l\u2019aide d\u2019un\u00a0<a href=\"https:\/\/makeradvisor.com\/tools\/ftdi-programmer-board\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Programmateur FTDI (s\u2019ouvre dans un nouvel onglet)\">programmeur FTDI<\/a>. Suivez le sch\u00e9ma suivant :<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b3fa5b1 e-con-full e-flex e-con e-child\" data-id=\"b3fa5b1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-70e7843 elementor-widget elementor-widget-image\" data-id=\"70e7843\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-FTDI-programmer.webp\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"ESP32-CAM-FTDI-programmer\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6NDg2NCwidXJsIjoiaHR0cHM6XC9cL3d3dy5kb21vdGljLnBoZGF0YS5mclwvZG9tb3RpY1wvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyNFwvMDZcL0VTUDMyLUNBTS1GVERJLXByb2dyYW1tZXIud2VicCJ9\">\n\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"877\" height=\"532\" src=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-FTDI-programmer.webp\" class=\"attachment-large size-large wp-image-4864\" alt=\"\" srcset=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-FTDI-programmer.webp 877w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-FTDI-programmer-300x182.webp 300w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-FTDI-programmer-768x466.webp 768w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-FTDI-programmer-150x91.webp 150w\" sizes=\"(max-width: 877px) 100vw, 877px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3fee2c8 e-flex e-con-boxed e-con e-parent\" data-id=\"3fee2c8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-4e6b0bf e-con-full e-flex e-con e-child\" data-id=\"4e6b0bf\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ea9d30c elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"ea9d30c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ef1ffd5 elementor-widget elementor-widget-heading\" data-id=\"ef1ffd5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">2 vid\u00e9os pour contr\u00f4ler l'ESP32-S CAM<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8ad93ce e-con-full e-flex e-con e-child\" data-id=\"8ad93ce\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-2180112 e-con-full e-flex e-con e-child\" data-id=\"2180112\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7564487 elementor-widget elementor-widget-video\" data-id=\"7564487\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;youtube_url&quot;:&quot;https:\\\/\\\/youtu.be\\\/Qbs_haLx3PE?si=en6WhuJlaPjF37dz&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<div class=\"elementor-video\"><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3ac6ff1 e-con-full e-flex e-con e-child\" data-id=\"3ac6ff1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-2f6807e e-con-full e-flex e-con e-child\" data-id=\"2f6807e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1ad7090 elementor-widget elementor-widget-video\" data-id=\"1ad7090\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;youtube_url&quot;:&quot;https:\\\/\\\/youtu.be\\\/o6QtKzEDXSY?si=s_avDPS3ixgt9fdw&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<div class=\"elementor-video\"><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-716ffd19 e-flex e-con-boxed e-con e-parent\" data-id=\"716ffd19\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-57522745 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"57522745\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<a class=\"elementor-icon\" href=\"#menu\">\n\t\t\t<i aria-hidden=\"true\" class=\"fas fa-arrow-up\"><\/i>\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-474b7931 e-flex e-con-boxed e-con e-parent\" data-id=\"474b7931\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-35104610 elementor-widget elementor-widget-text-editor\" data-id=\"35104610\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"2509\" class=\"elementor elementor-2509\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dc37c4c e-flex e-con-boxed e-con e-parent\" data-id=\"dc37c4c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-31250bc elementor-widget elementor-widget-image\" data-id=\"31250bc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1000\" height=\"140\" src=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/pied-de-page.webp\" class=\"attachment-large size-large wp-image-3167\" alt=\"\" srcset=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/pied-de-page.webp 1000w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/pied-de-page-300x42.webp 300w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/pied-de-page-768x108.webp 768w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/pied-de-page-150x21.webp 150w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-da41007 elementor-widget elementor-widget-text-editor\" data-id=\"da41007\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"text-align: center;\"><strong>Domotique &#8211; informatique &#8211; \u00e9lectronique &#8211; dictionnaire &#8211; projets<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8a0e2d2 elementor-widget elementor-widget-text-editor\" data-id=\"8a0e2d2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Copyright 2024<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/*********\n  Rui Santos\n  Complete instructions at https:\/\/RandomNerdTutorials.com\/esp32-cam-projects-ebook\/\n\n*********\/\n#include &lt;esp_sleep.h&gt;\n#include &lt;driver\/rtc_io.h&gt;\n#include &lt;Arduino.h&gt;\n\n\/\/ ledPin refers to ESP32-CAM GPIO 4 (flashlight)\nconst int ledPin = 4;\n\nvoid setup() {\n  \/\/ initialize digital pin ledPin as an output\n  pinMode(ledPin, OUTPUT);\n}\n\nvoid loop() {\n  digitalWrite(ledPin, HIGH);\n  delay(2000);\n  digitalWrite(ledPin, LOW);\n  delay(2000);\n}<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3be01f7 elementor-widget elementor-widget-text-editor\" data-id=\"3be01f7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"color: #008080;\"><strong>Pour une d\u00e9monstration, veuillez suivre le sch\u00e9ma ci-dessous afin de passer en mode veille.<br \/><\/strong><\/span>(<strong><span style=\"color: #ff9900;\">Sleep test.cpp<\/span><\/strong>)<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e5e467b elementor-widget elementor-widget-text-editor\" data-id=\"e5e467b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c++\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#include &lt;esp_sleep.h&gt;\n#include &lt;driver\/rtc_io.h&gt;\n#include &lt;Arduino.h&gt;\n\n#define WAKEUP_PIN GPIO_NUM_13\n\nvoid setup() {\n    Serial.begin(115200);\n    delay(1000); \/\/ Attendre un peu pour permettre l'ouverture du moniteur s\u00e9rie\n\n    \/\/ Configurer la broche pour l'entr\u00e9e\n    pinMode(WAKEUP_PIN, INPUT);\n\n    \/\/ Configurer la m\u00e9thode de r\u00e9veil par interruption externe sur GPIO 13, signal bas\n    esp_err_t err = esp_sleep_enable_ext0_wakeup(WAKEUP_PIN, 0);\n    if (err != ESP_OK) {\n        Serial.printf(\"Erreur de configuration du r\u00e9veil externe : %s\\n\", esp_err_to_name(err));\n        return;\n    }\n\n    Serial.println(\"Mise en veille...\");\n    delay(1000); \/\/ Attendre un peu avant de dormir\n\n    \/\/ Entrer en sommeil profond\n    esp_deep_sleep_start();\n}\n\nvoid loop() {\n    \/\/ Ce code ne sera jamais atteint car l'ESP32 red\u00e9marre apr\u00e8s chaque r\u00e9veil\n}\n\n}<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a73fdd2 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"a73fdd2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1605209b e-flex e-con-boxed e-con e-parent\" data-id=\"1605209b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8e3c1fa elementor-widget elementor-widget-text-editor\" data-id=\"8e3c1fa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>ESP32-CAM Contr\u00f4le de l&rsquo;image liaison WIFI.\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-59dce0b5 elementor-widget elementor-widget-text-editor\" data-id=\"59dce0b5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><!-- wp:enlighter\/codeblock {\"language\":\"cpp\"} --><\/p>\n<pre data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#include \"esp_camera.h\"<br>#include \"WiFi.h\"\n#include \"camera_pins.h\"\n\n\/\/\n\/\/ WARNING!!! PSRAM IC required for UXGA resolution and high JPEG quality\n\/\/            Ensure ESP32 Wrover Module or other board with PSRAM is selected\n\/\/            Partial images will be transmitted if image exceeds buffer size\n\/\/\n\/\/            You must select partition scheme from the board menu that has at least 3MB APP space.\n\/\/            Face Recognition is DISABLED for ESP32 and ESP32-S2, because it takes up from 15\n\/\/            seconds to process single frame. Face Detection is ENABLED if PSRAM is enabled as well\n\n\/\/ ===================\n\/\/ Select camera model\n\/\/ ===================\n\/\/#define CAMERA_MODEL_WROVER_KIT \/\/ Has PSRAM\n#define CAMERA_MODEL_ESP_EYE  \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_ESP32S3_EYE \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_M5STACK_PSRAM \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_M5STACK_V2_PSRAM \/\/ M5Camera version B Has PSRAM\n\/\/#define CAMERA_MODEL_M5STACK_WIDE \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_M5STACK_ESP32CAM \/\/ No PSRAM\n\/\/#define CAMERA_MODEL_M5STACK_UNITCAM \/\/ No PSRAM\n\/\/#define CAMERA_MODEL_M5STACK_CAMS3_UNIT  \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_AI_THINKER \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_TTGO_T_JOURNAL \/\/ No PSRAM\n\/\/#define CAMERA_MODEL_XIAO_ESP32S3 \/\/ Has PSRAM\n\/\/ ** Espressif Internal Boards **\n\/\/#define CAMERA_MODEL_ESP32_CAM_BOARD\n\/\/#define CAMERA_MODEL_ESP32S2_CAM_BOARD\n\/\/#define CAMERA_MODEL_ESP32S3_CAM_LCD\n\/\/#define CAMERA_MODEL_DFRobot_FireBeetle2_ESP32S3 \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_DFRobot_Romeo_ESP32S3 \/\/ Has PSRAM\n#include \"camera_pins.h\"\n\n\/\/ ===========================\n\/\/ Enter your WiFi credentials\n\/\/ ===========================\nconst char *ssid = \"**********\";\nconst char *password = \"**********\";\n\nvoid startCameraServer();\nvoid setupLedFlash(int pin);\n\nvoid setup() {\n  Serial.begin(115200);\n  Serial.setDebugOutput(true);\n  Serial.println();\n\n  camera_config_t config;\n  config.ledc_channel = LEDC_CHANNEL_0;\n  config.ledc_timer = LEDC_TIMER_0;\n  config.pin_d0 = Y2_GPIO_NUM;\n  config.pin_d1 = Y3_GPIO_NUM;\n  config.pin_d2 = Y4_GPIO_NUM;\n  config.pin_d3 = Y5_GPIO_NUM;\n  config.pin_d4 = Y6_GPIO_NUM;\n  config.pin_d5 = Y7_GPIO_NUM;\n  config.pin_d6 = Y8_GPIO_NUM;\n  config.pin_d7 = Y9_GPIO_NUM;\n  config.pin_xclk = XCLK_GPIO_NUM;\n  config.pin_pclk = PCLK_GPIO_NUM;\n  config.pin_vsync = VSYNC_GPIO_NUM;\n  config.pin_href = HREF_GPIO_NUM;\n  config.pin_sccb_sda = SIOD_GPIO_NUM;\n  config.pin_sccb_scl = SIOC_GPIO_NUM;\n  config.pin_pwdn = PWDN_GPIO_NUM;\n  config.pin_reset = RESET_GPIO_NUM;\n  config.xclk_freq_hz = 20000000;\n  config.frame_size = FRAMESIZE_UXGA;\n  config.pixel_format = PIXFORMAT_JPEG;  \/\/ for streaming\n  \/\/config.pixel_format = PIXFORMAT_RGB565; \/\/ for face detection\/recognition\n  config.grab_mode = CAMERA_GRAB_WHEN_EMPTY;\n  config.fb_location = CAMERA_FB_IN_PSRAM;\n  config.jpeg_quality = 12;\n  config.fb_count = 1;\n\n  \/\/ if PSRAM IC present, init with UXGA resolution and higher JPEG quality\n  \/\/                      for larger pre-allocated frame buffer.\n  if (config.pixel_format == PIXFORMAT_JPEG) {\n    if (psramFound()) {\n      config.jpeg_quality = 10;\n      config.fb_count = 2;\n      config.grab_mode = CAMERA_GRAB_LATEST;\n    } else {\n      \/\/ Limit the frame size when PSRAM is not available\n      config.frame_size = FRAMESIZE_SVGA;\n      config.fb_location = CAMERA_FB_IN_DRAM;\n    }\n  } else {\n    \/\/ Best option for face detection\/recognition\n    config.frame_size = FRAMESIZE_240X240;\n#if CONFIG_IDF_TARGET_ESP32S3\n    config.fb_count = 2;\n#endif\n  }\n\n#if defined(CAMERA_MODEL_ESP_EYE)\n  pinMode(13, INPUT_PULLUP);\n  pinMode(14, INPUT_PULLUP);\n#endif\n\n  \/\/ camera init\n  esp_err_t err = esp_camera_init(&amp;config);\n  if (err != ESP_OK) {\n    Serial.printf(\"Camera init failed with error 0x%x\", err);\n    return;\n  }\n\n  sensor_t *s = esp_camera_sensor_get();\n  \/\/ initial sensors are flipped vertically and colors are a bit saturated\n  if (s-&gt;id.PID == OV3660_PID) {\n    s-&gt;set_vflip(s, 1);        \/\/ flip it back\n    s-&gt;set_brightness(s, 1);   \/\/ up the brightness just a bit\n    s-&gt;set_saturation(s, -2);  \/\/ lower the saturation\n  }\n  \/\/ drop down frame size for higher initial frame rate\n  if (config.pixel_format == PIXFORMAT_JPEG) {\n    s-&gt;set_framesize(s, FRAMESIZE_QVGA);\n  }\n\n#if defined(CAMERA_MODEL_M5STACK_WIDE) || defined(CAMERA_MODEL_M5STACK_ESP32CAM)\n  s-&gt;set_vflip(s, 1);\n  s-&gt;set_hmirror(s, 1);\n#endif\n\n#if defined(CAMERA_MODEL_ESP32S3_EYE)\n  s-&gt;set_vflip(s, 1);\n#endif\n\n\/\/ Setup LED FLash if LED pin is defined in camera_pins.h\n#if defined(LED_GPIO_NUM)\n  setupLedFlash(LED_GPIO_NUM);\n#endif\n\n  WiFi.begin(ssid, password);\n  WiFi.setSleep(false);\n\n  while (WiFi.status() != WL_CONNECTED) {\n    delay(500);\n    Serial.print(\".\");\n  }\n  Serial.println(\"\");\n  Serial.println(\"WiFi connected\");\n\n  startCameraServer();\n\n  Serial.print(\"Camera Ready! Use 'http:\/\/\");\n  Serial.print(WiFi.localIP());\n  Serial.println(\"' to connect\");\n}\n\nvoid loop() {\n  \/\/ Do nothing. Everything is done in another task by the web server\n  delay(10000);\n}\n\n<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6bbc7e7 e-flex e-con-boxed e-con e-parent\" data-id=\"6bbc7e7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-5431a19 e-con-full e-flex e-con e-child\" data-id=\"5431a19\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4aed9b0 elementor-widget elementor-widget-text-editor\" data-id=\"4aed9b0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3 class=\"wp-block-heading\">ESP32-S CAM &#8211; Code de t\u00e9l\u00e9chargement<\/h3>\n<p>Pour t\u00e9l\u00e9charger du code sur la carte ESP32-CAM, connectez-la \u00e0 votre ordinateur \u00e0 l\u2019aide d\u2019un\u00a0<a href=\"https:\/\/makeradvisor.com\/tools\/ftdi-programmer-board\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Programmateur FTDI (s\u2019ouvre dans un nouvel onglet)\">programmeur FTDI<\/a>. Suivez le sch\u00e9ma suivant :<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b3fa5b1 e-con-full e-flex e-con e-child\" data-id=\"b3fa5b1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-70e7843 elementor-widget elementor-widget-image\" data-id=\"70e7843\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-FTDI-programmer.webp\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"ESP32-CAM-FTDI-programmer\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6NDg2NCwidXJsIjoiaHR0cHM6XC9cL3d3dy5kb21vdGljLnBoZGF0YS5mclwvZG9tb3RpY1wvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyNFwvMDZcL0VTUDMyLUNBTS1GVERJLXByb2dyYW1tZXIud2VicCJ9\">\n\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"877\" height=\"532\" src=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-FTDI-programmer.webp\" class=\"attachment-large size-large wp-image-4864\" alt=\"\" srcset=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-FTDI-programmer.webp 877w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-FTDI-programmer-300x182.webp 300w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-FTDI-programmer-768x466.webp 768w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-FTDI-programmer-150x91.webp 150w\" sizes=\"(max-width: 877px) 100vw, 877px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3fee2c8 e-flex e-con-boxed e-con e-parent\" data-id=\"3fee2c8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-4e6b0bf e-con-full e-flex e-con e-child\" data-id=\"4e6b0bf\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ea9d30c elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"ea9d30c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ef1ffd5 elementor-widget elementor-widget-heading\" data-id=\"ef1ffd5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">2 vid\u00e9os pour contr\u00f4ler l'ESP32-S CAM<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8ad93ce e-con-full e-flex e-con e-child\" data-id=\"8ad93ce\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-2180112 e-con-full e-flex e-con e-child\" data-id=\"2180112\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7564487 elementor-widget elementor-widget-video\" data-id=\"7564487\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;youtube_url&quot;:&quot;https:\\\/\\\/youtu.be\\\/Qbs_haLx3PE?si=en6WhuJlaPjF37dz&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<div class=\"elementor-video\"><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3ac6ff1 e-con-full e-flex e-con e-child\" data-id=\"3ac6ff1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-2f6807e e-con-full e-flex e-con e-child\" data-id=\"2f6807e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1ad7090 elementor-widget elementor-widget-video\" data-id=\"1ad7090\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;youtube_url&quot;:&quot;https:\\\/\\\/youtu.be\\\/o6QtKzEDXSY?si=s_avDPS3ixgt9fdw&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<div class=\"elementor-video\"><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-716ffd19 e-flex e-con-boxed e-con e-parent\" data-id=\"716ffd19\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-57522745 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"57522745\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<a class=\"elementor-icon\" href=\"#menu\">\n\t\t\t<i aria-hidden=\"true\" class=\"fas fa-arrow-up\"><\/i>\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-474b7931 e-flex e-con-boxed e-con e-parent\" data-id=\"474b7931\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-35104610 elementor-widget elementor-widget-text-editor\" data-id=\"35104610\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"2509\" class=\"elementor elementor-2509\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dc37c4c e-flex e-con-boxed e-con e-parent\" data-id=\"dc37c4c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-31250bc elementor-widget elementor-widget-image\" data-id=\"31250bc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1000\" height=\"140\" src=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/pied-de-page.webp\" class=\"attachment-large size-large wp-image-3167\" alt=\"\" srcset=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/pied-de-page.webp 1000w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/pied-de-page-300x42.webp 300w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/pied-de-page-768x108.webp 768w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/pied-de-page-150x21.webp 150w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-da41007 elementor-widget elementor-widget-text-editor\" data-id=\"da41007\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"text-align: center;\"><strong>Domotique &#8211; informatique &#8211; \u00e9lectronique &#8211; dictionnaire &#8211; projets<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8a0e2d2 elementor-widget elementor-widget-text-editor\" data-id=\"8a0e2d2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Copyright 2024<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"ini\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[env:esp32cam]\nplatform = espressif32\nboard = esp32cam\nframework = arduino\n\n; D\u00e9pendances de biblioth\u00e8que\nlib_deps =\n    esp32-camera\n\n; Vitesse du moniteur s\u00e9rie\nmonitor_speed = 115200\n\n; Activer la gestion avanc\u00e9e de la m\u00e9moire pour l'ESP32\nbuild_flags =\n    -DBOARD_HAS_PSRAM\n    -mfix-esp32-psram-cache-issue\n<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e918f6e elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"e918f6e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f4c4c35 elementor-widget elementor-widget-text-editor\" data-id=\"f4c4c35\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong><span style=\"color: #008080;\">Pour une d\u00e9monstration, vous pouvez reproduire le sch\u00e9ma clignotant ci-dessous.<\/span><\/strong><\/p>\n<p>La LED int\u00e9gr\u00e9e clignote chaque seconde.<br \/>(<strong><span style=\"color: #ff6600;\">Flash.cpp<\/span><\/strong>)<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-85f8c8e elementor-widget elementor-widget-text-editor\" data-id=\"85f8c8e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/*********\n  Rui Santos\n  Complete instructions at https:\/\/RandomNerdTutorials.com\/esp32-cam-projects-ebook\/\n\n*********\/\n#include &lt;esp_sleep.h&gt;\n#include &lt;driver\/rtc_io.h&gt;\n#include &lt;Arduino.h&gt;\n\n\/\/ ledPin refers to ESP32-CAM GPIO 4 (flashlight)\nconst int ledPin = 4;\n\nvoid setup() {\n  \/\/ initialize digital pin ledPin as an output\n  pinMode(ledPin, OUTPUT);\n}\n\nvoid loop() {\n  digitalWrite(ledPin, HIGH);\n  delay(2000);\n  digitalWrite(ledPin, LOW);\n  delay(2000);\n}<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3be01f7 elementor-widget elementor-widget-text-editor\" data-id=\"3be01f7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"color: #008080;\"><strong>Pour une d\u00e9monstration, veuillez suivre le sch\u00e9ma ci-dessous afin de passer en mode veille.<br \/><\/strong><\/span>(<strong><span style=\"color: #ff9900;\">Sleep test.cpp<\/span><\/strong>)<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e5e467b elementor-widget elementor-widget-text-editor\" data-id=\"e5e467b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><!-- wp:enlighter\/codeblock {\"language\":\"c++\"} --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c++\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#include &lt;esp_sleep.h&gt;\n#include &lt;driver\/rtc_io.h&gt;\n#include &lt;Arduino.h&gt;\n\n#define WAKEUP_PIN GPIO_NUM_13\n\nvoid setup() {\n    Serial.begin(115200);\n    delay(1000); \/\/ Attendre un peu pour permettre l'ouverture du moniteur s\u00e9rie\n\n    \/\/ Configurer la broche pour l'entr\u00e9e\n    pinMode(WAKEUP_PIN, INPUT);\n\n    \/\/ Configurer la m\u00e9thode de r\u00e9veil par interruption externe sur GPIO 13, signal bas\n    esp_err_t err = esp_sleep_enable_ext0_wakeup(WAKEUP_PIN, 0);\n    if (err != ESP_OK) {\n        Serial.printf(\"Erreur de configuration du r\u00e9veil externe : %s\\n\", esp_err_to_name(err));\n        return;\n    }\n\n    Serial.println(\"Mise en veille...\");\n    delay(1000); \/\/ Attendre un peu avant de dormir\n\n    \/\/ Entrer en sommeil profond\n    esp_deep_sleep_start();\n}\n\nvoid loop() {\n    \/\/ Ce code ne sera jamais atteint car l'ESP32 red\u00e9marre apr\u00e8s chaque r\u00e9veil\n}\n\n}<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a73fdd2 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"a73fdd2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1605209b e-flex e-con-boxed e-con e-parent\" data-id=\"1605209b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8e3c1fa elementor-widget elementor-widget-text-editor\" data-id=\"8e3c1fa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>ESP32-CAM Contr\u00f4le de l&rsquo;image liaison WIFI.\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-59dce0b5 elementor-widget elementor-widget-text-editor\" data-id=\"59dce0b5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><!-- wp:enlighter\/codeblock {\"language\":\"cpp\"} --><\/p>\n<pre data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#include \"esp_camera.h\"<br>#include \"WiFi.h\"\n#include \"camera_pins.h\"\n\n\/\/\n\/\/ WARNING!!! PSRAM IC required for UXGA resolution and high JPEG quality\n\/\/            Ensure ESP32 Wrover Module or other board with PSRAM is selected\n\/\/            Partial images will be transmitted if image exceeds buffer size\n\/\/\n\/\/            You must select partition scheme from the board menu that has at least 3MB APP space.\n\/\/            Face Recognition is DISABLED for ESP32 and ESP32-S2, because it takes up from 15\n\/\/            seconds to process single frame. Face Detection is ENABLED if PSRAM is enabled as well\n\n\/\/ ===================\n\/\/ Select camera model\n\/\/ ===================\n\/\/#define CAMERA_MODEL_WROVER_KIT \/\/ Has PSRAM\n#define CAMERA_MODEL_ESP_EYE  \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_ESP32S3_EYE \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_M5STACK_PSRAM \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_M5STACK_V2_PSRAM \/\/ M5Camera version B Has PSRAM\n\/\/#define CAMERA_MODEL_M5STACK_WIDE \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_M5STACK_ESP32CAM \/\/ No PSRAM\n\/\/#define CAMERA_MODEL_M5STACK_UNITCAM \/\/ No PSRAM\n\/\/#define CAMERA_MODEL_M5STACK_CAMS3_UNIT  \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_AI_THINKER \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_TTGO_T_JOURNAL \/\/ No PSRAM\n\/\/#define CAMERA_MODEL_XIAO_ESP32S3 \/\/ Has PSRAM\n\/\/ ** Espressif Internal Boards **\n\/\/#define CAMERA_MODEL_ESP32_CAM_BOARD\n\/\/#define CAMERA_MODEL_ESP32S2_CAM_BOARD\n\/\/#define CAMERA_MODEL_ESP32S3_CAM_LCD\n\/\/#define CAMERA_MODEL_DFRobot_FireBeetle2_ESP32S3 \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_DFRobot_Romeo_ESP32S3 \/\/ Has PSRAM\n#include \"camera_pins.h\"\n\n\/\/ ===========================\n\/\/ Enter your WiFi credentials\n\/\/ ===========================\nconst char *ssid = \"**********\";\nconst char *password = \"**********\";\n\nvoid startCameraServer();\nvoid setupLedFlash(int pin);\n\nvoid setup() {\n  Serial.begin(115200);\n  Serial.setDebugOutput(true);\n  Serial.println();\n\n  camera_config_t config;\n  config.ledc_channel = LEDC_CHANNEL_0;\n  config.ledc_timer = LEDC_TIMER_0;\n  config.pin_d0 = Y2_GPIO_NUM;\n  config.pin_d1 = Y3_GPIO_NUM;\n  config.pin_d2 = Y4_GPIO_NUM;\n  config.pin_d3 = Y5_GPIO_NUM;\n  config.pin_d4 = Y6_GPIO_NUM;\n  config.pin_d5 = Y7_GPIO_NUM;\n  config.pin_d6 = Y8_GPIO_NUM;\n  config.pin_d7 = Y9_GPIO_NUM;\n  config.pin_xclk = XCLK_GPIO_NUM;\n  config.pin_pclk = PCLK_GPIO_NUM;\n  config.pin_vsync = VSYNC_GPIO_NUM;\n  config.pin_href = HREF_GPIO_NUM;\n  config.pin_sccb_sda = SIOD_GPIO_NUM;\n  config.pin_sccb_scl = SIOC_GPIO_NUM;\n  config.pin_pwdn = PWDN_GPIO_NUM;\n  config.pin_reset = RESET_GPIO_NUM;\n  config.xclk_freq_hz = 20000000;\n  config.frame_size = FRAMESIZE_UXGA;\n  config.pixel_format = PIXFORMAT_JPEG;  \/\/ for streaming\n  \/\/config.pixel_format = PIXFORMAT_RGB565; \/\/ for face detection\/recognition\n  config.grab_mode = CAMERA_GRAB_WHEN_EMPTY;\n  config.fb_location = CAMERA_FB_IN_PSRAM;\n  config.jpeg_quality = 12;\n  config.fb_count = 1;\n\n  \/\/ if PSRAM IC present, init with UXGA resolution and higher JPEG quality\n  \/\/                      for larger pre-allocated frame buffer.\n  if (config.pixel_format == PIXFORMAT_JPEG) {\n    if (psramFound()) {\n      config.jpeg_quality = 10;\n      config.fb_count = 2;\n      config.grab_mode = CAMERA_GRAB_LATEST;\n    } else {\n      \/\/ Limit the frame size when PSRAM is not available\n      config.frame_size = FRAMESIZE_SVGA;\n      config.fb_location = CAMERA_FB_IN_DRAM;\n    }\n  } else {\n    \/\/ Best option for face detection\/recognition\n    config.frame_size = FRAMESIZE_240X240;\n#if CONFIG_IDF_TARGET_ESP32S3\n    config.fb_count = 2;\n#endif\n  }\n\n#if defined(CAMERA_MODEL_ESP_EYE)\n  pinMode(13, INPUT_PULLUP);\n  pinMode(14, INPUT_PULLUP);\n#endif\n\n  \/\/ camera init\n  esp_err_t err = esp_camera_init(&amp;config);\n  if (err != ESP_OK) {\n    Serial.printf(\"Camera init failed with error 0x%x\", err);\n    return;\n  }\n\n  sensor_t *s = esp_camera_sensor_get();\n  \/\/ initial sensors are flipped vertically and colors are a bit saturated\n  if (s-&gt;id.PID == OV3660_PID) {\n    s-&gt;set_vflip(s, 1);        \/\/ flip it back\n    s-&gt;set_brightness(s, 1);   \/\/ up the brightness just a bit\n    s-&gt;set_saturation(s, -2);  \/\/ lower the saturation\n  }\n  \/\/ drop down frame size for higher initial frame rate\n  if (config.pixel_format == PIXFORMAT_JPEG) {\n    s-&gt;set_framesize(s, FRAMESIZE_QVGA);\n  }\n\n#if defined(CAMERA_MODEL_M5STACK_WIDE) || defined(CAMERA_MODEL_M5STACK_ESP32CAM)\n  s-&gt;set_vflip(s, 1);\n  s-&gt;set_hmirror(s, 1);\n#endif\n\n#if defined(CAMERA_MODEL_ESP32S3_EYE)\n  s-&gt;set_vflip(s, 1);\n#endif\n\n\/\/ Setup LED FLash if LED pin is defined in camera_pins.h\n#if defined(LED_GPIO_NUM)\n  setupLedFlash(LED_GPIO_NUM);\n#endif\n\n  WiFi.begin(ssid, password);\n  WiFi.setSleep(false);\n\n  while (WiFi.status() != WL_CONNECTED) {\n    delay(500);\n    Serial.print(\".\");\n  }\n  Serial.println(\"\");\n  Serial.println(\"WiFi connected\");\n\n  startCameraServer();\n\n  Serial.print(\"Camera Ready! Use 'http:\/\/\");\n  Serial.print(WiFi.localIP());\n  Serial.println(\"' to connect\");\n}\n\nvoid loop() {\n  \/\/ Do nothing. Everything is done in another task by the web server\n  delay(10000);\n}\n\n<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6bbc7e7 e-flex e-con-boxed e-con e-parent\" data-id=\"6bbc7e7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-5431a19 e-con-full e-flex e-con e-child\" data-id=\"5431a19\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4aed9b0 elementor-widget elementor-widget-text-editor\" data-id=\"4aed9b0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3 class=\"wp-block-heading\">ESP32-S CAM &#8211; Code de t\u00e9l\u00e9chargement<\/h3>\n<p>Pour t\u00e9l\u00e9charger du code sur la carte ESP32-CAM, connectez-la \u00e0 votre ordinateur \u00e0 l\u2019aide d\u2019un\u00a0<a href=\"https:\/\/makeradvisor.com\/tools\/ftdi-programmer-board\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Programmateur FTDI (s\u2019ouvre dans un nouvel onglet)\">programmeur FTDI<\/a>. Suivez le sch\u00e9ma suivant :<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b3fa5b1 e-con-full e-flex e-con e-child\" data-id=\"b3fa5b1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-70e7843 elementor-widget elementor-widget-image\" data-id=\"70e7843\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-FTDI-programmer.webp\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"ESP32-CAM-FTDI-programmer\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6NDg2NCwidXJsIjoiaHR0cHM6XC9cL3d3dy5kb21vdGljLnBoZGF0YS5mclwvZG9tb3RpY1wvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyNFwvMDZcL0VTUDMyLUNBTS1GVERJLXByb2dyYW1tZXIud2VicCJ9\">\n\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"877\" height=\"532\" src=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-FTDI-programmer.webp\" class=\"attachment-large size-large wp-image-4864\" alt=\"\" srcset=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-FTDI-programmer.webp 877w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-FTDI-programmer-300x182.webp 300w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-FTDI-programmer-768x466.webp 768w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-FTDI-programmer-150x91.webp 150w\" sizes=\"(max-width: 877px) 100vw, 877px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3fee2c8 e-flex e-con-boxed e-con e-parent\" data-id=\"3fee2c8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-4e6b0bf e-con-full e-flex e-con e-child\" data-id=\"4e6b0bf\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ea9d30c elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"ea9d30c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ef1ffd5 elementor-widget elementor-widget-heading\" data-id=\"ef1ffd5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">2 vid\u00e9os pour contr\u00f4ler l'ESP32-S CAM<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8ad93ce e-con-full e-flex e-con e-child\" data-id=\"8ad93ce\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-2180112 e-con-full e-flex e-con e-child\" data-id=\"2180112\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7564487 elementor-widget elementor-widget-video\" data-id=\"7564487\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;youtube_url&quot;:&quot;https:\\\/\\\/youtu.be\\\/Qbs_haLx3PE?si=en6WhuJlaPjF37dz&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<div class=\"elementor-video\"><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3ac6ff1 e-con-full e-flex e-con e-child\" data-id=\"3ac6ff1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-2f6807e e-con-full e-flex e-con e-child\" data-id=\"2f6807e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1ad7090 elementor-widget elementor-widget-video\" data-id=\"1ad7090\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;youtube_url&quot;:&quot;https:\\\/\\\/youtu.be\\\/o6QtKzEDXSY?si=s_avDPS3ixgt9fdw&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<div class=\"elementor-video\"><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-716ffd19 e-flex e-con-boxed e-con e-parent\" data-id=\"716ffd19\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-57522745 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"57522745\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<a class=\"elementor-icon\" href=\"#menu\">\n\t\t\t<i aria-hidden=\"true\" class=\"fas fa-arrow-up\"><\/i>\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-474b7931 e-flex e-con-boxed e-con e-parent\" data-id=\"474b7931\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-35104610 elementor-widget elementor-widget-text-editor\" data-id=\"35104610\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"2509\" class=\"elementor elementor-2509\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dc37c4c e-flex e-con-boxed e-con e-parent\" data-id=\"dc37c4c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-31250bc elementor-widget elementor-widget-image\" data-id=\"31250bc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1000\" height=\"140\" src=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/pied-de-page.webp\" class=\"attachment-large size-large wp-image-3167\" alt=\"\" srcset=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/pied-de-page.webp 1000w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/pied-de-page-300x42.webp 300w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/pied-de-page-768x108.webp 768w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/pied-de-page-150x21.webp 150w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-da41007 elementor-widget elementor-widget-text-editor\" data-id=\"da41007\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"text-align: center;\"><strong>Domotique &#8211; informatique &#8211; \u00e9lectronique &#8211; dictionnaire &#8211; projets<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8a0e2d2 elementor-widget elementor-widget-text-editor\" data-id=\"8a0e2d2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Copyright 2024<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7e40894a e-flex e-con-boxed e-con e-parent\" data-id=\"7e40894a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6b99be08 elementor-widget elementor-widget-image\" data-id=\"6b99be08\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1000\" height=\"600\" src=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/cam-entete-1000X600.webp\" class=\"attachment-full size-full wp-image-4765\" alt=\"\" srcset=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/cam-entete-1000X600.webp 1000w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/cam-entete-1000X600-300x180.webp 300w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/cam-entete-1000X600-768x461.webp 768w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/cam-entete-1000X600-150x90.webp 150w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3a28cdc2 elementor-widget elementor-widget-menu-anchor\" data-id=\"3a28cdc2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"menu-anchor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-menu-anchor\" id=\"menu\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-53115169 e-flex e-con-boxed e-con e-parent\" data-id=\"53115169\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-56103b62 elementor-widget elementor-widget-text-editor\" data-id=\"56103b62\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-28ea4275 e-flex e-con-boxed e-con e-parent\" data-id=\"28ea4275\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-ff35662 e-con-full e-flex e-con e-child\" data-id=\"ff35662\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7faa112c elementor-widget elementor-widget-image\" data-id=\"7faa112c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"280\" height=\"79\" src=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/logo-cam-1.webp\" class=\"attachment-medium size-medium wp-image-4777\" alt=\"\" srcset=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/logo-cam-1.webp 280w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/logo-cam-1-150x42.webp 150w\" sizes=\"(max-width: 280px) 100vw, 280px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-692280c9 e-con-full e-flex e-con e-child\" data-id=\"692280c9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-49e434c0 elementor-widget elementor-widget-heading\" data-id=\"49e434c0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">ESP32-S CAM<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c2ec177 e-flex e-con-boxed e-con e-parent\" data-id=\"c2ec177\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-55b0ec0 elementor-widget elementor-widget-text-editor\" data-id=\"55b0ec0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"color: #0000ff;\"><strong>Introduction \u00e0 l&rsquo;ESP32-CAM<\/strong><\/span><\/p>\n<p>L&rsquo;ESP32-S CAM est un module int\u00e9grant le microcontr\u00f4leur ESP32 avec une cam\u00e9ra OV2640, offrant une solution compacte pour des projets vari\u00e9s. <br>Gr\u00e2ce \u00e0 ses capacit\u00e9s Wi-Fi et Bluetooth int\u00e9gr\u00e9es, il est id\u00e9al pour des applications de vision par ordinateur, telles que la reconnaissance d&rsquo;objets et de visages, utilisation de la librairie \u00ab\u00a0<a href=\"https:\/\/www.domotic.phdata.fr\/domotic\/esp-camera\">esp_camera.h<\/a>\u00ab\u00a0. <\/p>\n<p>Utilis\u00e9 dans des syst\u00e8mes de surveillance, il permet la capture et la transmission d&rsquo;images en temps r\u00e9el. <br>Les projets de capture d&rsquo;image b\u00e9n\u00e9ficient de sa haute r\u00e9solution et de ses options de stockage, que ce soit sur une carte SD ou via le r\u00e9seau. <\/p>\n<p>La polyvalence de l&rsquo;ESP32-CAM en fait un choix populaire pour les amateurs de technologie et les professionnels souhaitant d\u00e9velopper des dispositifs intelligents de monitoring et d&rsquo;analyse visuelle. <br>Ses performances et son faible co\u00fbt en font une solution efficace pour des projets DIY et des applications industrielles.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-de8358a e-flex e-con-boxed e-con e-parent\" data-id=\"de8358a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-5dac754 e-con-full e-flex e-con e-child\" data-id=\"5dac754\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-645966b elementor-widget elementor-widget-text-editor\" data-id=\"645966b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"color: #0000ff;\"><strong>Caract\u00e9ristiques Techniques<\/strong><\/span><\/p><ol><li><p><strong>Microcontr\u00f4leur<\/strong> :<\/p><ul><li><strong>ESP32<\/strong> : Dual-core 32-bit LX6 microprocesseur<\/li><li><strong>Fr\u00e9quence<\/strong> : Jusqu&rsquo;\u00e0 240 MHz<\/li><li><strong>SRAM<\/strong> : 520 KB<\/li><li><strong>Flash<\/strong> : 4 MB (ou plus selon le mod\u00e8le)<\/li><\/ul><\/li><li><p><strong>Cam\u00e9ra<\/strong> :<\/p><ul><li><strong>Mod\u00e8le<\/strong> : OV2640<\/li><li><strong>R\u00e9solution<\/strong> : Jusqu&rsquo;\u00e0 1600&#215;1200 pixels (UXGA)<\/li><li><strong>Formats d&rsquo;image<\/strong> : JPEG, BMP, GRAYSCALE<\/li><\/ul><\/li><li><p><strong>Connectivit\u00e9<\/strong> :<\/p><ul><li><strong>Wi-Fi<\/strong> : 802.11 b\/g\/n<\/li><li><strong>Bluetooth<\/strong> : 4.2 BR\/EDR et BLE<\/li><\/ul><\/li><li><p><strong>Alimentation<\/strong> :<\/p><ul><li><strong>Tension d&rsquo;entr\u00e9e<\/strong> : 5V (via pin 5V ou micro-USB)<\/li><li><strong>Consommation<\/strong> : Variable selon l&rsquo;utilisation (environ 160-260 mA)<\/li><\/ul><\/li><li><p><strong>Broches (Pins)<\/strong> :<\/p><ul><li><strong>Nombre de broches<\/strong> : 16 (2&#215;8)<\/li><li><strong>GPIO<\/strong> : Plusieurs broches GPIO disponibles pour une utilisation polyvalente<\/li><li><strong>Interfaces<\/strong> : UART, SPI, I2C, PWM<\/li><\/ul><\/li><li><p><strong>Stockage<\/strong> :<\/p><ul><li><strong>Carte SD<\/strong> : Support jusqu&rsquo;\u00e0 4 GB<\/li><li><strong>Interface<\/strong> : HSPI<\/li><\/ul><\/li><li><p><strong>Dimensions<\/strong> :<\/p><ul><li><strong>Taille<\/strong> : 27 mm x 40.5 mm<\/li><\/ul><\/li><li><p><strong>Autres<\/strong> :<\/p><ul><li><strong>Antenne<\/strong> : Antenne PCB int\u00e9gr\u00e9e avec possibilit\u00e9 de connecter une antenne externe<\/li><li><strong>LED Flash<\/strong> : LED int\u00e9gr\u00e9e pour \u00e9clairage<\/li><\/ul><\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1b01ff3 e-con-full e-flex e-con e-child\" data-id=\"1b01ff3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1a4490c zoooom elementor-widget elementor-widget-image\" data-id=\"1a4490c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32CAM-Pinout.jpg\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"ESP32CAM-Pinout\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6NDc5MCwidXJsIjoiaHR0cHM6XC9cL3d3dy5kb21vdGljLnBoZGF0YS5mclwvZG9tb3RpY1wvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyNFwvMDZcL0VTUDMyQ0FNLVBpbm91dC5qcGcifQ%3D%3D\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"569\" src=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32CAM-Pinout-1024x569.jpg\" class=\"attachment-large size-large wp-image-4790\" alt=\"\" srcset=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32CAM-Pinout-1024x569.jpg 1024w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32CAM-Pinout-300x167.jpg 300w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32CAM-Pinout-768x427.jpg 768w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32CAM-Pinout-1536x853.jpg 1536w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32CAM-Pinout-150x83.jpg 150w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32CAM-Pinout.jpg 1800w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f6942e9 elementor-widget elementor-widget-image\" data-id=\"f6942e9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"627\" height=\"350\" src=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/esp32-can-labeled.webp\" class=\"attachment-large size-large wp-image-4970\" alt=\"\" srcset=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/esp32-can-labeled.webp 627w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/esp32-can-labeled-300x167.webp 300w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/esp32-can-labeled-150x84.webp 150w\" sizes=\"(max-width: 627px) 100vw, 627px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e3e83a2 e-flex e-con-boxed e-con e-parent\" data-id=\"e3e83a2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-008a3f0 zoooom elementor-widget elementor-widget-image\" data-id=\"008a3f0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-AI-Thinker-schematic-diagram.webp\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"ESP32-CAM-AI-Thinker-schematic-diagram\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6NjEzOCwidXJsIjoiaHR0cHM6XC9cL3d3dy5kb21vdGljLnBoZGF0YS5mclwvZG9tb3RpY1wvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyNFwvMDZcL0VTUDMyLUNBTS1BSS1UaGlua2VyLXNjaGVtYXRpYy1kaWFncmFtLndlYnAifQ%3D%3D\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"679\" src=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-AI-Thinker-schematic-diagram-1024x679.webp\" class=\"attachment-large size-large wp-image-6138\" alt=\"\" srcset=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-AI-Thinker-schematic-diagram-1024x679.webp 1024w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-AI-Thinker-schematic-diagram-300x199.webp 300w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-AI-Thinker-schematic-diagram-768x509.webp 768w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-AI-Thinker-schematic-diagram.webp 1222w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4d20f04e e-flex e-con-boxed e-con e-parent\" data-id=\"4d20f04e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ae5d1d1 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"ae5d1d1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/github.com\/Phil-dav\/ESP32-CAM\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-camera\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">D\u00e9pot GitHub<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9b5ae76 elementor-widget elementor-widget-heading\" data-id=\"9b5ae76\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Configuration platformio.ini<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5fa3b7db elementor-widget elementor-widget-text-editor\" data-id=\"5fa3b7db\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"ini\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[env:esp32cam]\nplatform = espressif32\nboard = esp32cam\nframework = arduino\n\n; D\u00e9pendances de biblioth\u00e8que\nlib_deps =\n    esp32-camera\n\n; Vitesse du moniteur s\u00e9rie\nmonitor_speed = 115200\n\n; Activer la gestion avanc\u00e9e de la m\u00e9moire pour l'ESP32\nbuild_flags =\n    -DBOARD_HAS_PSRAM\n    -mfix-esp32-psram-cache-issue\n<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e918f6e elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"e918f6e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f4c4c35 elementor-widget elementor-widget-text-editor\" data-id=\"f4c4c35\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong><span style=\"color: #008080;\">Pour une d\u00e9monstration, vous pouvez reproduire le sch\u00e9ma clignotant ci-dessous.<\/span><\/strong><\/p>\n<p>La LED int\u00e9gr\u00e9e clignote chaque seconde.<br \/>(<strong><span style=\"color: #ff6600;\">Flash.cpp<\/span><\/strong>)<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-85f8c8e elementor-widget elementor-widget-text-editor\" data-id=\"85f8c8e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><!-- wp:enlighter\/codeblock {\"language\":\"cpp\"} --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/*********\n  Rui Santos\n  Complete instructions at https:\/\/RandomNerdTutorials.com\/esp32-cam-projects-ebook\/\n\n*********\/\n#include &lt;esp_sleep.h&gt;\n#include &lt;driver\/rtc_io.h&gt;\n#include &lt;Arduino.h&gt;\n\n\/\/ ledPin refers to ESP32-CAM GPIO 4 (flashlight)\nconst int ledPin = 4;\n\nvoid setup() {\n  \/\/ initialize digital pin ledPin as an output\n  pinMode(ledPin, OUTPUT);\n}\n\nvoid loop() {\n  digitalWrite(ledPin, HIGH);\n  delay(2000);\n  digitalWrite(ledPin, LOW);\n  delay(2000);\n}<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3be01f7 elementor-widget elementor-widget-text-editor\" data-id=\"3be01f7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"color: #008080;\"><strong>Pour une d\u00e9monstration, veuillez suivre le sch\u00e9ma ci-dessous afin de passer en mode veille.<br \/><\/strong><\/span>(<strong><span style=\"color: #ff9900;\">Sleep test.cpp<\/span><\/strong>)<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e5e467b elementor-widget elementor-widget-text-editor\" data-id=\"e5e467b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><!-- wp:enlighter\/codeblock {\"language\":\"c++\"} --><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c++\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#include &lt;esp_sleep.h&gt;\n#include &lt;driver\/rtc_io.h&gt;\n#include &lt;Arduino.h&gt;\n\n#define WAKEUP_PIN GPIO_NUM_13\n\nvoid setup() {\n    Serial.begin(115200);\n    delay(1000); \/\/ Attendre un peu pour permettre l'ouverture du moniteur s\u00e9rie\n\n    \/\/ Configurer la broche pour l'entr\u00e9e\n    pinMode(WAKEUP_PIN, INPUT);\n\n    \/\/ Configurer la m\u00e9thode de r\u00e9veil par interruption externe sur GPIO 13, signal bas\n    esp_err_t err = esp_sleep_enable_ext0_wakeup(WAKEUP_PIN, 0);\n    if (err != ESP_OK) {\n        Serial.printf(\"Erreur de configuration du r\u00e9veil externe : %s\\n\", esp_err_to_name(err));\n        return;\n    }\n\n    Serial.println(\"Mise en veille...\");\n    delay(1000); \/\/ Attendre un peu avant de dormir\n\n    \/\/ Entrer en sommeil profond\n    esp_deep_sleep_start();\n}\n\nvoid loop() {\n    \/\/ Ce code ne sera jamais atteint car l'ESP32 red\u00e9marre apr\u00e8s chaque r\u00e9veil\n}\n\n}<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a73fdd2 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"a73fdd2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1605209b e-flex e-con-boxed e-con e-parent\" data-id=\"1605209b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8e3c1fa elementor-widget elementor-widget-text-editor\" data-id=\"8e3c1fa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>ESP32-CAM Contr\u00f4le de l&rsquo;image liaison WIFI.\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-59dce0b5 elementor-widget elementor-widget-text-editor\" data-id=\"59dce0b5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><!-- wp:enlighter\/codeblock {\"language\":\"cpp\"} --><\/p>\n<pre data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#include \"esp_camera.h\"<br>#include \"WiFi.h\"\n#include \"camera_pins.h\"\n\n\/\/\n\/\/ WARNING!!! PSRAM IC required for UXGA resolution and high JPEG quality\n\/\/            Ensure ESP32 Wrover Module or other board with PSRAM is selected\n\/\/            Partial images will be transmitted if image exceeds buffer size\n\/\/\n\/\/            You must select partition scheme from the board menu that has at least 3MB APP space.\n\/\/            Face Recognition is DISABLED for ESP32 and ESP32-S2, because it takes up from 15\n\/\/            seconds to process single frame. Face Detection is ENABLED if PSRAM is enabled as well\n\n\/\/ ===================\n\/\/ Select camera model\n\/\/ ===================\n\/\/#define CAMERA_MODEL_WROVER_KIT \/\/ Has PSRAM\n#define CAMERA_MODEL_ESP_EYE  \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_ESP32S3_EYE \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_M5STACK_PSRAM \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_M5STACK_V2_PSRAM \/\/ M5Camera version B Has PSRAM\n\/\/#define CAMERA_MODEL_M5STACK_WIDE \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_M5STACK_ESP32CAM \/\/ No PSRAM\n\/\/#define CAMERA_MODEL_M5STACK_UNITCAM \/\/ No PSRAM\n\/\/#define CAMERA_MODEL_M5STACK_CAMS3_UNIT  \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_AI_THINKER \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_TTGO_T_JOURNAL \/\/ No PSRAM\n\/\/#define CAMERA_MODEL_XIAO_ESP32S3 \/\/ Has PSRAM\n\/\/ ** Espressif Internal Boards **\n\/\/#define CAMERA_MODEL_ESP32_CAM_BOARD\n\/\/#define CAMERA_MODEL_ESP32S2_CAM_BOARD\n\/\/#define CAMERA_MODEL_ESP32S3_CAM_LCD\n\/\/#define CAMERA_MODEL_DFRobot_FireBeetle2_ESP32S3 \/\/ Has PSRAM\n\/\/#define CAMERA_MODEL_DFRobot_Romeo_ESP32S3 \/\/ Has PSRAM\n#include \"camera_pins.h\"\n\n\/\/ ===========================\n\/\/ Enter your WiFi credentials\n\/\/ ===========================\nconst char *ssid = \"**********\";\nconst char *password = \"**********\";\n\nvoid startCameraServer();\nvoid setupLedFlash(int pin);\n\nvoid setup() {\n  Serial.begin(115200);\n  Serial.setDebugOutput(true);\n  Serial.println();\n\n  camera_config_t config;\n  config.ledc_channel = LEDC_CHANNEL_0;\n  config.ledc_timer = LEDC_TIMER_0;\n  config.pin_d0 = Y2_GPIO_NUM;\n  config.pin_d1 = Y3_GPIO_NUM;\n  config.pin_d2 = Y4_GPIO_NUM;\n  config.pin_d3 = Y5_GPIO_NUM;\n  config.pin_d4 = Y6_GPIO_NUM;\n  config.pin_d5 = Y7_GPIO_NUM;\n  config.pin_d6 = Y8_GPIO_NUM;\n  config.pin_d7 = Y9_GPIO_NUM;\n  config.pin_xclk = XCLK_GPIO_NUM;\n  config.pin_pclk = PCLK_GPIO_NUM;\n  config.pin_vsync = VSYNC_GPIO_NUM;\n  config.pin_href = HREF_GPIO_NUM;\n  config.pin_sccb_sda = SIOD_GPIO_NUM;\n  config.pin_sccb_scl = SIOC_GPIO_NUM;\n  config.pin_pwdn = PWDN_GPIO_NUM;\n  config.pin_reset = RESET_GPIO_NUM;\n  config.xclk_freq_hz = 20000000;\n  config.frame_size = FRAMESIZE_UXGA;\n  config.pixel_format = PIXFORMAT_JPEG;  \/\/ for streaming\n  \/\/config.pixel_format = PIXFORMAT_RGB565; \/\/ for face detection\/recognition\n  config.grab_mode = CAMERA_GRAB_WHEN_EMPTY;\n  config.fb_location = CAMERA_FB_IN_PSRAM;\n  config.jpeg_quality = 12;\n  config.fb_count = 1;\n\n  \/\/ if PSRAM IC present, init with UXGA resolution and higher JPEG quality\n  \/\/                      for larger pre-allocated frame buffer.\n  if (config.pixel_format == PIXFORMAT_JPEG) {\n    if (psramFound()) {\n      config.jpeg_quality = 10;\n      config.fb_count = 2;\n      config.grab_mode = CAMERA_GRAB_LATEST;\n    } else {\n      \/\/ Limit the frame size when PSRAM is not available\n      config.frame_size = FRAMESIZE_SVGA;\n      config.fb_location = CAMERA_FB_IN_DRAM;\n    }\n  } else {\n    \/\/ Best option for face detection\/recognition\n    config.frame_size = FRAMESIZE_240X240;\n#if CONFIG_IDF_TARGET_ESP32S3\n    config.fb_count = 2;\n#endif\n  }\n\n#if defined(CAMERA_MODEL_ESP_EYE)\n  pinMode(13, INPUT_PULLUP);\n  pinMode(14, INPUT_PULLUP);\n#endif\n\n  \/\/ camera init\n  esp_err_t err = esp_camera_init(&amp;config);\n  if (err != ESP_OK) {\n    Serial.printf(\"Camera init failed with error 0x%x\", err);\n    return;\n  }\n\n  sensor_t *s = esp_camera_sensor_get();\n  \/\/ initial sensors are flipped vertically and colors are a bit saturated\n  if (s-&gt;id.PID == OV3660_PID) {\n    s-&gt;set_vflip(s, 1);        \/\/ flip it back\n    s-&gt;set_brightness(s, 1);   \/\/ up the brightness just a bit\n    s-&gt;set_saturation(s, -2);  \/\/ lower the saturation\n  }\n  \/\/ drop down frame size for higher initial frame rate\n  if (config.pixel_format == PIXFORMAT_JPEG) {\n    s-&gt;set_framesize(s, FRAMESIZE_QVGA);\n  }\n\n#if defined(CAMERA_MODEL_M5STACK_WIDE) || defined(CAMERA_MODEL_M5STACK_ESP32CAM)\n  s-&gt;set_vflip(s, 1);\n  s-&gt;set_hmirror(s, 1);\n#endif\n\n#if defined(CAMERA_MODEL_ESP32S3_EYE)\n  s-&gt;set_vflip(s, 1);\n#endif\n\n\/\/ Setup LED FLash if LED pin is defined in camera_pins.h\n#if defined(LED_GPIO_NUM)\n  setupLedFlash(LED_GPIO_NUM);\n#endif\n\n  WiFi.begin(ssid, password);\n  WiFi.setSleep(false);\n\n  while (WiFi.status() != WL_CONNECTED) {\n    delay(500);\n    Serial.print(\".\");\n  }\n  Serial.println(\"\");\n  Serial.println(\"WiFi connected\");\n\n  startCameraServer();\n\n  Serial.print(\"Camera Ready! Use 'http:\/\/\");\n  Serial.print(WiFi.localIP());\n  Serial.println(\"' to connect\");\n}\n\nvoid loop() {\n  \/\/ Do nothing. Everything is done in another task by the web server\n  delay(10000);\n}\n\n<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6bbc7e7 e-flex e-con-boxed e-con e-parent\" data-id=\"6bbc7e7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-5431a19 e-con-full e-flex e-con e-child\" data-id=\"5431a19\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4aed9b0 elementor-widget elementor-widget-text-editor\" data-id=\"4aed9b0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h3 class=\"wp-block-heading\">ESP32-S CAM &#8211; Code de t\u00e9l\u00e9chargement<\/h3>\n<p>Pour t\u00e9l\u00e9charger du code sur la carte ESP32-CAM, connectez-la \u00e0 votre ordinateur \u00e0 l\u2019aide d\u2019un\u00a0<a href=\"https:\/\/makeradvisor.com\/tools\/ftdi-programmer-board\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"Programmateur FTDI (s\u2019ouvre dans un nouvel onglet)\">programmeur FTDI<\/a>. Suivez le sch\u00e9ma suivant :<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b3fa5b1 e-con-full e-flex e-con e-child\" data-id=\"b3fa5b1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-70e7843 elementor-widget elementor-widget-image\" data-id=\"70e7843\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-FTDI-programmer.webp\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"ESP32-CAM-FTDI-programmer\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6NDg2NCwidXJsIjoiaHR0cHM6XC9cL3d3dy5kb21vdGljLnBoZGF0YS5mclwvZG9tb3RpY1wvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyNFwvMDZcL0VTUDMyLUNBTS1GVERJLXByb2dyYW1tZXIud2VicCJ9\">\n\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"877\" height=\"532\" src=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-FTDI-programmer.webp\" class=\"attachment-large size-large wp-image-4864\" alt=\"\" srcset=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-FTDI-programmer.webp 877w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-FTDI-programmer-300x182.webp 300w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-FTDI-programmer-768x466.webp 768w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/ESP32-CAM-FTDI-programmer-150x91.webp 150w\" sizes=\"(max-width: 877px) 100vw, 877px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3fee2c8 e-flex e-con-boxed e-con e-parent\" data-id=\"3fee2c8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-4e6b0bf e-con-full e-flex e-con e-child\" data-id=\"4e6b0bf\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ea9d30c elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"ea9d30c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ef1ffd5 elementor-widget elementor-widget-heading\" data-id=\"ef1ffd5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">2 vid\u00e9os pour contr\u00f4ler l'ESP32-S CAM<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8ad93ce e-con-full e-flex e-con e-child\" data-id=\"8ad93ce\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-2180112 e-con-full e-flex e-con e-child\" data-id=\"2180112\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7564487 elementor-widget elementor-widget-video\" data-id=\"7564487\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;youtube_url&quot;:&quot;https:\\\/\\\/youtu.be\\\/Qbs_haLx3PE?si=en6WhuJlaPjF37dz&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<div class=\"elementor-video\"><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3ac6ff1 e-con-full e-flex e-con e-child\" data-id=\"3ac6ff1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-2f6807e e-con-full e-flex e-con e-child\" data-id=\"2f6807e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1ad7090 elementor-widget elementor-widget-video\" data-id=\"1ad7090\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;youtube_url&quot;:&quot;https:\\\/\\\/youtu.be\\\/o6QtKzEDXSY?si=s_avDPS3ixgt9fdw&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<div class=\"elementor-video\"><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-716ffd19 e-flex e-con-boxed e-con e-parent\" data-id=\"716ffd19\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-57522745 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"57522745\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<a class=\"elementor-icon\" href=\"#menu\">\n\t\t\t<i aria-hidden=\"true\" class=\"fas fa-arrow-up\"><\/i>\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-474b7931 e-flex e-con-boxed e-con e-parent\" data-id=\"474b7931\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-35104610 elementor-widget elementor-widget-text-editor\" data-id=\"35104610\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"2509\" class=\"elementor elementor-2509\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dc37c4c e-flex e-con-boxed e-con e-parent\" data-id=\"dc37c4c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-31250bc elementor-widget elementor-widget-image\" data-id=\"31250bc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1000\" height=\"140\" src=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/pied-de-page.webp\" class=\"attachment-large size-large wp-image-3167\" alt=\"\" srcset=\"https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/pied-de-page.webp 1000w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/pied-de-page-300x42.webp 300w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/pied-de-page-768x108.webp 768w, https:\/\/www.domotic.phdata.fr\/domotic\/wp-content\/uploads\/2024\/06\/pied-de-page-150x21.webp 150w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-da41007 elementor-widget elementor-widget-text-editor\" data-id=\"da41007\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"text-align: center;\"><strong>Domotique &#8211; informatique &#8211; \u00e9lectronique &#8211; dictionnaire &#8211; projets<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8a0e2d2 elementor-widget elementor-widget-text-editor\" data-id=\"8a0e2d2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Copyright 2024<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>#include &lt;esp_sleep.h&gt; #include &lt;driver\/rtc_io.h&gt; #include &lt;Arduino.h&gt; #define WAKEUP_PIN GPIO_NUM_13 void setup() { Serial.begin(115200); delay(1000); \/\/ Attendre un peu pour permettre l&rsquo;ouverture du moniteur s\u00e9rie \/\/ Configurer la broche pour l&rsquo;entr\u00e9e pinMode(WAKEUP_PIN, INPUT); \/\/ Configurer la m\u00e9thode de r\u00e9veil par interruption externe sur GPIO 13, signal bas esp_err_t err = esp_sleep_enable_ext0_wakeup(WAKEUP_PIN, 0); if (err != ESP_OK) [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_eb_attr":"","ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"","ocean_second_sidebar":"","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"","ocean_custom_header_template":"","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"","ocean_menu_typo_font_family":"","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"","_jetpack_memberships_contains_paid_content":false,"ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"on","ocean_gallery_id":[],"footnotes":""},"categories":[16],"tags":[],"class_list":["post-4763","post","type-post","status-publish","format-standard","hentry","category-blog","entry"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.domotic.phdata.fr\/domotic\/wp-json\/wp\/v2\/posts\/4763","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.domotic.phdata.fr\/domotic\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.domotic.phdata.fr\/domotic\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.domotic.phdata.fr\/domotic\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.domotic.phdata.fr\/domotic\/wp-json\/wp\/v2\/comments?post=4763"}],"version-history":[{"count":215,"href":"https:\/\/www.domotic.phdata.fr\/domotic\/wp-json\/wp\/v2\/posts\/4763\/revisions"}],"predecessor-version":[{"id":6156,"href":"https:\/\/www.domotic.phdata.fr\/domotic\/wp-json\/wp\/v2\/posts\/4763\/revisions\/6156"}],"wp:attachment":[{"href":"https:\/\/www.domotic.phdata.fr\/domotic\/wp-json\/wp\/v2\/media?parent=4763"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.domotic.phdata.fr\/domotic\/wp-json\/wp\/v2\/categories?post=4763"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.domotic.phdata.fr\/domotic\/wp-json\/wp\/v2\/tags?post=4763"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}