Je sais, il y a un certain instructables sur comment automatiser l’arrosage de vos plantes. Habituellement, cela se fait autour d’un Arduino. J’ai décidé toutefois d’utiliser un peu d’une solution moins coûteuse avec un des petits frères de l’Arduino, la Attiny45, mais il serait sans doute travailler avec un Attiny13 aussi bien. (confirmé, il le fait)
Le circuit est assez simple. Un capteur d’humidité fixé entre Vcc et la broche 3 (= analogique pin2) forme un diviseur de tension. Si le sol s’assèche, la résistance de la sonde augmente et la tension sur la broche 3 tombe en panne.
Si elle tombe au-dessous du niveau du niveau sertie de P1, le Attiny sait le sol est trop sec et fait broche 7 haut. Broche 7 alimente un relais d’état solide - 39MF22 - qui met en marche une pompe qui est immergée dans un réservoir d’eau.
J’ai choisi le 39MF22 pour aucune autre raison que que c’était très bon marché.
La zenerdiode D1 est là pour protéger la puce. S’il y a une lignée provenant de la sonde d’humidité, les pointes de tension pourraient être reportée, d'où le zenerdiode. Je vais discuter plus tard de la jumperblock
Jusqu'à ce jour le Attiny n’a rien fait plus que servir d’un comparateur et en fait, pourrait être remplacé par un 741 (si vous oubliez campatibility de pin), mais qu’il soit un microcontrôleur, il peut faire quelques choses de plus. (si vous souhaitez le faire avec un ampli 741 op, regardez ici)
Pompes submersibles habituellement n’aiment pas être laissé en marche à sec, donc le Attiny vérifie le niveau au moyen d’un commutateur (S1) qui, dans mon cas est un roseau basculer à l’extérieur du récipient avec un aimant sur un dispositif flottant dans le conteneur. Vous pouvez également utiliser un switchor tilt un contacteur mécanique actionné par un dispositif flottant. La forme la plus simple que j’ai vu était un caoutchouc flottant canard attaché à une marque passer via une chaîne. Si le niveau obtenu trop faible, le ducky retiraient l’interrupteur.
Si vous avez assez fantastique, vous pourriez par exemple attache une LDR ou un NTC entre la broche 1 et la terre et que l’arrosage seulement se fasse dans la nuit, le matin, au cours de la mi-journée ou quand il était au moment les plus chaudes de la journée.
Photo 2 montre le montage des composants sur un circuit imprimé. Etant donné que rapidement, j’ai voulu tester le circuit, je n'avais pas monté certains des composants encore. Il a un peu plus de composants que sont dans l’image précédente et c’est parce que j’ai ajouté un powersupply 7805 basée standard
Photo 3 montre le PCB (Télécharger) il a quelques thingies rouge sur elle, et je vais arriver à parlerai plus tard. Sachez que ce PCB est vu du côté composant, et par conséquent, il est directement utilisable pour le transfert de chaleur : en bref : imprimer sur papier glacé, mettre ça sur le copperside d’un morceau de PCB propre et dégraissée et transférer cela avec un fer chaud. Etch dans HCl et H2O2 (ma méthode préférée)
Photo 4 montre le capteur d’humidité que j’utilise. Il y a beaucoup de discussion sur les capteurs d’humidité, mais généralement, cela se résume à 2 pointes galvanisés ou un capteur de gypse. J’ai utilisé les deux et je préfère les pointes galvanisés. Facile à faire, facile à utiliser. Oui, mais ce sujet à la corrosion ?
Yep, il y a la corrosion, surtout lorsqu’un courant circule à travers les pointes (quoiqu’il y a très peu). et c’est là qu’intervient la jumperblock dans le circuit. Pour plus de simplicité, je suis animaux les pointes seulement à partir de la ligne principale, donc il y a une tension continue et un courant continu et oui qui accélère la corrosion.
Vous pourriez choisir mais pour nourrir les pointes d’une e/s numériques épingler par exemple Pin 5. J’aurais pu mettre cette option lors de la conception de PCB avec un cavalier à 3 broches, mais qui semblait un peu fou que j’ai décidé déjà que j’allais juste d’utiliser la ligne principale, mais si vous voulez le nourrir de broche 5 puis jetez un oeil sur la conception de circuits imprimés. Il s’agit d’interrompre une trace de cuivre et d’exploiter un fil. C’est tout là est à lui. Le logiciel s’adresse déjà pour elle. Les modifications sont indiquées en rouge sur la conception de circuits imprimés
Juste un peu plus d’infos sur le capteur et la résistance R1. Idéalement, la R1 a la même valeur que votre capteur a sur sa résistance « juste assez humide, pourrait utiliser un peu d’eau ». Alors, quand vous avez fait votre capteur, le coller dans votre sol à un moment qu’elle jcould utiliser un peu d’eau. Donc pas lorsque votre sol est archi-sèche, mais à un moment vous pensez que, Eh bien, je pourrais l’eau aujourd'hui, mais peut-être il tiendra jusqu'à tomoro.
Stick dans votre capteur et mesurer sa résistance. Qui choisit la résistance pour votre R1. Dans mon cas c’était 10 k, mais beaucoup dépend du type de sol, mais aussi sur la distance entre les pointes. Je les ai rapprochés mais vous pourriez opter pour les mettre aux extrémités opposées de votre lit de plantes...
Logiciel :
------
/ * Jardin 3
avril 2012
Types de senseurs :
-Spike humidité sur pin2 analogiques
*
*----------------------Humid------------------------------
* Schéma :
* [Sol]--[10-coussin-résistance k]--| --[Pics]--[SCR]
*
* Analogique Pin 2
*
*
Broches ATTiny
Physique numérique Analoog
1 0 5 reset, interruption de PinChange
2 3 3 INT0, 3
3 2 4 INT0, 4
Terrain 4
5 0 INT0, 0
6 1 INT0, 1
7 1 2 INT0, 2
8 Vcc
*/
Goupille definities
const byte levelPin = 3 ; analogique broche 3 -> pin2 physique mis à niveau
const byte humidPin = 2 ; analogique Pin2 -> capteur d’humidité pin3 physique
const byte pumpPin = 2 ; Pin2 numérique -> physique pin7 pompe
const byte emptyPin = 1 ; Pin1 numérique -> niveau physique Pin6
const byte spikePin = 0 ; Pin0 numérique -> Pin5 physique supplémentaire pour la commutation intermittent de spike
Réglage variable
moite int = 0 ; flotteur n’est pas nécessaire
irriguer les int = 0 ; niveau pour l’irrigation
niveau de l’octet = 0 ;
La fonction suivante, « setup », doit toujours être présente
void setup()
{
pinMode(levelPin,INPUT) ; mettre à niveau
pinMode(humidPin,INPUT) ; mesure humidité
pinMode(emptyPin,INPUT) ; réservoir de mesures
pinMode(spikePin,OUTPUT) ; pour une alimentation alternative des pointes de
pinMode(pumpPin,OUTPUT) ; Sortie pour relais
digitalWrite (pumpPin, basse) ;
digitalWrite (spikePin, basse) ;
}
void loop() //This fonction doit toujours être présente
{
leNiveau = digitalRead(emptyPin) ;
/*
Tout d’abord lire le niveau définie avec P1 sur le levelPin et stocker que dans « irriguer »
*/
irrigate=Sample(levelPin) ;
/*
Ensuite, nous lisons le capteur d’humidité.
Nous aurons tout d’abord d’affecter à la spikePin haute, dans l’affaire qui est utilisé pour alimenter le capteur. Après la lecture, nous avons mis ce retour) si la valeur lue (« humide ») est plus petit que ce qui est considéré comme sec (« irriguer ») puis la pompe doit être allumée pendant un certain temps. Cela se fait en indiquant une treshhold plus élevée d’éteindre la pompe
*/
digitalWrite (spikePin, HIGH) ;
Moist=Sample(humidPin) ; lire humiditySensor
digitalWrite (spikePin, basse) ;
leNiveau = digitalRead(emptyPin) ;
Si (humide < = irriguer) digitalWrite (pumpPin, niveau) ;
Si (humide > = irriguer + 5) digitalWrite (pumpPin, basse) ; empêche la gigue
fin de boucle
}
échantillon d’int (int z)
/ * Cette fonction lira la broche « z » 5 fois et prendre une moyenne.
Par la suite il sera mappé en divisant par 4
Donc : diviser par 20
*/
{
octet i ;
sval int = 0 ;
pour (i = 0; j’ai < 5; i ++) {sval = sval + analogRead(z); / / capteur sur la broche analogique « z »
}
sval = sval / 5 ; moyenne
sval = sval / 4 ; échelle à 8 bits (0 - 255)
sval = sval/20 ;
retour sval ;
}
Le logiciel est assez simple et n’a pas besoin d’expliquer. La mesure s’effectue avec la fonction « échantillon » (j’ai « volé » que quelque part mais j’ai oublié où le crédit n’est pas tous les miens). Chaque fois avant que la fonction est appelée, le « spikePin » est implanté dans le cas où vous l’utiliser pour nourrir les pointes. Si vous lui donnez juste partir de la ligne 5V, que l’instruction peut être omises.
Comme c’est le cas, le logiciel de mesure en continu, donc il ne fait pas vraiment que beaucoup de différence où vous nourrir les pointes de. Si vous avez choisi de nourrir les pointes de la broche de I/O numérique, il serait judicieux de construire aussi un retard dans la mesure, comme une fois par heure, ou deux fois par jour. Le circuit ne disposant pas d’une horloge, il est plus facile de faire ce retard avec des instructions d’un ou plusieurs « retard ».
Obtenir le logiciel dans le Attiny
Il y a beaucoup d’instructions là-dessus et il n’est pas le sujet de ce tutoriel. Vous pouvez utiliser un programmateur dédié, un autre arduino ou même votre port série ou parallèle.
Mais en bref il faut installer un noyau Attiny85 et sélectionnez cette lors de la compilation et programmation. Allez ici pour les carottes et l’explication.
Supplémentaire :
Broche 1 de la Attiny est tirée haute parce que c’est habituellement la broche de remise à zéro et on ne veut pas que s’accrocher à l’air libre. Si on remplacerait R4 avec une résistance de 1 k en série avec une LED, qui peut servir pour les fonctions du signal comme « Je suis mesurer maintenant » ou « le niveau d’eau est trop bas ». Toutefois, vous devrez programmer que la broche comme une broche numérique ordinaire et il perd ainsi sa fonction de réinitialisation. Cela signifie que la reprogrammation n’est pas possible sans un programmeur de haute tension.
Note:
Si vous faites le circuit imprimé, il est sage de faire les plaquettes où les conenctors aller dans un peu plus grands avec par exemple un stylo feutre ou certains vernis à ongles, alors lorsque vous soudez les connecteurs qu’ils peuvent obtenir la bonne prise en main.