สวัสดีทุกคน! ในยุคโควิดแบบนี้เจ้าไวรัสตัวร้าย SARS-CoV-2 (โควิด-19) นี่มันอันตรายสุดๆ เลยนะฮะ อาการหลักๆ ที่เห็นกันก็คือ ไข้ขึ้น อัตราการเต้นของหัวใจสูงขึ้น หายใจลำบาก ฯลฯ การวัดอุณหภูมิมันง่าย แต่การตรวจจับอัตราการเต้นหัวใจนี่ไม่ใช่ของที่ทุกคนจะมีกันใช่มะ เลยทำไอเจ้านี่ขึ้นมา ช่วยตรวจจับอัตราการเต้นของหัวใจได้เลยจ้า
*ดูคลิปให้จบนะน้องๆ อย่าลืมกดไลค์ แชร์ และติดตามด้วยล่ะ!*ภาพรวมโปรเจค
"Vita-Sign Monitor" นี่คือเครื่องมือตรวจวินิจฉัยแบบพกพา ที่เราพัฒนาขึ้นมาเพื่อตอบโจทย์การเฝ้าระวังสุขภาพที่บ้านในช่วงโรคระบาด โดยใช้เทคโนโลยี Photoplethysmograms (PPG) ในการวัดการเปลี่ยนแปลงเล็กน้อยของการดูดซับแสงผ่านปลายนิ้ว ซึ่งเกิดจากจังหวะการไหลเวียนของเลือด ข้อมูลแบบเรียลไทม์จะถูกประมวลผลโดย Arduino UNO และแสดงผลบน จอ LCD แบบตัวอักษร 16x2 เพื่อให้ผู้ใช้เห็นค่า BPM (Beats Per Minute) ได้ทันที มันเป็นการฝึกฝนที่สำคัญในเรื่อง การขยายสัญญาณอนาล็อก, อัลกอริทึมตรวจจับจุดสูงสุด (peak-detection) และ การแสดงผลข้อมูลชีวภาพ
ลึกลงไปในรายละเอียดทางเทคนิค
- ฟิสิกส์เบื้องหลัง PPG (เซ็นเซอร์ KY-039):
- การส่งผ่านแสงอินฟราเรด: เซ็นเซอร์ KY-039 ประกอบด้วย LED อินฟราเรด (IR) ความเข้มสูงและโฟโตทรานซิสเตอร์ IR เมื่อวางนิ้วระหว่างสองส่วนนี้ เซ็นเซอร์จะวัดปริมาณแสงที่ส่องผ่านไปได้
- ลายเซ็นของฮีโมโกลบิน: เมื่อหัวใจสูบฉีด ปริมาณเลือดในเส้นเลือดฝอยที่ปลายนิ้วจะเพิ่มขึ้น ทำให้ดูดซับแสง IR ได้มากขึ้น สิ่งนี้สร้างสัญญาณ "AC" เป็นจังหวะซ้อนทับบนสัญญาณ "DC" ฐานที่เกิดจากการดูดซับของเนื้อเยื่อ
- การแปลงสัญญาณอนาล็อกเป็นดิจิทัล (ADC):
- การสุ่มตัวอย่าง 10-บิต: ไมโครคอนโทรลเลอร์ ATmega328P บน Arduino ใช้ ADC แบบ Successive Approximation ขนาด 10-บิต เพื่อแปลงแรงดันไฟฟ้าอนาล็อกจากเซ็นเซอร์ (0V-5V) เป็นค่าดิจิทัล (0-1023)
- การปรับมาตรฐานสัญญาณ: เนื่องจากเอาต์พุตของเซ็นเซอร์ไวต่อแสงแวดล้อมและแรงกดนิ้วมาก เฟิร์มแวร์จึงต้องใช้ตรรกะ Dynamic Thresholding — คำนวณค่า "Mean" ใหม่ตลอดเวลาเพื่อระบุจุดสูงสุดจริงที่แทนการเต้นของหัวใจ
- ตรรกะการคำนวณ BPM:
- ช่วงเวลาระหว่างการเต้น (Inter-Beat Interval - IBI): โค้ดจะวัดเวลาระหว่างจุดสูงสุดที่ตรวจจับได้ติดต่อกัน เป็นหน่วยมิลลิวินาที
- ค่าเฉลี่ยแบบเคลื่อนที่ (Rolling Average): เพื่อป้องกันการแสดงผลที่ผิดเพี้ยนจาการขยับหรือสัญญาณรบกวน ระบบจะคำนวณค่าเฉลี่ยของค่า IBI 10 ค่าล่าสุด ค่า BPM สุดท้ายได้มาจากสูตรมาตรฐาน: $BPM = 60000 / AverageIBI$
- การเชื่อมต่อกับจอแสดงผล (Parallel 8-bit):
- ไลบรารี LiquidCrystal จะจัดการอินเทอร์เฟซ 6-พินที่ต้องคำนึงถึงจังหวะเวลาอย่างเคร่งครัดเพื่อขับจอ LCD 16x2 โดยใช้ โพเทนชิโอมิเตอร์ 10k โอห์ม เป็นวงจรแบ่งแรงดันที่พิน
V0เพื่อให้สามารถปรับความคมชัดของจอได้ละเอียด ช่วยให้ข้อมูลชีวภาพอ่านได้ชัดเจนในสภาพแสงต่างๆ
- ไลบรารี LiquidCrystal จะจัดการอินเทอร์เฟซ 6-พินที่ต้องคำนึงถึงจังหวะเวลาอย่างเคร่งครัดเพื่อขับจอ LCD 16x2 โดยใช้ โพเทนชิโอมิเตอร์ 10k โอห์ม เป็นวงจรแบ่งแรงดันที่พิน
วิศวกรรมและการใช้งาน
- กลยุทธ์ลดสัญญาณรบกวน: โปรเจกต์นี้เน้นย้ำความสำคัญของ การแยกวงจรไฟฟ้า (Electrical Isolation) อย่างชัดเจน เพราะเซ็นเซอร์วัดชีพจรแบบ IR นั้นไวต่อสัญญาณรบกวน "ไฟกระพริบจากหลอดฟลูออเรสเซนต์" มาก รุ่นพี่แนะนำให้ใช้ตัวเก็บประจุ (Capacitor) ค่าสูงๆ (เช่น 10µF) ขนานกับขั้วไฟเลี้ยงของเซ็นเซอร์ และอย่าลืมกดนิ้วลงบนเซ็นเซอร์เบาๆ แต่สม่ำเสมอ ห้ามกดๆ ปล่อยๆ นะตัวนี้
- การจัดวางต้นแบบ: การใช้เบรดบอร์ดเต็มแผ่นช่วยให้ออกแบบเป็นโมดูลแยกส่วนได้สะดวก แยกวงจรแบ็คไลท์ LCD ที่กินกระแสสูง ออกจากเส้นทางสัญญาณอนาล็อกรอบรับของเซ็นเซอร์ การจัดแบบนี้ช่วยลด "ครอสทอล์ก (crosstalk)" ระหว่างสัญญาณดิจิตอลจาก LCD กับค่าที่อ่านจากเซ็นเซอร์ได้ดีเลย
- ตรวจสอบด้วย Fritzing: ก่อนจะลงมือต่อสายจริง รุ่นพี่ตรวจสอบสายต่อทั้งหมดในโปรแกรม Fritzing ก่อนเสมอ ช่วยให้มั่นใจว่าไม่มีวงจรลัดระหว่างขั้ว 5V กับ GND ซึ่งเป็นเรื่องสำคัญมากเวลาใช้งานเซ็นเซอร์ชีวภาพที่ต้องสัมผัสกับร่างกายคน
- ประโยชน์ช่วงโรคระบาด: นอกเหนือจากความสนใจส่วนตัว โปรเจกต์นี้ยังแสดงให้เห็นว่าเราสามารถประยุกต์ใช้ฮาร์ดแวร์โอเพ่นซอร์สเพื่อ การเฝ้าติดตามสุขภาพตัวเอง (Self-Monitoring) ได้ด้วย ในช่วงที่ป่วยหรือเป็นโรคเกี่ยวกับระบบทางเดินหายใจ การติดตามแนวโน้มอัตราการเต้นของหัวใจเป็นตัวบ่งชี้ระดับความเครียดของร่างกายและการอักเสบได้อย่างหนึ่ง ทำให้อุปกรณ์ชิ้นนี้เป็นตัวเลือกเจ๋งๆ สำหรับชุดอุปกรณ์ดูแลสุขภาพที่บ้าน
เป็นไงบ้างน้อง รุ่นพี่สาธิตการทำงานให้ดูแล้วหลังจากที่โค้ดเสร็จ รุ่นพี่หวังว่าน้องจะชอบโปรเจกต์นี้นะ จริงๆ แล้วหลักการก็คือเราใช้เซ็นเซอร์วัดชีพจร อ่านค่ามาสักพัก แล้วก็แสดงผลออกมาที่หน้าจอ LCD มันเท่ไม่เบาเลยใช่ไหมล่ะ ที่เราสร้างอุปกรณ์วัดชีพจรของตัวเองได้ รุ่นพี่เตรียมแผนภาพการต่อวงจรและโค้ดตัวอย่างไว้ให้แล้ว
ในแผนภาพการต่อวงจร เซ็นเซอร์วัดชีพจร KY-039 มี 3 ขา ให้ต่อดังนี้
- ขา S -> ต่อกับขา Analog 0
- ขา 5V -> ต่อกับขา 5V บน Arduino
- ขา GND -> ต่อกับขา GND บน Arduino
ส่วนการต่อจอ LCD กับ Arduino รุ่นพี่ว่าเป็นเรื่องพื้นฐานมากๆ น้องน่าจะทำเป็นอยู่แล้วเนอะ
จัดโค้ดกันให้สนุกนะวัยรุ่น สู้งาน!
ตรวจสอบสัญญาณชีพด้วยความแม่นยำ—ใช้เทคโนโลยีอินฟราเรดตรวจจับการเต้นของหัวใจอย่างน่าเชื่อถือ