Indholdsfortegnelse:

Arduino Rain Gauge Kalibrering: 7 trin
Arduino Rain Gauge Kalibrering: 7 trin

Video: Arduino Rain Gauge Kalibrering: 7 trin

Video: Arduino Rain Gauge Kalibrering: 7 trin
Video: DIY Automatic Soap Dispenser || Sanitizer Dispenser 2024, November
Anonim
Arduino regnmåler kalibrering
Arduino regnmåler kalibrering

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

Noget teori
Noget teori

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

Dele til dette projekt
Dele til dette projekt
Dele til dette projekt
Dele til dette projekt
Dele til dette projekt
Dele til dette projekt

De fleste af delene lå og en rimelig liste (for formalitet) er

  1. Arduino Uno (eller enhver anden kompatibel)
  2. Regnmåler fra gammel beskadiget vejrstation.
  3. Brødbræt.
  4. RJ11 for at forbinde min Rain Gauge til brødbrættet.
  5. 10K eller højere modstand for at fungere som en pull up -modstand. Jeg har brugt 15K.
  6. 2 stykker han-til-hun trøjer
  7. 2 han-til-han-jumpertråd.
  8. USB -kabel; En han til B mand

Værktøjer:

Sprøjte (12 ml kapacitet blev brugt)

Trin 3: Regnopsamleren

Regnopsamleren
Regnopsamleren
Regnopsamleren
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

Kredsløb
Kredsløb

For at lave kredsløbet

  1. Tilslut digital pin #2 af Arduino til den ene ende af modstanden.
  2. Tilslut den anden ende af modstanden til jordstiften (GND).
  3. Tilslut den ene ende af RJ11 -stikket til den digitale pin #2 på Arduino.
  4. Tilslut den anden ende af RJ11 -stikket til +5V -stiften på Arduino (5V).
  5. 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.

  1. Fyld sprøjten med vand. Jeg fylder min med 10 ml.
  2. Hold regnopsamleren på en plan overflade, og hæld vandet fra sprøjten lidt efter lidt.
  3. 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.
  4. 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

  1. Tilslut Rain Collector til RJ11 -stikket.
  2. Tilslut Arduino til pc'en ved hjælp af USB -kablet.
  3. Åbn den serielle skærm.
  4. Hæld tidligere målte mængder vand og observer output når timen er færdig.
  5. Hæld ikke vand, men vent til den næste time er færdig. Timeregnen skal være nul i dette tilfælde.
  6. 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: