Table des matières:

APIS - Système automatisé d'irrigation des plantes : 12 étapes (avec photos)
APIS - Système automatisé d'irrigation des plantes : 12 étapes (avec photos)

Vidéo: APIS - Système automatisé d'irrigation des plantes : 12 étapes (avec photos)

Vidéo: APIS - Système automatisé d'irrigation des plantes : 12 étapes (avec photos)
Vidéo: Les différents systèmes d'irrigation en agriculture et leurs avantages 2024, Novembre
Anonim
APIS - Système automatisé d'irrigation des plantes
APIS - Système automatisé d'irrigation des plantes

L'HISTOIRE: (une prochaine évolution de ce système est disponible ici)

Il y a pas mal d'instructables sur le thème de l'arrosage des plantes, donc j'ai à peine inventé quelque chose d'original ici. Ce qui rend ce système différent, c'est la quantité de programmation et de personnalisation qu'il contient, permettant un meilleur contrôle et une meilleure intégration dans la vie de tous les jours.

Voici une vidéo d'un parcours d'arrosage: parcours d'arrosage

C'est ainsi qu'APIS a vu le jour:

Nous avons deux plants de piment rouge, qui ont à peine « survécu » à plusieurs de nos vacances et qui sont presque considérés comme des membres de la famille à ce stade. Ils ont traversé une sécheresse extrême et un arrosage excessif, mais ont toujours récupéré d'une manière ou d'une autre.

L'idée de construire un arrosage des plantes à base d'Arduino était presque la première idée de la façon dont Arduino pouvait être appliqué en tant que projet domotique. Un simple système d'arrosage des plantes a donc été construit.

Cependant, la version 1 n'avait aucune indication de l'humidité du sol et il n'y avait aucun moyen de dire s'il était sur le point d'arroser les plantes ou si l'arrosage était dans quelques jours.

La curiosité, comme nous le savons tous, a tué le chat, et la version 2 a été construite avec un module à 4 chiffres et 7 segments pour afficher l'humidité actuelle à tout moment.

Ce n'était pas suffisant. La question suivante était "à quand remonte la dernière fois qu'il a arrosé les plantes" ? (Puisque nous étions rarement à la maison pour en être témoin). La version 3 utilisait le module à 7 segments pour afficher également depuis combien de temps le dernier arrosage s'est produit (sous forme de chaîne de texte en cours).

Une nuit, l'arrosage a débuté à 4 heures du matin, réveillant tout le monde. Frustrant… Trouvant trop de travail pour désactiver APIS pour la nuit et pour le jour pour éviter l'arrosage au milieu de la nuit, une horloge en temps réel a été ajoutée pour mettre l'appareil en veille la nuit dans le cadre de la version 4.

Étant donné que l'horloge en temps réel nécessite des ajustements périodiques (comme l'heure d'été par exemple), la version 5 comprend trois boutons permettant de régler une variété de paramètres d'arrosage des plantes.

Cela ne s'est pas arrêté là. J'ai remarqué que la sonde d'humidité avait tendance à s'éroder assez rapidement, très probablement en raison du fait qu'elle était (de par sa conception) sous tension constante et qu'il y avait donc un courant électrique constant entre les sondes (anode érodée). La sonde de sol bon marché de Chine a survécu environ une semaine. Même un clou galvanisé a été « mangé » en un mois. Une sonde en acier inoxydable tenait mieux, mais j'ai remarqué que même cela abandonnait. La version 6 allume la sonde pendant seulement 1 minute toutes les heures (et tout le temps pendant l'arrosage), réduisant ainsi considérablement l'érosion (~16 minutes par jour contre 24 heures par jour).

L'idée:

