Innehållsförteckning:
- Steg 1: Lite teori
- Steg 2: Delar till detta projekt
- Steg 3: Rain Collector
- Steg 4: Krets
- Steg 5: Koden
- Steg 6: Kalibrering och testning
- Steg 7: Eftertanke och erkännanden
Video: Arduino Rain Gauge Kalibrering: 7 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
Introduktion:
I denna instruktör "konstruerar" vi en regnmätare med Arduino och kalibrerar den för att rapportera nederbörd dagligen och varje timme. Regnuppsamlaren jag använder är en återanpassad regnmätare av typen tipphink. Den kom från en skadad personlig väderstation. Men det finns många bra instruktioner om hur man gör en från grunden.
Denna instruerbara är en del av en väderstation jag gör och är en dokumentation av min inlärningsprocess förklädd till en handledning:)
Egenskaper för regnmätaren:
- mätningar av dagliga och timmars nederbörd är i tum för enkel uppladdning till Weather Underground.
- avstängningskod för magnetbrytaren ingår inte för att hålla koden enkel.
- att vara mer av en handledning den färdiga produkten är mer av en prototyp av en prototyp.
Steg 1: Lite teori
Nederbörd rapporteras/mäts i millimeter eller tum som har dimensionen längd. Det är en indikation på hur högt varje del av regnområdet fick regnet, om regnvattnet inte hade försvunnit och tappat bort. Så, en 1,63 mm nederbörd skulle innebära att om jag hade en platt jämn tank av någon form skulle det samlade regnvattnet ha en höjd av 1,63 mm från tankens botten.
Alla regnmätare har ett nedbördsområde och en mätning av nederbördsmängder. Avrinningsområdet är den region som regnet samlas över. Mätobjektet skulle vara någon form av volymmätning för en vätska.
Så nederbörden i mm eller tum skulle vara
nederbördshöjd = volymen insamlat regn / upptagningsområde
I min regnsamlare var längden och bredden 11 cm x 5 cm respektive vilket gav ett upptagningsområde på 55 kvm. Så en samling av 9 milliliter regn skulle innebära 9 cm3/55 kvm = 0,16363… cm = 1,6363… mm = 0,064 tum.
I tipphinkens regnmätare tippar skopan 4 gånger för 9 ml (eller 0,064… tum regn) och så är en enda spets för (9/4) ml = 2,25 ml (eller 0,0161.. tum). Om vi tar timavläsningar (24 avläsningar per dag före återställningar) är det tillräckligt bra att hålla tre signifikanta siffror noggranna.
Således får koden åtkomst till koden som en på-av-på-sekvens eller ett klick vid varje hinkspets/tumbling. Ja, vi har rapporterat 0,0161 tum regn. För att upprepa, ur Arduino synvinkel
ett klick = 0,0161 tum regn
Not 1: Jag föredrar det internationella systemet för enheter, men Weather Underground föredrar de kejserliga/amerikanska enheterna och denna omvandling till tum.
Not 2: Om beräkningar inte är din kopp te, gå vidare till Volume of Rainfall som ger perfekt hjälp för sådana frågor.
Steg 2: Delar till detta projekt
De flesta delarna låg och en rättvis notering (för formalitet) är det
- Arduino Uno (eller någon annan kompatibel)
- Regnmätare från gammal skadad väderstation.
- Bakbord.
- RJ11 för att ansluta min Rain Gauge till brödbrädan.
- 10K eller högre motstånd för att fungera som ett uppdragningsmotstånd. Jag har använt 15K.
- 2 stycken man-till-hona bygelkablar
- 2 bygelkabel från man till han.
- USB-kabel; En hane till B hane
Verktyg:
Spruta (12 ml kapacitet användes)
Steg 3: Rain Collector
Bilderna på min regnsamlare borde göra saken tydlig för många. Hur som helst, regnet som faller på dess upptagningsområde kanaliseras till en av de två tippskoporna inuti den. De två tippskoporna är anslutna som en såg och när regnvattens vikt (0,0161 tum regn för min) tippar en hink ner töms den och de andra skoporna går upp och positionerar sig för att samla nästa regnvatten. Tipprörelsen förflyttar en magnet över en 'magnetisk omkopplare' och kretsen ansluts elektriskt.
Steg 4: Krets
För att göra kretsen
- Anslut den digitala stift nr 2 på Arduino till ena änden av motståndet.
- Anslut den andra änden av motståndet till jordstiftet (GND).
- Anslut ena änden av RJ11 -uttaget till den digitala stift nr 2 på Arduino.
- Anslut den andra änden av RJ11 -uttaget till +5V -stiftet på Arduino (5V).
- Anslut regnmätaren till RJ11.
Kretsen är klar. Bygeltrådar och brödbräda gör anslutningarna enklare att göra.
För att slutföra projektet, anslut Arduino till datorn med USB -kabeln och ladda skissen nedan.
Steg 5: Koden
Skissen RainGauge.ino (inbäddad i slutet av detta steg) är välkommenterad och därför ska jag bara påpeka tre avsnitt.
En del räknar antalet tippskopspetsar.
if (bucketPositionA == false && digitalRead (RainPin) == HIGH) {
… … }
En annan del kontrollerar tiden och beräknar regnmängden
if (now.minute () == 0 && first == true) {
hourlyRain = dailyRain - dailyRain_till_LastHour; …… ……
och en annan del rensar regnet för dagen, vid midnatt.
om (nu. timme () == 0) {
dailyRain = 0; …..
Steg 6: Kalibrering och testning
Koppla bort Rain Collector från resten av kretsen och utför följande steg.
- Fyll sprutan med vatten. Jag fyller min med 10 ml.
- Håll Rain Collector på en plan yta och häll ut vattnet från sprutan bit för bit.
- Jag räknar med tipphinkarna. Fyra tips var tillräckligt för mig och tappade 9 ml från sprutan. Enligt beräkningar (se teoridelen) fick jag mängden 0,0161 tum regn per spets.
- Jag inkluderar denna information i min kod i början.
const double bucketAmount = 0,0161;
Det är allt. För mer noggrannhet kan man inkludera fler siffror som 0,01610595. Naturligtvis förväntas dina beräknade antal variera om din Rain Collector inte är identisk med min.
För teständamål
- Anslut Rain Collector till RJ11 -uttaget.
- Anslut Arduino till datorn med USB -kabeln.
- Öppna seriell bildskärm.
- Häll tidigare uppmätta mängder vatten och observera utgången när timmen är klar.
- Häll inte på vatten utan vänta tills nästa timme är klar. Regnet i timmen måste vara noll i detta fall.
- Håll datorn med den anslutna kretsen spänd över natten och se om dagregnet och timregnet återställs till noll vid midnatt. För detta steg kan man också ändra datorns klocka till ett lämpligt värde (för att titta på utgångarna på den seriella bildskärmen live).
Steg 7: Eftertanke och erkännanden
Upplösningen av nederbördsmätningarna i mitt fall är 0,0161 tum och kan inte göras mer exakt. Praktiska omständigheter kan minska noggrannheten ytterligare. Vädermätningar har inte kvantmekanikens noggrannhet.
En del av koden lånades från Lazy Old Geek's Instructable.
Rekommenderad:
ARDUINO PH SENSOR KALIBRERING: 7 steg
ARDUINO PH -SENSORKALIBRERING: I denna handledning kommer vi att kalibrera Atlas Scientifics EZO pH -sensor med Arduino Uno. KALIBRERINGSTEORI Den viktigaste delen av kalibreringen är att titta på avläsningarna under kalibreringsprocessen. Det är lättast att kalibrera enheten i
ARDUINO ORP SENSOR KALIBRERING: 3 steg
ARDUINO ORP SENSOR CALIBRATION: I denna handledning kommer vi att kalibrera Atlas Scientifics EZO ORP (oxidationsreducerande potential) sensor med Arduino Uno. KALIBRERINGSTEORI Den viktigaste delen av kalibreringen är att titta på avläsningarna under kalibreringsprocessen. Det är lätt
PiSiphon Rain Gauge (prototyp): 4 steg
PiSiphon Rain Gauge (Prototype): Detta projekt är en förbättring av Bell Siphon Rain Gauge. Det är mer exakt och läckande sifoner borde vara något från det förflutna. Traditionellt mäts nederbörd med en manuell regnmätare. Automatiserade väderstationer (inklusive IoT -väderstationer
Bell Siphon Rain Gauge: 8 steg (med bilder)
Bell Siphon Rain Gauge: En förbättrad version av detta är PiSiphon Rain Gauge Traditionellt mäts nederbörd med en manuell regnmätare. Automatiserade väderstationer (inklusive IoT -väderstationer) använder normalt tippskopor, akustiska disdrometrar eller laserdistometrar. T
Ultrasonic Rain Gauge: Raspebbery Pi Open Weather Station: Del 1: 6 steg
Ultrasonic Rain Gauge: Raspebbery Pi Open Weather Station: Del 1: Kommersiellt tillgängligt IoT (Internet Of Things) Väderstationer är dyra och inte tillgängliga överallt (som i Sydafrika). Extrema väderförhållanden slår oss. SA upplever den tuffaste torka på decennier, jorden värms upp och odlar