Étape 6: Contrôleur - la logique
Maintenant, sur la logique du contrôleur de l’Arduino : compter les impulsions, si elles obtiennent au-dessus d’un seuil, le déclenchement de l’arrosage. La logique est simple, n’est-il pas ? Sauf après ma première itération, j’ai découvert que c’est non seulement simple, mais aussi trop simpliste. Les défauts :
- vous ne pouvez pas garder le sol mesure processus exécute continuellement si vous utilisez des piles comme votre source d’alimentation. Pendant la mesure, le contrôleur utilise environ 35-40 ma (plus proviendront en arrosant). Un ensemble de deux 4R25X 6V piles (aka « lanterne ») ont été épuisées dans environ deux semaines – multiplier le nombre de points d’eau et vous verrez que c’est n’est plus bon marché. Mieux prendre des mesures de l’humidité avec heures entre eux – utilisez votre bon sens, le temps entre deux mesures variera sur la saison, la température, la quantité de sols autour de vos plantes, etc..
- Encore plus, vous ne pouvez pas même perpétuer votre Arduino entièrement entre deux mesures, sans faire quoi que ce soit entre deux mesures ; un Mini Pro tirera toujours 20 — 25mA – donc un ensemble de batterie durera seulement 3-4 semaines. Mieux mettre en sommeil profond – d’après mon expérience, cette lecteurs vers le bas de la consommation à un simple 3mA, suffisant pour les mêmes batteries pour durer pendant environ 20 semaines (seulement plus tard, j’ai appris sur Les crevettes et autres circuits de ATM368 courant extrêmement faibles, qui étendrait la vie d’une batterie de la lanterne valeur plus longue que la vie physique des batteries elles-mêmes. Eh bien, il y aura une prochaine fois)
- vous ne pouvez pas décider combien d’eau vous dispenser par la simple lecture de la sonde jusqu'à ce que vous considérez « il est assez humide » - car il faut du temps pour que l’eau de s’infiltrer dans le sol, donc vous aurez décider soit il trop tôt (si la sonde est proche où l’eau ne touche le sol, donc le sol est mouillé trop rapidement) ou trop tard (si la sonde est un peu trop loin et il faut du temps pour que l’eau s’infiltrer en fait la sol). Mieux coller avec la règle de « si elle est trop sèche, verser une quantité prédéterminée d’eau, arrêter et attendre une bonne tandis qu’avant de tester à nouveau »
- vous ne peut pas préréglage des paramètres d’arrosage à la maison, puis aller sur le terrain et s’attendre à travailler aussi bien comme vous « écoute » il à. Chaque sol aura sa propre teneur en minéraux, la structure, la compacité, la capacité de rétention d’eau, etc. – qui aura un impact tout à fait significative des paramètres. En quelque sorte, je ne voyais m’il le champ portant le portable avec moi seulement pour configurer chaque point d’arrosage avec ses valeurs de paramètres très précis.
En tout cas, ce qui précède montre que la configuration du contrôleur logique devront au moins 3 paramètres et hautement préférable, ces 3 paramètres devraient être définissables sans nécessiter l’utilisation d’un ordinateur :
- le « seuil de sécheresse » - le niveau un considère l’arrosage est nécessaire
- la quantité de temps pour appliquer l’arrosage – cela corrèle bien avec la quantité d’eau distribuée pour la plante
- le temps entre deux lectures consécutives d’humidité (entre l’Arduino est mis en sommeil profond)
Bien sûr, il y a aussi la question des lectures de la sonde (après le téléchargement du programme), si seulement dans un souci de diagnostiquer ce qui se passe.
Se référant au schéma dans le "le contrôleur - schéma", c’est là que le PProg0/Rgnd0/Pgnd0 – pompeusement appelons-le « le Conseil de configuration » (lowish droite du schéma) et CONN_Settings1/CONN_Supply1 (en haut du schéma, au-dessus de connecteurs Arduino) il venir jouer : au moment du démarrage, les broches analogiques A0-A3 de la carte Arduino sont configurés comme INPUT_PULLUP au cours de la phase d’installation et de la logique vérifie les 4 broches et interpréter le résultat comme une commande du 16 possible. Par conséquent, pour « signaler » un NIP, il vous suffit de brancher une fiche au sol à l’aide de la « Commission de configuration » (coller la broche Pgnd0 DuPont du « Conseil de configuration » dans la broche de terre de la CONN_Supply1, puis utilisez les autres broches Pprog0 pour tirer sur les broches de configuration Arduino correspondants à la masse).
Remarque : bien sûr tout cela aurait pu être fait avec 4 micro-interrupteurs à bascule et peut-être qu’ils pourraient être en forme sur la carte. Mais j’ai préféré garder les choses aussi bon marché que possible (et à une dimension « macro » - mes yeux ne sont pas ce qu’ils ont l’habitude d’être).
La liste des commandes d’installation - avec l’ordre de codes {A0, A1, A2, A3} :
- mode de fonctionnement - {0,0,0,0} - pas d’installation, le fonctionnement normal
- régler l’heure d’arrosage - {1,0,0,0} - le contrôleur va allumer la pompe et gardez-le jusqu'à ce que le fil est sorti de l’axe ; en ce moment, le contrôleur enregistre la durée d’arrosage enregistrée et l’utilise pour les prochains cycles ;
- Définissez le niveau de seuil de l’humidité - {0,1,0,0} - le contrôleur lire le niveau actuel de l’humidité, l’interprète comme le niveau minimal et va déclencher l’arrosage lorsque la valeur atteint cette valeur (prochain cycle de mesure)
- 3 minutes entre les tests de l’humidité - {1,1,0,0} - définit la période entre deux cycles de palpage l’humidité consécutive à 3 minutes – utile pour tester l’application, ne pas recommandé à long terme en cours d’exécution
- 1 heure entre l’humidité stable - {0,0,1,0} - définit le délai entre deux cycles de palpage l’humidité consécutive à 1 heure.
- 2 heures entre l’humidité stable - {1,0,1,0} - définit le délai entre deux cycles de palpage humidité consécutifs à 2 heures.
- 3 heures entre l’humidité stable - {0,1,1,0} - définit le délai entre deux cycles de palpage l’humidité consécutive à 3 heures.
- 4 heures entre les tests de l’humidité - {1,1,1,0} - définit le délai entre deux cycles de palpage l’humidité consécutive à 4 heures.
- 6 heures entre l’humidité stable - {0,0,0,1} - définit le délai entre deux cycles de palpage l’humidité consécutive à 6 heures.
- 8 heures entre l’humidité stable - {1,0,0,1} - définit le délai entre deux cycles de palpage l’humidité consécutive à 8 heures.
- 12 heures entre l’humidité stable - {0,1,0,1} - définit le délai entre deux cycles de palpage l’humidité consécutive à 12 heures.
- mode de diagnostic - {1,1,0,1} - effectue l’humidité sonder toutes les 5 secondes et indique le nombre d’impulsions enregistrées par le biais de l’interface série USB - utile pour le diagnostic du système
- réservés - {0,0,1,1} - réservé aux futures extensions
- réservés - {1,0,1,1} - réservé aux futures extensions
- réservés - {0,1,1,1} - réservé aux futures extensions
- réinitialisation d’usine par défaut - définit le niveau de seuil sur quelque chose qu’aucun sol (peu importe comment sec) ne va déclencher l’arrosage, l’intervalle entre 2 humidité sonder à 6 heures et le temps d’arrosage de 5 secondes (c'est-à-dire d’établir une configuration qui sera sûrement besoin de changement à toutes fins utiles)
Vous pouvez télécharger le code source de la page du projet sur github.