กลับไปหน้ารวมไฟล์
the-arduino-social-distancing-sensor-81bd3a.md

ทำไมพี่ถึงเลือกทำโปรเจกต์นี้ -

ไอเดียนี้มันมาเพราะช่วงโควิดน่ะน้อง เห็นแล้วคิดว่าเราน่าจะทำเซนเซอร์คอยเตือนเรื่องระยะห่างระหว่างคนได้นะ

มันทำงานยังไง -

หลักการคือ Ultrasonic [Sensor](https://s.shopee.co.th/7VBG2rX65j) จะยิงพัลส์เสียงออกไปเพื่อวัดระยะห่างระหว่างมันกับสิ่งกีดขวางหรือคน โดยการคำนวณจากเวลาที่พัลส์เสียงสะท้อนกลับมาเป็นระยะทาง (หน่วยเป็น cm ในโปรเจกต์นี้)

หลังจากวัดระยะได้แล้ว พี่เขียนโค้ดให้ LED ติดเมื่อมีวัตถุเข้ามาใกล้ภายใน 50 ซม. (ปรับค่าได้ง่ายๆ แค่เปลี่ยนตัวเลขใน IF statement) และดับเมื่อห่างออกไปเกิน 50 ซม. ดูวิดีโอสาธิตการทำงานได้เลยจ้า

ขั้นตอนการต่อวงจร -

ตอนแรกพี่วางแผนจะต่อทุกอย่างลงบน Breadboard เลย ไม่ต้องเสียบเข้ากับตัว [Arduino](https://s.shopee.co.th/7fUgFAWSki) โดยตรง แต่หลังจากทดลองแล้วพบว่า การต่อ Ultrasonic [Sensor](https://s.shopee.co.th/7VBG2rX65j) เข้ากับ Arduino โดยตรง และต่อ LED ลงบน Breadboard นั้นง่ายกว่าเยอะ แถมยังประหยัดพื้นที่บน Breadboard Mini อีกด้วย เพราะตัวเซนเซอร์มันค่อนข้างกินพื้นที่

ขั้นตอนการเขียนโค้ด -

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

หลังจากวางแผนโค้ดเสร็จ การเขียนโค้ดควบคุม LED ทำได้ง่ายมาก แต่พี่ติดตรงการเขียนโค้ดให้ Ultrasonic [Sensor](https://s.shopee.co.th/7VBG2rX65j) นี่แหละ เพราะเป็นครั้งแรกที่เขียนอะไรแบบนี้

หลักการของ Ultrasonic [Sensor](https://s.shopee.co.th/7VBG2rX65j) คือการส่งคลื่นเสียงออกไป แล้วรับเสียงที่สะท้อนกลับมาจากวัตถุ เพื่อจะเอามาใช้เป็นเซนเซอร์รักษาระยะห่าง เราต้องแปลงเวลาที่พัลส์เสียงใช้ในการเดินทางไป-กลับ ให้เป็นระยะทางหน่วยเซนติเมตร พี่ทำขั้นตอนนี้โดยใช้วิธีตามภาพนี้

หลังจากค้นคว้าเพิ่มเติม พี่ก็พบว่า การจะให้ Ultrasonic [Sensor](https://s.shopee.co.th/7VBG2rX65j) ทำงานผ่านโค้ดได้ เราต้องเขียนโปรแกรมให้มันยิงพัลส์ Low, High, และ Low ตามลำดับ เพื่อสร้างพัลส์ที่สะอาดจากพัลส์ High นั่นเอง หลังจากจับคู่พินของ Echo และ Trig ของเซนเซอร์ได้แล้ว ก็พร้อมเขียน IF statement ง่ายๆ ให้ LED ติดเมื่อมีวัตถุเข้ามาในระยะ 50 ซม. ซึ่งส่วนนี้ถือว่าง่ายสุดของโค้ดทั้งหมดเลย

การทำเคส -

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

รายละเอียดเทคนิคเพิ่มเติม (แบบจัดเต็ม)

โปรเจกต์บีคอนเพื่อความปลอดภัยสาธารณะ

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

  • การวิเคราะห์พัลส์โซนาร์ระดับไมโครวินาที: Arduino ควบคุมเซนเซอร์ HC-SR04 ที่ติดตั้งบนหมวกหรืออุปกรณ์สวมใส่ เฟิร์มแวร์คำนวณระยะห่างถึงบุคคลที่ใกล้ที่สุด 10 ครั้งต่อวินาที ด้วยความแม่นยำระดับต่ำกว่าหนึ่งเซนติเมตร
  • ระบบแจ้งเตือนหลายระดับ: หากมีบุคคลเข้ามาภายใน 2 เมตร LED สีเหลืองจะกระพริบ หากเข้ามาใน "โซนวิกฤต" (1 เมตร) Arduino จะสั่งงาน Buzzer ความดัง 85dB ให้ส่งเสียงเตือนทันที

การสร้างต้นแบบ

  • ทดสอบด้วย Arduino IDE: ปรับแต่งเพื่อประสิทธิภาพที่เสถียร 100% และหลีกเลี่ยง "การเตือนผิดพลาด" โดยใช้ซอฟต์แวร์ Median-filter เพื่อกรองสัญญาณรบกวนชั่วคราวจากเซนเซอร์

ข้อมูล Frontmatter ดั้งเดิม

title: "The Arduino social - distancing sensor"
description: "The Arduino social - distancing sensor regulates social distancing through an ultrasonic sensor and an LED."
author: "DanielKang21"
category: ""
tags:
  - "environmental sensing"
views: 29818
likes: 0
price: 299
difficulty: "Easy"
components:
  - "1x Jumper wires (generic)"
  - "1x LED (generic)"
  - "1x Ultrasonic Sensor - HC-SR04 (Generic)"
  - "1x SparkFun Solder-able Breadboard - Mini"
  - "1x Male/Female Jumper Wires"
  - "1x Arduino UNO"
  - "1x 3D Printer (generic)"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles: []
documentationLinks: []
passwordHash: "79ca0e1de7024bdd3f8feaab41c18141cf200ebc08b89d0b72684de57c924eb7"
encryptedPayload: "U2FsdGVkX1+eyStDbkxvSwjQNhwIFmTMaUPfRpnvTL+RT5152ID/ymrCCSGTWm/pB43eDbCucoxDJP95wy7JVggLcZ//oTCv9wy/dbMApww="
seoDescription: "Build an Arduino social distancing sensor using an ultrasonic sensor and LED to regulate safe distances."
videoLinks:
  - "https://www.youtube.com/embed/1wrFqPePqws"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/the-arduino-social-distancing-sensor-81bd3a_cover.jpg"
lang: "th"