Développer un système d'arrosage des plantes avec les capacités suivantes:

  1. Mesurer l'humidité du sol
  2. Lorsque vous atteignez une marque d'humidité "faible" prédéfinie, allumez la pompe à eau et arrosez les plantes jusqu'à ce qu'une marque d'humidité "élevée" soit atteinte
  3. L'arrosage doit être fait en plusieurs passages, séparés par des périodes d'inactivité pour permettre la saturation en eau à travers le sol
  4. Le système doit se désactiver la nuit entre les heures de "sommeil" et de "réveil"
  5. L'heure de "réveil" doit être ajustée pour les week-ends à une valeur ultérieure
  6. Le système doit conserver le journal des cycles de pompage
  7. Le système doit afficher la lecture actuelle de l'humidité du sol
  8. Le système doit afficher la date/l'heure du dernier fonctionnement de la pompe
  9. Les paramètres d'arrosage doivent être réglables sans reprogrammation
  10. Arrêtez le pompage et indiquez une condition d'erreur si le fonctionnement de la pompe n'entraîne pas de changement d'humidité (hors d'eau ou problèmes de capteur) empêchant l'inondation de l'usine et les fuites d'eau
  11. Le système doit activer/désactiver la sonde d'humidité pour éviter l'érosion du métal
  12. Le système doit drainer l'eau des tubes pour éviter la formation de moisissure à l'intérieur

Les paramètres suivants doivent être configurables via des boutons:

  1. Marque d'humidité "faible", en %, pour démarrer le fonctionnement de la pompe (par défaut = 60%)
  2. Marque d'humidité "haute", en %, pour arrêter le fonctionnement de la pompe (par défaut = 65%)
  3. Durée d'un seul arrosage, en secondes (par défaut = 60 secondes)
  4. Nombre de tentatives pour atteindre l'humidité cible (par défaut = 4 courses)
  5. Heure militaire à désactiver pour la nuit, heures seulement (par défaut = 22 ou 22 heures)
  6. Heure militaire pour activer le matin, heures seulement (par défaut = 07 ou 7 heures du matin)
  7. Ajustement du week-end pour l'activation du matin, delta heures (par défaut = +2 heures)
  8. Date et heure actuelles

APIS écrit la date/heure des 10 derniers arrosages dans la mémoire EEPROM. Le journal peut être affiché, indiquant la date et l'heure des courses.

L'une des nombreuses choses que nous avons apprises d'APIS est que vous n'avez pas besoin d'arroser les plantes tous les jours, ce qui était notre routine jusqu'à ce que nous voyions les lectures d'humidité du sol sur un écran à 7 segments…

Étape 1: PIÈCES et OUTILS

PIÈCES et OUTILS
PIÈCES et OUTILS
PIÈCES et OUTILS
PIÈCES et OUTILS

Vous aurez besoin des pièces suivantes pour créer des APIS:

BOÎTIER DE COMMANDE ET TUBE:

  1. Carte Arduino Uno: sur Amazon.com
  2. Pompe à liquide péristaltique 12v avec tube en silicone: sur Adafruit.com
  3. Module JY-MCU à tube numérique à affichage numérique 4X: sur Fasttech.com
  4. Kit de carte de dérivation horloge temps réel DS1307: sur Adafruit.com (en option)
  5. Interrupteur tactile Microtivity IM206 6x6x6mm: sur Amazon.com
  6. Tableau Vero: sur Amazon.com
  7. Circuit intégré de pilote de moteur L293D: sur Fasttech.com
  8. 3 résistances de 10kOhm
  9. Arduino projette un boîtier en plastique: sur Amazon.com
  10. Adaptateur 12v AC/DC avec prise d'alimentation 2.1 mm: sur Amazon.com
  11. Brochettes de bambou
  12. Bande de roulement et un peu de colle superciment
  13. Tube en caoutchouc latex super doux 1/8" ID, 3/16" OD, 1/32" mur, ambre semi-clair, 10 pi. Longueur: sur McMaster.com
  14. Raccord de tube cannelé à joint étanche en nylon durable, Té pour ID de tube 1/8", blanc, paquets de 10: sur McMaster.com
  15. Raccord de tube cannelé à joint étanche en nylon durable, étoile pour ID de tube 1/8", blanc, paquets de 10: sur McMaster.com
  16. Comme d'habitude, les fils, les outils de soudure, etc.

SONDE D'HUMIDITÉ:

  1. Petit morceau de bois (1/4" x 1/4" x 1")
  2. 2 x aiguilles d'extraction d'acné en acier inoxydable: sur Amazon.com
  3. Module de capteur de détection d'humidité du sol: sur Fasttech.com

Étape 2: SONDE D'HUMIDITÉ DU SOL V1

SONDE D'HUMIDITÉ DU SOL V1
SONDE D'HUMIDITÉ DU SOL V1
SONDE D'HUMIDITÉ DU SOL V1
SONDE D'HUMIDITÉ DU SOL V1
SONDE D'HUMIDITÉ DU SOL V1
SONDE D'HUMIDITÉ DU SOL V1

L'humidité du sol est mesurée en fonction de la résistance entre deux sondes métalliques insérées dans le sol (à environ 1 pouce d'intervalle). Les schémas sont représentés sur la photo.

La première sonde que j'ai essayée était celle que vous pouvez acheter auprès d'un certain nombre de fournisseurs d'accès Internet (comme celui-ci).

Le problème avec ceux-ci est que le niveau de la feuille est relativement fin et s'érode rapidement (une question d'une ou deux semaines), j'ai donc rapidement abandonné ce préfabriqué pour le capteur plus robuste, basé sur un clou galvanisé (voir l'étape suivante).).

Étape 3: SONDE D'HUMIDITÉ DU SOL V2

SONDE D'HUMIDITÉ DU SOL V2
SONDE D'HUMIDITÉ DU SOL V2
SONDE D'HUMIDITÉ DU SOL V2
SONDE D'HUMIDITÉ DU SOL V2

La sonde "nouvelle génération" était fabriquée à la maison à partir de deux clous galvanisés, d'une planche de bois et de quelques fils.

Comme j'avais déjà une sonde usée, j'ai réutilisé la pièce de connexion et le module électronique de celle-ci, en remplaçant essentiellement le composant de sol.

Les clous galvanisés, à ma grande surprise, se sont également érodés (bien que plus lentement que la feuille mince), mais toujours plus rapidement que je ne le souhaiterais.

Une autre sonde a été conçue, basée sur des aiguilles en acier inoxydable pour éliminer l'acné. (voir étape suivante).

Étape 4: SONDE D'HUMIDITÉ DU SOL V3 "Katana"

SONDE D'HUMIDITÉ DU SOL V3
SONDE D'HUMIDITÉ DU SOL V3
SONDE D'HUMIDITÉ DU SOL V3
SONDE D'HUMIDITÉ DU SOL V3

