Pièces nécessaires :
-Capteur d’humidité du sol (dealextreme $3)
-Arduino d’aucune sorte (dealextreme $10)
-mini servo de toute nature (9gm ~ 5$)
-valve de l’aquarium
-Potentiomètre 10K
-pipe à eau (type aquarium mince)
Tout d’abord tremper la fourche de la sonde d’humidité au sol complètement... connecter le capteur à A0 et 10K pot A1 broches de l’Arduino. Branchez le servo sur D9 broche. puissance du système avec ce que vous voulez... (Batterie ou adaptateur mural)... Téléchargez le croquis sur arduino, régler le pot et là vous allez... vous pouvez régler le niveau de l’arrosage nécessaire à tout moment par le potentiomètre... c’est tout... Vous pouvez mettre le système dans une boîte imperméable à l’eau de petits projets de toute nature... vous pouvez faire un système portatif fonctionnant sur batterie et ajouter écran lcd a16x2 pour montrer l’humidité et arrosage statut... s’il vous plaît n’hésitez pas à me contacter pour toute aide et n’oubliez pas de voter pour moi si vous le souhaitez...:) Mes autres projets sont sur mon site web... http://borsaci06.com
Voici le programme, copiez et collez-le à l’IDE Arduino et télécharger :
/ * Dincer Hepguler 2013
* http://borsaci06.com
* Lire des valeurs analogiques de capteur d’humidité sur le port série
* Système d’arrosage contrôlé par un servo de commande
*
*/
const int numReadings = 20 ; nombre de lectures de lissage
int lectures [numReadings] ; les lectures de l’entrée analogique
int index = 0 ; l’index de la lecture courante
total int = 0 ; le total cumulé
int val = 0 ; la moyenne
#include
Servo myservo ; Créez l’objet servo pour contrôler un servo
int sensorPin = A0 ; capteur d’humidité à A0 (analog0)
int pos = 90 ; variable pour enregistrer la position servo et set de servo pour centrer
int thresholdPin = A1 ; pot de seuil au A1
int val = analogRead(sensorPin) ;
seuil d’int = analogRead(thresholdPin) ;
void setup() {}
Serial.Begin(9600) ;
myservo.Attach(9) ; attache le servo sur la broche 9
initialiser toutes les lectures à 0 :
pour (int thisReading = 0; thisReading < numReadings ; thisReading ++)
lectures [thisReading] = 0 ;
}
void loop() {}
soustraire la dernière lecture :
Total = total - lectures [index] ;
lecture de la sonde :
lectures [index] = analogRead(sensorPin) ;
Ajouter la lecture au total :
Total = total + lectures [index] ;
avancer vers la position suivante dans le tableau :
index = index + 1 ;
Si nous sommes à la fin du tableau...
Si (index > = numReadings)
.. Wrap autour du début :
index = 0 ;
seuil d’int = analogRead(thresholdPin) ;
Val = total / numReadings ; calculer la moyenne
Si (val > seuil) {pos = 180;} ouvrir la vanne si sec
else {pos = 60;} garder la vanne fermée sinon
myservo.Write(POS) ; définit la position du servo selon la valeur à l’échelle
Delay(15) ; attend que le servo pour y arriver
Serial.Print(THRESHOLD) ;
Serial.Print("") ;
Serial.Print(Val) ;
Serial.Print("") ;
Serial.println(POS) ;
Delay(10) ; délai entre les lectures de stabilité
}
NOTE : je ne pouvais pas gérer ajouter précisant, it disparaît lors de copier / coller... alors n’oubliez pas d’ajouter une bibliothèque de servo #include...