Vai trò Cảm biến này thực ra có vai trò như một chuyển mạch. Nó được đặt phía dưới ngay trước cảm biến nhịp tim. Vì thế, khi bệnh nhân đặt tay vào cảm biến cũng là lúc tác động để mạch chuyển sang trạng thái “ON” và hệ thống sẽ bắt đầu đo. Khi bệnh nhân rút tay ra khỏi cảm biến thì hệ thống cũng sẽ ngừng đo. 2.2.3.2 Nguyên lí hoạt động Đầu dò quang điện cảm biến chuyển E3FDS10P2 DC có đường kính 18mm và khoảng cách phát hiện tối đa 10 cm. Nó thuộc loại cảm biến 3 dây (Vcc, Gnd, Signal), đầu ra PNP. Tức là, khi nó phát hiện thấy vật thể, ngõ ra sẽ ở mức 0; ngược lại cho ra mức 1. Hình 2.7: Nguyên lý hoạt động của cảm biến vật thể Nguyên lí làm việc của đầu dò này dựa vào hiện tượng phản xạ khuếch tán. Cảm biến dạng này truyền ánh sáng từ bộ phát tới vật thể. Vật này sẽ phản xạ lại một phần ánh sáng (phản xạ khuếch tán) ngược trở lại bộ thu của cảm biến, kích hoạt tín hiệu ra. Nhược điểm của cảm biến loại này là phụ thuộc nhiều vào màu sắc, tính chất và kích thước của bề mặt của vật thể. Tuy nhiên với mục đích sử dụng trong đồ án này thì đây là một sự lựa chọn tương đối phù hợp. 2.2.4 Cảm biến nhịp tim Pulse Sensor 2.2.4.1 Giới thiệu Pulse Sensor là một loại cảm biến đo nhịp tim được thiết kế dùng với Arduino. Bằng cách kết nối cảm biến này với Arduino, nạp một chương trình đơn giản và đặt cảm biến vào đầu ngón tay hoặc dái tai, bất cứ ai cũng có thể theo dõi nhịp tim của mình thông qua ứng dụng theo dõi có sẵn. 2.2.4.2 Nguyên lý hoạt động Cảm biến nhịp tim hoạt động dựa vào nguyên lí của quang điện tử học. Đèn LED sẽ chiếu ánh sáng vào bên trong ngón tay, dái tai, hoặc các mô có chức mạch máu khác. Cảm biến sẽ đọc lượng ánh sáng quay ngược trở lại.
Trang 1Em xin cam đoan nội dung của đồ án “Ứng dụng internet trong việctheo dõi sức khỏe bệnh nhân tim mạch” không phải là bản sao chépcủa bất cứ đồ án hoặc công trình đã có từ trước.
Sinh viên thực hiện
Trang 2Thành viên Nội dung công việc
- Thiết kế giao diện website, tìm hiểu
ngôn ngữ HTML và CSS
liệu giữa Arduino và server
- Làm việc với cơ sở dữ liệu, tìm hiểu
ngôn ngữ PHP và Javascript
Trang 3PHÂN CHIA CÔNG VIỆC 2
DANH MỤC TỪ VIẾT TẮT 6
DANH MỤC HÌNH 8
DANH MỤC SƠ ĐỒ 9
DANH MỤC BẢNG 9
PHẦN MỞ ĐẦU 10
CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG 12
1.1 Giới thiệu chương 12
1.2 Mô hình hệ thống trên nền IoT 12
1.2.1 Bệnh nhân tim mạch 12
1.2.2 Thiết bị kiểm tra tim mạch 12
1.2.3 Thiết bị giám sát đầu cuối 13
1.2.4 Bác sĩ gia đình 13
1.2.5 Server 13
1.3 Chức năng của hệ thống 14
1.4 Kết luận chương 15
CHƯƠNG 2: THIẾT KẾ THIẾT BỊ ĐO TIM MẠCH 16
2.1 Giới thiệu chương 16
2.2 Các thành phần chính trong hệ thống 16
2.2.1 Ethernet Shield 16
2.2.2 Arduino UNO R3 17
2.2.2.1 Vai trò trong hệ thống 17
2.2.2.2 Tìm hiểu tổng quan về Arduino 17
2.2.3 Cảm biến vật thể OMKQN E3F-DS10P2 18
2.2.3.1 Vai trò 18
2.2.3.2 Nguyên lí hoạt động 18
2.2.4 Cảm biến nhịp tim Pulse Sensor 19
2.2.4.1 Giới thiệu 19
2.2.4.2 Nguyên lý hoạt động 19
2.2.5 ModulSim900A 22
Trang 42.2.6 Màn hình hiển thị 23
2.3 Tìm hiểu các giao thức có trong thiết bị đo nhịp tim 25
2.3.1 Giao thức SPI 25
2.3.2 Giao thức I2C 26
2.4 Cách thức và cơ chế đưa ra cảnh báo 27
2.5 Kết luận chương 28
CHƯƠNG 3: XÂY DỰNG HỆ THỐNG THEO DÕI Ở SERVER 29
3.1 Giới thiệu chương 29
3.2 Tổng quan về TCP/IP và giao thức HTTP 29
3.2.1 TCP/IP 29
3.2.2 Giao thức HTTP - HyperText Transfer Protocol 32
3.3 Kết nối và gửi dữ liệu từ Arduino lên Server 33
3.4 Xây dựng cơ sở dữ liệu ở server 34
3.4.1 Tổng quan về PHP 34
3.4.1.1 Giới thiệu về php 34
3.4.1.2 Các đặc điểm của php 34
3.4.1.3 Các chức năng của php 35
3.4.2 Tổng quan về MYSQL 36
3.4.2.1 Giới thiệu về MYSQL 36
3.4.2.2 Một số đặc điểm của MySQL 36
3.4.3 Cấu hình cho cơ sở dữ liệu 37
3.4.4 Tạo tập tin nhận dữ liệu từ Arduino và ghi nó vào Database 39
3.5 kết luận chương 41
CHƯƠNG 4: THIẾT KẾ VÀ SỬ DỤNG WEBSITE THEO DÕI BỆNH NHÂN 42
4.1 Giới thiệu chương 42
4.2 Thiết kế giao diện website bằng HTML và CSS 42
4.2.1 Giới thiệu về HTML 42
4.2.1.1 Khái niệm 42
4.2.1.2 Cấu trúc cây HTML cơ bản 42
Trang 54.2.2.3 Cách sử dụng CSS 43
4.3 Tìm hiểu cách thiết kế một vài danh mục của website 44
4.3.1 Danh mục trang chủ HOME 46
4.3.1 Danh mục đăng nhập SIGN IN 47
4.4 Dùng PHP và MYSQL để truy xuất và hiển thị dữ liệu từ database 48
4.4.1 Xuất dữ liệu dạng bảng 48
4.4.1.1 Tạo form cho bảng 49
4.4.1.2 Truy xuất dữ liệu trong database ra bảng trên website 50
4.4.2 Xuất dữ liệu dạng đồ thị cho giá trị đo ngày gần nhất 50
4.4.2.1 Tạo form cho đồ thị 51
4.4.2.2 Thêm thư viện đồ họa 51
4.4.2.3 lọc giá trị theo ngày gần nhất 52
4.4.2.4 Vẽ đồ thị bằng javascript 52
4.5 Sử dụng trang web để theo dõi bệnh nhân 55
4.6 Kết luận chương 55
PHỤ LỤC 60
Trang 6Từ viết tắt Nội dung
Read Only Memory
Transmitter
Trang 8Hình 1 2: Chức năng của hệ thống 14
Hình 2.1: Sơ đồ khối các thành phần chính trong thiết bị kiểm tra tim mạch 16
Hình 2.2: Module Ethernet Shield 16
Hình 2.3: Arduino uno R3 17
Hình 2.4: Cảm biến vật thể OMKQM E3F-DS10P2 18
Hình 2.5: Nguyên lý hoạt động của cảm biến vật thể 19
Hình 2.6: Nguyên lý hoạt động của cảm biến nhịp tim 20
Hình 2.7: Tín hiệu cảm biến dao động khi gặp vật thể 20
Hình 2.8: Cảm biến nhịp tim 21
Hình 2.9: Các chân của moduleSim900A 22
Hình 2.10: LCD 20x4 24
Hình 2.11: Nối chân LCD với Arduino 25
Hình 3.1: Trình quản lý hosting 37
Hình 3.2: Tạo quyền quản lý truy cập CSDL 38
Hình 3.3: Tạo 1 bảng trong database 39
Hình 3.4: Tập tin chuyên nhận dữ liệu và ghi vào database 40
Hình 3.5: Bảng các giá trị đo được từ arduino gửi lên 41
Hình 4.1: Danh mục của website 44
Hình 4.2: Giao diện trong danh mục HOME 46
Hình 4.3: Giao diện danh mục SIGN IN 48
Hình 4.4: Bảng hiển thị giá trị ra website 48
Hình 4.5: Đồ thị nhịp tim ngày gần nhất 51
Hình 4.6: Thư viện chart.js được thêm ở trình quản lý file 52
Trang 9Sơ đồ 2.2: Sơ đồ nối chân cho arduino 22
Sơ đồ 2.3: Sơ đồ giao tiếp I2C 27
Sơ đồ 3.1: Mô hình 4 tầng của TCP / IP 30
DANH MỤC BẢNG
Bảng 2.1: Các chân chức năng của màn hình LCD 20x4 24Bảng 4.1: Chức năng của các danh mục 45
Trang 10PHẦN MỞ ĐẦU
Phần này trình bày ý tưởng, nội dung, phương pháp nghiên cứu vàkết quả đạt được của đồ án xuất phát từ các nhu cầu thực tiễn trongcuộc sống
Nhu cầu thực tiễn
Việt Nam đang bước vào giai đoạn già hóa dân số với những tháchthức lớn Số người cao tuổi tăng nhanh đòi hỏi sự chăm sóc cả về thểxác lẫn tinh thần Hơn nữa, xu hướng bệnh tật thế giới cũng như ViệtNam đang thay đổi Nếu trước đây những bệnh cấp tính lây nhiễmnhư dịch hạch, sốt rét, nhiễm khuẩn các loại hay gặp thì hiện nay cácbệnh không lây nhiễm như bệnh tim mạch, đái tháo đường, ung thư
người cao tuổi có sức khỏe tốt chỉ chiếm khoảng 5% 95% còn lạimắc các bệnh khác, trong đó bệnh tăng huyết áp chiếm gần 40%.Cũng theo một thống kê khác của Bộ Y Tế Việt Nam, tỷ lệ mắc vàchết do bệnh lý không lây nhiễm năm 1976 lần lượt là 43%, 45% thì
khỏe, đưa ra những cảnh báo kịp thời có ý nghĩa vô cùng to lớn
Trên cơ sở đó, ý tưởng thiết kế một hệ thống để theo dõi và đưa racảnh báo về tình trạng sức khỏe của bệnh nhân tim mạch đã đượcnhóm hình thành Đối tượng mà hệ thống này hướng đến là bệnhnhân tim mạch cần được theo dõi tình trạng hoạt động của tim mộtcách sát sao
Bệnh tim mạch là một nhóm bệnh mãn tính gồm có các bệnh sau: tăng huyết áp, suy tim, bệnh tim thiếu máu cục bộ, bệnh mạch máu
Trang 11dụng những chế độ kiểm soát bệnh lâu dài, kết hợp chặt chẽ giữathầy thuốc và người bệnh trong việc áp dụng các chế độ điều trị:theo dõi bệnh, chế độ sinh hoạt, tập luyện, điều chỉnh thuốc Chính vìvậy, nhóm chúng em đã nghĩ đến việc đưa ứng dụng của internet vào
hệ thống nhằm mục đích giúp bác sĩ theo dõi bệnh nhân được thuậntiện và hiệu quả hơn
Nội dung đồ án
Nội dung của đồ án này là trình bày cách thức xây dựng một hệthống theo dõi sức khỏe trên nền IoT Cụ thể, đồ án này sẽ trình bàycác bước thiết kế một thiết bị đo nhịp tim có kết nối với internet Bêncạnh đó, chúng em cũng giới thiệu các giao thức truyền nhận dữ liệutrong hệ thống cũng như các ngôn ngữ để lập trình một website phục
vụ cho việc theo dõi tình trạng sức khỏe bệnh nhân
Nhờ vào internet, mọi giao tiếp giữa bệnh nhân và bác sĩ trở nênkhá dễ dàng Thay vì phải gặp trực tiếp để bác sĩ theo dõi diễn biếncủa tim mạch, bệnh nhân chỉ cần ở nhà tự kiểm tra bằng máy đonhịp tim Dữ liệu đo đạc sau đó sẽ được gửi lên và lưu lại ở server.Qua đó, bác sĩ có thể đưa ra các lời khuyên cho người bệnh một cáchhợp lí nhất Ngoài ra, khi có biến cố thì thiết bị đo sẽ đưa ra cảnh báotrực tiếp đến bệnh nhân hoặc bác sĩ
Trình bày đồ án
Nội dung đồ án gồm 4 chương:
Chương 1: Tổng quan về hệ thống
Chương 2: Thiết kế thiết bị đo tim mạch
Chương 3: Xây dựng hệ thống theo dõi ở server
Chương 4: Thiết kế và sử dụng website theo dõi bệnh nhân
Kết quả đạt được
Trang 12Sau quá trình nghiên cứu và thi công, nhóm em đã phát triển được
hệ thống với những kết quả như sau:
chính xác
quan, rõ ràng
Trang 13CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG
1.1 Giới thiệu chương
Chương này trình bày tổng quan về hệ thống Hệ thống gồm hai phần chủ đạo: server – nơi lưu trữ thông tin và là cầu nối giao tiếp giữa bác sĩ và người bệnh; và thiết bị kiểm tra nhịp tim đặt tại nhà cógiao tiếp qua internet
1.2 Mô hình hệ thống trên nền IoT
Hình 1.1: Mô hình tổng quan của hệ thống
1.2.1 Bệnh nhân tim mạch
Hệ thống được thiết kế để phục vụ cho việc giám sát sức khỏebệnh nhân tim mạch được thuận tiện hơn Những đối tượng bệnhnhân này cần được bác sĩ giám sát định kì, đặc biệt là những bệnhnhân có triệu chứng về bệnh tim trong thời kì đầu
Trang 141.2.2 Thiết bị kiểm tra tim mạch
Chức năng của thiết bị là để đo và hiển thị nhịp tim của bệnhnhân lên màn hình, gửi tin nhắn văn bản hoặc gọi điện đến ngườithân khi có biến cố
Thiết bị gồm có các thành phần chính sau:
1.2.3 Thiết bị giám sát đầu cuối
Trên một giao diện website đã được thiết kế, bác sĩ có thể theodõi, quan sát thông tin trên thiết bị giám sát của mình Thiết bị giámsát đầu cuối có thể là máy tính văn phòng hoặc máy tính cá nhân
1.2.4 Bác sĩ gia đình
Bệnh nhân cần được theo dõi sát sao bởi một bác sĩ giám sát nào
đó Bác sĩ sẽ được cung cấp một tài khoản để đăng nhập và quản lí
cơ sở dữ liệu Từ những thông tin số liệu thu thập được, với trình độchuyên môn của mình thì bác sĩ có thể đánh giá tình trạng sức khỏecủa bệnh nhân và đưa ra những điều chỉnh kịp thời Với internet vàthiết bị giám sát của mình, bác sĩ có thể truy cập vào website để theodõi thông tin tình trạng sức khỏe của bệnh nhân ở mọi lúc mọi nơi
1.2.5 Server
Server là nơi nơi lưu trữ dữ liệu về tất cả lịch sử bệnh án của bệnhnhân theo thời gian Server có chức năng quản lí quyền đăng nhập và
Trang 15thể truy cập vào website để theo dõi thông tin dữ liệu của mìnhthông qua một tài khoản được cấp trước Riêng phía bác sĩ sẽ đượccấp thêm quyền truy cập vào cơ sở dữ liệu.
Ở trong hệ thống này, server sẽ là cầu nối quan trọng giữa bệnhnhân và bác sĩ Giao thức truyền gửi dữ liệu được sử dụng trong hệthống là TCP/IP Chi tiết về TCP/IP sẽ được trình bày ở chương sau
1.3 Chức năng của hệ thống
Hình 1 2: Chức năng của hệ thống
Chức năng quan trọng đầu tiên của hệ thống là đo và hiển thịnhịp tim lên màn hình LCD cỡ nhỏ Thông tin sẽ được hiển thị nhưsau:
Khi bệnh nhân chưa đo: hiển thị các thông số đo của lần đo ngaytrước đó
Khi đang tiến hành đo: hiển thị liên tục 10 giá trị tức thời (số nhịp đậptrong 1 phút, BPM) , số nhịp tim trung bình trong 1 phút, và giá trị lớnnhất, nhỏ nhất trong 10 giá trị đó
Trang 16Một chức năng quan trọng khác của hệ thống đó là truyền dữ liệu
đo được lên server, dữ liệu được lưu lại thành một cơ sở dữ liệu theongày giờ đo, đồng thời hiển thị thông số đo dưới dạng đồ thị lên trangweb Bác sĩ có thể theo dõi những thông tin này ở màn hình thiết bịgiám sát đầu cuối
Ở phía người giám sát, hệ thống sẽ quản lí quyền đăng nhập vào
cơ sở dữ liệu Sau khi đăng nhập vào hệ thống với tài khoản được cấptrước, bác sĩ có thể bắt đầu quá trình theo dõi tình trạng tim mạchcủa bệnh nhân
Ngoài ra, hệ thống còn được phát triển chức năng cảnh báo Nó
sẽ tự động cảnh báo khi nhịp tim có diễn biến bất thường Thiết bịkiểm tra nhịp tim sẽ gửi tin nhắn đến số điện thoại cá nhân của bác
sĩ, người than, đồng thời sẽ phát ra chuông cảnh báo
1.4 Kết luận chương
Với việc phát triển hệ thống theo dõi sức khỏe từ xa thông qua internet, việc thăm khám chữa bệnh đã trở nên thuận tiện hơn nhiều.Tuy nhiên phạm vi đối tượng mà hệ thống này hướng đến còn hạn hẹp
Dữ liệu gửi từ thiết bị kiểm tra tim mạch lên server là tương đối nhẹ trong khi giao thức TCP/IP lại có các header dung lượng lớn dẫn đến tốn băng thông
Trang 17CHƯƠNG 2: THIẾT KẾ THIẾT BỊ ĐO TIM MẠCH
2.1 Giới thiệu chương
Chương này sẽ trình bày các thông số kĩ thuật của từng thiết bịcũng như sơ đồ kết nối các linh kiện trong thiết bị kiểm tra tim mạch
2.2 Các thành phần chính trong hệ thống
Hình 2.3: Sơ đồ khối các thành phần chính trong thiết bị kiểm tra tim mạch
2.2.1 Ethernet Shield
Trang 18Hình 2.4: Module Ethernet Shield
Arduino Ethernet Shield giúp kết nối bo Arduino với internet mộtcách nhanh chóng Chỉ cần cắm Arduino Ethernet Shield lên boArduino, kết nối nó vào mạng thông qua một cáp RJ45 và thêm vàibước đơn giản là ta đã có thể kết nối với thế giới thông qua internet Arduino Ethernet Shield được thiết kế dựa trên chip WiznetW5100, hỗ trợ cả hai chuẩn Ethernet là TCP và UDP Nó sử dụng thưviện Ethernet có sẵn để kết nối với internet thông qua một Jack RJ45.Khai báo thư viện:
Trang 192.2.2.2 Tìm hiểu tổng quan về Arduino
Arduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR làATmega8, ATmega168, ATmega328 Bộ não này có thể xử lí nhữngtác vụ đơn giản như điều khiển đèn LED nhấp nháy, xử lí tín hiệu cho
xe điều khiển từ xa, làm một trạm đo nhiệt độ, độ ẩm và hiển thị lênmàn hình LCD, hay những ứng dụng khác Ở đây nhóm sử dụng viđiều khiển ATmega328
Arduino UNO có thể được cấp nguồn 5V thông qua cổng USB hoặccấp nguồn ngoài với điện áp khuyên dùng là 7-12V DC và giới hạn là6-20V
2.2.3 Cảm biến vật thể OMKQN E3F-DS10P2
Hình 2.6: Cảm biến vật thể OMKQM E3F-DS10P2
2.2.3.1 Vai trò
Cảm biến này thực ra có vai trò như một chuyển mạch Nó đượcđặt phía dưới ngay trước cảm biến nhịp tim Vì thế, khi bệnh nhân đặttay vào cảm biến cũng là lúc tác động để mạch chuyển sang trạngthái “ON” và hệ thống sẽ bắt đầu đo Khi bệnh nhân rút tay ra khỏicảm biến thì hệ thống cũng sẽ ngừng đo
Trang 202.2.3.2 Nguyên lí hoạt động
Đầu dò quang điện cảm biến chuyển E3F-DS10P2 DC có đườngkính 18mm và khoảng cách phát hiện tối đa 10 cm Nó thuộc loạicảm biến 3 dây (Vcc, Gnd, Signal), đầu ra PNP Tức là, khi nó pháthiện thấy vật thể, ngõ ra sẽ ở mức 0; ngược lại cho ra mức 1
Hình 2.7: Nguyên lý hoạt động của cảm biến vật thể
Nguyên lí làm việc của đầu dò này dựa vào hiện tượng phản xạkhuếch tán Cảm biến dạng này truyền ánh sáng từ bộ phát tới vậtthể Vật này sẽ phản xạ lại một phần ánh sáng (phản xạ khuếch tán)ngược trở lại bộ thu của cảm biến, kích hoạt tín hiệu ra Nhược điểmcủa cảm biến loại này là phụ thuộc nhiều vào màu sắc, tính chất vàkích thước của bề mặt của vật thể Tuy nhiên với mục đích sử dụngtrong đồ án này thì đây là một sự lựa chọn tương đối phù hợp
2.2.4 Cảm biến nhịp tim Pulse Sensor
2.2.4.1 Giới thiệu
Pulse Sensor là một loại cảm biến đo nhịp tim được thiết kế dùngvới Arduino Bằng cách kết nối cảm biến này với Arduino, nạp mộtchương trình đơn giản và đặt cảm biến vào đầu ngón tay hoặc dái tai,bất cứ ai cũng có thể theo dõi nhịp tim của mình thông qua ứng dụngtheo dõi có sẵn
Trang 212.2.4.2 Nguyên lý hoạt động
Cảm biến nhịp tim hoạt động dựa vào nguyên lí của quang điện
tử học Đèn LED sẽ chiếu ánh sáng vào bên trong ngón tay, dái tai, hoặc các mô có chức mạch máu khác Cảm biến sẽ đọc lượng ánh sáng quay ngược trở lại
Hình 2.8: Nguyên lý hoạt động của cảm biến nhịp tim
Mạch sử dụng bộ cảm biến ánh sáng Avago (APDS-9008), và ánh sang phản chiếu lại từ led siêu sáng xanh lá cây Kingbright (AM2520ZGC09) Ngoài ra còn có sử dụng
bộ lọc tích cực để làm các dạng sóng rõ hơn và dễ dàng cho Arduino xử lý
Khi Pulse Sensor Amped không tiếp xúc với bất kỳ ngón tay (dái tai hoặc các bộ phận khác) thì các tín hiệu analog dao động quanh điểm giữa của điện áp cung cấp, Vcc / 2 Khi cảm biến tiếp xúc trực tiếp ngón tay hoặc dái tai, sự thay đổi trong ánh sáng phản
xạ khi máu bơm qua các mô làm cho các tín hiệu dao động xung quanh đó để tham chiếu Trong hình bên dưới đường ngang là Vcc / 2
Hình 2.9: Tín hiệu cảm biến dao động khi gặp vật thể
Trang 22Arduino phát hiện tín hiệu analog từ cảm biến Một xung được tìmthấy khi các tín hiệu có giá trị tăng lên trên điểm giữa Đó là thời điểm khi các mô mao mạch được bơm máu khi tim đập tạo áp lực bơm máu Sau đó, khi tín hiệu giảm xuống dưới điểm giữa, Arduino sẽtìm các xung kế tiếp
Khi tim bơm máu đến các cơ quan, các tế bào trong cơ quan sẽhấp thu lượng ánh sáng mà LED phát ra nhiều hơn Vì thế cảm biến
sẽ nhận được lượng ánh sáng phản xạ lại ít hơn Điều này có nghĩagiá trị trở kháng của cảm biến quang tăng lên Sự thay đổi các giá trịtrở kháng này được tính toán, chuyển đổi và khuếch đại thành các tínhiệu đủ lớn nhờ op-amp rồi sau đó xử lí
Vi điều khiển được lập trình xử lí các chương trình ngắt ngoài mỗikhi phát hiện xung và đếm số xung mỗi phút Giá trị tính được chính
là số nhịp tim mỗi phút cần hiển thị(Beat per Minute - BPM)
Mặt sau của cảm biến là các thành phần khác như tụ điện, biến trở,
op amp…
Hình 2.10: Cảm biến nhịp tim
Trang 23Sơ đồ 2.1: Sơ đồ mạch trong cảm biến nhịp tim Pulse Sensor Ampled (3)
2.2.5 ModulSim900A
2.2.5.1 Giới thiệu
Vai trò trong hệ thống: giao tiếp với bo mạch Arduino UNO và gửitin nhắn văn bản đến người thân, bác sĩ để cảnh bảo có biến cố xảyra
Hình 2.11: Các chân của moduleSim900A
Với mức điện áp hoạt động 5VDC - Chuẩn điện áp thông dụngnhất với các loại Vi điều khiển và cả giao tiếp máy tính, cùng với tính
Trang 24ổn định cao và đơn giản về sử dụng, Module SIM900A này rất thíchhợp cho các ứng dụng thực tế liên quan đến nghe gọi, SMS
Sơ đồ 2.2: Sơ đồ nối chân cho arduino
Trang 25Module Sim 900 giao tiếp với Arduino thông qua 2 chân TX và RX.Chân RX, TX của ModulSim lần lượt nối với chân digital số 11 và số 10của Arduino.
Serial là một trong những phương thức giao tiếp đơn giản nhấttrong môi trường Serial Vì chỉ cần 2 dây và cách thức truyền dữ liệucủa nó lại giống hệt stream trong các ngôn ngữ lập trình NhưngArduino Uno chỉ có duy nhất một cổng Serial được phần cứng hỗ trợsẵn Vì vậy, nếu ta muốn giao tiếp với nhiều module Serial thì đó là
Trang 26một chuyện không thể Vì vậy cần giả lập thêm nhiều cổng Serial chocác board Arduino bằng thư viện SoftwareSerial.
Bảng 2.1: Các chân chức năng của màn hình LCD 20x4
Màn hình này có 16 chân kết nối, hiển thị các kí tự văn bản trong
4 hàng 20 cột, nghĩa là mỗi hàng có thể hiển thị tối đa 20 kí tự
Trang 27Hình 2.12: LCD 20x4
Tuy nhiên nếu để kết nối trực tiếp LCD với Arduino thì phải mấtđến 6 chân Digital, dẫn đến số chân Digital còn lại để sử dụng chomục đích khác rất hạn chế
Module I2C đã giải quyết điều này bằng cách kết nối lần lượt 2 chânSDA, SCL với 2 chân Analog A4, A5 của Arduino UNO
Hình 2.13: Nối chân LCD với Arduino
Trang 28Biến trở màu xanh dương ở trên module I2C dùng để chiều chỉnh
độ sáng của màn hình theo ý muốn
2.3 Tìm hiểu các giao thức có trong thiết bị đo nhịp tim
2.3.1 Giao thức SPI
SPI (Serial Peripheral Bus) là một chuẩn truyền thông nối tiếp tốc
độ cao do hang Motorola đề xuất Đây là kiểu truyền thông Slave, trong đó có 1 chip Master điều phối quá trình tuyền thông vàcác chip Slaves được điều khiển bởi Master vì thế truyền thông chỉxảy ra giữa Master và Slave SPI là một cách truyền song công (fullduplex) nghĩa là tại cùng một thời điểm quá trình truyền và nhận cóthể xảy ra đồng thời SPI đôi khi được gọi là chuẩn truyền thông “4dây” vì có 4 đường giao tiếp trong chuẩn này đó là SCK (Serial Clock),MISO (Master Input Slave Output), MOSI (Master Ouput Slave Input)
Master-và SS (Slave Select)
đồng bộ nên cần 1 đường giữ nhịp, mỗi nhịp trên chân SCK báo
1 bit dữ liệu đến hoặc đi Đây là điểm khác biệt với truyềnthông không đồng bộ mà chúng ta đã biết trong chuẩn UART
Trang 29tốc độ truyền của SPI có thể đạt rất cao Xung nhịp chỉ được tạo
ra bởi chip Master
đường Input còn nếu là chip Slave thì MISO lại là Output MISOcủa Master và các Slaves được nối trực tiếp với nhau
là đường Output còn nếu là chip Slave thì MOSI là Input MOSIcủa Master và các Slaves được nối trực tiếp với nhau
các chip Slave đường SS sẽ ở mức cao khi không làm việc Nếuchip Master kéo đường SS của một Slave nào đó xuống mứcthấp thì việc giao tiếp sẽ xảy ra giữa Master và Slave đó Chỉ có
1 đường SS trên mỗi Slave nhưng có thể có nhiều đường điềukhiển SS trên Master, tùy thuộc vào thiết kế của người dùng
2.3.2 Giao thức I2C
Một giao tiếp I2C gồm có 2 dây: Serial Data (SDA) và Serial Clock(SCL) SDA là đường truyền dữ liệu 2 hướng, còn SCL là đường truyềnxung đồng hồ để đồng bộ và chỉ theo một hướng Như hình vẽ bêndưới, khi một thiết bị ngoại vi kết nối vào đường bus I2C thì chân SDAcủa nó sẽ nối với dây SDA của bus, chân SCL sẽ nối với dây SCL
Trang 30Sơ đồ 2.3: Sơ đồ giao tiếp I2C
Trong chương trình viết cho Arduino có sử dụng địa chỉ của modulI2C
#define I2C_ADDR 0x27
Bằng cách tải chương trình I2C Address Scanner vào Arduino, sau
đó dùng giao diện Serial Monitor để hiển thị và ghi lại địa chỉ này
2.4 Cách thức và cơ chế đưa ra cảnh báo
Ngoài việc giám sát chặt chẽ các thông số sức khỏe của bệnh nhân thì việc đưa ra cảnh báo kịp thời cũng vô cùng quan trọng
Hệ thống sẽ đưa ra cảnh báo nhờ vào module Sim900A và còi báođộng Cụ thể, khi nhịp tim vượt ngưỡng bình thường (hoặc thấp hơn ngưỡng bình thường) thì ngay lập tức module Sim sẽ gửi tin nhắn đếnbác sĩ (hoặc người thân) Đồng thời chuông cảnh báo cũng sẽ vang lên để nhắc nhở bệnh nhân biết tình trạng của mình
Đối với người bình thường, nhịp tim trong một phút ở khoảng 60 đến 90 (4) Do đó, giá trị đo được nằm trong phạm vi này được xem
là bình thường Tùy vào tình trạng sức khỏe của từng đối tượng bệnh nhân mà ta có thể đặt các ngưỡng này ở các mức khác nhau
Trang 312.5 Kết luận chương
Với nhu cầu kiểm tra nhịp tim và giao tiếp với bác sĩ thông quainternet thì lựa chọn bo mạch Arduino Uno R3 là hợp lí Nếu lựa chọndòng Arduino Nano thì kích thước thiết bị sẽ giảm đi đáng kể nhưnglại gặp khó khăn trong giao tiếp với server Hoặc với dòng ArduinoMega thì có nhiều chân dữ liệu để lựa chọn thoải mái trong việc lậptrình mà không lo xung đột chức năng của các chân Cũng chính vìđiều mà có thể dẫn đến sự lãng phí về tính năng của dòng Megatrong khi nhu cầu của hệ thống chỉ cần kiểm tra nhịp tim và giao tiếpvới server Hơn nữa, bo mạch Arduino Uno R3 đang trở nên ngàycàng thông dụng, được phát triển và hỗ trợ trong việc tương thích vớinhiều phần mềm và thiết bị trên thị trường
Trang 32CHƯƠNG 3: XÂY DỰNG HỆ THỐNG THEO DÕI Ở
SERVER
3.1 Giới thiệu chương
Chương này trình bày về cách gửi dữ liệu đo được lên cơ sở dữ liệu bằng giao thức TCP/IP và hiển thị các thông số ra một website đểgiám sát
3.2 Tổng quan về TCP/IP và giao thức HTTP
3.2.1 TCP/IP
Bộ giao thức TCP/IP (Internet Protocol Suite) là bộ giao thức mà Internet và các mạng máy tính đang sử dụng và chạy trên đó Nó gồm 2 giao thức chính là TCP (Transmission Control Protocol - Giao thức điều khiển giao vận) và IP (Internet Protocol - Giao thức liên mạng)
Bộ giao thức TCP/IP được coi là một tập hợp các tầng Mỗi tầng giải quyết một tập các vấn đề liên quan đến việc truyền tải dữ liệu,
và cung cấp cho các giao thức tầng cấp trên một dịch vụ được định nghĩa rõ ràng dựa trên việc sử dụng các dịch vụ của các tầng thấp hơn
Trang 33Sơ đồ 3.4: Mô hình 4 tầng của TCP / IP
Sơ lược về nhiệm vụ của mỗi tầng:
- Application Layer:
Tầng cao nhất trong cấu trúc phân lớp của TCP/IP Tầng này bao gồmtất cả các chương trình ứng dụng sử dụng các dịch vụ sẵn có thông qua một chồng giao thức TCP/IP như DHCP, DNS, HTTP, FTP, Telnet, SMTP, Chúng sẽ tương tác với tầng vận chuyển để truyền hoặc nhận dữ liệu
- Transport Layer:
Trang 34TCP là giao thức định hướng kết nối thuộc tầng giao vận (TransportLayer) của TCP/IP
TCP tạo ra các kết nối giữa 2 máy cần trao đổi dữ liệu (Tạo ra một
"đường ống" riêng) mà qua đó các gói tin được bảo đảm chuyển tới nơi nhận một cách đáng tin cậy và đúng thứ tự Nguyên tắc hoạt động: TCP tại máy nguồn phân chia các byte dữ liệu cần truyền đi thành các đoạn (Segment) có kích thước thích hợp Sau đó, TCP
chuyển các gói tin này qua giao thức IP để gửi nó qua một liên mạng đến TCP ở máy đích TCP nguồn kiểm tra để không có một gói tin nào
bị thất lạc bằng cách gán cho mỗi gói tin một số thự tự (Sequence Number) Khi TCP đích nhận được, họ gửi về TCP nguồn một thông báo đã nhận (Acknowledgement) cho các gói tin đã nhận thành công.Một đồng hồ tại TCP nguồn sẽ báo time-out nếu không nhận được tin báo nhận trong khoản thời gian bằng một RRT (Round Trip Time), và
dữ liệu (được coi như thất lạc) sẽ được gửi lại TCP đích sẽ kiểm tra checksum xem có byte nào bị hỏng trong quá trình vận chuyển hay không, giá trị checksum này được tính toán cho mỗi gói dữ liệu tại nơigửi trước khi nó được gửi và được kiểm tra tại nơi nhận
Trang 35- Tầng liên kết: Ethernet, Wifi, Token Ring, PPP, Frame Relay 3.2.2 Giao thức HTTP - HyperText Transfer Protocol
Giao thức này nằm trong tầng Application Layer, được sử dụng đểtruyền nội dung trang Web từ Web Server đến trình duyệt Web ở Client Là giao thức Client/Server dùng cho Internet - World Wide Web, HTTP thuộc tầng ứng dụng của bộ giao thức TCP/IP (Các giao thức nền tảng cho Internet) Cơ chế hoạt động chính của HTTP là Request-Response: Web Client sẽ gửi Request đến Web Server, Web Server xử lý và trả về Response cho Web Client
Request Method thông dụng của HTTP:
Ngoài Method, URI (Địa chỉ định danh của tài nguyên), HTTP
Version thì trong Request Header có một số trường thông dụng sau:
Trang 36 Cookie: thông tin HTTP Cookie từ server.
3.3 Kết nối và gửi dữ liệu từ Arduino lên Server
Ở tầng vật lý hay gọi là tầng liên kết, ta dùng kết nối ethernetgiữa Arduino và Server thông qua hệ thống mạng LAN đã đăng ký vớinhà cung cấp dịch vụ internet
Trên arduino ta viết câu lệnh để tạo địa chỉ ethernet cho arduino:
Với giá trị mac được định từ địa chỉ Mac của máy tính mà arduinokết nối trực tiếp vào
Giá trị IP được định bằng các chọn bất kỳ IP trong dãy IP mà nhàmạng cung cấp
Tạo kết nối giữa máy khách Arduino và Server là website:
“yourheartstop.info” thông qua cổng HTTP-80
Sau đó ta dùng phương thức GET để gửi dữ liệu đo được là biến
int finalval; đến cơ sở dữ liệu (database) của server thông qua tập tin
write_data.php chuyên nhận dữ liệu và ghi vào database
Trang 37Vậy là arduino đã được kết nối với server và đã truyền dữ liệu đi.
Ở phần tiếp theo, cần xây dựng cơ sở dữ liệu cho server để có thểnhận dữ liệu
3.4 Xây dựng cơ sở dữ liệu ở server
3.4.1 Tổng quan về PHP
3.4.1.1 Giới thiệu về php
PHP vay mượn một số cú pháp từ C, Pert, Shell và Java Nó là một ngôn ngữ lai, lấy các tính năng tốt nhất từ ngôn ngữ khác và tạo ra một ngôn ngữ kịch bản (script language): dễ sử dụng và mạnh mẽ Mã nguồn (code) php được sử dụng với nhiều mục đích trong đó: đặc biệt thích hợp cho phát triển web và có thể được nhúng vào các mã HTML
3.4.1.2 Các đặc điểm của php
PHP là một ngôn ngữ lập trình web rất được ưa chuộng, hiện là ngôn ngữ lập trình web phổ biến nhất Nhờ vào một số đặc điểm sau:
web, nhiều hệ điều hành (đa nền tảng)
Trang 38 Ngoài phần code chính (thường gọi là code thuần), các phần mở rộng cũng rất phong phú mà lại miễn phí như nhiều frame work, nhiều CMS
Linux+Apache+Mysql+Php, mã nguồn mở, chi phí thấp
3.4.1.3 Các chức năng của php
phía máy chủ (Server Side script) - máy chủ sẽ tiếp nhận request (yêu cầu) từ máy khách (client) - máy chủ web sẽ triệu gọi file mã nguồn tương ứng Trong file mã nguồn này chứa các mã php để xử lý request - trình thông dịch sẽ dịch mã php sang mãHTML, CSS, XML, trả ra cho máy chủ web, máy chủ web trả lại thông tin (reponse) cho máy khách Dữ liệu nhận được từ máy khách là các đoạn mã dạng text như HTML,CSS, mà không thể thấy mã php ( vì đã được thực thi thành dạng text ) - đảm bảo được tính bảo mật, đây cũng là chức năng cơ bản và quan trọng của một ngôn ngữ phíamáy chủ
Ngoài ra PHP còn có thể:
3.4.2 Tổng quan về MYSQL
3.4.2.1 Giới thiệu về MYSQL
Trang 39nhóm Microsoft (Windows, IIS, SQL Server, ASP/ASP.NET),vì MySQL được tích hợp sử dụng chung với apache, PHP nên nó phổ biến nhất thế giới Vì MySQL ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh(vì được nhiều người hỗ trợ mã nguồn mở) và Mysql cũng có cùng một cách truy xuất và mã lệnh tương tự với ngôn ngữ SQL chính vì thế nên MySQL được sử dụng và hỗ trợ của những lập trình viên yêu thích mã nguồn mở.
Nhưng Mysql không bao quát toàn bộ những câu truy vấn cao cấpnhư SQL Server Vì vậy Mysql chỉ đáp ứng việc truy xuất đơn giản trong quá trình vận hành của website, thích hợp cho các ứng dụng cótruy cập CSDL trên internet và có thể giải quyết hầu hết các bài toán trong PHP, Perl
Nó có nhiều phiên bản cho các hệ điều hành khác nhau:
Windows,Linux, Mac OSX, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS, …
3.4.2.2 Một số đặc điểm của MySQL
tương đương với SQL Server của Microsoft)
nhiều bảng quan hệ chứa dữ liệu
dùng có thể được quản lý một hoặc nhiều CSDL khác nhau, mỗi người dùng có một tên truy cập (user name) và mật khẩu tươngứng để truy xuất đến CSDL
và mật khẩu của tài khỏan có quyền sử dụng CSDL đó
Trang 403.4.3 Cấu hình cho cơ sở dữ liệu
Cần có:
giá trị trong database