Innehållsförteckning:

DIY - Automatiserad trädgårdsbevattning - (Arduino / IOT): 9 steg (med bilder)
DIY - Automatiserad trädgårdsbevattning - (Arduino / IOT): 9 steg (med bilder)

Video: DIY - Automatiserad trädgårdsbevattning - (Arduino / IOT): 9 steg (med bilder)

Video: DIY - Automatiserad trädgårdsbevattning - (Arduino / IOT): 9 steg (med bilder)
Video: How to Create YOUR OWN Garden Watering System in Home Assistant! 2024, Juli
Anonim
DIY - Automatiserad trädgårdsbevattning - (Arduino / IOT)
DIY - Automatiserad trädgårdsbevattning - (Arduino / IOT)
DIY - Automatiserad trädgårdsbevattning - (Arduino / IOT)
DIY - Automatiserad trädgårdsbevattning - (Arduino / IOT)
DIY - Automatiserad trädgårdsbevattning - (Arduino / IOT)
DIY - Automatiserad trädgårdsbevattning - (Arduino / IOT)

Detta projekt visar dig hur man bygger en bevattningskontroller för en trädgård. Kan mäta markfuktavläsningar och aktivera bevattning från en trädgårdskran om jorden blir för torr. Regulatorn innehåller också en temperatur- och fuktsensor. Regulatorn aktiverar inte trädgårdskranen om temperaturen är för låg. Sensoravläsningar och statistik om vattenanvändning / körtider registreras på ThingsBoard IOT för visualisering och analys. Varningar och mejl utlöses om bevattningskontrollen slutar överföra data, jorden blir för torr eller för mättad.

Förkunskaper

  • Arduino -kunskap inklusive åtminstone grundläggande kodning för Arduino och lödning.
  • 1x tryckt trädgårdskran

Materialförteckning

  • Trädbevattning poly rör, jetplan, droppare etc.
  • Elektronisk tapptimer med två urtavlor (dvs. Aqua Systems Electronic Digital Tap Timer)
  • Tryckreducerare 300kpa
  • Arduino Uno
  • Lora Arduino Shield
  • Lora Gateway (behövs inte om du har en lokal Things Network -gateway inom räckhåll)
  • DHT11 Temperaturfuktighetssensor
  • 5v Relä
  • Telefonkabel
  • Buntband
  • Fordonsdelad korrugerad slang
  • Automotive Terminal Connector Strips
  • 2x galvaniserade naglar
  • 1x motstånd
  • Kisel / Caulk
  • PVC -cement
  • PVC Primer
  • PVC -rör 32 mm bredd x 60 mm längd
  • PVC -rör 90 mm bredd x 30 cm längd
  • 3x PVC Push End Caps 90mm
  • 1x PVC -skruvändlock 90 mm
  • 1x PVC -gänginsats 90 mm
  • 1x PVC -ändkåpor 32 mm
  • 1x 3,2V strömkälla (tryckningstimer) [batterier, nätadapter för multivolt]
  • 1x 6-12V strömkälla (arduino) [batterier, USB, USB till nätadapter]
  • trådtätningstejp
  • elektrisk tejp

Steg 1: Installera trädgårdsbevattning

Installera trädgårdsbevattning
Installera trädgårdsbevattning
Installera trädgårdsbevattning
Installera trädgårdsbevattning

Layout poly -rör, passformstrålar, droppledningar och droppare. Bevattningskontrollen fungerar med alla bevattningsanpassningar. Kärnan mäter markens fuktavläsningar och aktiverar kranens timer om och när jorden är för torr. Regulatorn kan kalibreras för att ställa in lågpunkten för mättnad, hur länge tapptimern ska vara påslagen och hur ofta kontrollen ska kontrollera mättnaden.

Dessa inställningar kan ändras på arduino och lagras i EPROM -minne. Inställningarna kan också uppdateras med IOT -integrationen. Detta projekt kommer att köra regulatorn var fjärde timme och slå på kranen i 3 minuter om jorden är för torr. Det kan köra några gånger i rad om det är torrt/varmt eller en gång om dagen eller två annars.

Steg 2: Fit Tap Timer

Fit Tap Timer
Fit Tap Timer

Montera kranens timer och experimentera med de justerbara rattarna för att räkna ut en grov frekvens och körtid som fungerar bäst för din bevattningsinstallation. Vi kommer att ta bort timern och ändra den för att fungera med en Arduino.

Steg 3: Arduino Build

Arduino -byggnad
Arduino -byggnad
Arduino -byggnad
Arduino -byggnad
Arduino -byggnad
Arduino -byggnad
Arduino -byggnad
Arduino -byggnad

Använd kopplingsschemat som en vägledning för bygget. På bilderna har telefonkabelkopplingar använts och skruvplintar för kopplingspunkter. Viss lödning krävs.

Tryck på Timer Modification

