L’ESP32-CAM est carte offerte à prix très modique (moins de 10 euros) qui comporte un microcontrôleur ESP32 et une caméra OV2640. Une des caractéristiques les plus intéressantes de l’ESP32 étant la possibilité de communiquer en WiFi, une utilisation évidente de l’ESP-32 CAM consiste à transmettre en direct des images vidéo par WiFi (caméra de surveillance, etc.).
En plus d’une caméra OV2640, le module est équipé d’un lecteur de cartes micro SD qui pourra éventuellement servir à stocker des images ou des séquences vidéo.
Si vous êtes déjà familier avec les modules ESP-32 conventionnels, vous remarquerez toutefois que le module ESP32-CAM ne comporte aucun connecteur USB: pour programmer le microcontrôleur, vous devez utiliser un convertisseur USB-Série fonctionnant à un niveau logique de 3,3 V.
Le module que j’ai reçu était déjà assemblé: nul besoin de souder soi-même les connecteurs, ni même de connecter la caméra.
Dans ce court tutoriel, je vous explique comment, dans les minutes suivant la réception de mon module ESP32-CAM, j’ai pu utiliser un exemple fourni avec l’IDE Arduino pour diffuser en direct sur une page web la vidéo captée par la caméra.
Connexions de l’ESP32-CAM au convertisseur USB-série
Pour programmer mon module ESP32-CAM, j’ai utilisé un convertisseur USB-série qui fonctionne à un niveau logique de 3,3 V.
Pour la phase de programmation, les connexions étaient les suivantes:
- Sortie 5 V du convertisseur USB-série: Entrée 5 V de l’ESP32-CAM
- Broche GND du convertisseur USB-série: Broche GND de l’ESP32-CAM
- Broche TXD du convertisseur USB-série: Broche UDR de l’ESP32-CAM
- Broche RXD du convertisseur USB-série: Broche UDT de l’ESP32-CAM
- Broche IO0 branchée à GND
Le module est donc alimenté en 5 V pendant la programmation (je n’ai pas testé, mais j’ai lu sur des forums de discussion que certaines personnes ont eu des problèmes en tentant de programmer sous une alimentation de 3,3 V).
L’information transite de l’ordinateur vers le microcontrôleur (TXD / UDR) et du microcontrôleur vers l’ordinateur (RXD / UDT) à un niveau logique de 3,3 V (si votre convertisseur USB-série est muni d’un commutateur permettant de sélectionner le niveau logique, veillez à le régler à 3,3 V).
La broche IO0 (ou GPIO 0) doit être reliée à la masse (GND) dès la mise sous tension du module ESP32-CAM pour mettre celui-ci en mode programmation. Il faut ensuite débrancher la broche IO0 et appuyer sur le bouton reset (situé au verso du module) pour démarrer le programme. Puisque j’avais inséré mon module sur une breadboard, ce bouton était inaccessible, mais j’ai tout de même pu exécuter le programme en mettant le module sous tension après avoir retiré le câble liant broche IO0 à la masse.
Réglages de l’IDE Arduino
Les cartes de la famille ESP32 ne sont pas incluses par défaut avec l’IDE Arduino; il faut les installer en passant par le « Gestionnaire de cartes« . Si ce n’est pas déjà fait, vous trouverez la marche à suivre détaillée dans ce précédant billet.
Parmi les nombreuses cartes ESP32 disponibles, vous sélectionnez « AI Thinker ESP32-CAM« . (À vrai dire, rien sur mon module ou sur la description offerte par le vendeur ne mentionne « AI Thinker« , mais ce choix a fonctionné correctement.)
Vous ouvrez ensuite l’exemple « CameraWebServer » (Menu Fichier – Exemples – ESP32 – Camera – CameraWebServer).
Par défaut, le sketch est réglé pour être utilisé avec le modèle WROVER: utilisez plutôt la ligne 14 « #define CAMERA_MODEL_AI_THINKER ».
De plus, écrivez les paramètres de votre réseau WiFi aux lignes 18 et 19.
Vous pouvez maintenant verser le sketch dans votre ESP32.
Si tout se passe bien, vous devriez voir, au bout de quelques dizaines de secondes, un message indiquant la réussite du téléversement.
J’ai ensuite débranché le convertisseur du port USB, débranché le fil reliant la broche IO0 à la masse, et rebranché le convertisseur au port USB afin d’exécuter le programme (car je n’avais pas accès au bouton reset situé au verso de la carte).
Le moniteur série affiche l’adresse IP qui permettra de visionner l’image dans un navigateur web.
On copie cette adresse dans le navigateur web de notre choix. Dans la page web qui s’affiche, il s’agit de cliquer sur le bouton « Start Stream » pour que l’image captée par le module ESP32-CAM s’affiche à l’écran. Plusieurs contrôles situés à la gauche de la fenêtre permettent de modifier les caractéristiques de l’image.
En ce qui me concerne, cette première exploration du module ESP32-CAM s’est effectué sans le moindre pépin. J’espère bien, dans un proche avenir, apprendre à personnaliser les programmes pour, par exemple, enregistrer des images sur une carte SD, etc.