Le starter kit Arduino Officiel

Pour débutant – Manuel en Français

Apprenez l’Arduino et l’électronique de façon pratique

Avec Amazon prime vous bénéficiez de la livraison gratuite en 1 jours ouvré. 30 jours d’essais gratuits dans obligation d’abonnement!

L’ESP32-CAM et l’Arduino IDE – Une camera IP Wifi

Comment utiliser une Camera ip et reconnaissance facial avec l’Arduino et l’ESP32-CAM

Il est relativement simple d’utiliser le module caméra esp32-cam néanmoins, je pense que cet article vous sera utile. Notamment pour la liste des problèmes rencontrés énumérés en bas de page 🙂

Pour le reste si vous avez l’envie d’installer des caméras de sécurité discrete chez vous, directement accessible depuis une page web. Je vous conseil de suivre cet article 🙂

Ce dont vous aurez besoin:

 

  • Allez dans outils > préférences et ajoutez la ligne suivante: https://dl.espressif.com/dl/package_esp32_index.json
  • Si vous avez un autre package à cet endroit, séparez les d’une virgule.

  • Allez ensuite dans outils > type de carte > gestionnaire de carte

  • Dans la barre de recherche saisissez ESP32

 

  • Allez dans outils > type de carte et selectionnez ESP32 Wrower Module
  • Vérifiez que vous êtes bien connecté au bon port COM
  • Dans outils > partition scheme, sélectionnez Huge APP (3MB No OTA)
  • Appuyez sur le bouton RESET de l’ESP32-CAM
  • Uploadez le code

Connexion de la carte

Lors de la programmation du module suivez le schéma suivant. (vcc au 3.3V)
Connectez l’IO0 au GND pour la programmation. Retirez le ensuite pour l’utilisation du module

Lorsqu’il s’agira de récupérer l’adresse ip du module et de streamer la caméra, connectez le vcc au 5V du module.

Le code Arduino

Charger le sketch fichier > exemples > esp32 > camera > CameraWebServer

N’oubliez pas de choisir votre caméra en décommentant la ligne:

// Select camera model
//#define CAMERA_MODEL_WROVER_KIT
//#define CAMERA_MODEL_M5STACK_PSRAM
#define CAMERA_MODEL_AI_THINKER // Décommentez cette ligne et commentez les autres

Pour vous faciliter la tâche vous pouvez simplement copiez – coller le code ci-dessous dans votre IDE Arduino. N’oubliez pas de changer votre SSID et mot de passe de votre wifi

#include "esp_camera.h"
#include <WiFi.h>
//#include "soc/soc.h" //disable brownour problems
//#include "soc/rtc_cntl_reg.h"  //disable brownour problems

//
// WARNING!!! Make sure that you have either selected ESP32 Wrover Module,
//            or another board which has PSRAM enabled
//

// Select camera model
//#define CAMERA_MODEL_WROVER_KIT
//#define CAMERA_MODEL_M5STACK_PSRAM
#define CAMERA_MODEL_AI_THINKER

const char* ssid = "Votre SSID ici";
const char* password = "Le mot de passe de votre wifi ici";


#if defined(CAMERA_MODEL_WROVER_KIT)
#define PWDN_GPIO_NUM    -1
#define RESET_GPIO_NUM   -1
#define XCLK_GPIO_NUM    21
#define SIOD_GPIO_NUM    26
#define SIOC_GPIO_NUM    27

#define Y9_GPIO_NUM      35
#define Y8_GPIO_NUM      34
#define Y7_GPIO_NUM      39
#define Y6_GPIO_NUM      36
#define Y5_GPIO_NUM      19
#define Y4_GPIO_NUM      18
#define Y3_GPIO_NUM       5
#define Y2_GPIO_NUM       4
#define VSYNC_GPIO_NUM   25
#define HREF_GPIO_NUM    23
#define PCLK_GPIO_NUM    22

#elif defined(CAMERA_MODEL_M5STACK_PSRAM)
#define PWDN_GPIO_NUM     -1
#define RESET_GPIO_NUM    15
#define XCLK_GPIO_NUM     27
#define SIOD_GPIO_NUM     25
#define SIOC_GPIO_NUM     23

#define Y9_GPIO_NUM       19
#define Y8_GPIO_NUM       36
#define Y7_GPIO_NUM       18
#define Y6_GPIO_NUM       39
#define Y5_GPIO_NUM        5
#define Y4_GPIO_NUM       34
#define Y3_GPIO_NUM       35
#define Y2_GPIO_NUM       32
#define VSYNC_GPIO_NUM    22
#define HREF_GPIO_NUM     26
#define PCLK_GPIO_NUM     21

#elif defined(CAMERA_MODEL_AI_THINKER)
#define PWDN_GPIO_NUM     32
#define RESET_GPIO_NUM    -1
#define XCLK_GPIO_NUM      0
#define SIOD_GPIO_NUM     26
#define SIOC_GPIO_NUM     27

#define Y9_GPIO_NUM       35
#define Y8_GPIO_NUM       34
#define Y7_GPIO_NUM       39
#define Y6_GPIO_NUM       36
#define Y5_GPIO_NUM       21
#define Y4_GPIO_NUM       19
#define Y3_GPIO_NUM       18
#define Y2_GPIO_NUM        5
#define VSYNC_GPIO_NUM    25
#define HREF_GPIO_NUM     23
#define PCLK_GPIO_NUM     22

#else
#error "Camera model not selected"
#endif

void startCameraServer();

void setup() {
  //WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); //disable brownout detector
  Serial.begin(115200);
  Serial.setDebugOutput(true);
  Serial.println();

  camera_config_t config;
  config.ledc_channel = LEDC_CHANNEL_0;
  config.ledc_timer = LEDC_TIMER_0;
  config.pin_d0 = Y2_GPIO_NUM;
  config.pin_d1 = Y3_GPIO_NUM;
  config.pin_d2 = Y4_GPIO_NUM;
  config.pin_d3 = Y5_GPIO_NUM;
  config.pin_d4 = Y6_GPIO_NUM;
  config.pin_d5 = Y7_GPIO_NUM;
  config.pin_d6 = Y8_GPIO_NUM;
  config.pin_d7 = Y9_GPIO_NUM;
  config.pin_xclk = XCLK_GPIO_NUM;
  config.pin_pclk = PCLK_GPIO_NUM;
  config.pin_vsync = VSYNC_GPIO_NUM;
  config.pin_href = HREF_GPIO_NUM;
  config.pin_sscb_sda = SIOD_GPIO_NUM;
  config.pin_sscb_scl = SIOC_GPIO_NUM;
  config.pin_pwdn = PWDN_GPIO_NUM;
  config.pin_reset = RESET_GPIO_NUM;
  config.xclk_freq_hz = 20000000;
  config.pixel_format = PIXFORMAT_JPEG;
  //init with high specs to pre-allocate larger buffers
  if(psramFound()){
    config.frame_size = FRAMESIZE_UXGA;
    config.jpeg_quality = 10;
    config.fb_count = 2;
  } else {
    config.frame_size = FRAMESIZE_SVGA;
    config.jpeg_quality = 12;
    config.fb_count = 1;
  }

  // camera init
  esp_err_t err = esp_camera_init(&config);
  if (err != ESP_OK) {
    Serial.printf("Camera init failed with error 0x%x", err);
    return;
  }

  //drop down frame size for higher initial frame rate
  sensor_t * s = esp_camera_sensor_get();
  s->set_framesize(s, FRAMESIZE_QVGA);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  
  startCameraServer();
  
  Serial.print("Camera Ready! Use 'http://");
  Serial.print(WiFi.localIP());
  Serial.println("' to connect");
}

