Tags : ESP CAM tasmota domotique
0. Contexte
J’avais besoin d’une toute petite caméra pour surveiller le chat pendant mes vacances, oui, je sais, j’abuse… bref du coup, il devait être assez petit pour ne pas être invasif et j’avais envie de jouer avec une ESP CAM depuis un certain temps. profitant d’une promo sur AliExpress A 14 € les trois, j’ai sauté le pas !
1. Présentation
Tout d’abord attention lors de vos achats, il existe de nombreux types d’ESP CAM, j’ai choisi un qui est vendu avec un module USB-C et une caméra 2 mpx, certains modules ont des caméras vraiment basse définition. Visez au moins une caméra : caméra OV2640
- Taille : 40 mm * 26 mm
- Résolution maximale : 2 MP (1600 x 1200 pixels). (1024 dans la réalité)
- Formats de sortie : JPEG, YUV, RGB565.
- Angle de vision : Varie selon l’objectif (habituellement 65° à 170°).
- Taille des pixels : 2.2 µm x 2.2 µm.
- Microprocesseur : ESP32-D0WDQ6 (ou variante).
- Processeur : Double cœur 32 bits Tensilica LX6.
- Fréquence d’horloge : Jusqu’à 240 MHz.
- Mémoire : SRAM : 520 KB. Flash : Généralement 4 MB
- Wi-Fi : Bande : 2,4 GHz. Protocoles : 802.11 b/g/n.
- Bluetooth : BLE (Bluetooth Low Energy) et Bluetooth classique.
- GPIO : 9 broches GPIO (disponibles selon l’utilisation de la caméra et de la carte SD).
- SPI, I2C, UART : Pour communication avec d’autres composants.
- Carte microSD : Supporte une carte pour stocker les images ou vidéos.
- LED flash : Intégrée pour éclairer les scènes sombres
- Tension d’entrée : 5V via micro-USB ou broches.
- Consommation : En veille : ~10 µA. En fonctionnement : ~160-260 mA (dépend des fonctionnalités actives).
Avantages :
- Compacte et abordable.
- Intégration facile grâce au Wi-Fi et Bluetooth.
- Supportée par Arduino IDE et ESP-IDF, facilitant le développement.
Limitations :
- Ressources mémoire partagées entre les fonctionnalités (Wi-Fi + caméra).
- Performances limitées pour le traitement d’image en temps réel (comparé aux solutions plus puissantes).
- Faible qualité en faible luminosité sans éclairage additionnel.
2. Flash TASMOTA
J’utilise le flash en ligne pour faire cela qui fonctionne très bien : Tasmota
Dans notre cas, nous choisissons Tasmota webcam
Cliquer sur connect puis choisir le bon port (je vous conseille de débrancher tout le reste) dans le pop-up, puis connexion
La liaison s’effectue
puis, nous propose d’installer : ce que l’on fait
Cocher la case erase the device et next
Confirmer en cliquant sur install
il efface et inscris sur la mémoire RAM
Bim bam boum :
Configurer votre wifi 2.4ghz :
et voila !
En cas d’erreur lors du flash:
Si vous avez cette erreur, il suffit de forcer le boot lorsque vous flashez en restant appuyé sur le bouton noir sur votre espcam et recommencer la procédure
3. Configuration
3.1 Module
Nous aller deja definir que c’est bien un esp cam dans les réglages :
Configuration puis module, sélectionner esp cam et sauvegarder (save)
après un cours redémarrage la qualité est déjà plus fluide et apparait le module on/off pour le flash
3.2 Wifi
ici on peut changer le wifi ou en mettre un de secours et donner le nom qui apparait sur le routeur.
Le double wifi permet d’avoir une solution de secours au cas où un wifi n’est plus atteignable
3.3 MQTT
ici, je définis :
Adresse de mon mosquitto dans Host (dans mon cas adresse de mon Jeedom ou de mon HA)
Port : par default 1883
User et password que vous avez défini dans votre mosquito
Topic défini le nom sur lequel va écouter votre mqtt
Full topic dans quel dossier il apparait, chez moi tous mes esp sont dans home
et quand on regarde dans mqtt explorer, il apparait bien :
3.3.1 Exemple dans jeedom
Détaillons un peu quelques actions possibles :
Info 1 :
détaille le type de matériel, sa version et son groupe topic
home/ESPCAMatelier/INFO1
me donne
{"Info1":{"Module":"ESP32-Cam","Version":"14.4.1(release-webcam)","FallbackTopic":"cmnd/DVES_8C8E94_fb/","GroupTopic":"home/ESPCAMatelier/cmnd/"}}
Info 2 :
Sert à savoir l’adresse ip de mon module et son adresse mac
home/ESPCAMatelier/INFO2
me donne
{"Info2":{"WebServerMode":"Admin","Hostname":"espcamatelier","IPAddress":"ADRESSEIPDUMODULE","IP6Global":"","IP6Local":"ADRESSEMAC"}}
Info 3 :
{"Info3":{"RestartReason":"Software reset CPU","BootCount":7}}
LWT :
Permet de savoir si le module est en ligne
home/ESPCAMatelier/LWT
indique donc
Online
State :
Permet de dnous donner quel wifi est connecté et les reglages de l’esp :
home/ESPCAMatelier/STATE
ce qui nous donne
{"Time":"2025-01-25T14:54:54","Uptime":"0T00:10:10","UptimeSec":610,"Heap":115,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":39,"MqttCount":1,"Berry":{"HeapUsed":3,"Objects":33},"POWER":"OFF","Dimmer":100,"Fade":"OFF","Speed":1,"LedTable":"ON","Wifi":{"AP":1,"SSId":"SSIDWIFI","BSSId":"ADRESSE MAC","Channel":1,"Mode":"HT40","RSSI":94,"Signal":-53,"LinkCount":1,"Downtime":"0T00:00:03"}}
Power :
cette commande nous donne l’information du flash
home/ESPCAMatelier/POWER
ce qui nous donne en réponse
OFF
Créons tout d’abord une action
definir l’action simple sur default
Action ON :
Permet d’allumer le flash
home/ESPCAMatelier/cmnd/POWER
en valeur mettre ON et sauvegarder
Action OFF :
On change juste la valeur par OFF
Dimmer :
Permet de créer une barre de variation de la luminosité du flash
Créons tout d’abord une action
definir l’action sur curseur, on ne met pas de valeur et le topic est
home/ESPCAMatelier/cmnd/Dimmer
penser à sauvegarder
cela va créer une info dimmer si elle ne ce crée pas il faut mettre le topic
home/ESPCAMatelier/cmnd/Dimmer
Qui nous renverra la valeur de 0 à 100 du dimmer
4. Timer :
cela permet de définir les heures pendant lequel je veux par exemple que le flash soit allumé :
Dans notre exemple, nous allons l’allumer de 22h à 6h :
5. Other
Ici, on peut ajouter un mot de passe à l’interface web ce qui vivement conseiller
6. Console
La console nous permet en ligne de code d’interagir sur différents éléments de l’esp cam comme sa résolution, l’activation du rtsp …
Pour la trouver, nous devons revenir sur le menu principal et aller dans Tools puis console
6.1 Configuration de la résolution
La commande WcResolution
permet de modifier la résolution de l’image capturée par l’ESP32-CAM. Les options disponibles vont de 96×96 à 1600×1200 selon les besoins. Voici les valeurs possibles :
WcResolution [valeur]
- 0 : 96×96
- 1 : 160×120
- 2 : 176×144
- 3 : 240×176
- 4 : 240×240
- 5 : 320×240
- 6 : 400×256
- 7 : 480×320
- 8 : 640×480
- 9 : 800×600
- 10 : 1024×768
- 11 : 1280×720
- 12 : 1280×1024
- 13 : 1600×1200
Par exemple, pour configurer une résolution de 640×480, entrez :
WcResolution 8
6.2 Contrôle du streaming vidéo
La commande WcStream
permet de démarrer ou d’arrêter le streaming vidéo. Cette fonctionnalité est essentielle pour activer la diffusion de l’image capturée.
- Pour démarrer le streaming :
WcStream 1
- Pour l’arrêter :
WcStream 0
6.3 Activer le serveur RTSP
Le serveur RTSP peut être activé ou désactivé grâce à la commande WcRtsp
. L’activation de cette fonctionnalité force un redémarrage.
- Pour activer le serveur RTSP :
WcRtsp 1
- Pour le désactiver :
WcRtsp 0
6.4 Contrôle des couleurs
La commande WcColorbar
permet d’afficher ou de masquer une mire de couleurs pour tester la caméra.
- Pour afficher la mire de couleurs :
WcColorbar 1
- Pour la masquer :
WcColorbar 0
6.5 Ajustement de la luminosité
Pour modifier la luminosité de l’image, utilisez la commande WcBrightness
. Les valeurs possibles vont de -2 (très sombre) à 2 (très clair).
- Exemple pour augmenter la luminosité :
WcBrightness 2
6.6 Contrôle du contraste
La commande WcContrast
permet d’ajuster le contraste de l’image. Les valeurs disponibles vont de -2 à 2.
- Exemple pour réduire le contraste :
WcContrast -1
6.7 Saturation des couleurs
La saturation peut être modifiée grâce à la commande WcSaturation
. Les valeurs possibles sont : -2 (moins saturé) à 2 (plus saturé).
- Exemple pour augmenter la saturation :
WcSaturation 2
6.8 Effets spéciaux sur l’image
La commande WcSpecialEffect
permet d’appliquer des effets visuels à l’image. Voici les options disponibles :
- 0 : Aucun effet
- 1 : Inversé
- 2 : Noir et blanc
- 3 : Rouge
- 4 : Vert
- 5 : Bleu
- 6 : Jaune
- Exemple pour activer l’effet noir et blanc :
WcSpecialEffect 2
6.9 Contrôle automatique de l’exposition
Pour ajuster l’exposition, utilisez les commandes suivantes :
WcAEC
: Active ou désactive le contrôle automatique de l’exposition (sensor).WcAECDSP
: Active ou désactive le contrôle automatique de l’exposition (DSP).WcAECValue
: Définit une valeur précise pour l’exposition (0 à 1024).
Par exemple :
WcAEC 1
WcAECValue 500
6.10 Mode nuit et FPS réduit
La commande WcFeature
offre des options avancées pour améliorer les performances en basse lumière :
- 0 : Aucun
- 1 : Mode FPS réduit pour augmenter l’exposition.
- 2 : Mode nuit avec temps d’exposition plus long.
- Exemple pour activer le mode nuit :
WcFeature 2
6.11 Contrôle du gain automatique
Utilisez WcAGC
pour activer ou désactiver le gain automatique, et WcAGCGain
pour définir une valeur précise (0 à 30).
- Exemple :
WcAGC 1
WcAGCGain 15
6.12 Correction gamma
La commande WcGammaCorrect
permet d’activer ou de désactiver la correction gamma.
- Pour activer la correction gamma :
WcGammaCorrect 1
6.13 Contrôle de l’image verticale et horizontale
La commande WCFlip
permet de retourner l’image verticalement. Cela est utile si la caméra est montée à l’envers ou si l’orientation de l’image doit être ajustée. Pour activer le retournement vertical :
WCFlip 1
Pour désactiver le retournement :
WCFlip 0
De même, la commande WCMirror
permet de retourner l’image horizontalement. Cela est pratique pour corriger les images inversées lorsque la caméra est installée dans des espaces spécifiques. Pour activer le retournement horizontal :
WCMirror 1
Pour désactiver le retournement :
WCMirror 0
Ces commandes sont idéales pour ajuster l’affichage selon l’installation physique de la caméra.
6.14 Redémarrage de la caméra
Si plusieurs paramètres sont modifiés, il est conseillé de redémarrer la caméra avec la commande suivante :
Restart
6.15 Configuration de la zone horaire
La commande Timezone
permet de définir le fuseau horaire de la caméra afin de s’assurer que les horodatages soient corrects. Voici comment définir un fuseau horaire :
Timezone [valeur]
Voici les valeurs les plus courantes pour les fuseaux horaires :
Valeur | Fuseau horaire | Description |
---|---|---|
-12 | UTC-12:00 | Ligne de changement de date |
-11 | UTC-11:00 | Samoa, Niue |
-10 | UTC-10:00 | Hawaï |
-9 | UTC-09:00 | Alaska |
-8 | UTC-08:00 | Pacifique (Los Angeles) |
-7 | UTC-07:00 | Montagnes (Denver) |
-6 | UTC-06:00 | Centre (Chicago) |
-5 | UTC-05:00 | Est (New York) |
0 | UTC+00:00 | Londres, Lisbonne |
1 | UTC+01:00 | Paris, Berlin |
2 | UTC+02:00 | Athènes, Johannesburg |
3 | UTC+03:00 | Moscou, Nairobi |
5.5 | UTC+05:30 | Inde |
8 | UTC+08:00 | Pékin, Singapour |
9 | UTC+09:00 | Tokyo, Séoul |
12 | UTC+12:00 | Fidji, Nouvelle-Zélande |
Par exemple, pour définir le fuseau horaire de Paris (UTC+1), utilisez :
Timezone 1
7. Caméra
Intégration de la caméra dans jeedom
Flux :
http://ADRESSEIPDEVOTRECAM:81/stream
Et pour le RTSP
Flux :
rtsp://ADRESSEIPDEVOTRECAM:8554/mjpeg/0
J’espère que ce tuto que j’ai essayé de faire complet vous aura permis de comprendre l’utilisation de cette mini cam à l’usage des bricolo du dimanche
N’oubliez pas que la vie est une fête
Loïc