kết quả đo trên điện thoại:
+ Ta thiết lập tạo project mới, sau đó thiết kế giao diện như mong muốn bằng cách sử dụng các công cục có sẵn ở mục “palette”.
Hình 2. 11 Giao diện sau khi thiết kế xong
+ Sau đó viết chương trình cho phần mềm. Vào mục blocks để xây dựng chương trình, ở đây các địa chỉ đã có sẵn từ công cụ, ta chỉ cần add đúng các cấu trúc để phần mềm hoạt động.
+ Để MIT app có thể hiển thị đồng thời thông tin từ esp32s2 truyền lên Firebase và MIT app ta cần copy API key của Firebase sau đó nhập vào mục Firebase token trên Web MIT.
Hình 2. 12 Chương trình sau khi thiết lập xong
Như vậy ta chỉ cần vào mục Buil chọn Android app(apk) xuất file APK để cài đặt trên điện thoại. vậy là đã hoàn thành xong phần mềm hiển thị.
Hình 2. 13 Sơ đồ đấu nối
Bảng địa chỉ của sơ đồ đấu nối:
MAX30102 ESP32S2
Vin 3.3V
GND GND
SCL GPIO 21
SDA GPIO 22
Bảng 2. 2 Bảng địa chỉ đầu vào của cảm biến MAX30102 sử dụng giao thức truyền thông I2C
SDA GPIO 21
Bảng 2. 3 Bảng địa chỉ đầu ra của màn hình OLED sử dụng giao thức truyền thông I2C
2.4.2 Giải thích sơ đồ
+ ESP32S2 được cấp nguồn 5V để hoạt động.
+ Chân GPIO21, GPIO22 của ESP32S2 được kết nối với chân SDA, SCL của màn hình OLED 1.3 inch để hiển thị các dữ liệu và thời gian thực.
+ Cảm biến nhịp tim và màn hình OLED được cấp nguồn 3.3V lấy từ ngõ ra của ESP32S2. Kết nối với ESP32 qua chân SDA và SCL.
+ Sau khi nhận được tín hiệu từ cảm biến chuyển về vi xử lý, tính toán và đưa ra nhịp tim trung bình và nồng độ oxy có trong máu, lập tức truyền giữ liệu lên web firebase và phần mềm có trên điện thoại, cùng lúc đó màn hình Oled hiển thị kết quả tính toán được.
Lưu đồ giải thuật:
màn hình và cập nhật lên App đã lập trình trước đó.
3.1.2 Giải thuật xử lý tín hiệu và tính toán các thông số nhịp tim và spo2
Giải thuật đo nhịp tim:
+ Để khảo sát nhịp tim, chúng em đã sử dụng mô hình dạng sóng điện tâm đồ (ECG)là đồ thị ghi những thay đổi của dòng điện trong tim.
+ Mục đích của ta là xác định được chính xác thời điểm tim đập, ít nhất là hai lần đập liên tiếp, gọi là Inter Beat Interval (IBI), sau đó đo thời gian giữa chúng và tính toán BPM.
Hình 3. 2Dạng sóng điện tâm đồ
Giải thuật đo nồng độ Oxy trong máu:
+ Đo oxy xung là một phương pháp được sử dụng để ước tính phần trăm oxy liên kết với hemoglobin trong máu. Giá trị gần đúng với SaO2 được ký hiệu là SpO2 (độ bão hòa oxy máu ngoại vi).[7]
+ Thiết bị sử dụng các diode phát sáng có màu sắc khác nhau kết hợp với cảm biến nhạy sáng để đo sự hấp thụ ánh sáng đỏ và hồng ngoại ở ngọn chi, dựa trên khác biệt về hấp thụ ánh sáng giữa hemoglobin mang oxy và hemoglobin khử oxy
Hình 3. 3Lưu đồ thuật toán đo nhịp tim Irvalue. Finger ON Display.print(beatAvg) Display.print(“Bpm”) Display.print(“%”) beatAvg > 30 Display.print(ESPO2) Cheackforbeat(ir value)== true
Delta= milis () – lastbeat Lastbeat= milis () Beatminuter = 60(delta/100)
< beatminuter
20 < 255
thuật xử lý dữ liệu đo nhịp tim và nồng độ oxy
+ Đầu tiên, đọc tín hiệu analog từ cảm biến, tăng giá trị biến sampleCounter, đây là biến giúp theo dõi thời gian. Biến N nhằm giúp tránh nhiễu.
+ Trước khi xác định là có nhịp tim hay không, cần đặt 1 ngưỡng tối thiểu 250mS, tức giá trị BPM sẽ không thể vượt quá 240 BPM. Khi biên độ tín hiệu qua ngưỡng thresh và đã bỏ qua khoảng thời gian là 3/5 IBI, tức ghi nhận có 1 nhịp tim, tiến hành bật cờ Pulse thành true và cho phép LED sáng. Khoảng thời gian từ thời điểm đang xét trở về lastBeatTime ngay trước nó chính là IBI, sau đó cập nhật giá trị mới cho lastBeatTime.
+ Biến firstBeat và secondBeat được khởi tạo tuần tự là true và false. Nên hiện tại lần đầu tiên sau khi tìm được nhịp tim và bật cờ Pulse thành true, điều kiện khởi tạo của biến firstBeat sẽ thực thi hàm return, tức ta bỏ không lấy giá trị IBI đầu tiên, nhằm giảm thiểu sai số phép đo (chờ cho hệ thống hoạt động ổn định), tính toán sẽ được thực hiện vào IBI thứ 2.
+ Có Pulse là khi giá trị biên độ rơi vào cạnh lên của dạng sóng, nên khi biên độ tín hiệu dưới ngưỡng thresh và cờ Pulse là true, tức tín hiệu đang ở cạnh xuống, vậy cho tắt LED và đặt lại cờ Pulse thành false, sẵn sàng cho hệ thống tìm beat tiếp theo.
Hình 3. 4 Lưu đồ thuật toán đo nồng độ Oxy RET Ratepot % = RATE_SIZE Particlesensor.avaiable i++; red= particlesensor; ir = particlesensor; I% Num == 0 SPO2=-23.3*( -0.4) +100R ESPO2=Espo2*Fspo2+(1.10-Fspo2) *Spo2 ESPO2<mininum ESPO2>100 ESPO2==90 ESPO2==99,9
trung bình bằng bộ lọc thông thấp, từ đó tính được tổng bình phương của thành phần thay thế của mức đỏ và lượng tia hồng ngoại.
+ Nếu có trường hợp khi nồng độ Oxy đo được thấp dưới 90% thì màn hình sẽ gán giá trị SPO2 bằng 90%, và ngược lại nếu nồng độ OXY tính được vượt qua ngưỡng 100% thì gán giá trị SPO2 là 99,9%.
Giải thích lưu đồ:
Sau khi đã tính toán và xử lý các dữ liệu về nhịp tim và nồng độ Oxy,thì khối hiển thị sẽ làm việc để truyền tải dữ liệu đã được xử lý lên màn hình OLED và App mà đã được lập trình khai báo trước đó.
Từ những thuật toán mà chúng ta đã xây dựng ở trên dựa vào đó chúng ta bắt đầu viết chương trình cho hệ thống, sử dụng phần mềm Arduino IDE để viết ta có được chương trình như sau: (phụ lục)
Đọc dữ liệu đã xử lý Kiểm tra có dữ liệu
không?
Truyền giá trị BPM và nồng độ Oxy đến khối hiển thị
Hiển thị giá trị BPM và % SPO2 LÊN OLED và APP
RET
NO
YES
Hình 3. 5Lưu đồ giải thuật hiển thị dữ liệu
vỏ hộp cho thiết bị bộ điều khiển.
+ Sử dụng công nghệ in 3D để tạo vỏ ngoài cho mô hình
+ Phần nắp của thiết bị ở phía trên cùng, là nơi đặt màn hình Oled 1.3 inch, kích thước dài 120mm rộng 90mm cao 20mm. Sau đó tạo phần đặt màn hình với kích thước là 35(mm) x 28(mm)
Hình 3. 6Phần nắp
Sau khi đã thiết kế xong phần nắp, tiếp đến là phần đáy hộp của thiết bị, tại vị trí này sẽ đặt pin và module ESP32, cùng đó là cổng sạc pin cho thiết bị, kích thước thước dài 120mm rộng 90mm cao 20mm, bằng với nắp thiết bị.
Hình 3. 7Phần đáy
Sau cùng là phần thân hộp là vị trí đặt ngón tay để tiến hành đo, với kích thước rộng 90mm dài 120mm cao 70mm, đường kính đặt ngón tay là 40mm, vị trí đặt cảm biến có kích thước 10mm x 10mm.
Hình 3. 8Phần thân hộp
3.2.2 Lắp ráp sản phẩm
Sau khi đã in vỏ sản phẩm thì tiến hành lắp đặt cảm biến Max30102, màn hình Oled 1.3 inch, pin và kit esp32s2 vào đúng vị trí.
Hình 3. 9 Thiết bị sau khi lắp ráp hoàn thành