void loop() {
  // put your main code here, to run repeatedly:
  delay(10000);
}

Problèmes rencontrés:

Cas numéro 1: Impossible de charger le fichier Json ESP32

Cas numéro 2: Dans “fichiers” -> “Exemples”, ESP32 n’apparaît pas.

Pour résoudre le soucis, Allez dans “outils” > “type de carte” et choisissez” ESP32 Wrover Module” retournez ensuite dans “fichiers” -> “Exemples” > “ESP32”

Cas numéro 3: Pas de programmation via l’usb

Pour résoudre cela, il faudra se procurer un FTDI usb vers serie – Disponible ici 🙂

Cas numéro 4: Brownout detector was triggered

Pour résoudre ce soucis: Alimentez votre carte a l’aide de la pin 5V a la place de la 3.3V

Module ESP32-CAM – avec caméra 2MP incluse!

10 Commentaires

  1. Gerard

    bonjour,

    merci de votre blog bien utile.
    cependant j’ai deux questions.

    1) Est il possible de faire un zoom, si oui comment faire s’il vous plaît tout en conservant une qualité correcte ?

    2) Vue ma très faible connaissance de l’anglais, existe il une traduction du menu des différents réglages à l’exécution du programme en français ?

    Merci d’avance de votre avis

    Réponse
    • leroyd

      Bonjour Gerard, Je vais faire quelques recherches à ce sujet. Concernant le zoom sans pertes de qualités je ne peux l’assurer. A bientôt

      Réponse
      • Gérard

        Bonsoir
        Merci c’est sympa, j’attends tes avis avant d’aller plus loin
        Bonne soirée

        Réponse
  2. didiersee

    Bonjour mon problème est que le wifi se déconnecte donc le lendemain par exemple je rentre mon ip 192.168.1.20… mais rien il faut que je réinitialise pour que ça fonctionne. Une idée pour résoudre ce problème? donc un ESP32CAM.

    Réponse
    • leroyd

      Hello,

      As-tu bien essayé de l’alimenter en 5V? Par la même occasion il te faut une alimentation avec suffisamment d’ampères pour alimenter le module wifi.

      Lee

      Réponse
      • Gérard

        bonjour
        pour le menu en Français, voir ce lien :
        https://forum.arduino.cc/index.php?topic=688463.0

        pour le zoom, je n’ai rien trouvé, peut être en mettant une résolution supérieure à UXGA (1600X1200)
        Mais je ne sais pas si c’est possible et dans ce cas, quoi mettre ?

        Réponse
  3. Gérard

    Bonjour,
    J’ai enfin pu essayer de zoomer avec les paramètres de résolution qui sont proposés dans le menu.
    J’ai oublié de vous dire que j’utilise l’ESP32-CAM avec mon smartphone ou ma tablette, en point d’accès, on peut donc agrandir l’image de la vidéo en touchant l’écran.
    Je me suis mis avec la résolution UXGA (1600 X 1200), et l’agrandissement de la vidéo se fait bien, mais pas tellement satisfaisant.
    A votre avis, est il possible de mettre une résolution supérieure à l’UXGA (1600 X 1200) ?
    Et si oui, que peut supporter la camera OV2640 comme résolution maximum ?

    En ce qui concerne la traduction du menu en Français, j’ai trouvé ce lien qui peut être utile pour d’autre personnes intéressées, pour moi cela a été très efficace.

    Réponse
  4. Pieri

    Bonjour je voudrais savoir si la cameras est accesible partout dans le monde ou uniquement sur le reseau local ?

    Réponse
    • Eloumou

      Salut quand je téléverse ça m’affiche : <>

      Réponse

Soumettre un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Inscrivez-vous a la newsletter

Inscrivez-vous a la newsletter

Soyez les premiers avertis de nouveaux tutos, mises à jours, bon plans,...

Merci et à bientôt!

Pin It on Pinterest

Share This