กลับไปหน้ารวมไฟล์
social-distancing-reminder-coronavirus-295ebd.md
วิดีโอสอนการใช้งาน

มันคืออะไรวะ?

พูดกันตรงๆ เลยนะ น้อง การป้องกันโควิด-19 ที่เวิร์คสุดก็คือการอยู่ห่างจากคนอื่นนั่นแหละ กันไว้ดีกว่าแก้เนอะ แต่ถ้าจะให้เราหันไปมองทุกๆ 30 วินาทีว่ามีใครเดินมาใกล้รึเปล่า มันก็คงจะรำคาญแหงๆ ใช่มะ? มันคงจะดีไม่น้อยถ้ามีอุปกรณ์ที่ช่วยเตือนคนอื่นให้อยู่ห่างจากเราได้ นั่นแหละคือไอเดียของโปรเจคนี้: เตือนคนอื่นให้รักษาระยะห่าง 2 เมตรจากตัวเรา มันเป็นอุปกรณ์ 2-in-1 เพราะว่าเทอร์มิสเตอร์ (Thermistor) ที่เราใช้นั้นไม่ได้แค่ช่วยให้การวัดระยะแม่นยำขึ้น (ความเร็วเสียงเปลี่ยนตามอุณหภูมินี่นา) แต่มันยังทำให้เราสามารถสลับโหมดการทำงานได้ด้วยปุ่มกดหรือเซ็นเซอร์สัมผัส (Touch Sensor) โหมดที่ว่าก็คือ:

  • โหมด 1: โหมดเตือนภัย ถ้ามีใครเข้ามาใกล้เกินไป
  • โหมด 2: โหมดวัดค่า แสดงอุณหภูมิและระยะทางบนหน้าจอ LCD จัดไปวัยรุ่น!

ภาพรวมโปรเจค

โปรเจค "Social-Distancing" นี้คือการนำ การตรวจจับระยะด้วยคลื่นอัลตราโซนิก (Ultrasonic Ranging) และ การปรับเทียบด้วยข้อมูลความร้อน (Thermal-Corrected Ranging) มาใช้อย่างเต็มสูบ ออกแบบมาเป็นอุปกรณ์สวมใส่เพื่อความปลอดภัย ระบบจะยิงพัลส์เสียงความถี่สูงเพื่อรักษา "ระยะปลอดภัย" ที่ $2 \text{เมตร}$ โปรเจคนี้เจาะลึกถึงการปรับค่าความเร็วเสียงอย่างแม่นยำโดยใช้ข้อมูลจากเทอร์มิสเตอร์แบบ NTC ทำให้มั่นใจได้ว่าระยะที่วัดได้จะเที่ยงตรงแม้สภาพแวดล้อมจะร้อนหรือเย็นแค่ไหนก็ตาม การสร้างเน้นไปที่การจัดการการแจ้งเตือนแบบหลายระดับ การเลือกโหมดด้วยเซ็นเซอร์สัมผัส และการออกแบบให้ทนทานพอจะสวมใส่ใช้งานได้จริง

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

  • Arduino วัดอุณหภูมิ
  • นำอุณหภูมิที่วัดได้มาคำนวณหาระยะทางให้แม่นยำขึ้น

ถ้า Arduino อยู่ในโหมด 1 (โหมดเตือน):

  • ถ้าระยะห่างอยู่ระหว่าง 2m ถึง 1m: ไฟแบ็คไลท์ของ LCD จะติด และหน้าจอจะแสดงข้อความ "Please keep away" พร้อมระยะทาง
  • ถ้าระยะห่างอยู่ระหว่าง 1m ถึง 50cm: ไฟแบ็คไลท์ของ LCD จะกระพริบ และหน้าจอจะแสดงข้อความ "Keep away"
  • ถ้าระยะห่างน้อยกว่า 50cm: ไฟแบ็คไลท์จะดับและติดสลับกันเร็วขึ้น (วินาทีละ 2 ครั้ง) และหน้าจอจะแสดงข้อความ "STAY AWAY!" ห้ามช็อตนะตัวนี้!

ถ้า Arduino อยู่ในโหมด 2 (โหมดวัดค่า): หน้าจอ LCD จะแสดงระยะทาง (ด้านบน) และอุณหภูมิ (ด้านล่าง)

ลงลึกเรื่องเทคนิค

  • การวัดระยะด้วยเสียงและการชดเชยด้วยอุณหภูมิ:

    • HC-SR04 โพรบเสียง: ระบบจะปล่อยพัลส์อัลตราโซนิกที่ $40\text{kHz}$ หลักการคือการวัด "เวลาเดินทางของเสียง" $(\Delta t)$ ระหว่างการส่งสัญญาณ (trigger) และการรับสัญญาณสะท้อนกลับ (echo) สูตรความเร็วเสียงที่ใช้คือ $v \approx 331.5 + 0.6 \times T_c \text{ m/s}$ โดยการใช้เทอร์มิสเตอร์แบบ NTC มาคำนวณหาอุณหภูมิแวดล้อม $T_c$ เฟิร์มแวร์ของเราก็จะหลีกเลี่ยงปัญหา "ความคลาดเคลื่อนจากอุณหภูมิ" ได้ ทำให้วัดระยะได้แม่นยำระดับเซนติเมตร แม้จะใช้กลางแจ้งที่อุณหภูมิขึ้นๆ ลงๆ ก็ตาม
    • การแบ่งระดับการเตือน: ระบบจะแบ่งระยะปลอดภัยออกเป็น 3 ระดับ ตามที่อธิบายไปแล้วข้างต้น:
      • $2\text{m} \rightarrow 1\text{m}$: แจ้งเตือนระดับต่ำ ("Keep Away")
      • $1\text{m} \rightarrow 0.5\text{m}$: แจ้งเตือนระดับกลาง ด้วยการกระพริบไฟ
      • $<0.5\text{m}$: แจ้งเตือนระดับวิกฤต ด้วยการกระพริบเร็วและข้อความรุนแรงขึ้น ("STAY AWAY!")
  • การแสดงผลและการสลับโหมด:

    • อินเทอร์เฟซแบบสัมผัส: ระบบใช้เซ็นเซอร์สัมผัส (Touch Sensor) ในการสลับระหว่าง "โหมดเตือน" และ "โหมดวัดค่า" ต้องมีการจัดการเรื่องการดีบาวซ์ (debounce) ของสัญญาณสัมผัสด้วยนะ เพื่อให้การเปลี่ยนโหมดเสถียร ไม่กระตุก สู้งานนะน้อง!
  • LiquidCrystal UI Forensics: จอ LCD $16\times 2$ ตัวนี้จะแสดงค่าทั้งอุณหภูมิ $T_c$ และระยะทาง $(D)$ แบบเรียลไทม์ให้ดูเลยจ้า ส่วนการวินิจฉัย (Diagnostics) ก็รวมถึงฮิวริสติกส์ของการปรับแสงแบ็คไลท์ ที่ใช้เป็นเหมือน "ไซเรน-ฟอเรนซิกส์" แบบเห็นภาพ เวลามีอะไรเข้ามาใกล้เกินกำหนด

เพื่อปกป้องชิ้นส่วนจากฝน พี่ติดฝาขวดพลาสติคครึ่งซีกไว้ สามารถดันขึ้นมาได้เวลาฝนตก มันสามารถผูกติด (ใช้เชือกสองเส้น) และถอดออกจากก้นกระเป๋าเป้ได้ง่ายๆ

วิศวกรรมและการนำไปใช้

  • Wearable Form-Factor & Ruggedization Forensics:
    • Mechanical Protection Analytics: เราใช้ฝาขวดพลาสติคเป็น "เกราะกันฝน" จุดสำคัญคือต้องกันความชื้นไม่ให้เข้า แต่ยังต้องเปิดทางให้คลื่นเสียงของเซ็นเซอร์อัลตราโซนิกผ่านได้ชัดเจน
    • Rucksack Interconnect Diagnostics: ระบบออกแบบมาให้ติดกับกระเป๋าเป้ การวินิจฉัยต้องมั่นใจว่าสายจัมเปอร์จะไม่หลุดง่ายเวลาน้องเดินหรือขยับตัว โดยใช้ Arduino Proto-Shield เพื่อให้การเชื่อมต่อทนต่อการสั่นสะเทือน
  • Power-Persistence & Voltage-Divider Forensics:
    • เราเชื่อม NTC thermistor เข้ากับวงจรแบ่งแรงดัน (voltage divider) แบบไฮไฟเดลิตี้ การคำนวณอุณหภูมิจะใช้สมการ Beta-parameter หรือตารางค้นค่า (lookup-table) เพื่อให้การประมวลผลใน MCU เร็วสุดๆ ไม่รบกวนลูปการวัดระยะ

ใช้เซ็นเซอร์สัมผัส (touch sensor) ในการสลับโหมด

อัลกอริทึมแบบย่อ

วิธีประกอบยังไง?

ต่อชิ้นส่วนต่างๆ ตามแผนภาพวงจรด้านล่างนี้เลย

ต่อเสร็จแล้ว ก็ไปที่ส่วน 'Code' เพื่อนำเข้าไลบรารี่ โดย (สมมติว่าเปิด Arduino IDE ไว้แล้ว) ไปที่ 'Sketch' —> 'Include Library' —> 'Add .ZIP Library...' แล้วเลือกไฟล์ไลบรารี่ (ซึ่งจะเป็นไฟล์ .zip) ต้องใช้ทั้งสองไลบรารี่โค้ดถึงจะรันได้นะจ๊ะ

ทุกอย่างพร้อมแล้ว ก็อัพโหลดโค้ดด้านล่างนี้ได้เลย ไปลุยกัน!

สรุป

Social-Distancing นี่แหละคือสุดยอดของ การวินิจฉัยความปลอดภัยทางเสียงในสภาพแวดล้อม (Acoustic Environmental-Safety Diagnostics) เลยนะน้อง! ด้วยการเชี่ยวชาญ การวิเคราะห์ทางนิติเวชด้วยคลื่นเสียง (Sonic-Pulse Forensics) และ การวิเคราะห์เชิงตรรกะที่ปรับแก้ด้วยอุณหภูมิ (Thermal-Corrected Heuristics) ทีมงาน arcaegecengiz ก็ได้สร้างอุปกรณ์สวมใส่ระดับมืออาชีพที่แข็งแกร่งขึ้นมา มันให้ความชัดเจนเชิงพื้นที่แบบสุดๆ ผ่านการวินิจฉัยด้วยเซนเซอร์อันล้ำสมัย


ความปลอดภัยที่ยั่งยืน: การเชี่ยวชาญการวัดระยะทางเชิงพื้นที่ผ่านการวิเคราะห์ทางเสียง.

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

apps:
  - "1x Arduino IDE"
author: "arcaegecengiz"
category: "Wearables, Health & Fitness"
components:
  - "1x Ultrasonic Sensor - HC-SR04 (Generic)"
  - "1x Buzzer"
  - "1x NTC Thermistor"
  - "1x Mini Breadboard"
  - "1x A transparent box to put everything into"
  - "1x Jumper wires (generic)"
  - "1x Arduino UNO"
  - "1x Resistor 10k ohm"
  - "1x Arduino Proto Shield"
  - "1x Rotary potentiometer (generic)"
  - "1x Touch sensor"
  - "1x 16 x 2 LCD Display"
description: "เจ้าเครื่องนี้มันจะช่วยเตือนไม่ให้ใครเข้ามาใกล้ตัวเราภายใน 2 เมตร ใช้เซนเซอร์วัดระยะ จัดการด้วย Arduino แบบเทพๆ งานนี้ทั้งมีสไตล์วัยรุ่นและได้ประโยชน์ ปลอดภัยไว้ก่อนนะเพื่อน!"
difficulty: "Intermediate"
documentationLinks: []
downloadableFiles:
  - "https://projects.arduinocontent.cc/6d19bc26-c76e-4111-9cc6-e92ef0022a49.ino"
  - "https://github.com/Martinsos/arduino-lib-hc-sr04"
  - "https://github.com/arduino-libraries/LiquidCrystal"
  - "https://projects.arduinocontent.cc/6d19bc26-c76e-4111-9cc6-e92ef0022a49.ino"
  - "https://github.com/arduino-libraries/LiquidCrystal"
  - "https://github.com/Martinsos/arduino-lib-hc-sr04"
encryptedPayload: "U2FsdGVkX19jLEaZhswuQZeou9XlhfiIlAs7y8b/0yrWSGxa/iAkymFiqsxiLmxdOLT5uuBAJA2oDdMsJCLxq2Uj0YdE6PRvCG+rLWb9IeM="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/social-distancing-reminder-coronavirus-295ebd_cover.jpg"
lang: "en"
likes: 9
passwordHash: "cd3b601e02b4c2dde8b7ed97abb6ed395c7ed145c37a1c2bfa20339d5e7db8ac"
price: 299
seoDescription: "Arduino Social Distancing Reminder project helps maintain 2-meter distance for Coronavirus safety."
tags:
  - "covid-19"
  - "health"
  - "covid19"
title: "Social Distancing Reminder - งานง่ายแต่หล่อ กันโควิดแบบตึงๆ"
tools: []
videoLinks:
  - "https://www.youtube.com/embed/GZTrJV35bHk"
views: 37789