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 #include #include #include #include "MAX30100_PulseOximeter.h" #define REPORTING_PERIOD_MS 1000 MAX30100 sensor; WiFiUDP udpConnect; float ir_dcFilter; float v[2]; PulseOximeter pox; uint32_t tsLastReport = 0,mslast = 0; uint32_t load; uint32_t lastms = 0; int bmp,bmpsend,sposend, bmpbt = 0, bmpcao = 0,bmpthap, bmpsum = 0,diff, ii = 0,spo2=0, spo2reg=0; int drawdata; uint16_t red,ir; void setup() { Wire.begin(); Serial.begin(115200); Serial.print("Initializing pulse oximeter.."); ketnoiwifi(); if (!pox.begin()) { Serial.println("FAILED"); for(;;); } else { Serial.println("SUCCESS"); } udpConnect.begin(50002); } void senddata(String sms) { int len= sms.length()+1; uint8_t a[len]; char smsc[len]; sms.toCharArray(smsc,len); for (int m = 0; m < len; m ++) a[m] = (uint8_t)smsc[m]

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 #include WiFiUDP udpConnect; void setup() { WiFi.begin("Wifi Day Tro", "Phongtro91/39"); while (WiFi.waitForConnectResult() != WL_CONNECTED) delay(100); Serial.begin(115200); udpConnect.begin(54321); } void loop() { int k = 0; udpConnect.parsePacket();

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') { }

}