Esp32Cam, vidéo surveillance à partir de 5€ (DIY)


L’ESP32-CAM est une carte de développement compacte et polyvalente spécialement conçue pour les applications vidéo.

. Elle combine un puissant microcontrôleur ESP32 avec une caméra OV2640 capable de capturer des images jusqu’à une résolution de 1600×1200 pixels.

Dotée d’une connectivité WiFi intégrée, l’ESP32-CAM permet la transmission sans fil des données et des images capturées vers des serveurs ou des dispositifs distants. Elle dispose également d’un lecteur de carte micro-SD pour le stockage local des images ou des vidéos, offrant ainsi une flexibilité dans la gestion des données.

Grâce à ses dimensions réduites et à sa conception simple, l’ESP32-CAM peut être intégrée facilement dans une variété de projets, tels que des systèmes de surveillance à domicile, des caméras de sécurité, des dispositifs de suivi et bien plus encore.

l’ESP32-CAM est une solution compacte et abordable pour les projets de vision par ordinateur et de surveillance IoT, offrant des fonctionnalités avancées dans un petit format.

On trouve l’ESP32Cam aux alentours de 5€ directement en chine et dans les 10€ sur Amazon : ESP32 CAM.

Acheter un ESP32 CAM

Programmation de l’Esp32Cam


Cet article se divise en deux parties distinctes. Dans la première partie, nous explorons la manière de faire fonctionner le module ESP32-CAM de manière autonome, sans dépendre de Home Assistant. Cependant, dans la seconde partie, nous aborderons l’intégration de cette caméra à Home Assistant.

  • Télécharger l’application Arduino ide, j’utilise la version 1.8.19
  • Avant toute chose, il est nécessaire d’intégrer l’extension du fabricant chinois Espressif.
    Accédez à “Fichier” puis “Préférences”, et ajoutez l’URL du gestionnaire de cartes supplémentaires : https://dl.espressif.com/dl/package_esp32_index.json
Arduino IDE
  • On rajoute les bibliothèques ESP32 : Outils/type de cartes/Gestionnaire de cartes/
Arduino IDE gestionnaire de carte pour esp32 cam
Arduino IDE gestionnaire de carte pour esp32 cam
  • type de carte AI Thinker ESP-32 CAM
Esp32 cam type de carte
  • Sélectionnez le bon port com
CHoisir port com pour téléverser
  • On récupère un programme exemple pour la caméra : Fichier/Exemples/ESP32/Camera/CameraWebServer
Code exemple serveur webcam
  • Quelques modifications dans le code :

Configuration de votre Wifi :

const char* ssid = "**********";
const char* password = "**********";

Supprimez les marques de commentaire devant la carte correspondante dans le code.
#define CAMERA_MODEL_AI_THINKER // Has PSRAM

Dans le menu Outils, j’ai configuré les paramètres suivants :

  • Type de carte « AI Thinker ESP32-cam »

Pour démarrer l’ESP dans le mode approprié pour le téléversement, il est nécessaire d’utiliser le bouton “boot” en le maintenant enfoncé tout en connectant la carte au PC. Cela permet d’activer le mode de téléversement du microcontrôleur.

On compile et on téléverse.

Lancez le moniteur série dans l’IDE/Environnement de développement Arduino (Outils > Moniteur série). Appuyez sur le bouton de réinitialisation de l’ESP32-CAM. Vous obtenez l’adresse ip local de votre cam 🙂


Dans votre navigateur web, vous pouvez accéder à l’adresse IP locale pour visualiser et configurer votre caméra.

Bon bricolage !

Intégration de l’ESP sur Home Assistant

Il est important de ne pas être trop exigeant en ce qui concerne la résolution et le nombre d’images par seconde avec l’ESP32-CAM. Bien que la caméra possède des capacités impressionnantes, elle a tendance à surchauffer rapidement si elle est poussée au-delà de ses limites. En conséquence, elle peut cesser de fonctionner correctement.

Code yaml à téléverser sur l’ESP :

esphome:
  name: espcam
  friendly_name: ESPCAM

esp32:
  board: esp32dev
  framework:
    type: arduino
    
# Enable logging
logger:
 
wifi:
  ssid: ********
  password: **********
  
# Enable Home Assistant API
api:
  encryption:
    key: "Uz0+8qRPzMQjmPkqw/fi+a6sXrAtFmnuv2vbxBFTY1A="
 # Entite Camera
esp32_camera:
  name: camera
  external_clock:
    pin: GPIO0
    frequency: 20MHz
  i2c_pins:
    sda: GPIO26
    scl: GPIO27
  data_pins: [GPIO5, GPIO18, GPIO19, GPIO21, GPIO36, GPIO39, GPIO34, GPIO35]
  vsync_pin: GPIO25
  href_pin: GPIO23
  pixel_clock_pin: GPIO22
  power_down_pin: GPIO32
  brightness: 1
  resolution: 1024x768
  max_framerate: 5 fps
  vertical_flip: False 
  horizontal_mirror: True

# Entite Camera Status
binary_sensor:
  - platform: status
    name: "Camera Status"

# Entite Restart Camera
switch:
  - platform: restart
    name: "Restart Camera"

esp32_camera_web_server:
  - port: 8080
    mode: stream
  - port: 8081
    mode: snapshot

# Entite temps d'utilisation et signal wifi
sensor:
  - platform: uptime
    name: Uptime Sensor
  - platform: wifi_signal 
    name: "WiFi Signal dB"
    id: wifi_signal_db
    update_interval: 60s
    entity_category: "diagnostic"

Personnalisez le code selon vos préférences :

  • Configurez le WiFi selon vos besoins.
  • Ajustez la résolution de l’image en fonction de vos exigences.
  • Modifiez le nombre d’images par seconde selon vos besoins spécifiques.

Comme d’habitude, vous pouvez téléverser votre code en utilisant les outils ESPHome. Si vous rencontrez des problèmes de vitesse lors de l’utilisation du module complémentaire Home Assistant (comme dans mon cas sur un Raspberry Pi 3), je vous recommande de le faire directement sur votre PC avec les outils appropriés. Après avoir téléversé votre code, assurez-vous d’ajouter votre caméra aux appareils et services si elle n’a pas été détectée automatiquement. Utilisez la clé renseignée dans le code YAML pour finaliser l’installation. Ensuite, il ne vous reste plus qu’à l’utiliser 😉