Indholdsfortegnelse:

DIY - Automatiseret havevanding - (Arduino / IOT): 9 trin (med billeder)
DIY - Automatiseret havevanding - (Arduino / IOT): 9 trin (med billeder)

Video: DIY - Automatiseret havevanding - (Arduino / IOT): 9 trin (med billeder)

Video: DIY - Automatiseret havevanding - (Arduino / IOT): 9 trin (med billeder)
Video: How to use 4 channel Relay to control AC load with Arduino code 2024, Juli
Anonim
DIY - Automatiseret havevanding - (Arduino / IOT)
DIY - Automatiseret havevanding - (Arduino / IOT)
DIY - Automatiseret havevanding - (Arduino / IOT)
DIY - Automatiseret havevanding - (Arduino / IOT)
DIY - Automatiseret havevanding - (Arduino / IOT)
DIY - Automatiseret havevanding - (Arduino / IOT)

Dette projekt viser dig, hvordan du bygger en kunstvandingskontroller til en have i hjemmet. Kan måle jordfugtighedsmålinger og aktivere kunstvanding fra en havehane, hvis jorden bliver for tør. Regulatoren indeholder også en temperatur- og fugtighedsføler. Controlleren aktiverer ikke havehanen, hvis temperaturen er for lav. Sensoraflæsninger og statistik om vandforbrug / driftstider registreres på ThingsBoard IOT til visualisering og analyse. Advarsler og e -mails udløses, hvis kunstvandingskontrolleren holder op med at overføre data, jorden bliver for tør eller for mættet.

Forudsætninger

  • Arduino -viden, herunder mindst grundlæggende kodning for Arduino og lodning.
  • 1x havehane under tryk

Regning af materialer

  • Havevanding poly rør, jetfly, dryppere osv.
  • Elektronisk hanetimer med to skiver (dvs.: Aqua Systems Electronic Digital Tap Timer)
  • Tap trykreduktion 300kpa
  • Arduino Uno
  • Lora Arduino Shield
  • Lora Gateway (Ikke påkrævet, hvis du har en lokal Things Network -gateway inden for rækkevidde)
  • DHT11 Temperaturfugtighedsføler
  • 5v relæ
  • Telefonkabel
  • Kabelbindere
  • Automotive Split Corrugated Tubing
  • Automotive Terminal Connector Strips
  • 2x galvaniserede søm
  • 1x modstand
  • Silicium / Caulk
  • PVC cement
  • PVC primer
  • PVC -rør 32 mm bredde x 60 mm længde
  • PVC -rør 90 mm bredde x 30 cm længde
  • 3x PVC Push End Caps 90mm
  • 1x PVC skrue endehætte 90mm
  • 1x PVC gevindindsats 90mm
  • 1x PVC Push End Caps 32mm
  • 1x 3,2V strømkilde (tryk på timer) [batterier, AC multivolt adapter]
  • 1x 6-12V strømkilde (arduino) [batterier, USB, USB til vekselstrømsadapter]
  • gevindforseglingstape
  • elektrisk tape

Trin 1: Installer havevanding

Installer havevanding
Installer havevanding
Installer havevanding
Installer havevanding

Layout poly rør, fit jetfly, dryp linjer og dryppere. Vandingscontrolleren fungerer med enhver vandingstilpasning. Kernen måler jordfugtighedsmålinger og aktiverer hanetimeren, hvis og når jorden er for tør. Controlleren kan kalibreres for at indstille lavpunktet for mætning, hvor lang tid hanen skal være tændt for, og hvor ofte controlleren skal kontrollere mætningen.

Disse indstillinger kan ændres på arduino og gemmes i EPROM -hukommelse. Indstillingerne kan også opdateres ved hjælp af IOT -integrationen. Dette projekt vil køre controlleren hver fjerde time og tænde for hanen i 3 minutter, hvis jorden er for tør. Det kan køre et par gange i træk, hvis det er tørt/varmt eller en gang om dagen eller to på anden måde.

