Innholdsfortegnelse:

DIY - Automatisert hagevanning - (Arduino / IOT): 9 trinn (med bilder)
DIY - Automatisert hagevanning - (Arduino / IOT): 9 trinn (med bilder)

Video: DIY - Automatisert hagevanning - (Arduino / IOT): 9 trinn (med bilder)

Video: DIY - Automatisert hagevanning - (Arduino / IOT): 9 trinn (med bilder)
Video: ESP32 Tutorial 3 - Resistor, LED, Bredboard and First Project: Hello LED -ESP32 IoT Learnig kit 2024, Juli
Anonim
DIY - Automatisert hagevanning - (Arduino / IOT)
DIY - Automatisert hagevanning - (Arduino / IOT)
DIY - Automatisert hagevanning - (Arduino / IOT)
DIY - Automatisert hagevanning - (Arduino / IOT)
DIY - Automatisert hagevanning - (Arduino / IOT)
DIY - Automatisert hagevanning - (Arduino / IOT)

Dette prosjektet vil vise deg hvordan du bygger en vanningskontroller for en hage i hjemmet. Kan måle jordfuktighetsavlesninger og aktivere vanning fra en hagekran hvis jorden blir for tørr. Kontrolleren inkluderer også en temperatur- og fuktighetssensor. Kontrolleren vil ikke aktivere hagekranen hvis temperaturen er for lav. Sensoravlesninger og statistikk om vannbruk / driftstider registreres på ThingsBoard IOT for visualisering og analyse. Varsler og e -postmeldinger utløses hvis vanningskontrolleren slutter å overføre data, jorda blir for tørr eller for mettet.

Forutsetninger

  • Arduino -kunnskap inkludert minst grunnleggende koding for Arduino og lodding.
  • 1x hagekran under trykk

Stykklister

  • Hage vanning poly rør, jetfly, dryppere etc.
  • Elektronisk trykknapp med to oppringninger (dvs.: Aqua Systems Electronic Digital Tap Timer)
  • Trykk trykkreduksjon 300kpa
  • Arduino Uno
  • Lora Arduino Shield
  • Lora Gateway (Ikke nødvendig hvis du har en lokal Things Network gateway innenfor rekkevidde)
  • DHT11 Temperaturfuktighetssensor
  • 5v stafett
  • Telefonkabel
  • Kabelbindere
  • Automotive Split Corrugated Tubing
  • Automotive Terminal Connector Strips
  • 2x galvaniserte spiker
  • 1x motstand
  • Silisium / Caulk
  • PVC -sement
  • PVC primer
  • PVC -rør 32 mm bredde x 60 mm lengde
  • PVC -rør 90 mm bredde x 30 cm lengde
  • 3x PVC Push End Caps 90mm
  • 1x PVC skruehylse 90 mm
  • 1x PVC gjenget innsatsbeslag 90mm
  • 1x PVC push end caps 32 mm
  • 1x 3,2V strømkilde (trykk på tidtaker) [batterier, vekselstrømadapter for multivolt]
  • 1x 6-12V strømkilde (arduino) [batterier, USB, USB til strømadapter]
  • gjengetetningstape
  • Elektrisk tape

Trinn 1: Installer hagevanning

Installer hagevanning
Installer hagevanning
Installer hagevanning
Installer hagevanning

Utforming av poly -rør, passformstråler, drypplinjer og dryppere. Vanningskontrolleren vil fungere med enhver vanningstilpasning. I kjernen er det å måle jordfuktighetsavlesninger og aktivere tappetimeren hvis og når jorden er for tørr. Kontrolleren kan kalibreres for å stille lavpunkt for metning, hvor lenge tappetimeren skal være slått på og hvor ofte kontrolleren skal kontrollere metningen.

Disse innstillingene kan endres på arduino og lagres i EPROM -minne. Innstillingene kan også oppdateres ved hjelp av IOT -integrasjonen. Dette prosjektet vil kjøre kontrolleren hver fjerde time og slå på kranen i 3 minutter hvis jorden er for tørr. Det kan gå noen ganger på rad hvis det er tørt/varmt eller en gang om dagen eller to på annen måte.

Trinn 2: Fit Tap Timer

Fit Tap Timer
Fit Tap Timer

Monter tappeklokken og eksperimentere med de justerbare rattene for å finne en grov frekvens og kjøretid som fungerer best for vanningsinstallasjonen. Vi vil fjerne timeren og endre den til å fungere med en Arduino.

Trinn 3: Arduino Build

Arduino Build
Arduino Build
Arduino Build
Arduino Build
Arduino Build
Arduino Build
Arduino Build
Arduino Build

Bruk koblingsskjemaet som en veiledning for bygget. På bildene har telefonkabel ledninger blitt brukt og skrueklemmer for koblingspunkter. Noe lodding er nødvendig.

Trykk på Timer Modification

Ta tappeklokken forsiktig fra hverandre. Vi skal koble til de to justerbare hjulene slik at de kan styres av arduinoen i stedet for de manuelle rattene. Den venstre frekvensomskifteren vil være fast koblet til tilbakestillingsposisjonen, slik at den høyre hjulet kan veksles mellom på/av -posisjonen. Høyre skive vil ha én ledning som kommer fra den høyre høyre kontakten og den ytre høyre kontakten som vist. Som standard er timeren i av -posisjon. Hvis de to ledningene kommer i kontakt, slås timeren på. Med de to ledningene koblet til et 5V relé, kan en arduino deretter lukke/åpne kontakten mellom de to ledningene. Med den ene ledningen i den vanlige reléterminalen og den andre i den normalt lukkede terminalen, vil vi sikre at timeren slås av når arduinoen slås av. Hvis du setter relépinnen til HIGH, slås timeren på; Hvis du setter den på LOW, slås timeren av.

Jordprobe

For dette prosjektet er de to neglene loddet til ledning koblet til skrueterminaler. Den ene spikerens terminal går rett til bakken. Den andre kobles til en analog inngang i arduinoen og en motstand. Motstanden kobles til arduinos 5v -signal. Vist i vridningsdiagrammet.

Temp/fuktighetssensor

DHT11 Temp/Fuktighetssensor er koblet til arduinoens 5V, bakken og en digital pinne på arduinoen.

Lora skjold

Dette prosjektet brukte også et Dragino Lora Shield (ikke vist i koblingsskjemaet).

PVC -base

PVC -basen for arduinoen som ble brukt i dette prosjektet ble designet slik at temperatur-/fuktighetssensoren kunne bli avslørt mens alle andre komponenter ble holdt inne i det vanntette PVC -kabinettet. Et lite hull bores/kuttes for sensoren, og silisium brukes til å holde det på plass mens det hindrer fuktighet i å nå arduinoen. Vist i diagrammet.

Trinn 4: Arduino -programmering

Arduino programmering
Arduino programmering

Koble komponentene sammen via et brødbrett eller klemmelister for programmering og testing

EPROM -konfigurasjon

Først må vi skrive konfigurasjonsvariabler til EPROM -minne. Kjør følgende kode på din arduino:

Koden er tilgjengelig på Github

Her er DRY_VALUE satt til 960. 1024 betyr at jorda er helt tørr, 0 betyr fullstendig metning, 960 var et godt metningsnivå for motstanden, kabellengden og spikene som ble brukt. Dette kan variere avhengig av din egen konfigurasjon.

VALVE_OPEN er satt til 180000 milisekunder (3 minutter). Når/hvis tappetimeren er slått på, vil den stå åpen i 3 minutter.

RUN_INTERVAL er satt til 14400000 milisekunder (4 timer). Dette betyr at kontrolleren vil kontrollere jordfuktigheten hver fjerde time og slå på tappetimeren i 3 minutter hvis metningen er lav (større enn 960).

Koden ovenfor kan når som helst endres og disse verdiene endres.

Programkode

Koden er tilgjengelig på Github

Avhengigheter:

  • TimedAction
  • Radiohode

Dette eksemplet brukte Dragino Lora -skjoldet og spesielt Lora -eksemplet samtidig med at skjoldet koblet direkte til Dragino Lora Gateway.

Dette kan tilpasses for å bruke Things Network ved å fjerne koden under delen "BEGIN: lora vars" og endre programmet til å inkludere følgende Dragino -eksempel eller tilpasses for arbeid med andre radioer/wifi -skjold etc.

Den medfølgende koden forutsetter at DHT11_PIN er digital pin 4, RELAY_PIN er digital pin 3 og jordfuktighet analog pin er analog inngang 0.

En feilsøkingsvariabel kan settes til sann, slik at serielle feilsøkingsmeldinger kan logges på baudrate 9600.

Trinn 5: Skapbygg

Kapslingsbygg
Kapslingsbygg

Skjær PVC -røret slik at det passer til tappetimeren og Arduino -basen. Bor hull for tappekranstappekran og slangemontering. Bor hull i røret bredt nok for bilrøret, gli 10 cm lengder på røret inn i hullene og tapp ut ledninger fra arduino- og tappetimeren. Dette bør inneholde:

Fra Arduino

  • Strømforsyningskabler og/eller en usb -kabel fra arduinoens USB -port.
  • Jordfuktighetskabler (VCC, GND, A0)
  • To ledninger fra NC & Common -skrueterminalene på reléet

Fra tappetimeren

  • Strømforsyningskabler
  • To ledninger fra høyre ringekontakt

Trinn 6: Test kontrolleren før liming

Test kontrolleren før liming
Test kontrolleren før liming
Test kontrolleren før liming
Test kontrolleren før liming

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

Bildene ovenfor viser et prøveoppsett i en esky hvor jordfuktighetssonden ble plassert i en gryte og tappetimeren var utstyrt med vann fra en brusflaske.

Én drypp var festet til tappeklokken.

Dette var en god måte å teste at oppsettet ikke over- eller under vann anlegget.

Dette eksemplet kan kjøres så lenge som nødvendig for å kalibrere kontrolleren.

Trinn 7: Lim / vanntette kabinetter

Lim / vanntette skap
Lim / vanntette skap

Bruk PVC -primer og PVC -sement for å feste endehetter og kopling.

Bruk caulk/silisium for å fylle eventuelle hull rundt autoledningen og trykk på tidtakerbeslag.

Her brukes en skruehylse på arduino -kabinettet for tilgjengelighet.

Trinn 8: Installer

Installere
Installere
Installere
Installere
Installere
Installere

Installer på en klar dag. Komponentene og ledningene må holde seg tørre før de forsegles.

Plasser kontrolleren et sted sentrert mellom der hagekranen er plassert og der jordproben skal plasseres.

Monter tappeklokken og sørg for at den er uten strøm til installasjonen er fullført.

Monter jordproben.

Fest stripeterminaler til hver komponent, og legg deretter telefonkabelen fra hver komponents skrueterminaler, og sørg for at kabelen er dekket av autoledning. Koble alt sammen

Forsegl alle terminaler og andre utsatte deler med gjengetetningstape og deretter elektrisk tape.

Tett alle løse/utsatte områder av den delte kanalen med gjengetetningstape og deretter elektrisk tape.

Koble timeren til en 3,2v strømkilde. Enten en batteripakke eller en 3,2V DC - vekselstrømadapter som går til en stikkontakt.

Koble Arduino til en 6-12V DC strømkilde. Enten en batteripakke eller en USB / DC-vekselstrømadapter som går til en stikkontakt.

Slå på og test!

Trinn 9: ThingsBoard -integrasjon - Overvåking og rapportering

ThingsBoard Integration - Overvåking og rapportering
ThingsBoard Integration - Overvåking og rapportering

Dette eksemplet brukte A Dragino Lora Shield koblet til en Dragino Lora Gateway. Enten du bruker dette oppsettet, et annet Lora -oppsett eller annen IOT -tilkobling, kan dataene som samles inn av vanningskontrolleren videresendes til en IOT -plattform som Thingsboard. Som standard sender programmet følgende datastreng der hver tegnbyte er hex -kodet:

TXXXHXXXSXXXXRX

Der T blir fulgt av temperaturen, H blir fulgt av fuktigheten, S blir fulgt av metningsnivået og R blir fulgt av et enkelt siffer som angår hvilken handling den utførte i det siste kjøreintervallet. Dette kan enten være 0-5 hvor hvert siffer betyr:

0: Programmet initialiseres1: Temperatursensorfeil2: Temperaturen var for lav til å kjøre3: Jordfuktigheten var for tørr slik at tappetimeren ble aktivert4: Jordfuktigheten var fin, slik at tappetimeren ikke ble aktivert5: Vanningskontrolleren er deaktivert

Det er flere måter å installere en kopi av Thingsboard på ditt eget utstyr, eller du kan opprette en gratis konto på vår ThingsBoard -installasjon her.

Sett opp enheten din i Thingsboard

Følg disse instruksjonene for å legge til en ny enhet i Thingsboard som kaller den "Irrigation Controller".

Push telemetredata fra enheten

Følg disse instruksjonene for å sette opp en metode for å skyve telemtry -data fra enheten til Thingboard via MQTT, HTTP eller CoAp.

På serveren vår skyver vi følgende JSON til https://thingsboard.meansofproduction.tech/api/v1/… hver fjerde time når enheten kjøres (med levende data):

Vi skyver også følgende attributter til https://thingsboard.meansofproduction.tech/api/v1/… med jevne mellomrom med data om når noden sist ble sett:

Dette brukes for varsler som utløses hvis enheten slutter å overføre data.

Lag et dashbord

Lag et dashbord som beskrevet her. Våre widgets inkluderer:

En enkel kortwidget opprettet fra lastRemResult telemetri feltet. En vertikal digital måler for temperatur telemetri feltet En tidsserie tabell opprettet fra lastRunResult telemetri feltet som viser data for de siste dagene. En horisontal stolpe som viser metningstelemetri feltet. Dette bruker en funksjon for etterbehandling av data:

retur 1024-verdi;

Og angir en minimums- og maksimumsverdi 0-100. På denne måten kan metningsnivået uttrykkes som en prosentandel. En måling for å vise fuktighetsverdien. Et tidsserie -søylediagram som inkluderer temp, fuktighet og løpsresultat, gruppert i 5 timers perioder for den siste uken, samlet for å vise maksverdier. Dette gir oss en bar for et fire timers løpsarrangement. En datapostbehandlingsfunksjon brukes til å uttrykke kjøringsresultatet som enten 0 eller 120, avhengig av om det ble kjørt vann eller ikke. Det gir en enkel visuell tilbakemelding for å se hvor ofte vannet renner på en uke. Et statisk HTML -kort som viser et bilde av hagen.

E -postvarsler

Vi brukte regler for å sette opp e -postvarsler for vanningskontrolleren. Alle bruker meldingsfiltre og en Send e -post -handling -plugin -handling.

For å sende et e -postvarsel hvis vanningskontrolleren ikke sender data, brukte vi 'Device Attributes Filter' med følgende filter:

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

For å sende en e -post hvis jorden blir for tørr, bruk følgende telemetrifilter

metningstype! = "udefinert" && metning> 1010

For å sende en e -post basert på om jorda blir for fuktig, bruk følgende telemetrifilter

metningstype! = "udefinert" && metning

Anbefalt: