Dans notre vie quotidienne, d’énormes quantités de déchets sont générées dans les maisons, les rues, les bureaux et les lieux publics. Mais le vrai problème n’est pas seulement la collecte des déchets ; il le sépare correctement. Lorsque des déchets biodégradables comme des déchets alimentaires et des feuilles sont mélangés à des déchets non biodégradables comme des bouteilles en plastique et des canettes métalliques, le recyclage devient difficile et la pollution de l’environnement augmente. Le tri manuel des déchets prend du temps, nécessite un effort humain continu et conduit souvent à des erreurs.
Et si un petit appareil pouvait simplement examiner les déchets et décider en quelques secondes s’ils appartiennent à la catégorie biodégradable ou non biodégradable ? C’est exactement ce que fait ce projet. Voyons ce que c’est et comment cela fonctionne. Ce projet résout ce problème grâce à un système de détection de déchets compact et peu coûteux utilisant le traitement d’images.
Comment fonctionne le système de détection des déchets ESP32-CAM ?
Ce module de système de détection de déchets ESP32-CAM capture une image des déchets d’une simple pression sur un bouton. Au lieu d’effectuer tout le traitement à l’intérieur du microcontrôleur, l’image capturée est transmise via Wi-Fi à l’API CircuitDigest Cloud, où une analyse d’image basée sur l’IA est effectuée.
La plateforme cloud traite l’image, identifie le type de déchet et renvoie le résultat de la classification au module ESP32-CAM. La catégorie détectée est ensuite affichée sur le moniteur série, indiquant si les déchets sont biodégradables ou non. Pour fournir une indication visuelle claire, des LED sont utilisées dans le système : la LED rouge s’allume lorsque des déchets biodégradables sont détectés, tandis que la LED verte s’allume pour les déchets non biodégradables. Cela rend le système simple, rapide et efficace pour les applications de tri intelligent des déchets. Nous avons également construit de nombreux projets d’IA et projets ESP32-CAM similaires précédemment ici sur CircuitDigest ; vous pouvez également les consulter si vous souhaitez en savoir plus
Composants requis pour le projet de détection des déchets de came ESP32
Le tableau suivant répertorie tous les composants nécessaires, ainsi que leur objectif dans le projet de détection des déchets ESP32-CAM :
| S. Non | Composants | But |
| 1. | Caméra ESP32 | Utilisé comme microcontrôleur et aussi pour prendre des photos. |
| 2. | Bouton poussoir | Utilisé pour donner l’entrée de l’utilisateur au microcontrôleur |
| 3. | Planche à pain | Utilisé pour rendre les connexions simples et soignées. |
| 4. | LED rouges et vertes | Utilisé à titre indicatif pour les différents types de déchets |
| 5. | Résistances de 220 ohms | Utilisé pour limiter le courant |
*Important: Si vous utilisez l’ESP32-CAM standard (sans USB intégré), vous aurez besoin d’un adaptateur USB vers série (FTDI) pour le programmer. Connectez FTDI TX → ESP32-CAM RX (U0R), RX → TX (U0T), GND → GND et maintenez GPIO0 LOW pendant le téléchargement pour passer en mode flash. Si votre carte dispose déjà d’un port micro-USB, aucun adaptateur n’est requis. Si vous débutez avec le module ESP32-CAM, nous vous recommandons de consulter notre guide « Comment programmer l’ESP32-CAM ?
Schéma de circuit – Système de détection des déchets ESP32-CAM
Le schéma de circuit suivant montre la connexion entre l’ESP32-CAM, le bouton-poussoir et la planche à pain. Le bouton poussoir est relié au GPIO13 de l’ESP32-CAM pour déclencher la capture photo, et aux LED’s pour indiquer les différents types de déchets.

Système de détection des déchets de connexion matérielle
L’image ci-dessous montre la connexion matérielle réelle, ce qui donne une idée claire de la façon dont les composants sont connectés dans la vie réelle. Pour alimenter le système, nous utilisons le câble USB connecté au port USB de l’ordinateur portable.
Procédure étape par étape pour créer le système de détection des déchets ESP32-CAM
Voyons une procédure étape par étape pour créer un système de détection d’objets à l’aide de l’API de détection des déchets CircuitDigest Cloud.
Étape 1⇒Configurer le compte Cloud CircuitDigest
Tout d’abord, vous devez créer un compte sur le Circuit Digest Cloud. Si vous en avez déjà un, accédez simplement au site Web CircuitDigest Cloud, faites défiler vers le bas, recherchez la fonction de détection des déchets, cliquez dessus et entrez.

Étape 2⇒Testez l’API avec des exemples d’images
À l’intérieur, vous remarquerez diverses options sur le côté gauche, telles que « Commencer » et « Mon utilisation ». Vous pouvez également ajuster le niveau de confiance en fonction de vos besoins, et votre clé API y sera affichée. Avant de connecter un matériel, vous pouvez tester le système à l’aide de la fonction « Try API ». Téléchargez simplement une image contenant des déchets biodégradables et des déchets non biodégradables, puis cliquez sur « Exécuter le test ».

Étape 3⇒Examinez les résultats du test API
En quelques secondes, le système traitera l’image et affichera les déchets biodégradables et non biodégradables, ainsi que la vie. Vous pouvez essayer différentes images pour vérifier l’exactitude de la détection, mais gardez à l’esprit que chaque test consomme votre limite d’utilisation de l’API, qui est limitée à 15 requêtes par jour et 100 par mois.

Étape 4⇒Assemblez le matériel et téléchargez le code
Après avoir testé virtuellement, vous pouvez passer à la configuration matérielle en temps réel. Connectez le module ESP32-CAM selon le schéma de circuit et téléchargez le code fourni depuis la section ESP32-CAM. Une fois la configuration prête, vous pouvez soit utiliser un exemple d’image, soit capturer une image en direct des déchets. En appuyant sur le bouton poussoir connecté au GPIO 13, l’ESP32-CAM capture une image et l’envoie immédiatement à l’API de détection des déchets CircuitDigest. Le serveur traite l’image et renvoie le résultat, qui est ensuite affiché sur le moniteur série. Tout ce processus, de la capture de l’image à l’affichage des déchets biodégradables ou non biodégradables en quelques secondes.

Étape 5⇒ Capturer et classer les déchets en temps réel
L’image ci-dessous montre l’image capturée par l’ESP32-CAM. Parallèlement, vous pouvez voir les résultats de détection de l’image. En dessous, le Serial Monitor affiche le résultat de détection, qui indique si les déchets sont biodégradables ou non.
Explication du code du système de détection des déchets
Dans le code, nous commençons par inclure toutes les bibliothèques nécessaires, qui incluent les bibliothèques liées au Wi-Fi et la bibliothèque de caméras esp_camera. Après cela, nous avons défini le SSID et le mot de passe WiFi ainsi que la clé API CircuitDigest Cloud. Assurez-vous qu’ils sont corrects. Nous avons également défini la broche GPIO utilisée avec le bouton de déclenchement.
const char* WIFI_SSID = "yourssidname";
const char* WIFI_PASS = "yourwifipassword";
const char* API_KEY = "yourapikey";
#define TRIGGER_BTN 13
#define GREEN_LED 15
#define RED_LED 14
#define LED_ON_MS 5000
Cette section contient toutes les configurations matérielles et réseau importantes requises pour le projet. Le SSID et le mot de passe Wi-Fi sont utilisés pour connecter l’ESP32-CAM à Internet afin qu’il puisse communiquer avec l’API CircuitDigest Cloud. La clé API est utilisée pour l’authentification auprès du serveur cloud.
void initCamera() {
camera_config_t cfg = {};
cfg.pixel_format = PIXFORMAT_JPEG;
cfg.frame_size = FRAMESIZE_SVGA;
cfg.jpeg_quality = 8;
cfg.fb_count = 2;
if (esp_camera_init(&cfg) != ESP_OK) {
Serial.println("Camera init failed!");
while (1);
}
sensor_t* s = esp_camera_sensor_get();
s->set_brightness(s, 1);
s->set_contrast(s, 1);
s->set_exposure_ctrl(s, 1);
}
Cette section initialise l’ESP32-CAM avec les paramètres de caméra requis. Le format d’image est défini sur JPEG car il offre une bonne qualité tout en réduisant la taille de l’image pour un téléchargement plus rapide sur le cloud. La taille du cadre est configurée en SVGA pour une meilleure clarté de l’image.
previewServer.on("https://raspberryme.com/", handleRoot);
previewServer.on("/stream", handleStream);
previewServer.begin();
xTaskCreatePinnedToCore(
webServerTask,
"webTask",
8192,
NULL,
1,
NULL,
0
);
Cette section crée un serveur Web à l’intérieur de l’ESP32-CAM pour le streaming vidéo en direct. Lorsque l’adresse IP ESP32 est ouverte dans un navigateur, la page Web root se charge et affiche en continu le flux de la caméra via le point de terminaison /stream.
camera_fb_t* fb = esp_camera_fb_get();
client.println("POST " + String(serverPath) + " HTTP/1.1");
client.println("X-API-Key: " + String(API_KEY));
client.write(imgBuf, imgLen);
String classification =
parseJsonString(json, "classification");
Il s’agit de la principale section de traitement de l’IA du projet. L’ESP32-CAM capture une image et l’envoie en toute sécurité à l’API CircuitDigest Cloud à l’aide d’une requête HTTPS POST. L’image est téléchargée sous forme de données de formulaire en plusieurs parties avec la clé API pour l’authentification.
L’IA cloud analyse l’image des déchets téléchargée et renvoie le résultat de la classification au format JSON. L’ESP32 extrait ensuite des valeurs importantes telles que le nombre de produits biodégradables, le nombre de produits non biodégradables et la classification globale de la réponse.
if (digitalRead(TRIGGER_BTN) == LOW) {
unsigned long now = millis();
if (now - lastTriggerTime > DEBOUNCE_MS) {
lastTriggerTime = now;
classifyWaste();
}
}
flashLed(GREEN_LED);
flashLed(RED_LED);
Cette section vérifie en permanence si le bouton-poussoir est enfoncé. Un délai anti-rebond est ajouté pour éviter plusieurs déclenchements causés par le rebond du commutateur. Une fois le bouton enfoncé, l’ESP32 capture une image et démarre le processus de classification des déchets. Après avoir reçu le résultat AI, la LED correspondante s’allume automatiquement. La LED verte indique les déchets biodégradables, tandis que la LED rouge indique les déchets non biodégradables.
Pourquoi utiliser CircuitDigest Cloud au lieu de former votre propre modèle ?
Les plates-formes telles que Edge Impulse et TensorFlow Lite nécessitent beaucoup de temps pour la collecte d’ensembles de données, la configuration d’un modèle et de quantification de Machine Learning, ainsi que le déploiement. Tous ces processus peuvent prendre des jours, voire des semaines, et nécessitent une compréhension du Machine Learning. Le service de détection des déchets de CircuitDigest Cloud n’est qu’une API RESTful avec des modèles d’apprentissage automatique préconfigurés et hébergés maintenus hors site par CircuitDigest. Bref, vous pouvez obtenir des résultats très précis en effectuant simplement une seule requête HTTPS.
Voici les principales différences entre l’utilisation de CircuitDigest Cloud et la création de votre propre cadre d’apprentissage automatique local :
∗ Temps d’installation : CircuitDigest Cloud – moins de 10 minutes ; Edge Impulse – plusieurs heures à plusieurs jours.
∗ Configuration matérielle requise : Tout MCU compatible Wi-Fi ; ne nécessite pas de GPU ni de RAM élevée.
∗ Mises à jour du modèle : Complété automatiquement via le service cloud sans avoir à reflasher le firmware de l’appareil.
∗ Coût : Offre un niveau de service gratuit (15 demandes/jour) ; il n’y a aucun coût matériel associé à l’utilisation du service, à l’exception de l’ESP32-CAM.
∗ Précision : Améliorations continues des modèles dans le cloud par rapport aux modèles statiques une fois déployés en tant que modèle TFLite sur l’appareil.
Détection intelligente des déchets optimisée par ESP32-CAM : construction complète et démonstration en direct
Regardez la construction complète et la démonstration en direct du système de détection des déchets ESP32-CAM dans la vidéo ci-dessous :

Avantages et limites du système de détection des déchets ESP32-CAM
Le tableau ci-dessous résume les principales forces et contraintes de ce projet de détection de déchets ESP32-CAM pour vous aider à évaluer son adéquation à votre application :
| S. Non | Avantages | Limites |
| 1. | Détection des déchets en temps réel en quelques secondes | Ne peut pas fonctionner sans accès à l’API cloud |
| 2. | Système à faible coût utilisant ESP32-CAM avec caméra intégrée et Wi-Fi | Nécessite une connexion Internet pour la détection des déchets |
| 3. | Pas besoin de matériel coûteux ou de processeurs puissants | Des images floues peuvent donner des résultats erronés |
| 4. | Communication sans fil sans modules supplémentaires | Limité par des limites d’utilisation quotidiennes ou mensuelles de l’API |
| 5. | Petite taille et conception portable | Capture uniquement des images uniques, pas de détection vidéo entièrement en direct |
Dépannage des problèmes courants dans le système de détection des déchets
Problème 1 : Échec de l’allocation de mémoire (échec de la capture)
Si le système affiche « Échec de la capture de la caméra », cela peut être dû à une allocation de mémoire insuffisante dans la mémoire tampon. Les images haute résolution consomment plus de PSRAM et si la mémoire n’est pas disponible, la capture échouera. Réduire la taille de l’image, diminuer la qualité JPEG ou s’assurer que la PSRAM est correctement activée dans la configuration de la carte peut aider à résoudre ce problème.
Problème 2 : ESP32-CAM redémarre automatiquement
Le redémarrage de l’ESP32-CAM est l’un des problèmes courants. Parfois, l’alimentation est reçue par le port USB de l’ordinateur portable, donc s’il redémarre encore et encore, essayez avec la source d’alimentation externe. Assurez-vous également que la connexion est établie correctement.
Problème 3 : Images floues ou de mauvaise qualité
Si les images capturées semblent floues ou peu claires, cela peut être dû à une mise au point ou à des conditions d’éclairage inappropriées. L’objectif ESP32-CAM est réglable, donc la rotation manuelle de l’objectif peut améliorer la mise au point. De plus, assurez-vous que l’environnement dispose d’un éclairage suffisant, car une faible luminosité peut introduire du bruit et réduire la précision de la détection. Le réglage des paramètres de la caméra tels que la luminosité et le contraste peut également améliorer la qualité de l’image.
Problème 4 : Échec de l’initialisation de la caméra
Si l’ESP32-CAM ne parvient pas à initialiser la caméra, cela est généralement dû à une configuration incorrecte des broches, à une alimentation électrique insuffisante ou à une mauvaise sélection de carte dans l’IDE. Assurez-vous que le bon modèle de caméra, à savoir AI Thinker ESP32-Cam, est sélectionné et que tous les GPIO donnés correspondent à la configuration matérielle.
Problème 5 : Aucune détection ou résultats incorrects
Si le système ne parvient pas à détecter des objets ou produit des résultats inexacts, cela est souvent dû à une mauvaise qualité d’image, à un éclairage inapproprié ou à des paramètres de seuil de confiance inadaptés. Assurez-vous que la caméra est placée dans un environnement bien éclairé et correctement focalisée sur l’objet cible. L’ajustement de paramètres tels que la luminosité, le contraste et le seuil de confiance peut améliorer considérablement la précision de la détection.
L’une des principales raisons de choisir cette plate-forme plutôt que des alternatives telles que Edge Impulse ou d’autres cadres de formation en apprentissage automatique est la simplicité et l’accessibilité. Les plates-formes comme Edge Impulse nécessitent généralement la collecte d’ensembles de données, la formation de modèles, l’optimisation et le déploiement, ce qui peut être long et complexe, en particulier pour les débutants. Mais CircuitDigest Cloud fournit une API prête à l’emploi qui élimine le besoin de formation du modèle, permettant un développement plus rapide et des résultats immédiats. Nous avons également réalisé un robot autonome de collecte et de tri des déchets alimenté par l’IA qui collecte et trie les déchets ; parcourez le projet pour plus de détails.
Détection des déchets de caméras ESP32 GitHub
Ce projet GitHub présente un système intelligent de détection et de surveillance des déchets utilisant ESP32-CAM et la vision par ordinateur pour identifier les déchets en temps réel. Conçu pour les applications d’IoT et d’automatisation environnementale, le système peut contribuer à la mise en place de poubelles intelligentes, de détection automatisée des déchets et de solutions de surveillance intelligentes à l’aide de matériel intégré à faible coût.
Foire aux questions – Système de détection des déchets ESP32-CAM
⇥ Pourquoi l’API cloud est-elle utilisée à la place du traitement local ?
L’ESP32-CAM dispose d’une mémoire et d’une puissance de traitement limitées, ce qui rend difficile l’exécution locale de modèles d’IA complexes. L’API cloud effectue un traitement d’image lourd sur des serveurs puissants, offrant une meilleure précision et des résultats de classification des déchets plus rapides.
⇥ Que se passe-t-il lorsqu’on appuie sur le bouton-poussoir ?
Lorsque le bouton-poussoir est enfoncé, l’ESP32-CAM capture une image des déchets et l’envoie à l’API CircuitDigest Cloud. Le serveur traite l’image et la classe comme déchet biodégradable ou non biodégradable.
⇥ Ce système peut-il détecter plusieurs types de déchets en même temps ?
Oui, si plusieurs déchets sont visibles dans l’image, le système peut les analyser et identifier différentes catégories de déchets en fonction du modèle API et des classes prises en charge.
⇥ Ce système peut-il fonctionner sans connexion Internet ?
Non, le système nécessite une connexion Internet active car la détection et la classification des déchets sont effectuées sur le serveur cloud.
⇥ Comment améliorer la précision de la détection ?
La précision de la détection peut être améliorée en garantissant un éclairage approprié, une qualité d’image claire, un angle de caméra correct et en ajustant le seuil de confiance dans les paramètres de l’API.
Projets cloud CircuitDigest associés



Retrouvez l’histoire de Raspberry Pi dans cette vidéo :