Trin 2: Fit Tap Timer

Fit Tap Timer
Fit Tap Timer

Tilpas hanetimeren, og eksperimentér med de justerbare skiver for at finde en hård frekvens og driftstid, der fungerer bedst til din kunstvandingsinstallation. Vi fjerner timeren og ændrer den til at arbejde med en Arduino.

Trin 3: Arduino Build

Arduino Byg
Arduino Byg
Arduino Byg
Arduino Byg
Arduino Byg
Arduino Byg
Arduino Byg
Arduino Byg

Brug ledningsdiagrammet som en vejledning til bygningen. På billederne er telefonkabelføring blevet brugt og skrueklemmer til samlingspunkter. Noget lodning er påkrævet.

Tryk på Timer -ændring

Tag forsigtigt hanetimeren fra hinanden. Vi vil hårdt tilslutte de to justerbare skiver, så de kan styres af arduinoen i stedet for de manuelle urskiver. Den venstre frekvensvælger bliver fast forbundet til nulstillingspositionen, så den højre drejeknap kan skiftes mellem tænd/sluk -positionen. Den højre urskive vil have en ledning fra den midterste højre kontakt og den ydre højre kontakt som vist. Som standard er timeren i slukket position. Hvis de to ledninger kommer i kontakt, vil timeren tænde. Med de to ledninger forbundet til et 5V relæ, kan en arduino derefter lukke/åbne kontakten mellem de to ledninger. Med den ene ledning i den fælles relæterminal og den anden i den normalt lukkede terminal sikrer vi, at timeren slukkes, når arduinoen slukkes. Indstilling af relæpinden til HIGH tænder timeren; Hvis den indstilles til LOW, slukkes timeren.

Jordprobe

Til dette projekt er de to søm loddet til ledning forbundet med skrueterminaler. Et søms terminal går lige til jorden. Den anden forbinder til en analog indgang i arduinoen og en modstand. Modstanden forbinder til arduinos 5v -signal. Vist i vridningsdiagrammet.

Temp/fugtighedssensor

DHT11 Temp/Humidity Sensor er forbundet til arduinoens 5V, jord og en digital pin på arduinoen.

Lora skjold

Dette projekt brugte også et Dragino Lora Shield (ikke vist i ledningsdiagrammet).

PVC -base

PVC -basen til arduinoen, der blev brugt i dette projekt, var designet, så temperatur-/fugtighedsføleren kunne blive udsat, mens alle andre komponenter blev fastgjort inde i det vandtætte PVC -kabinet. Et lille hul bores/skæres til sensoren, og silicium bruges til at holde det på plads, mens fugt hindres i at nå arduinoen. Vist i diagrammet.

Trin 4: Arduino -programmering

Arduino programmering
Arduino programmering

Tilslut komponenterne sammen via et brødbræt eller klemmer til programmering og test

EPROM -konfiguration

Først skal vi skrive konfigurationsvariabler til EPROM -hukommelse. Kør følgende kode på din arduino:

Kode tilgængelig på Github

Her er DRY_VALUE indstillet til 960. 1024 betyder, at jorden er helt tør, 0 betyder fuldstændig mætning, 960 var et godt mætningsniveau for modstanden, kabellængde og anvendte søm. Dette kan variere afhængigt af din egen konfiguration.

VALVE_OPEN er indstillet til 180000 milisekunder (3 minutter). Når/hvis hanstimeren er slået til, vil den stå åben i 3 minutter.

RUN_INTERVAL er indstillet til 14400000 milisekunder (4 timer). Det betyder, at controlleren kontrollerer jordens fugtighed hver fjerde time og tænder for hanen i 3 minutter, hvis mætningen er lav (større end 960).

Koden ovenfor kan til enhver tid ændres og disse værdier ændres.

Programkode

Kode tilgængelig på Github

Afhængigheder:

  • TimedAction
  • Radiohoved

Dette eksempel brugte Dragino Lora -skjoldet og specifikt det samtidige Lora -eksempel, hvor skjoldet sluttede direkte til Dragino Lora Gateway.

Dette kan tilpasses til at bruge Things Network ved at fjerne koden under afsnittet "BEGIN: lora vars" og ændre programmet til at omfatte følgende Dragino -eksempel eller tilpasses til at arbejde med andre radioer/wifi -skærme osv.

Den medfølgende kode forudsætter, at DHT11_PIN er digital pin 4, RELAY_PIN er digital pin 3 og jordfugtig analog pin er analog input 0.

En fejlretningsvariabel kan sættes til sand, så serielle fejlfindingsmeddelelser kan logges på baudrate 9600.

Trin 5: Kabinetbygning

Skab Byg
Skab Byg

Skær PVC -røret, så det passer til hanetimeren og Arduino -basen. Bor huller til hanen til timerhane og slangefitting. Bor huller i røret bredt nok til bilrøret, slip 10 cm længder af røret ind i hullerne og drik ledninger ud fra arduino- og tap -timeren. Dette bør omfatte:

Fra Arduino

  • Strømforsyningskabler og/eller et usb -kabel fra arduinoens USB -port.
  • Jordfugtighedskabler (VCC, GND, A0)
  • To ledninger fra relæets NC & fælles skrueterminaler

Fra hanetimeren

  • Strømforsyningskabler
  • To ledninger fra de højre opkaldskontakter

Trin 6: Test controller før limning

Test controller før limning
Test controller før limning
Test controller før limning
Test controller før limning

Sørg for, at alt stadig fungerer, før du forsegler alt.

Billederne ovenfor viser en prøveopsætning i en esky, hvor jordfugtighedsproben blev placeret i en gryde, og hanetimeren var udstyret med vand, der kom fra en sodavandsflaske.

En drypper blev fastgjort til hanetimeren.

Dette var en god måde at teste, at opsætningen ikke over- eller under vand anlægget.

Dette eksempel kan køres så længe som nødvendigt for at kalibrere controlleren.

Trin 7: Lim / vandtætte kabinetter

Lim / vandtætte kabinetter
Lim / vandtætte kabinetter

Brug PVC Primer og PVC Cement til at fastgøre endehætter og kobling.

Brug caulk/silicium til at udfylde huller omkring den automatiske kanal og tryk på timerfittings.

Her bruges en skrueendehætte på arduino -kabinettet til tilgængelighed.

Trin 8: Installer

Installere
Installere
Installere
Installere
Installere
Installere

Installer på en klar dag. Komponenterne og ledningerne skal forblive tørre, før de forsegles.

Placer controlleren et sted centreret mellem hvor havehanen er placeret, og hvor jordproben skal placeres.

Monter hanetimeren, og sørg for, at den er uden strøm, indtil installationen er færdig.

Monter jordproben.

Sæt båndterminaler på hver komponent, og læg derefter telefonkablet fra hver komponents skrueterminaler, og sørg for, at kablet er dækket af en automatisk kanal. Forbind alt sammen

Forsegl alle terminaler og andre udsatte dele med gevindforseglingstape og derefter elektrisk tape.

Forsegl eventuelle løse/udsatte områder af den spaltede kanal med gevindforseglingstape og derefter elektrisk tape.

Tilslut timeren til en 3,2v strømkilde. Enten en batteripakke eller en 3,2V DC - vekselstrømsadapter, der kører til en stikkontakt.

Tilslut Arduino til en 6-12V DC strømkilde. Enten en batteripakke eller en USB / DC-AC-adapter, der kører til en stikkontakt.

Start og test!

Trin 9: ThingsBoard Integration - Overvågning og rapportering

ThingsBoard Integration - Overvågning og rapportering
ThingsBoard Integration - Overvågning og rapportering

