LẬP TRÌNH HỆ THỐNG

Một phần của tài liệu Thiết kế và thi công hệ thống thu thập tín hiệu điện tim ECG có hiển thị tín hiệu qua smart phone (Trang 68)

f. PHẠM VI NGHIÊN CỨU

3.4. LẬP TRÌNH HỆ THỐNG

3.4.1. Lưu đồ giải thuật

Sau khi thiết kế tính toán và thi công phần cứng, hệ thống phải được lập trình dựa trên những yêu cầu đặt ra. Để truyền được dữ liệu lên smartphone và server, hệ thống phải được kết nối Wifi. Dữ liệu truyền lên trong đó có tín hiệu điện tim, tín hiệu này được lấy từ cảm biến thông qua giao thức SPI. Ngoài ra tín hiệu còn được hiển thị offline trên oled để dễ hình dung được dạng tín hiệu. Các phần đó được thể hiện rõ hơn ở lưu đồ dưới đây.

Hình 3.12: Lưu đồ chương trình con kết nối wifi

Sơ đồ khối chính của vi điều khiển được thể hiện ở hình 3.11. Theo lưu đồ này thì có các khối để bắt đầu như: khai báo – khởi tạo và cài đặt ban đầu. Tiếp theo là các chương trình con như: kết nối wifi, lấy dữ liệu, gửi và hiển thị dữ liệu. Khi bắt đầu hoạt động, vi điều khiển phải khai báo và khởi tạo các biến cần thiết cho các hoạt động khác của chương trình. Để hoạt động được, vi điều khiển sẽ phải thực hiện các cài đặt ban đầu. Tiếp đó, vi điều khiển sẽ kết nối Wifi để phục vụ cho hoạt động trao đổi dữ liệu. Chương trình con Lấy dữ liệu sẽ lấy dữ liệu từ cảm biết lên và xử lý. Sau đó khối Gửi và hiển thị dữ liệu sẽ tiến hành gửi dữ liệu lên điện thoại và hiển thị dữ liệu lên oled.

Khối Wifi connect có chức năng chính là thực hiện kết nối wifi cho hệ thống.

Hình 3.12 là lưu đồ chi tiết cho chương trình con này. Vi điều khiển sẽ kiểm tra và tự kết nốicấu hình đã lưu trước đó trên bộ nhớ. Nếu có kết nối thì hiển thị địa chỉ IP và thoát. Nếu không được kết nối, vi điều khiển sẽ tiến hành smart config và bắt đầu kết nối wifi. Việc này lặp đi lặp lại nhiều lần cho tới khi kết nối thành công. Khi kết nối thành công, vi điều khiển lưu lại cấu hình đó để phục vụ cho việc kết nối lần sau, hiển thị địa chỉ IP và kết thúc chương trình con.

Chương trình con lấy dữ liệu ở hình 3.13. Ở chương trình này, vi điều khiển sẽ kiểm tra, lấy dữ liệu và xử lý dữ liệu đã nhận được từ cảm biến thông qua giao thức SPI. Đầu tiên vi điều khiển sẽ kiểm tra tín hiệu dữ liệu sẵn sàng từ cảm biến. Nếu chưa có thì kết thúc chương trình con. Nếu có tín hiệu sẵn sàng, vi điều khiển sẽ tiến hành lấy dữ liệu. Tuy nhiên cần phải kiểm tra xem tín hiệu này có phải từ điện cực đã mắc vào cơ

thể hay chưa. Nếu chưa thì cho tín hiệu bằng 0 và kết thúc. Nếu đã là tín hiệu từ điện cực thì sẽ đưa vào xử lý tín hiệu số. Xử lý tín hiệu số bao gồm: Loại bỏ thành phần DC, Lọc thông thấp, Tính toán nhịp tim và thu thập thành mảng dữ liệu. Sau khi thực hiện xử lý tín hiệu số thì sẽ kết thúc chương trình con.

Hình 3.13: Chương trình con lấy dữ liệu

Sau khi xử lý và thu tập tín hiệu xong, tín hiệu được gửi lên điện thoại và hiển thị lên màng hình oled. Công việc này thể hiện ở chương trình con hình 3.14. Vi điều khiển sẽ lần lượt đi từ vị trí đầu tiên đến vị trí cuối cùng của mảng. Mỗi dữ liệu tại vị trí đó được hiển thị lên oled. Đi đến hết mảng dữ liệu, vi điều khiển sẽ gửi tất cả dữ liệu trong mảng lên điện thoại, sau đó sẽ kết thúc chương trình.

3.4.2. Phần mềm lập trình cho vi điều khiển

Arduino IDE là chương trình giúp cho việc lập trình các phần cứng mà nó hỗ trợ. IDE là môi trường phát triển tích hợp chạy trên trên các máy tính cơ bản cá nhân. Môi trường này là một ứng dụng đa nền tảng (cross-platform) được viết bằng ngôn ngữ java. IDE này sẽ được sử dụng cho ngôn ngữ lập trình vi xử lý và project writing. Được thiết kế cho đối tượng mới làm quen với phát triển phần mềm.

Các chương trình Arduino viết bằng C hoặc C++. Arduino IDE đi kèm với một thư viện phần mềm gọi là Writing. Việc sử dụng Writing gốc giúp các thao tác Input/Output và các xử lý khác dễ dàng hơn.

Để sử dụng phần mềm này, đầu tiên vào trang chủ Arduino.cc để tải phần mềm về.

Sau đó nhấn vào cài đặt, chọn thư mục và tiến hành cài đặt.

Giao diện hình 3.15 ta thấy một số thành phần như: Thanh bảng chọn (1), Thanh công cụ (2), vùng code editor (3), vùng thông báo trạng thái (4).

Thanh bản chọn gồm các chọn lựa như: File, Edit, Sketch, Tool và Help. Các chức năng hoạt động của phần mềm đều chứa trong các mục của bảng này. Thanh công cụ chứa: Biên dịch, nạp, new, open, save. Đây là các chức năng chính thường xuyên sử dụng của chương trình. Vùng Code editor dùng để soạn thảo code và vùng thông báo trạng thái dùng để hiển thị trạng thái của chương trình hoạt động như nạp, biên dịch, hiển thị lỗi.

Hình 3.16: Thêm đường dẫn cho Board

Để lập trình esp8266 Node MCU, ta thực hiện qua các bước: Khai báo Board, thêm thư viện, soạn thảo code, biên dịch và nạp. Đầu tiên phải khai báo hệ thống để có Writing gốc. Vào “File\Preferent\Addition Board Manager URLs” và điền vào đường link http://arduino.esp8266.com/stable/package_esp8266com_index.json như hình 3.16. Sau đó vào “Tool/Board/Board Manager” gõ chọn ESP8266 và cài đặt. như hình 3.17.

3.5. LẬP TRÌNH ỨNG DỤNG3.5.1. Lưu đồ giải thuật 3.5.1. Lưu đồ giải thuật

Bên cạnh lập trình cho hệ thống, việc lập trình cho ứng dụng điện thoại cũng là một trong những mục tiêu cần hoàn thành. Để nhận được dữ liệu từ bộ xử lý trung tâm thì điện thoại cần phải được kết nối với Wifi. Dữ liệu sau khi nhận sẽ được hiển thị trực tiếp lên mà hình điện thoại. Ngoài ra, ứng dụng còn hỗ trợ lưu lại dữ liệu lên Database Server cũng như lấy dữ liệu từ Database Server về để xem lại các thông tin đã được lưu trước đó trên điện thoại.

Hình 3.18: Lưu đồ giải thuật chính của ứng dụng điện thoại

Sơ đồ khối chính của app android được thể hiện ở hình 3.18. Theo lưu đồ này thì có các khối để bắt đầu như: Khai báo – khởi tạo và cài đặt ban đầu. Tiếp theo là các chương trình con như: đăng nhập, tải dữ liệu từ kho lưu trữ và nhập thông tin người đo, nhận dữ liệu ECG đo trực tiếp và lưu dữ liệu. Khi bắt đầu hoạt động, các biến cần thiết được khai báo và khởi tạo cho các hoạt động của chương trình. Sử dụng được app cần đăng nhập vào hệ thống bằng tên dăng nhập và mật khẩu được thiết lập trong kho dữ liệu để lấy dữ liệu từ kho dữ liệu và hiển thị lên app. Tiếp đó nhập một số thông tin thông tin bệnh nhân và nhập địa chỉ ip kết nối wifi của bộ vi điều khiển để nhận dữ liệu ECG trực tiếp và lưu dữ liệu nếu cần.

Hình 3.19: Lưu đồ giải thuật của khối Login

Khối Login có chức năng chính là thực hiện xác nhận thông tin để đăng nhập vào hệ thống và hình 3.19 chính là lưu đồ chi tiết cho chương trình con này. Đầu tiên, ứng dụng sẽ kiểm tra xem Username và Password nhập từ người dùng với dữ liệu được cài đặt trong kho dữ liệu có trùng khớp hay không thông qua việc nhấn nút “LOGIN”. Ứng dụng chỉ tiếp tục hoạt động và chuyển sang các chức năng khác ở màn hình Information and load data khi người dùng nhập đúng thông tin đăng nhập. Ngược lại, màn hình đăng nhập sẽ vẫn giữ nguyên mà không chuyển qua màn hình mới nếu nhập sai thông tin. Nếu nhấn nút nhấn “EXIT” sẽ thoát khỏi ứng dụng.

Chương trình con tải dữ liệu từ kho dữ liệu ở hình 3.20. Trước tiên, ứng dụng sẽ kiểm tra id nhập từ người dùng và id trên kho dữ liệu được lưu trong quá trình đo trước đó có trùng khớp hay không thông qua việc nhấn nút nhấn “GET”. Nếu id đúng thì dữ liệu từ kho dữ liệu sẽ được lấy xuống và hiển thị lên ứng dụng, nếu sai sẽ không lấy được dữ liệu. Tiếp đến, nếu muốn chuyển sang màn hình với chức năng đo và lưu tín hiệu thì ứng dụng sẽ kiểm tra xem các thông tin người được lấy tín hiệu có được nhập

đầy đủ hay chưa. Nếu đã được nhập đầy đủ thông tin thì Screen sẽ được chuyển kèm với các thông tin người được đo. Ngược lại ứng dụng sẽ vẫn ở lại Screen hiện tại và thông báo cho người dùng nhập vào những thông tin còn thiếu để chuyển màn hình. Bên cạnh đó, nếu nhấn nút nhấn “CLEAR” đồ thị vẽ được từ các dữ liệu được lấu xống sẽ bị xóa, còn nhấn nút nhấn “BACK” sẽ quay về màn hình Loginđể thoát ứng dụng.

Hình 3.20: Lưu đồ giải thuật chương trình con Information and load data

Chương trình con nhận dữ liệu từ vi điều khiển hiển thị lên ứng dụng và sao lưu dữ liệu (Get and Save data) ở Hình 3.21. Khi cài đặt và kết nối thiết bị thành công với Wifi, tại màn hình Oled sẽ hiển thị thông IP address được kết nối. Lúc này, ứng dụng sẽ kiểm tra xem địa chỉ ip đã được nhập và kết nối vào hay chưa bằng nhập và cách nhấn “OK” trên màn hình. Nếu kết nối đúng địa chỉ ip và nhấn “Start” sẽ nhận được dữ liệu ECG từ vi điều kiển và hiển thị lên màn hình ứng dụng và nhấn “Stop” nếu muốn dừng

việc nhận dữ liệu từ bộ xử lý trung tâm. Ngược lại, nếu IP address không được nhập hay kết nối sai sẽ không nhận được tín hiệu thu được từ cảm biến và hiển thị thông báo lỗi. Tiếp theo, ứng dụng sẽ kiểm tra nút “Save” nếu được nhấn dữ liệu sẽ được lưu lên Database Server, nhấn nút nhấn “BACK” để quay về màn hình Information and load data. Nhấn “CLEAR” để xóa địa chỉ IP hiện tại.

3.5.2. Phần mềm lập trình cho ứng dụng điện thoại

Để sử dụng được ở chế độ online cần có tài khoản Google để đăng nhập. Trước hết cần truy cập vào địa chỉ http://appinventor.mit.edu/, sau đó chọn “Create App!” và đăng nhập bằng tài khoản Google để mở trang quản lý các project.

Hình 3.22: Các bước tạo project mới

Để tạo một ứng dụng, cần phải tạo project. Để tạo project ta vào mục “My Projects” chọn “Start new project” để đặt tên cho project. Sau khi đặt tên xong, chọn

“OK” để đi đến giao diện thiết kế cho ứng dụng, các bước được mô tả như như hình 3.22.

Hình 3.23: Giao diện thiết kế giao diện cho ứng dụng

Giao diện công cụ thiết kế ứng dụng (hình 3.23) gồm 5 phần chính với vị trí (1) là thanh công cụ, (2) là vùng chứa các đối tượng để thiết kế giao diện (Palette), (3) là vùng màn hình điện thoại giả lập để chứa cá đối tượng (Viewer), (4) là vùng để xem các thành phần đối tượng có trong View (Conponenrs), (5) là vùng để chỉnh các chức năng cho các đối tượng (Properties).

Bước 1: Thiết kế giao diện bằng cách kéo thả, sắp xếp các đối tượng ở mục

“Palette” ở phía ngoài cùng bên trái của thanh công cụ (2. Sau đó chọn các thông số cho các đối tượng ở mục “Properties” ở ngoài cùng bên trái của thanh công cụ (5) như mô tả ở hình 3.28.

Bước 2: Tiến hành nhấn “Blocks” trên thanh công cụ (1) để chuyển sang giao diện lập trình chức năng cho các đối tượng được chọn trong giao diện (hình 3.24). Tại đây, để lập trình thì nhiệm vụ khá đơn giản là kéo thả và ghép nối các code sao cho phù hợp.

Hình 3.24: Giao diện lập trình chức năng cho ứng dụng

Bước 3: Sau khi hoàn thành thiết kế ứng dụng, tiến hành biên dịch, đóng gói thành File có đuôi .APK bằng cách chọn “Build” ở thanh công cụ (1). Tại đây có 2 chế độ xuất APP là “provide QR code for .apk” và “save .apk to my computer” như hình 3.25.

Hình 3.25: Các bước để xuất File .APK

3.6. LẬP TRÌNH SERVER

Để hoàn thiện gửi dữ liệu hoặc lấy dữ liệu trực tuyến, hệ thống được thiết kế hoạt động trên một Server. Server này cung cấp hai dịch vụ là Database server và Web server. Databaser server dùng để lưu dữ liệu và Web server giúp điện thoại thông minh giao tiếp với Database server.

3.6.1. Lưu đồ giải thuật

Muốn thực hiện giao tiếp dữ liệu trực tuyến, hệ thống được lập trình Web với ngôn ngữ lập trình PHP. Chức năng ở ứng dụng điện thoại cần thực hiện là: Xác nhận đăng nhập, lấy dữ liệu được lưu sẵn về để xem, gửi dữ liệu đo được từ mạch tín hiệu. Thuật toán các chức năng này thể hiện ở dưới đây.

Hình 3.25: Lưu đồ giải thuật xác thực đăng nhập vào ứng dụng

Hình 3.25 là lưu đồ xác nhận sự đăng nhập vào hệ thống. Để xác nhận đăng nhập, web sẽ kết nối với Database có chứa thông tin tài khoản được phép đăng nhập. Sau khi kết nối, web sẽ tìm trong dữ liệu để kiểm tra sự tồn tại người dùng (name). Nếu tồn tại người dùng, sẽ kiểm tra sự trùng khớp mật khẩu (password). Đúng tất cả web trả về về 1, sai mật khẩu trả về 2, sai người dùng trả về 0. Kết quả trả về sẽ cho ứng dụng hoạt động.

Lưu đồ đáp ứng lệnh giao tiếp dữ liệu từ ứng dụng điện thoại tới database thể hiện ở hình 3.26. Hình 3.26a là lưu đồ lấy dữ liệu. Đầu tiên web sẽ kết nối tới database, tìm số

thứ tự đã nhập. Nếu có tồn tại số thứ tự, sẽ gửi dữ liệu ECG từ database về ứng dụng, không tồn tại số thứ tự sẽ kết thúc. Hình 3.26b là lưu đồ lúc gửi dữ liệu lên. Khi kết nối

được database, web sẽ chèn vào nó dữ liệu ECG từ ứng dụng điện thoại lên, phản hồi ghi thành công và kết thúc.

Hình 3.26: Lưu đồ giải thuật giao tiếp dữ liệu giữa ứng dụng và Database

3.6.2. Phần mềm lập trình cho Database

Để sử dụng phần mềm online phpMyAdmin thiết lập và lập trình Database cần thực hiện theo các bước dưới đây:

Bước 1: truy cập vào phpMyAdmin ở 000webhost, truy cập vào địa chỉ: https://databases.000webhost.com/. Sau đó nhập thông tin gồm tên tài khoản và mật khẩu đã được thiết lập ở trang web 000webhost, lựa chọn ngôn ngữ theo chỉ dẫn rồi chọn “thực hiện” để đăng nhập vào phần mềm như hình 3.27.

Bước 2: Tạo cơ sở dữ liệu (CSDL) màn hình như hình 3.28 sẽ xuất hiện. Tại mục “Cơ sở dữ liệu”, để tạo một CSDL mới thì nhấp vào “Mới” ở phía ngoài cùng bên trái và nhập các thông tin CSDL muốn tạo và chọn “Tạo” để hoàn thành tạo CSDL mới và tên CSDL mới tạo được sẽ hiện ở phía ngoài cùng bên trái.

Hình 3.28: Tạo cơ sở dữ liệu

Bước 3: Tạo bảng dữ liệu sẽ hiện ra gồm chổ điền thông tin tên bảng và số cột của bảng muốn tạo. Sau khi nhập thông tin đầy đủ thì chọn “Thực hiện” để chuyển đến giao diện nhập thông tin và lựa chọn chức năng cho các hàng các cột trong bảng. Cuối cùng chọn “Ghi lại” để hoàn thành xuất bảng dữ liệu như hình 3.29.

Hình 3.29: Kết quả sau khi hoàn thành tạo bảng CSDL

3.6.3. Phần mềm lập trình cho Server

Để lập trình cho Server cần thực hiện theo các bước hướng dẫn dưới đây:

Bước 1: Tải phần mềm bằng cách truy cập vào địa chỉ

https://www.sublimetext.com/ (trang chủ phần mềm) chọn mục “Download” để lựa chọn phiên bản muốn tải. Sau khi tải thành công phần mềm, tiến hành nhấn vào File mới tải và cài đặt theo chỉ dẫn.

Bước 2: Sau khi cài đặt thành công phần mềm, tiến hành mở phần mềm lên và giao diện phần mềm như hình 3.30. Nhìn vào giao diện ta thấy 2 thành phần chính: Thanh bảng chọn (1) với ác chức năng hoạt động của phần mềm đều chứa trong các mục của bảng này, (2) là vùng code editor để soạn thảo code.

Một phần của tài liệu Thiết kế và thi công hệ thống thu thập tín hiệu điện tim ECG có hiển thị tín hiệu qua smart phone (Trang 68)

Tải bản đầy đủ (DOCX)

(105 trang)
w