Inhoudsopgave:

DIY - Geautomatiseerde tuinirrigatie - (Arduino / IOT): 9 stappen (met afbeeldingen)
DIY - Geautomatiseerde tuinirrigatie - (Arduino / IOT): 9 stappen (met afbeeldingen)

Video: DIY - Geautomatiseerde tuinirrigatie - (Arduino / IOT): 9 stappen (met afbeeldingen)

Video: DIY - Geautomatiseerde tuinirrigatie - (Arduino / IOT): 9 stappen (met afbeeldingen)
Video: How to use MicroPython on Your Arduino? 2024, Juli-
Anonim
DIY - Geautomatiseerde tuinirrigatie - (Arduino / IOT)
DIY - Geautomatiseerde tuinirrigatie - (Arduino / IOT)
DIY - Geautomatiseerde tuinirrigatie - (Arduino / IOT)
DIY - Geautomatiseerde tuinirrigatie - (Arduino / IOT)
DIY - Geautomatiseerde tuinirrigatie - (Arduino / IOT)
DIY - Geautomatiseerde tuinirrigatie - (Arduino / IOT)

Dit project laat je zien hoe je een irrigatiecontroller voor een huistuin kunt bouwen. Geschikt voor het meten van bodemvochtmetingen en het activeren van irrigatie vanuit een tuinkraan als de grond te droog wordt. De controller bevat ook een temperatuur- en vochtigheidssensor. De regelaar activeert de tuinkraan niet als de temperatuur te laag is. Sensormetingen en statistieken over waterverbruik / looptijden worden vastgelegd op ThingsBoard IOT voor visualisatie en analyse. Waarschuwingen en e-mails worden geactiveerd als de irrigatiecontroller stopt met het verzenden van gegevens, de grond te droog of te verzadigd wordt.

Vereisten

  • Arduino kennis inclusief minimaal basis codering voor Arduino en solderen.
  • 1x tuinkraan onder druk

Stuklijst

  • Tuinirrigatie poly pijp, jets, druppelaars etc.
  • Elektronische taptimer met twee wijzers (dwz: Aqua Systems Electronic Digital Tap Timer)
  • Kraandrukregelaar 300kpa
  • Arduino Uno
  • Lora Arduino Shield
  • Lora Gateway (Niet nodig als je een lokale Things Network-gateway binnen bereik hebt)
  • DHT11 Temperatuur Vochtigheidssensor
  • 5v relais
  • Telefoonkabel:
  • Kabelbinders
  • Automotive gespleten gegolfde buizen
  • Connectorstrips voor automobielaansluitingen
  • 2x Gegalvaniseerde nagels
  • 1x Weerstand
  • Silicium / Caulk
  • PVC-cement
  • PVC-primer
  • PVC-buis 32 mm breedte x 60 mm lengte
  • PVC-buis 90 mm breed x 30 cm lang
  • 3x PVC Duw Eindkappen 90mm
  • 1x PVC schroef eindkap 90mm
  • 1x PVC-inzetstuk met schroefdraad 90 mm
  • 1x PVC-duweindkappen 32 mm
  • 1x 3.2V stroombron (taptimer) [batterijen, AC multivolt adapter]
  • 1x 6-12V stroombron (arduino) [batterijen, USB, USB naar AC adapter]
  • draad afdichtingstape
  • elektrische tape

Stap 1: Installeer tuinirrigatie

Tuinirrigatie installeren
Tuinirrigatie installeren
Tuinirrigatie installeren
Tuinirrigatie installeren

Lay-out poly pijp, fit jets, druppelleidingen en druppelaars. De irrigatiecontroller werkt met elke irrigatieuitrusting. De kern is het meten van bodemvochtmetingen en het activeren van de taptimer als en wanneer de grond te droog is. De controller kan worden gekalibreerd om het dieptepunt voor verzadiging in te stellen, hoe lang de taptimer moet worden ingeschakeld en hoe vaak de controller de verzadiging moet controleren.

Deze instellingen kunnen op de Arduino worden gewijzigd en in het EPROM-geheugen worden opgeslagen. De instellingen kunnen ook worden bijgewerkt door de IOT-integratie. Dit project laat de controller om de vier uur draaien en zet de kraan 3 minuten open als de grond te droog is. Het kan een paar keer achter elkaar lopen als het droog/heet is of een keer per dag of twee anders.

Stap 2: Fit Tap Timer

Fit Tap Timer
Fit Tap Timer

Monteer de taptimer en experimenteer met de verstelbare wijzerplaten om een ruwe frequentie en looptijd te berekenen die het beste werken voor uw irrigatie-installatie. We zullen de timer verwijderen en aanpassen om met een Arduino te werken.

Stap 3: Arduino bouwen

Arduino bouwen
Arduino bouwen
Arduino bouwen
Arduino bouwen
Arduino bouwen
Arduino bouwen
Arduino bouwen
Arduino bouwen

Gebruik het bedradingsschema als richtlijn voor de build. Op de foto's is gebruik gemaakt van telefoonkabelbedrading en schroefklemmenstroken voor aansluitpunten. Er is wat soldeerwerk nodig.

Tik op Timerwijziging

Haal de taptimer voorzichtig uit elkaar. We zullen de twee verstelbare wijzerplaten hard bedraden, zodat ze kunnen worden bediend door de Arduino in plaats van de handmatige wijzerplaten. De linker frequentiedraaiknop wordt vast bedraad naar de reset-positie, zodat de rechter draaiknop kan worden geschakeld tussen de aan/uit-positie. De rechter wijzerplaat heeft één draad die komt van het contact rechts in het midden en het contact rechts buiten, zoals weergegeven. Standaard staat de timer in de uit-stand. Als de twee draden met elkaar in contact komen, wordt de timer ingeschakeld. Met de twee draden aangesloten op een 5V-relais, kan een arduino dan het contact tussen de twee draden sluiten / openen. Met één draad in de gemeenschappelijke relaisaansluiting en de andere in de normaal gesloten aansluiting zorgen we ervoor dat de timer wordt uitgeschakeld wanneer de Arduino wordt uitgeschakeld. Door de relaispin op HOOG te zetten, wordt de timer ingeschakeld; als u deze op LAAG zet, wordt de timer uitgeschakeld.

Bodemsonde

Voor dit project zijn de twee spijkers gesoldeerd aan draad die is verbonden met schroefklemmen. De terminal van een spijker gaat rechtstreeks naar de grond. De andere sluit aan op een analoge ingang in de Arduino en een weerstand. De weerstand maakt verbinding met het arduino 5v-signaal. Getoond in het wringdiagram.

Temperatuur-/vochtigheidssensor

De DHT11 Temp/Vochtigheidssensor is aangesloten op de arduino's 5V, aarde en een digitale pin op de arduino.

Lora schild

Dit project gebruikte ook een Dragino Lora Shield (niet weergegeven in het bedradingsschema).

PVC-basis

De PVC-basis voor de Arduino die in dit project wordt gebruikt, is zo ontworpen dat de temperatuur- / vochtigheidssensor kan worden blootgesteld terwijl alle andere componenten in de waterdichte PVC-behuizing worden vastgezet. Er wordt een klein gaatje geboord / gesneden voor de sensor en silicium wordt gebruikt om het op zijn plaats te houden en te voorkomen dat vocht de Arduino bereikt. Getoond in het diagram.

Stap 4: Arduino-programmering

Arduino-programmering
Arduino-programmering

Verbind de componenten met elkaar via een breadboard of klemmenstroken voor programmeren en testen

EPROM-configuratie:

Eerst moeten we configuratievariabelen naar het EPROM-geheugen schrijven. Voer de volgende code uit op je arduino:

Code beschikbaar op Github

Hier is de DRY_VALUE ingesteld op 960. 1024 betekent dat de grond volledig droog is, 0 betekent volledige verzadiging, 960 was een goed verzadigingsniveau voor de weerstand, kabellengte en gebruikte nagels. Dit kan variëren afhankelijk van uw eigen configuratie.

VALVE_OPEN is ingesteld op 180000 milliseconden (3 minuten). Als/als de taptimer is ingeschakeld, blijft deze 3 minuten open staan.

RUN_INTERVAL is ingesteld op 14400000 milliseconden (4 uur). Dit betekent dat de controller elke vier uur het bodemvocht controleert en de taptimer 3 minuten aanzet als de verzadiging laag is (groter dan 960).

De bovenstaande code kan op elk moment worden gewijzigd en deze waarden kunnen op elk moment worden gewijzigd.

Programmacode:

Code beschikbaar op Github

afhankelijkheden:

  • Getimede actie
  • Radiohoofd