Ta försiktigt isär kranens timer. Vi kommer att koppla ihop de två justerbara urtavlorna så att de kan styras av arduino istället för manuella rattar. Den vänstra frekvensratten kopplas hårt till återställningspositionen så att den högra ratten kan växlas mellan på/av -läget. Den högra ratten kommer att ha en tråd från den högra mittenkontakten och den yttre högra kontakten som visas. Som standard är timern i avstängt läge. Om de två trådarna kommer i kontakt slås timern på. Med de två ledningarna anslutna till ett 5V -relä kan en arduino sedan stänga/öppna kontakten mellan de två ledningarna. Med en ledning i den gemensamma reläterminalen och den andra i den normalt stängda terminalen kommer vi att se till att timern stängs av när arduino stängs av. Om reläpinnen ställs in på HIGH startas timern; Om du ställer in den på LOW stängs timern av.

Jordprob

För detta projekt löds de två spikarna till tråd ansluten till skruvplintar. En nagels terminal går rakt till marken. Den andra ansluter till en analog ingång i arduino och ett motstånd. Motståndet ansluter till arduinos 5v -signal. Visas i vriddiagrammet.

Temp/fuktighetssensor

DHT11 Temp/Humidity Sensor är ansluten till arduino 5V, jordad och en digital stift på arduino.

Lora sköld

Detta projekt använde också en Dragino Lora Shield (visas inte i kopplingsschemat).

PVC -bas

PVC -basen för arduino som användes i detta projekt var konstruerad så att temp/fuktighetssensorn kunde utsättas samtidigt som alla andra komponenter hölls säkrade inuti det vattentäta PVC -höljet. Ett litet hål borras/skärs för sensorn och kisel används för att hålla det på plats samtidigt som det hindrar fukt från att nå arduino. Visas i diagrammet.

Steg 4: Arduino -programmering

Arduino programmering
Arduino programmering

Anslut komponenterna via en brödbräda eller plintremsor för programmering och testning

EPROM -konfiguration

Först måste vi skriva konfigurationsvariabler till EPROM -minne. Kör följande kod på din arduino:

Kod tillgänglig på Github

Här är DRY_VALUE inställd på 960. 1024 betyder att jorden är helt torr, 0 betyder fullständig mättnad, 960 var en bra mättnadsnivå för motståndet, kabellängden och spikarna som användes. Detta kan variera beroende på din egen konfiguration.

VALVE_OPEN är inställd på 180000 milisekunder (3 minuter). När/om tapptimern är påslagen kommer den att stå öppen i 3 minuter.

RUN_INTERVAL är inställd på 14400000 milisekunder (4 timmar). Det betyder att regulatorn kommer att kontrollera jordfuktigheten var fjärde timme och slå på kranens timer i 3 minuter om mättnaden är låg (större än 960).

Koden ovan kan ändras och dessa värden ändras när som helst.

Programkod

Kod tillgänglig på Github

Beroenden:

  • TimedAction
  • Radiohuvud

Detta exempel använde Dragino Lora -skölden och specifikt Lora -exemplet samtidigt med skölden som anslöt direkt till Dragino Lora Gateway.

Detta kan anpassas för att använda Things Network genom att ta bort koden under avsnittet "BEGIN: lora vars" och ändra programmet för att inkludera följande Dragino -exempel eller anpassas för att fungera med andra radio/wifi -skärmar etc.

Den medföljande koden förutsätter att DHT11_PIN är digital stift 4, RELAY_PIN är digital stift 3 och jordfuktans analoga stift är analog ingång 0.

En felsökningsvariabel kan ställas in på true så att seriella felsökningsmeddelanden kan loggas vid baudrate 9600.

Steg 5: Skåpbyggnad

Kapslingsbyggnad
Kapslingsbyggnad

Skär PVC -röret så att det passar kranen och Arduino -basen. Borra hål för kranmätare och slangbeslag. Borra hål i röret tillräckligt breda för bilröret, skjut in 10 cm längder av röret i hålen och reta ut ledningar från arduino- och knackningstimern. Detta bör innehålla:

Från Arduino

  • Strömförsörjningskablar och/eller en usb -kabel från arduino USB -port.
  • Jordfuktkablar (VCC, GND, A0)
  • Två ledningar från reläets NC & Common -skruvterminaler

Från kran timer

  • Strömförsörjningskablar
  • Två ledningar från höger ringkontakter

Steg 6: Testkontrollen före limning

Testkontrollen före limning
Testkontrollen före limning
Testkontrollen före limning
Testkontrollen före limning

Se till att allt fortfarande fungerar innan du förseglar allt.

Bilderna ovan visar en provinställning i en esky där jordfuktighetsproben placerades i en kruka och kranens timer var utrustad med vatten från en läskflaska.

En droppare fästes på kranens timer.

Detta var ett bra sätt att testa att installationen inte över eller under vatten anläggningen.

Detta exempel kan köras så länge som behövs för att kalibrera regulatorn.

Steg 7: Lim / vattentäta kapslingar

Lim- / vattentäta kapslingar
Lim- / vattentäta kapslingar

Använd PVC Primer och PVC Cement för att säkra ändlock och koppling.

Använd caulk/kisel för att fylla alla luckor runt den automatiska ledningen och tryck på kopplingsuret.

Här används ett skruvändlock på arduino -höljet för tillgänglighet.

Steg 8: Installera

Installera
Installera
Installera
Installera
Installera
Installera

Installera på en klar dag. Komponenterna och trådarna måste hålla sig torra innan de förseglas.

Placera styrenheten någonstans mitt mellan där trädgårdskranen är placerad och där jordproben kommer att placeras.

Montera kranens timer och se till att den är strömlös tills installationen är klar.

Montera jordproben.

Anslut remsanslutningarna till varje komponent och lägg sedan telefonkabeln från varje komponents skruvterminaler och se till att kabeln är täckt av en automatisk kabel. Kopplar ihop allt

Täta alla terminaler och alla andra exponerade delar med trådtätningstejp och sedan elektrisk tejp.

Täta alla lösa/exponerade områden på den delade ledningen med trådtätningstejp och sedan eltejp.

Anslut timern till en 3,2v strömkälla. Antingen ett batteri eller en 3,2V DC - nätadapter som går till ett eluttag.

Anslut Arduino till en 6-12V likströmskälla. Antingen ett batteri eller en USB / DC-AC-adapter som går till ett eluttag.

Starta och testa!

Steg 9: ThingsBoard -integration - Övervakning och rapportering

ThingsBoard Integration - Övervakning och rapportering
ThingsBoard Integration - Övervakning och rapportering

Detta exempel använde A Dragino Lora Shield anslutet till en Dragino Lora Gateway. Oavsett om du använder den här installationen, en annan Lora -installation eller någon annan IOT -anslutning kan data som samlas in av bevattningskontrollen vidarebefordras till en IOT -plattform som Thingsboard. Som standard sänder programmet följande datasträng där varje teckenbyte är hex -kodad:

TXXXHXXXSXXXXRX

Där T följs av temperaturen följs H av luftfuktigheten, S följs av mättnadsnivån och R följs av en enda siffra som avser vilken åtgärd den utförde vid det senaste körintervallet. Detta kan vara antingen 0-5 där varje siffra betyder:

0: Programmet initieras1: Temperaturgivarfel2: Temperaturen var för låg för att köras3: Jordfuktigheten var för torr så att kranens timer aktiverades4: Jordfuktigheten var fin så att kranens timer inte aktiverades5: Bevattningskontrollen har inaktiverats

Det finns flera sätt att installera en kopia av Thingsboard på din egen utrustning eller så kan du skapa ett gratis konto på vår ThingsBoard -installation här.

Konfigurera din enhet i Thingsboard

Följ dessa instruktioner för att lägga till en ny enhet i Thingsboard som kallar den "Bevattningskontroller".

Push -telemetradata från enheten

Följ dessa instruktioner för att ställa in en metod för att skicka telemtrydata från enheten till Thingboard via MQTT, HTTP eller CoAp.

På vår server driver vi följande JSON till https://thingsboard.meansofproduction.tech/api/v1/… var fjärde timme när enheten körs (med levande data):

Vi driver också följande attribut till https://thingsboard.meansofproduction.tech/api/v1/… regelbundet med data om när noden senast sågs:

Detta används för varningar som utlöses om enheten slutar överföra data.

Skapa en instrumentpanel

Skapa en instrumentpanel enligt beskrivningen här. Våra widgets inkluderar:

En enkel kortwidget skapad från fältet lastRunResult telemetri. En vertikal digital mätare för fältet för temperatur -telemetri En tidsserietabell skapad från fältet lastRunResult som visar data från de senaste dagarna. En horisontell stapel som visar mättnadstelemetri -fältet. Detta använder en databehandlingsfunktion:

return 1024-värde;

Och anger ett lägsta och högsta värde 0-100. På detta sätt kan mättnadsnivån uttryckas som en procentsats. En mätare för att visa fuktighetsvärdet. Ett tidsseriediagram som innehåller temp, fuktighet och körresultat, grupperat i 5 timmarsperioder för den senaste veckan, aggregerat för att visa maxvärden. Detta ger oss en bar för ett fyra timmars körhändelse. En datapostbehandlingsfunktion används för att uttrycka körresultatet som antingen 0 eller 120 beroende på om vatten kördes eller inte. Det ger en enkel visuell återkoppling för att se hur ofta vattnet rinner på en vecka. Ett statiskt HTML -kort som visar en bild av trädgården.

E -postvarningar

Vi använde regler för att konfigurera e -postvarningar för bevattningskontrollen. Alla använder meddelandefilter och en plugin -åtgärd för skicka e -post.

För att skicka ett e -postmeddelande om bevattningskontrollanten inte skickar data använde vi "Device Attributes Filter" med följande filter:

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

För att skicka ett e -postmeddelande om jorden blir för torr, använd följande telemetrifilter

typ av mättnad! = "odefinierad" && mättnad> 1010

För att skicka ett e -postmeddelande om jorden blir för fuktig använder du följande telemetrifilter

typ av mättnad! = "odefinierad" && mättnad

Rekommenderad: