Talaan ng mga Nilalaman:

Pagkakalibrate ng Arduino Rain Gauge: 7 Hakbang
Pagkakalibrate ng Arduino Rain Gauge: 7 Hakbang

Video: Pagkakalibrate ng Arduino Rain Gauge: 7 Hakbang

Video: Pagkakalibrate ng Arduino Rain Gauge: 7 Hakbang
Video: Proyecto de heliostato Templastat / Templastat Heliostat Project: improvements, updates and test 2024, Hulyo
Anonim
Pag-calibrate ng Arduino Rain Gauge
Pag-calibrate ng Arduino Rain Gauge

Panimula:

Sa Instructable na ito, "bumubuo" kami ng isang gauge ng ulan kasama ang Arduino at i-calibrate ito upang mag-ulat araw-araw at oras-oras na pag-ulan. Ang ginagamit kong rain collector ay isang muling nilalayon na sukat ng ulan ng uri ng tipping bucket. Galing ito sa isang napinsalang personal na istasyon ng panahon. Gayunpaman maraming mga magagaling na Mga Tagubilin sa kung paano gumawa ng isa mula sa simula.

Ang Instructable na ito ay isang bahagi ng isang istasyon ng panahon na ginagawa ko at isang dokumentasyon ng aking proseso ng pag-aaral na nagkubli bilang isang tutorial:)

Mga Katangian ng Rain Gauge:

  • ang mga sukat ng pang-araw-araw at oras na pag-ulan ay nasa pulgada para sa madaling pag-upload sa Weather Underground.
  • ang debouncing code para sa magnetic switch ay hindi kasama upang panatilihing simple ang code.
  • pagiging higit sa isang tutorial ang tapos na produkto ay higit pa sa isang prototype ng isang prototype.

Hakbang 1: Ilang Teorya

Ilang Teorya
Ilang Teorya

Ang ulan ay naiulat / sinusukat sa millimeter o pulgada na may sukat ng haba. Ito ay nagpapahiwatig kung gaano kataas, ang bawat bahagi ng lugar ng ulan ay nakakuha ng ulan, kung ang tubig ng ulan ay hindi nawala at pinatuyo. Kaya, ang isang 1.63 mm ng ulan ay nangangahulugan na kung mayroon akong isang flat leveled tank ng anumang hugis na nakolekta ang tubig ng ulan ay may taas na 1.63 mm mula sa ilalim ng mga tanke.

Ang lahat ng mga gauge ng ulan ay may lugar na may catchment ng ulan at isang pagsukat ng halaga ng ulan. Ang lugar ng catchment ay ang rehiyon kung saan nakolekta ang ulan. Ang pagsukat ng bagay ay maaaring isang uri ng pagsukat ng dami para sa isang likido.

Kaya't ang ulan sa mm o pulgada ay magiging

taas ng ulan = dami ng naipong / nasasakupang lugar

Sa aking maniningil ng ulan, ang haba at lawak ay 11 cm ng 5 cm ayon sa pagkakabanggit na nagbibigay ng isang lugar ng catchment na 55 sq.cm. Kaya't ang isang koleksyon ng 9 mililitro ng ulan ay nangangahulugang 9 cc / 55 sq.cm = 0.16363… cm = 1.6363… mm = 0.064 pulgada.

Sa sukdulan ng sukat ng ulan ng timba, ang mga tip ng timba ng 4 na beses para sa 9 ML (o 0.064… pulgada ng ulan) at sa gayon ang isang solong tip ay para sa (9/4) ml = 2.25ml (o 0.0161.. pulgada). Kung kukuha kami ng oras-oras na pagbabasa (24 na pagbasa bawat araw bago i-reset) ang pagsunod sa tatlong makabuluhang kawastuhan ng digit ay sapat na disente.

Kaya, sa bawat tip / tumble ng bucket, ina-access ito ng code bilang 1 on-off-on na pagkakasunud-sunod o isang pag-click. Oo, naiulat namin ang 0.0161 pulgada ng ulan. Upang ulitin, mula sa pananaw ng Arduino

isang pag-click = 0.0161 pulgada ng ulan

Tandaan 1: Mas gusto ko ang International System of Units, ngunit mas gusto ng Weather Underground ang mga yunit ng Imperial / US at sa gayon ang conversion na ito ay magiging pulgada.

Tandaan 2: Kung ang mga kalkulasyon ay hindi ang iyong tasa ng tsaa, magtungo sa Dami ng Pag-ulan na nagbibigay ng perpektong tulong para sa mga naturang bagay.

Hakbang 2: Mga Bahagi para sa Project na Ito

Mga Bahagi para sa Project na Ito
Mga Bahagi para sa Project na Ito
Mga Bahagi para sa Project na Ito
Mga Bahagi para sa Project na Ito
Mga Bahagi para sa Project na Ito
Mga Bahagi para sa Project na Ito

Karamihan sa mga bahagi ay nakahiga at isang patas na listahan (para sa pormalidad) ay

  1. Arduino Uno (o anumang iba pang katugma)
  2. Rain Gauge mula sa dating nasirang istasyon ng panahon.
  3. Breadboard.
  4. RJ11 upang ikonekta ang aking Rain Gauge sa breadboard.
  5. 10K o mas mataas na risistor upang kumilos bilang isang pull up risistor. Gumamit ako ng 15K.
  6. 2 piraso ng male-to-female jumper wires
  7. 2 male-to-male jumper wire.
  8. Kable ng USB; Isang Lalaki kay B Lalaki

Mga tool:

Syringe (12 ML na kapasidad ang ginamit)

Hakbang 3: Ang Rain Collector

Ang Rain Collector
Ang Rain Collector
Ang Rain Collector
Ang Rain Collector

Ang mga larawan ng aking maniningil ng ulan ay dapat na linawin ng marami sa bagay. Gayunpaman, ang ulan na bumagsak sa lugar ng catchment nito ay mai-channel sa isa sa dalawang tipping-bucket sa loob nito. Ang dalawang tipping-bucket ay konektado tulad ng isang see-saw at habang ang bigat ng tubig ng ulan (0.0161 pulgada ng ulan para sa minahan) ay nagtuturo sa isang timba pababa na nawala ito at ang iba pang mga balde ay umakyat at iposisyon ang sarili upang makolekta ang susunod na tubig-ulan. Ang paggalaw ng tipping ay gumagalaw ng isang magnet sa isang 'magnetic-switch' at ang circuit ay nakakakonekta sa elektrisidad.

Hakbang 4: Circuit

Circuit
Circuit

Upang makagawa ng circuit

  1. Ikonekta ang digital pin # 2 ng Arduino sa isang dulo ng risistor.
  2. Ikonekta ang kabilang dulo ng risistor sa Ground pin (GND).
  3. Ikonekta ang isang dulo ng RJ11 jack sa digital pin # 2 ng Arduino.
  4. Ikonekta ang kabilang dulo ng jack ng RJ11 sa + 5V pin ng Arduino (5V).
  5. I-plug ang gauge ng ulan sa RJ11.

Kumpleto na ang circuit. Ang mga jumper wires at breadboard ay ginagawang mas madaling gawin ang mga koneksyon.

Upang makumpleto ang proyekto ikonekta ang Arduino sa PC gamit ang USB cable at i-load ang sketch na ibinigay sa ibaba.

Hakbang 5: Ang Code

Ang sketch RainGauge.ino (naka-embed sa pagtatapos ng hakbang na ito) ay mahusay na nagkomento at sa gayon bibigyan ko lamang ng tatlong mga seksyon.

Ang isang bahagi ay binibilang ang bilang ng mga tip sa pag-tipping-bucket.

kung (bucketPositionA == false && digitalRead (RainPin) == TAAS) {

… … }

Ang isa pang bahagi ay sumusuri sa oras at kinakalkula ang dami ng ulan

kung (now.minute () == 0 && unang == totoo) {

hourlyRain = dailyRain - dailyRain_till_LastHour; …… ……

at isa pang bahagi ang naglilinis ng ulan para sa araw, sa hatinggabi.

kung (now.hour () == 0) {

dailyRain = 0; …..

Hakbang 6: Pagkakalibrate at Pagsubok

Idiskonekta ang Rain Collector mula sa natitirang circuit at isagawa ang mga sumusunod na hakbang.

  1. Punan ang tubig na hiringgilya. Pinupuno ko ang akin ng 10 ML.
  2. Panatilihin ang Rain Collector sa isang antas sa ibabaw at ibuhos nang kaunti ang tubig mula sa hiringgilya.
  3. Pinapanatili ko ang bilang ng mga tipping bucket. Apat na tip ang sapat para sa akin, at pinatuyo ang 9 ML mula sa hiringgilya. Ayon sa mga kalkulasyon (tingnan ang seksyon ng teorya) Nakuha ko ang halagang 0.0161 pulgada ng ulan bawat tip.
  4. Isinasama ko ang impormasyong ito sa aking code sa simula.

const double bucketAmount = 0.0161;

Hanggang doon na lang. Para sa higit na kawastuhan, maaaring magsama ang isa ng maraming mga digit tulad ng 0.01610595. Siyempre ang iyong kinakalkula na mga numero ay inaasahan na mag-iba kung ang iyong Rain Collector ay hindi magkapareho sa minahan.

Para sa mga layuning pagsubok

  1. Ikonekta ang Rain Collector sa socket ng RJ11.
  2. Ikonekta ang Arduino sa PC gamit ang USB cable.
  3. Buksan ang serial monitor.
  4. Ibuhos ang dating nasusukat na dami ng tubig at obserbahan ang output kapag nakumpleto ang oras.
  5. Huwag magbuhos ng anumang tubig ngunit maghintay para sa susunod na oras upang makumpleto. Ang oras-oras na ulan ay dapat na zero sa kasong ito.
  6. Panatilihin ang PC gamit ang nakakonektang circuit na pinalakas sa magdamag at tingnan kung ang pang-araw-araw na ulan at oras-ulan na pag-ulan ay na-reset sa zero sa hatinggabi. Para sa hakbang na ito, maaari ding baguhin ng orasan ang PC sa isang naaangkop na halaga (upang panoorin ang mga output sa serial monitor nang live).

Hakbang 7: Mga Paniniwala at Pagkilala

Ang resolusyon ng mga pagbasa ng ulan sa aking kaso ay 0.0161 pulgada at hindi maaaring gawing mas tumpak. Ang mga praktikal na pangyayari ay maaaring bawasan ang katumpakan nang higit pa. Ang mga sukat sa panahon ay walang kawastuhan ng mga mekanika ng kabuuan.

Ang bahagi ng code ay hiniram mula sa Lazy Old Geek's Instructable.

Inirerekumendang: