กลับไปหน้ารวมไฟล์
simple-heart-rate-sensor-using-arduino-016888.md

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

พี่ได้ไอเดียประมาณนาทีที่ 5:35

เซ็นเซอร์ตัวนี้ง่ายมากๆ จัดไปวัยรุ่น เพราะไม่ต้องใช้ไลบรารี่ (Library) อะไรเลย

Optical Biometrics: เซ็นเซอร์วัดชีพจรมนุษย์

การอ่านค่าเซ็นเซอร์อุณหภูมินั้นเป็นแบบ Passive ง่ายๆ แต่การจะอ่านชีววิทยาที่ซับซ้อนของมนุษย์เนี่ย ต้องใช้การกรองด้วยอัลกอริทึมแบบ Active Simple Heart Rate Sensor ใช้เทคนิคทางแสงที่เรียกว่า Photoplethysmography (PPG) เพื่อ 'มองเห็น' การขยายตัวระดับจุลภาคของเส้นเลือดฝอยในปลายนิ้วมนุษย์ที่สอดคล้องกับการเต้นของหัวใจ

หลักการสะท้อนแสง

โมดูล PulseSensor หน้าตาเหมือนสติกเกอร์แดงจิ๋วๆ ที่เอามาพันกับนิ้วหรือติ่งหู

  1. ตัวรับ-ส่งสัญญาณ (Transceiver): ด้านในมี LED สีเขียวสว่างจ้า และเซ็นเซอร์วัดแสงที่จ้องมองกลับมาที่ผิวหนัง
  2. หลักฟิสิกส์: ทุกครั้งที่หัวใจสูบฉีด เลือดจะวิ่งเข้าไปในเส้นเลือดฝอยที่ปลายนิ้วเป็นระลอก เลือดดูดซับแสงสีเขียว
  3. ดังนั้น ทุกครั้งที่หัวใจเต้นหนึ่งครั้ง เซ็นเซอร์วัดแสงจะตรวจจับการ ลดลง ของแสงสีเขียวที่สะท้อนกลับมาได้เพียงเสี้ยววินาที!

การคำนวณ BPM ผ่านการตรวจจับจุดสูงสุด (Peak Detection)

สัญญาณอนาล็อกดิบที่เข้ามาทางขา A0 ของ Arduino นั้นเป็นคลื่นยุ่งเหยิง เต็มไปด้วยสัญญาณรบกวนทางสรีรวิทยา (การหายใจ การขยับตัว ฮัมจากไฟฟ้า)

  • จะเขียนแค่ if (analogRead(A0) > 500) ไปงั้นไม่ได้นะน้อง มันจะพัง!
  • ต้องใช้อัลกอริทึม Threshold Peak Detector เท่านั้น
  • โค้ดจะสร้างค่า Threshold แบบไดนามิกขึ้นมา เมื่อคลื่นยุ่งๆ นั้นพุ่งขึ้น เหนือ เส้น Threshold ไปอย่างรวดเร็ว Arduino จะตรวจจับมันเป็น Beat 1
  • มันจะบันทึกเวลาตอนนั้นจาก millis() ไว้
  • พอคลื่นพุ่งขึ้นอีกครั้ง ก็จะบันทึก Beat 2
  • สูตรคำนวณ: เวลาระหว่างการเต้น = 800 มิลลิวินาที BPM = 60,000 / 800 = 75 ครั้งต่อนาที!
  • Arduino จะกะพริบ LED ภายนอกให้ตรงจังหวะกับการไหลเวียนของเลือดเป๊ะๆ!

อุปกรณ์ที่ต้องจัดมาสำหรับ Biometric Build

  • Arduino Uno/Nano (แปลงสัญญาณอนาล็อก 10-bit ได้แม่นยำดี)
  • โมดูล PulseSensor Amped (ใช้โฟโตเรซิสเตอร์ธรรมดาไม่ได้นะตัวนี้! เพราะมันต้องมีวงจร Op-amp กรองสัญญาณรบกวนที่อยู่บนบอร์ดด้วย)
  • จอ OLED หรือ LCD 16x2 สำหรับแสดงตัวเลขใหญ่ๆ ว่า BPM: 75
  • สายรัดนิ้วแบบตีนตุ๊กแก (Velcro) (การให้เซ็นเซอร์ติดแนบกับผิวหนังโดยไม่ขยับเป็นสิ่งจำเป็น ห้ามช็อตนะตัวนี้)

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

apps:
  - "1x Arduino IDE"
author: "24Ishan"
category: ""
components:
  - "1x Arduino Nano R3"
  - "1x Ear-clip Heart Rate Sensor"
  - "1x Jumper wires (generic)"
description: "โปรเจคนี้จะพาน้องๆ สร้างเครื่องวัดอัตราการเต้นของหัวใจแบบเบสิค แต่เทพอ่ะ ใช้แค่ Arduino Nano กับเซนเซอร์อีกนิดหน่อย วัยรุ่นสายช่างต้องจัดไป!"
difficulty: "Easy"
documentationLinks: []
downloadableFiles:
  - "https://projects.arduinocontent.cc/d4a7eff0-5c17-4b1a-8686-069a46c4f14a.ino"
encryptedPayload: "U2FsdGVkX18IMSlqniasZ0sRlWP2cDDpeF/kXh875dssDnAbQ8QLVfW7afZ/pKfJ7ad535re+X1eqzKb1E72Vnz/ofsYXsfhJ+8QgTO31g4="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/simple-heart-rate-sensor-using-arduino-016888_cover.jpg"
lang: "en"
likes: 9
passwordHash: "47dea670c5db61ade97057191094bd7fd355fbf83258f6ca2fd7c9c8b5e0ed28"
price: 299
seoDescription: "Build a Simple Heart Rate Sensor using Arduino Nano. Learn heart rate monitoring with easy-to-follow steps, circuit diagrams, and code."
tags:
  - "data collection"
  - "monitoring"
title: "วัดหัวใจตึ๊งตึง! กับ Arduino งานง่ายแต่หล่อ"
tools: []
videoLinks:
  - "https://www.youtube.com/embed/GKJPmA6ggVY"
views: 38216