Inhoudsopgave:

Arduino regenmeter kalibratie - Ajarnpa
Arduino regenmeter kalibratie - Ajarnpa

Video: Arduino regenmeter kalibratie - Ajarnpa

Video: Arduino regenmeter kalibratie - Ajarnpa
Video: DIY Arduino Rain Gauge - Measure RAIN with Arduino 2024, Juli-
Anonim
Arduino Regenmeter Kalibratie
Arduino Regenmeter Kalibratie

Invoering:

In deze Instructable 'construeren' we een regenmeter met Arduino en kalibreren deze om dagelijkse en uurlijkse regenval te rapporteren. De regenvanger die ik gebruik, is een regenmeter van het type kantelbak die opnieuw is bedoeld. Het kwam van een beschadigd persoonlijk weerstation. Er zijn echter veel geweldige Instructables over hoe je er een helemaal opnieuw kunt maken.

Dit Instructable is een onderdeel van een weerstation dat ik aan het maken ben en is een documentatie van mijn leerproces vermomd als een tutorial:)

Kenmerken van de regenmeter:

  • metingen van dagelijkse en uurlijkse regenval zijn in inches voor eenvoudig uploaden naar Weather Underground.
  • debouncing-code voor de magnetische schakelaar is niet inbegrepen om de code eenvoudig te houden.
  • omdat het meer een tutorial is, is het eindproduct meer een prototype van een prototype.

Stap 1: Enige theorie

enige theorie
enige theorie

Neerslag wordt gerapporteerd/gemeten in millimeters of inches die de afmeting van lengte heeft. Het geeft aan hoe hoog elk deel van het regengebied de regen kreeg, als het regenwater niet was gedissipeerd en afgevoerd. Dus een regen van 1,63 mm zou betekenen dat als ik een vlakke, waterpas gemaakte tank van welke vorm dan ook had, het opgevangen regenwater een hoogte zou hebben van 1,63 mm vanaf de bodem van de tank.

Alle regenmeters hebben een regenvalopvanggebied en een neerslaghoeveelheidmeting. Het stroomgebied is het gebied waarover de regen wordt verzameld. Het meetobject zou een soort volumemeting voor een vloeistof zijn.

Dus de regenval in mm of inches zou zijn

regenhoogte = hoeveelheid opgevangen regen / stroomgebied

In mijn regencollector waren de lengte en breedte respectievelijk 11 cm bij 5 cm, wat een stroomgebied van 55 vierkante cm geeft. Dus een verzameling van 9 milliliter regen zou betekenen 9 cc/55 vierkante cm = 0,16363… cm = 1,6363… mm = 0,064 inch.

In de regenmeter van de kantelbak kantelt de emmer 4 keer voor 9 ml (of 0,064… inch regen) en dus is een enkele tip voor (9/4) ml = 2,25 ml (of 0,0161… inch). Als we metingen per uur doen (24 metingen per dag vóór reset), is het voldoende om drie significante cijfers nauwkeurig te houden.

Dus bij elke emmertip/tuimeling krijgt de code er toegang toe als 1 aan-uit-aan-reeks of één klik. Ja, we hebben 0,0161 inch regen gemeld. Om te herhalen, vanuit het oogpunt van Arduino

één klik = 0,0161 inch regen

Noot 1: Ik geef de voorkeur aan het International System of Units, maar Weather Underground geeft de voorkeur aan de Imperial/US units en dus deze omzetting in inches.

Opmerking 2: Als berekeningen niet jouw ding zijn, ga dan naar Volume of Rainfall, dat perfecte hulp biedt voor dergelijke zaken.

Stap 2: Onderdelen voor dit project

Onderdelen voor dit project
Onderdelen voor dit project
Onderdelen voor dit project
Onderdelen voor dit project
Onderdelen voor dit project
Onderdelen voor dit project

De meeste onderdelen waren rondslingeren en een eerlijke lijst (voor formaliteit) is

  1. Arduino Uno (of een ander compatibel)
  2. Regenmeter van oud beschadigd weerstation.
  3. Broodplank.
  4. RJ11 om mijn regenmeter op het breadboard aan te sluiten.
  5. 10K of hoger weerstand om als pull-up weerstand te fungeren. Ik heb 15K gebruikt.
  6. 2 stuks man-naar-vrouw jumperdraden
  7. 2 man-naar-man jumper draad.
  8. USB-kabel; A Man naar B Male

Gereedschap:

Spuit (12 ml capaciteit werd gebruikt)

Stap 3: De regencollector

De regenverzamelaar
De regenverzamelaar
De regenverzamelaar
De regenverzamelaar

De foto's van mijn regencollector zullen velen duidelijk maken. Hoe dan ook, de regen die op het stroomgebied valt, wordt naar een van de twee kiepbakken erin geleid. De twee kiepbakken zijn als een wip met elkaar verbonden en als het regenwatergewicht (0,0161 inch regen voor de mijne) een emmer naar beneden kantelt, wordt deze geleegd en de andere emmers gaan omhoog en positioneren zichzelf om het volgende regenwater op te vangen. De kantelbeweging beweegt een magneet over een 'magnetische schakelaar' en de schakeling wordt elektrisch aangesloten.

Stap 4: Circuit

Stroomkring
Stroomkring

Om het circuit te maken

  1. Sluit digitale pin #2 van Arduino aan op het ene uiteinde van de weerstand.
  2. Sluit het andere uiteinde van de weerstand aan op de aardingspin (GND).
  3. Sluit het ene uiteinde van de RJ11-aansluiting aan op de digitale pin #2 van Arduino.
  4. Sluit het andere uiteinde van de RJ11-aansluiting aan op de +5V-pin van Arduino (5V).
  5. Sluit de regenmeter aan op de RJ11.

De schakeling is voltooid. Doorverbindingsdraden en breadboard maken de verbindingen gemakkelijker te maken.

Om het project te voltooien, sluit u de Arduino aan op de pc met behulp van de USB-kabel en laadt u de onderstaande schets.

Stap 5: De code

De schets RainGauge.ino (ingesloten aan het einde van deze stap) is goed becommentarieerd en daarom zal ik slechts op drie secties wijzen.

Een deel telt het aantal kiepbakken.

if(bucketPositionA==false && digitalRead(RainPin) == HOOG){

… … }

Een ander deel controleert de tijd en berekent de hoeveelheid regen

if(now.minute()==0 && first == true){

hourlyRain = dailyRain - dailyRain_till_LastHour; …… ……

en een ander deel ruimt de regen voor de dag op, om middernacht.

if(nu.uur() == 0){

dagelijkse regen = 0; …..

Stap 6: Kalibratie en testen

Koppel de regencollector los van de rest van het circuit en voer de volgende stappen uit.

  1. Vul de spuit met water. Ik vul de mijne met 10 ml.
  2. Houd de Rain Collector op een vlakke ondergrond en giet het water beetje bij beetje uit de spuit.
  3. Ik tel de kiepende emmers. Vier tips waren genoeg voor mij, en er kwam 9 ml uit de spuit. Volgens berekeningen (zie theoriegedeelte) kreeg ik de hoeveelheid van 0,0161 inch regen per tip.
  4. Ik neem deze informatie in het begin op in mijn code.

const dubbele bucketAmount = 0,0161;

Dat is alles. Voor meer nauwkeurigheid kan men meer cijfers opnemen, zoals 0.01610595. Natuurlijk wordt verwacht dat je berekende aantallen variëren als je Rain Collector niet identiek is aan de mijne.

Voor testdoeleinden

  1. Sluit de Rain Collector aan op de RJ11-bus.
  2. Verbind de Arduino met de pc met behulp van de USB-kabel.
  3. Open de seriële monitor.
  4. Giet eerder afgemeten hoeveelheden water en observeer de output wanneer het uur is verstreken.
  5. Giet geen water, maar wacht tot het volgende uur is voltooid. De regen per uur moet in dit geval nul zijn.
  6. Houd de pc met het aangesloten circuit 's nachts ingeschakeld en kijk of de dagelijkse regen en uurregen om middernacht op nul worden gezet. Voor deze stap kan men ook de klok van de pc wijzigen in een geschikte waarde (om de uitgangen op de seriële monitor live te bekijken).

Stap 7: Nabeschouwingen en dankbetuigingen

De resolutie van de neerslagmetingen is in mijn geval 0,0161 inch en kan niet nauwkeuriger worden gemaakt. Praktische omstandigheden kunnen de nauwkeurigheid verder verminderen. Weermetingen hebben niet de nauwkeurigheid van de kwantummechanica.

Een deel van de code is geleend van Lazy Old Geek's Instructable.

Aanbevolen: