60 Trang 11 TÓM TẮT Trong bài luận văn này, nhóm thực hiện đã “Thiết kế và thi công hệ thống theo dõi bệnh nhân và quản lý phòng bệnh qua Webserver”, hệ thống giám sát số liệu trong thờ
CƠ SỞ LÝ THUYẾT
Tổng quan về nhịp tim, nồng độ Oxy trong máu và thân nhiệt người
Nhịp tim, hay còn gọi là BPM (Beat Per Minute), là số lần co thắt của tim trong một phút và đóng vai trò quan trọng trong chu trình sống của con người Nhịp tim có thể thay đổi đáng kể khi chúng ta tham gia vào các hoạt động mạnh như chạy hoặc thể thao, cũng như khi bị bệnh Tư thế đo nhịp tim cũng ảnh hưởng đến kết quả Nhịp tim là trung tâm của quá trình tuần hoàn máu, giúp cung cấp dinh dưỡng cho các tế bào trong cơ thể.
Nhịp tim bình thường dao động từ 60 đến 100 nhịp mỗi phút Nhịp tim chậm được định nghĩa là dưới 60 nhịp, trong khi nhịp tim nhanh là trên 100 nhịp Thời điểm lý tưởng để đo nhịp tim chính xác nhất là vào buổi sáng sau khi thức dậy.
2.1.2 Nồng độ Oxy trong máu
Oxy đóng vai trò thiết yếu cho sự sống, khi hít thở, khí oxy được đưa vào phổi và vận chuyển đến các cơ quan qua máu nhờ Hemoglobin (Hb) Một phân tử Hemoglobin có thể kết hợp với 4 phân tử Oxy để đạt độ bão hòa tối ưu Chỉ số SpO2, biểu thị độ bão hòa Oxy trong máu, cho biết tỷ lệ Hemoglobin có Oxy Chỉ số này rất quan trọng, vì khi máu thiếu Oxy, các cơ quan sẽ bị ảnh hưởng xấu, làm giảm khả năng hoạt động Bệnh nhân có chỉ số SpO2 dưới 94 cần được theo dõi cẩn thận và kết hợp với các triệu chứng lâm sàng khác để có thể cấp cứu kịp thời.
Bệnh nhân nặng thường có chỉ số SpO2 dưới 94% trong không khí phòng, nhịp thở trên 25 lần/phút, gặp khó thở nghiêm trọng, co kéo cơ hô hấp phụ, nhịp tim không ổn định, và huyết áp tăng Đây là những dấu hiệu cho thấy bệnh nhân có nguy cơ cao về tình trạng bệnh trở nặng.
2.1.3 Thân nhiệt cơ thể người
Năng lượng trong cơ thể người được sản xuất liên tục thông qua các quá trình chuyển hóa, trong đó sự cân bằng thân nhiệt đóng vai trò quan trọng cho hoạt động bình thường của quá trình này.
Ba yếu tố quan trọng ảnh hưởng đến tình trạng bệnh nhân bao gồm nhịp tim, độ bão hòa Oxy trong máu và thân nhiệt Nhịp tim và nồng độ Oxy trong máu là hai yếu tố chính để xác định mức độ nguy kịch của bệnh nhân Thân nhiệt đóng vai trò hỗ trợ trong việc xác định liệu bệnh nhân có mắc bệnh hay không, bên cạnh các triệu chứng khác.
Linh kiện đƣợc sử dụng
Trong quá trình học tập và nghiên cứu, chúng ta đã tiếp xúc với nhiều loại vi điều khiển Để đáp ứng yêu cầu của đề tài, cần một vi điều khiển hỗ trợ kết nối wifi và có bộ xử lý mạnh mẽ Vì vậy, trong dự án này, chúng tôi đã chọn sử dụng module wifi NodeMCU ESP32.
NodeMCU ESP32 của Espressif là giải pháp Wi-Fi SoC tích hợp cao, đáp ứng nhu cầu sử dụng năng lượng hiệu quả và thiết kế nhỏ gọn trong ngành Internet of Things Với khả năng kết nối mạng Wi-Fi hoàn chỉnh, ESP32 có thể hoạt động độc lập hoặc làm slave cho MCU chủ Khi được nạp phần mềm, ESP32 khởi động nhanh từ bộ nhớ flash, với bộ nhớ đệm tốc độ cao tích hợp giúp tối ưu hóa hiệu suất hệ thống Ngoài ra, ESP32 hỗ trợ truy cập internet không dây đơn giản qua giao diện SPI/SDIO hoặc I2C/UART Nó cũng có thể được tích hợp với các module cảm biến và thiết bị ứng dụng khác thông qua các GPIO, cho phép kết nối với màn hình LCD, chip RTC, module GPS và màn hình cảm ứng.
SD, v.v… NodeMCU có thể đƣợc cấp nguồn bằng hai cách cắm Micro USB hoặc cấp nguồn qua chân nguồn cung cấp bên ngoài (chân VIN)
ESP32 node Hình 2.2: Kí hiệu Module ESP32 node MCU
Hình 2.3: Sơ đồ chân của ESP32 NodeMCU
Một số thông số kỹ thuật cơ bản của ESP32:
Micro-MCU 32 bit tích hợp, tốc độ 80 MHz và 160 MHz, hỗ trợ RTOS
WiFi: 2.4 GHz hỗ trợ bảo mật WPA/WPA2
Hỗ trợ UART, I2C, SPI, I2S, PWM, GPIO, điều khiển từ xa IR
Có RAM 128 KB, bộ nhớ Flash 4MB để lưu trữ dữ liệu và chương trình
Giao tiếp: Cable Micro USB (tương đương cáp sạc điện thoại)
Cấp nguồn: 5VDC (qua MicroUSB hoặc Vin)
GPIO giao tiếp mức: 3.3VDC
Tích hợp Led báo trạng thái, nút Reset, Flash
Phạm vi nhiệt độ hoạt động: -40C ~ 125C
Tích hợp giao thức TCP/IP
Lập trình trên các ngôn ngữ: C/C++, Micropython,… Hỗ trợ chức năng liên kết thông minh cho cả thiết bị Android và iOS
Hình 2.4: Sơ đồ nguyên lý module ESP32
2.2.2 Module cảm biến nhịp tim và nồng độ oxy trong máu MAX30102 [7]
Module MAX30102 là cảm biến đo mức độ bão hòa oxy trong máu và nhịp tim, với giá trị SpO2 bình thường từ 90 đến 100% Cảm biến quang học này hoạt động bằng cách phát ra hai bước sóng ánh sáng từ đèn LED đỏ và hồng ngoại, sau đó đo độ hấp thụ của mạch máu Thiết kế LED được tối ưu hóa cho việc đọc dữ liệu qua đầu ngón tay Tín hiệu thu được được xử lý bởi bộ xử lý tín hiệu tương tự có độ nhiễu thấp và truyền tới MCU qua BUS I2C.
Hình 2.5: Module MAX30102 Hình 2.6: Module MAX30102 mặt sau
Bảng 2.1: Thông số kỹ thuật của MAX30102
STT Thành phần Thông số kỹ thuật
2 Dòng điện đầu vào 20 mA
3 Bước sóng Red LED 670 nm
4 Bước sóng IR LED 900 nm
5 Phạm vi nhiệt độ hoạt động -40℃ đến +85℃
Hình 2.8: Cặp đèn LED và bộ cảm biến quang của MAX30102
Bảng 2.2: Cấu hình chân của module MAX30102
Số chân Tên Chức năng
3 SCL Chân tín hiệu Clock đƣợc sử dụng cho giao tiếp I2C
4 SDA Chân dữ liệu đƣợc sử dụng cho giao tiếp I2C
Dòng này là dòng hở, được kéo CAO bởi điện trở tích hợp Khi xảy ra ngắt, chân INT sẽ ở mức THẤP và duy trì trạng thái này cho đến khi ngắt được xóa.
Cảm biến bao gồm một cặp điốt phát quang phát ra ánh sáng đỏ đơn sắc với bước sóng 640nm và ánh sáng hồng ngoại có bước sóng 940nm, cùng với một bộ cảm biến quang.
MAX30102 hoạt động bằng cách chiếu ánh sáng từ hai đèn vào ngón tay hoặc dái tai, nhằm đo lượng ánh sáng phản xạ qua cảm biến quang Phương pháp này, được gọi là Photoplethysmogram, cho phép phát hiện nhịp tim và đo mức oxy trong máu.
Hemoglobin oxy (HbO2) trong máu động mạch có khả năng hấp thụ ánh sáng hồng ngoại (IR) Khi nồng độ hemoglobin trong máu tăng lên, màu sắc của máu trở nên đỏ hơn và khả năng hấp thụ ánh sáng IR cũng tăng Khi máu được bơm qua ngón tay theo nhịp tim, lượng ánh sáng phản xạ sẽ thay đổi, tạo ra dạng sóng biến thiên ở đầu ra của bộ tách sóng quang Việc chiếu ánh sáng liên tục và đọc kết quả từ bộ cảm biến quang sẽ giúp bạn nhanh chóng nhận được kết quả đo nhịp tim (HR).
Đo oxy xung là phương pháp đo lường dựa trên nguyên tắc hấp thụ ánh sáng đỏ và hồng ngoại (IR), cho phép xác định lượng oxy trong máu Biểu đồ dưới đây thể hiện phổ hấp thụ của hemoglobin oxy hóa (HbO2) và hemoglobin khử oxy (Hb), giúp hiểu rõ hơn về sự thay đổi hấp thụ ánh sáng tùy thuộc vào nồng độ oxy trong cơ thể.
Hình 2.9: Phổ hấp thụ của các phân tử hemoglobin đƣợc oxy hóa và khử oxy [8]
Máu khử oxy hấp thụ ánh sáng đỏ (640nm) nhiều hơn, trong khi máu được oxy lại hấp thụ ánh sáng hồng ngoại (940nm) nhiều hơn Bằng cách đo tỷ lệ giữa ánh sáng hồng ngoại và ánh sáng đỏ mà bộ tách sóng quang thu nhận, mức oxy trong máu (SpO2) có thể được tính toán.
Hình 2.10: Sơ đồ nguyên lý cảm biến nhịp tim và nồng độ oxy trong máu MAX30102
Thƣ viện sử dụng để MAX30102 giao tiếp với vi điều khiển: MAX30102_PulseOximeter.h
Module MAX30102 được trang bị bộ đệm FIFO với khả năng lưu trữ 16 mẫu dữ liệu, mỗi mẫu bao gồm một từ IR và một từ RED Tổng dung lượng lưu trữ của FIFO là 64 byte, với mỗi mẫu chiếm 4 byte Bộ đệm này giúp giảm tải cho bộ vi điều khiển trong việc đọc từng mẫu mới từ cảm biến, từ đó tiết kiệm năng lượng cho hệ thống Cấu trúc của FIFO được minh họa trong Hình 2.11.
Dữ liệu FIFO được căn trái, với bit MSB luôn ở vị trí bit 15, bất kể độ phân giải ADC Mỗi mẫu bao gồm dữ liệu IR và dữ liệu RED, yêu cầu 4 lần đọc để lấy một mẫu Con trỏ ghi tăng lên khi có mẫu mới được thêm vào FIFO, trong khi con trỏ đọc tự động tăng sau mỗi lần đọc mẫu Trong chế độ chỉ nhịp tim, byte thứ 3 và thứ 4 của mỗi mẫu sẽ trả về số 0, nhưng cấu trúc cơ bản của FIFO vẫn không thay đổi.
Hình 2.11: Biểu diễn cấu trúc của FIFO bằng đồ thị [7]
Hoạt động ghi dữ liệu: Đối với hoạt động ghi, slave ID có 7 bit B7 - B1 (mặc định 0b1010111), bit slave
ID (B7 - MSB) được truyền đầu tiên, tiếp theo là địa chỉ thanh ghi byte và một hoặc nhiều byte dữ liệu Con trỏ địa chỉ thanh ghi tự động tăng sau mỗi byte dữ liệu nhận được Quá trình truyền dữ liệu kết thúc với tín hiệu STOP (P) Thao tác ghi được minh họa trong Hình 2.12.
Hình 2.12: Ghi 1 byte dữ liệu vào MAX30102 [7]
Hoạt động đọc dữ liệu trên MAX30102 yêu cầu thực hiện hai hoạt động I2C Đầu tiên, Slave ID được gửi, sau đó là điều kiện bắt đầu (Sr) và Slave ID đã đọc MAX30102 bắt đầu gửi dữ liệu từ thanh ghi được chọn, với con trỏ đọc tự động tăng lên, cho phép tiếp tục gửi dữ liệu từ các thanh ghi bổ sung cho đến khi nhận điều kiện STOP (P) Tuy nhiên, khi đọc thanh ghi FIFO_DATA, con trỏ đọc không tăng lên, và để đọc thanh ghi tiếp theo, cần lệnh ghi I2C để thay đổi vị trí con trỏ Khi FIFO_DATA được đọc, các byte dữ liệu tiếp theo sẽ chứa nội dung của FIFO mà không làm tăng con trỏ đọc.
Hình 2.13: Đọc nhiều byte dữ liệu từ MAX30102
2.2.3 Module cảm biến nhiệt độ cơ thể MLX90614
Module MLX90614 là cảm biến nhiệt độ hồng ngoại không tiếp xúc, cho phép đo nhiệt độ mà không cần tiếp xúc vật lý Chỉ cần hướng cảm biến vào đối tượng cần đo, nó sẽ phát hiện nhiệt độ thông qua việc hấp thụ sóng hồng ngoại phát ra MLX90614 cung cấp hai phép đo nhiệt độ: nhiệt độ của đối tượng và nhiệt độ môi trường Module này giao tiếp với bộ vi điều khiển qua giao thức I2C.
Hình 2.14: Module MLX90614 Hình 2.15: Sơ đồ chân MLX90614 Hình 2.16: Ký hiệu MLX90614
Bảng 2 4: Thông số kỹ thuật của MLX90614
STT Thành phần Thông số kỹ thuật
3 Nhiệt độ đối tƣợng -70 ° C đến 382,2 ° C
4 Nhiệt độ môi trường -40 ° C đến 125 ° C
Bảng 2 5:Cấu hình sơ đồ chân MLX90614
Số chân Tên Mô tả
1 Vin (Nguồn điện) Vdd có thể đƣợc sử dụng để cấp nguồn cho cảm biến, thường sử dụng 3.3 V
3 SDA Chân dữ liệu nối tiếp đƣợc sử dụng cho giao tiếp I2C
4 SCL Chân tín hiệu clock đƣợc sử dụng cho giao tiếp I2C
Cảm biến MLX90614 là thiết bị đo nhiệt độ hồng ngoại dựa trên định luật Stefan-Boltzmann, cho rằng mọi vật thể đều phát ra năng lượng hồng ngoại (IR) tương ứng với nhiệt độ của chúng Cảm biến này xác định nhiệt độ của đối tượng bằng cách đo lường năng lượng IR phát ra từ nó Bên trong, MLX90614 bao gồm hai thành phần chính: đầu dò nhiệt hồng ngoại và bộ xử lý ứng dụng điều hòa tín hiệu (ASSP), với sơ đồ khối thể hiện cả nhiệt điện và ASSP.
Hình 2.17: Sơ đồ khối bên trong cảm biến nhiệt độ cơ thể MLX90614
Chuẩn giao tiếp SPI
Để đảm bảo giao tiếp hiệu quả giữa các module trong hệ thống, việc sử dụng các chuẩn truyền là rất quan trọng Các chuẩn này không chỉ giúp tổ chức mà còn hỗ trợ trong việc lựa chọn thiết bị phù hợp với yêu cầu của hệ thống Trong các hệ thống nhúng, các giao thức phổ biến nhất được sử dụng là SPI, I2C và UART.
I2C là một bus MULTI MASTER SERIAL cho phép kết nối nhiều thiết bị điều khiển bus cùng lúc Công nghệ này được phát minh bởi Phillips và đã trở thành tiêu chuẩn trong việc giao tiếp giữa các thiết bị điện tử.
Inter-Integrated Circuit Một số IC nhớ nhƣ EEPROM và một số RTC nhƣ DS1307 sử dụng giao tiếp I2C để giao tiếp với vi điều khiển
Hình 2.28: Sơ đồ kết nối I2C tổng quát
Trong giao thức I2C, chỉ cần hai đường truyền dữ liệu hai chiều là Serial Data (SDA) và Serial Clock (SCL) để kết nối và truyền thông tin giữa các thiết bị Mỗi thiết bị I2C được xác định bằng một địa chỉ 7 bit duy nhất, trong đó thiết bị khởi đầu giao tiếp được gọi là MASTER MASTER điều khiển tín hiệu clock, trong khi thiết bị được định địa chỉ bởi MASTER được gọi là SLAVE Các tín hiệu xung nhịp trên bus I2C luôn do các thiết bị MASTER tạo ra, với mỗi MASTER tạo ra tín hiệu clock riêng khi truyền dữ liệu.
Master bắt đầu giao tiếp bằng cách phát tín hiệu START, tiếp theo là địa chỉ của thiết bị mà nó muốn truy cập Tất cả các IC trên bus sẽ so sánh địa chỉ này với địa chỉ của chúng; nếu không khớp, dữ liệu sẽ không được truyền và sẽ chờ đến bit STOP Nếu địa chỉ khớp, slave sẽ gửi tín hiệu ACK để xác nhận rằng chúng đã sẵn sàng truyền dữ liệu.
Sau khi xác nhận địa chỉ của slave, master tiến hành truyền dữ liệu Đối với thao tác ghi, master gửi dữ liệu và slave xác nhận từng byte đã nhận Trong trường hợp thao tác đọc, master giải phóng dòng dữ liệu và clock từ slave Sau khi nhận mỗi byte, master tạo điều kiện xác nhận trên bus, và xác nhận này sẽ bị bỏ qua sau byte cuối cùng Cuối cùng, master kết thúc hoạt động bằng cách tạo điều kiện stop trên bus, và có thể hủy truyền dữ liệu bất kỳ lúc nào bằng cách tạo điều kiện stop.
Ngôn ngữ lập trình và các thƣ viện sử dụng
2.4.1 Ngôn ngữ lập trình Php
Ngôn ngữ PHP, viết tắt của Personal Home Page (hiện nay là Hypertext Preprocessor), là một ngôn ngữ kịch bản được sử dụng phổ biến trong phát triển ứng dụng trên máy chủ.
Khi lập trình phần mềm bằng ngôn ngữ PHP, các lệnh sẽ được xử lý trên máy chủ, từ đó tạo ra mã HTML cho trình duyệt Điều này giúp các ứng dụng trên website hoạt động một cách hiệu quả và dễ dàng.
2.4.2 Ngôn ngữ lập trình Java
Java là một ngôn ngữ lập trình bậc cao, được phát triển bởi Sun Microsystems và ra mắt vào năm 1995 Ngôn ngữ này có khả năng chạy trên hầu hết các hệ điều hành, bao gồm Windows, MacOS và nhiều phiên bản khác của UNIX.
Ngoài Java, các ngôn ngữ như Kotlin, C++, C# và Python cũng được sử dụng trong phát triển ứng dụng di động Tuy nhiên, Python ít phổ biến hơn do Android không hỗ trợ Python gốc, cần phải chuyển đổi thành APK để chạy C++ và C# là những ngôn ngữ mạnh mẽ nhưng Java và Kotlin vẫn là hai ngôn ngữ phổ biến nhất Java đã có mặt từ sớm, nhưng Kotlin đang dần chiếm ưu thế nhờ vào những lợi ích như thư viện đa dạng giúp tiết kiệm thời gian lập trình, mã đơn giản, ít lỗi và dễ bảo trì Đặc biệt, Kotlin đã được Google công nhận là ngôn ngữ chính thức để phát triển ứng dụng Android.
Java là một ngôn ngữ lập trình mạnh mẽ, nơi mọi thứ đều là đối tượng, giúp dễ dàng mở rộng và tương tác Tính năng đa luồng của Java cho phép chạy nhiều tác vụ đồng thời, mang lại hiệu suất mượt mà cho các ứng dụng Hơn nữa, Java có tính bảo mật cao, với khả năng phát triển hệ thống không virus và sử dụng kỹ thuật xác thực dựa trên mã hóa khóa công khai Nhờ những ưu điểm này, Java vẫn giữ vị trí quan trọng trong việc phát triển ứng dụng di động cho smartphone.
Mặc dù Java không phổ biến bằng Kotlin, nhóm thực hiện đề tài vẫn quyết định lựa chọn Java để thiết kế ứng dụng nhờ vào những ưu điểm nổi bật của nó.
2.4.3 Giao thức HTTP truyền tải dữ liệu giữa client và server
HTTP, hay Giao thức truyền tải siêu văn bản, là một giao thức thiết yếu cho việc giao tiếp giữa trình duyệt web và máy chủ Hoạt động theo mô hình Client-Server, HTTP thực hiện quy trình yêu cầu - trả lời, cho phép truyền tải siêu văn bản, hình ảnh, âm thanh, văn bản và video qua internet Với khả năng truyền dẫn đa dạng và hiệu quả, HTTP đã trở thành giao thức phổ biến trong việc truyền dữ liệu trên các web server, đặc biệt trong các hệ thống IoT.
Quá trình truyền tải dữ liệu bắt đầu khi người dùng truy cập vào một website, thiết lập giao thức HTTP giữa máy khách và máy chủ Kết nối này được thực hiện qua Socket Interface, với các thông tin như địa chỉ IP, giao thức TCP và port Sau khi kết nối thành công, máy khách gửi yêu cầu (request) đến máy chủ, và máy chủ sẽ phản hồi (response) với các tệp như HTML, tệp văn bản hoặc các loại tệp khác được đóng gói.
Hình 2.30: Nguyên lý hoạt động của giao thức HTTP
2.4.4 Firebase, Firebase realtime database và Firebase Authentication
Firebase là một nền tảng cơ sở dữ liệu đám mây do Google phát triển, sở hữu một hệ thống máy chủ mạnh mẽ Dữ liệu được cập nhật cho các máy khách dưới định dạng JSON.
Dữ liệu đƣợc cập nhật cho các máy khách theo thời gian thực Firebase có các ƣu điểm nhƣ sau:
Cơ sở dữ liệu thời gian thực: Các client đƣợc cập nhật dữ liệu trong thời gian thực
Dịch vụ phụ: Tính năng xác thực đến từ Firebase Authentication cùng với rất nhiều thƣ viện hỗ trợ
Tính năng lưu trữ: Cho phép tải về các dữ liệu được lưu
Tính năng bảo mật: Sự bảo mật chặt chẽ khi đƣợc định đúng cấu hình, nó sẽ trở thành một nơi lưu trữ thông tin tuyệt mật
Bộ nhớ đệm tốc độ cao: Thời gian tải trang web cực kỳ nhanh giúp nâng cao trải nghiệm của người dùng
Firebase Realtime Database là một dịch vụ cơ sở dữ liệu lưu trữ trên đám mây, cho phép người dùng truy cập dữ liệu một cách dễ dàng Để đảm bảo an toàn cho dữ liệu, người dùng cần thiết lập các quy tắc bảo mật ở chế độ mặc định, nhằm ngăn chặn truy cập trái phép Ngược lại, việc để cơ sở dữ liệu ở chế độ công khai có thể gây ra rủi ro lớn cho thông tin của người dùng.
Các khả năng chính của Firebase Realtime Database là:
Thời gian thực: Tính năng đồng bộ dữ liệu khi xuất hiện bất cứ thay đổi nào sẽ đƣợc cập nhật trong vòng vài mili giây
Tính năng đồng bộ dữ liệu cho phép người dùng lưu trữ thông tin ngay cả khi không có kết nối internet, và dữ liệu sẽ tự động được đồng bộ hóa khi người dùng trở lại trực tuyến.
Firebase Realtime Database cho phép truy cập trực tiếp từ điện thoại hoặc máy tính qua trình duyệt mà không cần máy chủ ứng dụng Nó tích hợp các quy tắc bảo mật và xác thực dữ liệu, đảm bảo rằng các quy tắc này được thực thi ngay khi dữ liệu được đọc hoặc ghi.
Firebase Authentication là dịch vụ xác thực của Firebase, cho phép người dùng đăng nhập qua Email, Facebook, và Twitter mà không cần tạo giao diện đăng nhập riêng Thay vào đó, ứng dụng có thể sử dụng giao diện người dùng tích hợp của Firebase Quy trình xác thực bao gồm việc sử dụng email và mật khẩu, cũng như SMS hoặc mã OTP Firebase cũng hỗ trợ người dùng thiết lập lại mật khẩu nếu quên Dịch vụ này giúp bảo mật thông tin cá nhân và tài khoản của người dùng khỏi bị đánh cắp.
THIẾT KẾ HỆ THỐNG
Giới thiệu
Nhóm đã bắt đầu với việc tìm hiểu và đặt mục tiêu cho đề tài, sau đó xây dựng hệ thống với các chức năng cụ thể nhằm đáp ứng yêu cầu thực hiện.
Đo đạc các thông số như nhiệt độ cơ thể, nhịp tim và SpO2 từ cảm biến của hệ thống, sau đó tổng hợp các dữ liệu này để giám sát trên máy chủ web.
Các thông số nhiệt độ, nhịp tim và SpO2, thời gian thực sẽ đƣợc hiển thị trên màn hình TFT 2.4 inch
Phát ra âm thanh cảnh báo khi nhiệt độ hoặc nhịp tim cao hơn so với ngƣỡng bình thường (SpO2 dưới 94%, nhiệt độ cơ thể trên 38 độ C)
Có thể điều chỉnh tăng giảm ngƣỡng nhiệt độ bằng nút nhấn
Web có thể hiển thị tên người
Sử dụng một ứng dụng di động để hiển thị thông tin của người bệnh, tương ứng với mã mà thiết bị phần cứng đƣợc gắn
Hình 3.1: Sơ đồ khối hệ thống
Hệ thống được mô tả qua sơ đồ khối toàn hệ thống (Hình 3.1), bao gồm ba khối chính: khối web server, khối ứng dụng di động và khối xử lý thông tin.
Khối xử lý trung tâm: Đảm nhiệm vai trò truyền nhận dữ liệu và xử lý dữ liệu
Dữ liệu từ các khối đo nhịp tim, nồng độ oxy trong máu và thân nhiệt sẽ được truyền tới khối xử lý trung tâm Tại đây, các thông tin này sẽ được tính toán và gửi tín hiệu điều khiển đến buzzer và màn hình TFT để hiển thị kết quả.
Khối đo nhịp tim và nồng độ oxy trong máu có vai trò quan trọng trong việc thu thập thông số nhịp tim và SpO2, sau đó chuyển giao thông tin này về khối xử lý trung tâm.
Khối đo thân nhiệt sử dụng cảm biến hồng ngoại để đo nhiệt độ cơ thể mà không cần tiếp xúc Dữ liệu đo được sẽ được gửi về khối xử lý trung tâm để phân tích và xử lý.
Khối hiển thị màn hình TFT ST7735 1.8 inch có chức năng hiển thị thông số nhiệt độ cơ thể, nhịp tim và SpO2 Những dữ liệu này được gửi từ khối xử lý trung tâm và được trình bày rõ ràng trên màn hình.
Khối hiển thị màn hình TFT 9341 2.4 inch (admin): Khối này có chức năng hiển thị thông tin từ 2 client truyền về
Khối nút nhấn: Có chức năng lựa chọn chế độ đo chỉ số SpO2 hoặc đo nhiệt độ và cập nhật trạng thái
Khối buzzer nhận tín hiệu từ khối xử lý trung tâm và phát ra âm thanh cảnh báo khi nhiệt độ hoặc nhịp tim vượt qua ngưỡng đã định.
3.1.3 Hoạt động của hệ thống
Khi hệ thống được cấp nguồn, các khối đo nhịp tim, nồng độ oxy trong máu và thân nhiệt sẽ thu thập dữ liệu và gửi về khối xử lý trung tâm Khối xử lý trung tâm tiếp nhận và hiển thị dữ liệu trên màn hình TFT Nếu giá trị nhiệt độ hoặc nhịp tim vượt ngưỡng đã đặt trước, khối xử lý trung tâm sẽ phát tín hiệu đến khối buzzer để cảnh báo Ngưỡng nhiệt độ để so sánh với nhiệt độ cơ thể có thể được điều chỉnh thông qua hai nút nhấn tăng và giảm.
Hệ thống thu thập dữ liệu từ các cảm biến và lưu trữ vào cơ sở dữ liệu Firebase Realtime Database Web server sau đó truy xuất dữ liệu để hiển thị và cung cấp các chức năng hỗ trợ người giám sát, bao gồm tra cứu tên bệnh nhân, chỉnh sửa hoặc xóa thông tin cá nhân, và cảnh báo người dùng khi có thông số vượt mức cho phép Hệ thống tự động làm mới dữ liệu sau mỗi 10 phút Để cải thiện quy trình, cần phát triển một ứng dụng di động giúp việc khai báo thông tin cơ bản của bệnh nhân trở nên dễ dàng hơn.
Thiết kế hệ thống phần cứng
3.2.1 Khối đo nhịp tim và nồng độ oxy trong máu
Trên thị trường hiện có nhiều loại cảm biến đo nhịp tim và nồng độ oxy, trong đó nổi bật là cảm biến MAX30102 và các module tương tự Nhóm đã quyết định sử dụng module MAX30102 để đo nhịp tim của con người vì nó có độ bền cao, dễ dàng mua sắm, lập trình và sử dụng một cách đơn giản.
Module sử dụng giao thức I2C để giao tiếp với bộ vi điều khiển Chân Vin và GND được kết nối với 3.3V và GND của ESP, trong khi chân SCL và SDA được kết nối với chân D1 và D2 của ESP32 Kết nối này được minh họa trong hình.
Hình 3.2: Sơ đồ kết nối module MAX30102 với ESP32
Cách đọc giá trị nhịp tim và nồng độ oxy từ module MAX30102 khi giao tiếp với ESP32:
Sử dụng hai thƣ viện MAX30102_PulseOximeter.h và Wire.h
Hằng số REPORTING_PERIOD_MS được sử dụng để trì hoãn các phép đo trong hệ thống, trong khi đối tượng PulseOximeter được khởi tạo với tên pox Biến tsLastReport được tạo ra để lưu trữ thời gian xảy ra nhịp cuối cùng.
Tiếp theo, một quy trình gọi lại đƣợc xác định sẽ đƣợc thực thi khi phát hiện một xung
Lệnh pox.begin() khởi động giao tiếp với cảm biến, trả về giá trị 1 khi thành công và 0 nếu thất bại Hàm này cũng cấu hình MAX30102 để bắt đầu quá trình thu thập dữ liệu.
Hàm setIRLedCurrent() có vai trò quan trọng trong việc điều chỉnh dòng điện qua đèn LED hồng ngoại, với giá trị mặc định là 50mA Tuy nhiên, dòng điện này có thể gây ra sự cố như đèn LED không hoạt động hoặc thông báo lỗi Oxygen xung khởi tạo FAILED trên màn hình Để khắc phục, người dùng nên điều chỉnh dòng điện LED xuống mức thấp hơn, chẳng hạn như 24mA, để đảm bảo hoạt động ổn định.
Trong vòng lặp chính, dữ liệu từ cảm biến MAX30102 được thu thập qua hàm update(), lấy thông tin từ FIFO của cảm biến Dữ liệu được hiển thị trên màn hình mỗi giây một lần, với REPORTING_PERIOD_MS được thiết lập là 1000, có thể điều chỉnh theo yêu cầu của người thiết kế Sử dụng hàm millis() thay vì delay() để tối ưu hóa hiệu suất.
Vì delay() tạm dừng toàn bộ mã, không thể nhận đƣợc số đo đƣợc cập nhật
Trên thị trường hiện nay, cảm biến đo nhiệt độ hồng ngoại phổ biến bao gồm MLX90614 (I2C) và MLX90615 (UART) Nhóm đã quyết định lựa chọn cảm biến MLX90614 nhờ vào tính phổ biến, khả năng mua sắm dễ dàng và thuận tiện trong lập trình.
Cảm biến được kết nối với ESP32 thông qua các chân VCC và GND, với VCC nối với 3.3V và GND nối với GND của ESP32 Hai chân giao tiếp I2C, SCL và SDA, được kết nối lần lượt với D1 và D2 của ESP32, như thể hiện trong Hình 3.3.
Hình 3.3: Sơ đồ kết nối module MLX90614 với ESP32
Cách đọc dữ liệu nhiệt độ từ cảm biến MLX90614 khi giao tiếp với ESP32:
Sử dụng thƣ viện Adafruit_MLX90614.h và đối tƣợng Adafruit_MLX90614 đƣợc gọi là mlx
Hàm mlx.begin() gọi hàm đảm bảo rằng chúng ta có thể giao tiếp với cảm biến
Trong vòng loop() cần in nhiệt độ môi trường và đối tượng bằng cách sửdụng các hàm readAmbientTempC() và readObjectTempC()
Cơ thể con người hoạt động như một nhà máy hiện đại, có khả năng điều chỉnh nhiệt độ để thích nghi với môi trường xung quanh và thay đổi trong suốt cả ngày Nhiệt độ bình thường của cơ thể dao động từ 36.5°C đến 37.1°C, trong khi sốt được xác định khi nhiệt độ đạt khoảng 38°C Tuy nhiên, mức nhiệt độ này có thể khác nhau tùy thuộc vào độ tuổi và vị trí đo Do đó, việc thiết lập một ngưỡng cảnh báo để tăng hoặc giảm nhiệt độ là cần thiết.
Khi thiết kế khối nút nhấn, việc đọc trạng thái từ nút nhấn một cách chính xác là rất quan trọng Để đảm bảo dòng điện chạy qua không làm hỏng vi điều khiển, cần sử dụng điện trở kéo cho vi điều khiển Điện trở này nên được chọn bằng 1/10 trở kháng R của vi điều khiển.
Khi mạch ở trạng thái chưa nhấn nút, điện áp tại chân D5 (tăng ngưỡng nhiệt độ) và D6 (giảm ngưỡng nhiệt độ) ở mức LOW (0) Sau khi nhấn nút, điện áp ngõ ra sẽ tăng lên mức HIGH (1) Nút nhấn được kết nối với ESP32 như được thể hiện trong Hình 3.4.
Hình 3 4: Sơ đồ kết nối nút nhấn với ESP32
Hệ thống sử dụng module buzzer để cảnh báo khi nhiệt độ hoặc nhịp tim vượt mức an toàn, nhờ vào tính dễ lắp đặt mà không cần linh kiện bổ sung, chỉ sử dụng chân 3.3V của ESP32 Buzzer hoạt động theo nguyên lý low level trigger, nghĩa là khi chân I/O ở mức thấp, còi sẽ phát ra âm thanh Chân I/O của buzzer được điều khiển bởi chân D7 của ESP32, như thể hiện trong Hình 3.5.
Hình 3.5: Sơ đồ kết nối module buzzer với ESP32 Để module buzzer hoạt động cần sử dụng các lệnh sau khi giao tiếp với ESP32:
Khai báo chân tín hiệu sử dụng để điều khiển buzzer.
Trong vòng loop(), kích hoạt buzzer kêu bằng lệnh digitalWrite(Baocoi, LOW) vì buzzer hoạt động ở mức thấp, và tắt buzzer bằng lệnh digitalWrite(Baocoi, HIGH).
3.2.5 Khối hiển thị màn hình TFT Để hiển thị thông tin từ khối xử lý trung tâm, có thể sử dụng nhiều cách nhƣ: LED 7 đoạn, màn hình TFT, màn hình LCD Yêu cầu của hệ thống cần hiển thị thông tin, số liệu cảm biến, thời gian thực và hiển thị trạng thái đang đọc nhịp tim Nhóm đã sử dụng màn hình TFT 1.8inch cho việc này TFT sử dụng giao thức giao tiếp SPI tiết kiệm chân Sơ đồ kết nối màn hình TFT với ESP32 nhƣ Hình 3.6
Hình 3.6: Sơ đồ kết nối TFT với ESP32 Để hiển thị dữ liệu thu thập đƣợc lên màn hình khi giao tiếp với ESP32 cần:
Cài đặt thƣ viện SPI.h , Adafruit_GFX.h và Adafruit_ST7735.h
Khởi tạo chức năng sử dụng đối tượng TFT begin() với hai tham số; tham số đầu tiên SSD1306_SWITCHCAPVCC để bật mạch bên trong và tham số thứ hai là địa chỉ I2C của màn hình TFT, địa chỉ này là cố định Sau đó, chúng ta cần xóa bộ đệm trước khi in thông báo đầu tiên trên màn hình.
Để thiết lập kích thước chữ, sử dụng hàm setTextSize() và để thiết lập màu chữ, gọi hàm setTextColor() Trước khi in thông báo, cần thiết lập vị trí con trỏ bằng hàm setCursor(X, Y) Các điểm ảnh trên màn hình được xác định bởi tọa độ ngang (X) và dọc (Y), với gốc tọa độ (0,0) nằm ở góc trên cùng bên trái, trong đó giá trị X dương tăng về bên phải và giá trị Y dương tăng xuống.
THI CÔNG HỆ THỐNG
Giới thiệu
Chương 4 sẽ trình bày quá trình lắp ráp và đóng gói hệ thống bao gồm phần cứng và phần mềm Phần cứng có chức năng thu thập các thông số như nhiệt độ cơ thể, nhịp tim và nồng độ oxy trong máu, đồng thời cảnh báo khi các chỉ số này vượt ngưỡng cài đặt Phần mềm sẽ cung cấp thông tin cá nhân và tổng hợp dữ liệu sức khỏe để giám sát hiệu quả.
Phần cứng gồm những nội dung sau:
Sắp xếp linh kiện, lắp ráp và kiểm tra hoạt động từng linh kiện, cuối cùng là thi công mô hình
Phần mềm gồm những nội dung sau:
Giao diện hiển thị thông tin trên điện thoại, trên web
Web Server cung cấp dữ liệu về thông tin tự khai của bệnh nhân, hiển thị các thông số từ cảm biến, cho phép tìm kiếm thông tin người bệnh và có chức năng báo động cho người giám sát.
Lắp ráp và kiểm tra
Sau quá trình nghiên cứu, nhóm tiến hành kết nối các module lại với nhau và toàn bộ kết nối nhƣ Hình 4.1 và Hình 4.2
Hình 4.1: Kết nối bên trong mô hình bộ client
Hình 4.2: Kết nối bên trong mô hình bộ admin
Đóng gói và thi công mô hình
Hình 4.3: Mô hình hệ thống mặt chính.
Mô hình hoàn chỉnh có kích thước 10,5x10x6,5cm Các cảm biến được lắp đặt nhƣ Hình 4.3 và Hình 4.4:
Cảm biến nhiệt độ cơ thể, cảm biến nhịp tim và nồng độ oxy đƣợc lắp mặt trên mô hình, cùng với màn hình và hai nút nhấn
Cảm biến nhiệt độ cơ thể được đặt bên trái dưới màn hình TFT, trong khi cảm biến nhịp tim và nồng độ oxy nằm bên phải dưới màn hình TFT.
Lập trình hệ thống
4.4.1 Lưu đồ giải thuật phần cứng
Lưu đồ chương trình chính phần cứng được mô tả như hình 4.5:
Hình 4.5: Lưu đồ giải thuật chương trình chính
Khi khởi động chương trình, hệ thống sẽ thiết lập các giá trị ban đầu bao gồm biến, chân GPIO, và ngưỡng cài đặt của cảm biến, đồng thời khởi tạo các thư viện như TFT.
MAX30102, MLX90614, thiết lập kết nối wifi, firebase và các cảm biến, đồng thời cập nhật thời gian thực
Chương trình con "Xử lý tín hiệu nhịp tim và nồng độ oxy, thân nhiệt" thu thập dữ liệu từ hai cảm biến, trong khi chương trình con "Thay đổi ngưỡng nhiệt độ bằng nút nhấn" cho phép người dùng điều chỉnh ngưỡng nhiệt độ thông qua nút nhấn Khi thân nhiệt vượt quá ngưỡng hoặc nhịp tim quá cao, hệ thống sẽ phát tín hiệu cảnh báo Dữ liệu được hệ thống nhận và xử lý, sau đó gửi lên cơ sở dữ liệu lưu trữ Lưu đồ chương trình xử lý client được thiết kế để tối ưu hóa quy trình này.
Hình 4.6: Lưu đồ xử lý tín hiệu SpO2, nhiệt độ và báo động
Giải thích lưu đồ: Để đọc các giá trị nhiệt độ, nhịp tim và spo2 ta cần thực hiện những bước sau:
Thiết lập kết nối wifi và firebase trên thiết bị
Để đảm bảo hệ thống hoạt động hiệu quả, trước tiên cần kiểm tra cảm biến nhiệt độ Nếu cảm biến này hoạt động bình thường, tiếp tục kiểm tra cảm biến nhịp tim và nồng độ oxy Trong trường hợp một trong hai cảm biến này không hoạt động, hãy quay lại bước thiết lập kết nối WiFi và Firebase.
Đọc giá trị nhiệt độ từ cảm biến và kiểm tra xem nó có thấp hơn ngưỡng quy định hay không Nếu không, kích hoạt buzzer để cảnh báo Nếu đúng, hiển thị giá trị nhiệt độ trên màn hình và gửi dữ liệu lên Firebase.
Tiếp tục theo dõi nhịp tim và nồng độ oxy qua cảm biến Kiểm tra xem nhịp tim có nằm trong khoảng 60-100 và nồng độ oxy có lớn hơn 95% hay không Nếu không đúng, kích hoạt buzzer để cảnh báo Nếu đúng, hiển thị nhịp tim và nồng độ oxy trên màn hình và gửi dữ liệu lên Firebase.
Hình 4.7: Lưu đồ xử lý bộ admin
Khi hệ thống hoạt động, việc nhấn nút 1 (tăng) sẽ làm trạng thái nút chuyển từ mức cao xuống mức thấp, dẫn đến việc giá trị nhiệt độ ngưỡng t tăng thêm 0,5.
Nếu nút nhấn 2 (giảm) đƣợc nhấn, trạng thái nút nhấn chuyển từ mức cao xuống mức thấp, thì giá trị nhiệt độ ngƣỡng sẽ giảm đi 0,5
Nếu không nhấn một trong hai nút thì hệ thống sẽ kiểm tra lại từ đầu
4.4.2 Lưu đồ giải thuật phần mềm của web server
Lưu đồ thuật toán xử lý Web server – Web hiển thị được mô tả như hình 4.8:
Hình 4.8: Lưu đồ giải thuật Web server – Web hiển thị
Khối web server lấy thông tin từ cơ sở dữ liệu, bao gồm dữ liệu từ phần cứng hệ thống và ứng dụng di động Các chức năng hỗ trợ giám sát và lưu trữ thông tin tự động cập nhật dữ liệu mới, tra cứu tên bệnh nhân, và cảnh báo về những bệnh nhân có chỉ số không bình thường Quy trình bắt đầu khi người dùng truy cập vào trang web hiển thị, yêu cầu dữ liệu từ Firebase thông qua realtime database Dữ liệu này sẽ tự động được cập nhật sau mỗi lần đo, và web sẽ reload định kỳ để đảm bảo thông tin luôn mới nhất Khi Firebase trả dữ liệu, web hiển thị sẽ cảnh báo nếu có bệnh nhân nào có chỉ số vượt ngưỡng an toàn.
Lưu đồ thuật toán xử lý ứng dụng di động được mô tả như hình 4.9:
Hình 4.9 mô tả khối ứng dụng di động, cho phép người bệnh tự khai báo thông tin cá nhân như tên, tuổi, số điện thoại, mã thiết bị và tình trạng bệnh nền Những thông tin này được lưu trữ trên Firebase Realtime Database, giúp dễ dàng giám sát và tổng hợp dữ liệu Trước khi sử dụng, người dùng cần đăng ký tài khoản để đăng nhập và khai báo thông tin.
Thông tin tài khoản đăng ký được lưu trữ trên Firebase Authentication thông qua phương thức đăng nhập bằng email và mật khẩu, được hỗ trợ bởi Firebase.
Nhóm quyết định sử dụng Arduino IDE vì tính đơn giản và tiện lợi, cùng với sự hỗ trợ phong phú từ một cộng đồng mạnh mẽ Hướng dẫn sử dụng Arduino IDE rất dễ hiểu và thân thiện với người dùng.
Bước 1: Mở chương trình Arduino IDE như Hình 4.10
Hình 4.10: Giao diện Arduino IDE mới khởi động
Bước 2: Chọn board và cổng COM
Bước 3: Thực hiện biên soạn chương trình như Hình 4.11
Hình 4.11: Giao diện Arduino IDE sau khi lập trình
Bước 4: Nhấn Save để lưu chương trình, Arduino IDE sẽ tạo ra một thư mục để lưu code riêng
Bước 5: Tổng hợp và nạp code cho board ESP32 NodeMCU
4.4.3 Giới thiệu phần mềm lập trình ứng dụng di động Android Studio
Nhóm đã nghiên cứu hai nền tảng thiết kế ứng dụng di động: MIT App Inventor và Android Studio Qua so sánh, nhóm nhận thấy Android Studio vượt trội hơn MIT App Inventor về khả năng thiết kế giao diện và chức năng Tuy nhiên, điểm hạn chế của Android Studio là giao diện sử dụng phức tạp, mang tính chất lập trình chuyên nghiệp hơn so với các ứng dụng thiết kế đơn giản.
Hình 4.12: Giao diện thiết kế của Android Studio
Sau khi hoàn thành các bước tạo dự án và chọn ngôn ngữ lập trình, giao diện chính của Android Studio sẽ hiển thị các file quan trọng như file XML để thiết kế giao diện và file Java để phát triển chức năng ứng dụng Người lập trình có thể thử nghiệm ứng dụng trên máy ảo hoặc trên điện thoại thật bằng cách kết nối điện thoại với máy tính, bật chế độ phát triển ứng dụng và nhấn nút chạy để cài đặt ứng dụng trên điện thoại.
KẾT QUẢ
Kết quả
5.1.1 Mô hình chạy thực tế
Khi hệ thống được cấp nguồn, màn hình sẽ hiển thị ngày và giờ hiện tại ở hàng đầu Giá trị ngưỡng nhiệt độ sẽ xuất hiện ở phía dưới bên phải màn hình, trong khi đèn cảm biến nhịp tim và nồng độ oxy sẽ sáng đỏ.
Hình 5.1: Giao diện hệ thống đƣợc cấp nguồn
Khi cảm biến nhịp tim và nồng độ oxy hoạt động, giá trị nhịp tim sẽ được hiển thị ở hàng thứ hai, trong khi nồng độ oxy SpO2 xuất hiện ở hàng thứ ba trên màn hình TFT Đồng thời, hình trái tim sẽ hiện lên bên phải màn hình trong quá trình đo nhịp tim và nồng độ oxy.
Hình 5 2: Giao diện khi cảm biến nhịp tim và nồng độ oxy hoạt động
Giao diện dữ liệu nhiệt độ, nhịp tim và SpO2 đƣợc cập nhật lên firebase:
Hình 5.3: Phần cứng gửi dữ liệu đo lên firebase
Khi phần cứng ghi nhận nhiệt độ vượt quá ngưỡng cho phép, nó sẽ phát tín hiệu âm thanh cảnh báo Tương tự, nếu nhịp tim vượt quá 100 bpm, hệ thống cũng sẽ phát cảnh báo tương ứng.
Giao diện đăng nhập vào ứng dụng:
Hình 5.4: Giao diện đăng nhập ứng dụng di động
Hình 5.5: Giao diện quản lý bệnh nhân
Hình 5.6: Giao diện thay đổi nhiệt độ và SpO2
Hình 5.7: Kết quả dữ liệu đƣợc gửi từ phần cứng
Kết quả từ việc tải lên thông tin tình trạng bệnh nhân từ phần cứng bao gồm mã bệnh nhân, SpO2, nhiệt độ và nhịp tim, tất cả sẽ được lưu trữ trên cơ sở dữ liệu Firebase Realtime Database.
Giao diện Web Server Giao diện web server:
Hình 5.8: Giao diện web server tổng hợp dữ liệu
Giao diện được thiết kế bởi nhóm, như mô tả trong hình 5.14, tổng hợp tất cả thông tin thu thập từ phần cứng hệ thống và ứng dụng di động.
Kết quả so sánh
5.2.1 So sánh thông số nhịp tim và SpO2 của mạch qua các lần đo khác nhau
Kết quả thu được như bảng dưới đây: Đặt ngón tay lên cảm biến đo và hạn chế xê dịch trong quá trình đo Giá trị được ghi nhận liên tục trong khoảng thời gian nhất định, với mỗi mẫu cách nhau 10 giây, trong trạng thái sức khỏe bình thường.
Bảng 5.1:Bảng so sánh giá trị nhịp tim và SpO2 của mô hình thiết kế
Sau 10 lần đo trung bình ta thấy nhịp tim ở mức 70 nhịp/phút và SpO2 ở mức 97 %, tuy nhiên mức dao động của thiết bị đo cầm tay ít hơn mô hình thiết kế
Bảng 5.2: Bảng so sánh giá nhiệt độ của mô hình thiết kế
Lần đo Mô hình thiết kế
Sau 5 lần đo đƣợc từ mô hình thì trung bình nhiệt độ cơ thể là 36°C xấp xỉ với giá trị đo đƣợc ở thiết bị nhiệt kế điện tử, có sai số ít Việc sai số có nguyên nhân từ vị trí đo, thiết bị nhiệt kế đo ở vị trí dưới lưỡi, còn mô hình thiết bị đo ở tay nên có sai số là khó tránh khỏi
5.2.2 Link video hoạt động của hệ thống: https://www.youtube.com/watch?v=G- izIQbuZF8
ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN
Đánh giá
Nhóm đã thiết kế và hoàn thành hệ thống theo dõi bệnh nhân và quản lý phòng bệnh thông qua web server mà nhóm tự phát triển.
Hệ thống thử nghiệm bao gồm phần cứng thu thập các thông số y tế như thân nhiệt, nhịp tim và nồng độ oxy trong máu Bên cạnh đó, hệ thống còn tích hợp ứng dụng di động cho phép người bệnh khai báo thông tin cá nhân Tất cả dữ liệu thu thập được từ phần cứng và ứng dụng di động sẽ được giám sát và tổng hợp qua một web server.
Hệ thống phần cứng hoạt động ổn định, cho phép thu thập các thông số sức khỏe cơ bản Ngoài ra, phần cứng có khả năng tương tác với máy chủ web thông qua cơ sở dữ liệu thời gian thực Firebase.
Ứng dụng di động hoạt động ổn định, cho phép gửi dữ liệu nhanh chóng lên cơ sở dữ liệu Thông tin từ cơ sở dữ liệu được hiển thị qua webserver, và sau mỗi lần nhấn nút cập nhật, webserver sẽ tự động làm mới để nhận thông số mới từ phần cứng hệ thống.
Phần web server hoạt động với giao diện đơn giản để sử dụng, các chức năng đƣợc xử lý nhanh chóng
Thiết bị cần được đặt trong vùng phủ sóng wifi đã thiết lập và có nguồn DC ổn định để đảm bảo hoạt động hiệu quả Nếu mất kết nối internet, phần cứng sẽ không hoạt động Để kết nối với thiết bị phát wifi khác, cần phải nạp lại chương trình.
Thiết bị khi ngắt nguồn hoặc cúp điện sẽ không tiếp tục hoạt động vì không có nguồn dự phòng
Tình trạng đo nhịp đập giả khi sử dụng cảm biến có thể xảy ra, gây sai số trong giá trị thân nhiệt tùy thuộc vào vị trí đo và nhiệt độ phòng Điều này cho thấy thiết bị chưa đạt được sự ổn định và chính xác cao Ngoài ra, mã thiết bị phần cứng là cố định, vì vậy nếu muốn thay đổi mã để đo thông số cho nhiều người, cần phải nạp lại chương trình.
Hệ thống web server chỉ lưu trữ giá trị thông số mới nhất được đo, trong khi các thông số đã được đo trước đó sẽ không hiển thị do giới hạn của hệ thống.
Giao diện trên Web Server chưa trực quan sinh động, gây khó khan cho người theo dõi
Chƣa chứng thực đƣợc độ chính xác về kết quả đo của hệ thống.
Hướng phát triển
Mặc dù hệ thống mà nhóm thiết kế đã có nhiều chức năng, nhưng vẫn còn nhiều thiếu sót cần khắc phục Để hệ thống có thể phát triển tốt hơn và ứng dụng rộng rãi trong thực tế, nhóm đã đề xuất một số hướng phát triển tiềm năng cho đề tài.
Mặc dù còn nhiều hạn chế nhƣng đề tài có thể ứng dụng vào thực tế cho bệnh nhân
Hệ thống phần cứng với các module mạnh mẽ, nhỏ gọn và hỗ trợ kết nối wifi tự động sẽ giúp thiết bị hoạt động ổn định và chính xác hơn, đồng thời tích hợp nhiều chức năng đa dạng.
Khắc phục hạn chế hệ thống chỉ lưu lại được dữ liệu mới nhất được cập nhật
Bổ sung tính năng vẽ đồ thị nhịp tim của người bệnh
Bổ sung chức năng giám sát bằng camera qua ứng dụng di động.