La sonde en acier inoxydable (ressemblant à une épée de samouraï, d'où son nom) est celle actuellement utilisée.

Je pense que l'érosion rapide pourrait être attribuée au fait que la sonde était toujours sous tension électrique (24x7) quelle que soit la fréquence à laquelle la mesure a eu lieu.

Pour atténuer cela, j'ai changé les intervalles de mesure pour qu'ils soient une fois en 1 heure (après tout, ce n'est PAS un système en temps réel), et j'ai connecté la sonde à l'une des broches numériques au lieu du 5v permanent. Actuellement, la sonde n'est alimentée qu'environ 16 minutes par jour au lieu de 24 heures, ce qui devrait augmenter considérablement sa durée de vie.

Étape 5: FONCTIONNALITÉ DE BASE

FONCTIONNALITÉ DE BASE
FONCTIONNALITÉ DE BASE
FONCTIONNALITÉ DE BASE
FONCTIONNALITÉ DE BASE

APIS est basé sur la carte Arduino UNO.

L'APIS mesure l'humidité du sol une fois par heure, et si elle tombe en dessous d'un seuil prédéfini, allume la pompe pendant une période prédéfinie un nombre prédéfini de fois séparées par des intervalles de "saturation".

Une fois qu'un seuil d'humidité cible est atteint, le processus revient en mode de mesure une fois par heure.

Si l'humidité cible ne peut pas être atteinte, mais que la limite inférieure a été atteinte, c'est également OK (au moins un arrosage a eu lieu). La raison pourrait être le placement malheureux de la sonde, où elle est trop éloignée du sol humide.

Cependant, si même la limite d'humidité inférieure n'a pas pu être atteinte, une condition d'erreur est déclarée. (Très probablement un problème de sonde, ou le seau d'approvisionnement a manqué d'eau, etc.). En cas d'erreur, l'unité dormira pendant 24 heures sans rien faire, puis réessayera.

Étape 6: AFFICHAGE À 7 SEGMENTS

AFFICHAGE À 7 SEGMENTS
AFFICHAGE À 7 SEGMENTS
AFFICHAGE À 7 SEGMENTS
AFFICHAGE À 7 SEGMENTS

AFFICHAGE À 7 SEGMENTS BASÉ SUR LE TM1650:

A l'origine, APIS n'avait aucune capacité d'affichage. Il était impossible de déterminer le niveau d'humidité du sol actuel sans connexion via USB.

Pour résoudre ce problème, j'ai ajouté un affichage à 4 chiffres et 7 segments au système: sur Fasttech.com

Je n'ai trouvé nulle part de bibliothèque pour travailler avec ce module (ni de fiche technique pour cela), donc après quelques heures de sondage et d'expérimentation du port I²C, j'ai décidé d'écrire moi-même une bibliothèque de pilotes.

Il prend en charge les affichages jusqu'à 16 chiffres (avec 4 par défaut), peut afficher des caractères ASCII de base (veuillez noter que tous les caractères ne peuvent pas être construits avec 7 segments, donc les lettres comme W, M, etc. ne sont pas implémentées)., prend en charge la décimale affichage de points sur le module, chaîne de caractères en cours d'exécution (pour afficher plus de 4 lettres) et prend en charge 16 degrés de luminosité.

La bibliothèque est disponible sur le terrain de jeu arduino.cc ici. Bibliothèque de pilotes TM1650

Un exemple de vidéo est disponible ici

ANIMATION:

Un peu d'animation à 7 segments est implémentée lors d'une course à l'eau.

  • Lorsque la pompe est enclenchée, les points numériques sur l'écran s'exécutent de gauche à droite, symbolisant une course d'eau: vidéo d'animation sur l'arrosage
  • Pendant la période de "saturation", les points courent du centre de l'affichage vers l'extérieur, symbolisant la saturation: vidéo d'animation de saturation

Inutile, mais une belle touche.

Étape 7: POMPE et COMMANDE DE POMPE

POMPE et COMMANDE DE POMPE
POMPE et COMMANDE DE POMPE
POMPE et COMMANDE DE POMPE
POMPE et COMMANDE DE POMPE

POMPE

J'ai utilisé une pompe à liquide péristaltique 12v (disponible ici) pour arroser les plantes. La pompe fournit environ 100 ml/min (ce qui correspond à environ 1/2 d'un verre - bon à retenir lors de la configuration du temps de fonctionnement de l'eau pour éviter les débordements, et cela s'est produit 8-))

COMMANDE DE POMPE - L293D

La pompe est contrôlée via la puce de commande de moteur L293D. Étant donné que le sens de rotation est prédéfini, vous n'avez vraiment besoin d'utiliser que la broche d'activation de la puce pour le contrôle. Les broches de direction peuvent être câblées directement sur +5v et GND en permanence.

Si vous (comme moi) n'étiez pas sûr de la direction dans laquelle la pompe ira, vous pouvez toujours connecter les trois broches à Arduino et contrôler la direction par programmation. Moins de ressoudage.

Étape 8: CONFIGURATION et BOUTONS

CONFIGURATION et BOUTONS
CONFIGURATION et BOUTONS
CONFIGURATION et BOUTONS
CONFIGURATION et BOUTONS

BOUTONS:

J'ai utilisé trois boutons pour configurer et contrôler APIS.

Toutes les pressions sur les boutons sont traitées en fonction des interruptions de broche (bibliothèque PinChangeInt).

  • Le rouge (le plus à droite) est un bouton SELECT. Il fait entrer APIS en mode de configuration et confirme également les valeurs.
  • Les boutons noirs les plus à gauche et au milieu (respectivement PLUS et MOINS) sont utilisés pour augmenter/diminuer les valeurs configurables (en mode configuration), ou afficher la date/l'heure actuelle et les informations du dernier arrosage (en mode normal).

Étant donné que la plupart du temps, l'écran est éteint, tous les boutons "réveillent" d'abord l'APIS, puis seulement, lors d'une deuxième pression, remplissent leur fonction.

L'affichage s'éteint après 30 secondes d'inactivité (sauf si un arrosage est en cours).

APIS parcourt les paramètres de configuration au démarrage pour examen: vidéo

CONFIGURATION:

APIS dispose de quatre modes de configuration:

  1. Configurer les paramètres d'arrosage
  2. Configurer l'horloge en temps réel
  3. Arrosage "Forcer"
  4. Consulter le journal d'arrosage

PARAMÈTRES D'ARROSAGE:

  1. Seuil d'humidité du sol bas (commencer l'arrosage)
  2. Seuil d'humidité du sol élevé (arrêt des arrosages)
  3. Durée d'un seul arrosage (en secondes)
  4. Nombre d'arrosages dans un lot
  5. Durée de la période de saturation du sol entre les passages au sein d'un lot (en minutes)
  6. Heure d'activation du mode nuit (heure militaire, heures seulement)
  7. Heure de fin du mode nuit (heure militaire, heures uniquement)
  8. Réglage week-end pour l'heure de fin du mode nuit (en heures)

RÉGLAGE DE L'HORLOGE EN TEMPS RÉEL:

  1. Siècle (soit 20 pour 2015)
  2. Année (soit 15 pour 2015)
  3. Mois
  4. Jour
  5. Heure
  6. Minute

L'horloge est réglée avec des secondes réglées sur 00 lors de la confirmation des minutes.

Les paramètres ont un délai d'attente de 15 secondes, après quoi toutes les modifications sont annulées.

Lors de l'enregistrement, les paramètres sont enregistrés dans la mémoire EEPROM.

FORCER UN ARROSAGE:

Je ne sais toujours pas pourquoi je l'ai mis en œuvre, mais il est là. Une fois activé, APIS entre en mode arrosage. Le mode d'arrosage reste cependant soumis à des seuils. Cela signifie que si vous forcez l'arrosage, mais que l'humidité du sol est au-dessus de la marque HIGH, l'arrosage se terminera immédiatement. Fondamentalement, cela ne fonctionne que si l'humidité du sol se situe entre les seuils BAS et HAUT.

REVUE DU JOURNAL D'ARROSAGE:

APIS conserve un journal des 10 derniers arrosages dans la mémoire EEPROM, que l'utilisateur peut consulter. Seule la date/l'heure de l'arrosage est enregistrée. Les seuils (à l'époque) et le nombre d'exécutions nécessaires pour atteindre le seuil ÉLEVÉ ne sont pas stockés (bien qu'ils le soient dans la prochaine version).

Étape 9: RTC: HORLOGE EN TEMPS RÉEL

RTC: HORLOGE EN TEMPS RÉEL
RTC: HORLOGE EN TEMPS RÉEL

MODE NUIT

Une fois que l'APIS m'a réveillé la nuit, l'idée d'implémenter un "mode nuit" m'est venue à l'esprit.

Un mode nuit est lorsqu'aucune mesure n'a lieu, l'affichage est éteint et aucun arrosage ne s'exécute.

Un jour ouvrable habituel, APIS "se réveille" à 7h00 (configurable) et passe en mode nuit à 22h00 (configurable)., si l'ajustement du week-end est de 2 heures).

RTC BREAKOUT BOARD vs RTC « LOGICIEL »:

J'ai utilisé le RTC matériel (disponible ici) pour suivre la date/l'heure et entrer/sortir des modes nuit.

Son utilisation est facultative, car les croquis peuvent être compilés pour utiliser le RTC dit "logiciel" (en utilisant la fonctionnalité millis () d'arduino).

L'inconvénient de l'utilisation du logiciel RTC est que vous devez régler l'heure à chaque démarrage d'APIS.

J'ai modifié la bibliothèque RTC standard pour qu'elle corresponde exactement à l'API, et également pour contourner le problème de roulement de millis. (Veuillez voir l'étape des croquis pour les téléchargements).

Étape 10: METTRE TOUT ENSEMBLE

METTRE TOUS ENSEMBLE
METTRE TOUS ENSEMBLE
METTRE TOUS ENSEMBLE
METTRE TOUS ENSEMBLE
METTRE TOUS ENSEMBLE
METTRE TOUS ENSEMBLE
METTRE TOUS ENSEMBLE
METTRE TOUS ENSEMBLE

