samedi 1 février 2020

ESP32-CAM: enregistrer des photos sur la carte microSD

Je vous propose aujourd'hui une version légèrement remaniée du web server que je vous présentais la semaine dernière: la page web générée par l'ESP32-CAM comporte maintenant un bouton qui permet d'enregistrer l'image sous la forme d'un fichier jpeg dans la carte microSD insérée dans l'ESP32-CAM. L'ESP32-CAM devient ainsi un appareil photo pouvant être déclenché à distance par WiFi.

Nous programmons l'ESP32-CAM avec l'IDE Arduino (voir ce précédent article pour plus de détails).

Pour utiliser le lecteur de cartes microSD de l'ESP32-CAM, l'inclusion des fichiers d'entête "FS.h" et "SD_MMC.h" est nécessaire.


J'ai défini deux variables globales: "carte_presente", qui prendra la valeur "1" si une carte microSD est détectée au démarrage du programme, et "numero_fichier", qui sera utilisée pour numéroter les photos. Dans ce programme, numero_fichier prend la même valeur à chaque redémarrage de la caméra: dans une future version, on pourrait conserver le dernier numéro en EEPROM pour éviter d'effacer une photo déjà présente sur la carte SD.


Dans setUp(), quelques lignes sont consacrées à l'initialisation de la carte.


Dans web_handler(), si une carte SD a été détectée, on ajoute à la page web un bouton qui permettra la prise de la photo. Sinon, on affiche plutôt un court message indiquant l'absence de carte SD.


L'enregistrement du fichier jpeg s'effectue à l'intérieur de la routine enregistrer_photo().


Utilisation

Lors du démarrage, l'adresse IP de la page web est affichée dans le moniteur série.



On copie l'adresse dans un navigateur web: une page web affiche l'image vidéo ainsi que le bouton "Photo".



Chaque clic sur le bouton "photo" génère un nouveau fichier jpeg sur la carte microSD.



Si aucune carte n'a été détectée, la page web présente quand même l'image vidéo, mais elle indique qu'aucune carte microSD n'est présente.




Sketch

Voici le sketch complet:

-
-

À lire également:

Première utilisation de l'ESP32-CAM avec l'IDE Arduino , un web server minimalisteles LEDs de l'ESP32-CAM, time-lapse avec l'ESP32-CAM, mouvement panoramique (ESP32-CAM et servomoteur).


Yves Pelletier (TwitterFacebook)

6 commentaires:

  1. Bonjour,
    Merci pour votre partage et pour sa clarté.
    Est-il possible d'enregistrer l'image aussi sur un disque dur partagé sur le réseau ?
    Comment est-il possible de récupérer la date/heure de l'ordinateur pour l'intégrer dans l'image et le nom du fichier ?
    Avez-vous étudié la possibilité d'enregistrer l'image à chaque fois qu'elle change avec un intervalle prédéfini ?
    Merci.

    RépondreSupprimer
    Réponses
    1. Bonjour,
      Merci pour ce tuto. J'ai installé le sketch qui démarre très bien mais je n'ai que le bouton sur une page blanche avec un petit carré en guise d'image.Cordialement.

      Supprimer
  2. Le serveur minimaliste fonctionne bien mais avec ce script pas de photo mais seulement le bouton

    RépondreSupprimer
  3. Bjr,
    Vous seriez vous penché sur le problème que constitue un enregistrement sur carteSD..... de nuit ?
    (donc avec l'utilisation conjointe d'un flash de la power led ET d'un enregistrement de la prise de vue.)

    RépondreSupprimer
  4. Bonjour , merci pour ces explications sur l'esp32-cam. J'aimerais savoir si c'est possible de récupérer l'image capturer directement dans une base de données MySQL ?
    Si oui , comment le faire ?
    Aidez moi svp. Merci bien

    RépondreSupprimer