Weather Station วัดฝน ด้วย ESP8266 & Arduino Nano

ตามที่เคยกล่าวไว้เรื่องการทดลองสร้าง เครื่องวัดฝนอย่างง่าย  ด้วยการแปลงจากเครื่องวัด Rain Drop sensor
Feature ที่ต้องการ

  1. วัดค่าอุณหภูมิและความชื้นอากาศ ด้วย AM2302  วัดผ่าน Arduino Nano
  2. วัดปริมาณฝนสะสม
  3. วัดความชื้นของดิน
  4. สั่งการปิดเปิด Solenoid วาล์วน้ำ  12 Vdc
  5. ใช้ Solar Cell และแบตเตอรี่สำรอง เป็นแหล่งจ่าย

อุปกรณ์ที่ต้องใช้

  1. ESP8266
  2. Arduino Nano  1 ตัว
  3. วงจรแปลงสัญญาณของ Rain drop sensor
  4. AM2302
  5. Solar Cell และ แบตเตอรี่
  6. ตุ้ควบคุม
  7. กระบอกวัดน้ำฝน  เส้นผ่าศูนย์กลาง  7.5 cm  (แก้วกาแฟพลาสติดอย่างหนา)
  8. แท่งสแตนเลสตัวนำ


ตู้ควบคุม  มี Solar Charger แบตเตอรี่  และปลั๊กไฟ  สำหรับใช้ service  บอร์ด ในรูปเป็น  ESP32 Heltec ก่อนการต่อสัญญาณแบบ I2C

Solenoid valve 12 Vdc เพิ่งมาถึงยังไม่ได้ต่อท่อน้ำ

แปลงทดสอบ  เป็นสวนครัวแบบผวม  และต้นชะมวง  3 ต้น
 
ประกอบวงจรตามรูป
สำหรับ โปรแกรมของ ESP8266 และ Arduino Nano จะใช้แนวทางจาก  บทความที่แล้ว  ที่เป็นการสื่อสาร  Serial  ที่พบว่าง่ายกว่าการใช้  I2C เป็นอย่างมาก
ในการเขียนโปแกรมแปลงค่าระดับน้ำกับสัญญาณการวัด  พบว่าจะต้องทำการสร้างตารางเปรียบเทียบสัญญาณ  โดยผลของกระบอกทรงกรวยและคุณสมบัติของน้ำ  ทำให้ได้กราฟความสัมพันธ์ที่ไม่เป็นเชิงเส้น  จึงต้องแบ่งสมการเป็น 3 ช่วง   ตามตัวอย่างแนบ  และให้ผลการวัดที่น่าพอใจ
ปัญหาที่พบหลังจากการทดสอบ  คือ  ค่าระดับของการวัดจะค่อยๆ ลดลง  ตามค่าความนำที่ลดลงตามความแห้งของผิวกระบอก  ซึ่งมีแนวทางแก้ไขได้จากการทดลองเปลี่ยนลวดตัวนำเป็นแผ่นสแตนเลสหน้ากว้างขึ้น (จะทำการทดลองในภายหลัง)


ตารางด้านซ้าย  เป็นการตรวจสอบสัญญาณ  0-1023  จาก A0  เมื่อระดับน้ำอยู่ที่จุดต่างๆ  ตั้งแต่ 0 ถึง 200 mm  โดยพบว่าแต่ละช่วงจะมีความสัมพันธ์ด้วยสมการต่างกัน  นั่นเป็นเพราะ  คุณสมบัติของน้ำ  ลักษณะของถ้วย แท่งตัวนำ  ที่จะให้ผลรวมที่ระดับต่างๆ  ด้วยความสัมพันธ์ต่างกัน
หากใช้ทรงกระบอกตรง  เส้นผ่านศูนย์กลางโตกว่า  ก็จะได้สมการที่ต่างกันเช่นกัน
การทดลองนี้จึงเป็นแนวทางหนึ่ง
โดยความแม่นยำที่จะได้นั้น  ขึ้นอยู่กับฝีมือการสอบเทียบระดับสัญญาน  ทั้งขณะระดับเพิ่มขึ้น  และระดับลดลง