Alerte Soif Plante Intelligente – Capteur DIY pour une Hydratation Optimale
Composants et Fournitures
| Composant | Quantité |
|---|---|
| Microchip ATmega328 | 1 |
| Quartz 16 MHz | 1 |
| Condensateur Céramique 20 pF | 2 |
| Régulateur Linéaire 7805 (5V) | 1 |
| LED (couleur au choix) | 2 |
| Résistance 10 kΩ | 1 |
| Résistance 220 Ω | 1 |
| Résistance Traversante 470 Ω | 1 |
| Interrupteur à Glissière | 1 |
| Interrupteur Poussoir C&K PTS 645 | 1 |
| Buzzer Piézoélectrique | 1 |
| Pile 9V + Connecteur | 1 |
| Capteur d'Humidité du Sol SparkFun (avec Bornes à Vis) | 1 |
| Arduino UNO (pour prototypage) | 1 |
| Boîtier Imprimé 3D | 1 |
Outils Nécessaires
- Fer à Souder
- Fil à Souder Sans Plomb
Applications et Services en Ligne
- Éditeur PCB Patchr
- Fabrication PCB Patchr (code GoPatchr pour 15% de réduction)
- Arduino IDE
- Onshape (CAO 3D recommandée)
À Propos du Projet
Comment Tout a Commencé
Je dois l'avouer : je suis un parent de plantes terrible. Que ce soit trop ou trop peu d'eau, rien ne semble les garder en vie ! J'adore pourtant leur présence, leur façon d'égayer un espace qu'aucune affiche IKEA ne peut égaler. J'ai donc décidé de construire un dispositif pour aider tous les "tueurs de plantes silencieux" comme moi à devenir de fiers jardiniers.
Voici le Détecteur de Plante Assoiffée : un appareil qui parle pour vos plantes, vous indiquant exactement quand elles ont besoin d'eau.
Ce projet utilise l'Explorer Uno comme cœur, combiné à un capteur d'humidité du sol et un buzzer piézo qui émet un « criquet » caractéristique quand la plante est sèche. Fait intéressant : l'élément piézo peut à la fois générer du son et détecter des vibrations (comme un coup). Le capteur d'humidité est d'une simplicité enfantine : ses deux sondes agissent comme une résistance variable, produisant une valeur analogique entre 0 et 1023 selon l'humidité. Plus le sol est humide, meilleure est la conductivité entre les sondes, donc plus la résistance est faible.
Étape 1 : Prototypage sur Breadboard
Commencez par câbler le tout sur breadboard pour valider le logiciel avant de concevoir le PCB. J'utilise un Arduino Uno pour la phase de test, puis je transfère l'ATmega328 sur mon PCB final. Le schéma de câblage est fourni pour vous guider.
Notez que vous pouvez utiliser soit un capteur du commerce (SparkFun en fait d'excellents), soit fabriquer le vôtre avec deux tiges métalliques, du fil et une résistance de 47 kΩ. J'ai utilisé des tiges en laiton pour modélisme (disponibles en magasin de modélisme).
Une fois le breadboard câblé, téléversez ce code :
Si tout fonctionne, vous devriez entendre un chant de criquet ! Touchez les deux sondes ensemble et le son doit s'arrêter.
Étape 2 : Conception du PCB
Nous utilisons Patchr pour la conception. Si vous n'avez pas de compte, créez-en un. Voici les raccourcis utiles :
- Face supérieure du PCB : Cmd + 1
- Face inférieure du PCB : Cmd + 2
- Rotation composant : Cmd + R
- Vue empreintes vs composants : Cmd + P
- Routes fantômes face opposée : Cmd + H
- Connectez-vous à Patchr et sélectionnez le template Explorer Uno pour éviter de redessiner l'Arduino.
- Agrandissez l'emprise du circuit pour accueillir le capteur d'humidité et le buzzer.
- Placez la résistance : une broche sur 5V, l'autre sur A0. Routez le 5V sur la face inférieure pour éviter les croisements avec GND sur la face supérieure. Ajoutez un trou traversant pour la sonde du capteur.
- Placez un second trou traversant pour l'autre sonde, relié à une broche GND.
- Ajoutez le buzzer : une broche sur GND, l'autre sur la broche numérique 5.
- Vérifiez toutes les connexions par rapport au breadboard, puis exportez pour fabrication. Patchr Manufacturing garantit des PCB de qualité (promo GoPatchr = 15% sur la première commande).
Étape 3 : Conception du Boîtier
Pendant la fabrication du PCB, concevez le boîtier. Notez les dimensions du circuit (onglet BRD) pour prévoir l'espace nécessaire. Mon modèle est disponible sur Thingiverse. Pour la CAO : Onshape pour les designs avancés, TinkerCAD pour la rapidité. Pas d'imprimante 3D ? De nombreux services d'impression en ligne existent, ou bricolez un boîtier avec des matériaux de récupération.
Étape 4 : Assemblage !
C'est le moment favori : le soudage ! Comme le dit Bob Pease : « Mon langage de programmation préféré, c'est la soudure. » Préparez votre fer, votre playlist préférée, et c'est parti.
Utilisez votre projet Patchr et les schémas comme référence. Note : j'ai soudé des fils entre le buzzer et le PCB pour le positionner en haut du boîtier. Si vous soudez le buzzer directement sur le PCB, prévoyez l'espace lors de la conception.
Que les seules plantes croustillantes dans votre vie soient les chips de kale déshydratées de votre déjeuner d'hier, grâce à l'Alerte Soif Plante ! Questions, GIFs, blagues ou playlists de soudure en commentaires.
Voir la vidéo de construction | Partagez vos hacks
Code Arduino
/*
* Thirst Alert Plant Alarm - Pour Patchr.io
* Tutorial: www.hackster.io/patchr
* PCB Design: www.patchr.io
* Novembre 2019
*/
#include "Volume.h" // Bibliothèque de Connor Nishijima (2016)
int sensorPin = A0; // Broche capteur d'humidité
int sensorValue;
int limit = 300; // Seuil de déclenchement (à ajuster selon votre capteur/sol)
Volume vol;
void setup() {
Serial.begin(9600);
vol.begin();
vol.setMasterVolume(1.00); // Volume 0.00 à 1.00
vol.delay(500);
}
void loop() {
sensorValue = analogRead(sensorPin);
Serial.println(sensorValue);
if (sensorValue > limit) {
Serial.println("*cricket*");
// Joue le criquet à intervalle aléatoire 1-30 sec
chirp();
vol.delay(random(1000, 30000));
} else {
vol.noTone();
}
}
void chirp() {
// Génère les tons de criquet (code de Connor Nishijima)
int freq = random(3700, 4000);
float volume = random(10, 101) / 100.00;
int chirpType = 1;
if (chirpType == 1) {
Serial.println("2");
int chirpCount = random(1, 3);
chirp(chirpCount, freq, volume);
}
}
void chirp(byte times, int freq, float volume) {
float fadeOut = 1.00;
while (times > 0) {
float mv = 0;
while (mv < 1.00) {
int v = 0;
while (v < 255) { vol.tone(freq, v * volume * mv * fadeOut); v += 4; }
v = 255;
while (v > 0) { vol.tone(freq, v * volume * mv * fadeOut); v -= 4; }
vol.delay(20); mv += 0.2;
}
mv = 1.00;
while (mv > 0.00) {
int v = 0;
while (v < 255) { vol.tone(freq, v * volume * mv * fadeOut); v += 4; }
v = 255;
while (v > 0) { vol.tone(freq, v * volume * mv * fadeOut); v -= 4; }
vol.delay(20); mv -= 0.2;
}
vol.noTone(); fadeOut -= 0.75; times--;
}
}
Pièces Personnalisées et Boîtiers
- Boîtier Thirst Alert sur Thingiverse
- Fichier Gerber pour Patchr Manufacturing :
thirstalertpcb_5kbOAcFilw.zip
Schémas
Schéma de câblage disponible dans les fichiers du projet.
Processus de fabrication
- Horloge à Mots Italienne avec Arduino Nano, NeoPixel, LCD et RTC
- Économisez les broches Arduino : clavier 4×3 sur 3 entrées analogiques
- Système d'arrosage intelligent pour plantes d'intérieur avec Arduino Nano
- Compteur kWh Sigfox fiable avec Arduino MKR Fox 1200
- Moniteur de température Bluetooth avec Arduino Nano
- Multimètre capacimètre auto-étendant DIY (10 pF – 10 µF) – Construction Arduino facile
- Serrure à gestes sans contact : Accès sécurisé avec APDS-9960 et Arduino
- Circuit d'entrée analogique isolée pour Arduino : Protection contre les parasites industriels
- Test Précis de Temps de Réaction avec Arduino UNO