นาฬิกาตรวจจับชีพจร Arduino NodeMCU

1. บทนำ

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

ด้วยเหตุผลที่กล่าวมาทำให้ทางกลุ่มคิดทำนาฬิกาตรวจวัดระดับการเต้นของหัวใจซึ่งเราจะสามารถรู้อัตราการเต้นของหัวใจได้อยู่ตลอดเวลา หากหัวใจมีการเต้นผิดปกติ ต่ำกว่าหรือสูงกว่าค่ามาตรฐานที่ตั้งค่าไว้ในนาฬิกาที่สวมใส่อยู่ เราก็จะสามารถรู้ได้ในทันทีว่าอัตราการเต้นของหัวใจมีการเต้นผิดปกติ หากผู้สวมใส่รู้อัตราการเต้นของหัวใจที่เริ่มผิดปกตินั้นจะสามารถขอความช่วยเหลือได้ทันเวลาทำให้โอกาสการรอดชีวิตมากขึ้นหากเกิดเหตุฉุกเฉิน

นอกจากนี้นาฬิกาตรวจวัดชีพจรยังเป็นตัวกระตุ้นและสนับสนุนการออกกำลังกายให้ปลอดภัย เลี่ยงการเกิดเหตุฉุกเฉินจากการออกกำลังแล้วหัวใจเต้นผิดปกติ

2. วัตถุประสงค์ของโครงงาน

2.1 ตรวจจับชีพจรของผู้สวมใส่ และประมวลผลอัตราการเต้นของหัวใจแสดงกราฟอัตราการเต้นของหัวใจ นำกราฟมาประมวลแสดงค่า BPM

2.2 การให้ความช่วยเหลือได้อย่างทันเวลา และตรงตามข้อมูลที่ได้รับมา

2.3 เพื่อใช้เป็นแนวทางในการช่วยเหลือผู้สวมใส่นาฬิกา

  1. รายละเอียดของการพัฒนา

3.1 เนื้อเรื่องย่อ

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

ส่วนที่ 1 การตรวจจับการเต้นของหัวใจ เป็นการตรวจจับการเต้นของหัวใจด้วยอุปกรณ์

ส่วนที่ 2 การประมวลผล เป็นการนำอัตราการเต้นของหัวใจมาวิเคราะห์ แล้วประมวลผลการเต้นของหัวใจ

ส่วนที่ 3 การแสดงผล เป็นการแสดงผลลัพธ์ที่ได้จากการประมวลผลออกมาเป็นกราฟและค่าBPM

3.2 ทฤษฎีหลักการและเทคนิคหรือเทคโนโลยีที่ใช้

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

3.2.1 Heart rate sensor

หลักการทำงาน : เจ้าตัว Light Photo Sensor จะตรวจจับแสงสีแดงที่สะท้อนจากผิวหนังที่มีเส้นเลือดแดงอยู่ โดยมี LED คอยปล่อยแสงสีเขียวออกมากระทบกับหลอดเลือดแดงใต้ผิวหนังตลอดเวลา แล้วจะส่งสัญญาณที่มีลักษณะคล้ายเป็นคลื่นหัวใจซึ่งเป็นคลื่นอนาล็อกผ่านสายสัญญาณ Signal เข้า  Microcontrolle

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

ข้อดี : อ่านอัตราการเต้นของหัวใจแบบต่อเนื่องได้ตลอดการออกกำลังกาย นิ้ว(และแขน)เป็นอิสระ ไม่ต้องคอยมาแตะหน้าปัดนาฬิกา ไม่ต้องอึดอัดและเจ็บตัวจากสายคาดอก

ข้อเสีย : แพง และถ้าเทคโนโลยีไม่ดีพอ เมื่อวิ่งเร็วๆ หรือแขนต้องเคลื่อนที่แรงๆ จะทำให้อ่านค่าไม่ได้หรือผิดพลาดเยอะ

3.2.2 ESP8266 NodeMCU

NodeMCU คือ แพลตฟอร์มหนึ่งที่ใช้ช่วยในการสร้างโปรเจค Internet of Things (IoT) ที่ประกอบไปด้วย Development Kit (ตัวบอร์ด) และ Firmware (Software บนบอร์ด) ที่เป็น open source สามารถเขียนโปรแกรมด้วยภาษา Lau ได้ ทำให้ใช้งานได้ง่ายขึ้น มาพร้อมกับโมดูล WiFi (ESP8266) ซึ่งเป็นหัวใจสำคัญในการใช้เชื่อมต่อกับอินเตอร์เน็ตนั่นเอง ตัวโมดูลESP8266นั้นมีอยู่ด้วยกันหลายรุ่นมาก ตั้งแต่เวอร์ชันแรกที่เป็น ESP-01 ไล่ไปเรื่อยๆจนปัจจุบันมีถึง ESP-12 แล้ว และที่ฝังอยู่ในNodeMCU version แรกนั้นก็เป็น ESP-12 แต่ใน version2 นั้นจะใช้เป็น ESP-12E แทน ซึ่งการใช้งานโดยรวมก็ไม่แตกต่างกันมากนัก NodeMCUนั้นมีลักษณะคล้ายกับ Arduino ตรงที่มีพอร์ต Input Output  buil inมาในตัว  สามารถเขียนโปรแกรมคอนโทรลอุปกรณ์ I/O ได้โดยไม่ต้องผ่านอุปกรณ์อื่นๆ และเมื่อไม่นานมานี้ก็มีนักพัฒนาที่สามารถทำให้ Arduino IDE ใช้งานร่วมกับ Node MCU ได้ จึงทำให้ใช้ภาษา C/C++ ในการเขียนโปรแกรมได้ ทำให้เราสามารถใช้งานมันได้หลากหลายมากยิ่งขึ้น  NodeMCUตัวนี้สามารถทำอะไรได้หลายอย่างมากโดยเฉพาะเรื่องที่เกี่ยวข้องกับ IoT ไม่ว่าจะเป็นการทำ Web Server ขนาดเล็ก การควบคุมการเปิดปิดไฟผ่านWiFi และอื่นๆอีกมากมาย

3.2.3 จอ oled arduino

OLED (Organic Light-Emitting Diode) display เป็นจอแสดงผลกราฟิกประเภทหนึ่งที่สร้างจากวัสดุ “สารกึ่งตัวนำอินทรีย์” (Organic Semiconductor) มีลักษณะเป็นชั้นบางๆ อยู่ระหว่างขั้วบวก (Anode) และขั้วลบ (Cathode) และสามารถเปล่งแสงได้เมื่อมีกระแสไฟฟ้าไหลผ่าน เรียกกระบวนการนี้ว่า อิเล็คโทรลูมิเนเซนส์ (Electroluminescence) จอภาพ OLED มีข้อดีซึ่งแตกต่างจากจอแสดงผล LCD (Liquid Crystal Display) ทั่วไปคือ ไม่ต้องมีวงจรที่สร้างแสง Backlight ดังนั้นจึงมีความหนาน้อยกว่าและเบากว่า ใช้กำลังไฟฟ้าต่ำ นอกจากนั้นจะไม่มีการเปล่งแสงในบริเวณที่ต้องการให้เป็นสีดำ ในปัจจุบันอุปกรณ์อย่างเช่น โทรทัศน์, สมาร์ทโฟน (Smartphones), แท็บเล็ต (Tablets) ได้เริ่มเปลี่ยนไปใช้จอภาพแบบ OLED กันมากขึ้น

3.3 เครื่องมือและอุปกรณ์ที่ใช้

–  Heart rate sensor

–  จอ oled Arduino

–  ESP8266 NodeMCU

–  สายไฟ

–  แผ่นอะคริลิค

–  แบตลิโพ 1 เซลล์

–  ตัวเรือนนาฬิกา

3.4 แสดงการต่อวงจร

3.5 รายละเอียดโปรแกรมที่ได้พัฒนาในเชิงเทคนิค

3.5.1 Flow chart ภาพรวมทั้งหมดของโครงสร้าง

3.5.2 Flow chart แต่ละส่วนพร้อมอธิบาย Source Code ที่พัฒนาให้ตรงกัน

3.5.3 ในส่วนของ Source Code ให้ใส่แหล่งที่มาอ้างอิงในกรณีที่ไปเอา Code อื่นมาพัฒนา

#include <Adafruit_SSD1306.h>

#define OLED_Address 0x3C

Adafruit_SSD1306 oled(1);

int x = 0;

int lastx = 0;

int lasty = 0;

int LastTime = 0;

int ThisTime;

bool BPMTiming = false;

bool BeatComplete = false;

int BPM = 0;

#define UpperThreshold 560

#define LowerThreshold 530

 

void setup() {

oled.begin(SSD1306_SWITCHCAPVCC, OLED_Address);

oled.clearDisplay();

oled.setTextSize(2);

}

void loop()

{

if (x > 127)

{

oled.clearDisplay();

x = 0;

lastx = x;

}

ThisTime = millis();

int value = analogRead(0);

oled.setTextColor(WHITE);

int y = 60 – (value / 16);

oled.writeLine(lastx, lasty, x, y, WHITE);

lasty = y;

lastx = x;

// calc bpm

if (value > UpperThreshold)

{

if (BeatComplete)

{

BPM = ThisTime – LastTime;

BPM = int(60 / (float(BPM) / 1000));

BPMTiming = false;

BeatComplete = false;

tone(8, 1000, 250);

}

if (BPMTiming == false)

{

LastTime = millis();

BPMTiming = true;

}

}

if ((value < LowerThreshold) & (BPMTiming))

BeatComplete = true;

 

// display bpm

oled.writeFillRect(0, 50, 128, 16, BLACK);

oled.setCursor(0, 50);

oled.print(BPM);

oled.print(” BPM”);

oled.display();

x++;

}

3.6 ขอบเขตและข้อจำกัดของโปรแกรมที่พัฒนา

สำหรับโครงงานนี้มีขอบเขตโดยแบ่งการทำงานออกเป็น 2 ส่วน คือ

3.6.1 ส่วนตรวจจับอัตราการเต้นของหัวใจ

                    3.6.1.1 สามารถตรวจจับอัตราการเต้นของหัวใจโดยใช้อุปกรณ์ heart rate sensor

3.6.2 ส่วนของการแสดงผล

                    3.6.2.1 การแสดงอัตราการเต้นของหัวใจต่อนาที

                    3.6.2.2 สามารถแสดงกราฟการเต้นของหัวใจได้

  1. 4. ผลของการทดสอบโปรแกรม

ตารางที่ 1 แสดงอัตราการเต้นของหัวใจก่อนเดิน

นาฬิกา inbody amway นาฬิกาตรวจจับชีพจร
รอบที่ 1 รอบที่ 2 เฉลี่ย รอบที่ 1 รอบที่ 2 เฉลี่ย
ผู้ทดสอบคนที่ 1 74 76 75 72 74 73

 

ตารางที่ 2 แสดงอัตราการเต้นของหัวใจหลังเดิน

นาฬิกา inbody amway นาฬิกาตรวจจับชีพจร
รอบที่ 1 รอบที่ 2 เฉลี่ย รอบที่ 1 รอบที่ 2 เฉลี่ย
ผู้ทดสอบคนที่ 1 81 94 87.5 89 89 89

 

 

5. ปัญหาและอุปสรรค

ในการทำชิ้นงานในส่วนแรกนั้นปัญหาที่พบคือตัวบอร์ดอดูโน่ uno ที่ใช้ไม่supportกับตัว haert rate sensor ทำให้ต้องเปลี่ยนมาใช้ บอร์ดอดูโน่ nano ส่วนที่สองคือพบปัญหาในการลง library arduino nano ทำให้มีปัญหาในการอัพโหลด code ส่วนในตัวชิ้นงานเนื่องจากทางกลุ่มทำนาฬิกาข้อมือตรวจจับชีพจรซึ่งตัวชั้นงานมีขนาดเล็กจอส่วนใหญ่ที่มีขายจะเป็นจอขนาดใหญ่ทำให้ยากต่อการหาจอที่มีขนาดพอดีกับตัวเรือนของนาฬิกา

  1. แนวทางในการพัฒนาในอนาคต

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

  1. ข้อสรุปและข้อเสนอแนะ

จากผลการทดลอง จะเห็นได้ว่าก่อนเดินอัตราการเต้นของหัวใจอยู่ในระดับ 60-80 ครั้งต่อนาที ซึ่งถือว่าอยู่ในเกณฑ์ปกติ และหลังเดินอัตราการเต้นของหัวใจมีอัตราการเต้นของหัวใจมากกว่า 80 เล็กน้อย ซึ่งถือว่ามีอัตราการเต้นของหัวใจเร็วกว่าปกติ เนื่องจากมีการออกกำลังกาย

เมื่อเปรียบเทียบความแตกต่างของผลการทดลองระหว่างนาฬิกาตรวจชีพจรกับนาฬิกา inbody amway พบว่ามีเปอร์เซ็นต์ความแตกต่างอยู่ที่ 1.70%

Link VDO on YouTube YouTube Preview Image

  1. แหล่งที่มาอ้างอิง

[1] พบแพทย์. อัตราการเต้นของหัวใจ. [ออนไลน์].

แหล่งที่เข้าถึง : https://www.pobpad.com/วิธีตรวจชีพจร-และสัญญาณ

[2] โรงพยาบาลบำรุงราษฎร์. หัวใจเต้นผิดจังหวะ. [ออนไลน์].

แหล่งที่เข้าถึง : https://www.bumrungrad.com/th/conditions/arrhythmia-irregular-heart-

[3] ดร.วรวริศ กอปรสิริพัฒน์. แบตเตอรี่ลิเทียมไอออน. [ออนไลน์]

แหล่งที่เข้าถึง : https://www2.mtec.or.th/th/e-magazine/admin/upload/298_63.pdf

[4] embedded systems lab. การใช้งาน oled display. [ออนไลน์]

แหล่งที่เข้าถึง : http://cpre.kmutnb.ac.th/esl/learning/index.php?article=oled-ssd1306

[5] เทคโนโลยีการออกกำลังกาย&ไลฟ์สไตล์. เครื่องวัดชีพจร. [ออนไลน์]

แหล่งที่เข้าถึง : https://tsmactive.com/เครื่องวัดชีพจร-heart-rate-monitor-HRM

  •  
  •  
  •  
  •  
  •  
  •  
CHANAKARN SUWAN
at GlurGeek.Com

Leave a Reply