วิธีสร้างถังขยะอัจฉริยะโดยใช้ Arduino

โลกกำลังเคลื่อนไปอย่างรวดเร็วและเทคโนโลยีก็กำลังเคลื่อนที่ไปพร้อมกับมันในด้านอิเล็กทรอนิกส์ ทุกอย่างในยุคนี้กำลังเริ่มฉลาดขึ้น ทำไมเราไม่ทำให้ถังขยะฉลาด เป็นปัญหาทั่วไปที่พบได้ในสภาพแวดล้อมของเราที่ถังขยะส่วนใหญ่ถูกปิดจากด้านบน ผู้คนรู้สึกอึดอัดที่จะสัมผัสฝาและเปิดฝาเพื่อให้เกิดผื่นขึ้น เราสามารถแก้ปัญหานี้ให้กับบางคนได้ด้วยการทำให้ฝาถังขยะเป็นแบบอัตโนมัติ

สามารถรวม Arduino และเซ็นเซอร์อัลตราโซนิกพร้อมกับเซอร์โวมอเตอร์เพื่อสร้างถังขยะอัจฉริยะ หากถังขยะตรวจพบขยะที่อยู่ด้านหน้า ถังขยะจะเปิดฝาโดยอัตโนมัติและจะปิดฝาหลังจากผ่านไปครู่หนึ่ง

จะเปิดและปิดฝาถังขยะอัตโนมัติโดยใช้ Arduino ได้อย่างไร

เมื่อเราทราบบทคัดย่อของโครงการแล้ว ให้เราก้าวไปข้างหน้าและเริ่มรวบรวมข้อมูลเพิ่มเติมเกี่ยวกับส่วนประกอบ การทำงาน และแผนภาพวงจรเพื่อเริ่มทำงานในโครงการทันที

ขั้นตอนที่ 1: รวบรวมส่วนประกอบ

หากคุณต้องการหลีกเลี่ยงความไม่สะดวกในระหว่างโครงการใดๆ วิธีที่ดีที่สุดคือการจัดทำรายการส่วนประกอบทั้งหมดที่เราจะใช้ ขั้นตอนที่สอง ก่อนเริ่มสร้างวงจร จะต้องศึกษาส่วนประกอบทั้งหมดเหล่านี้โดยสังเขป รายการส่วนประกอบทั้งหมดที่เราต้องการในโครงการนี้มีให้ด้านล่าง

ขั้นตอนที่ 2: การศึกษาส่วนประกอบ

ตอนนี้ เนื่องจากเรามีรายการส่วนประกอบทั้งหมดแล้ว ให้เราก้าวไปข้างหน้าหนึ่งก้าวและศึกษาการทำงานโดยย่อของส่วนประกอบทุกชิ้น

Arduino นาโน เป็นบอร์ดไมโครคอนโทรลเลอร์ที่เป็นมิตรกับเขียงหั่นขนมซึ่งใช้ในการควบคุมหรือดำเนินงานต่าง ๆ ในวงจร เราเผา รหัส C บน Arduino Nano เพื่อบอกบอร์ดไมโครคอนโทรลเลอร์ว่าต้องดำเนินการอย่างไรและอย่างไร Arduino Nano มีฟังก์ชันการทำงานเหมือนกับ Arduino Uno ทุกประการ แต่มีขนาดค่อนข้างเล็ก ไมโครคอนโทรลเลอร์บนบอร์ด Arduino Nano คือ ATmega328p.หากคุณไม่มี Arduino Nano คุณสามารถใช้ Arduino Uno หรือ Arduino Maga ได้

บอร์ด HC-SR04 เป็นเซ็นเซอร์อัลตราโซนิกที่ใช้ในการกำหนดระยะห่างระหว่างวัตถุสองชิ้น ประกอบด้วยเครื่องส่งและเครื่องรับ เครื่องส่งแปลงสัญญาณไฟฟ้าเป็นสัญญาณอัลตราโซนิกและเครื่องรับแปลงสัญญาณอัลตราโซนิกกลับไปเป็นสัญญาณไฟฟ้า เมื่อเครื่องส่งสัญญาณส่งคลื่นอัลตราโซนิกจะสะท้อนกลับหลังจากชนกับวัตถุบางอย่าง ระยะทางคำนวณโดยใช้เวลาที่สัญญาณอุลตร้าโซนิคใช้ในการไปจากเครื่องส่งและกลับมาที่เครื่องรับ

อา เซอร์โวมอเตอร์เป็นโรตารี่หรือแอคชูเอเตอร์เชิงเส้นซึ่งสามารถควบคุมและเคลื่อนย้ายได้ในระดับที่เพิ่มขึ้นแน่นอน มอเตอร์เหล่านี้แตกต่างจากมอเตอร์กระแสตรง มอเตอร์เหล่านี้ช่วยให้สามารถควบคุมการเคลื่อนที่เชิงมุมหรือแบบหมุนได้อย่างแม่นยำ มอเตอร์นี้เชื่อมต่อกับเซ็นเซอร์ซึ่งกำลังส่งข้อเสนอแนะเกี่ยวกับการเคลื่อนไหว

ขั้นตอนที่ 3: ทำความเข้าใจกับการทำงาน

เรากำลังสร้างถังขยะที่ฝาจะเปิดและปิดโดยอัตโนมัติและไม่จำเป็นต้องสัมผัสร่างกาย เราก็จะต้องเอาขยะไปทิ้งหน้าถังขยะ เซ็นเซอร์อัลตราโซนิกจะตรวจจับถังขยะโดยอัตโนมัติและจะเปิดฝาโดยใช้เซอร์โวมอเตอร์ เมื่อเปิดฝา เราจะทิ้งขยะลงถังขยะ และเมื่อเสร็จแล้ว ฝาจะปิดโดยอัตโนมัติหลังจากหน่วงเวลาไม่กี่วินาที นี่คือหลักการทำงานที่เรียบง่ายเบื้องหลังโครงการนี้

ขั้นตอนที่ 4: การประกอบส่วนประกอบ

  1. ติดเขียงหั่นขนมที่ด้านข้างของถังขยะ ใส่บอร์ด Arduino Nano เข้าไป
  2. ติดเซ็นเซอร์อัลตราโซนิกที่ด้านหน้าของถัง เซ็นเซอร์ควรหันขึ้นเล็กน้อยโดยมีมุมยกเล็กน้อย
  3. นำเซอร์โวมอเตอร์และติดเซอร์โวอาร์มเข้าไป ติดเซอร์โวมอเตอร์ที่ข้อต่อของถังและฝาโดยใช้กาวร้อน
  4. ตอนนี้ทำการเชื่อมต่อทั้งหมดผ่านสายเชื่อมต่อ เชื่อมต่อ Vin และกราวด์ของมอเตอร์และเซ็นเซอร์อัลตราโซนิกกับ 5V และกราวด์ของ Arduino เชื่อมต่อทริกเกอร์พินของเซ็นเซอร์กับพิน2 และพินเอคโค่กับพิน3 ของ Arduino เชื่อมต่อพิน PWM ของเซอร์โวมอเตอร์กับพิน 5 ของ Arduino
  5. เมื่อทำการเชื่อมต่อทั้งหมดของวงจรแล้ว ควรมีลักษณะดังนี้:

ขั้นตอนที่ 5: เริ่มต้นใช้งาน Arduino

หากคุณไม่คุ้นเคยกับ Arduino IDE อยู่แล้ว ไม่ต้องกังวลเพราะขั้นตอนโดยขั้นตอนในการตั้งค่าและใช้งาน Arduino IDE กับบอร์ดไมโครคอนโทรลเลอร์ได้อธิบายไว้ด้านล่าง

  1. ดาวน์โหลด Arduino IDE เวอร์ชันล่าสุดจาก Arduino
  2. เชื่อมต่อบอร์ด Arduino Nano กับแล็ปท็อปและเปิดแผงควบคุม ในแผงควบคุม ให้คลิกที่ฮาร์ดแวร์และเสียง. ตอนนี้คลิกที่อุปกรณ์และเครื่องพิมพ์ที่นี่ ค้นหาพอร์ตที่บอร์ดไมโครคอนโทรลเลอร์ของคุณเชื่อมต่ออยู่ ในกรณีของฉันมันคือ COM14แต่มันแตกต่างกันในคอมพิวเตอร์แต่ละเครื่อง
  3. คลิกที่เมนูเครื่องมือ และตั้งค่าบอร์ดเป็น Arduino นาโน จากเมนูแบบเลื่อนลง
  4. ในเมนูเครื่องมือเดียวกัน ให้ตั้งค่าพอร์ตเป็นหมายเลขพอร์ตที่คุณสังเกตเห็นก่อนหน้านี้ใน in อุปกรณ์และเครื่องพิมพ์.
  5. ในเมนูเครื่องมือเดียวกัน ให้ตั้งค่าตัวประมวลผลเป็น ATmega328P (บูตโหลดเดอร์รุ่นเก่า)
  6. ในการเขียนโค้ดเพื่อใช้งานเซอร์โวมอเตอร์ เราจำเป็นต้องมีไลบรารีพิเศษที่จะช่วยให้เราเขียนฟังก์ชันต่างๆ สำหรับเซอร์โวมอเตอร์ได้ ไลบรารีนี้แนบมาพร้อมกับรหัสในลิงค์ด้านล่าง หากต้องการรวมห้องสมุด ให้คลิกที่ ร่าง > รวมไลบรารี > เพิ่ม ZIP ห้องสมุด.
  7. ดาวน์โหลดโค้ดที่แนบด้านล่างและวางลงใน Arduino IDE ของคุณ คลิกที่ ที่อัพโหลด ปุ่มเพื่อเบิร์นโค้ดบนบอร์ดไมโครคอนโทรลเลอร์ของคุณ

หากต้องการดาวน์โหลดโค้ด คลิกที่นี่

ขั้นตอนที่ 6: ทำความเข้าใจรหัส

รหัสมีความคิดเห็นค่อนข้างดี แต่ก็ยังอธิบายสั้น ๆ ด้านล่าง

1. ในตอนเริ่มต้น มีการรวมไลบรารีเพื่อให้เราสามารถใช้ฟังก์ชันในตัวเพื่อควบคุมเซอร์โวมอเตอร์ได้ พินสองพินของบอร์ด Arduino Nano ยังถูกเตรียมใช้งานเพื่อให้สามารถใช้สำหรับทริกเกอร์และพินสะท้อนของเซ็นเซอร์อัลตราโซนิก วัตถุถูกสร้างขึ้นเพื่อให้สามารถใช้เพื่อตั้งค่าสำหรับเซอร์โวมอเตอร์ มีการประกาศตัวแปรสองตัวแปรเพื่อให้สามารถบันทึกค่าของระยะทางและเวลาของสัญญาณอัลตราโซนิกแล้วใช้ในสูตร

#รวม       // รวมไลบรารีสำหรับเซอร์โวมอเตอร์ เซอร์โวเซอร์โว; // ประกาศวัตถุสำหรับเซอร์โวมอเตอร์ int const trigPin = 2; // เชื่อมต่อ pin2 ของ arduino กับ trig ของเซ็นเซอร์อัลตราโซนิก int const echoPin = 3; // เชื่อมต่อ pin3 ของ Arduino พร้อมเสียงสะท้อนของระยะเวลา int ของเซ็นเซอร์อัลตราโซนิก, ระยะทาง; // ประกาศตัวแปรเพื่อเก็บระยะทางและประเภทของสัญญาณอัลตราโซนิก

2. การตั้งค่าเป็นโมฆะ ()เป็นฟังก์ชั่นที่เราเริ่มต้นพินของบอร์ด Arduino เพื่อใช้เป็น INPUT หรือ OUTPUT พินทริกเกอร์จะถูกใช้เป็นเอาต์พุตและพินสะท้อนจะถูกใช้เป็นอินพุต เราใช้วัตถุ เซอร์โวเพื่อต่อมอเตอร์เข้ากับขา 5 ของ Arduino nano สามารถใช้ Pin5 เพื่อส่งสัญญาณ PWM ได้ อัตราบอดถูกกำหนดในฟังก์ชันนี้ด้วย อัตราบอดคือความเร็วบิตต่อวินาทีที่ไมโครคอนโทรลเลอร์สื่อสารกับอุปกรณ์ภายนอก

การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); // การตั้งค่าอัตราบอดของไมโครคอนโทรลเลอร์ pinMode(trigPin, OUTPUT); // trig pin จะถูกใช้เป็น output pinMode(echoPin, INPUT); // echo pin จะถูกใช้เป็นอินพุต servo.attach(5); // เชื่อมต่อเซอร์โวมอเตอร์เข้ากับ pin5 ของ arduino}

3. วงเป็นโมฆะ ()เป็นฟังก์ชันที่ทำงานซ้ำแล้วซ้ำอีกในลูป ในลูปนี้ คลื่นอัลตราโซนิกจะถูกส่งไปรอบ ๆ และรับกลับ ระยะทางที่ครอบคลุมวัดโดยใช้เวลาที่สัญญาณปล่อยออกจากเซ็นเซอร์แล้วกลับมาที่เดิม จากนั้นเงื่อนไขจะถูกนำไปใช้กับระยะทางตามลำดับ

วงเป็นโมฆะ () { digitalWrite (trigPin, สูง); // ส่งสัญญาณอัลตราโซนิกในความล่าช้าโดยรอบ (1); digitalWrite (trigPin, LOW); // วัดอินพุทพัลส์ในระยะเวลาของพินเอคโค่ = pulseIn(echoPin, HIGH); // Distance คือครึ่งหนึ่งของระยะเวลาหารด้วย 29.1 (จากแผ่นข้อมูล) ระยะทาง = (duration/2) / 29.1; // ถ้าระยะทางน้อยกว่า 0.5 เมตร และมากกว่า 0 (0 หรือน้อยกว่า หมายถึง เกินช่วง) ถ้า (ระยะทาง <= 50 && ระยะทาง >= 0) { servo.write(50); ล่าช้า (3000); } อื่น ๆ { servo.write (160); } }

เมื่อเรารู้ขั้นตอนทั้งหมดในการทำโปรเจ็กต์ที่น่าทึ่งนี้แล้ว รีบขึ้นและสนุกกับการสร้างถังขยะอัจฉริยะของคุณ

Facebook Twitter Google Plus Pinterest