TRƯỜNG ĐH SPKT TP. HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC ----o0o----
Tp. HCM, ngày 18 tháng 12 năm 2019
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
MSSV: 15141195 MSSV: 15141171
1
Họ tên sinh viên: Nguyễn Phi Lân Kim Thanh Huy Công Nghệ Kĩ Thuât Điện tử Truyền Thông Mã ngành: 11 Chuyên ngành: Đại học chính quy-Sư phạm Hệ đào tạo: 2015 Khóa:
Mã hệ: Lớp: 159410DT I. TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG THIẾT BỊ GIÁM SÁT NHỊP
TIM VÀ NỒNG ĐỘ OXY TRONG MÁU
II. NHIỆM VỤ
1. Các số liệu ban đầu:
- Nguyễn Đình Phú, “Giáo trình vi xử lý ”, NXB ĐH Quốc Gia Tp.HCM, 2014
- Nguyễn Hữu Phương, “Xử lí tín hiệu số”, NXB ĐH Quốc Gia Tp.HCM, 2015
- Khoa Y,“ Kĩ thuật đo và phân tích điện tâm đồ bình thường”, NXB ĐH Quốc Gia
Tp.HCM, 2015.
- Nguyễn Thanh Hoàng, Nguyễn Khoa Nam, “THIẾT KẾ VÀ THI CÔNG VÒNG
TAY ĐO NHỊP TIM SỬ DỤNG CÔNG NGHỆ IoTs”, Đồ Án Tốt Nghiệp ĐH,
Trường ĐH Sư Phạm Kỹ Thuật Tp.HCM, 2019.
- NỘI DUNG 1: Tiến hành nguyên cứu về nhịp tim và đồ thị điện tim .
- NỘI DUNG 2: Đọc cảm biến thu được giá trị và cho đi qua 3 bộ lọc bằng vi xử lí -
truyền giá trị thu được qua chuẩn truyền không dây.
- NỘI DUNG 3:Nhận dữ liệu từ chuẩn truyền không giao tiếp với vi điều khiển chính qua
chuẩn truyền UART.
- NỘI DUNG 4 : Thiết kế board mạch điều khiển màn hình chuẩn FSMC và khối nhận dữ
liệu
- NỘI DUNG 5: Xử lí và xuất dữ liệu lên màn hình LCD dạng số và dạng điện tim.
- NỘI DUNG 6: Viết ứng dụng Android hiển thị các dữ liệu trên màn hình LCD
ii
2. Nội dung thực hiện:
- NỘI DUNG 7: Thiết kế và thi công mô hình hệ thống hoàn chỉnh
- NỘI DUNG 8: Đánh giá kết quả thực hiện và so sánh với các thiết bị đang có trên thị
trường.
- NỘI DUNG 9: Viết báo cáo đề tài.
III. NGÀY GIAO NHIỆM VỤ:
28/08/2019
IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 28/12/2019
V. HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN:
ThS. Phan Vân Hoàn
BM. ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
CÁN BỘ HƯỚNG DẪN
iii
TRƯỜNG ĐH SPKT TP. HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC ----o0o----
Tp. HCM, ngày 15 tháng 12 năm 2019
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP
Họ tên sinh viên 1: Nguyễn Phi Lân Lớp: 159410DT MSSV:15141195 Họ tên sinh viên 2: Kim Thanh Huy Lớp: 159410DT MSSV:15141171
Tên đề tài: THIẾT KẾ VÀ THI CÔNG THIẾT BỊ GIÁM SÁT NHỊP TIM VÀ NỒNG ĐỘ OXY TRONG MÁU
Tuần/ngày
Nội dung
Xác nhận GVHD
Tuần 1
(26/8 - 2/9)
- Gặp GVHD để nghe phổ biến yêu cầu làm đồ án, tiến hành chọn đề tài, GVHD tiến hành xét duyệt đề tài.
Tuần 2
- Viết đề cương tóm tắt nội dung đồ án.
(3/9 - 10/3)
- Tìm hiểu nhịp tim và đồ thị điện tim.
Tuần 3
(11/9 - 18/9)
- Tìm hiểu về công nghệ truyền không dây của NodeMCU ESP8266.
-Tìm hiểu về màn hình TFT 7 inch.
Tuần 4
(19/9 - 26/9)
- Hiển thị thông số, đồ thị trên màn hình LCD TFT
Tuần 5
(27/9 - 4/10)
- Tiến hành vẽ mạch nguyên lí và mạch PCB trên Altium cho board STM32F407 điều khiển màn hình - Tìm hiểu và nghiên cứu hiển thị dạng sóng điện tim trên màn hình LCD, và điện thoại Android.
- Tiến hành hàn linh kiện mạch in và kiểm tra.
Tuần 6
(5/10 - 12/10)
- Tìm hiểu cách lập trình trên app Inventer
- Thiết kế board đo nhịp tim với vi điều khiển
Tuần 7
(13/10 - 20/10)
- Lập trình điều khiển hiển thị trên STM32F4
iv
- Lập trình trên ESP8266 Node MCU giao tiếp với cảm biến nhịp tim MAX30100.
Tuần 8
(21/10 - 28/10)
Tuần 9 - 10
- Tiến hành truyền và nhận dữ liệu giữa 2 module ESP8266. - Hoàn thiện app Android hiển thị nhịp tim và tín hiệu điện tim.
(29/11 - 12/11)
Tuần 11
- Hiển thị giá trị nhịp tim và đồ thị điện tim trên màn hình LCD TFT
(13/11 - 20/11)
Tuần 12 - 13
- Hoàn thiện và cải tiến chương trình.
(21/11 - 5/12)
Tuần 14
(6/5- 12/5)
- Tiến hành đóng gói mô hình và hoàn thiện sản phẩm - Tiến hành viết báo cáo cho đề tài
- Chỉnh sửa báo cáo theo yêu cầu GVHD
- Nộp quyển báo cáo và báo cáo đề tài.
Tuần 15 (6/12 – 13/12) Tuần 16-17
(14/12 - 28/12)
- Thiết kế Slide báo cáo.
GV HƯỚNG DẪN (Ký và ghi rõ họ và tên)
v
LỜI CAM ĐOAN
Đề tài này là công trình do bản thân nhóm tự thực hiện dựa vào một số tài liệu trước đó và dưới sự hướng dẫn của ThS.Phan Vân Hoàn. Các số liệu trong đề tài được nhóm thu thập và không sao chép từ tài liệu hay công trình nào khác.
Người thực hiện đề tài
NGUYỄN PHI LÂN
KIM THANH HUY
LỜI CẢM ƠN
Em xin gởi lời cảm ơn sâu sắc đến Thầy Phan Vân Hoàn _ Giảng viên bộ môn Điện tử công nghiệp – y sinh đã trực tiếp hướng dẫn và tận tình giúp đỡ tạo điều kiện để hoàn thành tốt đề tài.
Em xin gửi lời chân thành cảm ơn các thầy cô trong Khoa Điện-Điện Tử và
các anh chị khóa trước đã tạo những điều kiện tốt nhất cho em hoàn thành đề tài.
Em cũng gửi lời đồng cảm ơn đến các bạn lớp 159410 đã chia sẻ trao đổi kiến
thức cũng như những kinh nghiệm quý báu trong thời gian thực hiện đề tài.
Cảm ơn đến cha mẹ, người thân đã ở bên cạnh động viên trong suốt quá trình
thực hiện đề tài này
Xin chân thành cảm ơn!
Người thực hiện đề tài
NGUYỄN PHI LÂN
vi
KIM THANH HUY
LỜI CẢM ƠN
Em xin gởi lời cảm ơn sâu sắc đến Thầy Phan Vân Hoàn _ Giảng viên bộ môn Điện tử công nghiệp – y sinh đã trực tiếp hướng dẫn và tận tình giúp đỡ tạo điều kiện để hoàn thành tốt đề tài.
Em xin gửi lời chân thành cảm ơn các thầy cô trong Khoa Điện-Điện Tử và
các anh chị khóa trước đã tạo những điều kiện tốt nhất cho em hoàn thành đề tài.
Em cũng gửi lời đồng cảm ơn đến các bạn lớp 159410 đã chia sẻ trao đổi kiến
thức cũng như những kinh nghiệm quý báu trong thời gian thực hiện đề tài.
Cảm ơn đến cha mẹ, người thân đã ở bên cạnh động viên trong suốt quá trình
thực hiện đề tài này
Xin chân thành cảm ơn!
Người thực hiện đề tài
NGUYỄN PHI LÂN
vii
KIM THANH HUY
MỤC LỤC
Trang bìa .................................................................................................................. i
Nhiệm vụ đồ án ....................................................................................................... ii
Lịch trình ............................................................................................................... iv
Cam đoan ............................................................................................................... vi
Lời cảm ơn ............................................................................................................ vii
Mục lục ................................................................................................................. viii
Liệt kê hình vẽ ....................................................................................................... xii
Liệt kê bảng vẽ ………………………………………………… ...... …………...xv
Tóm tắt ................................................................................................................. xii Chương 1. TỔNG QUAN ................................. Error! Bookmark not defined.
1.1. ĐẶT VẤN ĐỀ ........................................ Error! Bookmark not defined.
1.2. MỤC TIÊU ............................................. Error! Bookmark not defined.
1.2.1 Đối tượng và phạm vi nghiên cứu ........ Error! Bookmark not defined.
1.2.2 Phương pháp nghiên cứu ...................... Error! Bookmark not defined.
1.3. NỘI DUNG NGHIÊN CỨU .................. Error! Bookmark not defined.
1.4. GIỚI HẠN .............................................. Error! Bookmark not defined.
1.5. BỐ CỤC ................................................. Error! Bookmark not defined.
Chương 2. CƠ SỞ LÝ THUYẾT .................... Error! Bookmark not defined.
2.1 LÍ THUYẾT VỀ NHỊP TIM VÀ PHƯƠNG PHÁP ĐO ĐIỆN TIM . Error!
Bookmark not defined.
2.1.1 Khái niệm nhịp tim ................................ Error! Bookmark not defined.
2.1.2 Nồng độ oxy trong máu ......................... Error! Bookmark not defined.
2.1.3 Quá trình điện học của tim. .................... Error! Bookmark not defined.
2.1.4 Đo nhịp tim bằng phương pháp hấp thụ quang họcError! Bookmark not
viii
defined.
2.2 CÁC CHUẨN GIAO TIẾP GIỮA CÁC MODULE Error! Bookmark not
defined.
2.2.1 Chuẩn giao tiếp I2C giữa MAX30100 và ESP8266 Node MCU. Error!
ix
Bookmark not defined.
2.2.2 Chuẩn giao tiếp UART giữa STM32F407 và ESP8266 Node MCUError!
Bookmark not defined.
2.2.3 Chuẩn truyền không dây theo giao thức UDP ..... Error! Bookmark not
defined.
Chương 3. TÍNH TOÁN VÀ THIẾT KẾ ................................................... 19
3.1 GIỚI THIỆU .............................................. Error! Bookmark not defined.
3.2 THIẾT KẾ SƠ ĐỒ KHỐI HỆ THỐNG .... Error! Bookmark not defined.
3.3 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNGError! Bookmark not defined.
3.3.1 Thiết kế khối cảm biến đô nhịp tim ........ Error! Bookmark not defined.
a. Chức năng ............................................ Error! Bookmark not defined.
b. Lựa chọn linh kiện ............................... Error! Bookmark not defined.
c. Thông số kỹ thuật ................................ Error! Bookmark not defined.
d. Sơ đồ nguyên lý ................................... Error! Bookmark not defined.
e. Giải thích sơ đồ nguyên lí ................... Error! Bookmark not defined.
3.3.2 Thiết kế khối vi điều khiển đọc cảm biến và giao tiếp wifi ....... Error!
Bookmark not defined.
a. Chức năng ............................................ Error! Bookmark not defined.
b. Lưa chọn linh kiện ............................... Error! Bookmark not defined.
c. Thông số kỹ thuật ................................ Error! Bookmark not defined.
d. Sơ đồ nguyên lý ................................... Error! Bookmark not defined.
e. Giải thích nguyên lí ............................. Error! Bookmark not defined.
3.3.3 Thiết kế khối giao tiếp wifi ................. Error! Bookmark not defined.
a. Chức năng ............................................ Error! Bookmark not defined.
b. Lựa chọn linh kiện ............................... Error! Bookmark not defined.
x
c. Thông số kĩ thuật ................................. Error! Bookmark not defined.
d. Sơ đồ nguyên lí .................................................................................... 29
e. Giải thích sơ đồ nguyên lí ................................................................... 29
3.3.4 Thiết kế khối xử lý trung tâm điều khiển hiển thị………………Error!
Bookmark not defined.
a. Chức năng ............................................ Error! Bookmark not defined.
b. Lựa chọn linh kiện ............................... Error! Bookmark not defined.
c. Thông số kĩ thuật ................................................................................. 31
d. Sơ đồ nguyên lý ................................... Error! Bookmark not defined.
e. Giải thích sơ đồ nguyên lí ................... Error! Bookmark not defined.
3.3.5 Thiết kế khối hiển thị giao diện người dùng .... Error! Bookmark not
defined.
a. Chức năng ............................................ Error! Bookmark not defined.
b. Lựa chọn linh kiện ............................... Error! Bookmark not defined.
c. Thông số kỹ thuật ................................ Error! Bookmark not defined.
d. Sơ đồ nguyên lí .................................... Error! Bookmark not defined.
e. Giải thích sơ đồ nguyên lí ................... Error! Bookmark not defined.
3.3.6 Thiết kế khối nguồn ............................ Error! Bookmark not defined.
a. Chức năng ............................................ Error! Bookmark not defined.
b. Lựa chọn linh kiện ............................... Error! Bookmark not defined.
c. Thông số kỹ thuật ................................ Error! Bookmark not defined.
d. Sơ đồ nguyên lí .................................................................................... 40
e. Giải thích sơ đồ nguyên lí ................................................................... 40
3.4 SƠ ĐỒ NGUYÊN LÍ TOÀN MẠCH ........ Error! Bookmark not defined.
3.4.1 Sơ đồ nguyên lí ....................................... Error! Bookmark not defined.
xi
3.4.2 Giải thích sơ đồ nguyên lí ...................... Error! Bookmark not defined.
Chương 4. THI CÔNG HỆ THỐNG .............. Error! Bookmark not defined.
4.1 GIỚI THIỆU ........................................... Error! Bookmark not defined.
4.2 THI CÔNG HỆ THỐNG ........................ Error! Bookmark not defined.
4.2.1 Thi công bo mạch ............................... Error! Bookmark not defined.
a. Liệt kê linh kiện ................................... Error! Bookmark not defined.
b. Tiến hành vẽ PCB ................................ Error! Bookmark not defined.
4.2.2 Lắp ráp và kiểm tra ............................ Error! Bookmark not defined.
4.3 ĐÓNG GÓI MÔ HÌNH .......................... Error! Bookmark not defined.
4.4 LẬP TRÌNH HỆ THỐNG ...................................................................... 51
4.4.1 Lưu đồ giải thuật .............................................................................. 51
4.4.2 Phần mềm lập trình cho vi điều khiển .............................................. 54
a. Phần mềm lập trình ESP8266 .............. Error! Bookmark not defined.
b. Phần mềm STM32CubeMX và Keil C V5 ........ Error! Bookmark not
defined.
4.4.3 Phần mềm lập trình Android ............................................................ 63
4.5 VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC ............ Error!
Bookmark not defined.
Chương 5. KẾT QUẢ - NHẬN XÉT - ĐÁNH GIÁ ................................... 70
5.1 KẾT QUẢ .................................................................................................. 70
5.1.1 Giao diện App Android ........................................................................ 70
5.1.2 Mô hình chạy thực tế ............................. Error! Bookmark not defined.
5.1.3 Kết quả so với đồng hồ fitbit. ................. Error! Bookmark not defined.
5.2 NHẬN XÉT ............................................................................................... 80
5.3 ĐÁNH GIÁ ................................................................................................ 81
xii
Chương 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ............................... 80
6.1 KẾT LUẬN ............................................................................................ 82
6.2 HƯỚNG PHÁT TRIỂN ......................................................................... 82
TÀI LIỆU THAM KHẢO ............................................................................ 84
xiii
PHỤ LỤC....................................................................................................... 85
LIỆT KÊ HÌNH VẼ
Hình Trang
Hình 2.1: Các thể Hemoglobin tác động qua màng ............................................ 8
Hình 2.2: Quá trình điện học của tim .................................................................. 10
Hình 2.3: Đo nhịp tim bằng phương pháp hấp thụ quang học ............................ 11
Hình 2.4: Chuẩn giao tiếp I2C ............................................................................ 13
Hình 2.5: Truyền UART ..................................................................................... 15
Hình 2.6: So sánh giao thức truyền TCP và UDP ............................................... 17
Hình 3.1: Sơ đồ khối hệ thống ............................................................................ 19
Hình 3.2: Nguyên lí hoạt động LED hồng ngoại ................................................ 21
Hình 3.3: Hình ảnh cảm biến MAX30100 .......................................................... 22
Hình 3.4: Sơ đồ nguyên lý cảm biến MAX30100 .............................................. 22
Hình 3.5: Sơ đồ chân ESP8266 NodeMCU CP2102 .......................................... 25
Hình 3.6: Sơ đồ nguyên lý ESP_8266 và MAX30100 ....................................... 26
Hình 3.7: Sơ đồ nguyên lý ESP_8266 Node MCU CH340 ................................ 28
Hình 3.8 Mạch giao tiếp esp8266 với vi điều khiển chuẩn UART..................... 29
Hình 3.9 Ứng dụng ARM trong kĩ thuật điện tử ................................................. 30
Hình 3.10: Hình ảnh chip STM32F407VET6 kiểu đóng gói LQF1000 ............. 32
Hình 3.11: Sơ đồ nguyên lí STM32F407VET6 giao tiếp ngoại vi ..................... 33
Hình 3.12: Mạch Reset vi điều khiển mức thấp .................................................. 34
Hình 3.13: Mạch tạo dao động và thời gian thực ................................................ 34
Hình 3.14: Hình ảnh LCD TFT mặt trước .......................................................... 37
Hình 3.15: Hình ảnh LCD TFT mặt sau ............................................................. 37
Hình 3.16: Giao tiếp LCD TFT với vi điều khiển chuẩn FSMC ........................ 38
Hình 3.17: Mạch hạ áp LM2596 ......................................................................... 40
Hình 3.18: Sơ đồ nguyên lí mạch hạ áp .............................................................. 40
Hình 3.19 Sơ đồ nguyên lí board đọc cảm biến và truyền dữ liệu ..................... 42
Hình 3.20 Sơ đồ nguyên lí board nhận dữ liệu và hiển thị ................................. 43
Hình 4.1: PCB lớp trên Board STM điều khiển màn hình .................................. 47
Hình 4.2: PCB lớp dưới Board STM điều khiển màn hình ................................ 48
Hình 4.3: PCB định vị SMD Board STM điều khiển màn hình ......................... 48
xiv
Hình 4.4: Mô phỏng mạch giao tiếp màn hình ................................................... 49
CHƯƠNG 1. TỔNG QUAN
Hình 4.5: Mạch cảm biến đo nhịp tim ................................................................ 50
Hình 4.6: Mặt trước màn hình hiển thị kết quả ................................................... 51
Hình 4.7: Mặt cấp nguồn và nút nhấn reset ........................................................ 51
Hình 4.8: Lưu đồ thuật toán chương trình đọc cảm biến và truyền dữ liệu ........ 52
Hình 4.9 Lưu đồ thuật toán chương trình con ghép chuỗi dữ liệu nhịp tim ....... 53
Hình 4.10 Lưu đồ thuật toán chương trình con ghép chuỗi tín hiệu điện tim .... 54
Hình 4.11 Lưu đồ thuật toán nhận dữ liệu và hiển thị ........................................ 55
Hình 4.12 Giao diện Aduino IDE mới khởi động ............................................... 56
Hình 4.13 Giao diện Aduino IDE lập trình ......................................................... 57
Hình 4.14 Tiến hành tổng hợp và nạp chương trình ........................................... 58
Hình 4.15 Giao diện khởi động chương trình STM32CubeMX ......................... 58
Hình 4.16 Tạo 1 Project mới ............................................................................... 59
Hình 4.17 Giao diện cấu hình vi điều khiển ....................................................... 60
Hình 4.18 Cấu hình xung clock cho mạch .......................................................... 61
Hình 4.19 Lưu thông tin project và sinh code..................................................... 61
Hình 4.20 Cấu hình cho mạch nạp ...................................................................... 62
Hình 4.21 Cấu hình cho mạch reset .................................................................... 63
Hình 4.22 Tiến hành compile và nạp chương trình ............................................ 64
Hình 4.23 Giao diện tạo project MIT INVENTER ............................................. 65
Hình 4.24 Thiết kế giao diện người dùng ........................................................... 66
Hình 4.25 Các lệnh lập trình cơ bản ................................................................... 67
Hình 4.26 Màn hình thiết bị khi cấp nguồn khởi động ....................................... 68
Hình 4.27 Cách đặt tay trên cảm biến như hình.................................................. 68
Hình 4.28 Màn hình hiển thị kết quả LCD ......................................................... 69
Hình 5.1 Giao diện màn hình khởi động của App .............................................. 70
Hình 5.2 Giao diện màn hình chính của App ...................................................... 71
Hình 5.3 Giao diện đo ID1 của App ................................................................... 72
Hình 5.4 Giao diện đo ID2 của App ................................................................... 73
Hình 5.5 Giao diện đo Dual của App .................................................................. 74
Hình 5.6 Giao diện thông tin liên hệ ................................................................... 75
xiii
Hình 5.7 Giao diện khi hệ thống được cấp nguồn .............................................. 76
Hình 5.8 Giao diện đo khi chỉ có 1 cảm biến hoạt động ..................................... 76
Hình 5.9 Giao diện đo khi cả 2 cảm biến cùng hoạt động .................................. 77
Hình 5.10 Đồng hồ thể thao Fitbit theo dõi tình trạng sức khỏe ........................ 78
xiv
Hình 5.11 Vị trí đeo đồng hồ ở cổ tay ................................................................. 79
LIỆT KÊ BẢNG
Bảng Trang
Bảng 2.1: Chỉ số HR phụ thuộc vào giới tính và độ tuổi .................................................. 6
Bảng 2.2: Chỉ số HR đối với trạng thái hoạt động cơ thể………………………………. 7
Bảng 3.1: Bảng sơ đồ kết nối chân vi điều khiển……………………………………… 35
Bảng 3.2: Bảng dòng điện tiêu thụ của các thiết bị sử dụng……………………… ....... 39
Bảng 4.1. Danh sách các linh kiện.……………………………………………… ......... 45
Bảng 5.1. Bảnh so sánh mô hình với đồng hồ thể thao…………………………………79
xv
TÓM TẮT
Chúng ta có thể thấy, những sự cố ảnh hưởng đến sức khỏe có thể xảy ra bất
cứ lúc nào với chúng ta cũng như sự quan tâm chưa đúng về tim mạch thường xuyên
trong đời sống thường ngày. Vì thế, chúng em đã đưa ra ý tưởng làm một thiết bị đo
điện tim nhỏ gọn. Mục đích giúp chúng ta có thể theo dõi sức khỏe của người sử
dụng một cách linh hoạt nhất. Ở thiết bị sẽ có chức năng đo nhịp tim và nồng độ oxy
trong máu kết hợp với dạng điện tim.
Vì vậy chúng em thực hiện đề tài “THIẾT KẾ VÀ THI CÔNG MÁY ĐO
ĐIỆN TIM” mang lại những chức năng rất cần thiết để đảm bảo tính mạng và sức
khỏe cho mọi người. Cũng như chức năng theo dõi nhịp tim giúp chúng ta biết và
điều chỉnh các hoạt động tối ưu, có lợi cho sức khỏe, không gây hại hoặc chấn
thương.
Hệ thống gồm mạch đo sử dụng cảm biến MAX30100 giao tiếp với vi điều
khiển ESP8266 Node MCU. Dữ liệu được truyền và nhận không dây qua wifi. Bộ
hiển thị gồm có LCD TFT inch đủ để người dùng có thể theo dõi tình trạng sức khỏe
của mình. Trên màn hình gồm có các chỉ số nhịp tim, SPO2 và dạng đồ thị điện tim
theo thời gian. Ngoài ra, ứng dụng Android còn lấy dữ liệu không dây từ wifi hiển
xvi
thị trên app giúp người thân có thể theo dõi người bệnh.
CHƯƠNG 1. TỔNG QUAN
Chương 1. TỔNG QUAN
1.1. ĐẶT VẤN ĐỀ
Ngày nay với sự phát triển của ngành điện tử và ứng dụng điện tử đã giúp sự
sáng tạo của con người trở thành hiện thực. Ngành điện tử và ứng dụng điện tử vào
lĩnh vực y sinh đã tạo chỗ đứng và khẳng định được tầm quan trọng của mình đối
lúc nào với chúng ta nếu như chúng ta chưa có sự quan tâm chưa đúng về vấn đề tim mạch
trong đời sống thường ngày.
Mặc dù trình độ khoa học kỹ thuật trong nước về lĩnh vực y tế đang có những bước
tiến lớn, tuy nhiên do là một nước đang phát triển, việc chăm lo đảm bảo cho sức khỏe
người dân cũng có nhiều hạn chế và chưa được thật sự chú trọng. Với những nước phát
triển như Mỹ, Anh, Úc, … việc theo dõi chăm sóc sức khỏe là cần thiết và rất được chú
trọng. Có rất nhiều phần mềm theo dõi sức khỏe được lập trình với giao diện thân thiện
người dùng, rất dễ sử dụng trên smartphone hay tablet, PC, laptop, vv kết hợp với các bệnh
viện. Các tập đoàn, công ty lớn cũng rất chú trọng đến mảng y sinh với các sản phẩm phần
cứng theo dõi sức khỏe như Apple Watch, Xiaomi Band, Samsung Gear Fit Wearables, vv
đi kèm với phần mềm hỗ trợ tích hợp trên smartphone, tablet.
Các thông số để có thể đánh giá được gần đúng tình trạng sức khỏe bao gồm: nhịp
tim, huyết áp, nhiệt độ cơ thể. Tuy nhiên, với những hạn chế như trình độ, thời gian của
thực hiện đồ án, yếu tố về công nghệ, đồ án sẽ chỉ tập trung vào giá trị nhịp tim để nghiên
cứu và xử lý đồ thị điện tim, ngoài ra còn nguyên cứu nồng độ Oxi trong máu.
Đối tượng chúng em chọn để theo dõi ở đây là người cao tuổi và người có tiền sử
về tim mạch nên việc di chuyển đến bệnh viện để kiểm tra thường xuyên là rất khó khăn.
Vì vậy chúng em đã đưa ra ý tưởng làm một thiết bị đo điện tim nhỏ gọn. Mục đích giúp
chúng ta có thể theo dõi sức khỏe của người cao tuổi hoặc người có tiểu sử về tim mạch sử
dụng tại gia đình một cách linh hoạt nhất. Thiết bị sẽ có chức năng đo nhịp tim và được
hiển thị dạng số kết hợp với dạng điện tim (dạng sóng). Ngoài ra, còn có thể hiển thị nhịp
tim và đồ thị điện tim trên ứng dụng điện thoại android để người nhà có thể theo dõi được
mọi nơi. Nêu nhóm chúng em đã quyết định chọn đề tài: “Thiết kế và thi công thiết bị
giám sát nhịp tim và nồng độ oxy trong máu” để thực hiện làm khóa luận tốt nghiệp.
1
với nhu cầu của con người. Nhưng sự cố ảnh hưởng đến sức khỏe có thể xảy ra bất cứ
CHƯƠNG 1. TỔNG QUAN
1.2. MỤC TIÊU
Thiết kế và thi công mô hình hệ thống theo dõi, giám sát nhịp tim, nồng độ
oxy trong máu và đồ thị điện tim, tức thời và có thể hoạt động liên tục, đồng thời
gửi các thông số dữ liệu đo được qua mạng wifi hiển thị trên ứng dụng di động để
nâng cao khả năng giám sát, theo dõi.
1.2.1 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu về phần mềm là các giải thuật để đo được nhịp tim,
nồng độ oxi trong máu từ cảm biến MAX30100 chính xác, tức thời, đảm bảo hệ
thống hoạt động đúng chức năng và thông tin tới người dùng qua mạng wifi, mạng
di động. Cách thức lập trình ESP8266 Node MCU. Giao tiếp giữa board ESP8266
Node MCU và ARM. Lập trình STM32F407VET6 xuất màn hình FSMC.
Phạm vi nghiên cứu trong khuôn khổ mô hình nhỏ áp dụng cho một hoặc hai
người dùng, tuy nhiên có khả năng mở rộng thành hệ thống lớn. Ngoài ra, do kiến
thức về lập trình ứng dụng android còn rất nhiều hạn chế nên nhóm sử dụng app
inventor để lập trình.
1.2.2 Phương pháp nghiên cứu
Tìm hiểu các thông số chính của tín hiệu nhịp tim, từ đó xây dựng được giải
thuật phù hợp nhằm giảm thiểu sai số đo đạc. Kiểm tra tính chính xác của phép đo
bằng các thiết bị đang được sử dụng trên thị trường. Tiến hành thiết kế, xây dựng và
thi công mô hình hệ thống giám sát nhịp tim.
NỘI DUNG 1: Tiến hành nguyên cứu về nhịp tim và đồ thị điện tim .
NỘI DUNG 2: Đọc cảm biến thu được giá trị và cho đi qua 3 bộ lọc bằng vi xử lí,
truyền giá trị thu được qua chuẩn truyền không dây.
NỘI DUNG 3: Nhận dữ liệu từ chuẩn truyền không dây và giao tiếp với vi điều khiển
chính qua chuẩn truyền UART.
NỘI DUNG 4: Thiết kế board mạch điều khiển màn hình chuẩn FSMC và khối nhận
dữ liệu.
2
1.3. NỘI DUNG NGHIÊN CỨU
CHƯƠNG 1. TỔNG QUAN
NỘI DUNG 5: Xử lí và xuất dữ liệu lên màn hình LCD dạng số và dạng điện tim.
NỘI DUNG 6: Viết ứng dụng Android hiển thị các dữ liệu trên màn hình điện thoại.
NỘI DUNG 7: Thiết kế và thi công mô hình hệ thống hoàn chỉnh.
NỘI DUNG 8: Đánh giá kết quả thực hiện và so sánh với các thiết bị đang có trên thị
trường.
NỘI DUNG 9: Viết báo cáo đề tài.
1.4. GIỚI HẠN
1 modem wifi để hoạt động.
- Kết quả đo được phụ thuộc vào chất lượng của cảm biến MAX30100 và cách đặt
ngón tay lên cảm biến nên yêu cầu phải đặt ngón tay chính xác.
- Cảm biến MAX30100 được sử dụng trong đề tài này đo kết quả chính xác nhất là
ở đầu ngón tay trỏ.
- Thiết bị phù hợp sử dụng ở hộ gia đình, phòng khám nhỏ,… yêu cầu cần phải có
Chương 1: Tổng quan.
Trong chương này, nhóm thực hiện đề tài trình bày tổng quan về tình hình nghiên
cứu, thông tin liên quan đến đề tài trước đây. Mục tiêu, đối tượng và phạm vi nghiên
cứu của đề tài.
Chương 2: Cơ Sở Lý Thuyết.
Giới thiệu về sơ lược về cấu tạo của tim, tín hiệu nhịp tim, đồ thị điện tim,, phương
pháp đo điện tim bằng phương pháp hấp thụ quang học chuẩn giao tiếp I2C ,UART,
UDP… và các chuẩn giao tiếp khác trong đề tài.
Chương 3: Tính toán và thiết kế
Trong chương này, nhóm thực hiện thiết kế sơ đồ khối cho đề tài.
Thực hiện giới thiệu chức năng, lựa chọn linh kiện, thông số kĩ thuật của linh kiện,
thiết kế sơ đồ nguyên lí và giải thích sơ đồ nguyên lí cho từng khối.
Chương 4: Thi công hệ thống
Tiến hành thi công mô hình.
Chương 5: Kết Quả, Nhận Xét và Đánh Giá
3
1.5. BỐ CỤC
CHƯƠNG 1. TỔNG QUAN
Đưa ra kết quả mà nhóm đạt được, số liệu, hình ảnh hệ thống sau khi thi công, so
sánh ưu điểm có cải tiến sao với các đề tài trước và so với máy đo thực tiếp của các sản
phẩm đang có trên thị trường.
Chương 6: Kết Luận và Hướng Phát Triển
Đưa ra kết luận và hướng phát triển của đề tài.
4
CHƯƠNG 2. CƠ SỞ LÝ THUÝET
Chương 2. CƠ SỞ LÝ THUYẾT
2.1 LÍ THUYẾT VỀ NHỊP TIM VÀ PHƯƠNG PHÁP ĐO ĐIỆN TIM
2.1.1 Khái niệm nhịp tim
Nhịp tim là tốc độ nhịp tim đo bằng số lần co thắt (nhịp đập) của tim mỗi phút
(BPM - beat per minute). Nhịp tim có thể thay đổi theo nhu cầu thể chất của cơ thể,
bao gồm cả nhu cầu hấp thu oxy và bài tiết carbon dioxit. Các hoạt động có thể tạo
ra thay đổi bao gồm tập thể dục, ngủ , lo lắng, căng thẳng, bệnh tật và khi uống
thuốc. Chỉ số nhịp tim bình thường là khác nhau giữa các cá thể, phụ thuộc vào giới
tính, độ tuổi, tình trạng sức khỏe, …. Sự thay đổi của chỉ số nhịp tim có thể là dấu
hiệu cho thấy một sự thay đổi của trạng thái tim, qua đó có thể phản ánh tình trạng
sức khỏe cơ thể.
Trong khi nhịp tim được điều hòa hoàn toàn bởi nút xoang nhĩ trong điều kiện
bình thường, nhịp tim được điều chỉnh bởi đầu vào giao cảm và giao cảm với nút
xoang nhĩ. Các dây thần kinh gia tốc cung cấp đầu vào thông cảm cho tim bằng cách
giải phóng norepinephrine lên các tế bào của nút xoang nhĩ (nút SA), và dây thần
kinh phế vị cung cấp đầu vào giao cảm với tim bằng cách giải phóng acetylcholine
vào các tế bào nút xoang nhĩ. Do đó, kích thích thần kinh gia tốc tăng nhịp tim, trong
khi kích thích dây thần kinh phế vị làm giảm nhịp tim. Nhịp tim được đo theo đơn
Bảng 2.1 Chỉ số HR phụ thuộc vào giới tính và độ tuổi
5
vị nhịp/phút.
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
Thời điểm tốt nhất để bạn xác định nhịp tim nghỉ ngơi là buổi sáng, sau khi
thức dậy. Bạn có thể đặt ngón trỏ và ngón giữa lên cổ tay hoặc một bên cổ để đếm
nhịp tim trong vòng 60 giây. Như đã trình bày ở trên, nhịp tim thông thường ở người
trưởng thành là 60-100 nhịp/phút. Tuy nhiên, nhịp tim nghỉ ngơi thấp hơn mức này
không có nghĩa là bạn đang mắc bệnh tim mạch. Ngược lại, nó cho thấy tim bạn hoạt
động hiệu quả hơn mức thông thường và trên thực tế, các vận động viên chuyên
nghiệp đều có nhịp tim nghỉ ngơi quanh ngưỡng 40 nhịp/phút.
Nhiệt độ không khí: nhiệt độ tăng cao thường sẽ khiến tim bơm máu mạnh
Ngoài ra nhịp tim còn chịu tác động từ 4 yếu tố:
Tư thế khi đo: yếu tố này chỉ ảnh hưởng đáng kể trong 15-20 giây đầu tiên.
hơn và nhịp tim của bạn tăng 5-10 nhịp/phút.
6
Vậy nên, bạn hãy luôn đợi một vài phút trước khi tiến hành đo nhịp tim.
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
Cân nặng: những người bị bệnh béo phì, thừa cân thường có nhịp tim cao hơn
Sử dụng thuốc: các loại thuốc có chứa chất ức chế beta sẽ khiến nhịp tim của
mức thông thường.
Bảng 2.2 Chỉ số nhịp tim đối với trạng thái hoạt động cơ thể
Chỉ số nhịp tim nhắm đến khi cơ thể ở trạng thái hoạt động như làm việc, tập thể dục,
vận động cơ thể, vv, do đó tim cần hoạt động co bóp mạnh để cung cấp đủ lượng máu nuôi
các cơ quan. Chỉ số nhịp tim thường được sử dụng để theo dõi trong quá trình luyện tập,
bảo đảm các bài tập không quá sức. Vì vậy, theo dõi chỉ số nhịp tim của một người trong
thời gian dài sẽ cho ta biết được phần nào tình trạng sức khỏe, thói quen hàng ngày, chất
lượng cuộc sống của họ, qua đó có những biện pháp cải thiện kịp thời.
bạn chậm lại, trong khi thuốc chữa trị tuyến giáp lại khiến nhịp tim tăng lên.
Một phân tử Hemoglobin (Hb) có thể kết hợp với 4 phân tử oxy, khi đã gắn đủ 4 phân
tử oxy được gọi là bão hòa oxy. Độ bão hòa oxy trong máu còn được gọi là chỉ số SpO2,
biểu thị cho tỷ lệ Hemoglobin có oxy trên tổng lượng Hemoglobin trong máu. Nếu tất cả
các phân tử Hemoglobin trong máu đều gắn với oxy thì độ bão hòa oxy là 100%. Chỉ số
SpO2 được xem là một trong những dấu hiệu sinh tồn của cơ thể, bên cạnh các dấu hiệu
như: nhiệt độ, mạch, nhịp thở và huyết áp. Khi bị thiếu oxy máu, các cơ quan như tim, gan,
7
2.1.2 Nồng độ oxy trong máu
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
não... sẽ chịu tác động tiêu cực rất nhanh. Vì vậy, cần theo dõi chỉ số SpO2 thường xuyên
để kịp thời can thiệp nếu xảy ra tình trạng nguy hiểm.
Hình 2.1 Các thế tác động qua màng Hầu hết các phân tử Hb sẽ gắn với oxy khi chúng đi qua phổi. Một người
Nếu lượng oxy trong máu hòa tan ở khoảng 97% - 99%: oxy trong máu tốt.
Nếu lượng oxy trong máu hòa tan ở khoảng 94% - 96%: oxy trong máu trung
khỏe mạnh bình thường khi thở ở không khí trên mực nước biển sẽ có độ bão hòa oxy động mạch là 95% - 100%.
Nếu lượng oxy trong máu hòa tan ở khoảng 90% - 93%: oxy trong máu thấp –
bình – cần cho thở thêm oxy.
Nếu SpO2 dưới 92% không thở oxy hoặc dưới 95% có thở oxy: đây là các
nên có y tá hoặc bác sĩ theo dõi hoặc đến bệnh viện gần nhất.
Độ bão hòa oxy thấp hơn 90% là một cấp cứu trên lâm sàng.
dấu hiệu suy hô hấp rất nặng.
Chỉ số SpO2 ở trẻ sơ sinh cũng giống như người lớn: trên 94%. Nếu chỉ số
Nồng độ oxy trong máu bất thường nói lên:
8
SpO2 của trẻ giảm xuống dưới mức 90% thì cần thông báo cho y bác sĩ để được hỗ trợ can thiệp kịp thời.
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
- Ngộ độc CO là một khí độc, có nhiều khi đốt than. Đã có nhiều nạn nhân ngộ độc
khí CO do dùng than tổ ong để sưởi ấm để lại hậu quả nghiêm trọng. CO thay thế oxy ở vị
trí gắn vào Sắt trên phân tử Hb gây ra ngộ độc CO, làm tăng COHb (CO gắn vào
Hemoglobin) và giảm HbO2 (oxy gắn vào Hemoglobin). Hiện tượng này làm giảm độ bão
hòa của oxy trong máu.
- Thiếu máu tức là Hemoglobin trong máu giảm thấp hơn bình thường. Khi không có
tình trạng thiếu oxy máu, máy đo oxy dựa vào mạch đập sẽ cho kết quả chỉ số SpO2 chính
xác khi nồng độ hemoglobin giảm xuống 2 - 3g/dL.
- Những bệnh nhân có chỉ số đo SpO2 dưới 93%, được đánh giá là thiếu oxy máu cần
được thở oxy hoặc thở máy (nếu bệnh nhân không tự thở được). Với bệnh nhân làm trong
môi trường bí khí, thiếu oxy như nhà máy, lò đốt, mỏ quặng... khi đi ra môi trường thoáng
nhiều, oxy sẽ được bổ sung khi thở, bác sĩ sẽ điều chỉnh lượng oxy cho bệnh nhân thở cho
tới khi chỉ số SpO2 ở mức ổn định là 97 - 100%. Mức oxy được sử dụng cho bệnh nhân
tiếp tục được giữ cho tới khi họ thở ổn định trở lại.
2.1.3 Quá trình điện học của tim.
Tim là tổ chức cơ rỗng, tại đó sự co bóp một cách tuần tự các cơ sẽ tạo ra áp
lực đẩy máu đi qua các bộ phận khác nhau trên cơ thể. Mỗi nhịp tim được kích thích
bởi xung điện từ các tế bào nút xoang tại tâm nhĩ. Các xung điện truyền đến các bộ
phận khác của tim và làm cho tim co bóp. Việc ghi tín hiệu điện tim là ghi lại các tín
hiệu điện này (tín hiệu ECG).
Năng lượng chuyển hóa được sử dụng để tạo ra môi trường trong giàu Kali
nhưng ít Natri so với thành phần ngoại bào Natri cao và Kali thấp. Do có sự không
cân bằng tồn tại điện thế tĩnh trên màng tế bào, bên trong chừng 90 mV so với bên
ngoài. Khi tế bào bị kích thích (bằng cách cho dòng điện vốn làm tăng tạm thời thế
ngang mảng), các tính chất của mảng thay đổi theo chu trình, pha thứ nhất của nó là
độ thấm mạnh đối với Natri, dòng Natri lớn (sớm) chảy vào trong do các gradient
9
khuếch tán và điện.
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
Hình 2.2 Quá trình điện học của tim
Trong khi di chuyển liên tiếp, tế bào về cơ bản có tính chất như nguồn lưỡng điện.
Dòng Natri chuyển tiếp này chịu trách nhiệm về dòng mạch điện nội tại và là một phần của
dòng điện đó. Theo cách này, hoạt động mở rộng tiếp tới các tế bào lân cận. Khi màng hồi
phục (trở về các tính chất nghỉ), thế tác động của tế bào kết thúc và nó trở lại trạng thái
nghỉ và có khả năng được tái kích thích. Nói một cách ngắn gọn khi có dòng Natri, Kali
chảy qua màng tim thì có điện thế được sinh ra.
2.1.4 Đo nhịp tim bằng phương pháp hấp thụ quang học
Khi tim đập, máu sẽ được đẩy đi khắp cơ thể qua động mạch, tạo ra sự thay đổi
về áp suất trên thành động mạch và lượng máu chảy qua động mạch. Vì vậy, ta có
thề đo nhịp tim bằng cách đo những sự thay đổi đó. Khi hàm lượng máu trong thành
động mạch thay đổi sẽ làm thay đổi mức độ hấp thụ ánh sáng của động mạch, do đó
khi một tia sáng được truyền qua động mạch thì cường độ ánh sáng sau khi truyền
qua sẽ biến thiên đồng bộ với nhịp tim. Khi tim giãn ra, lượng máu qua động mạch
nhỏ nên hấp thụ ít ánh sáng, ánh sáng sau khi truyền qua động mạch có cường độ
lớn, ngược lại khi tim co vào, lượng máu qua động mạch lớn hơn, ánh sáng sau khi
10
truyền qua động mạch sẽ có cường độ nhỏ hơn.
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
Hình 2.3 Đo nhịp tim bằng phương pháp hấp thụ quang học
Ánh sáng khi truyền qua ngón tay gồm 2 thành phần AC và DC:
• Thành phần DC đặc trưng cho cường độ ánh sáng cố định truyền qua mô xương
và tĩnh mạch.
• Thành phần AC đặc trưng cho cường độ ánh sáng thay đổi khi lượng máu thay
đổi truyền qua động mạch, tần số của tín hiệu này đồng bộ với tần số nhịp tim.
Về nguyên tắc có thể đặt nguồn sáng và Photodiode ở bất cứ nơi nào trên cơ
thể có chứa động mạch. Nhiễu của ánh sáng môi trường vào Photodiode có thể xem
là không đổi nên phép đo sẽ càng tin cậy nếu tín hiệu ánh sáng Photodiode nhận
được là lớn nhất.
Nếu đặt cảm biến ở khuỷu tay hay cổ tay thì có ưu điểm là áp suất máu trong
động mạch biến động rất lớn, nhưng do ánh sáng từ LED phải truyền qua một bề dày
lớn của cơ thể, dẫn đến việc bị hấp thụ quá nhiều bởi mô và xương. Mà độ nhạy của
Photodiode là giới hạn nên ta sẽ cần một nguồn sáng với cường độ rất lớn, dẫn đến
hao phí năng lượng và khó ổn định được cường độ của nguồn sáng từ LED.
Nếu đặt cảm biến ở vành tai, ánh sáng chỉ cần đi qua một bề dày rất nhỏ, nhưng
động mạch ở vị trí này quá bé, mức độ biến thiên cường độ ánh sáng nhận được là
11
quá nhỏ so với toàn bộ ánh sáng nhận được, nên tín hiệu điện không đủ độ tin cậy.
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
Vị trí đặt cảm biến hợp lý nhất là các đầu ngón tay, tuy động mạch ở vị trí này
không quá lớn nhưng bề dày cơ thể ánh sáng phải truyền qua lại tương đối ít nên chỉ
cần dùng 1 LED làm nguồn phát. Mặt khác, ở vị trí này cho mức độ biến thiên cường
độ ánh sáng nhận được là khá lớn so với toàn bộ ánh sáng nhận được, tỉ số giữa biên
độ tín hiệu với nền một chiều là đủ lớn để phần xử lý tín hiệu hoạt động đưa ra kết
quả chính xác nhất.
2.2 CÁC CHUẨN GIAO TIẾP GIỮA CÁC MODULE
2.2.1 Chuẩn giao tiếp I2C giữa cảm biến MAX30100 và ESP8266 NodeMCU
Đầu năm 1980 Phillips đã phát triển một chuẩn giao tiếp nối tiếp 2 dây được
gọi là I2C. I2C là tên viết tắt của cụm từ Inter-Intergrated Circuit. Đây là đường Bus
giao tiếp giữa các IC với nhau. I2C mặc dù được phát triển bởi Phillips, nhưng nó
đã được rất nhiều nhà sản xuất IC trên thế giới sử dụng. I2C trở thành một chuẩn
công nghiệp cho các giao tiếp điều khiển, có thể kể ra đây một vài tên tuổi ngoài
Phillips như: Texas Instrument(TI), MaximDallas, analog Device, National
Semiconductor, vv. Bus I2C được sử dụng làm bus giao tiếo ngoại vi cho rất nhiều
loại IC khác nhau như các loại Vi điều khiển 8051, PIC, AVR, ARM, vv chip nhớ
như: RAM tĩnh (Static RAM), EEPROM, bộ chuyển đổi tương tự số (ADC), số
tương tự (DAC), IC điều khiển LCD, LED, vv.
I2C sử dụng hai đường truyền tín hiệu:
• Một đường xung clock (SCL) chỉ do Master phát đi (thông thường ở 100kHz
và 400kHz. Mức cao nhất là 1MHz và 3.4MHz).
12
Một đường dữ liệu (SDA) theo 2 hướng. •
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
Hình 2.4 Chuẩn giao tiếp I2C
Có rất nhiều thiết bị có thể cũng được kết nối vào một bus I2C, tuy nhiên sẽ
không xảy ra chuyện nhầm lẫn giữa các thiết bị, bởi mỗi thiết bị sẽ được nhận ra bởi
một địa chỉ duy nhất với một quan hệ master/slave tồn tại trong suốt thời gian kết
nối. Mỗi thiết bị có thể hoạt động như là thiết bị nhận hoặc truyền dữ liệu hay có thể
vừa truyền vừa nhận. Hoạt động truyền hay nhận còn tùy thuộc vào việc thiết bị đó
là master hay slave.
Một thiết bị hay một IC khi kết nối với bus I2C, ngoài một địa chỉ (duy nhất)
để phân biệt, nó còn được cấu hình là thiết bị master hay slave. Đó là vì trên một bus
I2C thì quyền điều khiển thuộc về thiết bị master hay slave. Thiết bị master nắm vai
trò tạo xung clock đồng bộ cho toàn hệ thống, khi giữa hai thiết bị master – slave
giao tiếp thì thiết bị master có nhiệm vụ tạo xung clock đồng bộ và quản lý địa chỉ
của thiết bị slave trong suốt quá trình giao tiếp. Thiết bị master giữ vai trò chủ động,
còn thiết bị slave giữ vai trò bị động trong việc giao tiếp. Về lý thuyết lẫn thực tế
I2C sử dụng 7 bit để định địa chỉ, do đó trên một bus có thể có tới 27 địa chỉ tương
ứng với 128 thiết bị có thể kết nối, nhưng chỉ có 112, 16 địa chỉ còn lại được sử dụng
vào mục đích riêng. Bit còn lại quy định việc đọc hay ghi dữ liệu (1 là write, 0 là
read).
Có một lưu ý nhỏ về xung clock. Bản chất của I2C là dữ liệu trên đường SDA
13
chỉ được ghi nhận ở sườn lên của chân CLK. Do vậy xung clock có thể không cần
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
chính xác tốc độ là 1MHz hay 3.4MHz. Lợi dụng điểm này có thể sử dụng 2 chân
GPIO để làm chân giao tiếp I2C mềm mà không nhất thiết cần một chân CLK tạo
xung với tốc độ chính xác.
Quá trình truyền dữ liệu giữa 2 thiết bị chế độ Master – Slave dùng bus I2C
diễn ra như sau:
Thiết bị master tạo xung START (tức là đường SDA thay đổi từ mức cao
xuống mức thấp và đường SCL đang ở mức cao) để bắt đầu quá trình giao tiếp.
Thiết bị master gửi địa chỉ của thiết bị slave muốn giao tiếp cùng với bit R/W
và đợi xung ACK phản hồi. Địa chỉ của thiết bị slave được định nghĩa bởi 7 bit,
ngoài ra có thể đánh địa chỉ dưới dạng 10 bit nếu sau lệnh START gửi chuỗi 11110
ra đường SDA. Bit R/W dùng để điều khiển hướng truyền- bit “0” là truyền từ master
tới slave, ngược lại bit “1” là truyền từ slave tới master. Việc thiết lập bit R/W do
thiết bị master quy định.
Khi nhận được xung báo ACK từ thiết bị slave xác nhận đúng địa chỉ thì bắt
đầu thực hiện truyền dữ liệu. Dữ liệu được gửi theo từng byte. Mỗi byte gồm 8 bit
và sau mỗi byte đều bắt buộc có một xung ACK để đảm bảo quá trình truyền nhận
diễn ra chính xác. Số lượng byte là không giới hạn. Xung ACK được định nghĩa là
SDA kéo xuống mức thấp. Ngoài ra, khi không nhận được đúng địa chỉ hay khi
muốn kết thúc quá trình giao tiếp thiết bị nhận sẽ gửi một xung NACK tức là SDA
ở mức cao.
Kết thúc quá trình truyền, thiết bị master sẽ gửi xung STOP hoặc thiết bị slave
gửi xung NACK để báo hiệu kết thúc. Xung STOP tương tự như xung START nhưng
trạng thái của đường SDA thay đổi từ mức thấp lên mức cao. Ngoài ra, trong một
quá trình giao tiếp có thể lặp lại xung START kèm theo một địa chỉ mới để bắt đầu
một giao tiếp khác.
Điểm mạnh của I2C chính là hiệu suất và sự đơn giản của nó: một khối điều
khiển trung tâm có thể điều khiển cả một mạng thiết bị mà chỉ cần hai lối ra điều
khiển.
14
2.2.2 Chuẩn giao tiếp UART giữa STM32F407 và ESP8266 NodeMCU
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
UART chuyển đổi giữa dữ liệu nối tiếp và song song. Một chiều UART
chuyển đổi dữ liệu song song bus hệ thống ra dữ liệu nối tiếp để truyền đi. Một chiều
khác UART chuyển đổi dữ liệu nhận được dạng dữ liệu nối tiếp thành dạng dữ liệu
Hình 2.5 Truyền UART
song song cho CPU có thể đọc vào bus hệ thống.
UART hỗ trợ cả hai kiểu giao tiếp là giao tiếp đồng thời và giao tiếp không
đồng thời. Giao tiếp đồng thời tức là UART có thể gửi và nhận dữ liệu vào cùng một
thời điểm. Còn giao tiếp không đồng thời là chỉ có một thiết bị có thể chuyển dữ liệu
vào một thời điểm, với tín hiệu điều khiển hoặc mã sẽ quyết định bên nào có thể truyền
dữ liệu. Giao tiếp không đồng thời được thực hiện khi mà cả 2 chiều chia sẽ một
đường dẫn hoặc nếu có 2 đường nhưng cả 2 thiết bị chỉ giao tiếp qua một đường ở
cùng một thời điểm. Thêm vào đường dữ liệu, UART hỗ trợ bắt tay chuẩn RS232 và
tín hiệu điều khiển như RTS, CTS, DTR, DCR, RT và CD. Để thuận tiện, các chương
trình gửi và nhận dữ liệu trong định dạng không đồng bộ đơn giản hơn. PC và nhiều
vi xử lý khác có một bộ phận gọi là UART (universal asynchronous
receiver/transmitter: truyền /nhận không đồng bộ chung) vì thế có thể vận dụng phần
lớn những chi tiết truyền và nhận dữ liệu. Trong PC, hệ điều hành và ngôn ngữ lập
trình hỗ trợ cho lập trình liên kết nối tiếp mà không cần phải hiểu rõ chi tiết cấu trúc
UART. Để mở liên kết, ứng dụng lựa chọn một tần số dữ liệu hoặc là thiết lập khác
hoặc cho phép truyền thông tại các cổng. Để gửi 1 byte, ứng dụng ghi byte này vào
bộ đệm truyền của cổng được lựa chọn, và UART gửi dữ liệu này, từng bit một, trong
định dạng yêu cầu, thêm bit Start, bit Stop, bit chẵn lẻ khi cần. Trong một cách đơn
giản, byte nhận được tự động được lưu trữ trong bộ đệm. UART có thể dùng nhanh
15
một ngắt để báo cho CPU và các ứng dụng biết dữ liệu đang nhận được và các sự kiện
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
khác. Một vài vi điều khiển không bao gồm UART, và thỉnh thoảng bạn cần nhiều
hơn các UART mà vi xử lý có. Trong trường hợp này, có 2 lựa chọn: thêm UART
ngoài, hoặc mô phỏng UART trong mã chương trình. Basic Stamp của Parallax là một
ví dụ của chip với một UART bổ sung trong mã chương trình. UART là một thiết bị
đơn giản hỗ trợ tốt cả hai kiểu truyền thông đồng bộ và không đồng bộ.
Các thông số cơ bản của chuẩn truyền:
- Baud rate (tốc độ Baud): Khi truyền nhận không đồng bộ để hai module hiểu
được nhau thì cần quy định một khoảng thời gian cho 1 bit truyền nhận, nghĩa là trước
khi truyền thì tốc độ phải được cài đặt đầu tiên. Theo định nghĩa thì tốc độ baud là số
bit truyền trong một giây.
- Frame (khung truyền): Do kiểu truyền thông nối tiếp này rất dễ mất dữ liệu
nên ngoài tốc độ, khung truyền cũng được cài đặt từ ban đầu để giảm bớt sự mất mát
dữ liệu này. Khung truyền quy định số bit trong mỗi lần truyền, các bit thông báo như
start, stop, các bit kiểm tra như parity, và số bit trong một data.
- Bit Start: Là bit bắt đầu trong khung truyền. Bit này nhằm mục đích báo cho
thiết bị nhận biết quá trình truyền bắt đầu. Trên AVR bit Start có trạng thái là 0.
- Data: Dữ liệu cần truyền data không nhất thiết phải 8 bit có thể là 5, 6, 7, 8,
9. Trong UART bit LSB được truyền đi trước, bit MSB được truyền đi sau.
- Parity bit: Là bit kiểm tra dữ liệu. Có 2 loại parity: chẵn (even parity), lẻ (old
parity). Parity chẵn là bit parity thêm vào để số số 1 trong data + parity = chẵn. Parity
lẻ là bit parity thêm vào để số số 1 trong data + parity = lẻ. Bit parity là không bắt
buộc nên có thể dùng hoặc không.
2.2.3 Chuẩn truyền không dây theo giao thức UDP
Giới thiệu UDP viết tắt của User Datagram Protocol, là một trong những giao
thức cốt lõi của giao thức TCP/IP. Dùng UDP, chương trình trên mạng máy tính có
thể gửi những dữ liệu ngắn được gọi là datagram tới máy khác. UDP không cung
cấp sự tin cậy và thứ tự truyền nhận mà TCP làm các gói dữ liệu có thể đến không
đúng thứ tự hoặc bị mất mà không có thông báo. Tuy nhiên UDP nhanh và hiệu quả
16
hơn đối với các mục tiêu như kích thước nhỏ và yêu cầu khắt khe về thời gian. Do
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
bản chất không trạng thái của nó nên nó hữu dụng đối với việc trả lời các truy vấn
nhỏ với số lượng lớn người yêu cầu.
Hình 2.6 So sánh giao thức truyền TCP và UDP
Trong bộ giao thức TCP/IP, UDP cung cấp một giao diện rất đơn giản giữa
tầng mạng bên dưới ( thí dụ, IPv4 ) và tầng phiên làm việc hoặc tầng ứng dụng phía
trên. UDP không đảm bảo cho các tầng phía trên thông điệp đã được gửi đi và người
gửi cũng không có trạng thái thông điệp UDP một khi đã được gửi ( Vì lý do này
đôi khi UDP còn được gọi là Unreliable Datagram Protocol). UDP chỉ thêm các
thông tin multiplexing và giao dịch. Các loại thông tin tin cậy cho việc truyền dữ
liệu nếu cần phải được xây dựng ở các tầng cao hơn.
Do thiếu tính tin cậy, các ứng dụng UDP nói chung phải chấp nhận mất mát,
lỗi hoặc trùng dữ liệu. Một số ứng dụng như TFTP có nhu cầu phải thêm những kỹ
thuật làm tin cậy cơ bản vào tầng ứng dụng. Hầu hết các ứng dụng UDP không cần
những kỹ thuật làm tin cậy này và đôi khi nó bị bỏ đi. Streaming media, game trực
17
tuyến và voice over IP (VoIP) là những thí dụ cho các ứng dụng thường dùng UDP.
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
Trong đề tài này chúng em chọn giao thức truyền này để truyền dữ liệu giữa
hai bộ truyền nhận không dây. Ngoài ra ứng dụng Android cũng truy cập tới địa chỉ
18
IP này để lấy lấy dữ liệu về hiển thị.
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Chương 3. TÍNH TOÁN VÀ THIẾT KẾ
3.1 GIỚI THIỆU
Trong chương này, trình bày về cách tính toán, sơ đồ khối, sơ đồ nguyên
lý của các board mạnh của hệ thống: mạch điều khiển LCD, module đọc giá trị
cảm biến, giao tiếp không dây, lcd hiển thị, mạch nguồn và mạch giảm áp.
3.2 THIẾT KẾ SƠ ĐỒ KHỐI HỆ THỐNG
KHỐI NGUỒN
KHỐI NGUỒN
KHỐI GIAO TIẾP WIFI
KHỐI VI XỬ LÍ TRUNG TÂM ĐỌC CẢM BIẾN VÀ GIAO TIẾP WIFI
KHỐI VI XỬ LÍ TRUNG TÂM ĐIỀU KHIỂN HIỂN THỊ
KHỐI HIỂN THỊ
KHỐI CẢM BIẾN
ỨNG DỤNG APP ANDROID
Giao diện người dùng
Truyền dữ liệu
Nhận dữ liệu
Hình 3.1 Sơ đồ khối
Chức năng của các khối:
- Khối nguồn: cấp nguồn cho các khối vi xử lí trung tâm.
- Khối cảm biến: đọc giá trị nhịp tim, SpO2 gửi cho khối vi xử lí.
- Khối vi xử lý trung tâm đọc cảm biến và giao tiếp wifi: cấp nguồn nuôi
cho khối cảm biến nhịp tim. Nhận dữ liệu từ khối cảm biến, xử lý tính toán lọc
giá trị cho ra giá trị nhịp tim, SpO2, giá trị vẽ đồ thị điện và gửi dữ liệu qua
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
19
giao tiếp wifi.
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Khối giao tiếp wifi: nhận dữ liệu từ khối trung tâm đọc cảm biến và -
truyền cho khối xử lí hiển thị.
Khối xử lý hiển thị : nhận giá trị từ khối giao tiếp wifi. Thực hiện tách -
chuỗi dữ liệu nhận được gửi cho Khối hiển thị.
Khối hiển thị : hiển thị nội dung nhận được từ khối vi điều khiển xử lý -
hiển thị.
- App android: Nhận dữ liệu từ khối đọc giá trị cảm biến, để vẽ đồ thị điện
tim, hiển thị nhịp tim, SpO2. Và cho phép thiết lập tên bệnh nhân từ điện thoại
và gửi đến khối vi điều khiển xử lý hiển thị.
3.3 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG
3.3.1 Thiết kế khối cảm biến đo nhịp tim
a. Chức năng:
Đo nhịp tim của người dùng theo phương pháp hấp thụ quang học, nồng
độ oxy trong máu, kèm theo giá trị để vẽ đồ thị điện tim.
b. Lựa chọn linh kiện:
Với các nguyên lý đo nhịp tim đã được trình bày thì cảm biến nhịp tim
MAX30100 phù hợp cho dự án này do tính phổ biến, dễ lập trình và sử dụng.
Cảm biến nhịp tim MAX30100 của hãng Maxim integrated hoạt động dựa trên
phương pháp hấp thụ quang học đã trình bày. Như vậy, để có thể đo được nhịp
tim bằng phương pháp này, nguyên lý tương đối đơn giản, ta sẽ cần 3 thành
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
20
phần: LED, LDR và vi điều khiển. LED và LDR được bố trí như hình.
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Hình 3.2 Nguyên lí hoạt động LED hồng ngoại
Ở trạng thái hoạt động, LED luôn phát ra ánh sáng và LDR sẽ thu ánh
sáng phản xạ từ LED, khi có máu dẫn trong mạch máu (mạch máu dãn ra), ánh
sáng từ LED sẽ bị hấp thụ nhiều hơn, dẫn đến cường độ ánh sáng mà LDR thu
được là ít hơn, ngược lại, khi không có máu dẫn (mạch máu co lại), ánh sáng
từ LED sẽ không bị hấp thụ bởi máu, và do đó cường độ ánh sáng LDR thu
được là lớn hơn. Từ đó, ta có thể nhận biết được sự thay đổi, qua đó xác định
được thời điểm máu dẫn trong mạch máu, tức thời điểm tim đập.
c. Thông số kỹ thuật:
• Cảm biến nhịp tim và oxy trong máu MAX30100
• IC chính: MAX30100.
• Đo được nhịp tim và nồng độ Oxy trong máu.
• Điện áp sử dụng: 1.8~5.5VDC.
• Nhỏ gọn, siêu tiết kiệm năng lượng, thích hợp cho các thiết bị đo nhỏ
gọn, Wearable Devices.
• Giao tiếp: I2C, mức tín hiệu TTL.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
21
• Kích thước: 1.9 cm x 1.4 cm x 0.3 cm
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Hình 3.3 Hình ảnh cảm biến MAX30100
Hình 3.4 Sơ đồ nguyên lý cảm biến MAX30100
e. Giải thích sơ đồ nguyên lí
Nguồn cung cấp cho cảm biến từ 1,8 -5.5V. Tuy nhiên nguồn 3.3V được
khuyến khích sử dụng để cảm biến hoạt động tốt nhất.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
22
d. Sơ đồ nguyên lý
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Tụ điện C1, C2, C4, C5, C6, C7 mục đích để lọc nguồn trước khi đi vào các
khối chức năng.
Khối U1 bộ điều khiển cảm biến led hồng ngoại chính của MAX30100
Khối U2 là khối IC ổn áp nguồn.
Khối U3 mạch giảm áp 3.3V-1.8V.
Điện trở R1,R2 điện trở 4.7k kéo lên của của chuẩn giao tiếp I2C.
3.3.2 Thiết kế khối vi điều khiển đọc cảm biến và giao tiếp wifi
a. Chức năng:
Nhận dữ liệu từ cảm biến. Tính toán và xử lí cho đi qua 3 bộ lọc xuất ra
giá trị nhịp tim, SpO2 và giá trị để vẽ đồ thị. Ngoài ra còn có nhiệm vụ truyền
dữ liệu đã được xử lí cho các thiết bị khác có thể nhận được qua truyền không
dây.
b. Lựa chọn linh kiện:
Chính vì lí do trên chúng tôi chọn Kit RF thu phát Wifi ESP8266
NodeMCU Lua là khối vi điều khiển đọc dữ liệu cảm biến của chúng tôi.
ESP8266 NodeMCU Lua phát triển dựa trên nền chip Wifi SoC ESP8266 với
thiết kế dễ sử dụng và đặc biệt là có thể sử dụng trực tiếp trình biên dịch của
Arduino để lập trình và nạp code, điều này khiến việc sử dụng và lập trình các
ứng dụng trên ESP8266 Node MCU trở nên rất đơn giản. Kit RF thu phát Wifi
ESP8266 NodeMCU Lua được dùng cho các ứng dụng cần kết nối, thu thập dữ
liệu và điều khiển qua sóng Wifi, đặc biệt là các ứng dụng liên quan đến IoT.
Kit RF thu phát Wifi ESP8266 NodeMCU Lua gồm 2 phiên bản sử dụng
chip nạp là CP2102 có khả năng tự nhận Driver trên tất cả các hệ điều hành
Window và Linu., đây là phiên bản nâng cấp từ các phiên bản sử dụng IC nạp
giá rẻ CH340
c. Thông số kỹ thuật:
• NodeMCU có cổng USB-TTL với IC CP2102 hoạt động ổn định với
chuẩn công nghiệp.
• Điện áp giao tiếp: 3.3 VDC,
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
23
• Loại ăngten: ăng ten PCB tích hợp trên mạch.
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
• Chuẩn 802.11 b / g / n không dây
• WiFi 2.4GHz, hỗ trợ chế độ bảo mật WPA / WPA2
• Hỗ trợ 3 chế độ hoạt động STA / AP / STA + AP
• Tích hợp giao thức TCP / IP để hỗ trợ nhiều kết nối TCP Client (5 MAX)
• D0 ~ D8, SD1 ~ SD3: sử dụng như GPIO, PWM, IIC, vv, dòng điều
khiển 15mA
• AD0: 1 kênh ADC
• Nguồn vào: 4.5V ~ 9V (10VMAX), nguồn từ cổng USB
• Dòng tải: truyền liên tục: ≈70mA (200mA MAX), chế độ chờ: <200uA
• Tốc độ truyền: 110-460800bps
• Hỗ trợ giao tiếp truyền dữ liệu UART / GPIO
• Nâng cấp phần mềm từ xa (OTA)
• Hỗ trợ Smart Link Smart Networking
• Nhiệt độ làm việc: -40 ~ +125 độ C
• Loại điều khiển: Cầu H đôi
• ESP8266 có chân IO
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
24
• Flash: 4Mbyte
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Hình 3.5 Sơ đồ chân ESP8266 Node MCU
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
25
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Hình 3.6 Sơ đồ nguyên lý ESP_8266 Node MCU và MAX30100
d. Sơ đồ nguyên lý
e. Giải thích nguyên lí:
Ta có cảm biến với vi điều khiển giao tiếp qua đường bus I2C chỉ gồm
hai dây và được đặt tên là Serial Clock Line (SCL) và Serial Data Line (SDA).
Dữ liệu được truyền đi được gửi qua dây SDA và được đồng bộ với tín hiệu
đồng hồ (clock) từ SCL.
Cả hai đường bus I2C (SDA, SCL) đều hoạt động như các bộ lái cực
máng hở (open drain). Nó có nghĩa là bất kỳ thiết bị nào trên mạng I2C có thể
lái SDA và SCL xuống mức thấp, nhưng không thể lái chúng lên mức cao. Vì
vậy, cần điện trở kéo lên R1,R2,R5,R6 giá trị 4.7k được sử dụng cho mỗi đường
bus, để giữ cho chúng ở mức cao (ở điện áp dương) theo mặc định.
Lý do sử dụng một hệ thống cực máng hở (open drain) là để không xảy
ra hiện tượng ngắn mạch, điều này có thể xảy ra khi một thiết bị cố gắng kéo
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
26
đường dây lên cao và một số thiết bị khác cố gắng kéo đường dây xuống thấp.
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Tụ điện C19, C20, C15, C16 thành triệt nhiễu vào mạch.
3.3.3 Thiết kế khối giao tiếp wifi
a. Chức năng:
Nhận dữ liệu về từ khối đọc cảm biến và giao tiếp wifi.
b. Lựa chọn linh kiện:
Kit NodeMCU ESP8266 CH340 sử dụng chip nạp CH340 (không dùng
chip CP2102 cao cấp) và ESP8266 V12 MOD mới và ổn định nhất trong các
phiên bản ESP8266 trên thị trường, trước đây để phát triển.các ứng dụng IoT(
Internet of Things) phải sử dụng rất nhiều thứ như vi điều khiển, module wifi,
mạch nguồn... Với NodeMCU ESP8266 V3.0 Kit bạn có thể phát triển các ứng
dụng sử dụng wifi một cách dễ dàng và tiện lợi nhất, kit được hỗ trợ rất mạnh
bởi các cộng đồng IoT trong đó có Inventer giúp bạn tạo ứng dụng kiểm soát
thông qua smartphone với giao diện người dùng đẹp đẽ và dể sử dụng.
c. Thông số kĩ thuật
NodeMCU có cổng USB-TTL với IC CH340 hoạt động ổn định với
chuẩn công nghiệp.
• Điện áp giao tiếp: 3.3 VDC,
• Loại ăngten: ăng ten PCB tích hợp trên mạch.
• Chuẩn 802.11 b / g / n không dây,
• WiFi 2.4GHz, hỗ trợ chế độ bảo mật WPA / WPA2
• Hỗ trợ 3 chế độ hoạt động STA / AP / STA + AP
• Tích hợp giao thức TCP / IP để hỗ trợ nhiều kết nối TCP Client (5 MAX)
• D0 ~ D8, SD1 ~ SD3: sử dụng như GPIO, PWM, IIC, vv, dòng điều
khiển 15mA
• AD0: 1 kênh ADC
• Nguồn vào: 4.5V ~ 9V (10VMAX), nguồn từ cổng USB
• Dòng tải: truyền liên tục: ≈70mA (200mA MAX), chế độ chờ: <200uA
• Tốc độ truyền: 110-460800bps
• Hỗ trợ giao tiếp truyền dữ liệu UART / GPIO
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
27
• Nâng cấp phần mềm từ xa (OTA)
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
• Hỗ trợ Smart Link Smart Networking
• Nhiệt độ làm việc: -40 ~ +125oC
• Loại điều khiển: Cầu H đôi
• ESP8266 có chân IO
• Flash: 4Mbyte
Hình 3.7 Sơ đồ nguyên lý ESP_8266 Node MCU CH340
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
28
d. Sơ đồ nguyên lí
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
d. Sơ đồ nguyên lí
Hình 3.8 Mạch giao tiếp ESP8266 Node MCU với vi điều khiển
STM32F407 chuẩn truyền UART
e. Giải thích sơ đồ nguyên lí
Nguồn cấp cho ESP8266 Node MCU hoạt động là nguồn 5VDC. Chân
Tx Của module là chân truyền dữ liệu được nối với chân nhận dữ liệu RX của
vi điều khiển. Chân Rx của module là chân nhận dữ liệu được nối với chân
truyền dữ liệu Tx của vi điều khiển.
3.3.4 Thiết kế khối xử lí trung tâm điều khiển hiển thị
a. Chức năng:
Giao tiếp với khối giao tiếp wifi qua giao tiếp UART. Xử lí đọc giá trị
chuỗi nhận được, thực hiện tách chuỗi lấy các giá trị nhịp tim, SPO2, giá trị
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
29
vẽ đồ thị điện tim. Dữ liệu được hiển thị trên LCD qua chuẩn truyền FSMC.
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
b. Lựa chọn linh kiện:
Để thiết kế khối xử lí trung tâm của đề tài: “THIẾT KẾ THI CÔNG
THIẾT BỊ GIÁM SÁT NHỊP TIM VÀ NỒNG ĐỘ OXY TRONG MÁU”
trên thị trường hiện nay có rất nhiều dòng vi xử lí như:
PIC,ARM,AVR,8051,….Tuy nhiên với yêu cầu của đề tài này là tốc độ xử lí
dữ liệu phải nhanh và cập nhật liên tục để vẽ đồ thị điện tim thì ARM đáp ứng
được hầu hết các yêu cầu trên. Cũng như trong quá trình học tập nhóm cũng
đã từng tiếp xúc với dòng vi điều khiên này nên quyết định chọn ARM để làm
vi điều khiển cho đề tài tốt nghiệp của nhóm mình.
GIỚI THIỆU VỀ VI XỬ LÝ ARM
Cấu trúc ARM (Acorn RISC Machine) là một loại cấu trúc vi xử lý 32
bit kiểu RISC được sử dụng rộng rãi trong thiết kế nhúng. Do đặc điểm tiết
kiệm năng lượng, các bộ CPU ARM chiếm được ưu thế trong các sản phẩm
điện tử di động, mà các sản phẩm này việc tiêu tán công suất thấp là một
Hình 3.9 Ứng dụng ARM trong kĩ thuật điện tử
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
30
mục tiêu thiết kế hàng đầu.
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Với mô hình máy đo điện tim sử dụng vi xử lý ARM này thì nhóm tôi
quyết định chọn con chip STM32F407VET6 vì tốc độ và dung lượng lưu
trữ phù hợp với yêu cầu đặt ra để giao tiếp với màn hình chuẩn FSMC, quan
trọng nhất là đã được tiếp xúc trong quá trình học tập .
c. Thông số kĩ thuật:
• Bộ nhớ Flash lên tới 1 Mbyte.
• 192 + 4 Kbyte SRAM bao gồm RAM dữ liệu 64-Kbyte CCM (bộ nhớ
kết hợp lõi).
• Bộ điều khiển bộ nhớ tĩnh linh hoạt hỗ trợ các bộ nhớ Compact Flash,
SRAM, PSRAM, NOR và NAND.
• Hỗ trợ truyền dữ liệu song song với LCD
• Nguồn cung cấp từ 1.8V đến 3.6V
• Bộ tạo dao động tinh thể 4 đến 26 MHz.
• Dao động 32 kHz cho RTC với hiệu chuẩn RC 32 kHz bên trong có hiệu
chuẩn.
• Chế độ ngủ, dừng và chờ.
• Cung cấp cho RTC, các thanh ghi dự phòng 20 × 32 bit + SRAM sao lưu
4 KB tùy chọn.
• Bộ chuyển đổi A/D 3 × 12 bit, 2.4 MSPS: tối đa 24 kênh và 7.2 MSPS
• Bộ chuyển đổi D/A 2 × 12 bit DMA đa năng.
• DMA 16 luồng với hỗ trợ FIFO và hỗ trợ cụm.
• Lên đến 17 bộ định thời: tối đa 12 bộ định thời 16 bit và 2 bộ định thời
32 bit lên đến 168 MHz, mỗi bộ có tối đa 4 IC / OC / PWM hoặc bộ đếm
xung.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
31
• 140 cổng I/O với khả năng ngắt.
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
• 136 I/O nhanh lên đến 84 MHz.
• Giao diện lên tới 3 × I 2 C (SMBus / PMBus)
• 4 USART / UART (10,5 Mbit / s, giao diện ISO 7816, LIN, IrDA, điều
khiển modem).
• 3 SPI (42 Mbits/giây), 2 với I2S song công hoàn chỉnh để đạt được độ
chính xác của lớp âm thanh thông qua PLL âm thanh bên trong hoặc đồng
hồ bên ngoài.
• Giao diện 2 × CAN (Hoạt động 2.0B).
• Giao diện SDIO.
• Giao diện camera song song 8- đến 14 bit lên tới 54 Mbyte/s.
• Trình tạo số ngẫu nhiên thực.
• Đơn vị tính CRC ID duy nhất 96 bit.
• RTC: độ chính xác cao
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
32
Hình 3.10 Hình ảnh chip STM32F407VET6 kiểu đóng gói LQF1000
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Hình 3.11 Sơ đồ nguyên lí STM32F407VET6 giao tiếp ngoại vi
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
33
d. Sơ đồ nguyên lý kết nối chân STM32F4VET6
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Hình 3.12 Mạch Reset vi điều khiển mức thấp.
Hình 3.13 Mạch tạo dao động và thời gian thực
e. Giải thích sơ đồ nguyên lí
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
34
Sơ đồ nguyên lí của khối xử lí hiển thị được giải thích theo bảng sau:
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Bảng 3.1 Bảng sơ đồ kết nối chân vi điều khiển
1 bộ giao tiếp màn hình LCD
FSMC
( 16 chân dữ liệu, 4 chân điều khiển,3 chân điều
khiển cảm ứng và 2 chân nguồn )
1 UART giao tiếp ESP8266 Node MCU
(PA2,PA3)
Chuẩn truyền thông sử dụng
1 I2C giao tiếp màn hình cảm ứng (PB6,PB7)
Oscillator Type ( tạo dao động)
Thạch anh 8Mhz (PC14,PC15)
Điện áp hoạt động 3.3V được cấp từ mạch giảm áp
Bộ tạo tạo thời thực Thạch Anh 32.768kHz ( PH0,PH1)
Mach nạp ST-Link v2 SW_DIO,SW_CLK ( PA13,PA14)
Tụ điện lọc nguồn C8,…,C12,C21,…,C29 chống nhiễu công
(100nF,10Uf) nghiệp
Nút Nhấn Loại thường mở
3.3.5 Thiết kế khối hiển thị giao diện người dùng
a. Chức năng:
Diode 1N5818 chống ngược nguồn
Nhận dữ liệu từ khối vi xử lí hiển thị. Nhịp tim, nồng độ oxy và đồ thị
điện tim được hiển thị lên màn hình lớn giúp người dùng có thể theo dõi quan
b. Lựa chọn linh kiện
sát.
Với yêu cầu của đề tài “ Thiết kế thi công máy đo điện tim” dữ liệu cần
hiển thị sẽ được truyền nhận liên tục để đảm bảo tính ổn định của đồ thị dạng
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
35
sóng.
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Chính vì những lí do đó màn hình LCD cảm ứng điện dung 7 inch được
phát triển với mục đích giúp người sử dụng có thể thiết kế các giao diện điều
khiển và hiển thị (GUI) trên màn cảm ứng một cách dễ dàng và trực quan
nhất. Các điểm mạnh về tính năng:
• Giao tiếp FSMC chuẩn song song, với chỉ 16 dây dữ liệu và 4 dây điều
khiển tín hiệu .
• Thiết kế cảm ứng điện dung giúp dễ dàng thao tác khi mang găng tay
trong môi trường lao động.
• Mạch có chất lượng gia công tốt, độ bền cao.
c. Thông số kỹ thuật:
• Màn hình HMI 7 inch cảm ứng điện dung.
• Giao tiếp song song FSMC.
• Cấp nguồn 3.3VDC.
Hình 3.14 Hình ảnh LCD mặt trước
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
36
• Có bộ nhớ lưu trữ và xử lý hình ảnh
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Hình 3.15 Hình ảnh LCD mặt sau
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
37
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Hình 3.16 Giao tiếp LCD với vi điều khiển STM32F407 chuẩn FSMC
d. Sơ đồ nguyên lí
Chân 2,36,34 : nối GND.
Chân 25, 33: Cấp nguồn 3.3V từ mạch giảm áp LM2596.
Tụ điện C1 10uF: lọc nhiễu 50Hz công nghiệp.
Chân 3,…,18: chân lấy dữ liệu truyền song song từ chân vi điều khiển.
Chân 19: tín hiệu cho phép LCD hoạt động thường là mức thấp.
Chân 20: Chọn ghi dữ liệu hay đọc dữ liệu trong thanh ghi.
Chân 21: Chân ghi dữ liệu.
Chân 22: Chân đọc dữ liệu.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
38
e. Giải thích sơ đồ nguyên lí
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
3.3.6 Thiết kế khối nguồn:
a. Chức năng:
Cung cấp nguồn cho toàn bộ hệ thống bao gồm cả khối đo nhịp tim và
khối điều khiển hiển thị.
Bảng 3.2 Dòng điện tiêu thụ của các thiết bị sử dụng
Dòng điện định mức 200mA 240mA 180mA
Điện áp định mức 5VDC 3.3VDC 3.3VDC
Tên linh kiện ESP8266 STM32F407VET6 LCD 7 inch Với các thông số điện áp, dòng điện của các linh kiện được sử dụng cũng
b. Lựa chọn linh kiện:
như để đáp ứng mục tiêu thiết kế nhỏ gọn thì nguồn 5V 1.5A là lựa chọn phù
hợp cho khối nguồn của toàn mạch. Loại nguồn này rất phổ biến trong các ứng
dụng Iot hiện nay có thể đc cung cấp từ Adapter, Sạc pin điện thoại, pin dự
phòng, pin lipo….. Tuy nhiên với ứng dụng đo điện tim hiển thị thì sử dụng
nguồn cung cấp từ pin dự phòng hoặc adapter sạc cho điện thoại là hợp lí và dễ
sử dụng nhất. Ngoài ra còn cần phải thực hiện cho nguồn 5v dc qua mạch Buck
DC-DC để cấp có các ngoại vi ở đây nhóm em chọn module đc thế kế sẵn là
mạch hạ áp dùng IC LM2596.
Điện áp đầu vào: Từ 3V đến 30V.
Điện áp đầu ra: Điều chỉnh được trong khoảng 1.5V đến 30V.
Dòng đáp ứng tối đa là 3A.
Hiệu suất : 92%
Công suất : 15W
Kích thước: 45 (dài) * 20 (rộng) * 14 (cao) mm
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
39
c. Thông số kỹ thuật:
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Hình 3.17 Mạch hạ áp LM2596
Hình 3.18 Sơ đồ nguyên lí mạch hạ áp
e. Giải thích sơ đồ nguyên lí.
d. Sơ đồ nguyên lí
Bộ chuyển đổi Buck là bộ chuyển đổi nguồn DC-DC có điện áp đầu ra
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
40
nhỏ hơn điện áp đầu vào.
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Khi “Switch On” tức là nối nguồn vào mạch, lúc đó dòng điện đi qua
cuộn cảm nên dòng cuộn cảm tăng lên. Tại thời điểm này thì tụ điện được nạp
và cũng cung cấp dòng điện qua tải.
Khi “Switch Off” tức là ngắt nguồn ra khỏi mạch. Khi đó cuộn cảm tích
lũy năng lượng từ trường và tụ điện được tích lũy trước đó sẽ phóng điện qua
tải. Cuộn cảm có xu hướng giữ cho dòng không đổi và giảm dần.
Điện áp đầu ra được tính như sau :
Vout = Vin * ( ton /( ton + toff) .
Với ton và toff lần lượt là thời gian mở và thời gian khóa của Switch
Đối với kiểu nguồn Buck này thì cho công suất đầu ra rất lớn so với công suất
đầu vào vì sử dụng cuộn cảm, tổn hao công suất thấp.
Trong trường hợp này Mạch giảm áp DC dùng IC LM2596 nhỏ gọn có
khả năng giảm áp từ 30V xuống 1.5V mà vẫn đạt hiệu suất cao (92%) . Thích
hợp cho các ứng dụng chia nguồn, hạ áp, cấp cho các thiết bị như camera, motor
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
41
, robot,...
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
3.4 SƠ ĐỒ NGUYÊN LÍ TOÀN MẠCH
Hình 3.19 Sơ đồ nguyên lí board đọc cảm biến và truyền dữ liệu
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
42
3.4.1 Sơ đồ nguyên lí
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
Hình 3.20 Sơ đồ nguyên lí board nhận dữ liệu và hiển thị
3.4.2 Giải thích sơ đồ nguyên lí
Cảm biến Max30100 giao tiếp với ESP8266 Node MCU qua chuẩn
truyền I2C. Dữ liệu từ led phát và led thu từ cảm biến sẽ đc ESP8266 Node
MCU xử lí và cho qua 3 bộ lọc để hình thành tín hiệu dạng điện tim. Ngoài ra
vi xử lí cũng sẽ tính toán ra giá trị nhịp tim và nồng độ oxy trong máu. Mỗi lần
thực hiện tính toán giá xong dữ liệu sẽ được cập nhật và truyền đi bằng giao
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
43
thức UDP. Vòng lặp lại tiếp tục xử lí đọc giá trị cảm biến.
CHƯƠNG 3. TÍNH TOÁN VÀ THIẾT KẾ
ESP8266 Node MCU trong khối xử lí hiển thị sẽ nhận dữ liệu qua giao
thức UDP và sẽ được cập nhật qua vi điều khiển STM32F407 bằng 2 chân Tx
và Rx. Dữ liệu được lấy về dưới dạng chuỗi gồm có: giá trị điện tim, nhịp tim
và nồng độ oxy trong máu. Thực hiện thuật toán tách chuỗi và đẩy dữ liệu hiển
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
44
thị qua 16 chân truyền song song FSMC để hiển thị giao diện người dùng.
CHƯƠNG 4. THI CÔNG HỆ THỐNG
Chương 4. THI CÔNG HỆ THỐNG
4.1 GIỚI THIỆU
Chương này trình bày quá trình thi công mạch PCB, lập trình hệ thống,
lắp ráp phần cứng và kiểm tra mạch. Quá trình thực hiện gồm hình vẽ cũng như
hình ảnh thực tế của mô hình, hình ảnh kết quả chạy mà hệ thống thực hiện
được.
4.2 THI CÔNG HỆ THỐNG
a. Liệt kê linh kiện.
4.2.1 Thi công bo mạch
- Mạch in được thiết kế trên phần mềm Alitum Designer 18. - Thực hiện in mạch và tiến hành thi công bo mạch.
Sau khi thi công sẽ dùng đồng hồ VOM để kiểm tra ngõ vào, ngõ ra chân
chip dán có lỗi trong lúc thực hiện hay không.
Câp nguồn 5VDC cho mạch kiểm tra nguồn ra 3.3VDC từ mạch giảm áp.
STT
Tên linh kiện
Giá trị
Dạng vỏ
Chú thích
STM32F407VET6
---
SMD
SL:1
1
ESP8266 Node
Module tích
MCU
hợp mạch
---
SL:3
2
nạp
Gồm chip
Hãng
điều khiển và
Waveshare
LCD TFT
7 inch
3
cảm ứng
SL:1
SL:2
MAX30100
---
Đã ra chân
4
hàng rào
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
45
Bảng 4.1. Danh sách các linh kiện.
CHƯƠNG 4. THI CÔNG HỆ THỐNG
Thạch anh tạo
8MHZ
SMD
SL:1
5
giao động
Thạch anh tạo thời
32678 KHZ
Dạng chân
SL:1
6
gian thực
đứng
Chuông
5VDC
SMD
SL:1
7
Transistor c1815
NPN
SMD
SL:1
8
Nút nhấn
SMD
SL:1
---
9
10
Mạch nạp ST Link
USB mạch
SL:1
---
V2
nạp
SMD
SL:1
---
11
3VDC
---
SL:1
12
Đế Pin CR1220
Mạch giảm áp
5VDC->
Module
SL:1
12
LM2596
3VDC
Điện trở
SMD
SL:5
10k
13
Điện trở
SMD
SL:4
4.7K
14
Điện trở
SMD
SL:1
680
15
Tụ điện
SMD
SL:9
10uF
16
Tụ điện
SMD
SL:5
22pF
17
Tụ điện
SMD
SL:9
100nF
18
SMD
SL:2
19
Diot
1N4007
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
46
Pin CR1220
CHƯƠNG 4. THI CÔNG HỆ THỐNG
Hình 4.1 PCB lớp trên Board STM điều khiển màn hình
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
47
b. Tiến hành vẽ PCB trên Altium 18
CHƯƠNG 4. THI CÔNG HỆ THỐNG
Hình 4.2 PCB lớp dưới Board STM điều khiển màn hình
Hình 4.3 PCB định vị SMD Board STM điều khiển màn hình
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
48
CHƯƠNG 4. THI CÔNG HỆ THỐNG
Hình 4.4 Mạch mô phỏng đo điện tim
4.2.2 Lắp ráp và kiểm tra
a. Lắp ráp module nguồn
Tiến hành lắp ráp và hàn các linh kiện của module nguồn. Tiến hành đo
và kiểm tra nguồn vào và ra xem đúng sai, cân chỉnh cho đúng đầu vào 5VDC
sau mạch giảm áp còn 3.3VDC.
b. Tiến hành thực hiện hàn chip dán STM32F4, các linh kiện khác.
Sau khi đã hoàn hàn linh kiện lên board. Kiểm tra mạch xem board có bị
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
49
đứt hay chập mạch không. Nếu có thì tiến hành xử lý.
CHƯƠNG 4. THI CÔNG HỆ THỐNG
Hình 4.5 Mạch cảm biến nhịp tim
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
50
4.3 ĐÓNG GÓI MÔ HÌNH
CHƯƠNG 4. THI CÔNG HỆ THỐNG
Hình 4.6 Mặt trước màn hình hiển thị kết quả
Hình 4.7 Mặt cấp nguồn và nút nhấn reset
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
51
CHƯƠNG 4. THI CÔNG HỆ THỐNG
4.4 LẬP TRÌNH HỆ THỐNG
Bắt đầu
S
Kiểm tra thiết bị đã kết nối wifi chưa
Đ
S
Kiếm tra xem cảm biến có hoạt động hay không
Đ
Đọc giá trị nhịp tim và spo2 thu được từ cảm biến
Lọc giá trị điện tim
Th ực hiện ghép chuỗi nhịp tim, spo2
Th ực hiện ghép chuỗi tín hiệu điện tim
Truyền chuỗ i dữ liệu ghép được qua chuẩn truyền không dây
Kết thúc
Hình 4.8 Lưu đồ thuật toán chương trình đọc cảm biến và truyền dữ liệu
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
52
4.4.1 Lưu đồ giải thuật
CHƯƠNG 4. THI CÔNG HỆ THỐNG
- Bắt đầu chương trình là kiểm tra kết nối wifi trên thiết bị, thiết lập giao thức
truyền UDP qua địa chỉ IP cố định. Kiểm tra nối dây giữa cảm biến và vi điều
khiển. Tiến hành lấy mẫu dữ liệu và tính toán giá trị nhịp tim và spo2. Giá trị
thu được từ led hồng ngoại cho đi qua 3 bộ lọc( lọc thông thấp, lọc butterworth,
lọc trung vị) để hình thành dạng sóng điện tim.Thực hiện ghép chuỗi dữ liệu
Bắt đầu
Khởi tạo các chuỗi bmp: nhịp tim Spo: nồng độ oxy Drawa: giá trị điện tim
S
Cảm biến cập nhật dữ liệu mới
Đ
Ghép chuỗi “ha” + bmp “Sa” + Spo
Gửi chuỗi dữ liệu
Kết thúc
và truyền dữ liệu qua wifi. Cuối cùng qua lại thực hiện lại vòng lặp như trên.
Hình 4.9 Lưu đồ thuật toán chương trình con ghép chuỗi dữ liệu nhịp tim
- Bắt đầu khởi tạo các biến bmp là nhip tim theo phút, spo là nồng độ oxy trong
máu. Khi dữ liệu trên cảm biến cập nhật về giá trị thực hiện ghép 2 chuỗi “Ha”
và “Sa” lần lược cho giá trị nhịp tim và spo2 gửi đi chuỗi dữ liệu. Vòng lặp tiếp
tục qua lại chờ giá trị mới cập nhật từ cảm biến. Tương tự cho cảm biến 2 là
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
53
“Hb” và “Sb”.
CHƯƠNG 4. THI CÔNG HỆ THỐNG
Bắt đầu
Khởi tạo chuỗi Drawdata
S
Cảm biến cập nhật dữ liệu mới
Đ
Gán Drawdata cho giá trị sau bộ lọc
Giá trị Drawdata lớn hơn 1000
S
Đ
Gửi chuỗi “Da0”
Giá trị Drawdata lớn hơn -1000
Đ
S
Gửi chuỗi “Da0”
Gửi chuỗi “Da”+ Drawdata
Kết thúc
Hình 4.10 Lưu đồ thuật toán chương trình con ghép chuỗi tín hiệu điện
tim
- Bắt đầu khởi tạo giá trị Drawdata. Khi cảm biến cập nhật giá trị mới thìgiá trị
dữ liệu sau các bộ lọc được gán cho Drawdata. Khi giá trị Drawdata thỏa mãn
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
54
điều kiện lớn hơn -1000 và bé hơn 1000 tiến hành ghép chuỗi “Da” + Drawdata
CHƯƠNG 4. THI CÔNG HỆ THỐNG
và gửi dữ liệu. Ngược lại gửi “Da0”. Vòng lặp lại quay về chờ cảm biến cập
Start
S
Kiểm tra wifi trên thiết bị
Đ
Đọc chuỗi dữ liệu từ khối nhận dữ liệu
Phân tích chuỗi dữ liệu
S
S
S
S
S
S
Dữ liệu bắt đầu là ”Ha”
Dữ liệu bắt đầu là ”Hb”
Dữ liệu bắt đầu là ”Sa”
Dữ liệu bắt đầu là ”Sb”
Dữ liệu bắt đầu là ”Da”
Dữ liệu bắt đầu là ”Db”
Đ
Đ
Đ
Đ
Đ
Đ
Nhịp tim cảm biến1
Nhịp tim cảm biến 2
Nồng độ Oxy cảm biến 1
Nồng độ Oxy cảm biến 2
Tín hiệu điện tim cảm biến 1
Tín hiệu điện tim cảm biến 2
S
1
Kenha =a+1
Kí tự dữ liệu thứ 2 là “a”
Đ
Kenha =0
Kênh a <100 và kênh b <100
S
Đ
S
Kenhb =b+1
Kí tự dữ liệu thứ 2 là “b”
Xuất giao diện 2 kênh
Xuất giao diện 1 kênh
Đ
Kenhb =0
1
Kết thúc
nhật giá trị mới. Tiến hành tương tự cho cảm biến 2.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
55
Hình 4.11 Lưu đồ thuật toán nhận dữ liệu và hiển thị
CHƯƠNG 4. THI CÔNG HỆ THỐNG
- Bắt đầu kiểm tra wifi trên thiết bị nhận dữ liệu. Tiến hành đọc chuỗi dữ liệu
và phân tích dữ liệu. Khi chuỗi dữ liệu bắt đầu bằng kí tự “H” và kí tự tiếp theo
sau nó “a” thì đó chính là nhịp tim của cảm biến 1. Tương tự cho các dữ liệu
còn lại. Lần lượt ta tách được nhịp tim, nồng độ oxy trong máu và tín hiệu vẽ
điện tim của các cảm biến. Tiến hành xuất dữ liệu lên màn hình người dùng.
Kiểm tra 100 lần nếu có dữ liệu từ cả 2 kênh a và b thì xuất màn hình cả 2 kênh.
Nếu chỉ có tín hiệu 1 kênh thì chỉ hiển thị trên 1 màn hình 1 kênh đang hoạt
động.
4.4.2 Phần mềm lập trình cho vi điều khiển
Trong đề tài này người thực hiện sử dụng trình biên dịch Arduino IDE vì nó
tiện lợi và hỗ trợ tốt hơn cho người sử dụng.
Hướng dẫn sử dụng Arduino IDE:
- Bước 1: Mở chương trình Arduino IDE có giao diện như hình 4.6
Hình 4.12 Giao diện Aduino IDE mới khởi động
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
56
a. Phần mềm lập trình ESP8266
CHƯƠNG 4. THI CÔNG HỆ THỐNG
- Bước 2: Tiến hành biên soạn chương trình như hình 4.7:
Hình 4.13 Giao diện Aduino IDE lập trình
- Bước 3: Lưu chương trình như hình 1.11, khi bạn nhấn Save trình biên dịch
Arduino IDE sẽ tự tạo thư mục để lưu code.
- Bước 4: Tiến hành tổng hợp code (1) và nạp cho board ESP8266 Node
MCU (2).
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
57
CHƯƠNG 4. THI CÔNG HỆ THỐNG
Hình 4.14 Tiến hành tổng hợp và nạp chương trình
b. Phần mềm lập trình STM32CubeMX và Keil C V5
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
58
Hình 4.15 Giao diện khởi động chương trình STM32CubeMX
CHƯƠNG 4. THI CÔNG HỆ THỐNG
Tạo 1 Project mới: File -> New Project hoặc nhấn vào ACCESS TO
Tại giao diện này các bạn có thể:
MCU SELECTOR nếu bạn lập trình 1 MCU STM32 bất kỳ, hoặc nhấn vào
ACCESS TO BOARD SELECTOR nếu bạn lập trình trên 1 board phát
Mở project gần đây: tại mục Recent Opened Project nhấn vào tên
triển của hãng STM32.
Mở 1 project bất kỳ: tại mục Other Project, bấm vào biểu tượng duyệt
project bạn đã mở gần đây.
thư mục hoặc File -> Load Project.
Sau khi nhấn vào File -> New Project thì giao diện chọn vi điều khiển STM32
Chọn vi điều khiển: tại mục Part Number Search các bạn nhập vào tên
sẽ hiện ra:
Bắt đầu Project: nhấn vào Start Project
Hình 4.16 Tạo 1 Project mới
vi điều khiển mà mình muốn cấu hình (ví dụ vi điều khiển STM32F103)
Tiếp theo sau khi tạo project chương trình sẽ dẫn chúng ta đến giao diện
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
59
cấu hình chip.
CHƯƠNG 4. THI CÔNG HỆ THỐNG
Hình 4.17 Giao diện cấu hình vi điều khiển
Tại mục Pinout & Configuration:
Cấu hình nạp code: Các bạn chọn System Core -> SYS -> Debug: Serial
Wire để vi điều khiển được cấu hình nạp code thông qua mạch nạp ST-
Link V2.
Cấu hình các ngoại vi: Việc cấu hình các ngoại vi như INPUT, INPUT,
External Interrupt, ADC, TIMER, UART… có thể được thực hiện bằng
cách chuột phải để chọn chân trực tiếp và kích chuột trái vào chân mà
mình muốn cài đặt.
Ngoài ra, các bạn cũng có thể cấu hình các ngoại vi khác tại các mục:
System Core, Analog, Timers, Connectivity…
Tại mục Clock Configuration: Các bạn cấu hình lựa chọn nguồn tạo dao
động và tần số hoạt động cho vi điều khiển (Bộ xử lý trung tâm – CPU và
Peripherals – các ngoại vi) thông qua Clock tree. (Kết hợp với cấu hình RCC
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
60
tại System Core).
CHƯƠNG 4. THI CÔNG HỆ THỐNG
Hình 4.18 Cấu hình xung clock cho mạch
Tại Project Manager các bạn đặt tên Project, nơi lưu trữ (lưu ý không sử
dụng Tiếng Việt có dấu), và chọn Toolchain /IDE là MDK-ARM V5 nếu các
bạn sử dụng Keil C IDE để code và debug. Sau khi cấu hình xong, các bạn bấm
vào GENERATE CODE để sinh code. Sau khi đã sinh code thì sẽ có thông báo
các bạn Open Project. Lúc này Project sẽ được mở lên ở phần mềm Keil C với
Hình 4.19 Lưu thông tin project và sinh code
đầy đủ các cấu hình mà bạn đã thực hiện.
Sau khi cấu hình, sinh code từ phần mềm STM32CubeMX và mở Project
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
61
Keil C, các bạn mở file main.c tại mục Application/User.
CHƯƠNG 4. THI CÔNG HỆ THỐNG
Các bạn nhấn vào biểu tượng Option for Target hoặc Project -> Option for
Hình 4.20 Cấu hình cho mạch nạp
Target để thực hiện 1 số cấu hình:
Tại cửa sổ Option for Target, các bạn chọn thẻ Debug và tick chọn Use ST-
Link Debugger, để nạp chương trình xuống kit (nếu chọn Use Simulator thì sẽ
ở chế độ mô phỏng).
Nhấn vào Settings tại Use: ST-Link Debugger, cửa sổ Cortex-M Target
Driver Setup, các bạn chọn thẻ Flash Download, tại đây nếu tick chọn Reset
and Run thì ngay sau khi nạp, chương trình sẽ chạy ngay. Nếu không tick chọn
thì các bạn nạp code xong, nhấn vào nút reset trên board mạch thì chương trình
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
62
mới chạy.
CHƯƠNG 4. THI CÔNG HỆ THỐNG
Hình 4.21 Cấu hình cho mạch reset
Cuối cùng có các biểu tượng Build (F7) để compile chương trình và Load
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
63
(F8) để nạp chương trình.
CHƯƠNG 4. THI CÔNG HỆ THỐNG
Hình 4.22 Tiến hành compile và nạp chương trình
4.4.3 Phần mềm lập trình cho điện thoại Android sử dụng app inventer
MIT App Inventor dành cho Android là một ứng dụng web nguồn mở
ban đầu được cung cấp bởi Google và hiện tại được duy trì bởi Viện Công nghệ
Massachusetts (MIT). Nền tảng cho phép nhà lập trình tạo ra các ứng dụng
phần mềm cho hệ điều hành Android (OS). Bằng cách sử dụng giao diện đồ
họa, nền tảng cho phép người dùng kéo và thả các khối mã (blocks) để tạo ra
các ứng dụng có thể chạy trên thiết bị Android. Đến thời điểm hiện tại 07/2017,
phiên bản iOS của nền tảng này đã bắt đầu được đưa vào thử nghiệm bởi
Thunkable, là một trong các nhà cung cấp ứng dụng web cho ngôn ngữ này.
Mục tiêu cốt lõi của MIT App Inventor là giúp đỡ những người chưa có
kiến thức về ngôn ngữ lập trình từ trước có thể tạo ra những ứng dụng có ích
trên hệ điều hành Android. Phiên bản mới nhất là MIT App Inventor 2.
Ngày nay, MIT đã hoàn thiện App Inventor và nó được chia sẻ ngay trên
tài khoản Google. Các lập trình viên mới bắt đầu hoặc bất kỳ ai muốn tạo ra
ứng dụng Android chỉ cần vào địa chỉ web của MIT, nhập thông tin tài khoản
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
64
Google, và từ những mảnh ghép nhỏ, xây dựng những ý tưởng của mình. Bạn
CHƯƠNG 4. THI CÔNG HỆ THỐNG
là người mới bắt đầu hoặc chưa biết gì hết về App Inventor? MIT có sẵn một
loạt các hướng dẫn cụ thể cho bạn làm quen với chương trình.
Để sử dụng được App Inventor, các bạn truy cập vào địa chỉ
http://ai2.appinventor.mit.edu . Sau đó tiến hành đăng nhập bằng tài khoản
Google của bạn để mở trang quản lí các project.
Các bước xây dựng ứng dụng android trên app inventer:
Bước 1: Tạo project
Sau khi đăng nhập, tại cửa sổ chính (My Project), bạn chọn Start new
Hình 4.23 Giao diện tạo project MIT INVENTER
project , sau đó đặt trên cho project bạn muốn tạo.
Bước 2: Thiết kế giao diện
Cửa sổ thiết kế gồm 4 khung chức năng chính như hình dưới đây:
Đầu tiên, một ứng dụng có thể có nhiều cửa sổ giao diện, trong MIT AI2 gọi là
Palette: Chứa các thành phần có thể đặt lên trên Screen như: Button,
các Screen.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
65
Label, Image, Listview, Video player, …. Đến các thanh phần chức năng
CHƯƠNG 4. THI CÔNG HỆ THỐNG
không nhìn thấy trên Screen như: BLE extension, Notifier, các sensors,
Viewer: Hiển thị giao diện screen. Kéo thả các thành phần từ khung
….
Components: Sơ đồ cây thể hiện cấu trúc các thành phần đã được bố trí
Palette sang đây để thiết kế giao diện cho phần mềm của bạn.
Properties: Hiển thị thuộc tính của component tương ứng được chọn.
Hình 4.24 Thiết kế giao diện người dùng
trên Screen.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
66
Bước 3: Lập trình cho hệ thống bằng cách kéo thả các block.
CHƯƠNG 4. THI CÔNG HỆ THỐNG
Hình 4.25 Các lệnh lập trình cơ bản
4.5 VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC
Đầu tiên để mạch hoạt động thì ta phải cấp nguồn sử dụng, ở đây ta sử
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
67
dụng nguồn 5VDC. Khi thấy màn hình hiển thị và cảm biến sáng đèn led là
CHƯƠNG 4. THI CÔNG HỆ THỐNG
Hình 4.26 Màn hình thiết bị khi cấp nguồn khởi động
mạch sẵn sàng hoạt động.
Đặt tay lên cảm biến cố định tay trên thiết bị. Trong quá trình đo cần hạn
Hình 4.27 Cách đặt tay trên cảm biến như hình
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
68
chế xê dịch tay làm sai lệch kết quả đo.
CHƯƠNG 4. THI CÔNG HỆ THỐNG
Tiến hành quan sát dạng sóng trên màn hình hiển thị. Đồ thị dạng sóng
Hình 4.28 Màn hình hiển thị kết quả LCD
cần 10-20 để ổn định.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
69
Kèm theo đó có thể quan sát trực tiếp từ ứng dụng điện thoại.
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Chương 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
5.1 Kết quả
Sau một thời gian tìm hiểu, nghiên cứu các tài liệu chuyên ngành tiếng việt
cũng như tiếng anh, tìm hiểu thêm qua mạng internet, tổng hợp các kiến thức đã
được học suốt 4 năm cũng như được sự giúp đỡ tận tình của giáo viên hướng dẫn,
nhóm chúng em đã cơ bản hoàn thành được đồ án tốt nghiệp với đề tài “Thiết kế
và thi công thiết bị giám nhịp tim và nồng độ oxy trong máu” và đạt các kết
quả như sau:
5.1.1 Giao diện App Android
Để thuận tiện hơn trong quá trình sử dụng, nhóm thực hiện đã nghiên cứu
và phát triển một ứng dụng trên điện thoại smartphone sử dụng hệ điều hành
Android cho ứng dụng đo nhịp tim và đồ thị điện tim.
Giao diện App Android như sau:
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
70
Hình 5.1 Giao diện màn hình khởi động của App
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Sau khi nhấn Start màn hình chuyển qua giao diện chính như sau:
Hình 5.2 Giao diện màn hình chính của App
App bao gồm 3 chế độ:Đo bệnh nhân 1, Đo bệnh nhân 2,Đo Dual cả 2 bệnh
nhân và cuối cùng là thông tin về app.
Chế độ thứ nhất là đo dữ liệu nhịp tim, spo2, đồ thị điện tim của người bệnh
nhân 1, nhập tên bệnh nhân dễ theo dõi kèm thể hiện cảnh báo ở cuối giúp người
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
71
thân có thể theo dõi được thể hiện như sau:
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Hình 5.3 Giao diện đo ID1 của App
Tương tự với ID2 bệnh nhân 2, với các thông số tương tự trên ta có kết quả như
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
72
sau:
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Hình 5.4 Giao diện đo ID2 của App
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
73
Cuối cùng là giao diện đo dual, hiển thị thông tin cả 2 người trên 1 màn hình
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Hình 5.5 Giao diện đo Dual của App
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
74
Cuối cùng là thông tin của người thực hiện đề tài.
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Hình 5.6 Giao diện thông tin liên hệ
5.1.2 Mô hình chạy thực tế
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
75
Khi cấp nguồn hệ thống chưa thực hiện đo có giao diện như sau:
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Hình 5.7 Giao diện khi hệ thống được cấp nguồn
Giao diện đo khi chỉ có 1 cảm biến hoạt động:
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
76
Hình 5.8 Giao diện đo khi chỉ có 1 cảm biến hoạt động
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Giao diện đo khi cả 2 cảm biến cùng hoặt động cùng lúc:
Hình 5.9 Giao diện đo khi cả 2 cảm biến cùng hoạt động
5.1.3 Kết quả so với đồng hồ đo thể thao Fitbit theo dõi sức khỏe hiện nay
So sánh kết quả đo thực tế của mạch thi công với thiết bị đo chính xác.
Thiết bị được sử dụng để so sánh kết quả trong đề tài này là đồng hồ thể thao
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
77
Fitbit đo nhịp tim, theo dõi tình trạng sức khỏe.
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
78
Hình 5.10 Đồng hồ thể thao Fitbit theo dõi tình trạng sức khỏe
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Hình 5.11 Vị trí đeo đồng hồ ở cổ tay
Kết quả thu được như bảng sau: đeo đồng hồ trên cổ tay, và đặt đầu ngón
trỏ lên cảm biến đo liên tục không nhấc tay ra khỏi cảm biến. Xem như mỗi lần
đo cách nhau 10 giây.
Bảng 5.1. Bảnh so sánh mô hình thiết kế với đồng hồ thể thao
Lần đo Mô hình sinh viên thiết kế Đồng hồ thể thao trên thị trường
(đơn vị nhịp/phút) (đơn vị nhịp/phút)
101 92 1
98 95 2
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
79
98 95 3
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
4 93 93
5 89 96
6 90 92
7 90 94
8 88 89
9 90 91
10 89 90
Đánh giá sau 10 lần đo trung bình ta thấy nhịp tim ổn định ở mức 90 tuy
nhiên mức giao động quanh ngưỡng trung bình của đồng hồ thể thao ít hơn so với
mạch thế kế. một phần do cơ chế truyền không dây của nhó thế kế cần thời gian
khoảng 20 giây để mạch hoạt động ổn định. Nhưng nhìn chung với chất lượng
cảm biến với giá thành rẻ khó có thể yêu cầu cao nên nhóm chúng tôi đánh giá
cao mạch đã thiết kế được.
5.2 Nhận xét
Sau khi hoàn thành mạch đo và lắp ráp màn hình board mạch thành mô hình
hoàn chỉnh, kết quả đạt được như sau: Mặt trước hệ thống là màn hình LCD 7
Inch đủ to để người dùng có thể quan sát, cố định chắc chắn trong hộp cách điện
mica. Sau khi hoàn thành sản phẩm có mức độ hoàn thiện tốt về tính thẩm mỹ
cũng như khả năng vận hành thực tế. Mạch liên tục trong 10h vẫn giữ được sự ổn
định. Có khả năng đáp ứng nhanh yêu cầu người dùng.
Sau khi thực hiện xong thì sinh viên đã hoàn thành được các công việc mà
đề tài đã đề ra:
Tạo được giao diện ứng dụng Android trên điện thoại.
Màn hình hiển thị thực tế với app Android đồng bộ khá tốt.
Sản phẩm hoạt động khá ổn định (tắt mở nguồn 10 lần thì mạch chạy được
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
80
khoảng 9 lần).
CHƯƠNG 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Sản phẩm thi công gọn gàng, độ an toàn cao vì đã được cách điện bảo vệ
an toàn tuyệt đối cho người sử dụng.
5.3 Đánh giá
Sau 16 tuần nghiên cứu và thực hiện đề tài, hệ thống đã đáp ứng được những
mục tiêu và yêu cầu thiết kế.
a. Ưu điểm
- Hệ thống dễ sử dụng, dễ thao tác.
- Thiết bị nhỏ gọn, tiện lợi.
- Mô hình bền, hoạt động tương đối ổn định trong thời gian dài.
- Giá thành rẻ.
- Sử dụng được tại nhà, tại giường bệnh nhân, phòng khám tư…
- Không phụ thuộc và nguồn điện 220V. Nguồn cấp ở thể là sạc dự dòng
5v…. Modem wifi có thể thay thế bằng cơ chế phát wifi trên thế bị di động
b. Nhược điểm
- Hệ thống dữ liệu truyền nhận nội bộ bảo mật chưa tốt, người lạ có thể xâm
nhập.
- Hệ thống đo còn phụ thuộc rất nhiều vào chất lượng cảm biến.Vì phương
pháp đo là hấp thụ quang học hên rất dễ bị nhiễu bởi ánh sáng bên ngoài.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
81
- Đồ thị điện tim còn cập nhật hơi chậm vì cần thời gian xử lí.
CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Chương 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
6.1 KẾT LUẬN
Qua đề tài “THIẾT KẾ VÀ THI CÔNG THIẾT BỊ GIÁM SÁT NHỊP
TIM VÀ NỒNG ĐỘ OXY TRONG MÁU” nhóm thực hiện và nghiên cứu
được những vấn đề mà mục tiêu đã nhóm đưa ra:
- Cấu tạo và nguyên lí hoạt động của nhịp tim.
- Phương pháp đo nhịp tim bằng phương pháp hấp thụ quang học.
- Giải thuật vẽ tín hiệu điện tim.
- Cách đo nhịp tim bằng cảm biến MAX3010 giao tiếp với vi điều khiển
ESP8266.
- Truyền dữ liệu không dây nội bộ giữa 2 module ESP8266 Node MCU.
- Giao tiếp UART giữa ESP8266 Node MCU và STM32F407VET6.
- Giao tiếp giữa STM32F407VET6 với màn hình LCD 7 Inch chuẩn giao
tiếp song song FSMC.
- Hiểu được cách thiết kế giao diện của một ứng dụng Android cơ bản.
Tuy nhiên, do thời gian và trình độ còn hạn hẹp nên không tránh khỏi
những sai sót, hạn chế trong hệ thống như:
- Chưa đảm bảo được sự tiện lợi cho thiết bị vì cả ba thiết bị đo, màn hình
và điện thoại cần phải nằm trong vùng wifi đã được truy cập.
- Do dạng sóng trong đề tài cần phải cập nhật liên tục với tốc độ cực nhanh
vì vậy thiết bị vẫn chưa đạt được sự ổn định và chính xác cao.
- Ứng dụng nhóm thiết kế chỉ mới hoạt động trên Android.
6.2 HƯỚNG PHÁT TRIỂN
Đề tài “THIẾT KẾ VÀ THI CÔNG THIÊT BỊ GIÁM SÁT NHỊP
TIM VÀ NỒNG ĐỘ OXY TRONG MÁU” mặc dù còn có nhiều hạn chế tuy
nhiên có thể ứng dụng vào việc theo dõi nhịp tim cho người cao tuổi, người có
tiền sử bệnh tim, bệnh nhân nhập viện điều trị lâu ngày hoặc cũng có thể ứng
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH
82
dụng vào các phòng khám nhỏ.
CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Hệ thống về phần cứng nếu được hỗ trợ các cảm biến mạnh mẽ, chất
lượng tốt hơn thì thiết bị có thể chạy chính xác nhiều hơn nữa. Về phần truyền
không dây có thể nâng cấp lên điện thoại, cảm biến, màn hình không cần kết
nối chung wifi với nhau vẫn có thể đồng bộ chung với nhau được. Về phần
mềm, có thể thiết kế 1 trang web lưu lịch sử đo nhịp tim, SpO2 của người dùng,
quản lý nhiều hệ thống đo cùng cùng lúc, kết hợp với trí thông minh nhân tạo
(AI) để đưa ra chẩn đoán, cảnh báo bệnh một cách kịp thời và chính xác. Về
phần ứng dụng trên điện thoại nhóm chỉ mới thiết kế cho Android, nhưng hiện
tại số người dung IOS cũng rất lớn nên chú tâm vào viết ứng dụng cho hệ điều
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH
83
hành nà
TÀI LIỆU THAM KHẢO
TÀI LIỆU THAM KHẢO
Sách tham khảo
[1] Nguyễn Đình Phú, “Giáo trình vi xử lý ”, NXB ĐH Quốc Gia Tp.HCM, 2014
[2] Nguyễn Đình Phú, “Giáo trình Thực hành thiết kế vi mạch số với HDL ”, NXB ĐH
Quốc Gia Tp.HCM, 2014
[3] Nguyễn Hữu Phương, “Xử lí tín hiệu số”, NXB ĐH Quốc Gia Tp.HCM, 2015
[4] Khoa Y,“ Kĩ thuật đo và phân tích điện tâm đồ bình thường”, NXB ĐH Quốc Gia
Tp.HCM, 2015.
[5] Nguyễn Thanh Hoàng, Nguyễn Khoa Nam, “THIẾT KẾ VÀ THI CÔNG VÒNG
TAY ĐO NHỊP TIM SỬ DỤNG CÔNG NGHỆ IoTs”, Đồ Án Tốt Nghiệp ĐH, Trường
ĐH Sư Phạm Kỹ Thuật Tp.HCM, 2019.
[6] Pong P.Chu, “RTL Hardware Design Using VHDL”,2005.
[7] Nguyễn Công Danh, Nguyễn Tuấn Minh, “ỨNG DỤNG RASPBERRY PI GIÁM
SÁT NHỊP TIM QUA TRANG WEB”, Đồ án thiết kế, Trường ĐHSPKT, Tp.HCM,
2016.
[8] Dương Quốc Trung, Trần Thế Vinh “THIẾT KẾ VÀ THI CÔNG MẠCH ĐO NHỊP
TIM, NHIỆT ĐỘ VÀ ÁP SUẤT SỬ DỤNG STM32F103C8T6 HIỂN THỊ TRÊN LCD
TFT”, Đồ án môn học, Trường ĐHSPKT, Tp.HCM, 2018.
[9] Nguyễn Minh Đức, Trần Châu Phong, “BẢNG LED MA TRẬN ĐIỀU KHIỂN
BẰNG ỨNG DỤNG ANDROID ”, Đồ án tốt nghiệp, Trường ĐHSPKT, Tp.HCM,
2019.
84
PHỤ LỤC
PHỤ LỤC
- Chương trình đọc cảm biến và truyền dữ liệu:
#include
85
}
PHỤ LỤC udpConnect.beginPacket("255.255.255.255",54321); udpConnect.write(a,len); udpConnect.endPacket(); } void loop() { pox.update(); sensor.update(); if (millis() - lastms>100) { senddata("Ha" + String(bmpsend)); senddata("Sa" + String(sposend)); lastms = millis(); } while (sensor.getRawValues(&ir, &red)) { drawdata= fillter(float(ir)); if (drawdata > 1000) { senddata("Da0"); } else { if (drawdata > -1000) { if (drawdata > 0) drawdata = drawdata/2; String data = "Da" + String(drawdata); senddata(data); } else { senddata("Da0"); } } if (millis() - tsLastReport > REPORTING_PERIOD_MS) { bmp = pox.getHeartRate(); spo2 = pox.getSpO2(); ii ++; if ( bmp > 80 && bmp < 101) { bmpsend=bmp; bmpbt = bmp; }
85
PHỤ LỤC
else if (bmp > 100) { bmpcao ++; } else { bmpthap ++; } bmpsum += bmp; if (spo2>92) { if (spo2 > 100)spo2 = 100; spo2reg = spo2; sposend = spo2; } Serial.println(String(bmp)); if (ii >= 20) { if(bmpbt > 0){} else if (bmpcao > 15|| bmpthap > 15) { bmpsend = bmp/20; } if(spo2reg < 90) sposend=0; ii = 0; bmpbt = 0; bmpsum = 0; bmpcao = 0; bmpthap=0; spo2reg = 0; } tsLastReport = millis(); } udpConnect.parsePacket(); while (udpConnect.available()) { Serial.write(udpConnect.read()); } } float fillter(float x) { #define LM_SIZE 15 #define ALPHA 0.95 static int LM[LM_SIZE]; // LastMeasurements static byte index = 0; static long sum = 0; static byte count = 0; static float meanDiff;
PHỤ LỤC
static float w;
static float result;
long avg = 0;
///////// DC remove fillter
w = x + ALPHA * ir_dcFilter;
result = w - ir_dcFilter;
ir_dcFilter = result;
///////// meandiff//////////
sum -= LM[index];
LM[index] = ir_dcFilter;
sum += LM[index];
index++;
index = index % LM_SIZE;
if (count < LM_SIZE) count++;
avg = sum / count;
meanDiff = avg - ir_dcFilter;
/////////lowPassButterworthFilter//////
v[0] = v[1];
v[1] = (2.452372752527856026e-1f * meanDiff) + (0.50952544949442879485f *
v[0]);
return v[0] + v[1];
}
void ketnoiwifi()
{
Serial.println("bat dau ket noi wifi");
WiFi.begin("Wifi Day Tro", "Phongtro91/39");
while(!(WiFi.status() == WL_CONNECTED)){
delay(500);
Serial.print("...");
}
Serial.println("");
Serial.println("ket noi thanh cong");
}
- Chương trình nhận dữ liệu:
#include
PHỤ LỤC
ya = *(datad + i); LCD_DrawSquare(xa,80,xa+40,480,0x0000,1); tft_draw_line(xa,yra+240,xa+6,ya+240,0xe7e0); yra = ya; i++;
for (xa = 200; xa < 800; xa=xa+6) { }
ya = (*(datad + i))/1.5; LCD_DrawSquare(xa,0,xa+40,240,0x0000,1); tft_draw_line(xa,yra+120,xa+6,ya+120,0xe7e0); yra = ya; i++;
for (xa = 200; xa < 800; xa=xa+6) { }
int i = 0; if (*ikenhb > 200) { } else { }
yb = *(datad + i); LCD_DrawSquare(xb,80,xb+40,480,0x0000,1);
int i = 0; if (*ikenha > 200) {
yrb = yb; i++;
for (xb = 200; xb < 800; xb=xb+6) { tft_draw_line(xb,yrb+240,xb+6,yb+240,0xe7e0);
while (udpConnect.available()) { char data = (char)udpConnect.read(); if (k == 0 ) Serial.println(); Serial.print(data); k ++; } } - Chương trình tách chuỗi dữ liệu và hiển thị: void Drawa(int16_t* datad) { } void Drawb(int16_t* datad) {
PHỤ LỤC
}
yb = *(datad + i)/1.5; LCD_DrawSquare(xb,240,xb+40,480,0x0000,1); tft_draw_line(xb,yrb+360,xb+6,yb+360,0xe7e0); yrb = yb; i++;
for (xb = 200; xb < 800; xb=xb+6) { }
} else { }
a3 = a1; a1 = 0; a2 = 0;
a3 = a2; a2 = a1; a1 = 0;
if ( a2 > 9) { } else { }
a1 = (uint16_t)(*(data + 3) - 48); a2 = (uint16_t)(*(data + 4) - 48); a3 = (uint16_t)(*(data + 5) - 48); if ( a3 > 9) { } an = a1*100 + a2*10 + a3; if (an < 1000) value = - an;
uint16_t a1,a2,a3,an; int16_t value; if (*(data + 2) == '-') { } else {
a1 = (uint16_t)(*(data + 2) - 48); a2 = (uint16_t)(*(data + 3) - 48); a3 = (uint16_t)(*(data + 4) - 48); if ( a3 > 9) {
} int16_t get_value() {
PHỤ LỤC
a3 = a1; a1 = 0; a2 = 0;
a3 = a2; a2 = a1; a1 = 0;
if ( a2 > 9) { } else { }
} an = a1*100 + a2*10 + a3; if (an < 1000) value = an;
} return value;
if (Ha < 1000) sprintf(hr,"%d",Ha); tft_puts18x32(110,70,(int8_t *)hr,1,green);
tft_puts18x32(110,70,(int8_t *)"00",1,green);
LCD_DrawSquare(70,110,150,140,0x0000,1); if ( Ha != 0 ) { } else { }
if (Ha < 1000) sprintf(hr,"%d",Ha); tft_puts18x32(75,70,(int8_t *)hr,1,green);
if (*(data) == 'H') {
if (*(data+1) == 'a') {
Ha = get_value(); if (*ikenhb>200) { } else {
LCD_DrawSquare(70,75,150,105,0x0000,1); if ( Ha != 0 ) { } else
} void getH() {
PHỤ LỤC
tft_puts18x32(75,70,(int8_t *)"00",1,green);
{ }
}
if (Hb < 1000) sprintf(hr,"%d",Hb); tft_puts18x32(110,70,(int8_t *)hr,1,green);
tft_puts18x32(110,70,(int8_t *)"00",1,green);
LCD_DrawSquare(70,110,150,150,0x0000,1); if ( Hb != 0 ) { } else { }
if (Hb < 1000) sprintf(hr,"%d",Hb); tft_puts18x32(320,70,(int8_t *)hr,1,green);
tft_puts18x32(320,70,(int8_t *)"00",1,green);
LCD_DrawSquare(70,320,150,360,0x0000,1); if ( Hb != 0 ) { } else { }
Hb = get_value(); if( *ikenha > 200) { } else { }
} if (*(data+1) == 'b') { }
}
int16_t Da,Db; if (*(data) == 'D') {
if (*(data + 1) == 'a') {
kenha = 0; Da = get_value(); esp_ir1 = -Da/1.5; if ( esp_ir1_reg != esp_ir1 || esp_ir1 == 0)
} void getdraw() {
PHỤ LỤC
if (dinha > 5) { dinha = 0; if (draw_indexa == 0) {for (int i=0; i<100; i++) datadrawa[i] = 0;} datadrawa[draw_indexa] = 10; datadrawa[draw_indexa +1] = -120; datadrawa[draw_indexa +2] = -60; datadrawa[draw_indexa +3] = 0; datadrawa[draw_indexa +4] = 60; datadrawa[draw_indexa +5] = -45; datadrawa[draw_indexa +6] = 20; datadrawa[draw_indexa +7] = 0; draw_indexa = draw_indexa+8; }
datadrawa[draw_indexa] = 0; draw_indexa ++; dinha ++;
Drawa(&datadrawa[0]); draw_indexa = 0;
if(esp_ir1 < -50 && esp_ir1 > -100) { } else { } if (draw_indexa > 99) { } esp_ir1_reg = esp_ir1;
{ }
} if (*(data + 1) == 'b') {
kenhb = 0; Db = get_value(); esp_ir2 = -Db/1.5; if ( esp_ir2_reg != esp_ir2 || esp_ir2 == 0) {
if(esp_ir2 < -50 && esp_ir2 > -100) {
if (dinhb > 5) { dinhb = 0; if (draw_indexb == 0) {for (int i=0; i<100; i++) datadrawb[i] = 0;} datadrawb[draw_indexb] = 10;
PHỤ LỤC
datadrawb[draw_indexb +1] = -120; datadrawb[draw_indexb +2] = -60; datadrawb[draw_indexb +3] = 0; datadrawb[draw_indexb +4] = 60; datadrawb[draw_indexb +5] = -45; datadrawb[draw_indexb +6] = 20; datadrawb[draw_indexb +7] = 0; draw_indexb = draw_indexb+8; }
datadrawb[draw_indexb] = 0; draw_indexb ++; dinhb ++;
Drawb(&datadrawb[0]); draw_indexb = 0;
} else { } if (draw_indexb > 99) { } esp_ir2_reg = esp_ir2;
}
}
}
if (Sa < 1000) sprintf(spo2,"%d",Sa); tft_puts18x32(360,70,(int8_t*)spo2,1,green);
tft_puts18x32(360,70,(int8_t*)"00",1,green);
LCD_DrawSquare(70,360,150,400,0x0000,1); if ( Sa != 0 ) { } else { }
int16_t Sa,Sb; if (*(data) == 'S') {
if (*(data + 1) == 'a') {
Sa = get_value(); if(*ikenhb > 200) { }
} void getS() {
PHỤ LỤC
if (Sa < 1000) sprintf(spo2,"%d",Sa); tft_puts18x32(160,70,(int8_t *)spo2,1,green);
tft_puts18x32(160,70,(int8_t *)"00",1,green);
LCD_DrawSquare(70,160,150,200,0x0000,1); if ( Sa != 0 ) { } else { }
else { }
if (Sb < 1000) sprintf(spo2,"%d",Sb); tft_puts18x32(360,70,(int8_t *)spo2,1,green);
tft_puts18x32(360,70,(int8_t *)"00",1,green);
LCD_DrawSquare(70,360,150,400,0x0000,1); if ( Sb != 0 ) { } else { }
if (Sb < 1000) sprintf(spo2,"%d",Sb); tft_puts18x32(395,70,(int8_t *)spo2,1,green);
tft_puts18x32(395,70,(int8_t *)"00",1,green);
LCD_DrawSquare(70,395,150,435,0x0000,1); if ( Sb != 0 ) { } else { }
Sb = get_value(); if(*ikenha > 200) { } else { }
} if (*(data + 1) == 'b') { }
}
} void getName(uint8_t *len) {
PHỤ LỤC
ida[i] = *(data + i + 2); tft_putchar18x32(270+20*i,20,ida[i],1,0xffff);
LCD_DrawSquare(270,0,800,80,0x0000,1); for(int i = 0; i < l - 2; i ++) { }
if (*(data + 1) == 'a') { }
idb[i] = *(data + i + 2); tft_putchar18x32(270+20*i,20,idb[i],1,0xffff);
LCD_DrawSquare(270,0,800,80,0x0000,1); for(int i = 0; i < l - 2; i ++) { }
if (*ikenhb > 200) { } if(*ikenha > 200) { }
if (*(data + 1) == 'b') { }
uint8_t l = *len; uint8_t ida[l], idb[l]; if (*(data) == 'N') { }
}