Web là từ gọi tắt của “World Wide Web”, là một mạng lưới toàn cầu giúp mọi người có thể truy cập và tải xuống thông tin qua các thiết bị kết nối với mạng internet. Các trang Web được định dạng bằng HTML cho phép các link nhúng có chứa URL và cho phép điều hướng đến các tài nguyên web khác. Trang web được lưu trữ trong các máy tính đang chạy chương trình được gọi là “máy chủ web”, xử lý các yêu cầu (request) từ các client thông qua giao thưc HTML và một số giao thưc liên quan khác. Có nhiều ngôn ngữ để xây dựng các trang web như Javascript, Python, C#,… nhưng để kết nối App điện thoại và DBMS thì PHP được sử dụng phổ biến nhất. Đây là ngôn ngữ lập trình mã nguồn mở và mã PHP có thể thực thi trên server để tạo ra mã HTML và xuất ra trình duyệt web theo yêu cầu của người sử dụng. PHP cho phép xây dựng ứng dụng web trên mạng internet tương tác với mọi cơ sở dữ liệu như: MySQL, Oracle,…
Bên cạnh đó, PHP đượ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 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 phổ biến nhất thế giới [25].
2.9 GIỚI THIỆU PHẦN CỨNG 2.9.1 Giới thiệu 2.9.1 Giới thiệu
Từ những phần lý thuyết được tìm hiểu ở trên, nhóm chúng em quyết định lựa chọn phần cứng để thực hiện đề tài này với phần Vi điều khiển là LUA ESP8266 CP2102 Nodemcu WIFI Module, phần cảm biến để thu tín hiệu là ADS1292R ECG Module và một màn hình SSD1306 OLED để hiển thị.
2.9.2 LUA ESP8266 CP2102 Nodemcu WIFI Module a. Mô tả a. Mô tả
Hình 2.11: Module Wifi LUA ESP8266 CP2102 Nodemcu
Hình 2.11 chính là Module Wifi ESP8266, đây là một mạch vi điều khiển có thể giúp ta điều khiển các thiết bị điện tử. Thêm vào đó nó được tích hợp wi-fi 2.4GHz có thể dùng cho lập trình [26]. Kít ESP8266 được tích hợp sẵn mạch nạp sử dụng chíp CP2102 trên board và một lõi vi xử lý nên có thể trực tiếp lập trình cho ESP8266 mà không cần thêm bất kì con vi xử lý nào nữa [27].
Ở hệ thống này, ESP8266 kết nối với một module cảm biến thu điện tim dưới dạng tín hiệu analog. Nhờ có 1 chân analog duy nhất mà ESP8266 có thể nhận được dữ liệu. Sau khi thu thập dữ liệu và xử lý, ESP8266 thực hiện 2 nhiệm vụ độc lập với nhau là: gửi dữ liệu lên web server để lưu trữ và gửi dữ liệu lên điện thoại để hiển thị trực tiếp tín hiệu đo được.
b. Thông số kỹ thuật
• WiFi: 2.4 GHz hỗ trợ chuẩn 802.11 b/g/n.
• Điện áp hoạt động: 3.3V.
• Điện áp vào: 5V thông qua cổng USB.
• Số chân I/O: 11 (tất cả các chân I/O đều có Interrupt/ PWM/ I2C/ One- wire, trừ chân D0).
• Số chân Analog Input: 1 (điện áp vào tối đa 3.3V).
• Bộ nhớ Flash: 4MB.
• Giao tiếp: Cable Micro USB (tương đương cáp sạc điện thoại).
• Hỗ trợ bảo mật: WPA/WPA2.
• Tích hợp giao thức: TCP/IP.
2.9.3 ADS1292R ECG Module Sensor a. Mô tả a. Mô tả
Hình 2.12: Mô-đun cảm biến ADS1292R
Hình 2.12 chính là Mô-đun ADS1292 là một mô-đun cảm biến với 2 kênh chuyển đổi A/D 24 bit có chức năng là hỗ trợ đo các tín hiệu ECG và hô hấp. Bên cạnh đó, mô-đun này được bổ sung chân SPI mới giúp tương thích với các thiết bị Arduino mới hơn và bao gồm đầu nối Arduino Yun và Due.
Tín hiệu ECG được thu thập thông qua một dây cáp kết nối đi kèm với một đầu là jack 3.5mm tròn và đầu bên kia là các nút để kết nối các điện cực ECG. Nó cũng chấp nhận 2 điện cực ECG và một điện cực DRL để giảm nhiễu chế độ chung.
Ngoài ra, mô-đun này cũng có thể đo hoạt động hô hấp bằng cách sử dụng 2 điện cực giống nhau dựa trên phương pháp chụp phổi trở kháng để đo hô hấp thông qua các thay đổi về trở kháng của ngực gây ra trong quá trình hô hấp [28].
b. Thông số kỹ thuật
• Điện áp hoạt động: 3.3V.
• Dòng điện vào (trừ chân cung cấp): ± 10 (mA).
• Dòng điện vào tạm thời: ± 100 (mA).
• Dòng điện vào liên tục: ± 10 (mA).
• Nhiệt độ hoạt động: -40 đến +85 (ºC).
• Phạm vi nhiệt độ lưu trữ: +60 đến +150 (ºC).
• Tốc độ dữ liệu: 125 SPS đến 8 kSPS.
2.9.4 Monochrome 7-pin SSD1306 0.96” OLED display a. Mô tả a. Mô tả
Hình 2.13: Màn hình Oled
Hình 2.13 chính là màn hình Oled nhóm sử dụng cho đề tài này. Loại màn hình này có thể hoạt động trên ở chế độ SPI (chế độ mặc định) và I2C. Bên cạnh đó, module hiển thị này có các đặc điểm như: độ sáng cao, tự phát xạ, tỷ lệ tương phản cao, đường viền mỏng, góc nhìn và phạm vi hoạt động nhiệt độ rộng, tiêu thụ điện năng thấp.
b. Thông số kỹ thuật
• Kích thước đường chéo: 0.96 inch.
• Kích thước hiển thị: 21.7 x 10.8mm.
• IC: SH1106.
• Độ phân giải: 128 x 64pixels.
• Giao tiếp: SPI và I2C.
• Cung cấp điện áp: 3V-5V.
• Nhiệt độ hoạt động: -30 đến +70 ºC.
2.10 GIỚI THIỆU PHẦN MỀM LẬP TRÌNH
Sau khi tìm hiểu và lựa chọn phần cứng, đối với Vi điều khiển thì phần mềm hỗ trợ nhóm chọn là “Aruino IDE”. Còn về phần mềm để lập trình ứng dụng Android thì có khá nhiều phần mềm hỗ trợ, và nhóm quyết định lựa chọn “Mit App Inventor”
vì nó khá dễ tìm hiểu cũng như sử dụng đối với người mới. Ngoài ra còn có một số phần mềm hỗ trợ khác như: phần mềm hỗ trợ lập trình cho Server “Subline Text”, phần mềm lập trình và tạo Database “PhpMyAdmin”. Và chi tiết về các phần mềm lập trình này sẽ được giới thiệu chi tiết hơn ở các chương sau.
Chương 3. TÍNH TOÁN VÀ THIẾT KẾ
3.1. GIỚI THIỆU
Hệ thống thu thập và hiển thị tín hiệu ECG lên điện thoại có thể đo được dữ liệu điện tim từ 3 điện cực trên cơ thể. Dữ liệu thu được gửi lên server để hiển thị trên điện thoại. Hơn nữa dữ liệu được lưu trên Database server để khi cần có thể xem lại. Những yêu cầu đặt ra cho hệ thống cần được tính toán và thiết kế, từ đó xây dựng phần mềm để hệ thống được hoạt động.
3.2. TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG
Để đáp ứng được những yêu cầu trên đặt ra cho hệ thống, phần tính toán và thiết kế phần cứng là điều quan trọng. Một hệ thống muốn hoạt động ổn định thì phần cứng phải được tính toán chặt chẽ. Dưới đây là phần tính toán thiết kế phần cứng của hệ thống được thể hiện qua các phần: Thiết kế sơ đồ khối, tính toán và thiết kế các khối, thiết kế sơ đồ nguyên lý toàn mạch.
Hình 3.1: Sơ đồ khối hệ thống
3.2.1. Thiết kế sơ đồ khối hệ thống
Một hệ thống đáp ứng được yêu cầu của đề tài có các khối như trên sơ đồ hình 3.1. Sơ đồ bao gồm các khối như: khối cảm biến, khối xử lý, khối hiển thị, khối truyền dữ liệu trực tuyến và lưu trữ, khối nguồn. Khối cảm biến lấy tín hiệu từ cơ thể con người chuyển thành tín hiệu điện. Tín hiệu điện này được chuyển đồi tương sự sang số để dễ dàng thực hiện xử lý. Khối xử lý nhận tín hiệu số từ khối cảm biến, xử lý chúng và gửi các tín hiệu đó lên khối hiển thị và khối lưu trữ. Tín hiệu được lưu trữ tại khối lưu trữ, khi cần chúng sẽ được truy xuất ra khối hiển thị. Cuối cùng là khối
nguồn, khối này cung cấp năng lượng cho toàn bộ hệ thống hoạt động. Kết hợp các khối này để được một phần cứng hệ thống hoàn chỉnh.
3.2.2. Tính toán và thiết kế mạch
Để đạt được một hệ thống hoàn chỉnh, trước tiên hết là tính toán và thiết kế phần cứng. Phần cứng tốt là nền tảng để phần mềm hoạt động tốt. Các khối được thiết kế phải phù hợp và tương thích với nhau thì hệ thống mới hoạt động ổn định. Dưới đây là thiết kế và tính toán các thông số của các khối hệ thống này.
a. Thiết kế khối cảm biến
Như đã được giới thiệu ở phần tổng quan và sơ sở lý thuyết. Điện tim là một loại xung điện do tim tự phát. Xung điện này giúp tim co bóp và nó cũng lan truyền khắp cơ thể. Tuỳ vào mỗi vị trí và đặc điểm khác nhau của mỗi phần cơ thể mà tại đó ta thu được những tín hiệu điện tim khác nhau. Tín hiệu sau khi đo phải giảm nhiễu, khuyếch đại, chuyển đổi tương tự sang số, và chuyển sang bộ xử lý. Hình 3.2 là sơ đồ khối của cảm biến điện tim ADS1292R. IC cảm biến này tích hợp đủ các yêu cầu phần cứng để thu về tín hiệu điện tim của hệ thống.
Hình 3.2: Sơ đồ khối ADS1292R
• Mạch thu tín hiệu
Tín hiệu được thu vào là sự sai lệch điện áp khi tim hoạt động được đo tại các điểm cực đặt trên cơ thể. Hệ thống này đo đạt tín hiệu điện tim bằng ba điện cực.
Trong đó có 2 điện cực để lấy hiệu điện thế và một điện cực để làm điện thế tham chiếu.
Hình 3.3: Sơ đồ mạch khuyếch đại đo
Để tính toán được hiệu điện thế giữa hai cực, hệ thống dùng mạch khuyếch đại đo (Instrumentation Amplifier) như hình 3.3. Điện áp đầu ra Vout chính là tín hiệu điện tim cần tìm. Để dễ dàng tính toán, mạch trên hình 3.3 sẽ được chia thành hai phần, phần I sẽ là hai op-amp đệm ở ngõ vào, phần II sẽ là op-amp với vai trò mạch vi sai. Vout ở phần II sẽ được tính theo công thức (3.1).
( 1 2) 4 5 o o out V V R R V = − (Volt) (3.1)
Trong đó quy ước Vo1 và Vo2 lần lượt là ngõ ra của hai op-amp đệm ở phần I, điện trở R3 = R2. Vì hai mạch op-amp ở ngõ vào là khuyếch đại đệm không đảo, nên ta có 2 ngõ vào âm cũng lần lượt là V1 và V2 tương ứng với hai ngõ vào dương. Áp dụng định luật Ohm ta tính được dòng i chạy qua điện trở R1. Tương tự ta cũng tính dòng i qua điện trở R1, R2, R3. Từ đó ta sẽ tính được (Vo1-Vo2) theo công thức (3.2) (3.3) dưới đây. 3 2 1 2 1 1 2 1 R R R V V R v v i o o + + − = − = (3.2) ( ) ( ) ( 1 2) 1 2 2 1 1 3 2 1 2 1 2 1 V V R R V V R R R R V Vo o − + = − + + = − (3.3)
Từ công thức (3.1) và (3.3) ta có thể tính được điện áp ngõ ra Vout như công thức (3.4) và hệ số khuyếch đại tín hiệu A được tính như công thức (3.5).
( 1 2) 4 5 1 2 2 1 V V R R R R Vout − + = (3.4) 4 5 1 2 2 1 R R R R A + = (3.5)
Để dễ dàng thay đổi hệ số khuyếch đại, mạch sẽ dùng R1 có thể thay đổi được để tăng hoặc giảm hệ số.
Hình 3.4: Sơ đồ mạch khuyếch đại vi sai trong ADS1292R
Hiện nay có rất nhiều IC có chức năng khuyếch đại đo, tuy nhiên để phù hợp với tín hiệu điện tim hệ thống sẽ sử dụng IC ADS1292R. Mạch khuyếch đại đo của IC này như hình 3.4 có thể thay đổi được thông số khuyếch đại bằng cách lập trình.
• Lọc nhiễu tín hiệu và phát hiện điện cực
Tín hiệu điện tim nhận từ cơ thể con người có biên độ rất nhỏ. Bên cạnh đó còn có các tín hiệu khác như điện cơ, nhiễu điện lưới ảnh hưởng tới quá trình thu điện tim. Để hạn chế đi những yếu tố ảnh hưởng đến tín hiệu đó, hệ thống sử dụng các mạch chức năng tên EMI Filter.
Xác định điện cực có gắn vào cơ thể hay không cũng rất quan trọng. Việc này giúp cho hệ thống tránh thu về tín hiệu lỗi khi 1 trong các điện cực bị hở. Hình 3.4 là sơ đồ của mạch phát hiện điện cực bị tắt (lead off detect).
Nguyên tắc của phát hiện Lead-off là phát nguồn DC hoặc AC vào cơ thể người đo và kiểm tra kết quả ngõ ra như hình 3.5. Nếu sử dụng nguồn dòng DC, điện áp thu được từ điện cực sẽ so sánh với điện áp từ bộ DAC 4bit. Khi không mắc điện cực, đầu vào của bộ so sánh bị bão hoà, lúc đó đầu ra xác nhận là Lead-off. Nếu sử dụng nguồn AC, nguồn điện được phát với tần số F=Fdr/4. Sau đó tuỳ vào tín hiệu vi sai đầu ra sẽ tính toán được tình trạng lead-off.
Hình 3.5: Sơ đồ phát hiện lead-off
• Chuyển đổi tương tự sang số
Tín hiệu ngõ ra Vout là tín hiệu điện tim thuộc tín hiệu tương tự. Để dễ dàng xử lý, tín hiệu này sẽ được chuyển về tín hiệu số. Bộ chuyển đổi tín hiệu tương tự sang số (ADC) này trong ADS1292R thuộc loại Sigma-delta có độ phân giải 24bit. Trên hình 3.6 là bộ ADC Sigma-delta 1 bit. Thành phần chung của ADC kiểu này là các bộ phận như: vi sai, tích phân, so sánh, DAC hồi tiếp tương ứng.
Hình 3.6: ADC Sigma-delta
Lưu đồ của ADC này được thể hiện ở hình 3.7. Đầu tiên tín hiệu đưa vào được qua bộ vi sai. Bộ này trừ tín hiệu vào và tín hiệu hồi tiếp từ ngõ ra đã được chuyển đổi DAC. Tín hiệu tiếp tục đi qua bộ tích phân, tại đây tín hiệu được cộng với kết quả tín hiệu bộ tích phân trước đó. Sau đó sẽ đi qua bộ so sánh, từ đây sẽ cho ra kết quả của ADC. Tín hiệu ngõ ra sẽ được qua bộ DAC để hồi tiếp. ADC kiểu này sẽ cần thời gian thời gian để tính toán chuyển đổi. Độ phân giải càng cao thì độ trễ càng lớn.
Hình 3.7: Sơ đồ mô hình toán ADC sigma-delta
Để tính được hiệu điện thế của hai cực, cần có một cực làm điện thế tham chiếu.
Hình 3.8 là sơ đồi khối tham chiếu trong ADS1292R. ADS1292R sử dụng một mạch bandgap. Mạch này tạo điện áp không đổi bất kể sự thay đổi của nguồn điện, nhiệt độ và tải mạch. Điện áp này được khuyến nghị là 2.42V cho điện áp hoạt động là 3V và 4.033V cho điện áp hoạt động là 5V. Điện áp này được đưa vào bộ đệm tham chiếu để tạo điện áp ngõ ra thích hợp. Điện áp ngõ ra được đưa tới ngõ vào của khối ADC nhằm số hoá tín hiệu.
• Giao tiếp dữ liệu số
Dữ liệu sau khi được chuyển đổi sang số sẽ thông qua giao thức truyền thông chuyển đến bộ vi điều khiển. Mỗi loại Vi điều khiển đều có điện áp mức logic khác nhau, điện áp mức logic truyền dữ liệu của ADS1292R phải được chuyển đổi phù hợp với bộ vi điều khiển. Để thực hiện được điều đó, hệ thống sử dụng IC IY08 của Texas Instrument như hình 3.9.
Hình 3.9: IC chuyển đổi mức logic
Điện áp hoạt động của IC ADS1292R là từ 2.7-5.25V và thông thường là 3.3V. Điện áp mức logic của vi điều khiển sẽ được mắc vào VCCB của IC. Từ đó điện áp mức logic sẽ được chuyển đổi phù hợp từ Port A sang Port B của IC.
• Sơ đồ mạch thu tín hiệu hoàn thiện.
Mạch lấy tín hiệu điện tim sẽ được xây dựng dựa trên IC ADS1292R. Hình 3.10
là sơ đồ toàn mạch cảm biến. Trong đó các chân tín hiệu PWDN/RESET, START, DRDY và các chân giao tiếp SPI (3) được kết hợp với port A của IC chuyển đổi điện áp mức logic TXB0108. Điện cực được gắn ở kênh 2 là các chân IN2N và IN2P (1). Tụ điện 47nF được sử dụng để ổn định tín hiệu cho PGA hai kênh. Điện áp tham chiếu được nối tới chân RLDREF (2) thông qua hai điện trở bảo vệ 100 kOhm. Các tụ điện 100nF, 10nF, 1uF được sử dụng để ổn định nguồn, ổn định các chân tham