L'ensemble du système (sauf la sonde) y compris la pompe s'insère dans une petite boîte pour Arduino Uno.

  1. L'écran TM1650 utilise l'interface TWI, de sorte que les fils SDA et SDC vont respectivement aux broches Arduino A4 et A5. Les deux autres fils sont +5v et GND.
  2. La carte RTC utilise l'interface TWI, donc comme ci-dessus. (TM1650 et RTC utilisent des ports différents, ils coexistent donc pacifiquement). La broche RTC +5v est connectée à la broche arduino 12 (alimentée via une broche numérique au lieu de +5v). Ne te souviens pas pourquoi je l'ai fait, tu n'es pas obligé.
  3. Les broches L293D sont connectées comme suit: activez (broche 1) à D5 et les broches de contrôle de direction 2 et 7 aux broches arduino D6 et D7 respectivement.
  4. Les BOUTONS sont connectés aux broches D2, D8 et D9 pour SELECT, PLUS et MOINS respectivement. (Les boutons sont implémentés avec des résistances déroulantes de 10K - dans la configuration "active-high").
  5. L'alimentation +5v du module PROBE est connectée à la broche 10 de l'arduino (pour permettre les mesures périodiques) et la sonde est connectée à la broche analogique A1.

REMARQUE: le fichier de schémas Fritzing a été ajouté au référentiel github.

Étape 11: CROQUIS et plus

CROQUIS et plus
CROQUIS et plus

Mise à jour de mars 2015:

  1. Ajout d'une fonctionnalité pour vider les tubes après l'arrosage pour éviter la formation de moisissure (Garçon ! Je suis heureux de ne pas avoir câblé le sens de rotation de la pompe sur L293D !)
  2. Un enregistrement plus complet comprend la date/l'heure du début et de la fin du cycle d'arrosage, le début et la fin de l'humidité et le nombre de fois que la pompe a été enclenchée pendant le cycle d'arrosage
  3. Routine d'erreur mise à jour: l'appareil effectuera une réinitialisation matérielle après 24 heures après avoir saisi la condition d'erreur
  4. Recompilé avec TaskScheduler 2.1.0
  5. Diverses autres corrections de bugs

Depuis le 18 novembre 2015, APIS a été mis à niveau avec les fonctionnalités supplémentaires suivantes:

  1. Utilisation de la bibliothèque DirectIO pour des changements de broches plus rapides et plus faciles
  2. Utilisation de la bibliothèque Timezone pour basculer correctement entre EST et EDT
  3. Ajout d'une logique anti-rebond de bouton à l'aide de TaskScheduler uniquement
  4. Ajout de la fonctionnalité de répétition du bouton (cycle de valeurs si le bouton est enfoncé et maintenu, la vitesse du cycle augmentant après 5 cycles)
  5. Recompilé avec IDE 1.6.6 AVR 1.6.9 contre TaskScheduler 1.8.4
  6. Déplacé vers Github

BIBLIOTHÈQUES:

APIS est basé sur les bibliothèques suivantes:

  • EEPROM - partie de l'IDE Arduino
  • Fil - partie de l'IDE Arduino
  • EnableInterrupt - disponible sur Github
  • Fuseau horaire - disponible sur Github
  • DirectIO - disponible sur Github

Modifié (fourché) par moi:

  • Heure - disponible sur Github
  • RTClib - disponible sur Github

Développé par moi:

  • TM1650 - disponible sur Github
  • TaskScheduler - disponible sur Github
  • AvgFilter - disponible sur Github

ESQUISSER:

La dernière version de l'esquisse APIS, y compris le fichier de schémas fritzing, est disponible sur Github

FEUILLES DE DONNÉES:

  • L293D: ici
  • Carte de dérivation RTC: ici

Étape 12: *** NOUS AVONS GAGNÉ !!! ***

*** NOUS AVONS GAGNÉ !!! ***
*** NOUS AVONS GAGNÉ !!! ***

Ce projet a remporté le deuxième prix du concours Home Automation parrainé par Dexter Industries.

Vérifiez-le! WOO-HOO !!!

Automatisation de la maison
Automatisation de la maison
Automatisation de la maison
Automatisation de la maison

Deuxième prix de la domotique

Conseillé: