Observer la nature… mais en version moderne
J'adore les terrariums. Ce sont de petits écosystèmes autonomes, mini-forêts enfermées dans du verre, où tout s'équilibre tout seul : eau, lumière, condensation…
Enfin… presque tout seul.
Certaines plantes demandent un environnement précis : humidité stable, température douce, circulation de l'air minimale. Et comme je suis curieux, j'ai eu envie de comprendre ce qui se passait à l'intérieur, en temps réel.
👉 Solution : créer une mini station météo connectée.
L'idée derrière le projet
L'objectif est simple :
- Mesurer humidité / température / pression / altitude
- Envoyer automatiquement les données à une API
- Suivre les valeurs dans un dashboard
- Recevoir des alertes si l'environnement devient trop sec ou trop chaud
En gros : Je voulais pouvoir voir vivre mon terrarium.
Et si un jour j'oublie d'arroser ➝ le système me le dit.
Le matériel
Rien de compliqué :
| Composant | Rôle |
|---|---|
| ESP32 | Le cerveau + WiFi |
| Capteur BME280 | Mesures température / humidité / pression |
| Quelques câbles | Pour relier le capteur à l'ESP32 |
| Un terrarium | Le héros de l'histoire |
Partie technique
Développer ce projet m'a permis de combiner IoT + API + Dashboard.
Stack API & Dashboard
- Framework : Next.js 16 (App Router)
- Langage : TypeScript
- UI : Tailwind CSS + shadcn/ui
- Base de données : MongoDB (via Mongoose)
- Authentification : Auth.js
- Graphiques : Recharts
Architecture
Terrarium (ESP32 + capteur)
↓ envoie 1 mesure / minute
API (Next.js)
↓ stocke brut + calcule moyennes (horaire / jour)
Dashboard webGénération des tokens
Chaque terrarium possède un UUID unique, utilisé par l'ESP32 pour authentifier la requête.
Sur le dashboard : → “Créer un nouveau terrarium” → L'interface génère un token → On le place dans le code de l'ESP32 → Et c'est parti 🚀
Stockage & Agrégation intelligente
Si on stockait brut 1 mesure par minute :
- Ça ferait ~525 600 mesures par an, rien que pour un terrarium. Donc l'API calcule automatiquement :
| Niveau | Objectif |
|---|---|
| Brut | Données récentes (debug & précision) |
| Horaire | Tendances dans la journée |
| Journalier | Vue globale longue durée |
| Moyenne par heure du jour | À “quelle heure” l'humidité monte ou descend en général ? |
C'est fou ce que ça permet de voir. Par exemple : on peut observer le cycle de condensation quotidien du terrarium. C'est un bon indicatif pour savoir si le terrarium est en bonne santé, et si il faut ajuster la lumière ou l'arrosage.
Webhooks & alertes
Dernière brique : On peut créer des alertes personnalisées :
Si l'humidité < 65% pendant ≥ 60 minutes → m'envoyer un webhook / notif
Très pratique pour ne pas tuer la mousse 😬
Comment reproduire chez soi ?
Matériel nécessaire
Budget total : ~15€ à 30€ selon le capteur
- Un ESP32 (module WiFi)
- Un capteur BME280 (température / humidité / pression)
- 4 câbles Dupont
- Un terrarium fermé (ou semi-ouvert)
- Un peu de patience et de curiosité 🌿
Étapes rapides
- Lancer l'API (Next.js) + MongoDB
- Créer un terrarium dans le dashboard → récupérer le token
- Brancher le BME280 à l'ESP32 en suivant le guide ci-après (ou du constructeur si capteur différent)
- Flasher le script Arduino avec WiFi + token
- Laisser vivre la nature 🌱 et observer le dashboard évoluer
Branchements ESP32 avec BME280
| ESP32 | BME280 |
|---|---|
| 3.3V | VCC |
| GND | GND |
| D22 | SCL |
| D21 | SDA |
Conclusion
Ce projet a été l'occasion de :
- comprendre scientifiquement un micro-écosystème
- mélanger nature + électronique + web
- fabriquer un outil utile et élégant
Et honnêtement : Voir le cycle du jour et l'équilibre interne du terrarium en graphique… C'est beaucoup plus vivant que ce que j'imaginais.
Si vous avez un terrarium chez vous : Je ne peux que vous encourager à essayer d'en suivre la vie en temps réel 💚