Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 52 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
52
Dung lượng
1,17 MB
Nội dung
TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI PHÂN HIỆU TẠI THÀNH PHỐ HỒ CHÍ MINH BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN NĂM 2019 THIẾT KẾ THIẾT BỊ GIÁM SÁT SỨC KHỎE KHÔNG DÂY Sinh viên thực hiện: Đỗ Ngọc Thành Lớp: Điều khiển tự động hóa K56 Bộ mơn: Điện – Điện Tử Nguyễn Trọng Nhật Lớp: Điều khiển tự động hóa K56 Người hướng dẫn: TS Nguyễn Văn Bình Bộ mơn: Điện – Điện Tử TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI PHÂN HIỆU TẠI THÀNH PHỐ HỒ CHÍ MINH BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN NĂM 2019 THIẾT KẾ THIẾT BỊ GIÁM SÁT SỨC KHỎE KHÔNG DÂY Sinh viên thực hiện: Đỗ Ngọc Thành Nam/Nữ:Nam Lớp: Điều khiển tự động hóa K56 Bộ mơn: Điện – Điện Tử Dân tộc: Kinh Năm thứ: 4/4.5 Ngành học: Kỹ thuật điều khiển tự động hóa Nguyễn Trọng Nhật Nam/Nữ: Nam Lớp: Điều khiển tự động hóa K56 Bộ môn: Điện – Điện Tử Năm thứ: 4/4.5 Ngành học: Kỹ thuật điều khiển tự động hóa Người hướng dẫn: TS Nguyễn Văn Bình Dân tộc: Kinh MỤC LỤC PHẦN MỞ ĐẦU Tính cấp bách đề tài Lý lựa chọn đề tài Mục tiêu Tiếp cận phương pháp nghiên cứu Đối tượng phạm vị nghiên cứu Kết cấu đề tài CHƯƠNG TỔNG QUAN VỀ NỀN Y TẾ VIỆT NAM 1.1 Tình hình y tế Việt Nam 1.2 Khái qt thiết bị hỗ trợ cho cơng tác chăm sóc y tế Việt Nam CHƯƠNG CƠ SỞ LÝ THUYẾT TRONG GIÁM SÁT SỨC KHỎE KHƠNG DÂY 2.1 Các số phản ánh tình trạng sức khỏe người 11 2.2 Khái niệm điện toán đám máy giao thức Message Queue Telemetry Transport 13 2.3 Khái niệm công nghệ truyền liệu khơng dây qua sóng vơ tuyến 17 2.4 Ứng dụng lĩnh vực điện tử công nghệ thông tin vào y tế 20 CHƯƠNG THIẾT KẾ THIẾT BỊ GIÁM SÁT SỨC KHỎE KHÔNG DÂY 21 3.1 Thiết kế phần cứng 21 3.2 Xây dựng phần mềm giám sát điện thoại thông minh 33 3.3 Phần mềm giám thơng tin số máy tính 35 3.4 Quản lý sở liệu 38 3.5 Sai số 38 CHƯƠNG THỰC NGHIỆM VÀ ĐÁNH GIÁ 39 4.1 Thực nghiệm thiết bị 39 4.2 Phân tích xử lý số liệu 39 4.3 Đánh giá 39 4.4 Định hướng phát triển 39 TÀI LIỆU THAM KHẢO 40 PHỤ LỤC MÃ NGUỒN CHƯƠNG TRÌNH 41 DANH MỤC HÌNH ẢNH 1.1 Máy đo huyết áp thủ cơng 1.2 Nhiệt kế thủy ngân đo nhiệt độ thể 10 2.1 Sơ đồ khái quát hệ thống điện toán đám mây 13 3.1 Sơ đồ khái quát hệ thống thiết bị 21 3.2 Sơ đồ khối mạch đo truyền liệu 21 3.3 Sơ đồ khối mạch thu liệu 22 3.4 Sơ đồ nguyên lý hình dạng cảm biến đo nhịp tim 23 3.5 Nguyên lý hoạt động cảm biến đo nhịp tim 23 3.6 Sơ đồ nguyên lý khối đo nhịp tim nồng độ ôxy máu 24 3.7 Hình dạng cảm biến đo nhiệt độ 25 3.8 Cấu trúc phần cứng cảm biến đo nhiệt độ 25 3.9 Sơ đồ nguyên lý khối đo nhiệt độ 26 3.10 Hình ảnh hình LCD TFT 26 3.11 Hình dạng sơ đồ chân 27 3.12 Sơ đồ nguyên lý mô đun ZIGBEE CC2530 27 3.13 Sơ đồ nguyên lý khối truyền liệu 28 3.14 Lưu đồ thuật toán mạch đo truyền liệu 29 3.15 Hình ảnh hình mơ đun thu phát 30 3.16 Sơ đồ nguyên lý khối thu đẩy liệu lên MQTT Broker 30 3.17 Giao diện làm việc MQTT Broker 31 3.18 Giao diện nhận gửi liệu MQTT Broker 31 3.19 Hình ảnh vi điều khiển Atmega2560 32 3.20 Hình ảnh mơ đun SIM 900A 33 3.21 Lưu đồ thuật toán mạch thu liệu 33 3.22 Phần mềm lập trình Android Studio 33 3.23 Giao diện giám sát thông tin số sức khỏe 34 3.24 Phần mềm lập trình Visual Studio 35 3.25 Ngôn ngữ C# giao diện 35 3.26 Giao diện đăng nhập phần mềm giám sát thông tin 36 3.27 Giao diện giám sát phần mềm giám sát 37 3.28 Giao diện truy cập lịch sữ liệu phần mềm 37 DANH MỤC CHỮ VIẾT TẮT Viết tắt Tiếng Anh Tiếng Việt AM Amplitude Modulation Sự biến đổi biên độ dao động cao tần FM Frequency Modulation Điều chỉnh tần số tín hiệu phát kết hợp vào sóng mang Hb Hemoglobin Là chất đạm đồng yếu tố kim loại có chứa chất sắt có khả vận chuyển khí ơxy tế bào hồng huyết cầu Hz Hertz Đơn vị tần số ID Identification Adress Địa xác định IDE Integrated Development Environment Môi trường phát triển IoT Internet of Things Internet kết nối vạn vật I2C Inter-Intergrated Circuit Là tiêu chuẩn truyền thông dây LED Light Emitting Diode Điốt phát quang MAC OS Macintosh Operating System Hệ điều hành Macintosh MQTT Message Queuing Telemetry Transport Một giao thức publish/subscribe OLED Organic Light-Emiting Diode Điốt hữu phát quang UART Universal Asynchronous Receive/Transmit Chuẩn giao tiếp truyền nhận liệu không đồng gửi dạng TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI PHÂN HIỆU TẠI THÀNH PHỐ HỒ CHÍ MINH THƠNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI Thông tin chung: - Tên đề tài: “Thiết kế thiết bị giám sát sức khỏe không dây” - Sinh viên thực hiện: Đỗ Ngọc Thành Lớp: Điều khiển tự động hóa K56 Bộ mơn: Điện – Điện Tử Năm thứ: Số năm đào tạo: 4.5 Nguyễn Trọng Nhật Lớp: Điều khiển tự động hóa K56 Bộ môn: Điện – Điện Tử Năm thứ: Số năm đào tạo: 4.5 - Giáo viên hướng dẫn: TS Nguyễn Văn Bình Mục tiêu đề tài: Đánh giá thực trạng y tế Việt Nam việc ứng dụng thành tựu khoa học cơng nghệ chăm sóc theo dõi sức khỏe người Từ đó, đưa giải pháp để khắc phục điểm yếu nâng cao chất lượng lĩnh vực y tế thông qua việc nghiên cứu thiết bị giám sát sức khỏe không dây cho bệnh nhân bệnh viện nói riêng cho người nói chung Tính sáng tạo: - Thiết bị tự động đo thơng tin số liên quan đến sức khỏe, thay phần lớn công việc đo lường, theo dõi y tá, điều dưỡng, bác sĩ bệnh viện - Ứng dụng lĩnh vực điện tử công nghệ thông tin vào y tế - Xây dựng hệ thống giám sát sức khỏe cho bệnh nhân nói riêng cho người nói chung - Giúp tiết kiệm chi phí việc chăm sóc sức khỏe bệnh nhân bệnh viện vừa nhỏ khác Kết nghiên cứu: - Nhận thấy mặt hạn chế việc chăm sóc sức khỏe bệnh nhân bệnh viện nước ta - Nhận thấy mức độ áp dụng thành tự khoa học công nghệ đời sống người - Đưa giải pháp nâng cao chất lượng chăm sóc sức khỏe bệnh nhân bệnh viện - Thiết kế, xây dựng thiết bị đo lường số sức khỏe thông qua công nghệ cảm biến đo lường sinh học giám sát thông tin liên quan đến sức khỏe phần mềm xây dựng hệ điều hành Android cho điện thoại thông minh phần mềm xây dựng hệ điều hành Windows cho máy tính - Giảm tình trạng q tải tiết kiệm chi phí cho nguồn nhân lực bệnh viện Đóng góp mặt kinh tế - xã hội, giáo dục đào tạo, an ninh, quốc phòng khả áp dụng đề tài: Những nội dung nghiên cứu đề tài góp phần nâng cao chất lượng việc chăm sóc sức khỏe bệnh nhân Với thiết bị giúp cho bệnh viện thuận tiện việc đo lường theo dõi giám sát số liên quan đến sức khỏe như: nhịp tim, nồng độ ôxy máu, thân nhiệt, … Đồng thời phát tính hiệu cảnh báo cho trường hợp khẩn cấp Giúp tiết kiệm chi phí, thời gian cho nhân viên bệnh viện người thân bệnh nhân theo dõi tình trạng người thân nơi giới cần có điện thoại thơng minh hay máy tính mạng Internet Ngồi việc ứng dụng mơi trường bệnh viện thiết bị sử dụng cho người Công bố khoa học sinh viên từ kết nghiên cứu đề tài (ghi rõ họ tên tác giả, nhan đề yếu tố xuất có) nhận xét, đánh giá sở áp dụng kết nghiên cứu (nếu có): Ngày 16 tháng 04 năm 2019 Sinh viên chịu trách nhiệm thực đề tài Đỗ Ngọc Thành Nhận xét người hướng dẫn đóng góp khoa học sinh viên thực đề tài: Nội dung nghiên cứu đề tài đáp ứng mục tiêu đề Ngày 16 tháng 04 năm 2019 Người hướng dẫn TS.Nguyễn Văn Bình PHẦN MỞ ĐẦU Tính cấp bách đề tài Vấn đề sức khỏe người đặt lên hàng đầu trọng tình trạng Theo thống kê, tình trạng sức khỏe người ngày xuống nhiều thực phẩm chứa chất độc hại dẫn đến số lượng bệnh nhân bệnh viện tăng cao làm cho nhiều bệnh viện dẫn đến tình trạng q tải kéo theo tốn nhiều chi phí cho y tá, điều dưỡng để chăm sóc Đồng thời q trình chăm sóc cho bệnh nhân bị động đo lường số sức khỏe q thủ cơng Trên thị trường có thiết bị đo thơng tin số sức khỏe sản phẩm đồng hồ hãng Apple, Samsung, … giá thành cao thông tin số sức khỏe thu thập riêng lẽ khơng có tính tập trung lưu trữ liệu, nên khơng phù hợp với tình hình kinh tế nước ta Và thời điểm chưa có thiết bị hay ứng dụng cho phép giám sát số sức khỏe người từ xa Vì thế, cần có thiết bị để đo lường số sức khỏe cho phép giám sát số từ xa, đồng thời có tín hiệu cảnh báo trường hợp khẩn cấp Lý lựa chọn đề tài Nhận thấy nhu cầu thiết yếu với phát triển ngành điện tử trở thành ngành đa nhiệm vụ, đáp ứng đòi hỏi không ngừng ngành, lĩnh vực khác nhu cầu thiết yếu người sống hàng ngày Một ứng dụng quan trọng ngành công nghệ điện tử kỹ thuật truyền thơng tin qua sóng vơ tuyến, loại cảm biến đo đạc số liên quan đến sức khỏe nồng độ ôxy máu, thân nhiệt, nhịp tim, huyết áp, … Đồng thời, bắt kịp cách mạng công nghiệp 4.0 mang mạng Internet kết nối vạn vật mà mang thành tựu ứng dụng thực tế lĩnh vực chăm sóc sức khỏe người nên nhóm tác giả chon đề tài “Thiết kế thiết bị giám sát sức khỏe không dây” Mục tiêu Tìm hiểu số cơng nghệ cảm biến đo lường xác số liên quan đến sức khỏe nhiều người Thiết kế thiết bị đọc, thu thập công nghệ truyền tải thông tin không dây khoảng cách gần Xây dựng hệ thống quản lý liệu, giao diện giám sát máy tính điện thoại thông minh sử dụng hệ điều hành android Thiết kế thiết bị đeo tay giám sát số sức khỏe như: thân nhiệt, nhịp tim, nồng độ ôxy máu, … Cùng với hệ thống quản lý liệu thông tin sức khỏe bệnh nhân đến bệnh nhân phịng bệnh nói riêng cho người nói chung Cho phép giám sát theo dõi số nơi giới cần có Internet Tiếp cận phương pháp nghiên cứu Đề tài tiếp cận vấn đề nghiên cứu từ góc độ sau: - Tiếp cận từ tình hình thực tiễn việc ứng dụng IoT vào việc chăm sóc sức khỏe người nói riêng y tế nói chung - Từ sở, tảng lĩnh vực đo lường, truyền tải thông tin liệu không dây, ứng dụng tảng điện toán đám mây phổ biến điện thoại thông minh internet y tế - Đáp ứng nhu cầu thực tiễn sức khỏe nhằm nâng cao chất lượng sức khỏe người Phương pháp nghiên cứu: - Phương pháp khảo sát: Thông qua việc khảo sát bệnh viên lớn nhỏ đa số việc đo đạc theo dõi thông tin số sức khỏe bệnh nhân thực hiển thủ công y tá, điều dưỡng - Phương pháp phân tích tổng hợp lý thuyết: Thu thập phân tích thơng tin liên quan đến đề tài từ báo công nghệ nước nước Các tài liệu cảm biến sức khỏe, cách thức truyền tải thông tin - Phương pháp thực nghiệm: Tiến hành tiếp cận thực tế với thiết bị dựa sở lý thuyết nhằm đánh giá, điều chỉnh cho thiết bị xác chất lượng Đối tượng phạm vị nghiên cứu Đối tượng nghiên cứu: - Ứng dụng công nghệ IoT kết hợp với công nghệ vi xử lý, cảm biến đo lường việc chăm sóc sức khỏe người Do hạn chế thời gian tài chính, đề tài xác định phạm vi sau: - Phạm vi không gian: Đề tài nghiên cứu thiết bị ứng dụng phạm vi phòng bệnh bệnh viện có số lượng bệnh nhân từ người trở xuống - Phạm vi giới hạn số: Do hạn chế mặt tài đề tài ứng dụng cảm biến đo lường số liên quan đến sức khỏe có sẵn thị trường nhằm làm tảng việc xây dựng hệ thống thiết bị đo lường, truyền tải thu thập liệu Kết cấu đề tài CHƯƠNG 1: Trình bày thực trạng vấn đề chăm sóc sức khỏe người nói riêng tình hình y tế Việt Nam nói chung việc ứng dụng lĩnh vực điện tử chăm sóc sức khỏe bệnh viện CHƯƠNG 2: Trình bày sở lý thuyết ứng dụng sở lý thuyết thiết kế thiết bị giám sát sức khỏe không dây CHƯƠNG 3: Thiết kế, xây dựng phần cứng phần mềm thiết bị giám sát sức khỏe không dây CHƯƠNG 4: Đưa thiết bị sau thiết kế vào thực tế tiến hành đánh giá so sánh kết đạt 36 C# (đọc "C thăng" hay "C sharp") ngơn ngữ lập trình hướng đối tượng phát triển Microsoft, phần khởi đầu cho kế hoạch NET họ Tên ngôn ngữ bao gồm ký tự thăng theo Microsoft theo ECMA C#, bao gồm dấu số thường Microsoft phát triển C# dựa C++ Java C# miêu tả ngơn ngữ có cân C++, Visual Basic, Delphi Java 3.3.2 Giao diện phần mềm giám sát máy tính Sau khâu thiết kế xây dựng thành cơng giao diện chương trình phần mềm ta tiến hành xuất tập tin có exe để cài máy tính hỗ trợ hệ điều hành Windows Hình 3.26 Giao diện đăng nhập phần mềm giám sát thông tin số sức khỏe máy tính Đầu tiên phần mềm yêu cầu đăng nhập để giám sát truy cập liệu,tài khoản mật quản lý sở liệu Khi điền thông tin tài khoản mật truy cập hệ phần mềm đưa giao diện để giám sát bên 37 Hình 3.27 Giao diện giám sát phần mềm giám sát thơng tin số sức khỏe máy tính Ở giao diện giám sát, phần mềm thể số thông tin cá nhân chủ yếu, hiển thị thông tin số sức khỏe mà cảm biến đo gửi Phần mềm kết nối đến MQTT Broker lấy liệu dạng chuỗi, sau cắt chuỗi thừa chuyển đổi kiểu liệu tương ứng để xử lý Hình 3.28 Giao diện truy cập lịch sữ liệu phần mềm giám sát thông tin số sức khỏe máy tính 38 Các thơng tin số hiển thị lên dạng số biểu đồ Đồng thời có thơng báo cảnh báo trường hợp khẩn cấp mục tình trạng sức khỏe Có thể xem lịch sử liệu cách nhấn vào nút History Data phần mềm chuyển sang giao diện để xem lại lịch sử liệu 3.4 Quản lý sở liệu Quản lý thông tin bệnh nhân hoạt động tất yếu bắt buộc bệnh viện Thông tin lưu trữ phục vụ cho cơng tác chăm sóc điều trị cho bệnh nhân Các thông tin cần phải xác, rõ ràng đầy đủ Mỗi bệnh nhân làm thủ tục cần thông tin cần thiết sau: - Mã bệnh nhân ID - Các thông tin cá nhân như: họ tên, ngày tháng năm sinh, nơi tại, số chứng minh nhân dân - Các thông tin liên quan đến thời gian nhập viện, lý nhập viện, sách ưu đãi - Các thơng tin chuẩn đốn bệnh nhân - Các số sức khỏe như: nhịp tim, huyết áp, đo đạc theo dõi hàng ngày Các thông tin phải lưu trữ, quản lý sở liệu để truy vấn thông tin cần 3.5 Sai số Do hạn chế mặt tài nên ứng dụng cảm biến có thị trường nước để phát triển đề tài, dẫn đến tình trạng có chút sai số chất lượng cảm biến không cao - Với cảm biến đo nhịp tim nồng độ ơxy máu MAX30100 có xác 96 - 98% so với thiết bị thực tế - Với cảm biến đo nhiệt độ da không tiếp xúc MLX90614 có độ xác lên đền 95 - 97% Nhận thấy mức độ sai số tạm chấp nhận với mơ hình thử nghiệm khắc phục cách thay loại cảm biến chất lượng cao từ thị trường nước 39 CHƯƠNG THỰC NGHIỆM VÀ ĐÁNH GIÁ 4.1 Thực nghiệm thiết bị Sau thiết hoàn tất tiến hành đưa vào thực nghiệm với thiết bị đeo tay có chức đo bốn số nhịp tim, nồng độ ôxy máu, thân nhiệt nhiệt độ mơi trường hiển thị hình OLED Nhận thấy, mặt kết đo có phần xác tồn giá trị sai số định, tốc độ truyền nhận hiển thị liệu tốt, chuỗi thông tin mang liệu truyền nguyên vẹn xác Giao diện giám sát rõ ràng, trình bày đầy đủ thông tin cá nhân số sức khỏe lưu trữ lịch sử liệu Đồ thị trực quan giúp cho việc giám sát so sánh số thuận tiện theo thời gian thực Thông tin cập nhật liên tục giúp cho việc thu thập giám sát sác 4.2 Phân tích xử lý số liệu Thơng tin số nhận từ thiết bị đo lường tương đối xác xử lý số liệu, đặt ngưỡng cảnh báo cho số tương đối ổn định, tín hiệu cảnh báo có tốc độ đáp ứng nhanh Kết hợp thông tin số sức khỏe để chuẩn đốn tình trạng sức khỏe 4.3 Đánh giá Nhìn chung thiết bị đáp ứng yêu cầu đặt thu thập số sức khỏe nhiều người, liệu quản lý sở liệu giao điện giám sát trực quan Xây dựng thiết bị đo số sức khỏe Xây dựng phần mềm giám sát điện thoại thơng minh có hệ điều hành android phần mềm máy tính 4.4 Định hướng phát triển Tối ưu hóa kích thước chất lượng cảm biến nhằm nâng cao chất lượng độ xác để tiến đến việc đưa sản phẩm thị trường trước hết phục cho y tế nước Tích hợp thêm nhiều cảm biến khác đo số khác như: bước chân, kalo, huyết áp… Cải tiến mẫu mã hình dáng, cập nhật nhiều tính mới… 40 TÀI LIỆU THAM KHẢO [1] Nguồn: https://Arduino.vn [2] Nguồn: https://github.com [3] “Điều khiển thiết bị từ xa sóng RF”, https://tailieu.vn [4] ZIGBEE CC2530 manual, http://www.ti.com/lit/ug/swru191f/swru191f.pdf [5] MAX30100manual,https://datasheets.maximintegrated.com/en/ds/MAX3010 0.pdf 41 PHỤ LỤC MÃ NGUỒN CHƯƠNG TRÌNH Mã nguồn chương trình mạch đo truyền liệu 1.1 Mã nguồn chương trình đọc giá trị cảm biến xử lý truyền liệu Void Xu_Ly() { strNhietdoMT=mlx.readAmbientTempC(); strNhietdoN=mlx.readObjectTempC(); if(Arduino_B.available()) { while(Arduino_B.available()) { char ch=Arduino_B.read(); DATA+=(char)ch; } } DATA.trim(); if(DATA!=NULL) { Chuyen_Doi_Data(); DATA=ID+'#'+strNhietdoMT+'#'+strNhietdoN+'#'+DATA; Hien_Thi(); Serial.println(DATA); DATA=""; } delay(1000); } 1.2 Mã nguồn chương trình hiển thị số lên hình Void Hien_Thi() { 42 tft.setCursor(32, 36); tft.setTextColor(ST77XX_RED); tft.setTextSize(2); tft.println("O:"+strOxi+'%'); tft.setCursor(29, 55); tft.setTextColor(ST77XX_GREEN); tft.setTextSize(1); tft.println("status:"+ TBOxi); tft.setCursor(7, 68); tft.setTextColor(ST77XX_RED); tft.setTextSize(2); tft.println("T:"+strNhietdoN+"oC"); tft.setCursor(29, 87); tft.setTextColor(ST77XX_GREEN); tft.setTextSize(1); tft.println("status:"+TBNhietdoN); tft.setCursor(7, 100); tft.setTextColor(ST77XX_RED); tft.setTextSize(2); tft.println("H:"+strNhiptim+"bmp"); tft.setCursor(29, 119); tft.setTextColor(ST77XX_GREEN); tft.setTextSize(1); tft.println("status:"+TBNhiptim); } Mã nguồn chương trình mạch thu liệu 2.1 Mã nguồn chương trình kết nối với server thông qua wifi Void Ket_noi() { while (!client.connected()) 43 { Serial.print("Attempting MQTT connection "); if (client.connect("ESP8266Client",mqtt_user, mqtt_pwd)) { Serial.println("connected"); client.publish(mqtt_topic_1, "Connected!"); client.subscribe(mqtt_topic_sub); } else { Serial.print("failed, rc="); Serial.print(client.state()); Serial.println(" try again in seconds"); delay(5000); } } } 2.2 Mã nguồn chương trình gửi liệu lên MQTT broker thông qua giao thức MQTT Void Gui_du_lieu() { if (!client.connected()) { reconnect(); } client.loop(); if(data!=NULL) { chuyendoi(); snprintf (msg1,01#%.02f#%.02f#%d#%.02f,Fnhietdo,FnhietdoN ,Fnhiptim); client.publish(mqtt_topic_1,msg1); 44 Serial.println(data); data=""; strNhietdoMT=strNhietdoN=strOxi=strNhiptim=""; FNhietdoMT=FNhietdoN=FNhiptim=Oxi=0; } delay(1000); } Mã nguồn chương trình phần mềm giám sát điện thoại thơng minh 3.1 Mã nguồn chương trình kết nối với MQTT broker private void Ket_Noi () { try { client = new MqttClient(txtBroker.Text, int.Parse(txtPort.Text), false, MqttSslProtocols.None, null, null); client.ProtocolVersion = MqttProtocolVersion.Version_3_1; byte code = client.Connect(Guid.NewGuid().ToString(), txtUser.Text, txtPass.Text); if (code == 0) { labelTrangThai.Text = "Đã kết nối"; labelTrangThai.ForeColor = Color.Green; client.MqttMsgPublishReceived += client_MqttMsgPublishReceived; client.Subscribe(new string[] { "ID01" }, new byte[] { }); } else { DialogResult ThongBao = MessageBox.Show("Connect Failed!", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Error); } 45 } catch (Exception) { DialogResult ThongBao = MessageBox.Show("Check Information Agian!", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Error); } } 3.2 Mã nguồn chương trình nhận hiển thị liệu public void connect() { String clientId = MqttClient.generateClientId(); final MqttAndroidClient client = new MqttAndroidClient(this.getApplicationContext(), "tcp://m15.cloudmqtt.com:13288", clientId); MqttConnectOptions options = new MqttConnectOptions(); options.setMqttVersion(MqttConnectOptions.MQTT_VERSION_3_1); options.setCleanSession(false); options.setUserName("tdvdeoky"); options.setPassword("ibvAGwD7noCW".toCharArray()); try { IMqttToken token = client.connect(options); token.setActionCallback(new IMqttActionListener() { @Override public void onSuccess(IMqttToken asyncActionToken) { Log.d("file", "onSuccess"); subscribe(client, "ID01"); client.setCallback(new MqttCallback() { @Override public void connectionLost(Throwable cause) {} @Override 46 public void messageArrived(String topic, MqttMessage message) throws Exception { Log.d("file", message.toString()); if (topic.equals("ID01")) { data=message.toString(); Chuyen_doi_du_lieu(); Hien_thi(); Them_bieu_do(); Canh_bao(); } } @Override public void deliveryComplete(IMqttDeliveryToken token) { } }); } @Override public void onFailure(IMqttToken asyncActionToken, Throwable exception) { Log.d("file", "onFailure"); } }); } catch (MqttException e) { e.printStackTrace(); } } Mã nguồn chương trình phần mềm giám sát máy tính 4.1 Mã nguồn chương trình kết nối với MQTT broker thông qua wifi private void Ket_Noi_MQTT() { try { 47 client = new MqttClient(txtBroker.Text, int.Parse(txtPort.Text), false, MqttSslProtocols.None, null, null); client.ProtocolVersion = MqttProtocolVersion.Version_3_1; byte code = client.Connect(Guid.NewGuid().ToString(), txtUser.Text, txtPass.Text); if (code == 0) { labelTrangThai.Text = "Đã kết nối"; labelTrangThai.ForeColor = Color.Green; client.MqttMsgPublishReceived += client_MqttMsgPublishReceived; client.Subscribe(new string[] { "ID01" }, new byte[] { }); } else { DialogResult ThongBao = MessageBox.Show("Connect Failed!", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch (Exception) { DialogResult ThongBao = MessageBox.Show("Check Information Agian!", "Thông báo!", MessageBoxButtons.OK, MessageBoxIcon.Error); } } 4.2 Mã nguồn chương trình nhận liệu từ MQTT broker hiển thị liệu void Receive(string message, string topic) { if (topic =="ID01") 48 { data = message; if(data[2]=='#'&& data[8]=='#' && data[14]=='#') { TachDuLieu(); UpdateData(); XoaChart(); ThongBaoTinhTrang(); ThemDuLieuSQL(); } } strOxi = strNhietdo = strNhietdoMT = strNhiptim = ""; } private void UpdateData() { double.TryParse(strNhiptim, out DNhiptim); double.TryParse(strNhietdo, out DNhietdo); double.TryParse(strOxi, out DOxi); double.TryParse(strNhietdoMT, out DNhietdoMT); ProBarOxi.Value = Convert.ToInt32(DOxi); ProBarNhietDo.Value = Convert.ToInt32(DNhietdo); ProBarNhietDoMT.Value = Convert.ToInt32(DNhietdoMT); ProBarNhipTim.Value = Convert.ToInt32(DNhiptim); //Chuyển liệu sang số thực double.TryParse(strNhiptim, out Fnhiptim); double.TryParse(strNhietdo, out Fnhietdo); double.TryParse(strOxi, out Foxi); double.TryParse(strNhietdoMT, out Fnhietdomt); DateTime TimeCurrent = DateTime.Now; TG = TimeCurrent.ToLongTimeString(); if (Fnhietdo > ) { 49 ValueNhietDo.Text = strNhietdo; _ValueNhietdo.Text = strNhietdo; ValueNhietdo2.Text = strNhietdo; chart1.Series["Temprature"].Points.AddXY(TG,Fnhietdo); } if (DOxi > 0) { ValueNongDo.Text = strOxi; _ValueNongdo.Text = strOxi; _ValueNongdo2.Text = strOxi; chart2.Series["SpO2"].Points.AddXY(TG,DOxi); } if (Fnhiptim > 0) { ValueNhipTim.Text = strNhiptim; _ValueNhiptim.Text = strNhiptim; _ValueNhiptim2.Text = strNhiptim; chart3.Series["BeatHeart"].Points.AddXY(TG,Fnhiptim); } if (Fnhietdomt > 0) { ValueNhietdoMT.Text = strNhietdoMT; _ValueNhietdoMT.Text = strNhietdoMT; chart4.Series["Ambient"].Points.AddXY(TG,Fnhietdomt); } } 4.3 Mã nguồn kết nối gửi liệu đến sở liệu SqlConnection = new SqlConnection(@"Data Source=DESKTOPGDIHFS2\WINCC;Initial Catalog=QuanLySucKhoe;Integrated Security=True"); 50 static MqttClient client; delegate void SetTextCallback(string text); public void ketnoi() { con.Open(); } public void Them_Du_Lieu_DQL() { DateTime TimeCurrent = DateTime.Now; ThoiGian = TimeCurrent.ToLongTimeString(); ThoiGian += ","; ThoiGian += TimeCurrent.ToLongDateString(); SqlConnection = new SqlConnection(@"Data Source=DESKTOPGDIHFS2\WINCC;Initial Catalog=QuanLySucKhoe;Integrated Security=True"); con.Open(); them = "INSERT INTO TTSucKhoe(ThoiGian,HoTen,NgaySinh,NoiSinh,NhipTim,NongDoOxi, NhietDo, HuyetAp,ChuanDoan) VALUES ('"+ThoiGian+"',N'Đỗ Ngọc Thành',N'22/07/1997',N'Đăk Lăk','"+strNhiptim.Trim()+"','"+strOxi.Trim()+"','"+strNhietdo.Trim()+"' ,'"+strNhi etdoMT.Trim()+"',N'Tốt')"; SqlCommand cmdthem = new SqlCommand(them,con); cmdthem.ExecuteNonQuery(); }