Weather Station วัดฝน ด้วย ESP8266 & Arduino Nano
ตามที่เคยกล่าวไว้เรื่องการทดลองสร้าง เครื่องวัดฝนอย่างง่าย ด้วยการแปลงจากเครื่องวัด Rain Drop sensor
Feature ที่ต้องการ
- วัดค่าอุณหภูมิและความชื้นอากาศ ด้วย AM2302 วัดผ่าน Arduino Nano
- วัดปริมาณฝนสะสม
- วัดความชื้นของดิน
- สั่งการปิดเปิด Solenoid วาล์วน้ำ 12 Vdc
- ใช้ Solar Cell และแบตเตอรี่สำรอง เป็นแหล่งจ่าย
อุปกรณ์ที่ต้องใช้
- ESP8266
- Arduino Nano 1 ตัว
- วงจรแปลงสัญญาณของ Rain drop sensor
- AM2302
- Solar Cell และ แบตเตอรี่
- ตุ้ควบคุม
- กระบอกวัดน้ำฝน เส้นผ่าศูนย์กลาง 7.5 cm (แก้วกาแฟพลาสติดอย่างหนา)
- แท่งสแตนเลสตัวนำ
ตู้ควบคุม มี Solar Charger แบตเตอรี่ และปลั๊กไฟ สำหรับใช้ service บอร์ด ในรูปเป็น ESP32 Heltec ก่อนการต่อสัญญาณแบบ I2C
Solenoid valve 12 Vdc เพิ่งมาถึงยังไม่ได้ต่อท่อน้ำ
แปลงทดสอบ เป็นสวนครัวแบบผวม และต้นชะมวง 3 ต้น
ประกอบวงจรตามรูป
สำหรับ โปรแกรมของ ESP8266 และ Arduino Nano จะใช้แนวทางจาก บทความที่แล้ว ที่เป็นการสื่อสาร Serial ที่พบว่าง่ายกว่าการใช้ I2C เป็นอย่างมาก
ในการเขียนโปแกรมแปลงค่าระดับน้ำกับสัญญาณการวัด พบว่าจะต้องทำการสร้างตารางเปรียบเทียบสัญญาณ โดยผลของกระบอกทรงกรวยและคุณสมบัติของน้ำ ทำให้ได้กราฟความสัมพันธ์ที่ไม่เป็นเชิงเส้น จึงต้องแบ่งสมการเป็น 3 ช่วง ตามตัวอย่างแนบ และให้ผลการวัดที่น่าพอใจ
ปัญหาที่พบหลังจากการทดสอบ คือ ค่าระดับของการวัดจะค่อยๆ ลดลง ตามค่าความนำที่ลดลงตามความแห้งของผิวกระบอก ซึ่งมีแนวทางแก้ไขได้จากการทดลองเปลี่ยนลวดตัวนำเป็นแผ่นสแตนเลสหน้ากว้างขึ้น (จะทำการทดลองในภายหลัง)
ตารางด้านซ้าย เป็นการตรวจสอบสัญญาณ 0-1023 จาก A0 เมื่อระดับน้ำอยู่ที่จุดต่างๆ ตั้งแต่ 0 ถึง 200 mm โดยพบว่าแต่ละช่วงจะมีความสัมพันธ์ด้วยสมการต่างกัน นั่นเป็นเพราะ คุณสมบัติของน้ำ ลักษณะของถ้วย แท่งตัวนำ ที่จะให้ผลรวมที่ระดับต่างๆ ด้วยความสัมพันธ์ต่างกัน
หากใช้ทรงกระบอกตรง เส้นผ่านศูนย์กลางโตกว่า ก็จะได้สมการที่ต่างกันเช่นกัน
การทดลองนี้จึงเป็นแนวทางหนึ่ง
โดยความแม่นยำที่จะได้นั้น ขึ้นอยู่กับฝีมือการสอบเทียบระดับสัญญาน ทั้งขณะระดับเพิ่มขึ้น และระดับลดลง