วันอังคารที่ 18 กันยายน พ.ศ. 2561

Arduino Sensor Example เซนเซอร์ตรวจจับ น้ำฝน/ความชื้น

Arduino Sensor Example เซนเซอร์ตรวจจับ น้ำฝน/ความชื้น


Rain/Water Detection Sensor
เซนเซอร์ตรวจจับ น้ำฝน/ความชื้น
สวัสดี FC ทุกๆท่านนะครับ  .......วันนี้เรามา "พับกบ" เอ้ยยย!!! "พบกับ" เอ้ยย .....ถูกแล้ว "เซนเซอร์ตรวจจับ น้ำฝน/ความชื้น กันนะหมู่เฮา" 
โดยเซนเซอร์ตัวนี้จะมีความสามารถในการครวจจับน้ำและความชื้น จากนั้นจะเปลี่ยนเป็นสัญญาณทางไฟฟ้าให้กับ Arduino เรารู้แค่นี้พอ เพราะความสามารถและสเปคลึกๆก็คงหาได้ทั่วๆไป (กดตรงนี้ก็มีนะ>> Rain/Water Detection Sensor) .....อ่าววว!!! แล้วบทความนี้จะเขียนเพื่อ ?? ....ในบทความนี้เราจะมา ทดสอบ อธิบายโค๊ดโปรแกรม และแนะแนวการต่อยอดว่าจะเอาไปทำอะไรได้บ้างกันนะครับ อุปกรณ์ที่จำเป็นต้องใช้ มีดังนี้1. บอร์ด Arduino Uno R3 หรือ Arduino Mega 2560 R3 (สาย USB ด้วยนะอย่าลืม)3.  สายจั๊ม ผู้-เมีย4. Rain/Water Detection Sensor เซนเซอร์ตรวจจับ น้ำฝน/ความชื้น

วิธีเชื่อมต่ออุปกรณ์
ทำการเชื่อมต่อ Rain/Water Detection Sensor เข้ากับ Control Board โดยที่สามารถต่อสายฝั่งไหนก็ได้ไม่มีขั่ว จากนั้นต่อขา VCC ของ Control Board เข้ากับ 5V และขา GND ของ Control Board เข้ากับขา GND บนบอร์ด Arduino จากนั้นต่อขา D0 เข้าที่ขา A0 ของ Arduino ตามรูป
Control BoardArduino
A0>>A0
GND>>GND
VCC>>5V


หลักการทำงาน
เมื่อหน้าสำผัสของ Rain/Water Detection Sensor ได้รับความชื้นหรือน้ำ จะทำให้ตัวเซนเซอร์นำไฟฟ้า กระแสจะไหลจาก Control Board ผ่าน Rain/Water Detection Sensor กลับมายัง 
Control Board จากนั้นตัว Control Board จะส่งค่าที่รับได้กลับมายัง Arduino

โค๊ดโปรแกรม/*
 * Coding By : Arduinos Pro
 * Sample Coding : Rain/Water Detection Sensor
*/
int sensor_Pin = A0;  //สร้างตัวแปรชื่อ sensor_Pin ชนิด int เพื่อเก็บ A0 (ตำแหน่งของขารับสัญญาณ)
void setup() {
  Serial.begin(9600);  //กำหนดช่องความถี่ในการเชื่อมต่อกับ Serial เพื่อดูค่าต่างๆที่รับได้

}
void loop() {
  int sensor_Value = analogRead(sensor_Pin);  //สร้างตัวแปรชื่อ sensor_Value ชนิด int เพื่อเก็บค่า analog ที่ได้จาก sensor_Pin
  Serial.print("Rain/Water Detection Sensor Value = ");  //แสดงค่าออกทาง Serial Monitor ว่า "Rain/Water Detection Sensor Value = "
  Serial.println(sensor_Value);  //แสดงค่าที่รับได้จากเซนเซอร์ออกทาง Serial Monitor จากนั้นขึ้นบรรทัดใหม่ (println)
  delay(500);  //หน่วงเวลา 500 มิลลิวินาที

}
การทดลอง
โปรแกรมจะรับค่าจากเซ็นเซอร์วัดน้ำฝน/ความชื้น เข้ามาในแบบอนาล็อกผ่านพอร์ต A0 จากนั้นจะทำการแสดงผลออกทาง Serial Monitor (ค่าอนาล็อกอยู่ในช่วง 0-1023) คอนเซปมีอยู่เท่านี้ เอาหล่ะ!! ไปดูผลการทดลองกันครับการทดลองที่ 1 เซ็นเซอร์แห้ง ไม่ได้สัมผัสน้ำหรือความชื้นใดๆ เซ็นเซอร์สามารถรับค่าได้ประมาณ 1021 ถึง 1023 ....ซึ่งถือว่าไม่เลวเลยนะครับ (หืมมมม..... ออกตัวค่อนข้างดี)
การทดลองที่ 2 ทดสอบด้วยการเติมน้ำให้ท่วมเซ็นเซอร์ประมาณ 1 ใน 3 ผลปรากฏว่าค่าที่ได้อยู่ในช่วง 29-30 การทดลองที่ 3 ทดสอบด้วยการเติมน้ำให้ท่วมเซ็นเซอร์ประมาณ 2 ใน 3  ผลปรากฏว่าค่าที่ได้อยู่ในช่วง 29 ถึง 30
การทดลองที่ 4 ทดสอบด้วยการเติมน้ำให้ท่วมพื้นที่เซ็นเซอร์ทั้งหมด ผลปรากฏว่าค่าที่ได้อยู่ในช่วง 29 ถึง 30
การทดลองที่ 5  ทดสอบด้วยการหยดน้ำลงบนเซ็นเซอร์จำนวน 2 หยดเพื่อจำลองการฝนตก ผลปรากฏว่าค่าที่ได้อยู่ในช่วง 29 ถึง 30 เริ่มเห็นภาพกันแล้วใช่ไหมครับ ...เอาละมาฟังบทสรุปกัน

สรุป
จะเห็นว่าตัวเซ็นเซอร์ตรวจจับน้ำฝน/ความชื้น มีความไวต่อการรับรู้และตอบสนองความชื้นและน้ำเป็นอย่างมากเหมาะสำหรับนำไปใช้ในการตรวจจับน้ำฝน ยกตัวอย่างเช่น นำไปตรวจจับน้ำฝนสำหรับ โปรเจ็คราวตากผ้าอัตโนมัติ (ไว้จะสอนทำกันนะครับ) หรืออื่นๆ ซึ่งก็แล้วแต่การนำไปประยุกต์ใช้ และสามารถนำไปประยุกต์ใช้ในการตรวจจับน้ำในรูปแบบคนอื่นเช่นกัน เช่น ตรวจจับน้ำรั่วซึมจากท่อ แต่ไม่สามารถนำไปใช้ในการตรวจจับปริมาณของน้ำในภาชนะได้ เนื่องจากตัวเซ็นเซอร์มีความไวต่อการรับรู้ทุกตำแหน่งของพื้นที่บนเซ็นเซอร์ พูดภาษาบ้านๆตามการทดลองเลย ก็คือน้ำแต่นิดเดียวก็ได้ค่า 29 ถึง 31 อะครับหมู่เฮา
x




ไม่มีความคิดเห็น:

แสดงความคิดเห็น

งานที่ 5

การบริหารงานคุณภาพเทคโนโลยีและสารสนเทศคือ   ISO 9001-2000  ในด้านคุณภาพการผลิตและบริการ ซึ่งเป็นมาตราฐานสากลที่องค์กรธุรกิจทั่วโลกให้คว...