Inhoudsopgave:

Arduino Plant Irrigator, Code Gratis - Ajarnpa
Arduino Plant Irrigator, Code Gratis - Ajarnpa

Video: Arduino Plant Irrigator, Code Gratis - Ajarnpa

Video: Arduino Plant Irrigator, Code Gratis - Ajarnpa
Video: Arduino Garden Controller - Automatic Watering and Data Logging 2024, November
Anonim
Image
Image
Robot make-up
Robot make-up

In deze instructable bouwen we een besproeiingsrobot, die uw planten overdag irriteert wanneer de grond droog genoeg is. Dit is een klassiek Arduino-gebaseerd project, maar deze keer gebruiken we een visuele programmeertaal, XOD, wat het programmeerproces behoorlijk expliciet maakt.

Stap 1: Robotmake-up

Een immersieve waterpomp levert water aan de plant als de grond droog is. We meten het vochtgehalte met een bodemvochtsensor.

We willen onze plant 's nachts niet water geven, dus de lichtsensor controleert of het dag is.

Om de veilige werking van de pomp te garanderen, gebruiken we een andere bodemvochtsensor als waterniveausensor.

De visuele taal van de robot is laconiek: rode LED betekent "er is geen water, kan niet irrigeren" groene LED betekent "Ik ben aan het werk, meet de milieu-indicatoren, klaar om te irrigeren wanneer dat nodig is".

Een Iskra Neo (Arduino Leonardo) bord bestuurt alle modules.

Stap 2: Montage van elektronische modules

Elektronische modules assembleren
Elektronische modules assembleren

Gebruikte modules:

  • Iskra Neo-bord (Arduino Leonardo)
  • Slot schild
  • Bodemvochtsensor (x2)
  • Lichtsterkte sensor
  • LED-module (x2)
  • Pomp
  • Stekker (6-9V DC)

Let op het voedingscircuit:

  • Gebruik een jumper om de V2-bus op een Slot-shield Vin-voeding te laten gebruiken (direct vanaf de stekker)
  • Plaats de MOSFET-module op een V2-slot met een V=P+ jumper aan
  • Zorg ervoor dat andere modules de V1-voedingsbus gebruiken (dit is Arduino's 5V)

De beste methode is om bodemvochtsensoren door nog een paar MOSFET's te leiden en ze regelmatig te lezen om elektrolytische corrosie te voorkomen, maar laten we deze robot simpel houden.

Stap 3: Workflow begrijpen

Werkstroom begrijpen
Werkstroom begrijpen

Bekijk het diagram van onder naar boven!

  • De pomp wordt ingeschakeld wanneer aan zowel de "klimaat"- als de "water"-voorwaarden is voldaan
  • Waterconditie betekent dat er voldoende water in de tank is, als dit niet het geval is, gaat de "geen-water-led" branden en wordt het resultaat van de combinatie voor klimaat- en watercondities onjuist
  • De klimaatconditie is ook een complexe: het is waar als zowel de bodem- als de helderheidsomstandigheden waar zijn
  • Bodemgesteldheid is gebaseerd op vergelijking tussen het huidige bodemvochtgehalte en een vooraf gedefinieerde drempelwaarde Lichtsterkte is vergelijkbaar met de bodemgesteldheid, maar meet in plaats daarvan de helderheid

Stap 4: Drempelwaarden verkrijgen

Drempelwaarden verkrijgen
Drempelwaarden verkrijgen

Sensordrempels (voorbeeldgegevens, kunnen in uw geval variëren):

  • Bodemvocht: 0.15
  • Lichtsterkte: 0,58
  • Water: 0.2

Hoe metingen te doen (voor XOD-versies zonder seriële functies):

  1. Download en installeer Arduino IDE
  2. Open File-Examples-01. Basics-AnalogReadSerial voorbeeld
  3. Wijzig "vertraging(1);" naar "vertraging(250);"
  4. Sluit het bord aan. Zorg ervoor dat uw bordmodel en poort zijn geselecteerd in het menu Service
  5. Herhaal voor elke sensor:
  • Controleer het pinnummer in "int sensorValue = analogRead(A0);" en verander A0 in A3 en A2 voor respectievelijk helderheids- en watersensoren (als u uw apparaat volgens het schema hebt samengesteld)
  • Upload de schets Open Service-Serial Monitor, zorg ervoor dat 9600 baud is geselecteerd in de vervolgkeuzelijst rechtsonder en kijk hoe live metingen veranderen terwijl u de omgeving van de sensor aanpast
  • Kies een waarde tussen geregistreerd minimum en maximum (dichter bij minimum voor de lichtsterktesensor), deel deze door 1023 en gebruik het resultaat in uw patch

Stap 5: XOD-basisprincipes

XOD-basis
XOD-basis
  • Download en installeer de XOD IDE
  • Een XOD-programma wordt een patch genoemd; we bouwen het in het gebied met een aantal sleufrijen aan de rechterkant.
  • Bij de eerste lancering kun je een ingebouwde tutorial-patch tegenkomen.
  • De patch bestaat uit knooppunten, verbonden met schakels via de pinnen.
  • Elk knooppunt vertegenwoordigt een fysiek apparaat/signaal of een gegevensitem, terwijl koppelingen de gegevensstroom regelen.
  • Dubbelklik op een lege ruimte van de patch of druk op de "i"-toets om een snelzoekdialoogvenster te openen waar knooppunten kunnen worden gevonden op basis van hun naam of beschrijving.
  • Gebruik de projectbrowser linksboven om de patches te verkennen.
  • Selecteer een knoop en bekijk/bewerk de eigenschappen ervan in het infovenster linksonder.
  • Om zelf XODing te proberen, klikt u op Bestand-Nieuw project en maakt u een lege patch.
  • U kunt op elk gewenst moment terugkeren naar de zelfstudie door het menu Help te openen.

Stap 6: Irrigatorpleister

Irrigatiepleister
Irrigatiepleister

Gebruik de patch (basic-irrgator.xodball) of bouw hem zelf volgens het diagram.

Merk op dat de geleverde patch al is gemaakt, dus sommige knooppunten zijn bijgewerkt in de IDE:

  • "analog-input" nodes zijn nu verouderd, gebruik in plaats daarvan "analog-read"
  • "led" node heeft nu meer functies

Hoewel de drempels slechts constante getallen zijn, plaats ik ze niet in de eigenschapsvelden voor vergelijkingsknooppunten, maar voeg ik in plaats daarvan expliciete knooppunten met een constant getal toe om te benadrukken dat deze waarden anders kunnen worden geëvalueerd. Er zou bijvoorbeeld een mobiele applicatie kunnen zijn waarmee de eigenaar deze waarden kan aanpassen, zodat er een ander "ophalen van app"-knooppunt zou zijn in plaats van deze knooppunten met constant aantal.

Stap 7: Implementatie

Inzet
Inzet
  • Wanneer de patch klaar is, klikt u op Deploy, Upload to Arduino.
  • Sluit het bord aan.
  • Controleer het bordmodel en de seriële poort in de vervolgkeuzelijsten en klik vervolgens op Uploaden.
  • Dit kan een tijdje duren; Internetverbinding is vereist.
  • Als je de browser XOD IDE gebruikt, gebruik dan Arduino IDE om het programma naar het bord te uploaden.
  • Als je problemen hebt met het uploaden van de patch, verken dan het XOD-forum

Stap 8: Bouwtijd

Bouwtijd
Bouwtijd

Gebruik alle geschikte onderdelen om de schaal of het ontwerp van de robot te maken en deze zelf te 3D-printen. In het slechtste geval laat je de pomp en de sensor gewoon in het waterreservoir vallen en plak je de bodemsensor waar hij hoort. Overweeg om een gordijn te maken voor de lichtsensor, omdat onze LED's de sensor kunnen verblinden en het de nacht verkeerd zal inschatten.

Stap 9: Plaatsing van de waterniveausensor

Plaatsing van waterniveausensor
Plaatsing van waterniveausensor

Als u een bodemvochtsensor gebruikt om het waterniveau te controleren, zorg er dan voor dat de gouden coating boven water is en dat de uiteinden eerder water missen dan de bovenkant van de pomp.

Stap 10: Testen

Wanneer je robot klaar is, worden drempels gemeten en gecodeerd in de patch, en deze laatste wordt geüpload naar het bord, het is tijd om alle mogelijke gevallen te testen.

  • Maak de waterniveausensor droog. Alleen de rode LED moet branden. Zelfs als de grond droog is en de kamer tegelijkertijd verlicht is, mag de pomp niet starten.
  • Voeg nu het water toe, maar dek eerst de lichtsensor af om te voorkomen dat droge grond en aanwezigheid van water ervoor zorgen dat de robot 's nachts niet gaat irrigeren.
  • Laat tot slot de robot je plant water geven. Het moet stoppen als de grond vochtig genoeg is.
  • Haal de bodemsensor eruit om de irrigatie te herhalen (voor de zekerheid).

Stap 11: Geniet en verbeter

Geniet en verbeter
Geniet en verbeter

Nu de basisirrigator klaar is, overweeg dan enkele opties voor verbetering:

  • Bedraad de bodemvochtsensoren opnieuw om corrosie te voorkomen
  • Voeg andere omgevingsmetingen toe, b.v. Lucht vochtigheid
  • Maak een realtime schema
  • Zet de robot online om hem op afstand te bewaken en te bedienen

Aanbevolen: