OpenHRStrap: ทำสายคาดอก Heart Rate ด้วย ESP32
สายคาดอก Heart Rate ดูเหมือนอุปกรณ์ที่ทำหน้าที่แค่ส่งเลข BPM ไปมือถือ แต่ก่อนจะได้ตัวเลขนั้น ระบบต้องเริ่มจากสัญญาณไฟฟ้าขนาดเล็กบนร่างกาย ผ่านวงจร ECG, กรอง Noise, หา R-peak และแปลงช่วงห่างระหว่าง Heartbeat ให้กลายเป็น Heart Rate ที่ส่งผ่าน Bluetooth ได้
OpenHRStrap เป็น Prototype แบบ Open Source ที่พยายามทำ Flow ทั้งหมดนี้ด้วย XIAO ESP32 S3 และ AD8232 พร้อมใช้ Pan-Tompkins Algorithm สำหรับตรวจหา QRS / R-peaks และส่ง Heart Rate ผ่าน BLE ในรูปแบบที่ Smartphone App สามารถมองเห็นเป็น Heart Rate Device ได้
สำคัญ: OpenHRStrap เป็น Project สำหรับการศึกษา ทดลอง และงาน Hobby เท่านั้น ผู้สร้างระบุชัดว่าไม่ใช่ Medical Device, ไม่ได้รับ Certification และห้ามใช้สำหรับ Diagnosis, Monitoring Medical Conditions หรือ Health-critical Applications
Key Takeaways
- OpenHRStrap เป็น Open-source DIY Chest Strap Heart-rate Tracker
- V1 ใช้ XIAO ESP32 S3 เป็น MCU
- Analog Front End ใช้ AD8232 ECG Module
- ผู้สร้างเพิ่ม Reference Electrode ให้ Commercial Chest Strap
- Enclosure ต้นฉบับใช้ PLA และ TPU
- Power Source ที่ผู้สร้างระบุคือ 1S Li-ion Cell + Boost Converter ไป 5V
- Heart Rate Detection ใช้แนวคิด Pan-Tompkins Algorithm
- Pipeline หลักคือ Band-pass → Derivative → Squaring → Moving Window Integration
- Algorithm วิเคราะห์ทั้ง FILT Peaks และ INT Peaks
- มี Adaptive Threshold ผ่าน SPK, NPK, TH1 และ TH2
- Search-back ถูกกระตุ้นเมื่อไม่มี R-peak นานกว่า 166% ของ RR Average ตาม README
- Current ESP32 Firmware ใช้ Sample Rate 200 Hz
- Current Firmware ตั้ง ADC Resolution เป็น 12-bit
- ECG Input ใน Firmware ปัจจุบันใช้
D0 - BLE ใช้ Heart Rate Service UUID
180D - Heart Rate Measurement Characteristic ใช้
2A37 - Repo มี BLE Test Code ที่ส่ง Fake BPM 50→60→50 เพื่อทดสอบ BLE โดยเฉพาะ
- Main Tracker Firmware คำนวณ BPM จาก R-peak / RR Interval แล้วจึงส่ง BLE
- Static-data Pan-Tompkins Test ให้ผลดีตามผู้สร้าง แต่ Real-time Detection ขณะวิ่งยังเป็น WIP
- V1 Running Test 5K พบว่าข้อมูลจาก DIY Device ยังแตกต่างจาก Smartwatch ในหลายช่วง
OpenHRStrap คืออะไร?
เป้าหมายของ V1 คือสร้าง Module ที่สามารถติดกับ Commercial Chest Strap แล้วทำงานใกล้เคียงแนวคิดของ Heart-rate Chest Strap ทั่วไป:
- รับ Biosignal จาก Electrode
- ประมวลผล ECG
- ตรวจหา Heartbeat
- คำนวณ Heart Rate
- ส่ง BPM ไป Smartphone ผ่าน BLE
↓
AD8232 ECG Module
↓
XIAO ESP32 S3
↓
Signal Filtering
↓
R-peak Detection
↓
RR Interval → BPM
↓
Bluetooth Low Energy
จุดที่ทำให้ Project นี้น่าสนใจ: ผู้สร้างไม่ได้หยุดแค่การอ่าน Analog Signal แต่พยายามทำตั้งแต่ Signal Processing ไปจนถึง BLE Heart Rate Device ในระบบเดียว
Hardware ของ OpenHRStrap V1
| ส่วนประกอบ | ข้อมูลที่ Source ระบุ |
|---|---|
| MCU | XIAO ESP32 S3 |
| Analog Front End | AD8232 ECG Module |
| Sensor Interface | Electrodes บน Chest Strap |
| Reference Electrode | ผู้สร้างเพิ่ม Button อีกหนึ่งจุดด้านหลัง Strap |
| Interface กับ Strap | Steel Push Buttons ที่ต่อสายเข้ากับตัว Circuit |
| Enclosure Material | PLA + TPU |
| Power Source | 1S Li-ion Cell ที่ผู้สร้างนำกลับมาใช้ |
| Power Conversion | Boost Converter Step-up ไป 5V ตามคำอธิบายใน README |
Source ไม่ได้ให้รายละเอียด Battery ครบ: ไม่มี Battery Capacity, Runtime, Charging Current, Charge Controller, Protection Circuit หรือขั้นตอนชาร์จ จึงไม่ควรสร้าง Battery Wiring หรือ Charging Procedure เพิ่มเอง
แม้ Enclosure จะใช้ PLA และ TPU แต่ Repository ที่ตรวจไม่มี STL/CAD สำหรับพิมพ์ตาม: Source ไม่ได้ให้ Layer Height, Infill, Nozzle, Support หรือ Printing Temperature
จาก ECG Signal ไปเป็น Heart Rate ไม่ได้มีแค่คำสั่งเดียว
สัญญาณที่ออกจาก ECG Front End ยังไม่ใช่ตัวเลข BPM ที่จะส่งไปมือถือได้ทันที
ต้องผ่าน Signal-processing Pipeline เพื่อทำให้ลักษณะของ QRS Complex และ R-peaks ชัดพอสำหรับ Detection Logic
↓
Band-pass Filtering
↓
Derivative
↓
Squaring
↓
Moving Window Integration
↓
Peak Detection
↓
R-peak Classification
↓
RR Interval
↓
Heart Rate
Pan-Tompkins ทำงานอย่างไร?
ผู้สร้างเลือกใช้ Pan-Tompkins ซึ่งมาจาก Paper “A Real-Time QRS Detection Algorithm” โดย Jiapu Pan และ Willis J. Tompkins ในปี 1985
Algorithm ติดตามค่าหลักหลายตัว เช่น:
- SPK — Running Estimate ของ Signal Peak
- NPK — Running Estimate ของ Noise Peak
- TH1 — Threshold หลักสำหรับ Peak Detection
- TH2 — Threshold ที่สอง ซึ่ง README อธิบายโดยทั่วไปว่าใช้ประมาณ TH1 / 2
Parameter เหล่านี้มี Variant สำหรับทั้ง Filtered Signal และ Integrated Signal
INT Peaks กับ FILT Peaks
Source แยก Peak ออกเป็นสองกลุ่ม:
- FILT Peaks — Peak จาก Band-pass Filtered Signal
- INT Peaks — Peak จาก Signal หลัง Processing จนถึง Moving Window Integration
Logic จะเริ่มพิจารณา INT Peak ที่ผ่าน Threshold แล้วค้นหา FILT Peak ที่สอดคล้องกันภายในช่วงเวลาใกล้เคียง ก่อน Classify เป็น R-peak
Search-back เมื่ออาจพลาด Heartbeat
README ระบุว่า หากไม่มี R-peak ถูก Classify เป็นเวลามากกว่า 166% ของ RR Average Distance Algorithm จะเริ่ม Search-back และใช้ Threshold ที่ต่ำกว่า เพื่อหา Peak ที่อาจถูก Noise ทำให้พลาด
เริ่มจาก Raw ECG ก่อน Filtering
ก่อนทำ Filter ผู้สร้างเริ่มจากดู Raw Signal และเลือก Segment บางช่วง มาใช้ติดตามว่าแต่ละ Processing Stage เปลี่ยนรูป Signal อย่างไร
Band-pass Filter: ลดสิ่งที่ไม่ต้องการก่อนหา Peak
README ระบุว่า เพื่อให้ตาม Algorithm ใน Paper ผู้สร้าง Implement Band-pass ด้วยการใช้:
↓
High-pass Filter
↓
Band-pass Signal
Derivative: เน้นการเปลี่ยนแปลงของ Signal
หลัง Band-pass Signal ถูกส่งผ่าน Derivative Stage ตาม Filtering Pipeline ที่ผู้สร้างใช้ใน Pan-Tompkins Implementation
Squaring: ยกกำลัง Signal ก่อน Integration
หลัง Derivative Project ทำ Squaring ก่อนส่ง Signal เข้าสู่ Moving Window Integration
Moving Window Integration: Stage สุดท้ายก่อน Peak Detection
หลัง Stage นี้ Signal พร้อมสำหรับการค้นหา Peak และเข้าสู่ Adaptive Threshold Logic
ใน Current ESP32 Firmware Source ตั้ง MWI_WIN = 30 และ Sample Rate 200 Hz โดย Comment ใน Code ระบุว่า Window นี้เท่ากับ 150 ms สำหรับ Implementation ปัจจุบัน
30 Samples / 150 ms เป็นค่าของ Current Firmware: ไม่ควรสรุปว่าเป็น Universal Setting สำหรับ Pan-Tompkins ทุก Implementation
Peak Detection: ต้องดูทั้ง INT และ FILT Signal
ผู้สร้างอธิบายว่า Signal ที่ Noise ไม่สูงมาก สามารถมีทั้ง:
- R-peaks
- T waves
- Noise peaks
จึงไม่สามารถถือว่า Peak ทุกจุด คือ Heartbeat ได้ทันที
ตัวอย่าง Full Pan-Tompkins Detection
Detection ไม่ได้สมบูรณ์ 100%: ผู้สร้างระบุว่าใน Full Dataset สังเกตเห็น R-peak ที่พลาดหนึ่งจุดหลังช่วง 80+ วินาที และ 10 วินาทีแรกของ Dataset ไม่ได้ใช้ตรวจ Peak เพราะถูกใช้สำหรับ Initialization
ESP32 Firmware ทำ Real-time Processing อย่างไร?
Repository มี Main Tracker Firmware ที่อ่าน ECG ผ่าน ADC และทำ Filtering / Detection แบบ Per-sample
ค่าหลักใน Current Firmware
| Setting | ค่าจาก Current Firmware |
|---|---|
| Sampling Rate | 200 Hz |
| ECG Input | D0 |
| ADC Resolution | 12-bit |
| Buffer Length | 1000 |
| MWI Window | 30 Samples |
| Current Detection Mode | Mode 3 |
| Rate-limit Constant | 1.0 BPM ต่อวินาทีตาม Constant ใน Current Code |
#define BAUDRATE 115200
#define ECG_PIN D0
#define ADC_RES 12
#define SIM_USE false
#define DETECTION_MODE 3
#define MAX_BPM_DELTA_PER_SEC 1.0f
#define SAMPLE_HZ 200
#define PERIOD_US (1000000 / SAMPLE_HZ)
#define BUFFER_LEN 1000
const int MWI_WIN = 30;
Startup Period
Current Firmware แบ่งช่วงเริ่มต้นเป็น:
- 0–5 วินาที: Filter Warm-up
- 5–10 วินาที: Collect Initial Statistics เพื่อ Initialize Threshold
- หลัง 10 วินาที: เริ่ม Detection / Heart-rate Logic
นี่เป็น Implementation Detail ของ Current Firmware: ไม่ควรถือว่า Warm-up 5 วินาที, Initialization 10 วินาที หรือ Detection Mode 3 เป็น Requirement ของ Pan-Tompkins ทุกระบบ
ความแตกต่างระหว่าง README Algorithm กับ Current Firmware
Current ESP32 Code มี Logic เพิ่มเติมจากคำอธิบาย Algorithm ระดับภาพรวม เช่น:
- Refractory Period
- QRS Width Validation
- Detection Modes หลายแบบ
- Rate-limited Output
- Adaptive Threshold
ดังนั้นควรเรียกสิ่งเหล่านี้ว่า OpenHRStrap Firmware Implementation ไม่ใช่กฎมาตรฐานของ Original Pan-Tompkins ทั้งหมด
ส่ง Heart Rate ไปมือถือผ่าน BLE
OpenHRStrap ใช้ BLE Heart Rate Service เพื่อให้ Device Advertise ตัวเองในรูปแบบ Heart Rate Monitor
| BLE Item | ค่าจาก Official Code |
|---|---|
| Device Name | ESP32 HRM |
| Heart Rate Service | 180D |
| Heart Rate Measurement | 2A37 |
| Characteristic | Notify |
| Advertising Appearance | 832 ใน Source Code |
#define HEART_RATE_SERVICE_UUID "180D"
#define HEART_RATE_MEASUREMENT_UUID "2A37"
BLEDevice::init("ESP32 HRM");
BLEService* hrService =
pServer->createService(HEART_RATE_SERVICE_UUID);
pHeartRateChar = hrService->createCharacteristic(
HEART_RATE_MEASUREMENT_UUID,
BLECharacteristic::PROPERTY_NOTIFY
);
Main Tracker ส่ง BPM อย่างไร?
เมื่อ Main Firmware คำนวณ BPM ได้ และมี BLE Device เชื่อมต่ออยู่ จะสร้าง Heart Rate Measurement Packet แล้ว Notify
uint8_t hrmPacket[2];
hrmPacket[0] = 0x00;
hrmPacket[1] = (uint8_t)bpm;
pHeartRateChar->setValue(hrmPacket, 2);
pHeartRateChar->notify();
ระวัง BLE Test File — มันส่ง Fake BPM
Repository มีไฟล์ XIAO_WorkingBLE_HR.ino ที่มีหน้าที่ทดสอบ BLE Heart Rate Device แยกจาก ECG Algorithm
Test Code เริ่มจาก:
bpm = 50
แล้วไล่ค่า:
50 → 60 → 50
ทุกประมาณ 1 วินาที เพื่อทดสอบว่า BLE Notification และ App Integration ทำงาน
ห้ามเอา BLE Demo มาปนกับ ECG Detection: File ทดสอบ BLE ใช้ Fake Heart Rate ส่วน ESP32_HR_Tracker.ino จึงเป็น Code ที่อ่าน ECG, ตรวจ Peak, คำนวณ BPM และส่งค่าที่คำนวณผ่าน BLE
ดู OpenHRStrap และ Pan-Tompkins ทำงานจริง
Video ของผู้สร้างอธิบายทั้ง Prototype และแนวคิด Pan-Tompkins ที่ใช้ใน Project
Real-world 5K Test: Prototype ยังมี Gap ที่ต้องแก้
ผู้สร้างนำ V1 ไปทดลองวิ่ง 5K พร้อมใส่ Smartwatch ที่ใช้ PPG เป็น Comparison Device
ข้อมูลจากทั้งสอง Device ถูกนำออกจาก Strava แล้ว Align ตาม Timestamp เพื่อดู Trend
สิ่งที่ผู้สร้างสังเกต
- ช่วงเริ่มวิ่ง ทั้งสอง Signal ใกล้กันค่อนข้างดี
- เมื่อ Heart Rate สูงขึ้น Gap เริ่มมากขึ้น
- บางช่วงที่ Pace เปลี่ยน Signal กลับมาใกล้กัน
- บางช่วงแตกต่างกันมาก
- โดยรวม DIY Device มักแสดง Heart Rate ต่ำกว่า Smartwatch ใน Test นั้น
ยังสรุป Root Cause ไม่ได้: ผู้สร้างระบุว่า V1 ไม่มี Proper Raw Data Logging ระหว่าง Running Test จึงย้อนดูไม่ได้ว่า Raw ECG และ Algorithm ทำอะไรในช่วงที่ Heart Rate Diverge
Smartwatch ไม่ใช่ Medical Ground Truth: ผู้สร้างใช้ Smartwatch PPG เป็น Reference สำหรับ Comparison เท่านั้น และระบุเองว่าสัญญาณจาก Smartwatch ถูก Filter มาก
Static Data กับ Real-time Running ต้องแยกกัน
README Update ระบุว่า Pan-Tompkins Integration บน Static Data ทำงานได้ดีตามการทดสอบของผู้สร้าง
แต่:
Real-time Detection ระหว่างวิ่งยังเป็น Work in Progress
นี่เป็น Lesson สำคัญของ Project: Algorithm ที่ดูดีบน Recorded Dataset ยังต้องผ่าน Motion, Electrode Contact, Noise, Real-time Timing และ Data Logging ก่อนจะประเมิน Performance ในสถานการณ์จริงได้
V2 วางแผนแก้อะไรต่อ?
README ระบุว่า V2 อยู่ระหว่างพัฒนา และมีแนวทางหลักคือ:
- Custom PCB
- Upgraded AFE
- Proper Data Logging
Data Logging มีความสำคัญโดยเฉพาะกับ Running Test เพราะช่วยให้ย้อนกลับไปดู Raw Signal และ Algorithm State ในช่วงที่ Heart Rate ผิดจากที่คาด
Source ไม่ได้ให้ Final V2 Schematic, Final AFE Part Number, Release Date, Performance หรือ Accuracy Target จึงไม่ควรเติมข้อมูลเหล่านี้เอง
สิ่งที่ Source ยืนยัน และสิ่งที่ยังห้ามเดา
| Source ยืนยัน | Source ไม่ได้ระบุ / ยังไม่ Validate |
|---|---|
| XIAO ESP32 S3 + AD8232 | Clinical Accuracy |
| ECG-based Heart Rate Prototype | Medical Certification |
| Static-data Pan-Tompkins Test | Validated Real-time Running Accuracy |
| Current Firmware Sample Rate 200 Hz | Universal Optimal Sample Rate |
| Current Firmware ECG Pin D0 | Compatibility กับ Board Revision อื่น |
| Case ใช้ PLA + TPU | STL / Print Settings |
| 1S Li-ion + Boost to 5V | Battery Capacity / Runtime / Charging Spec |
| BLE Heart Rate Service | Compatibility กับทุก App / Phone |
| 5K Running Comparison | Root Cause ของ Divergence |
| Prototype / Hobby Project | ใช้วินิจฉัยหรือ Monitor โรค |
โปรเจกต์นี้มีหลายขั้น แนะนำอ่านต้นฉบับควบคู่กัน
OpenHRStrap มีทั้ง Hardware, Python Analysis, ESP32 Firmware, Pan-Tompkins Notebook และ BLE Test Code การอ่าน Repository ต้นฉบับ จะช่วยแยกได้ชัดว่า ส่วนไหนเป็น Algorithm Test, ส่วนไหนเป็น Main Firmware และส่วนไหนเป็น BLE Compatibility Test
FAQ: OpenHRStrap และ ESP32 Heart Rate Monitor
OpenHRStrap คืออะไร?
เป็น Open-source DIY Chest-strap Heart-rate Tracker ที่ผู้สร้างพัฒนาขึ้นเพื่อทดลอง ECG, Heart-rate Detection และ BLE บน ESP32
Project ใช้ ESP32 รุ่นไหน?
README ของ V1 ระบุ XIAO ESP32 S3
ใช้ ECG Module อะไร?
V1 ใช้ AD8232 ECG Module เป็น Analog Front End
ทำไม Chest Strap ต้องมี Reference Electrode เพิ่ม?
ผู้สร้างระบุว่า AD8232 Setup ทำให้ต้องมี Reference Electrode เพิ่ม จึงเย็บ Button เพิ่มที่ด้านหลัง Strap
Enclosure พิมพ์จากวัสดุอะไร?
Source ระบุ PLA และ TPU
Repository มี STL ให้พิมพ์ Case ตามหรือไม่?
จาก Repository ที่ตรวจ ไม่พบ STL / CAD Enclosure File มี Drawing และรูปประกอบ แต่ Source ไม่ได้ให้ Print Settings
Pan-Tompkins ใช้ทำอะไร?
Project ใช้สำหรับประมวลผล ECG และช่วยตรวจหา QRS / R-peaks ซึ่งนำไปใช้คำนวณ Heart Rate
Filtering Pipeline มีอะไรบ้าง?
README ระบุ Band-pass Filtering, Derivative, Squaring และ Moving Window Integration
INT Peak กับ FILT Peak ต่างกันอย่างไร?
FILT Peaks มาจาก Band-pass Filtered Signal ส่วน INT Peaks มาจาก Signal หลัง Processing จนถึง Moving Window Integration
Search-back ทำงานเมื่อไร?
README ระบุว่า Search-back ถูกใช้เมื่อไม่มี R-peak ถูก Classify นานกว่า 166% ของ RR Average Distance
Current ESP32 Firmware Sampling กี่ Hz?
Source Code ปัจจุบันกำหนดไว้ที่ 200 Hz
Current Firmware อ่าน ECG จาก Pin ไหน?
Source Code ปัจจุบันกำหนด ECG_PIN D0
OpenHRStrap ส่ง Heart Rate ผ่าน BLE อย่างไร?
Code ใช้ Heart Rate Service UUID 180D และ Heart Rate Measurement Characteristic 2A37 แบบ Notify
BLE Test Code ใช้ ECG จริงหรือไม่?
ไม่ File XIAO_WorkingBLE_HR.ino สร้าง Fake BPM ไล่จาก 50 ถึง 60 แล้วกลับไป 50 เพื่อทดสอบ BLE Heart Rate Service
Main Firmware ใช้ Fake BPM หรือไม่?
Main Tracker Firmware มี Logic อ่าน ECG, Filtering, Peak Detection, RR Interval และคำนวณ BPM ก่อนส่ง BLE
Real-time Detection ขณะวิ่งพร้อมใช้งานแล้วหรือยัง?
README Update ระบุว่ายังเป็น Work in Progress แม้ Static-data Integration จะให้ผลดีตามการทดสอบของผู้สร้าง
5K Running Test ได้ผลอย่างไร?
ช่วงเริ่มต้น OpenHRStrap และ Smartwatch มี Trend ใกล้กัน แต่เมื่อ Heart Rate สูงขึ้น Gap เพิ่มขึ้นในหลายช่วง และ DIY Device มักรายงานค่าต่ำกว่า Smartwatch ใน Test นั้น
OpenHRStrap แม่นเท่า Medical ECG หรือไม่?
Source ไม่ได้ให้ Clinical Accuracy, Sensitivity, Specificity หรือ Medical Validation และระบุชัดว่า Project ไม่ใช่ Medical Device
สามารถใช้ OpenHRStrap วินิจฉัยโรคได้ไหม?
ไม่ ผู้สร้างระบุชัดว่า Project นี้ไม่ควรใช้สำหรับ Diagnosis, Medical-condition Monitoring หรือ Health-critical Applications
V2 จะเพิ่มอะไร?
README ระบุแผน Custom PCB, upgraded AFE และ Proper Data Logging แต่ Source ยังไม่ได้ให้ Final V2 Specification
สรุป: คุณค่าของ OpenHRStrap อยู่ที่การเห็น Signal ทั้งเส้นทาง
OpenHRStrap ไม่ได้เป็นแค่ Project ที่ต่อ AD8232 เข้า ESP32 แล้วอ่านค่าจาก Analog Pin
สิ่งที่ทำให้มันน่าสนใจ คือการพา Signal ผ่านทั้งเส้นทาง:
↓
ECG Front End
↓
Raw Signal
↓
Pan-Tompkins Processing
↓
R-peak
↓
RR Interval
↓
BPM
↓
BLE Heart Rate Device
ในขณะเดียวกัน Running Test ของ V1 ก็แสดงชัดว่า Algorithm ที่ดูดีบน Recorded Data ยังไม่เท่ากับระบบที่พร้อมใช้งาน ระหว่างการเคลื่อนไหวจริง
และนั่นทำให้แผนของ V2 อย่าง Proper Data Logging, Custom PCB และ AFE ใหม่ มีความสำคัญต่อการ Debug มากกว่าแค่การปรับเลข BPM ให้ดูสวยขึ้น
สำหรับ Maker: Project นี้เป็น Case Study ที่ดี ในการเรียนรู้ Analog Biosignal, Digital Signal Processing, Embedded Real-time Code และ BLE ภายใน Project เดียว โดยต้องรักษาขอบเขตว่าเป็นงานทดลอง ไม่ใช่อุปกรณ์ทางการแพทย์
References / แหล่งข้อมูลต้นฉบับ
- GitHub — MilosRasic98/OpenHRStrap
- OpenHRStrap — Official README
- OpenHRStrap — Main ESP32 Heart-rate Tracker Firmware
- OpenHRStrap — BLE Heart-rate Test Firmware
- OpenHRStrap — Pan-Tompkins Python Notebook
- OpenHRStrap — Strava Data Analysis Notebook
- Pan & Tompkins — A Real-Time QRS Detection Algorithm
- ESP32 Chest Strap Heart Rate Sensor — Project Video
กำลังทำ ESP32, Sensor หรือ Embedded Project?
Project แบบ OpenHRStrap ต้องมองทั้ง Development Board, Analog Sensor, Signal Processing, Power และ Wireless Communication ไปพร้อมกัน
ถ้ากำลังทำ ESP32, Biosignal Experiment, Sensor หรือ Embedded Project สามารถสอบถามทีม Globalbyte เรื่อง Development Board, Sensor Module และ Maker Accessories ที่เหมาะกับงานทดลองได้
บทความนี้ไม่ได้ยืนยันว่า XIAO ESP32 S3, AD8232 หรืออุปกรณ์รุ่นเดียวกับ Project มี Stock อยู่ที่ Globalbyte กรุณาสอบถามรุ่นและ Availability ก่อนสั่งซื้อ
อุปกรณ์และ Module ที่พูดถึงในบริบทนี้ ไม่ได้หมายความว่า Globalbyte รับรองให้ใช้งานทางการแพทย์