- วัสดุที่จำเป็น
- เซ็นเซอร์ฝน
- การทำงานของ Rain Sensor
- แผนภูมิวงจรรวม
- คำอธิบายรหัส
- การทำงานของระบบตรวจจับฝนที่ใช้ Arduino
ระบบตรวจจับฝนง่ายสามารถสร้างขึ้นได้อย่างง่ายดายโดยการเชื่อมต่อArduino กับฝนเซนเซอร์ เซ็นเซอร์จะตรวจจับปริมาณน้ำฝนที่ตกลงมาและบอร์ด Arduino จะรับรู้และสามารถดำเนินการตามที่ต้องการได้ ระบบเช่นนี้สามารถนำไปใช้ในด้านต่างๆเช่นเกษตรกรรมและสาขารถยนต์ สามารถใช้การตรวจจับปริมาณน้ำฝนเพื่อควบคุมกระบวนการชลประทานโดยอัตโนมัติ นอกจากนี้ข้อมูลปริมาณน้ำฝนต่อเนื่องสามารถช่วยให้เกษตรกรใช้ระบบอัจฉริยะนี้ในการรดน้ำพืชโดยอัตโนมัติเมื่อจำเป็นเท่านั้น ในทำนองเดียวกันที่ปัดน้ำฝนในภาครถยนต์ของรถยนต์สามารถทำได้โดยอัตโนมัติโดยใช้ระบบตรวจจับฝน และระบบ Home Automation ยังสามารถใช้การตรวจจับฝนเพื่อปิดหน้าต่างและปรับอุณหภูมิห้องโดยอัตโนมัติ ในการกวดวิชานี้เราจะสร้างพื้นฐานเซ็นเซอร์ฝนใช้ Arduino กับกริ่งจากนั้นคุณสามารถใช้การตั้งค่านี้เพื่อสร้างสิ่งที่คุณต้องการได้ นอกจากนี้โปรดทราบว่าโมดูลเซ็นเซอร์ปริมาณน้ำฝนเรียกอีกอย่างว่าเซ็นเซอร์น้ำฝนหรือเซ็นเซอร์มาตรวัดปริมาณน้ำฝนหรือเซ็นเซอร์วัดปริมาณน้ำฝนตามการใช้งาน แต่ทั้งหมดนี้อ้างถึงเซ็นเซอร์เดียวกันที่ใช้ในโครงการนี้และทั้งหมดทำงานบนหลักการเดียวกัน
นอกจากนี้เรายังได้สร้าง Rain Alarm และที่ปัดน้ำฝนอัตโนมัติโดยใช้ 555 Timer เท่านั้นคุณอาจต้องการตรวจสอบเช่นกันหากคุณไม่ต้องการใช้ Arduino ดังที่กล่าวไว้กลับไปที่โครงการนี้และเริ่มสร้างArduino Rain Gauge ของเรา
วัสดุที่จำเป็น
- Arduino UNO
- เซ็นเซอร์ฝน
- Buzzer
- เขียงหั่นขนม
- การเชื่อมต่อสายไฟ
เซ็นเซอร์ฝน
โมดูล Raindropsประกอบด้วยสองแผงคือฝนคณะกรรมการ บริษัท และคณะกรรมการควบคุม
กระดานฝนโมดูลประกอบด้วยสองแทร็ทองแดงการออกแบบในลักษณะดังกล่าวว่าภายใต้สภาวะที่แห้งที่พวกเขาให้ความต้านทานสูงต่อแรงดันและแรงดันเอาท์พุทของโมดูลนี้จะ 5V ความต้านทานของโมดูลนี้จะค่อยๆลดลงตามการเพิ่มขึ้นของความเปียกบนกระดาน เมื่อความต้านทานลดลงแรงดันไฟฟ้าขาออกก็จะลดลงตามความเปียกชื้นของโมดูลโมดูลกระดานฝนประกอบด้วยสองขาที่ใช้ในการเชื่อมต่อไปยังคณะกรรมการควบคุมที่แสดงด้านล่าง
คณะกรรมการควบคุมโมดูลควบคุมไวและแปรรูปผลผลิตอนาล็อกสัญญาณดิจิตอลหากค่าอนาล็อกต่ำกว่าค่าเกณฑ์ของแผงควบคุมเอาต์พุตจะเป็นแบบดิจิทัลต่ำและหากค่าอนาล็อกสูงกว่าค่าเกณฑ์เอาต์พุตจะเป็นแบบดิจิทัลสูง สำหรับการเปรียบเทียบนี้และการแปลงเป็น LM393 OP-Amp เปรียบเทียบถูกนำมาใช้ ตัวเปรียบเทียบ Op-Amp เป็นวงจรที่น่าสนใจที่สามารถใช้เปรียบเทียบค่าแรงดันไฟฟ้าสองค่าที่แตกต่างกันเราได้ใช้ในวงจรนี้แล้วในหลายโครงการเช่น Smart Electronic Candle, Laser Security Alarm, Line Follower Robot และอื่น ๆ อีกมากมาย
ชุดควบคุมฝนซึ่งจะแสดงด้านล่างประกอบด้วย 4 ขาในการเชื่อมต่อ Arduino คือ VCC, GND, D0, A0 และสองขามากขึ้นในการเชื่อมต่อโมดูลกระดานฝน โดยสรุปโมดูลบอร์ดฝนจะตรวจจับน้ำฝนและโมดูลบอร์ดควบคุมใช้เพื่อควบคุมความไวและเปรียบเทียบและแปลงค่าอนาล็อกเป็นค่าดิจิทัล
การทำงานของ Rain Sensor
การทำงานของโมดูลเซ็นเซอร์วัดปริมาณน้ำฝนนั้นเข้าใจง่าย ในช่วงวันที่มีแดดจัดเนื่องจากความแห้งของโมดูลบอร์ดกันฝนจึงมีความต้านทานต่อแรงดันไฟฟ้าสูง แรงดันไฟฟ้านี้ปรากฏที่ขาเอาต์พุตของโมดูลเรนบอร์ดเป็น 5V 5V นี้อ่านเป็น 1023 หากอ่านด้วยพินอนาล็อกของ Arduino ในช่วงฝนตกน้ำฝนจะทำให้ความเปียกบนกระดานฝนเพิ่มขึ้นซึ่งจะส่งผลให้ความต้านทานที่เสนอสำหรับอุปทานลดลง เมื่อความต้านทานลดลงเรื่อย ๆ แรงดันขาออกจะเริ่มลดลง
เมื่อเรนบอร์ดเปียกเต็มที่และความต้านทานที่เสนอให้ต่ำสุดแรงดันเอาต์พุตจะต่ำที่สุด (ประมาณ 0) 0V นี้อ่านเป็นค่า 0 หากอ่านโดยพินอนาล็อกของ Arduino หากโมดูลเรนบอร์ดเปียกบางส่วนเอาต์พุตของโมดูลเรนบอร์ดนี้จะเป็นไปตามความต้านทานที่มีให้ หากต้านทานที่นำเสนอโดยคณะกรรมการโมดูลฝนอยู่ในลักษณะที่ส่งออกเป็น 3V ที่คุ้มค่าอนาล็อกอ่านจะเป็น 613 สูตรเพื่อหา ADC จะได้รับโดยADC = (ค่าไฟฟ้า X อะนาล็อก 1023) / 5 ด้วยการใช้สูตรนี้คุณสามารถแปลงแรงดันอนาล็อกเป็นค่าการอ่านอะนาล็อกของ t Arduino
แผนภูมิวงจรรวม
แผนภาพวงจรด้านล่างแสดงการเชื่อมต่อวงจรสำหรับRain Drop Sensor กับ Arduinoการออกแบบทำโดยใช้โปรตีอุสโมดูลทางกายภาพจะคล้ายกับโมดูลที่แสดงในแผนภาพวงจร
โมดูลมาตรวัดปริมาณน้ำฝนซึ่งแสดงในแผนภาพวงจรเชื่อมต่อกับแผงควบคุม พิน VCC ของบอร์ดควบคุมเชื่อมต่อกับแหล่งจ่ายไฟ 5V ขากราวด์เชื่อมต่อกับกราวด์ หากจำเป็นพิน D0 จะเชื่อมต่อกับพินดิจิทัลใด ๆ ของ Arduino และต้องประกาศพินนั้นเป็นพินเอาต์พุตในโปรแกรม ปัญหาที่เราเผชิญกับขา D0 คือเราไม่สามารถรับค่าที่แน่นอนของแรงดันขาออกได้ หากเอาต์พุตเกินขีด จำกัด แรงดันไฟฟ้าโมดูลควบคุมจะสามารถรับรู้การเปลี่ยนแปลงของเอาต์พุตได้ เราจำเป็นต้องใช้งานกริ่งแม้ว่าแรงดันไฟฟ้าขาออกในโมดูลเรนบอร์ดจะเปลี่ยนแปลงไปมากก็ตาม เนื่องจากเหตุผลเหล่านี้พิน A0 จึงเชื่อมต่อกับพินอนาล็อกของ Arduino ซึ่งทำให้การตรวจสอบการเปลี่ยนแปลงของเอาต์พุตทำได้ง่าย กริ่งซึ่งใช้เป็นสัญญาณให้กับผู้ใช้สามารถเชื่อมต่อกับพินดิจิทัลของ Arduino ได้ หากออดต้องการมากกว่า 5V ให้ลองเชื่อมต่อวงจรรีเลย์หรือทรานซิสเตอร์แล้วเชื่อมต่อโหลดเข้ากับมัน
คำอธิบายรหัส
รหัส Arduino สำหรับเซ็นเซอร์ฝนถูกเขียนโดยใช้ Arduino IDE รหัสที่สมบูรณ์สำหรับโครงการนี้มีให้ที่ส่วนท้ายของหน้า
# กำหนดปริมาณน้ำฝน A0 # กำหนดกริ่ง 5 ค่า int; ชุด int = 10;
การกำหนดพิน A0 เป็นปริมาณน้ำฝนและพิน 5 เป็นออดและประกาศตัวแปร "ค่า" และ "กำหนด" เป็นจำนวนเต็มและกำหนดค่าชุดตัวแปรเป็น 10 ค่านี้สามารถเปลี่ยนแปลงได้ตามระดับการทำงานที่ต้องการ หากคุณต้องการให้เสียงกริ่งเปิดใช้งานแม้ว่าฝนจะตกเล็กน้อยให้ตั้งค่าเป็นค่าต่ำสุด
การตั้งค่าเป็นโมฆะ () {Serial.begin (9600); pinMode (เสียงกริ่งเอาท์พุท); PinMode (ปริมาณน้ำฝน INPUT); }
การเริ่มต้นการสื่อสารแบบอนุกรมและการตั้งค่าเสียงกริ่ง การตั้งค่าพินปริมาณน้ำฝนเป็นพินเอาต์พุตและพินอินพุต
โมฆะ loop () {value = analogRead (ปริมาณน้ำฝน); Serial.println (ค่า); ค่า = แผนที่ (ค่า 0,1023,225,0);
ฟังก์ชัน analogRead อ่านค่าของเซ็นเซอร์วัดปริมาณน้ำฝน แผนที่ฟังก์ชันจะจับคู่ค่าของเซ็นเซอร์วัดปริมาณน้ำฝนจากขาออกและกำหนดค่าให้กับตัวแปรตั้งแต่ 0 ถึง 225
ถ้า (ค่า> = ชุด) {Serial.println ("ตรวจพบฝน"); digitalWrite (กริ่งสูง);
หากค่าเซ็นเซอร์การอ่านมากกว่าค่าที่ตั้งไว้โปรแกรมจะเข้าสู่ลูปพิมพ์ข้อความบนมอนิเตอร์แบบอนุกรมและเปิดเสียงกริ่ง
อื่น ๆ {digitalWrite (buzzer, LOW);
โปรแกรมเข้าสู่ฟังก์ชั่นอื่นเมื่อค่าน้อยกว่าค่าที่ตั้งไว้เท่านั้น ฟังก์ชันนี้จะปิดเสียงกริ่งเมื่อค่าที่ตั้งไว้สูงกว่าค่าของเซ็นเซอร์ซึ่งจะบอกว่าไม่มีฝนตก
การทำงานของระบบตรวจจับฝนที่ใช้ Arduino
ระบบนี้ทำงานในลักษณะที่เมื่อมีฝนตกน้ำฝนจะทำหน้าที่เป็นตัวกระตุ้นซึ่งจะเปิดเสียงกริ่ง ในรหัส Arduino Rain Drop Sensorเรากำหนดว่าพิน 5 และ A0 เป็นสัญญาณเตือนและปริมาณน้ำฝน ด้วยการทำเช่นนี้เราสามารถเปลี่ยนพินในส่วนที่กำหนดไว้ของฟังก์ชันและส่วนที่เหลือของโค้ดจะไม่ถูกแตะต้อง วิธีนี้จะทำให้โปรแกรมเมอร์แก้ไขหมุดได้ง่าย
ใน void loop คำสั่ง analogRead จะอ่านค่าจากเซนเซอร์ ในบรรทัดถัดไปคำสั่ง Serial.println (value) จะ พิมพ์ค่าบนมอนิเตอร์แบบอนุกรม สิ่งนี้จะเป็นประโยชน์ในขณะที่แก้ไขข้อบกพร่อง ฟังก์ชันแผนที่จะแมปค่าขาเข้าระหว่าง 0-225 รูปแบบฟังก์ชันสำหรับ แผนที่ คือแผนที่ (ค่า, ค่าต่ำสุด, ค่าสูงสุด, ค่าที่จะแมปสำหรับค่าต่ำสุด, ค่าที่จะแมปสำหรับค่าสูงสุด) เสียงกริ่งจะเปิดหรือปิดขึ้นอยู่กับค่าที่ตั้งไว้และเอาต์พุตของเซ็นเซอร์ ค่านี้จะถูกเปรียบเทียบในฟังก์ชัน if กับค่าที่ตั้งไว้ หากค่ามากกว่าค่าที่ตั้งไว้ก็จะเปิดเสียงกริ่ง หากค่าน้อยกว่าค่าที่ตั้งไว้เสียงกริ่งจะปิด
การทำงานทั้งหมดสามารถพบได้ในวิดีโอที่เชื่อมโยงด้านล่าง นี่เป็นแอปพลิเคชั่นหนึ่งในหลาย ๆ หลักการเดียวกันนี้จะเห็นได้ในที่ปัดน้ำฝนระบบอัตโนมัติในบ้านอื่น ๆ ภาคการเกษตร ฯลฯ หวังว่าคุณจะเข้าใจโครงการและสนุกกับการสร้างสิ่งที่เป็นประโยชน์ หากคุณมีคำถามใด ๆ โปรดใช้ส่วนความคิดเห็นด้านล่างหรือใช้ฟอรัมของเราสำหรับคำถามทางเทคนิคอื่น ๆ