Dit voorbeeld gebruikte het Dragino Lora-schild en specifiek het Lora-gelijktijdige voorbeeld waarbij het schild rechtstreeks op de Dragino Lora-gateway is aangesloten.

Dit kan worden aangepast om het Things Network te gebruiken door de code onder de sectie "BEGIN: lora vars" te verwijderen en het programma te wijzigen om het volgende Dragino-voorbeeld op te nemen of aangepast om te werken met andere radio's/wifi-schilden enz.

De meegeleverde code gaat ervan uit dat DHT11_PIN digitale pin 4 is, de RELAY_PIN digitale pin 3 is en de analoge pin voor bodemvocht analoge ingang 0 is.

Een debug-variabele kan worden ingesteld op true, zodat seriële debug-berichten kunnen worden vastgelegd op baudrate 9600.

Stap 5: Behuizing bouwen

Behuizing bouwen
Behuizing bouwen

Snijd de PVC-buis af op de taptimer en Arduino-basis. Boor gaten voor de tap-timer-kraanfitting en slangfitting. Boor gaten in de pijp die breed genoeg zijn voor de automotive leiding, schuif 10 cm lengtes van de leiding in de gaten en trek de draden uit de Arduino en tik op de timer. Dit moet het volgende omvatten:

Van de Arduino

  • Voedingsdraden en/of een usb-kabel van de usb-poort van de arduino.
  • Bodemvochtkabels (VCC, GND, A0)
  • Twee draden van de NC en gemeenschappelijke schroefklemmen van het relais

Van de taptimer

  • Voedingskabels
  • Twee draden van de rechter kiescontacten

Stap 6: Test de controller voordat u gaat lijmen

Testcontroller voordat u gaat lijmen
Testcontroller voordat u gaat lijmen
Testcontroller voordat u gaat lijmen
Testcontroller voordat u gaat lijmen

Zorg ervoor dat alles nog werkt voordat u alles afsluit.

De foto's hierboven tonen een voorbeeldopstelling in een hemel waar de bodemvochtsonde in een pot werd geplaatst en de taptimer was uitgerust met water uit een frisdrankfles.

Een druppelaar was bevestigd aan de taptimer.

Dit was een goede manier om te testen of de opstelling de plant niet boven of onder water zette.

Dit voorbeeld kan zo lang worden uitgevoerd als nodig is om de controller te kalibreren.

Stap 7: Lijm / waterdichte behuizingen

Lijm / waterdichte behuizingen
Lijm / waterdichte behuizingen

Gebruik PVC Primer en PVC Cement om eindkappen en koppeling te bevestigen.

Gebruik kit/silicium om eventuele openingen rond de automatische leiding te vullen en de fittingen van de timer te tikken.

Hier wordt een schroefdop gebruikt op de Arduino-behuizing voor toegankelijkheid.

Stap 8: Installeren

Installeren
Installeren
Installeren
Installeren
Installeren
Installeren

Installeer op een heldere dag. De componenten en draden moeten droog blijven voordat ze worden verzegeld.

Plaats de controller ergens in het midden tussen waar de tuinkraan zit en waar de grondsonde komt te staan.

Monteer de taptimer en zorg ervoor dat deze is uitgeschakeld totdat de installatie is voltooid.

Monteer de grondsonde.

Bevestig stripaansluitingen aan elk onderdeel en leg vervolgens de telefoonkabel van de schroefaansluitingen van elk onderdeel en zorg ervoor dat de kabel is bedekt met een automatische kabelgoot. Alles met elkaar verbinden

Dicht alle klemmen en alle andere blootgestelde delen af met draadafdichtingstape en vervolgens met isolatietape.

Dicht alle losse/blootgestelde delen van de gespleten leiding af met draadafdichtingstape en vervolgens met isolatietape.

Sluit de timer aan op een 3.2v stroombron. Ofwel een batterijpakket of een 3.2V DC - AC-adapter die op een stopcontact wordt aangesloten.

Sluit de Arduino aan op een 6-12V DC-stroombron. Ofwel een batterijpakket of een USB / DC-AC-adapter die op een stopcontact wordt aangesloten.

Opstarten en testen!

Stap 9: ThingsBoard-integratie - Monitoring en rapportage

ThingsBoard-integratie - Monitoring en rapportage
ThingsBoard-integratie - Monitoring en rapportage

Dit voorbeeld gebruikte een Dragino Lora Shield verbonden met een Dragino Lora Gateway. Of u nu deze opstelling, een andere Lora-opstelling of een andere IOT-connectiviteit gebruikt, de gegevens die door de irrigatiecontroller worden verzameld, kunnen worden doorgestuurd naar een IOT-platform zoals Thingsboard. Standaard verzendt het programma de volgende gegevensreeks waarbij elke tekenbyte hex-gecodeerd is:

TXXXHXXXSXXXXRX

Waar T wordt gevolgd door de temperatuur, wordt H gevolgd door de vochtigheid, S wordt gevolgd door het verzadigingsniveau en R wordt gevolgd door een enkel cijfer dat betrekking heeft op welke actie het heeft uitgevoerd tijdens het laatste run-interval. Dit kan 0-5 zijn waarbij elk cijfer betekent:

0: Het programma is aan het initialiseren1: Temperatuur Sensor storing2: Temperatuur was te laag om te draaien3: Bodemvocht te droog, dus de kraantimer is geactiveerd4: Bodemvochtigheid prima, dus de kraantimer is niet geactiveerd5: De irrigatiecontroller is gedeactiveerd

Er zijn verschillende manieren om een kopie van Thingsboard op je eigen apparatuur te installeren of je kunt hier een gratis account aanmaken op onze ThingsBoard-installatie.

Je apparaat instellen in Thingsboard

Volg deze instructies om een nieuw apparaat in Thingsboard toe te voegen met de naam "Irrigation Controller".

Telemetriegegevens van apparaat pushen

Volg deze instructies om een methode in te stellen om telemetriegegevens van het apparaat naar Thingboard te pushen via MQTT, HTTP of CoAp.

Op onze server pushen we de volgende JSON om de vier uur naar https://thingsboard.meansofproduction.tech/api/v1/… wanneer het apparaat wordt uitgevoerd (met live gegevens):

We pushen ook regelmatig de volgende attributen naar https://thingsboard.meansofproduction.tech/api/v1/… met gegevens over wanneer het knooppunt voor het laatst is gezien:

Dit wordt gebruikt voor waarschuwingen die worden geactiveerd als het apparaat stopt met het verzenden van gegevens.

Een dashboard maken

Maak een dashboard zoals hier beschreven. Onze widgets omvatten:

Een eenvoudige kaartwidget gemaakt op basis van het lastRunResult-telemetrieveld. Een verticale digitale meter voor het temperatuurtelemetrieveld Een tijdreekstabel gemaakt op basis van het lastRunResult-telemetrieveld met de gegevens van de afgelopen dagen. Een horizontale balk die het verzadigingstelemetrieveld weergeeft. Dit maakt gebruik van een functie voor nabewerking van gegevens:

retourneer 1024-waarde;

En stelt een minimum- en maximumwaarde in van 0-100. Op deze manier kan het verzadigingsniveau worden uitgedrukt als een percentage. Een meter om de vochtigheidswaarde weer te geven. Een tijdreeksgrafiek met de temperatuur, vochtigheid en runresultaten, gegroepeerd in perioden van 5 uur voor de afgelopen week, geaggregeerd om maximale waarden weer te geven. Dit geeft ons één bar voor een vier uur durend hardloopevenement. Een functie voor nabewerking van gegevens wordt gebruikt om het runresultaat uit te drukken als 0 of 120, afhankelijk van het feit of er al dan niet water is gelopen. Dat geeft een gemakkelijke visuele feedback om te zien hoe vaak er in een week water stroomt. Een statische HTML-kaart die een afbeelding van de tuin toont.

Email waarschuwingen

We gebruikten regels om e-mailalerts voor de irrigatiecontroller in te stellen. Ze gebruiken allemaal berichtfilters en een Actie-invoegtoepassing voor e-mail verzenden.

Om een e-mail alert te sturen als de irrigatiecontroller geen gegevens verzendt, hebben we 'Device Attributes Filter' gebruikt met het volgende filter:

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

Gebruik het volgende telemetriefilter om een e-mail te sturen als de grond te droog wordt:

type verzadiging != "undefined" && verzadiging > 1010

Om een e-mail te sturen als de grond te vochtig wordt, gebruikt u het volgende telemetriefilter:

type verzadiging != "undefined" && verzadiging

Aanbevolen: