กลับไปหน้ารวมไฟล์
sitting-sensor-d65fb6.md

Intro:

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

เจ้าเซ็นเซอร์นี่จะติดไว้ที่กระเป๋ากางเกงนะ ตัวบอร์ดหลักจะอยู่ด้านในกระเป๋า ส่วนตัวเซ็นเซอร์วัดแสงและไฟ LED (ถ้าอยากใส่) จะอยู่บนแผ่นผ้าที่ติดไว้ด้านนอกกระเป๋า พอผู้ใช้นั่งลง ตัวเซ็นเซอร์วัดแสงจะถูกบัง และจะส่งสัญญาณเตือนถ้าผู้ใช้ยังนั่งอยู่เกินเวลาที่กำหนด โค้ดตอนนี้ตั้งไว้ที่ 10 วินาที (แค่เอาไว้ทดสอบเฉยๆ) แต่น้องปรับได้ตามสบายเลย จะเป็น 10-15 นาที หรือนานแค่ไหนก็ได้ จุดเด่นของการทำเป็นอุปกรณ์แยกมาติดกระเป๋า แทนที่จะฝังเทคโนโลยีลงไปในกางเกงตัวเดียวเลย คือความยืดหยุ่น มันใส่กับกางเกงตัวไหนที่มีกระเป๋าหลังก็ได้หมด

Project Perspective

Sitting Sensor เป็นการออกแบบเซ็นเซอร์ Wearable ที่เข้าใจง่ายและเรียบง่ายมากๆ เหมาะสำหรับใครก็ตามที่อยากเริ่มต้นเรียนรู้เรื่องพื้นฐานของ Physical และ Digital Interaction ด้วยการใช้เซ็นเซอร์วัดแสงและบัซเซอร์สำหรับให้ฟีดแบ็ก น้องจะได้เรียนรู้พื้นฐานของ e-textiles และการตรวจสอบสุขภาพเบื้องต้นไปในตัว

Technical Implementation: Fabric and Circuits

โปรเจกต์นี้แทนที่สายไฟทองแดงแบบเดิมด้วยวัสดุที่นุ่มและยืดหยุ่น:

  • ชั้นนำไฟฟ้า: ด้ายนำไฟฟ้า (Conductive Thread) ทำหน้าที่เป็นสายไฟ คอยส่งกระแสไฟฟ้าระหว่าง LilyPad กับเซ็นเซอร์/บัซเซอร์โดยตรงบนผ้า
  • ชั้นไมโครคอนโทรลเลอร์: Arduino LilyPad USB เป็นบอร์ดเฉพาะทางที่ออกแบบมาให้เย็บติดกับเสื้อผ้าได้ มีรู (แผ่นต่อ) ขนาดใหญ่ให้เย็บได้ง่าย และมีพอร์ต USB ในตัวสำหรับอัปโหลดโค้ดสะดวกมาก
  • ชั้นตรวจจับ: LilyPad Light Sensor

Hardware Infrastructure

  • Arduino LilyPad USB: คือ "สมอง" ของเซ็นเซอร์นี่แหละ คอยจัดการเรื่องจับเวลาและสั่งงานบัซเซอร์ให้ส่งเสียงเตือน
  • LilyPad Light Sensor: ให้อินพุตแบบดิจิทัล/แอนะล็อกตามระดับแสง เพื่อใช้ตรวจจับการนั่ง
  • LilyPad Buzzer: ให้เสียงเตือนที่ชัดเจนเมื่อผู้ใช้นั่งนานเกินไป อย่าลืมลุกเดินบ้างนะตัวนี้!
  • แบตเตอรี่ Li-ion: เป็นแหล่งจ่ายไฟที่กะทัดรัดและเบา สำหรับอุปกรณ์ Wearable ทั้งชุด
  • สาย Micro-USB: ใช้สำหรับอัปโหลดโปรแกรมลง LilyPad โดยตรงจากคอมพิวเตอร์น้องๆ

How To:

  • เขียนโค้ดให้บอร์ด
  • ประกอบชุด Wearable

Coding the Board

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

Software Logic & Timing

โค้ด Arduino ถูกโปรแกรมมาให้ประหยัดพลังงานและเป็นมิตรกับผู้ใช้:

  1. Initialize: ตั้งค่า pin ของ LilyPad สำหรับเซ็นเซอร์วัดแสง (อินพุต) และบัซเซอร์ (เอาต์พุต)
  2. Polling: LilyPad จะคอยตรวจสอบค่าเซ็นเซอร์วัดแสงอย่างต่อเนื่อง เพื่อตรวจจับจุดเริ่มต้นของ "การนั่ง" (เมื่อระดับแสงต่ำกว่าค่าที่ตั้งไว้)
  3. Timing: ใช้ฟังก์ชัน `millis()` เพื่อจับระยะเวลาการนั่งอย่างแม่นยำ โดยไม่บล็อกการทำงานของโปรแกรมหลัก
  4. Feedback: เมื่อระยะเวลาการนั่งเกินขีดจำกัดที่ตั้งไว้ (เช่น 15 นาที) บัซเซอร์จะส่งเสียงเตือนเป็นแพตเทิร์น เพื่อเตือนให้ผู้ใช้ลุกขึ้นขยับตัวสักหน่อย อย่านั่งแช่นานนะ!

ข้อสำคัญที่ต้องรู้: โค้ดนี้ใช้การตรวจสอบแบบอิงเวลา (millis()) เพื่อให้บอร์ด Lilypad สามารถทำงานหลายอย่างพร้อมกันได้ แทนที่จะพึ่งพาแค่ฟังก์ชัน delay() เฉยๆ อยากรู้ลึกกว่านี้เรื่อง millis() ลองไปหาอ่านเพิ่มเติมในเอกสารอ้างอิงของ Arduino ดูนะ

ภาพรวมโค้ด: โค้ดเริ่มต้นด้วยการประกาศตัวแปรจำนวนเต็ม (integers) ทั้งหมดก่อน ตัวแปรบางตัวเราปรับแต่งได้ตามชอบเลย เช่น ความถี่ของเสียงสัญญาณ (tone) ไฟ LED ที่ใช้ และระยะเวลานั่ง (sitPeriod)

หลังจากกำหนดอินพุทเอาท์พุทใน setup() แล้ว ส่วนแรกของโค้ดจะตั้งค่า Serial Monitor เพื่ออ่านค่าจากเซ็นเซอร์แสงและค่า currentTime ช่วยได้เวลาต้องดีบั๊กตอนหลัง

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

เมื่อเซ็นเซอร์แสงอ่านค่าได้ต่ำกว่า 80 ไม่ใช่แค่เปลี่ยนค่า sittingDown เป็น true เท่านั้น แต่ยังจดจำเวลาปัจจุบันไว้เป็น SitPeriodStart เพื่อใช้อ้างอิงในโค้ดตอนหลัง ว่าผู้ใช้นั่งมานานแค่ไหนแล้ว ถ้าผู้ใช้นั่งนานเกินระยะเวลาที่กำหนดไว้ตอนต้น ฟังก์ชัน alarm() ก็จะดังขึ้น (แสดงเป็นฟังก์ชันสุดท้ายในโค้ด) เสียงสัญญาณนี่ปรับเป็นเพลงหรือเสียงเตือนอะไรก็ได้ที่บัซเซอร์ของ Lilypad จะทำได้

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

ด้านล่างนี้คือตัวอย่างการทำงานของบอร์ด:

ประกอบเป็นชิ้นงานสวมใส่ได้

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

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

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

ก่อนจะปิดชิ้นงานสวมใส่ อย่าลืมใส่แบตเตอรี่เพื่อทดสอบว่าทุกอย่างทำงานปกติและแบตเตอรี่มีไฟนะ อย่าช็อตตัวเองล่ะ!

ขั้นตอนนี้ทำก็ได้ไม่ทำก็ได้นะน้อง แต่พี่ว่าใส่แผงหลังปิดทับวงจรทั้งหมดไว้ดีกว่า จะได้ป้องกันไม่ให้สายไฟมันไปชนกันตอนที่เราเอาเซนเซอร์งอพับใส่ลงในกระเป๋า งานจะได้ไม่พังง่ายๆ

ดูนี่สิ น้องจะเห็นว่า LED มันติด-ดับ ตามที่เซนเซอร์วัดแสงถูกบัง แล้วก็ฟังเสียงไซเรนตอนที่มันถูกบังนานเกินกำหนดด้วย อย่าลืมเปิดเสียงล่ะ!

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

ไอเดียต่อยอดสำหรับอนาคต

  • เพิ่มมอเตอร์สั่น: เปลี่ยนจากเสียงบี๊บๆ มาเป็นมอเตอร์สั่นแบบ LilyPad เบาๆ ไว้ใช้ในที่ประชุมหรือห้องสมุด งานนี้ลับสุดยอด!
  • ส่งข้อมูลไปมือถือ: ใส่โมดูล BLE ตัวจิ๋วเพื่อส่งข้อมูลการนั่งไปยังแอปสุขภาพในสมาร์ทโฟนของน้อง จะได้ดูสถิติตัวเองแบบโปรๆ
  • เซนเซอร์หลายตัว: ใช้เซนเซอร์วัดแสงหรือตัววัดความเร่ง (Accelerometer) หลายๆ ตัว จะได้ตรวจจับการนั่งได้แม่นยำขึ้น งานนี้จัดเต็ม!
  • ปุ่มควบคุมจากผ้า: เย็บปุ่มหรือสไลด์อร์จากผ้านำไฟฟ้า (Conductive Fabric) ไว้ปรับเวลาการเตือนหรือเปิด-ปิดเซนเซอร์ได้เลย สะดวกสุดๆ

โครงการ Sitting Sensor นี้เหมาะมากสำหรับวัยรุ่นสายช่าง/วิศวะอย่างเราที่อยากได้เครื่องมือดูแลสุขภาพแบบอินเทอร์แอคทีฟและน่าสนุก! สู้งานนะน้อง!

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

title: "เซนเซอร์ตรวจจับนั่งนานเกินไป งานง่ายแต่หล่อ!"
description: "อุปกรณ์เล็กๆ ติดกระเป๋า เวลานั่งติดเก้าอี้นานเกินไป มันจะส่งสัญญาณเตือนแบบตึงๆ ให้ลุกขึ้นขยับตัวซะหน่อย! วัยรุ่นสายสุขภาพจัดไป"
author: "kozlowaa"
category: "Wearables, Health & Fitness"
tags:
  - "wearables"
  - "health"
  - "monitoring"
views: 6934
likes: 4
price: 699
difficulty: "Easy"
components:
  - "1x Sewing Needle"
  - "1x Non-Conductive Fabric"
  - "1x Alligator Clips"
  - "1x Non-Conductive Thread"
  - "1x Arduino LilyPad USB"
  - "1x Battery, 3.7 V"
  - "1x Pocket Clip"
  - "1x Sewable Conductive Thread"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles: []
documentationLinks: []
passwordHash: "e8687afede4d40485479556054045e81610517ed97f3aefa0c83c4e269636a84"
encryptedPayload: "U2FsdGVkX1/RGj737bZ41dTjeya1mAhRlx/eK/sTZoEeTkpoKjw9QhjUv41KBkUAD6LlOCfbSZqNTvnClB7W1wrpth1zSmpTlt6jBmvY8P4="
seoDescription: "Stay active with this Sitting Sensor! A pocket-worn Arduino device that alerts you when you've been sedentary for too long."
videoLinks:
  - "https://www.youtube.com/embed/gmkEtP9KCbM"
  - "https://www.youtube.com/embed/4IGCYvGjtgg"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/sitting-sensor-d65fb6_cover.jpg"
lang: "en"