Indholdsfortegnelse:
- Trin 1: Nogle teorier
- Trin 2: Dele til dette projekt
- Trin 3: Regnopsamleren
- Trin 4: Kredsløb
- Trin 5: Koden
- Trin 6: Kalibrering og test
- Trin 7: Eftertanke og anerkendelser
Video: Arduino Rain Gauge Kalibrering: 7 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Introduktion:
I denne instruktør 'konstruerer' vi en regnmåler med Arduino og kalibrerer den til at rapportere daglig nedbør hver time. Regnopsamleren, jeg bruger, er en omformet regnemåler af typen tipskovl. Det kom fra en beskadiget personlig vejrstation. Der er dog mange gode instruktioner om, hvordan man laver en fra bunden.
Denne instruktør er en del af en vejrstation, jeg laver, og er en dokumentation af min læringsproces forklædt som en vejledning:)
Egenskaber ved regnmåler:
- målinger af daglig og time nedbør er i tommer for let upload til Weather Underground.
- debouncing -kode til magnetkontakten er ikke inkluderet for at holde koden enkel.
- da det er mere en tutorial, er det færdige produkt mere en prototype af en prototype.
Trin 1: Nogle teorier
Nedbør rapporteres/måles i millimeter eller tommer, som har dimensionen længde. Det er vejledende for, hvor højt, hver portion af regnområdet fik regnen, hvis regnvandet ikke var forsvundet og drænet væk. Så en 1,63 mm nedbør ville betyde, at hvis jeg havde en flad nivelleret tank af enhver form, ville det opsamlede regnvand have en højde på 1,63 mm fra tankens bund.
Alle regnmålere har et nedbørsområde og en måling af nedbørsmængder. Oplandet er det område, hvor regnen indsamles. Måleobjektet ville være en form for volumenmåling for en væske.
Så nedbøren i mm eller tommer ville være
nedbørshøjde = mængden af opsamlet regn / opland
I min regnsamler var længden og bredden henholdsvis 11 cm x 5 cm, hvilket gav et opland på 55 kvm. Så en samling på 9 milliliter regn ville betyde 9 cm3/55 kvm = 0,16363… cm = 1,6363… mm = 0,064 tommer.
I tippeskovlens regnmåler spænder spanden 4 gange i 9 ml (eller 0,064… tommer regn), og derfor er en enkelt spids til (9/4) ml = 2,25 ml (eller 0,0161.. tommer). Hvis vi foretager timeaflæsninger (24 aflæsninger pr. Dag før nulstilling) er det anstændigt nok at beholde tre signifikante cifret nøjagtighed.
Således får koden ved hver spandspids/tumbling adgang til den som 1 on-off-on-sekvens eller et klik. Ja, vi har rapporteret 0,0161 tommer regn. For at gentage, fra Arduino -synspunkt
et klik = 0,0161 tommer regn
Note 1: Jeg foretrækker det internationale system af enheder, men Weather Underground foretrækker de kejserlige/amerikanske enheder og derfor er denne konvertering til tommer.
Note 2: Hvis beregninger ikke er din kop te, skal du gå over til Volume of Rainfall, som giver perfekt hjælp til sådanne sager.
Trin 2: Dele til dette projekt
De fleste af delene lå og en rimelig liste (for formalitet) er
- Arduino Uno (eller enhver anden kompatibel)
- Regnmåler fra gammel beskadiget vejrstation.
- Brødbræt.
- RJ11 for at forbinde min Rain Gauge til brødbrættet.
- 10K eller højere modstand for at fungere som en pull up -modstand. Jeg har brugt 15K.
- 2 stykker han-til-hun trøjer
- 2 han-til-han-jumpertråd.
- USB -kabel; En han til B mand
Værktøjer:
Sprøjte (12 ml kapacitet blev brugt)
Trin 3: Regnopsamleren
Billederne af min regnsamler burde gøre tingene klart for mange. Alligevel bliver regnen, der falder på dens opland, kanaliseret til en af de to vippespande inde i den. De to vippespande er forbundet som en vippe, og da regnvandsvægten (0,0161 tommer regn til min) vælter en spand ned, tømmes den, og de andre spande går op og placerer sig for at opsamle det næste regnvand. Vipningsbevægelsen flytter en magnet over en 'magnetisk switch', og kredsløbet bliver elektrisk forbundet.
Trin 4: Kredsløb
For at lave kredsløbet
- Tilslut digital pin #2 af Arduino til den ene ende af modstanden.
- Tilslut den anden ende af modstanden til jordstiften (GND).
- Tilslut den ene ende af RJ11 -stikket til den digitale pin #2 på Arduino.
- Tilslut den anden ende af RJ11 -stikket til +5V -stiften på Arduino (5V).
- Slut regnmåleren til RJ11.
Kredsløbet er fuldført. Jumperwires og breadboard gør forbindelserne lettere at lave.
For at fuldføre projektet skal du slutte Arduino til pc'en ved hjælp af USB -kablet og indlæse skitsen nedenfor.
Trin 5: Koden
Skitsen RainGauge.ino (indlejret i slutningen af dette trin) er godt kommenteret, og derfor vil jeg kun påpege tre sektioner.
Den ene del tæller antallet af tip-spandspidser.
if (bucketPositionA == false && digitalRead (RainPin) == HIGH) {
… … }
En anden del kontrollerer tiden og beregner regnmængden
hvis (nu. minut () == 0 && først == sandt) {
hourRain = dailyRain - dailyRain_till_LastHour; …… ……
og en anden del rydder regnen for dagen, ved midnat.
hvis (nu. time () == 0) {
dailyRain = 0; …..
Trin 6: Kalibrering og test
Afbryd regnopsamleren fra resten af kredsløbet og udfør følgende trin.
- Fyld sprøjten med vand. Jeg fylder min med 10 ml.
- Hold regnopsamleren på en plan overflade, og hæld vandet fra sprøjten lidt efter lidt.
- Jeg holder en optælling af vippespandene. Fire spidser var nok for mig og drænede 9 ml fra sprøjten. Ifølge beregninger (se teoriafsnittet) fik jeg mængden af 0,0161 tommer regn pr. Spids.
- Jeg inkluderer disse oplysninger i min kode i begyndelsen.
const dobbelt bucketAmount = 0,0161;
Det er det hele. For mere nøjagtighed kan man inkludere flere cifre som f.eks. 0.01610595. Selvfølgelig forventes dine beregnede tal at variere, hvis din Rain Collector ikke er identisk med min.
Til testformål
- Tilslut Rain Collector til RJ11 -stikket.
- Tilslut Arduino til pc'en ved hjælp af USB -kablet.
- Åbn den serielle skærm.
- Hæld tidligere målte mængder vand og observer output når timen er færdig.
- Hæld ikke vand, men vent til den næste time er færdig. Timeregnen skal være nul i dette tilfælde.
- Hold pc'en med det tilsluttede kredsløb drevet natten over, og se om den daglige regn og timeregn bliver nulstillet ved midnat. Til dette trin kan man også ændre pc'ens ur til en passende værdi (for at se output på den serielle skærm live).
Trin 7: Eftertanke og anerkendelser
Opløsningen af nedbørsmålingerne i mit tilfælde er 0,0161 tommer og kan ikke gøres mere præcis. Praktiske omstændigheder kan reducere nøjagtigheden yderligere. Vejrmålinger har ikke kvantemekanikkens nøjagtighed.
En del af koden blev lånt fra Lazy Old Geek's Instructable.
Anbefalede:
ARDUINO ORP SENSOR KALIBRERING: 3 trin
ARDUINO ORP SENSOR KALIBRERING: I denne vejledning kalibrerer vi Atlas Scientifics EZO ORP (oxidationsreduktionspotentiale) sensor ved hjælp af Arduino Uno. KALIBRERINGSTEORI Den vigtigste del af kalibreringen er at se målingerne under kalibreringsprocessen. Det er let
ARDUINO OPLØST OXYGEN SENSOR KALIBRERING: 4 trin
ARDUINO OPLØST OXYGENSENSORKALIBRERING: I denne vejledning kalibrerer vi Atlas Scientifics EZO -opløst ilt (D.O) sensor ved hjælp af Arduino Uno. KALIBRERINGSTEORI Den vigtigste del af kalibreringen er at se målingerne under kalibreringsprocessen. Det er nemmest at kalibrere
PiSiphon Rain Gauge (prototype): 4 trin
PiSiphon Rain Gauge (Prototype): Dette projekt er en forbedring i forhold til Bell Siphon Rain Gauge. Det er mere præcist, og utætte vandlåse burde være noget fra fortiden. Traditionelt måles nedbør med en manuel regnmåler. Automatiske vejrstationer (herunder IoT -vejrstationer
Bell Siphon Rain Gauge: 8 trin (med billeder)
Bell Siphon Rain Gauge: En forbedret version af dette er PiSiphon Rain Gauge Traditionelt regnes nedbør med en manuel regnmåler. Automatiske vejrstationer (herunder IoT vejrstationer) bruger normalt tipskovle, akustiske disdrometre eller laserdisometre. T
Ultrasonic Rain Gauge: Raspebbery Pi Open Weather Station: Del 1: 6 trin
Ultrasonic Rain Gauge: Raspebbery Pi Open Weather Station: Part 1: Commercial available IoT (Internet Of Things) Vejrstationer er dyre og ikke tilgængelige overalt (Ligesom i Sydafrika). Ekstreme vejrforhold rammer os. SA oplever den hårdeste tørke i årtier, jorden opvarmes og gård