สารบัญ:

การสอบเทียบมาตรวัดปริมาณน้ำฝน Arduino: 7 ขั้นตอน
การสอบเทียบมาตรวัดปริมาณน้ำฝน Arduino: 7 ขั้นตอน

วีดีโอ: การสอบเทียบมาตรวัดปริมาณน้ำฝน Arduino: 7 ขั้นตอน

วีดีโอ: การสอบเทียบมาตรวัดปริมาณน้ำฝน Arduino: 7 ขั้นตอน
วีดีโอ: เครื่องวัดปริมาณน้ำฝนที่โรงเรียน 2024, พฤศจิกายน
Anonim
การสอบเทียบมาตรวัดปริมาณน้ำฝนของ Arduino
การสอบเทียบมาตรวัดปริมาณน้ำฝนของ Arduino

บทนำ:

ในคำแนะนำนี้ เรา 'สร้าง' มาตรวัดปริมาณน้ำฝนด้วย Arduino และปรับเทียบเพื่อรายงานปริมาณน้ำฝนรายวันและรายชั่วโมง ที่ปัดน้ำฝนที่ฉันใช้อยู่คือเกจวัดปริมาณน้ำฝนที่นำกลับมาใช้ใหม่ของประเภทถังให้ทิป มันมาจากสถานีตรวจอากาศส่วนบุคคลที่เสียหาย อย่างไรก็ตามมีคำแนะนำที่ดีมากมายเกี่ยวกับวิธีการสร้างตั้งแต่เริ่มต้น

คำแนะนำนี้เป็นส่วนหนึ่งของสถานีตรวจอากาศที่ฉันทำและเป็นเอกสารเกี่ยวกับกระบวนการเรียนรู้ของฉันที่ปลอมแปลงเป็นบทช่วยสอน:)

ลักษณะของเครื่องวัดปริมาณน้ำฝน:

  • การวัดปริมาณน้ำฝนรายวันและรายชั่วโมงเป็นนิ้วเพื่อให้อัปโหลดไปยัง Weather Underground ได้ง่าย
  • ไม่รวมรหัส debounding สำหรับสวิตช์แม่เหล็กเพื่อให้รหัสง่าย
  • การเป็นบทช่วยสอนมากกว่านั้น ผลิตภัณฑ์สำเร็จรูปจึงเป็นต้นแบบของต้นแบบมากกว่า

ขั้นตอนที่ 1: ทฤษฎีบางอย่าง

ทฤษฎีบางอย่าง
ทฤษฎีบางอย่าง

มีการรายงาน/วัดปริมาณน้ำฝนเป็นมิลลิเมตรหรือนิ้วซึ่งมีขนาดความยาว บ่งบอกถึงความสูง ทุกส่วนของพื้นที่ฝนตก ถ้าน้ำฝนไม่กระจายและระบายออกไป ดังนั้น ปริมาณน้ำฝน 1.63 มม. จะหมายความว่าถ้าฉันมีแท็งก์ราบเรียบที่มีรูปร่างใดๆ น้ำฝนที่เก็บสะสมไว้จะสูง 1.63 มม. จากก้นถัง

มาตรวัดปริมาณน้ำฝนทั้งหมดมีพื้นที่กักเก็บน้ำฝนและการวัดปริมาณน้ำฝน พื้นที่เก็บกักน้ำคือพื้นที่เก็บน้ำฝน วัตถุที่ใช้วัดจะเป็นการวัดปริมาตรของของเหลว

ดังนั้นปริมาณน้ำฝนในหน่วยมิลลิเมตรหรือนิ้วจะเป็น

ความสูงของน้ำฝน = ปริมาณน้ำฝนสะสม / พื้นที่เก็บกักน้ำ

ในตัวเก็บฝนของฉัน ยาวและกว้าง 11 ซม. คูณ 5 ซม. ตามลำดับ โดยให้พื้นที่เก็บน้ำ 55 ตร.ซม. ดังนั้นปริมาณฝนสะสม 9 มิลลิลิตรจะหมายถึง 9 ซีซี/55 ตร.ซม. = 0.16363… ซม. = 1.6363… มม. = 0.064 นิ้ว

ในเกจวัดปริมาณน้ำฝนแบบให้ทิป ทิปของบุ้งกี๋ 4 ครั้งสำหรับ 9 มล. (หรือ 0.064… นิ้วของฝน) และดังนั้น ทิปเดียวสำหรับ (9/4) มล. = 2.25 มล. (หรือ 0.0161.. นิ้ว) หากเราอ่านค่ารายชั่วโมง (24 ค่าต่อวันก่อนรีเซ็ต) การรักษาความถูกต้องของตัวเลขสำคัญสามหลักก็เพียงพอแล้ว

ดังนั้น ในแต่ละส่วนปลาย/การปั่นป่วน โค้ดจะเข้าถึงได้เป็น 1 ลำดับการเปิด-ปิด หรือคลิกเพียงครั้งเดียว ใช่ เราได้รายงานปริมาณน้ำฝนแล้ว 0.0161 นิ้ว ย้ำนะครับ จากมุมมองของ Arduino

คลิกเดียว = ฝน 0.0161 นิ้ว

หมายเหตุ 1: ฉันชอบระบบหน่วยสากล แต่ Weather Underground ชอบหน่วยอิมพีเรียล/สหรัฐฯ ดังนั้นการแปลงนี้เป็นนิ้ว

หมายเหตุ 2: หากการคำนวณไม่ใช่ถ้วยชาของคุณ ให้ไปที่ Volume of Rainfall ซึ่งให้ความช่วยเหลืออย่างเต็มที่สำหรับเรื่องดังกล่าว

ขั้นตอนที่ 2: ชิ้นส่วนสำหรับโครงการนี้

ชิ้นส่วนสำหรับโครงการนี้
ชิ้นส่วนสำหรับโครงการนี้
ชิ้นส่วนสำหรับโครงการนี้
ชิ้นส่วนสำหรับโครงการนี้
ชิ้นส่วนสำหรับโครงการนี้
ชิ้นส่วนสำหรับโครงการนี้

ชิ้นส่วนส่วนใหญ่วางอยู่รอบ ๆ และรายการยุติธรรม (สำหรับพิธีการ) คือ

  1. Arduino Uno (หรืออื่น ๆ ที่เข้ากันได้)
  2. มาตรวัดปริมาณน้ำฝนจากสถานีตรวจอากาศเก่าที่เสียหาย
  3. เขียงหั่นขนม
  4. RJ11 เพื่อเชื่อมต่อ Rain Gauge ของฉันกับเขียงหั่นขนม
  5. ตัวต้านทาน 10K หรือสูงกว่าเพื่อทำหน้าที่เป็นตัวต้านทานแบบดึงขึ้น ผมใช้ไป 15K
  6. สายจัมเปอร์ชาย-หญิง 2 ชิ้น
  7. สายจัมเปอร์ตัวผู้-ตัวผู้ 2 เส้น
  8. สาย USB; A ชายไป B ชาย

เครื่องมือ:

กระบอกฉีดยา (ใช้ความจุ 12 มล.)

ขั้นตอนที่ 3: The Rain Collector

The Rain Collector
The Rain Collector
The Rain Collector
The Rain Collector

รูปถ่ายของคนเก็บฝนของฉันน่าจะทำให้หลายๆ คนเห็นชัดเจน อย่างไรก็ตาม ฝนที่ตกลงมาบนพื้นที่เก็บกักน้ำจะถูกส่งไปยังถังให้ทิปหนึ่งในสองถังที่อยู่ข้างใน ถังให้ทิปสองถังเชื่อมต่อกันเหมือนกระดานหก และเมื่อน้ำหนักน้ำฝน (ปริมาณน้ำฝน 0.0161 นิ้วสำหรับฉัน) เทลงถังหนึ่งถังจึงเทออก และถังอีกถังลอยขึ้นและวางตำแหน่งตัวเองเพื่อเก็บน้ำฝนครั้งต่อไป การเคลื่อนที่ของแม่เหล็กจะเคลื่อนแม่เหล็กไปไว้เหนือ 'สวิตช์แม่เหล็ก' และวงจรจะเชื่อมต่อด้วยไฟฟ้า

ขั้นตอนที่ 4: วงจร

วงจร
วงจร

เพื่อสร้างวงจร

  1. เชื่อมต่อขาดิจิตอล #2 ของ Arduino กับปลายด้านหนึ่งของตัวต้านทาน
  2. เชื่อมต่อปลายอีกด้านของตัวต้านทานเข้ากับกราวด์พิน (GND)
  3. เชื่อมต่อปลายด้านหนึ่งของแจ็ค RJ11 เข้ากับพินดิจิทัล #2 ของ Arduino
  4. เชื่อมต่อปลายอีกด้านของแจ็ค RJ11 เข้ากับพิน +5V ของ Arduino (5V)
  5. เสียบมาตรวัดปริมาณน้ำฝนเข้ากับ RJ11

วงจรเสร็จสมบูรณ์ สายจัมเปอร์และเขียงหั่นขนมทำให้การเชื่อมต่อง่ายขึ้น

เพื่อให้โครงการเสร็จสมบูรณ์ให้เชื่อมต่อ Arduino กับพีซีโดยใช้สาย USB และโหลดภาพร่างที่ให้ไว้ด้านล่าง

ขั้นตอนที่ 5: รหัส

ภาพสเก็ตช์ RainGauge.ino (ฝังไว้ที่ส่วนท้ายของขั้นตอนนี้) ได้รับการแสดงความคิดเห็นอย่างดี ดังนั้นฉันจะชี้ให้เห็นสามส่วนเท่านั้น

ส่วนหนึ่งนับจำนวนทิปทิป

if(bucketPositionA==false && digitalRead(RainPin) == สูง){

… … }

อีกส่วนหนึ่งตรวจสอบเวลาและคำนวณปริมาณน้ำฝน

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

hourlyRain = dailyRain - รายวันRain_till_LastHour; …… ……

และอีกส่วนหนึ่งจะทำให้ฝนโปรยปรายในตอนกลางวัน เวลาเที่ยงคืน

ถ้า(ตอนนี้.ชั่วโมง() == 0){

ฝนรายวัน = 0; …..

ขั้นตอนที่ 6: การสอบเทียบและการทดสอบ

ถอด Rain Collector ออกจากวงจรที่เหลือและทำตามขั้นตอนต่อไปนี้

  1. เติมกระบอกฉีดยาด้วยน้ำ ฉันเติมของฉันด้วย 10 มล.
  2. เก็บ Rain Collector ไว้บนพื้นผิวที่เรียบและเทน้ำออกจากกระบอกฉีดยาทีละน้อย
  3. ฉันนับถังให้ทิป สี่เคล็ดลับก็เพียงพอแล้วสำหรับฉัน และระบาย 9 มล. จากกระบอกฉีดยา จากการคำนวณ (ดูส่วนทฤษฎี) ฉันได้รับปริมาณฝน 0.0161 นิ้วต่อทิป
  4. ฉันรวมข้อมูลนี้ไว้ในรหัสของฉันในตอนเริ่มต้น

const double bucketAmount = 0.0161;

แค่นั้นเอง เพื่อความแม่นยำที่มากขึ้น เราสามารถใส่ตัวเลขได้มากกว่านี้ เช่น 0.01610595 แน่นอนว่าตัวเลขที่คำนวณได้ของคุณนั้นคาดว่าจะแตกต่างกันไปหาก Rain Collector ของคุณไม่เหมือนกับของฉัน

สำหรับวัตถุประสงค์ในการทดสอบ

  1. เชื่อมต่อ Rain Collector เข้ากับช่องเสียบ RJ11
  2. เชื่อมต่อ Arduino กับพีซีโดยใช้สาย USB
  3. เปิดจอภาพอนุกรม
  4. เทน้ำตามปริมาณที่วัดได้ก่อนหน้านี้และสังเกตผลลัพธ์เมื่อครบชั่วโมง
  5. อย่าเทน้ำใด ๆ แต่รอหนึ่งชั่วโมงถัดไปให้เสร็จ ในกรณีนี้ ปริมาณน้ำฝนรายชั่วโมงต้องเป็นศูนย์
  6. ให้พีซีที่มีวงจรที่เชื่อมต่ออยู่ข้ามคืนและดูว่าฝนรายวันและฝนรายชั่วโมงจะรีเซ็ตเป็นศูนย์ในเวลาเที่ยงคืนหรือไม่ สำหรับขั้นตอนนี้ คุณสามารถเปลี่ยนนาฬิกาของพีซีให้เป็นค่าที่เหมาะสมได้ (เพื่อดูเอาต์พุตบนจอภาพแบบอนุกรมแบบสด)

ขั้นตอนที่ 7: ความคิดภายหลัง & การรับทราบ

ความละเอียดของการอ่านปริมาณน้ำฝนในกรณีของฉันคือ 0.0161 นิ้ว และไม่แม่นยำมากขึ้น สถานการณ์ในทางปฏิบัติอาจลดความแม่นยำลงอีก การวัดสภาพอากาศไม่มีความแม่นยำของกลศาสตร์ควอนตัม

ส่วนหนึ่งของรหัสถูกยืมมาจาก Lazy Old Geek's Instructable

แนะนำ: