Nghiên cứu phát triển hệ thống trao đổi dữ liệu và chăm sóc sức khỏe Nghiên cứu phát triển hệ thống trao đổi dữ liệu và chăm sóc sức khỏe Nghiên cứu phát triển hệ thống trao đổi dữ liệu và chăm sóc sức khỏe Nghiên cứu phát triển hệ thống trao đổi dữ liệu và chăm sóc sức khỏe Nghiên cứu phát triển hệ thống trao đổi dữ liệu và chăm sóc sức khỏe Nghiên cứu phát triển hệ thống trao đổi dữ liệu và chăm sóc sức khỏe Nghiên cứu phát triển hệ thống trao đổi dữ liệu và chăm sóc sức khỏe Nghiên cứu phát triển hệ thống trao đổi dữ liệu và chăm sóc sức khỏe Nghiên cứu phát triển hệ thống trao đổi dữ liệu và chăm sóc sức khỏe Nghiên cứu phát triển hệ thống trao đổi dữ liệu và chăm sóc sức khỏe Nghiên cứu phát triển hệ thống trao đổi dữ liệu và chăm sóc sức khỏe Nghiên cứu phát triển hệ thống trao đổi dữ liệu và chăm sóc sức khỏe
Trang 1-
HOÀNG VĂN LUẬN
NGHIÊN CỨU PHÁT TRIỂN HỆ THỐNG
TRAO ĐỔI DỮ LIỆU VÀ CHĂM SÓC SỨC KHỎE
LUẬN VĂN THẠC SĨ KỸ THUẬT
TP HỒ CHÍ MINH - 2016
Trang 2-
HOÀNG VĂN LUẬN
NGHIÊN CỨU PHÁT TRIỂN HỆ THỐNG
TRAO ĐỔI DỮ LIỆU VÀ CHĂM SÓC SỨC KHỎE
CHUYÊN NGÀNH: KỸ THUẬT VIỄN THÔNG
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan toàn bộ nội dung đã được đề cập trong luận văn được viết dựa trên kết quả thực hiện và nghiên cứu của bản thân, dưới sự hướng dẫn của thầy giáo TS.Chung Tấn Lâm
Mọi thông tin và số liệu tham khảo đều được trích dẫn đầy đủ nguồn và sử dụng đúng luật bản quyền quy định
Tôi xin chịu trách nhiệm về nội dung của cuốn luận văn
TP.HCM, ngày 07 tháng 06 năm 2016
Tác giả luận văn
Hoàng Văn Luận
Trang 4LỜI CẢM ƠN
Lời đầu tiên em xin gửi lời cảm ơn đến toàn thể các Thầy, Cô giáo Học viện Công nghệ Bưu chính Viễn thông đã tận tình chỉ bảo em trong suốt thời gian học tập tại Nhà trường
Em xin bày tỏ lòng biết ơn sâu sắc đến TS Chung Tấn Lâm, người đã trực tiếp hướng dẫn, tạo mọi điều kiện thuận lợi và tận tình chỉ bảo cho em trong suốt thời gian làm luận văn tốt nghiệp
Bên cạnh đó, để hoàn thành luận văn này, em cũng đã nhận được rất nhiều sự giúp đỡ, những lời động viên quý báu của các bạn bè, gia đình và đồng nghiệp Em xin chân thành cảm ơn
Tuy nhiên, do thời gian hạn hẹp, mặc dù đã nỗ lực hết sức mình, nhưng chắc rằng luận văn khó tránh khỏi thiếu sót Em rất mong nhận được sự thông cảm và chỉ bảo tận tình của quý Thầy cô và các bạn
Em xin chân thành cám ơn!
Học viên thực hiện
Hoàng Văn Luận
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CÁM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC BẢNG v
DANH MỤC CÁC HÌNH VẼ vi
MỞ ĐẦU 1
CHƯƠNG I - TỔNG QUAN VỀ HỆ THỐNG TRAO ĐỔI DỮ LIỆU VÀ 2
CHĂM SÓC SỨC KHỎE 2
1.1 Tổng quan về hệ thống trao đổi dữ liệu và chăm sóc sức khỏe 2
1.2 Thành phần vật lý của hệ thống e-Health 3
1.3 Kiến trúc hệ thống thông minh e-Health 5
1.4 Thu thập dữ liệu 6
1.5 Thuật toán quyết định 7
1.6 Phê duyệt quyết định 8
1.7 Mô tả phần cứng hệ thống 9
1.7.1 Giới thiệu kit Raspberry Pi 9
1.7.1.1 Giới thiệu 9
1.7.1.2 Cấu hình của Raspberry Pi 10
1.7.1.3 Kết nối của Raspberry Pi 12
1.7.1.4 Giới thiệu hệ điều hành cho Raspberry Pi 14
1.7.2 Board cảm biến e-Health 15
1.7.3 Board kết nối Raspberry Pi với Arduino 17
CHƯƠNG 2 - LẬP TRÌNH LẤY DỮ LIỆU CẢM BIẾN 22
2.1 Thiết bị đo nhịp tim và nồng độ oxy trong máu CMS-50D+ 22
2.1.1 Giới thiệu 22
2.1.2 Thông số kỹ thuật 23
Trang 62.1.3 Nguyên lý hoạt động 23
2.1.4 Độ chính xác của SpO2 24
2.1.5.Lập trình lấy dữ liệu SpO2 24
2.2 Cảm biến đo nhiệt độ cơ thể 26
2.2.1 Giới thiệu 26
2.2.2.Lập trình lấy dữ liệu nhiệt độ 28
2.3 Cảm biến nhịp thở 29
2.3.1 Giới thiệu 29
2.3.2 Lập trình lấy dữ liệu nhịp thở 31
2.4 Cảm biến hướng nằm 32
2.4.1 Giới thiệu 32
2.4.2 Lập trình lấy dữ liệu hướng nằm 32
2.5 Cảm biến đo điện tim ECG 34
2.5.1 Giới thiệu 34
2.5.2 Nguyên lý 34
2.6 Thiết kế CSDL và Website 35
2.6.1 Mô hình liên kết thực thể - quan hệ 35
2.6.1.1 Các kiểu thực thể 35
2.6.1.2 Mô hình quan hệ 37
2.6.1.3 Các bảng dữ liệu 37
2.6.2 Giao diện Website 41
CHƯƠNG 3 - KẾT QUẢ THỰC HIỆN 43
3.1 Kết quả thực hiện 43
3.2 Đánh giá hệ thống 43
KẾT LUẬN 47
PHỤ LỤC A - CHƯƠNG TRÌNH LẤY DỮ LIỆU TỪ CÁC CẢM BIẾN 49
TÀI LIỆU THAM KHẢO 55
Trang 7DANH MỤC CÁC BẢNG
Bảng 1.1 Các hàm thông dụng với Arduino 20
Bảng 1.2 Các hàm trong thƣ viện Serial 20
Bảng 1.3 Các hàm trong thƣ viện Wire 20
Bảng 1.4 Các hàm trong thƣ viện SPI 20
Bảng 2.1 Các kiểu thực thể quan hệ 36
Bảng 2.2 Bảng dữ liệu Config 37
Bảng 2.3 Bảng dữ liệu Patient 38
Bảng 2.4 Bảng dữ liệu guisms 38
Bảng 2.5 Bảng dữ liệu Physician_Patient 39
Bảng 2.6 Bảng dữ liệu Physician 39
Bảng 2.7 Bảng dữ liệu Temp 39
Bảng 2.8 Bảng dữ liệu Pulse 40
Bảng 2.9 Bảng dữ liệu Flow 40
Bảng 2.10 Bảng dữ liệu ECG 40
Bảng 2.11 Bảng dữ liệu SpO 41
Bảng 2.12 Bảng dữ liệu POS 41
Bảng 3.1 Theo dõi nhịp thở của bệnh nhân 44
Bảng 3.2 Bảng ra quyết định của hệ thống 45
Bảng 3.3 Theo dõi nhịp tim của bệnh nhân 45
Trang 8DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Mô hình tổng quát hệ thống thu thập dữ liệu và chăm sóc sức khỏe 3
Hình 1.2 Các board được sử dụng trong hệ thống e-Health 4
Hình 1.3 Mô hình kết nối các cảm biến với hệ thống 4
Hình 1.4 Kiến trúc hệ thống thông minh e-Health 5
Hình 1.5 Giải thuật ra quyết định 7
Hình 1.6 Board Raspberry Pi 9
Hình 1.7 Những thông số sơ lược về Raspberry Pi B v.2 10
Hình 1.8 Sơ đồ các chân GPIO của board Raspberry Pi 13
Hình 1.9 Raspberry Pi và các thiết bị kết nối với nó 14
Hình 1.10 Các cổng giao tiếp in/out board e-Health mặt trên 15
Hình 1.11 Các cổng giao tiếp in/out board e-Health mặt dưới 16
Hình 1.12 Board e-Health gắn trên Arduino 17
Hình 1.13 Board kết nối Raspberry Pi với Arduino 18
Hình 1.14 Sơ đồ các chân của board kết nối Raspberry Pi với Arduino 19
Hình 2.1 Thiết bị đo nhịp tim và nồng độ oxy trong máu 22
Hình 2.2 Cảm biến đo nhiệt độ cơ thể 26
Hình 2.3 Cảm biến nhịp thở 29
Hình 2.4 Cảm biến hướng nằm 32
Hình 2.5 Cảm biến đo điện tim ECG 34
Hình 2.6 Di chuyển dòng điện của tim Từ hạch SA trong tâm nhĩ chuyển xuống hạch AV và lan vào tâm thất (x giây) 35
Hình 2.7 Mô hình thực thể - quan hệ 37
Hình 2.8 Giao diện chính Website 42
Hình 2.9 Giao diện dữ liệu cảm biến 42
Hình 3.1 Biểu đồ theo dõi nhịp thở của bệnh nhân 44
Hình 3.2 Biểu đồ theo dõi nhịp tim của bệnh nhân 46
Trang 9MỞ ĐẦU
Hiện nay, tại Việt Nam việc thăm khám, theo dõi và điều trị bệnh đã và đang trở nên là nhu cầu thiết yếu của người dân, đặc biệt là ở các thành phố lớn, các vùng núi xa xôi và hải đảo, nơi điều kiện về y tế còn gặp nhiều khó khăn và thiếu thốn về điều kiện cơ sở vật chất, hạ tầng Hơn nữa, trong điều kiện bùng nổ công nghệ thông tin như hiện nay, mọi người đều được tiếp cận với các thiết bị cá nhân như là phương tiện làm việc, học tập nghiên cứu và giải trí Xuất phát từ những điều này,
em đã chọn đề tài “Nghiên cứu phát triển hệ thống trao đổi dữ liệu và chăm sóc
sức khỏe” để đáp ứng được nhu cầu ngày càng cao về chăm sóc y tế của con người
và góp phần vào sự tiến bộ, văn minh hiện đại của nước nhà
Hệ thống là sự kết hợp giữa các phần cứng cảm biến thu nhận, xử lý các thông
số sinh học, phần mềm điều khiển xử lý dữ liệu và hiển thị trên các thiết bị cá nhân dựa trên nền tảng Web Các thông số sinh học chứa những thông tin về bệnh lý bao gồm: Điện tim ECG, nhịp tim HR, nhịp thở RESP, nồng độ ão hòa SpO2 và nhiệt
độ cơ thể Temp Thiết bị đã được xây dựng và hoạt động tương đối ổn định, có độ tin cậy và chính xác cao, đảm bảo an toàn, phần mềm điều khiển đơn giản, kết quả
đo được hiển thị một cách trực quan và thân thiện
Quyển luận văn này giúp người đọc nắm bắt được kiến trúc phần cứng cũng như phần mềm của hệ thống trao đổi dữ liệu và chăm sóc sức khỏe mà mục tiêu của luận văn đã đề ra ở trên
Luận văn bao gồm 3 chương:
Chương 1: Tổng quan về hệ thống trao đổi dữ liệu và chăm sóc sức khỏe Chương 2: Lập trình lấy dữ liệu từ các thiết bị y khoa
Chương 3: Kết quả thực hiện
Mặc dù em đã hoàn thiện được quyển luận văn và hệ thống “Trao đổi dữ liệu
và chăm sóc sức khỏe”, nhưng do còn hạn chế về kiến thức nên chắc chắn còn nhiều thiếu sót Em mong nhận được sự đóng góp quý báu của quý thầy cô giáo và các bạn
Trang 10CHƯƠNG I - TỔNG QUAN VỀ HỆ THỐNG TRAO ĐỔI
DỮ LIỆU VÀ CHĂM SÓC SỨC KHỎE
1.1 Tổng quan về hệ thống trao đổi dữ liệu và chăm sóc sức khỏe
Luận văn này trình bày việc thiết kế và thực hiện hệ thống trao đổi dữ liệu và chăm sóc sức khỏe gọi tắt là e-Health Hệ thống được thiết kế để khắc phục sự chậm trễ trong việc truyền tải thông tin y tế bệnh nhân đến bộ phận chăm sóc sức khỏe Ví dụ, trong tai nạn và tình huống khẩn cấp, mà thời gian là rất quan trọng, hệ thống giúp loại bỏ sự cần thiết phải nhập dữ liệu bằng tay Một hệ thống e-Health hiệu quả cũng góp phần vào việc sử dụng hiệu quả dữ liệu dựa trên dữ liệu thời gian thực Kiến trúc cho hệ thống này dựa trên việc sử dụng các cảm biến y tế, trong đó, một khi kết nối với bệnh nhân, hệ thống cho phép đo lường tình trạng thể chất của bệnh nhân Những cảm biến thu thập dữ liệu từ cơ thể bệnh nhân qua mạng không dây, với các dịch vụ điện toán đám mây Hệ thống đưa ra các quyết định y tế thích hợp sử dụng một thuật toán ra quyết định, mà dựa trên các tiêu chuẩn y tế và các dữ liệu y tế lịch sử của bệnh nhân Quyết định đề xuất sẽ được gửi đến nhân viên y tế, chịu trách nhiệm chăm sóc sức khỏe cho bệnh nhân, và phê duyệt Hệ thống sẽ gửi quyết định cuối cùng cho bệnh nhân sau khi nhân viên y tế phê duyệt Do đó, bệnh nhân sẽ có các dịch vụ chất lượng cao vì hệ thống thông minh e-Health hỗ trợ nhân viên y tế bằng cách cung cấp thu thập dữ liệu theo thời gian thực, loại bỏ phương pháp thu thập dữ liệu truyền thống thủ công và tạo điều kiện cho việc giám sát một lượng lớn nhiều bệnh nhân cùng lúc
Trang 11Hình 1.1: Mô hình tổng quát hệ thống thu thập dữ liệu và chăm sóc sức khỏe
Có rất nhiều lợi thế của việc sử dụng hệ thống thông minh e-Health, chẳng hạn như:
Cung cấp thu thập dữ liệu theo thời gian thực
Loại bỏ việc thu thập dữ liệu truyền thống thủ công, mà đôi khi xảy ra lỗi trong quá trình nhập liệu
Theo dõi một lượng lớn bệnh nhân với số lượng đội ngũ y tế hạn hẹp
Đảm bảo việc sử dụng giường bệnh hiệu quả, chỉ dành cho những bệnh nhân thực sự cần đến và giúp các nhân viên y tế có thể áp dụng được những kinh nghiệm thu thập được trong quá trình điều trị cho bệnh nhân
1.2 Thành phần vật lý của hệ thống e-Health
Trong luận văn này em sử dụng các cảm biến kết nối với một board cảm biến e-Health được gắn với board Raspberry Pi Board cảm biến e-Health và các cảm biến y khoa được thiết kế bởi công ty Libelium, nhằm giúp các nhà nghiên cứu và phát triển đo lường dữ liệu cảm biến theo thời gian thực, có thể sử dụng cho mục đích thử nghiệm Nền tảng e-Health này chỉ được sử dụng cho mục đích nghiên cứu
và không có chứng nhận y tế nên việc sử dụng nó là hạn chế, không nên sử dụng để
Raspberry Pi Webserver
Cảm biến nhiệt độ
Cảm biến điện tim đồ
Cảm biến nhịp thở
Cảm biến hướng nằm Bác sĩ – Bệnh nhân
Trang 12theo dõi những bệnh nhân quan trọng, những người cần các thiết bị giám sát y tế
chính xác Board cảm biến e-Health lúc đầu được thiết kế cho Arduino, để sử dụng
board cảm biến này với Raspberry Pi ta phải sử dụng thêm board cầu nối để kết nối,
cho phép Raspberry Pi trao đổi dữ liệu với các cảm biến thông qua board e-Health
Raspberry Pi Board cầu nối Board cảm biến e-Health
Hình 1.2: Các board được sử dụng trong hệ thống eHealth
Mặc dù có sẵn nhiều cảm biến nhưng trong giới hạn luận văn này, em chỉ sử
dụng các loại cảm biến sau: cảm biến đo nhịp tim và nồng độ oxy trong máu
(SpO2), cảm biến đo nhiệt độ cơ thể, cảm biến đo vị trí nằm của bệnh nhân và cảm
biến đo điện tim (ECG)
Hình 1.3: Mô hình kết nối các cảm biến với hệ thống
Trang 131.3 Kiến trúc hệ thống thông minh e-Health
Kiến trúc này được thiết kế dựa trên sự kết hợp truyền dữ liệu giữa các cảm biến y khoa (cho biết tình trạng bệnh lý của bệnh nhân) và hệ thống CSDL (lưu trữ
dữ liệu người bệnh) Sự kết hợp này biến e-Health thành một hệ thống theo dõi sức
khỏe cơ bản
Hình 1.4: Kiến trúc hệ thống thông minh e-Health
Từ hình 1.4 ta thấy, các cảm biến y khoa được kết nối với Raspberry Pi, Raspberry Pi có nhiệm vụ thu thập dữ liệu từ các cảm biến và truyền dữ liệu này thông qua các kênh truyền thông không dây với các dịch vụ lưu trữ dữ liệu Nền tảng này cung cấp các dịch vụ sau:
Dịch vụ lưu trữ, có nhiệm vụ lưu trữ dữ liệu bệnh nhân
Trang 14 Dịch vụ phân tích dữ liệu, có nhiệm vụ cung cấp các quyết định y khoa dựa trên các dữ liệu y khoa lịch sử của bệnh nhân
Dịch vụ quản lý, sử dụng cho việc cập nhật, xem xét và kiểm tra dữ liệu của bệnh nhân được thực hiện bởi nhân viên y tế Nhân viên y tế và bệnh nhân có thể sử dụng các ứng dụng đám mây từ các thiết bị di động và cố định khác nhau, sử dụng Internet
1.4 Thu thập dữ liệu
Các cảm biến y khoa được kết nối với Raspberry Pi để đọc dữ liệu từ cơ thể của bệnh nhân và thực hiện truyền dữ liệu (mã bệnh nhân và dữ liệu cảm biến) qua mạng không dây sau đó lưu vào trong cơ sở dữ liệu MySQL Những cảm biến này lấy dữ liệu bệnh nhân theo thời gian thực và được đưa lên hiển thị trên website để bác sỹ hay người nhà bệnh nhân đều có thể theo dõi trực tuyến
Khi có dấu hiệu bất thường, dữ liệu được cập nhật vào các bảng trong MySQL Lúc này các thủ tục quyết định sẽ thực hiện ra quyết định và gửi quyết định cho bác sỹ phê duyệt bằng SMS hay tương tác trên website
Trang 151.5 Thuật toán quyết định
Hình 1.5: Giải thuật ra quyết định
Hình 1.5 cho thấy tiến trình xử lý hệ thống giải thuật quyết định Thủ tục thuật toán ra quyết định có nhiệm vụ đưa ra quyết định y tế dựa trên bốn thông số, tên bệnh nhân, mã bệnh nhân, loại cảm biến và dữ liệu cảm biến hiện tại Khi chương trình nhận dữ liệu từ cảm biến, thuật toán sẽ kiểm tra nếu dữ liệu cảm biến
là bình thường hay bất bình thường dựa trên giá trị bình thường từ kết quả kiểm tra
y tế và các chính sách y tế đối với bệnh nhân được định nghĩa trong hệ thống Trong mối quan hệ sức khỏe, giá trị bình thường của các kết quả kiểm tra y tế thường được
mô tả như là biến của các đại lượng hay giá trị của những người khỏe mạnh Giá trị tham khảo thường được xác định bởi giá trị cao nhất và thấp nhất của những người bình thường
Trang 16Mỗi bệnh nhân có một hồ sơ chính sách y tế trong hồ sơ hệ thống với loại cảm biến, để hỗ trợ hệ thống tạo ra quyết định y tế phù hợp Ví dụ, một vài bệnh nhân có bệnh mãn tính, trong một vài trường hợp, đội ngũ y tế xem xét một vài thay đổi với các thông số bình thường trong các kiểm tra y tế Đội ngũ y tế có thể đưa ra các chính sách đặc biệt cho mỗi bệnh nhân dựa trên tình trạng bệnh nhân Ví dụ:
Ví dụ 1:
Nếu patient_id = “1” & SpO < “89” & temp > “37.5” = “bệnh nhân cần theo dõi” &
ra quyết định & gửi cảnh báo tới bác sỹ
Ví dụ 2:
Nếu patient_id = “2” & SpO < “85” & temp > “39” = “bệnh nhân cần theo dõi” &
ra quyết định & gửi cảnh báo đến bác sỹ
Nếu dữ liệu là bình thường, thuật toán sẽ lưu dữ liệu này trong bảng thông tin cảm biến trong cơ sở dữ liệu để thực hiện truy vấn lịch sử dữ liệu Hơn nữa, thuật toán sẽ tạo quyết định y tế dựa trên dữ liệu y tế lịch sử của bệnh nhân Nếu bệnh nhân không có bất kì dữ liệu lịch sử y tế trong cùng điều kiện, hệ thống sẽ thực hiện quyết định y tế dựa trên lịch sử dữ liệu y tế của bệnh nhân trong cùng điều kiện sức khỏe
1.6 Phê duyệt quyết định
Sau khi hệ thống tạo quyết định thích hợp, những quyết định được gửi tới đội ngũ y tế có trách nhiệm chăm sóc theo dõi sức khỏe bệnh nhân và thực hiện phê duyệt quyết định Có nhiều cách để gửi cảnh báo cho đội ngũ y tế như gửi sms hay email Họ có thể sử dụng trình duyệt hay thiết bị di động để xem xét và cập nhật quyết định Đội ngũ y tế có trách nhiệm sẽ xem xét thông tin lịch sử của bệnh nhân dựa trên các đơn thuốc và các bệnh mãn tính Sau đó, đội ngũ y tế sẽ quyết định nếu quyết định được tạo ra bởi hệ thống phù hợp với tình trạng của bệnh nhân hay họ sẽ thực hiện thay đổi và cập nhật chúng Sau khi đội ngũ y tế chấp nhận quyết định, hệ thống sẽ chấp nhận quyết định, thực hiện lưu lại và gửi các quyết định đã được chấp nhận tới bệnh nhân để theo sự chỉ dẫn y tế
Một số thuận lợi của hệ thống đưa ra, bao gồm:
Trang 17 Cung cấp dữ liệu theo thời gian thực
Hạn chế việc thu thập dữ liệu theo phương pháp thủ công, dễ gây ra lỗi dữ liệu
Cho phép theo dõi lượng lớn bệnh nhân không phụ thuộc vào đội ngũ y tế
Sử dụng hợp lý giường bệnh, tiết kiệm chi phí đầu tư
Rpi là một máy tính siêu nhỏ, chỉ có kích thước như 1 chiếc thẻ ATM rút tiền Bạn chỉ cần 1 bàn phím, 1 tivi hoặc 1 màn hình có cổng HDMI/DVI, 1 nguồn USB 5V và 1 dây micro USB là đã có thể sử dụng Rpi như 1 máy tính bình thường
Trang 18Với Rpi, bạn có thể sử dụng các ứng dụng văn phòng, nghe nhạc, xem phim độ nét cao (tới 1024p)
Hình 1.7: Những thông số sơ lược về Rpi B v2
1.7.1.2 Cấu hình của Rpi
Trái tim của Pi là vi xử lýBroadcom BCM2835 chạy ở tốc độ 700mHz Đây
là vi xử lý SoC (system-on-chip) tức là hầu hết mọi thành phần của hệ thống gồm CPU, GPU cũng như audio, communication chip đều được tích hợp trong một Chip SoC này nằm ngay bên dưới chip memory Hynix 512 MB màu đen ở giữa board
Tùy theo model mà Raspberry sử dụng chip khác nhau:
Rpi model B+: Broadcom BCM2835 với 512MB RAM
Rpi 2 model B: Broadcom BCM2836 với 1GB RAM
Rpi model A: Broadcom BCM2835 với 256MB RAM
Rpi 3 model B: Broadcom BCM2837 với 1GB RAM
Bởi vì RAM được tích hợp sẵn trong đế chip nên bạn không thể nâng cấp RAM cho Pi CPU BMC2835 sử dụng nhân ARM1176JZFS (ARM11) cho hiệu năng cao và giá thành thấp SoC này khác với CPU ở trong PC thông thường ở chỗ
nó được chế tạo dựa trên kiến trúc tập lệnh (Instruction Set Architect – ISA)
Trang 19là ARM chứ không phải kiến trúc x86 như của Intel ARM có ISA dạng rút gọn RISC và tiêu thụ điện năng rất thấp nên phù hợp với thiết bị di động
ARM dẫn đầu trong mảng thiết bị di động Lấy ví dụ như chip ARM trên Rpi: toàn bộ mạch hoạt động với nguồn 5V, 700mA tức là chỉ tiêu hao 3.5W mỗi giờ trong khi một laptop cũng ngốn ít nhất vài chục Watt Thiết kế này bảo đảm Rpi hoạt động với sức mạnh vừa phải trong khi vẫn giữ được hình dáng nhỏ gọn do không cần quạt tản nhiệt và do đó, ARM có mặt trong hầu hết điện thoại di động thời nay
Ngoài ra chip BCM2835 dùng thế hệ ARM11 thuộc phiên bản ARMv6 ARMv6 hoạt động hiệu quả và tiết kiệm năng lượng nhưng mặc định lại không
tương thích phần mềm với thế hệ ARMv7 Tuy nhiên, điều này có thể giải quyết
bằng cách sử dụng phần mềm chuyển đổi để đạt sự tương thích Nói như vậy không
có nghĩa là lập trình Rpi sẽ gặp nhiều khó khăn Ngược lại, cộng đồng Rpiphát triển rất nhanh trên thế giới và nguồn tài nguyên còn phong phú hơn nhiều, hàng loạt dự
án, phần mềm được phát triển cho Pi sẽ làm bạn hài lòng
Cắm Rpi vào cổng USB của máy tính có thể cấp nguồn cho Pi hoạt động ở mức bình thường, không sử dụng các kết nối internet như LAN và wifi
Raspberry là một máy tính, để máy tính này hoạt động bạn cần cài đặt hệ điều hành Trong thế giới nguồn mở linux, có rất nhiều phiên bản hệ điều hành tùy biến (distro) khác nhau Tùy theo nhu cầu và mục đích, cũng như khả năng học hỏi
mà bạn sẽ sử dụng distro phù hợp với mình
Ứng dụng của Rpi: Có nhiều ứng dụng từ đơn giản đến phức tạp có thể kể đến như: dùng Rpi làm trung tâm giải trí đa phương tiện, internet TV, ổ đĩa sao lưu dự phòng trên mạng nội bộ, kết hợp với webcam làm hệ thống phát hiện chuyển động, nhận diện khuôn mặt, điều khiển robot, nhận và gửi tin nhắn GSM với USB 3G, điều khiển tắt/mở đèn trong nhà, và còn rất nhiều ứng dụng khác
Trang 201.7.1.3 Kết nối của Rpi
Khe cắm thẻ nhớ: sử dụng loại thẻ SD Card, đây là nơi lưu trữ hệ điều hành
và tất cả các dữ liệu hoạt động của Rpi Dung lượng của thẻ nhớ phải từ 2GB trở lên
để đảm bảo cho hệ thống hoạt động tốt
Micro USB Power: Rpi có thể sử dụng đến 700mA tại mức áp 5V khi sử dụng nhiều thiết bị USB và cổng LAN Do đó để Rpi hoạt động ổn định, nhà sản xuất khuyến cáo sử dụng bộ nguồn USB 5V 2A Ngoài việc cấp nguồn cho Pi thông qua cổng micro USB, bạn có thể cấp nguồn trực tiếp vào cổng GPIO (5V và GND) Nếu bạn không am hiểu về điện tử thì cách này không được khuyến cáo Điện áp quá mức 5V cấp trực tiếp vào GPIO có thể gây hư hỏng các thiết bị cắm vào cổng USB, chip quản lý USB và LAN Tốt nhất nên sử dụng 1 nguồn switching chuyển
về 5V hoặc sử dụng IC LM7805
TFT Touch Screen: nơi đây sẽ giúp cho bạn có thể kết nối Rpi với màn hình cảm ứng để hiển thị và sử dụng Raspberry một cách trực quan nhất Chúng ta có thể thực hiện các tác vụ tương đương như khi sử dụng chuột và bàn phím
Camera expansion: khe cắm này là để cắm modem camera vào Rpi Khi sản xuất Rpi thì nhà sản xuất còn sản xuất thêm một modem camera 5MP nhưng người mua không được hỗ trợ mà phải mua thêm Chúng ta có thể chụp hình, quay phim, làm việc tất cả các tác vụ như trên một camera bình thường
Cổng HDMI: cổng này dùng để kết nối với các thiết bị có hỗ trợ chuẩn kết nối HDMI, nếu thiết bị của chúng ta không hỗ trợ HDMI mà chỉ hỗ trợ VGA thì chúng ta phải sử dụng một dây cáp chuyển đổi từ HDMI sang VGA Thường thì cổng này dùng để kết nối ra màn hình, tivi, máy chiếu, để hiển thị giao diện của
hệ điều hành
Cổng kết nối Ethenet: dùng để kết nối Internet, mạng Lan, truy cập SSH,
2 cổng USB: dùng để kết nối với chuột, bàn phím, usb, usb 3g, usb wifi và các thiết bị có hổ trợ cổng USB
Trang 21Stereo audio: dùng để kết nối với tai nghe, loa, và các thiết bị âm thanh có cổng Jack 3.5mm
TV: dùng để kết nối và phát tín hiệu hình ảnh lên Tivi
GPIO: Rpi cung cấp nhiều cổng GPIO, giao tiếp SPI, I2C, Serial Các cổng
GPIO đƣợc sử dụng để xuất/nhận giá trị 0/1 ra/vào từ bên ngoài Giao tiếp SPI, I2C, Serial có thể đƣợc dùng để kết nối trực tiếp với các vi điều khiển khác Đặc biệt phù hợp cho những ai cần điều khiển các thiết bị điện tử ngoại vi
Hình 1.8: Sơ đồ các chân GPIO của board Rpi
Trang 22Hình 1.9: Rpi và các thiết bị kết nối với nó
1.7.1.4 Giới thiệu hệ điều hành cho Rpi
Sau phần giới thiệu Rpi và cấu tạo của nó, ta sang phần thực hành với Pi Khác với vi điều khiển có thể chạy ngay sau khi chạy chương trình điều khiển, Pi cần có hệ điều hành để hoạt động Đây cũng là ưu điểm của Pi vì nó cho phép người dùng tận dụng rất nhiều phần mềm và thiết bị ngoại vi để lập trình ứng dụng phức tạp một cách nhanh chóng
Các hệ điều hành hiện tại mà Rpi hỗ trợ:
NOOBS (New Out Of Box Software): đây là hệ điều hành cơ bản nhất của Rpi, không hổ trợ giao diện mà chỉ dùng giao diện dòng lệnh
Raspbian: được tạo nên từ hệ điều hành Debian của Linux chuyên dùng cho các dòng máy tính, có giao diện như 1 máy tính, hổ trợ cả về mạng,
và giao tiếp vào ra
Trang 23 Pidora: tạo nên từ phiên bản hệ điều hành Fedora của Linux, cũng hỗ trợ tốt về giao diện, mạng và giao tiếp vào ra
RaspBMC: tạo ra để chuyên dùng giải trí, sử dụng giao diện XBMC media center, giao diện thường thấy trong các TIVI Internet hiện nay
OpenELEC: một phiên bản dùng giao diện XBMC Mediacenter khác, hỗ trợ nhanh và thân thiện cho người sử dụng
RISC OS: phiên bản hệ điều hành rút gọn với tính năng hoạt động nhanh nhất trong các hệ điều hành
Arch: phiên bản hệ điều hành phát triển riêng cho các dòng kit dùng chip ARM
1.7.2 Board cảm biến e-Health
Board cảm biến e-Health cho phép Arduino và Rpi có thể thực hiện các ứng dụng y tế và sinh trắc học để giám sát cơ thể với hơn 10 cảm biến khác nhau như: nhịp tim, nồng độ oxy trong máu (SpO2), nhịp thở, nhiệt độ cơ thể, điện tâm đồ (ECG), đo nồng độ đường trong máu, phản ứng đổ mồ hôi của da, huyết áp, vị trí nằm của bệnh nhân và cảm biến cơ (EMG)
Hình 1.10: Các cổng giao tiếp in/out board e-Health mặt trên
Trang 24Hình 1.11: Các cổng giao tiếp in/out board e-Health mặt dưới
Board này là board chính của đồ án, cùng với các cảm biến y khoa với thư viện e-Health cho Arduino và Rpi, cho phép chúng ta thực hiện đọc hay thu nhận các thông số dễ dàng với chi phí thấp
Các cảm biến e-Health được thiết kế với các chân tương thích với Arduino
Vì vậy để sử dụng được e-Health với Arduino ta phải cấp nguồn cho Arduino với nguồn ngoài hoặc nguồn USB
Trong lập trình Arduino, thư viện e-Health được sự dụng để lập trình Thư việc được sử dụng với hàm như sau:
#include <PinChangeInt.h>
#include <eHealthDisplay.h>
#include <eHealth.h>
Trang 25Hình 1.12: Board e-Health gắn trên Arduino
Cấu hình:
Trang web chính thức của libeluim và cooking hacks hacks.com/documentation/tutorials/ehealth-biometric-sensor-platform-arduino-raspberry-pi-medical chứa tất cả các thông tin cần thiết để cấu hình board e-Health
http://www.cooking-để hoạt động tốt với các cảm biến trên Arduino và Rpi
1.7.3 Board kết nối Rpi với Arduino
Board kết nối Rpi với Arduino cho phép sử dụng nhiều board và module được thiết kế cho Arduino sử dụng được với Rpi Board có thể kết nối được với các cảm biến số và tương tự, sử dụng sơ đồ chân như Arduino nhưng sử dụng nguồn và tài nguyên Raspberry Board này tương thích với Rpi, Rpi (Model B+), Rpi 2 và bản mới Rpi 3
Để tương thích với Raspberry, thư viện arduPi được tạo ra cho phép Raspberry sử dụng code như đang sử dụng với Arduino Để làm được điều đó thư viện đã xây dựng các hàm chuyển đổi cho phép điều khiển như với Arduino với các giao tiếp I/O như i2C, SPI, UART, analog, digital
Trang 26Các chức năng có thể sử dụng Board kết nối với thƣ viện arduPi:
Kết nối với bất kỳ module Arduino Wireless trong Raspberry, ví dụ nhƣ board Xbee 802.15.4/Xbee ZigBee, RFID, NFC, Bluetooth, Bluetooth Pro, Wifi, GPRS, 3G
Kết nối với bất kỳ cảm biến nào (analog 0-5V, digital) với Rpi sử dụng chuyển đổi ADC, kết nối với các cảm biến phức tạp thông qua I2C và UART
Có thể kết nối với các Arduino đặc trƣng nhƣ Radiation sensor shield, CanBusn, Relay shield,…
Có thể kết nối với các module khác làm việc với I2C, SPI, UART
Hình 1.13: Board kết nối Rpi với Arduino
Trang 27Hình 1.14: Sơ đồ các chân của board kết nối Rpi với Arduino
Các chân của board kết nối Rpi với Arduino:
8 kênh chuyển đổi analog sang digital
Công tắc chuyển sang sử dụng nguồn ngoài
Thƣ viện: arduPi
Trang 28ArduPi là thư viện C++ cho phép lập trình cho Rpi như khi lập trình chương trình cho Arduino Tất cả các chức năng điều khiển cổng Serial, I2C, SPI và các chân GPIO được sử dụng như các hàm trong Arduino
Để biên dịch thư viện arduPi ta sử dụng lệnh sau: wget hacks.com/media/cooking/images/documentation/raspberry_arduino_shield/raspberrypi2.zip && unzip raspberrypi2.zip && cd cooking/arduPi && chmod +x install_arduPi && /install_arduPi && rm install_arduPi && cd /
http://www.cooking-Bảng 1.1: Các hàm thông dụng với Arduino
delay() digitalRead() detachInterrupt()
delayMicroseconds() analogRead()
digitalWrite() attachInterrupt()*
Bảng 1.2: Các hàm trong thư viện Serial
setTimeout() write()
Bảng 1.3: Các hàm trong thư viện Wire
begin() beginTransmission() write()
requestFrom() endTransmission() read()
Bảng 1.4: Các hàm trong thư viện SPI
end() setClockDivider() transfer()
Trang 29Việc lấy dữ liệu UART với thư viện arduPi thực hiện dễ dàng như với Arduino Để lập trình chỉ việc thêm thư viện arduPi.h vào chương trình và thêm các class Serial cho phép sử dụng các hàm như với Arduino
Trang 30CHƯƠNG 2 - LẬP TRÌNH LẤY DỮ LIỆU CẢM BIẾN
2.1 Thiết bị đo nhịp tim và nồng độ oxy trong máu CMS-50D+
2.1.1 Giới thiệu
Nhằm đáp ứng nhu cầu ngày càng cao về hiệu quả điều trị, ngoài việc phát hiện và điều trị bệnh lý của bệnh nhân thì việc theo dõi để xử lý kịp thời các biến động về chức năng sống của bệnh nhân là yêu cầu được đặt ra đối với người thầy thuốc Ngoài việc theo dõi bốn chức năng sống cơ bản là mạch, nhiệt, huyết áp, nhịp thở thì SpO2 được xem như là dấu hiệu sinh tồn thứ 5
SpO2 là độ bão hòa oxy trong máu ngoại vi (mao mạch), được đo qua da thông qua một đầu dò SpO2 của máy đo hoặc của máy Pulse Oxymeter (máy đo độ bão hòa oxy trong máu theo mạch đập) kẹp ở đầu ngón tay, ngón chân hoặc dái tai
Thiết bị đo SpO2 CMS 50D+ sử dụng công nghệ kiểm tra quang điện Oxyhemoglobin thích hợp với khả năng đếm nhịp xung và ghi nhận các tín hiệu nhận được Thiết bị này được sử dụng trong việc đo nồng độ bão hòa oxy trong máu
và nhịp tim với hình dáng kẹp ngón tay Sản phẩm thích hợp sử dụng trong gia đình, bệnh viện, các bệnh nhân trợ thở oxy, các dịch vụ chăm sóc sức khỏe cộng đồng, chăm sóc vật lý trong thể thao (nó có thể được sử dụng trước hoặc sau khi chơi thể thao, và không được khuyến cáo sử dụng trong suốt quá trình chơi thể thao)
Hình 2.1: Thiết bị đo nhịp tim và nồng độ oxy trong máu
Trang 312.1.2 Thông số kỹ thuật
Model: CMS-50D+
Hãng sản xuất: Contec
Màn hình: OLED, với 6 loại hiển thị chế độ, độ phân giải 128*64 pixels
Có khả năng hiển thị tốt dưới cường độ ánh sáng mạnh
Sử dụng pin alkaline 1.5V (AAA size) Có khả năng làm việc liên tục trong hơn 30 giờ
Tích hợp với cảm biến đo SpO2 và module xử lý hiển thị kết quả
Hiển thị giá trị SpO2, hiển thị trị số nhịp mạch, biểu đồ thanh hiển thị
Độ sáng màn hình có thể thay đổi được
Hiển thị cảnh báo hết pin, chỉ số điện áp thấp khi khởi động thiết bị
Chức năng tự động tắt nguồn : Khi thiết bị đang trong tình trang không được sử dụng, nó sẽ tự động tắt trong vòng 5 giây nếu bỏ ngón tay ra khỏi đầu đo
Định dạng hiển thị có thể lưu lại sau khi tắt thiết bị
Thiết bị gồm hai LED, bước sóng bức xạ 660 nm ở phổ bước sóng ánh sáng
đỏ và bước sóng thứ hai là 940 nm ở vùng hồng ngoại Các led hoạt động luân