Dette eksempel brugte A Dragino Lora Shield forbundet til en Dragino Lora Gateway. Uanset om du bruger denne opsætning, en anden Lora -opsætning eller en anden IOT -forbindelse, kan de data, der indsamles af kunstvandingskontrolleren, videresendes til en IOT -platform som Thingsboard. Som standard sender programmet følgende datastreng, hvor hvert tegnbyte er hex -kodet:

TXXXHXXXSXXXXRX

Hvor T efterfølges af temperaturen, H efterfølges af fugtigheden, S efterfølges af mætningsniveauet og R efterfølges af et enkelt ciffer vedrørende den handling, den udførte ved det sidste kørselsinterval. Dette kan enten være 0-5, hvor hvert ciffer betyder:

0: Programmet initialiseres1: Temperatursensorfejl2: Temperaturen var for lav til at køre3: Jordfugtighed for tør, så hanetimeren blev aktiveret4: Jordfugtighed fin, så hanetimeren ikke blev aktiveret5: Vandingsregulatoren er blevet deaktiveret

Der er flere måder at installere en kopi af Thingsboard på dit eget udstyr, eller du kan oprette en gratis konto på vores ThingsBoard -installation her.

Konfigurer din enhed i Thingsboard

Følg disse instruktioner for at tilføje en ny enhed i Thingsboard, der kalder den "Irrigation Controller".

Push Telemetri -data fra enheden

Følg disse instruktioner for at konfigurere en metode til at skubbe telemtry -data fra enheden til Thingboard via MQTT, HTTP eller CoAp.

På vores server skubber vi følgende JSON til https://thingsboard.meansofproduction.tech/api/v1/… hver fjerde time, når enheden køres (med levende data):

Vi skubber også periodisk følgende attributter til https://thingsboard.meansofproduction.tech/api/v1/… med data om, hvornår noden sidst blev set:

Dette bruges til advarsler, der udløses, hvis enheden holder op med at overføre data.

Opret et dashboard

Opret et dashboard som beskrevet her. Vores widgets omfatter:

En simpel kortwidget oprettet ud fra feltet lastRunResult telemetri. En lodret digital måleinstrument for temperaturtelemetrifeltet En tidsserie -tabel oprettet ud fra feltet sidsteRunResult -telemetri, der viser data fra de sidste dage. En vandret bjælke, der viser metningstelemetri -feltet. Dette bruger en datapostbehandlingsfunktion:

return 1024-værdi;

Og angiver en minimums- og maksimumværdi 0-100. På denne måde kan mætningsniveauet udtrykkes som en procentdel. En måling til at vise fugtighedsværdien. Et tidsseriediagram, der indeholder temp, fugtighed og kørselsresultat, grupperet i 5 timers perioder for den sidste uge, aggregeret for at vise maks. Værdier. Dette giver os en bar til et fire timers løb. En datapostbehandlingsfunktion bruges til at udtrykke kørselsresultatet som enten 0 eller 120 afhængigt af, om der blev kørt vand eller ej. Det giver en let visuel feedback for at se, hvor ofte vand løber på en uge. Et statisk HTML -kort, der viser et billede af haven.

E -mail -advarsler

Vi brugte regler til at konfigurere e -mail -advarsler til kunstvandingskontrolleren. Alle bruger meddelelsesfiltre og en Send e -mail -handling -plugin -handling.

For at sende en e -mail -advarsel, hvis kunstvandingskontrolleren ikke sender data, brugte vi 'Device Attributes Filter' med følgende filter:

typeof cs.secondsSinceLastSeen! == 'undefined' && cs.secondsSinceLastSeen> 21600

Hvis du vil sende en e -mail, hvis jorden bliver for tør, skal du bruge følgende telemetri -filter

type mætning! = "udefineret" && mætning> 1010

Hvis du vil sende en e -mail baseret på, om jorden bliver for fugtig, skal du bruge følgende telemetri -filter

type mætning! = "udefineret" && mætning

Anbefalede: