- ส่วนประกอบที่ต้องการ:
- HC-SR04 อัลตราโซนิกเซนเซอร์:
- ESP8266 โมดูล Wi-Fi:
- แผนภาพวงจรและคำอธิบาย:
- คำอธิบายรหัส:
- "; if (ระยะห่าง <5) {หน้าเว็บ + =" ถังขยะเต็ม ";} else {หน้าเว็บ + =" ถังขยะว่างเปล่า ";} หน้าเว็บ + ="
- การทดสอบและผลลัพธ์ของโครงการ:
ใน DIY นี้เราจะสร้างระบบตรวจสอบถังขยะ / ถังขยะแบบ IOTซึ่งจะบอกเราว่าถังขยะว่างหรือเต็มผ่านเว็บเซิร์ฟเวอร์และคุณสามารถทราบสถานะของ 'ถังขยะ' หรือ 'ถังขยะ' ได้จาก ทุกที่ในโลกผ่านอินเทอร์เน็ต จะมีประโยชน์มากและสามารถติดตั้งในถังขยะในที่สาธารณะและที่บ้านได้
ในโครงการ IOT นี้ Ultrasonic Sensorใช้สำหรับตรวจจับว่าถังขยะเต็มไปด้วยขยะหรือไม่ ที่นี่ Ultrasonic Sensor ติดตั้งที่ด้านบนของถังขยะและจะวัดระยะห่างของขยะจากด้านบนของถังขยะและเราสามารถกำหนดค่าเกณฑ์ตามขนาดของถังขยะได้ หากระยะทางน้อยกว่าค่าเกณฑ์นี้หมายความว่าถังขยะเต็มไปด้วยขยะและเราจะพิมพ์ข้อความ "ตะกร้าเต็ม" บนหน้าเว็บและหากระยะทางมากกว่าค่าเกณฑ์นี้เราจะพิมพ์ ข้อความ“ ตะกร้าว่างเปล่า” ที่นี่เราได้กำหนดค่า Threshold 5 ซม. ในรหัสโปรแกรม เราจะใช้โมดูล Wi-Fi ESP8266สำหรับเชื่อมต่อ Arduino กับเว็บเซิร์ฟเวอร์ ที่นี่เราได้ใช้เว็บเซิร์ฟเวอร์ภายในเพื่อสาธิตการทำงานของระบบตรวจสอบขยะนี้
ส่วนประกอบที่ต้องการ:
- Arduino Uno (คุณสามารถใช้อื่น ๆ)
- โมดูล Wi-Fi ESP8266
- เซ็นเซอร์อัลตราโซนิก HC-SR04
- ตัวต้านทาน 1K
- เขียงหั่นขนม
- การเชื่อมต่อสายไฟ
HC-SR04 อัลตราโซนิกเซนเซอร์:
Ultrasonic Sensor ใช้ในการวัดระยะทางด้วยความแม่นยำสูงและการอ่านค่าที่เสถียร สามารถวัดระยะทางได้ตั้งแต่ 2 ซม. ถึง 400 ซม. หรือตั้งแต่ 1 นิ้วถึง 13 ฟุต มันจะปล่อยคลื่นอัลตร้าซาวด์ที่ความถี่ 40KHz ในอากาศและถ้าวัตถุเข้ามาขวางมันก็จะเด้งกลับไปที่เซ็นเซอร์ เมื่อใช้เวลาดังกล่าวในการชนวัตถุและกลับมาคุณสามารถคำนวณระยะทางได้
เซ็นเซอร์อัลตราโซนิกมีสี่ขา สองตัวคือ VCC และ GND ซึ่งจะเชื่อมต่อกับ 5V และ GND ของ Arduino ในขณะที่อีกสองพินคือหมุด Trig และ Echo ซึ่งจะเชื่อมต่อกับพินดิจิทัลใด ๆ ของ Arduino ขาทริกจะส่งสัญญาณและจะใช้ขา Echo เพื่อรับสัญญาณ ในการสร้างสัญญาณอัลตร้าซาวด์คุณจะต้องทำให้ Trig pin สูงประมาณ 10us ซึ่งจะส่งการระเบิดเสียง 8 รอบด้วยความเร็วเสียงและหลังจากกระทบวัตถุแล้วจะได้รับพิน Echo
ตรวจสอบโครงการเพิ่มเติมด้านล่างเพื่อทำความเข้าใจการทำงานของเซ็นเซอร์อัลตราโซนิกอย่างถูกต้องและเพื่อวัดระยะห่างของวัตถุใด ๆ ที่ใช้:
- การวัดระยะทางโดยใช้ Arduino โดยใช้เซ็นเซอร์อัลตราโซนิก
- การวัดระยะทางโดยใช้ไมโครคอนโทรลเลอร์ HC-SR04 และ AVR
ESP8266 โมดูล Wi-Fi:
ESP8266 เป็นโมดูล Wi-Fi ซึ่งจะช่วยให้โครงการของคุณสามารถเข้าถึง Wi-Fi หรืออินเทอร์เน็ตได้ เป็นอุปกรณ์ราคาถูกมาก แต่จะทำให้โครงการของคุณมีประสิทธิภาพมาก สามารถสื่อสารกับไมโครคอนโทรลเลอร์และทำให้โครงการไร้สาย อยู่ในรายชื่ออุปกรณ์ชั้นนำส่วนใหญ่ในแพลตฟอร์ม IOT มันทำงานที่ 3.3V และถ้าคุณให้ 5V มันจะได้รับความเสียหาย
ESP8266 มี 8 พิน; VCC และ CH-PD จะเชื่อมต่อกับ 3.3V เพื่อเปิดใช้งาน wifi หมุด TX และ RX จะรับผิดชอบการสื่อสารของ ESP8266 กับ Arduino ขา RX ทำงานบน 3.3V ดังนั้นคุณจะต้องสร้างตัวแบ่งแรงดันไฟฟ้าตามที่เราทำในโครงการของเรา
แผนภาพวงจรและคำอธิบาย:
ก่อนอื่นเราจะเชื่อมต่อ ESP8266 กับ Arduino ESP8266 ทำงานบน 3.3V และถ้าคุณให้ 5V จาก Arduino มันจะทำงานไม่ถูกต้องและอาจได้รับความเสียหาย เชื่อมต่อ VCC และ CH_PD กับขา 3.3V ของ Arduino RX pin ของ ESP8266 ทำงานบน 3.3V และจะไม่สื่อสารกับ Arduino เมื่อเราจะเชื่อมต่อโดยตรงกับ Arduino ดังนั้นเราจะต้องสร้างตัวแบ่งแรงดันสำหรับมัน ตัวต้านทาน 1k สามตัวที่เชื่อมต่อแบบอนุกรมจะทำงานให้เรา เชื่อมต่อ RX กับพิน 11 ของ Arduino ผ่านตัวต้านทานดังแสดงในรูปด้านล่างและ TX ของ Arduino กับพิน 10 ของ Arduino
ถึงเวลาเชื่อมต่อเซ็นเซอร์อัลตราโซนิก HC-SR04 กับ Arduino แล้ว การเชื่อมต่อเซ็นเซอร์อัลตราโซนิกกับ Arduino นั้นง่ายมาก เชื่อมต่อ VCC และกราวด์ของเซ็นเซอร์อัลตราโซนิกเข้ากับ 5V และกราวด์ของ Arduino จากนั้นเชื่อมต่อขา TRIG และ ECHO ของเซ็นเซอร์อัลตราโซนิกเข้ากับขา 8 และ 9 ของ Arduino ตามลำดับ
คำอธิบายรหัส:
ก่อนอัปโหลดรหัสตรวจสอบให้แน่ใจว่าคุณเชื่อมต่อกับ Wi-Fi ของอุปกรณ์ ESP8266 ของคุณ คุณสามารถตรวจสอบโค้ดแบบเต็มได้ในส่วนโค้ดด้านล่างโค้ดได้รับการอธิบายอย่างดีจากความคิดเห็นนอกจากนี้เรายังได้อธิบายฟังก์ชั่นที่สำคัญบางอย่างไว้ด้านล่าง
Arduino จะอ่าน Ultrasonic Sensor ก่อน มันจะส่งสัญญาณอัลตร้าโซนิคด้วยความเร็วเสียงเมื่อเราจะทำให้ขา TRIG สูงเป็นเวลา 10us สัญญาณความประสงค์กลับมาหลังจากที่โจมตีวัตถุและเราจะจัดเก็บระยะเวลาเวลาในการเดินทางในตัวแปรชื่อระยะเวลา แล้วเราจะคำนวณระยะทางของวัตถุ (ขยะในกรณีของเรา) โดยใช้สูตรและจะเก็บไว้ในตัวแปรชื่อระยะ
digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, สูง); delayMicroseconds (10); digitalWrite (trigPin, LOW); ระยะเวลา = pulseIn (echoPin, HIGH); ระยะทาง = ระยะเวลา * 0.034 / 2;
สำหรับการพิมพ์เอาท์พุทบนหน้าเว็บในเว็บเบราเซอร์ที่เราจะต้องใช้การเขียนโปรแกรม HTML ดังนั้นเราจึงสร้างสตริงชื่อ เว็บเพจ และเก็บผลลัพธ์ไว้ในนั้น ในการบอกว่าถังขยะว่างหรือไม่เราได้ใช้เงื่อนไขที่นั่น หากระยะห่างน้อยกว่า 5 ซม. จะแสดงข้อความ "ตะกร้าเต็ม" บนหน้าเว็บและหากระยะห่างมากกว่า 5 ซม. จะแสดงข้อความ "ตะกร้าว่าง" บนหน้าเว็บ
ถ้า (esp8266.available ()) {if (esp8266.find ("+ IPD,")) {ล่าช้า (1000); int connectionId = esp8266.read () - 48; หน้าเว็บสตริง = "
ระบบตรวจสอบขยะ IOT
"; หน้าเว็บ + =""; if (ระยะห่าง <5) {หน้าเว็บ + =" ถังขยะเต็ม ";} else {หน้าเว็บ + =" ถังขยะว่างเปล่า ";} หน้าเว็บ + ="
";รหัสต่อไปนี้จะส่งและแสดงข้อมูลบนหน้าเว็บ ข้อมูลที่เราเก็บไว้ในสตริงชื่อ 'หน้าเว็บ' จะถูกบันทึกไว้ในสตริงชื่อ'คำสั่ง' จากนั้น ESP8266 จะอ่านอักขระทีละตัวจาก 'คำสั่ง' และจะพิมพ์บนเว็บเพจ
String sendData (คำสั่ง String, const int timeout, boolean debug) {String response = ""; esp8266.print (คำสั่ง); เวลา int ยาว = มิลลิวินาที (); ในขณะที่ ((เวลา + หมดเวลา)> มิลลิวินาที ()) {while (esp8266.available ()) {ถ่าน c = esp8266.read (); การตอบสนอง + = c; }} if (debug) {Serial.print (ตอบกลับ); } การตอบกลับ; }
การทดสอบและผลลัพธ์ของโครงการ:
หลังจากอัปโหลดรหัสแล้วให้เปิด Serial Monitor และจะแสดงที่อยู่ IP ดังที่แสดงด้านล่าง
พิมพ์ที่อยู่ IP นี้ในเบราว์เซอร์ของคุณซึ่งจะแสดงผลลัพธ์ดังที่แสดงด้านล่าง คุณจะต้องรีเฟรชหน้าอีกครั้งหากต้องการดูอีกครั้งว่าถังขยะว่างเปล่าหรือไม่
ดังนั้นวิธีการทำงานของระบบตรวจสอบขยะโครงการนี้สามารถปรับปรุงเพิ่มเติมได้โดยการเพิ่มคุณสมบัติอีกสองสามอย่างในนั้นเช่นเราสามารถตั้งค่าอีกหนึ่งข้อความเมื่อถังขยะเต็มไปครึ่งหนึ่งหรือเราสามารถเรียกอีเมล / SMS เพื่อแจ้งเตือนผู้ใช้เมื่อถังขยะ ตะกร้าเต็ม