Đồ án Ứng dụng Raspberry Pi giám sát nhịp tim thông qua trang web (Phần 1)

pdf 22 trang phuongnguyen 30
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Ứng dụng Raspberry Pi giám sát nhịp tim thông qua trang web (Phần 1)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfdo_an_ung_dung_raspberry_pi_giam_sat_nhip_tim_thong_qua_tran.pdf

Nội dung text: Đồ án Ứng dụng Raspberry Pi giám sát nhịp tim thông qua trang web (Phần 1)

  1. BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA ĐIỆN - ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - TRUYỀN THÔNG ỨNG DỤNG RASPBERRY PI GIÁM SÁT NHỊP TIM THÔNG QUA TRANG WEB GVHD: ThS. TRƯƠNG QUANG PHÚC SVTH: NGUYỄN CÔNG DANH MSSV: 12141494 SVTH: NGUYỄN TUẤN MINH MSSV: 12141598 S K L 0 0 4 5 0 1 Tp. Hồ Chí Minh, tháng 07/2016
  2. MỤC LỤC Trang bìa i Nhiệm vụ đồ án ii Lịch trình iii Cam đoan v Lời cảm ơn vi Mục lục vii Liệt kê hình vẽ x Liệt kê bảng vẽ xii Tóm tắt xiii Chương 1. TỔNG QUAN 1 1.1 ĐẶT VẤN ĐỀ 1 1.2 MỤC TIÊU 2 1.3 NỘI DUNG NGHIÊN CỨU 3 1.4 GIỚI HẠN 3 1.5 BỐ CỤC 3 Chương 2. CƠ SỞ LÝ THUYẾT 5 2.1 TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH PYTHON 5 2.1.1 Khái niệm 5 2.1.2 Đăc điểm ngôn ngữ lập trình Python 5 2.1.3 Cấu trúc ngôn ngữ python 6 2.2 TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH WEB 7 2.2.1 Tìm hiểu về Hyper Text Markup Language (HTML) 7 2.2.2 Các tag cơ bản trong một file html 8 2.2.3 Thiết kế 1 file html 9 2.2.4 Apache 9
  3. 2.2.5 Ngôn ngữ PHP 10 2.2.6 Ngôn ngữ SQL 12 2.2.7 Ngôn ngữ JavaScript 13 2.3 WEB SERVER 14 2.4 TỔNG QUAN VỀ TÍN HIỆU ĐIỆN TIM (ECG) 15 2.4.1 Sơ lược về tim và nhịp tim 15 2.4.2 Nhịp tim 16 2.4.3 Hoạt động điện của cơ tim 18 2.4.4 Đường dẫn truyền trong tim 20 2.4.5 Sự hình thành các dạng sóng của tim 20 2.5 ECG (ELECTROCARDIOGRAM) 21 2.5.1 Định nghĩa 21 2.5.2 Nguyên lý hoạt động 22 2.5.3 Tín hiệu ECG 23 2.5.4 Các dải tần trong tín hiệu ECG 24 Chương 3. THIẾT KẾ VÀ TÍNH TOÁN 26 3.1 GIỚI THIỆU 26 3.2 THIẾT KẾ HỆ THỐNG 26 3.2.1 Chức năng của từng khối trong toàn hệ thống 26 3.3 LỰA CHỌN PHẦN CỨNG 27 3.3.1 Giới thiệu về bộ diều khiển trung tâm raspberry Pi 27 3.3.2 Chọn linh kiện cho khối đo nhịp tim 30 3.4 LỰA CHỌN PHẦN MỀM 31 3.4.1 Giới thiệu 31 3.4.2 Truy cập trực tiếp Raspberry Pi qua máy tính 31 3.5 TÍNH TOÁN CÁC LINH KIỆN TRONG MẠCH ĐO NHỊP TIM 34 3.5.1 Các khối trong mạch đo nhịp tim 34
  4. 3.5.3 Nguyên lý đo nhịp tim của module. 36 Chương 4. THI CÔNG HỆ THỐNG 38 4.1 GIỚI THIỆU 38 4.2 LƯU ĐỒ THUẬT TOÁN MẠCH ĐO NHỊP TIM 38 4.3 THI CÔNG MẠCH THU TÍN HIỆU NHỊP TIM 39 4.3.1 Layout mạch in 39 4.3.2 Kiểm tra mạch 39 4.4 THI CÔNG HỆ THỐNG ĐƯA DỮ LIỆU NHỊP TIM LÊN WEB 39 4.4.1 Lấy dữ liệu đo được đưa vào CSDL MySQL 39 4.4.1 Cấu trúc các bảng trong Database 40 4.4.2 Kết nối MySQL 41 4.4.3 Cập nhật dữ liệu từ MySQL lên Web 42 4.5 XÂY DỰNG TRANG WEB HIỂN THỊ 43 4.5.1 Cấu trúc trang web 43 Chương 5. KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 45 5.1 PHẦN CỨNG 45 5.2 KẾT QUẢ THU THẬP DỮ LIỆU 45 5.3 TRANG WEB HIỂN THỊ 48 Chương 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 52 6.1 KẾT LUẬN 52 6.2 HƯỚNG PHÁT TRIỂN 52 TÀI LIỆU THAM KHẢO PHỤ LỤC
  5. CHƯƠNG 1. TỔNG QUAN Chương 1. TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ Trong thời đại công nghệ hóa toàn cầu hóa như hiện nay, Việt Nam đang có những bước tiến quan trọng trong quá trình hội nhập với xu thế phát triển chung của thế giới trên tất cả các lĩnh vực: kinh tế, văn hóa, xã hội, đặc biệt là các lĩnh vực của ngành công nghệ tin học. Ngày nay nhu cầu sử dụng máy tính của xã hội không ngừng tăng nhanh nhất là các lĩnh vực đòi hỏi thời gian, liên kết xử lý, điều hành như thương mại, dịch vụ, y tế và giáo dục. Hầu như mọi cơ quan đều được trang bị hệ thống máy tính. Với những tiện ích ngày một nâng cao, công nghệ thông tin dần trở thành trợ thủ đắc lực cho con người. Hơn thế nữa nó còn là đối tượng nghiên cứu của một số bộ môn khoa học có tính chất liên ngành. Trong y học cũng ứng dụng nhiều thành tựu khoa học cho ra đời một số thiết bị y tế tiên tiến, giúp chẩn đoán chính xác hơn và hiệu quả cao hơn. Từ đó ngành Kỹ Thuật Y Sinh được hình thành và không ngừng phát triển cho đến ngày nay. Trong lĩnh vực Kỹ Thuật Y Sinh thì điện tử y sinh là một thành phần giữ vai trò quan trọng. Nó đóng góp cho y học các thiết bị hiện đại trong việc chẩn đoán và điều trị bệnh. Những thiết bị đó không ngừng phát triển. Tuy nhiên để điều khiển những thiết bị đó một cách dễ dàng và an toàn đòi hỏi người sử dụng phải có kiến thức và nắm vững những nguyên lý cơ bản của nó. Để bác sĩ thuận tiện khi theo dõi và lưu trữ thông tin bệnh nhân thì việc kết nối giữa thiết bị y tế và một chiếc máy tính là điều rất cần thiết. Một thiết bị đo điện tim (ECG) được giao tiếp với máy tính sẽ giúp bác sĩ theo dõi tình trạng của bệnh nhân một cách liên tục, nhờ đó phát hiện được những thay đổi bất thường và kịp thời cứu chữa. Chiếc máy này thay thế y tá lưu trữ dữ liệu do đó có thể giảm thiểu những sai sót gây hậu quả đáng tiếc do bất cẩn. Hiện nay máy đo điện tim hay còn gọi là điện tâm đồ đã được sử dụng phổ biến trong các bệnh viện, phòng khám nhằm ghi lại dạng sóng, theo dõi hoạt động của tim để chẩn đoán và điều trị các bệnh liên quan đến tim một cách hiệu quả nhất. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 1
  6. CHƯƠNG 1. TỔNG QUAN Tuy nhiên để máy điện tâm đồ hoạt động tốt thì cần các phương pháp để thu thập tín hiệu ECG. Nhận ra sự cần thiết của các thiết bị thông minh và sự phát triển của giải pháp công nghệ mới Internet of Things (IoT) các thiết bị có khả năng xác định thông số sinh tồn của bệnh nhân và có thể kết nối với internet được ra đời như một tất yếu. Điển hình là xác định nhịp tim với máy đo điện tim (ECG). Việc theo dõi và giám sát thông số sức khỏe bệnh nhân từ xa còn khá mới mẻ với nước ta. Tuy nhiên, đã được các nước có nền khoa học phát triển nghiên cứu và đạt được nhiều thành tựu. Một số đề tài gần đây đã được thực hiện có liên quan đến việc giám sát thông số sức khỏe từ xa như. * Trong nước Đề tài [7] tác giả Phạm Thái Bình và Tiết Xuân Sang sử dụng MSP430G2553 và module RF HM-TRP 433 lập trình giao tiếp và đọc dữ liệu từ cảm biến đo nhịp tim để lấy số liệu sau khi xử lý sẽ được gửi qua SMS để giám sát sức khỏe bệnh nhân. Tuy nhiên giới hạn số lượng người xem, quá trình thu thập và gửi dữ liệu không đồng thời, tốn kém về tài chính. * Ngoài nước Đề tài [8] tác giả J. Morón và A.Gázquez quản lý sức khỏe bằng bộ cảm biến không dây trong lĩnh vực y tế thông qua Bluetooth. Giám sát được tình trạng sức khỏe bệnh nhân, đưa thông tin lên được trang web. Tuy nhiên phạm vi kết nối ngắn, dễ bị nhiễu và bắt sóng kém khi có vật cản. Vì lý do đó nên luận văn này xây dựng một ứng dụng sử dụng kit Raspberry làm trung tâm giao tiếp kết nối với thiết bị đo nhịp tim để lưu trữ dữ liệu đồng thời đưa dữ liệu lên web dưới dạng đồ thị. Bác sĩ có thể xem thông tin nhịp tim dưới dạng đồ thị đã cập nhật trên một trang web qua đó có thể kịp thời đánh giá tình trạng sức khỏe của bệnh nhân. 1.2 MỤC TIÊU Thiết kế bộ đo thống số nhịp tim và đưa dữ liệu nhịp tim lên máy chủ (Raspberry Pi) Xây dựng web server trên máy chủ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 2
  7. CHƯƠNG 1. TỔNG QUAN Cung cấp nhịp tim của bệnh nhân liên tục theo thời gian thực dưới dạng đồ thị trên trang web. 1.3 NỘI DUNG NGHIÊN CỨU Tìm hiểu và thiết kế khối đo nhịp tim. Tìm hiểu ngôn ngữ lập trình python, ngôn ngữ lập trình web (HTML, PHP) và thiết kế trang web. Thu thập dữ liệu nhịp tim đo được từ module lên Raspberry Pi. Tìm hiểu cở sở dữ liệu MySQL, tạo cơ sở dữ liệu nhịp tim trên Raspberry Pi và đồng thời đưa dữ liệu lên web dưới dạng đồ thị. Chạy thử nghiệm và cân chỉnh hệ thống. Đánh giá kết quả thực hiện 1.4 GIỚI HẠN Chưa kết hợp được nhiều thiết bị y tế (nhiệt độ, huyết áp ). Chưa tạo có thể chẩn đoán được bệnh tình bệnh nhân thông qua nhịp tim thu được. Hạn chế phạm vi kết nối. 1.5 BỐ CỤC Luận văn được chia thành các chương chi tiết, mỗi chương thể hiện một nội dung đặc trưng như sau: Chương 1: Tổng Quan. Chương này trình bày đặt vấn đề dẫn nhập lý do chọn đề tài, mục tiêu, nôi dung nghiên cứu, các giới hạn và bố cục đồ án. Chương 2: Cơ Sở Lý Thuyết. Chương này trình bày tổng quan về ngôn ngữ lập trình Python, các ngôn ngữ lập trình web như HTML, PHP, JAVASCRIPT và ngôn ngữ truy vấn SQL. Ngoài ra còn trình bày tổng quan về web server và tín hiệu ECG. Chương 3: Tính Toán và Thiết Kế BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 3
  8. CHƯƠNG 1. TỔNG QUAN Chương này trình bày về tổng quan sơ đồ khối hệ thống và sơ đồ khối của module đo nhịp tim, tính toán chọn linh kiện cho module đo nhịp tim, lựa chọn hệ điều hành và cài đặt hệ điều hành cho Raspberry Pi. Chương 4: Thi Công Hệ Thống Chương này trình bày lưu đồ giải thuật, dữ liệu lấy được từ module nhịp lên raspberry Pi sẽ được lưu trữ trên MySQL và sau đó cập nhật lên web, cuối cùng là quá trình thi công, lắp ráp và kiểm tra mạch. Chương 5: Kết Quả, Nhận Xét và Đánh Giá Chương này trình bày về kết quả giám sát nhịp tim từ xa, từ đó đưa ra các đánh giá, nhận xét. Chương 6: Kết Luận và Hướng Phát Triển Chương này nêu lên kết luận chung về những gì đã thực hiện đồng thời đúc kết lại ưu - khuyết điểm để từ đó đưa ra hướng phát triển cho đề tài. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 4
  9. CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Chương 2. CƠ SỞ LÝ THUYẾT 2.1 TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH YTHONP 2.1.1 Khái niệm Python là một ngôn ngữ lập trình thông dịch do Guido van Rossum tạo ra năm 1990. Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động, do vậy nó tương tự như Perl, Ruby, Scheme, Smalltalk, và Tcl. Python được phát triển trong một dự án mã mở, do tổ chức phi lợi nhuận Python Software Foundation quản lý. Python là một ngôn ngữ dễ học, và mạnh mẽ. Nó có những cấu trúc dữ liệu cấp cao hiệu quả và hướng lập trình đối tượng đơn giản. Cú pháp tao nhã và kiểu dữ liệu động của Python, cùng với bản chất thông dịch biến nó thành một ngôn ngữ bậc nhất để viết kịch bản (scripting) và phát triển ứng dụng nhanh trong nhiều lĩnh vực và trên hầu hết mọi hệ thống. Trình thông dịch Python và bộ thư viện chuẩn đầy đủ được cung cấp miễn phí ở dạng nguồn hoặc nhị phân cho mọi hệ thống chính từ trang chủ Python. [10] 2.1.2 Đăc điểm ngôn ngữ lập trình Python Python được thiết kế để trở thành một ngôn ngữ dễ học, mã nguồn dễ đọc, bố cục trực quan, dễ hiểu. Python tăng cường sử dụng từ khóa tiếng Anh, hạn chế các kí hiệu và cấu trúc, cú pháp so với các ngôn ngữ khác. Python là một ngôn ngữ phân biệt kiểu chữ hoa và chữ thường. Như C/C++, các từ khóa của Python đều ở dạng chữ thường. Trong các ngôn ngữ khác, khối lệnh thường được đánh dấu bằng cặp kí hiệu hoặc từ khóa. Ví dụ, trong C/C++, cặp ngoặc nhọn { } được dùng để bao bọc một khối lệnh. Python, trái lại, có một cách rất đặc biệt để tạo khối lệnh, đó là thụt các câu lệnh trong khối vào sâu hơn (về bên phải) so với các câu lệnh của khối lệnh chứa nó. Python được viết từ những ngôn ngữ khác, tạo ra những bản hiện thực khác nhau. Bản hiện thực Python chính, còn gọi là Cpython, được viết bằng C, và được phân phối kèm một thư viện chuẩn lớn được viết hỗn hợp bằng C và Python. Cpython có thể chạy trên nhiều nền và khả chuyển trên nhiều nền khác. Dưới đây là các nền trên đó, Cpython có thể chạy. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 5
  10. CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Ngoài Cpython, còn có hai hiện thực Python khác: Jython cho môi trường Java và IronPython cho môi trường .NET và Mono. Python là một ngôn ngữ lập trình dạng thông dịch, do đó có ưu điểm tiết kiệm thời gian phát triển ứng dụng vì không cần phải thực hiện biên dịch và liên kết. Trình thông dịch có thể được sử dụng để chạy file script, hoặc cũng có thể được sử dụng theo cách tương tác. Ở chế độ tương tác, trình thông dịch Python tương tự shell của các hệ điều hành họ Unix, tại đó, ta có thể nhập vào từng biểu thức rồi gõ Enter, và kết quả thực thi sẽ được hiển thị ngay lập tức. Đặc điểm này rất hữu ích cho người mới học, giúp họ nghiên cứu tính năng của ngôn ngữ, hoặc để các lập trình viên chạy thử mã lệnh trong suốt quá trình phát triển phần mềm. Ngoài ra, cũng có thể tận dụng đặc điểm này để thực hiện các phép tính như với máy tính bỏ túi. Mỗi câu lệnh trong Python nằm trên một dòng mã nguồn. Ta không cần phải kết thúc câu lệnh bằng bất kì kí tự gì. Cũng như các ngôn ngữ khác, Python cũng có các cấu trúc điều khiển. Chúng bao gồm: Cấu trúc rẽ nhánh: cấu trúc if (có thể sử dụng thêm elif hoặc else), dùng để thực thi có điều kiện một khối mã cụ thể. Cấu trúc lặp, bao gồm: Lệnh while: chạy một khối mã cụ thể cho đến khi điều kiện lặp có giá trị false. Vòng lặp for: lặp qua từng phần tử của một dãy, mỗi phần tử sẽ được đưa vào biến cục bộ để sử dụng với khối mã trong vòng lặp. Python cũng có từ khóa class dùng để khai báo lớp (sử dụng trong lập trình hướng đối tượng) và lệnh def dùng để định nghĩa hàm. Python cho phép chia chương trình thành các module để có thể sử dụng lại trong các chương trình khác. Nó cũng cung cấp sẵn một tập hợp các modules chuẩn mà lập trình viên có thể sử dụng lại trong chương trình của họ. Các module này cung cấp nhiều chức năng hữu ích, như các hàm truy xuất tập tin, các lời gọi hệ thống, trợ giúp lập trình mạng (socket). [10] 2.1.3 Cấu trúc ngôn ngữ python Trong các ngôn ngữ khác, khối lệnh thường được đánh dấu bằng cặp kí hiệu hoặc từ khóa. Ví dụ, trong C/C++, cặp ngoặc nhọn { } được dùng để bao bọc một khối lệnh. Python, trái lại, có một cách rất đặc biệt để tạo khối lệnh, đó là thụt các câu lệnh trong khối vào sâu hơn (về bên phải) so với các câu lệnh của khối lệnh cha chứa nó. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 6
  11. CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Ví dụ, giả sử có đoạn mã sau trong C/C++ 1 #include 2 // 3 delta = b * b – 4 * a * c; 4 if (delta > 0) 5 { 6 // Khối lệnh mới bắt đầu từ kí tự { đến } 7 x1 = (- b + sqrt(delta)) / (2 * a); 8 x2 = (- b - sqrt(delta)) / (2 * a); 9 printf("Phuong trinh co hai nghiem phan biet:\n"); 10 printf("x1 = %f; x2 = %f", x1, x2); 11 } Đoạn mã trên có thể được viết lại bằng Python như sau: 1 import math 2 # 3 delta = b * b – 4 * a * c 4 if delta > 0: 5 # Khối lệnh mới, thụt vào đầu dòng 6 x1 = (- b + math.sqrt(delta)) / (2 * a) 7 x2 = (- b – math.sqrt(delta)) / (2 * a) 8 print "Phuong trinh co hai nghiem phan biet:" 9 print "x1 = ", x1, "; ", "x2 = ", x2 Ta có thể sử dụng dấu tab hoặc khoảng trống để thụt các câu lệnh vào. [10] 2.2 TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH WEB 2.2.1 Tìm hiểu về Hyper Text Markup Language (HTML) * Định nghĩa HTML là ngôn ngữ đánh dấu siêu văn bản do Tim Berner Lee phát minh và được W3C (World Wide Web Consortium) đưa thành chuẩn năm 1994. HTML là một file văn bản có phần mở rộng là .html. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 7
  12. CHƯƠNG 2. CƠ SỞ LÝ THUYẾT HTML là một ngôn ngữ đánh dấu được thiết kế ra để tạo nên các trang web với các mẩu thông tin được trình bày trên World Wide Web. HTML không phải là ngôn ngữ lập trình, nó là ngôn ngữ trình bày. [12] 2.2.2 Các tag cơ bản trong một file html * Cặp thẻ - Tag là tag cho trình duyệt biết đây là văn bản HTML. - Tag là yếu tố ngoài cùng trong các văn bản HTML và XHTML, các tag còn được gọi là các phần tử gốc. - Tag đánh dấu kết thúc 1 văn bản HTML. [12] * Cặp thẻ - Cặp thẻ khai báo thông tin cho trang HTML, những thông tin đó bao gồm: , , và - Cặp thẻ cho biết nội dung của một tag trên thanh tab bar của trình duyệt web. - Tag cung cấp thông tin dữ liệu về văn bản HTML, thông tin dữ liệu sẽ không được hiển thị trên trình duyệt. - Tag xác định mối quan hệ giữa một tài liệu HTML và các tài nguyên bên ngoài như CSS hay Javascript. - Tag sử dụng chung cho javascript: thao tác hình ảnh, check form, thay đổi tự động nội dung. [12] * Cặp thẻ - Tag định nghĩa phần thân của văn bản HTML. * Ví dụ cấu trúc của ngôn ngữ HTML - - - - This is a title - - - Hello world! - BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 8
  13. CHƯƠNG 2. CƠ SỞ LÝ THUYẾT - 2.2.3 Thiết kế 1 file html * Mục tiêu - Xác định những đối tượng trên trang web cần thiết kế (biểu đồ, hình ảnh, các đoạn text và các hiệu ứng). - Tìm hiểu các thẻ tag để phục vụ cho việc tạo trang web. - Viết 1 file HTML hoàn chỉnh. Hình 2.1 Giao hiện trang web 2.2.4 Apache Lập trình Web thì chúng ta cần phải có 1 Web server trên máy để chạy thử trang PHP. Apache hay là chương trình máy chủ HTTP là một chương trình dành cho máy chủ đối thoại qua giao thức HTTP. Apache chạy trên các hệ điều hành tương tự như Unix, Microsoft Windows, Novell Netware và các hệ điều hành khác. Apache đóng một vai trò quan trọng trong quá trình phát triển của mạng web thế giới (World Wide Web). Apache được phát triển và duy trì bởi một cộng đồng mã nguồn mở dưới sự bảo trợ của Apache Software Foundation. Apache được phát hành với giấy phép Apache BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 9
  14. CHƯƠNG 2. CƠ SỞ LÝ THUYẾT License và là một phần mềm tự do và miễn phí. Mặc dù miễn phí và mã nguồn mở nhưng sức mạnh và tính ổn định của Apache được đánh giá ở tầm cỡ thương mại. Đến nay đây vẫn là lựa chọn tốt nhất cho giải pháp máy chủ Web. Các ưu điểm của mã nguồn mở: Miễn phí: các lập trình viên có thể dựa trên mã nguồn sẵn có để phát triển thêm, vì phần mềm này không có bản quyền nên mọi người có thể tự do sử dụng. Dựa trên nền chữ thập (Cross Flatform) và kỹ thuật trung lập (Technology Neutral): không có nền tảng cụ thể và không phụ thuộc vào bất cứ kỹ thuật cá nhân nào. Không bị giới hạn bởi những phần mềm khác Tính đa dạng: nó được phát triển bởi nhiều người thuộc nhiều nền văn hóa và nhiều lĩnh vực phong phú. Hình 2.2 Một số thông tin về Apache Công việc chính của Apache là phân tích bất kỳ những file yêu cầu của trình duyệt web nào và đưa ra những kết quả chính xác một cách nhanh nhất. Ngoài ra Apache còn có thể kết hợp với PHP và MySQL để tạo nên một Web server hoàn chỉnh với đầy đủ các tính năng. [14] 2.2.5 Ngôn ngữ PHP PHP (Hypertext Preprocessor) là một ngôn ngữ lập trình chủ yếu được dùng để phát triển các ứng dụng viết cho web server, mã nguồn mở. Nó có thể dễ dàng nhúng vào trong HTML. Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 10
  15. CHƯƠNG 2. CƠ SỞ LÝ THUYẾT với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới. [15]  Cú pháp PHP chỉ phân tích các đoạn mã nằm trong những thẻ của nó. Lệnh PHP có thể đặt ở bất cứ đâu. Cú pháp thường dùng nhất là , tương ứng với dấu mở và đóng. Các cú pháp và cũng đôi khi được sử dụng. Cú pháp dùng để thông báo bắt đầu đoạn mã PHP là . Mục đích của những thẻ này là ngăn cách mã PHP với những đoạn mã thuộc ngôn ngữ khác, gồm cả HTML. Mọi đoạn mã bên ngoài các dấu này đều bị hệ thống phân tích bỏ qua và được xuất ra một cách trực tiếp. Các biến được xác định bằng cách thêm vào trước một dấu đô la ($) và không cần xác định trước kiểu dữ liệu. PHP coi xuống dòng như một khoảng trắng theo kiểu như một ngôn ngữ dạng tự do (free-form language) (trừ khi nó nằm trong trích dẫn xâu), và các phát biểu được kết thúc bởi một dấu chấm phẩy (;). PHP có ba kiểu cú pháp chú thích: /* */ cho phép một đoạn chú thích tùy ý, trong khi đó // và # cho phép chú thích trong phạm vi một dòng. Phát biểu echo là một trong những lệnh của PHP cho phép xuất văn bản (vd. ra một trình duyệt web). Về cú pháp các từ khóa và ngôn ngữ, PHP tương tự hầu hết các ngôn ngữ lập trình bậc cao có cú pháp kiểu C. Các phát biểu điều kiện IF (Nếu), vòng lặp For và While, các hàm trả về đều tương tự cú pháp của các ngôn ngữ như C, C++, Java và Perl. [15]  Ví dụ về cấu trúc ngôn ngữ PHP My first PHP page <?php echo "Hello World!"; // This is a single-line comment # This is also a single-line comment /* This is a multiple-lines comment BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 11
  16. CHƯƠNG 2. CƠ SỞ LÝ THUYẾT */ ?> 2.2.6 Ngôn ngữ SQL SQL (Structured Query Language) là một loại ngôn ngữ tiêu chuẩn phổ biến để truy xuất cơ sở dữ liệu. Ngôn ngữ này phát triển vượt xa so với mục đích ban đầu là để phục vụ các hệ quản trị cơ sở dữ liệu đối tượng quan hệ. Nó là một ngôn ngữ truy vấn cấu trúc. Các thao tác cập nhật dữ liệu, xóa dữ liệu và thêm dữ liệu không ảnh hưởng đến cấu trúc hệ thống. Do sự phát triển nhanh chóng của nhu cầu xây dựng những CSDL lớn theo mô hình khách/chủ (Client/Server), nhiều phần mềm sử dụng ngôn ngữ SQL đã ra đời mà điển hình là MS SQL Server, Oracle, Sybase Trong mô hình khách/chủ, toàn bộ CSDL được tập trung lưu trữ trên máy chủ (Server), mọi thao tác xử lý dữ liệu được thực hiện trên máy chủ bằng các lệnh SQL. Máy trạm (Client) chỉ dùng để cập nhật dữ liệu cho máy chủ hoặc lấy thông tin từ máy chủ. Trên lĩnh vực đang phát triển hiện nay là Internet, ngôn ngữ SQL lại càng đóng vai trò quan trọng hơn. Nó được sử dụng để nhanh chóng tạo ra các trang Web động (Dynamic Web Page). Trang Web động thường có nội dung được lấy ra từ CSDL. SQL có thể được sử dụng như một chất keo kết dính giữa CSDL và trang Web. Khi người dùng yêu cầu, SQL sẽ thực hiện việc truy cập thông tin trong CSDL trên máy chủ và hiển thị kết quả trên trang Web. Và SQL cũng là công cụ để cập nhật thông tin cho CSDL đó. Đối tượng của SQL là các bảng dữ liệu và các bảng này bao gồm nhiều cột và hàng. Cột được gọi là trường và hàng là bản ghi của bảng. Cột với tên gọi và kiểu dữ liệu xác định tạo nên cấu trúc của bảng. Khi bảng được tổ chức có hệ thống cho một mục đích, công việc nào đó ta có một CSDL. [14]  Một số lệnh truy vấn cơ bản của SQL SELECT - trích xuất dữ liệu từ cơ sở dữ liệu UPDATE - cập nhật dữ liệu trong cơ sở dữ liệu DELETE - xóa dữ liệu từ cơ sở dữ liệu BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 12
  17. CHƯƠNG 2. CƠ SỞ LÝ THUYẾT INSERT INTO - thêm dữ liệu mới vào cơ sở dữ liệu CREATE DATABASE - tạo một cơ sở dữ liệu mới ALTER DATABASE - sửa đổi cơ sở dữ liệu CREATE TABLE - tạo một bảng mới ALTER TABLE - sửa đổi bảng DROP TABLE - xóa bảng hoàn toàn [13] 2.2.7 Ngôn ngữ JavaScript JavaScript là ngôn ngữ lập trình của HTML và trang web. Nó được tạo ra lần đầu tiên bởi Brendan Eich tại công ty Netscape vào năm 1995 - được đặt tên là Mocha trong quá trình phát triển, phát hành phiên bản beta với tên là LiveScript và cuối cùng được đặt tên là JavaScript để lợi dụng sự phổ biến của Java (một ngôn ngữ lập trình khác) vì lý do marketing. Hiện tại ngôn ngữ JavaScipt được sử dụng khá phổ biến trên thế giới. Ngôn ngữ này được dùng rộng rãi cho các trang web, nhưng cũng được dùng để tạo khả năng viết script sử dụng các đối tượng nằm sẵn trong các ứng dụng. Trên thực tế, JavaScript không được phát triển dựa từ Java. Do đó JavaScript chỉ dựa trên các cách đặt tên của Java. Java Script gồm 2 mảng là client-server thực hiện lệnh trên máy của end-user và web-server. JavaScript là một ngôn ngữ lập trình dựa trên nguyên mẫu với cú pháp phát triển từ C. Giống như C, JavaScript có khái niệm từ khóa, do đó, JavaScript gần như không thể được mở rộng. Ngày nay một thư viện của javascript được sử dụng rộng rãi đó là jquery. JQuery là một file .js thông thường được xây dựng từ Javascript nhằm giúp lập trình viên xây dựng những chức năng có sử dụng Javascript trở nên dễ dàng hơn. JQuery được tích hợp nhiều module khác nhau từ module hiệu ứng cho đến module truy vấn selector. JQuery được sử dụng đến 99% trên tổng số website trên thế giới (trừ những website sử dụng JS Framework) Các module chính của jQuery bao gồm: Ajax - xử lý Ajax Atributes - Xử lý các thuộc tính của đối tượng HTML BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 13
  18. CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Effect - xử lý hiệu ứng Event - xử lý sự kiện Form - xử lý sự kiện liên quan tới form DOM - xử lý Data Object Model Selector - xử lý luồng lách giữa các đối tượng HTML [14]  Ví dụ cấu trúc ngôn ngữ Javascript Câu lệnh JavaScript được đặt trong thẻ , . Câu lệnh ghi chú đươc viết sau dấu ‘//’. Biến được khai báo theo lệnh var. The var Keyword Creates a Variable // var z = 6; z will not be executed var x = 5 + 6; var y = x * 10; document.getElementById("demo").innerHTML = y; 2.3 WEB SERVER  Tổng quan về web server Một trang web là một tập hợp các trang web đó là tập tin kỹ thuật số thường được viết bằng HyperText Markup Language (HTML). Đối với một trang web có sẵn cho tất cả mọi người trên thế giới ở mọi thời điểm, cần phải được lưu trữ hoặc "hosted" trên một máy tính được kết nối với Internet 24/7/365. Máy chủ Web (Web Server) là máy tính mà trên đó cài đặt phần mềm phục vụ web, đôi khi người ta cũng gọi chính phần mềm đó là web server. Tất cả các web BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 14
  19. CHƯƠNG 2. CƠ SỞ LÝ THUYẾT server đều hiểu và chạy được các file *.htm và *.html. Tuy nhiên mỗi web server lại phục vụ một số kiểu file chuyên biệt chẳng hạn như llS của Microsoft dành cho *.asp, *.aspx; Apache dành cho *.php; Sun Java system web server của SUN dành cho *.jsp. Máy Web Server là máy chủ chứa những website đã được thiết kế cùng với những thông tin liên quan khác. (Các mã Script, các chương trình, và các file Multimedia). Web Server có khả năng gửi đến máy khách những trang Web thông qua môi trường Internet (hoặc Intranet) qua giao thức HTTP – giao thức được thiết kế để gửi các file đến trình duyệt Web (Web Browser), và các giao thức khác. Tất cả các Web Server đều có một địa chỉ IP (IP Address) hoặc cũng có thể có một Domain Name. Giả sử khi bạn đánh vào thanh Address trên trình duyệt của bạn một dòng sau đó gõ phím Enter bạn sẽ gửi một yêu cầu đến một Server có Domain Name là www.abc.com. Server này sẽ tìm trang Web có tên là index.htm rồi gửi nó đến trình duyệt của bạn. Web server chia ra làm 2 phần chính: Phần cứng (Hardware) và Phần mềm (Software) Bất kỳ một máy tính nào cũng có thể trở thành một Web Server bởi việc cài đặt lên nó một chương trình phần mềm Server Software và sau đó kết nối vào Internet. Khi máy tính của bạn kết nối đến một Web Server và gửi đến yêu cầu truy cập các thông tin từ một trang Web nào đó, Web Server Software sẽ nhận yêu cầu và gửi lại cho bạn những thông tin mà bạn mong muốn. [14] 2.4 TỔNG QUAN VỀ TÍN HIỆU ĐIỆN TIM (ECG) 2.4.1 Sơ lược về tim và nhịp tim  Cấu tạo tim Tim được ví như hai cái bơm nằm song song giữa lồng ngực. Mỗi bơm có nhiệm vụ khác nhau nhưng hoạt động nhịp nhàng, phối hợp vì được cùng một trung tâm điều khiển. Hai ngăn trên để tiếp nhận máu có tên là tâm nhĩ, hai ngăn dưới, tâm thất đẩy máu ra ngoài tim. Tâm nhĩ nhỏ, không cần mạnh lắm vì chỉ cần bơm máu xuống tâm thất, rất gần. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 15
  20. CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Tâm thất lớn hơn, mạnh hơn, đặc biệt là thất trái, bơm máu xa tới cả chục ngàn cây số động mạch lớn nhỏ khắp cơ thể. Bốn van một chiều nằm ở cửa vào (van nhĩ thất) và cửa ra (van bán nguyệt) của mỗi tâm thất. Van nhĩ-thất phải, còn gọi là van ba lá, mở ra để máu chảy từ nhĩ phải xuống thất phải. Van khép lại khi thất phải co bóp, đẩy máu lên động mạch phổi, ngăn không cho máu dội ngược lên trên. Van nhĩ-thất trái còn gọi là van hai lá mở khi máu từ nhĩ trái xuống thất trái; khép kín khi máu từ thất phải được đưa vào động mạch chủ. Các van này có thể bị hở hoặc chai cứng, gây trở ngại cho sự lưu thông của máu. Hai van động mạch phổi và động mạch chủ nằm ở gốc các động mạch này, ngăn không cho máu trở lại tim, sau khi đã được bơm ra. Hình 2.3 Cấu tạo tim. [1] 2.4.2 Nhịp tim Tim co bóp do một nhóm tế bào đặc biệt nằm ở vách sau của tâm nhĩ phải khởi xướng và quyết định số nhịp đập của tim. Ðó là nút xoang nhĩ (sino-atrial node), một máy điều hòa nhịp tim (pacemaker) tự nhiên. Nút phát ra những xung lực điện, được những sợi cơ tim đặc biệt dẫn truyền tới kích thích các ngăn của tim co bóp. Âm thanh co bóp được diễn tả bằng hai âm tiết “lubb” và “dupp”, nghe được khi ta đặt tai vào ngực để nghe. Âm “lubb” trầm, dài hơn, khi tâm thất bắt đầu bóp và các van nhĩ thất khép lại. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 16
  21. CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Âm “dupp” thanh nhưng ngắn hơn khi tâm thất bắt đầu thư giãn và các van bán nguyệt khép lại. Mạch (pulse) là do sóng áp suất chuyển tới động mạch mỗi khi trái tim co bóp, đẩy máu ra ngoài. Mạch được nhận ra dễ dàng trên các động mạch nổi gần mặt da như động mạch quay (radial artery) ở cổ tay, động mạch cảnh (carotid artery) ở cổ, động mạch ở cổ chân, ở bẹn, ở thái dương Mạch được tính theo số lần tim đập trong một phút và có thể đếm dễ dàng bằng cách đặt đầu ngón tay giữa và trỏ lên một động mạch nổi trên da. Ngón tay sẽ cảm thấy tiếng chuyển động nhè nhẹ của sóng áp lực trên mạch máu đó. Mỗi sóng tương ứng với một lần tim bóp. Khi bắt mạch, nên thoải mái, thư giãn, vì nếu hồi hộp, lo lắng, nhịp tim thường nhanh hơn một chút. Ðếm mạch trong 1 phút hoặc trong 30 giây rồi nhân đôi để có số nhịp tim. Nhịp tim bình thường tùy thuộc tuổi tác, tình trạng sức khỏe, thời gian trong ngày. Nhịp tim có thể thay đổi theo nhu cầu hấp thụ Oxi và bài tiết CO2 của cơ thể. Buổi sáng trước khi thức giấc, nhịp thấp nhất. Khi hít thở vào, nhịp hơi nhanh hơn và khi thở ra, nhịp hơi chậm. Nhịp phải đều đặn, có nghĩa là thời gian giữa hai nhịp phải bằng nhau. Bảng 2.1 Nhịp tim trung bình trong 1 phút của một số đối tượng [1] Đối tượng Nhịp tim trung bình trong 1 phút (nhịp/phút) Trẻ em dưới 1 tuổi 100  160 Trẻ từ 1 đến 10 tuổi 70  120 Người từ 10 tuổi trở lên 60  120 Vận động viên thể thao 40  60 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 17
  22. S K L 0 0 2 1 5 4