Nghiên cứu xây dựng Back-end cho giao diện IoT trong việc giám sát quy trình sản xuất điện từ năng lượng mặt trời.

32 13 0
Nghiên cứu xây dựng Back-end cho giao diện IoT trong việc giám sát quy trình sản xuất điện từ năng lượng mặt trời.

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Nghiên cứu xây dựng Back-end cho giao diện IoT trong việc giám sát quy trình sản xuất điện từ năng lượng mặt trời.Nghiên cứu xây dựng Back-end cho giao diện IoT trong việc giám sát quy trình sản xuất điện từ năng lượng mặt trời.Nghiên cứu xây dựng Back-end cho giao diện IoT trong việc giám sát quy trình sản xuất điện từ năng lượng mặt trời.

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA KỸ THUẬT ĐIỆN TỬ TIỂU LUẬN CUỐI KỲ MÔN HỌC: MẠNG CẢM BIẾN Đề tài: Nghiên cứu xây dựng Back-end cho giao diện IoT việc giám sát quy trình sản xuất điện từ lượng mặt trời Giảng viên hướng dẫn : Trần Thị Thanh Thủy Nhóm lớp học : 01 Họ tên sinh viên : Nguyễn Quang Hưng Mã sinh viên : B20DCDT098 Lớp : D20DTMT1 Hà Nội - 2023 HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA KỸ THUẬT ĐIỆN TỬ TIỂU LUẬN CUỐI KỲ MÔN HỌC: MẠNG CẢM BIẾN Đề tài: Nghiên cứu xây dựng Back-end cho giao diện IoT việc giám sát quy trình sản xuất điện từ lượng mặt trời Giảng viên hướng dẫn : Trần Thị Thanh Thủy Nhóm lớp học : 01 Họ tên sinh viên : Nguyễn Quang Hưng Mã sinh viên : B20DCDT098 Lớp : D20DTMT1 Hà Nội - 2023 NHẬN XÉT CỦA GIẢNG VIÊN MỤC LỤC NHẬN XÉT CỦA GIẢNG VIÊN MỤC LỤC DANH MỤC HÌNH ẢNH LỜI MỞ ĐẦU CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1: Khái niệm mạng cảm biến 1.1.1: Định nghĩa 1.1.2: Kiến trúc mạng cảm biến 1.1.3: Mạng cảm biến IoT 1.2: Khái niệm Website 10 1.2.1: Định nghĩa 10 1.2.2: Giao diện IoT 11 1.2.3: Mơ hình Client - Server 12 1.3: Khái niệm Back-end 13 1.3.1: Định nghĩa 13 1.3.2: Cơ chế hoạt động Back-end 13 1.3.3: Yêu cầu Back-end hệ thống IoT 13 CHƯƠNG 2: KIẾN TRÚC BACK-END 15 VÀ CÔNG NGHỆ SỬ DỤNG 15 2.1: Kiến trúc Back-end 15 2.2: Ngôn ngữ JavaScript Node.js 15 2.2.1: Ngôn ngữ JavaScript 15 2.2.2: Node.js 16 2.3: Giao thức MQTT 16 2.3.1: Khái niệm 16 2.3.2: Các thành phần MQTT 17 2.3.3: Cách thức hoạt động MQTT 18 2.4: Bảo mật giao thức MQTT 18 2.4.1: Lớp mạng 18 2.4.2: Lớp truyền tải 19 2.4.3: Lớp ứng dụng 19 2.5: Hệ quản trị sở liệu MySQL 20 2.5.1: Khái niệm 20 2.5.2: Kiến trúc hệ quản trị sở liệu MySQL 20 2.5.3: Phương thức hoạt động MySQL 21 CHƯƠNG 3: XÂY DỰNG HỆ THỐNG BACK-END 22 3.1: Xây dựng MQTT Broker 22 3.1.1: HiveMQ Cloud 22 3.1.2: Tạo MQTT Broker 22 3.2: Xây dựng sở liệu 23 3.2.1: Phần mềm XAMPP 23 3.2.2: Tạo sở liệu 23 3.3: Xây dựng Web Server 25 CHƯƠNG 4: SẢN PHẨM THỰC TẾ, KIỂM THỬ 26 VÀ KẾT LUẬN 26 4.1: Sản phẩm thực tế 26 4.2: Kiểm thử 26 4.3: Kết luận 28 4.3.1: Kết đạt 28 4.3.2: Những hạn chế tồn 28 4.3.3: Phương hướng phát triển 29 TÀI LIỆU THAM KHẢO 30 DANH MỤC HÌNH ẢNH Tên hình ảnh Số Trang Hình 1: Mạng cảm biến Hình 2: Kiến trúc mạng cảm biến khơng dây Hình 3: Ứng dụng mạng cảm biến hệ thống IoT Hình 4: Kiến trúc Website 10 Hình 5: Giao diện IoT nông nghiệp thông minh 11 Hình 6: Mơ hình Client - Server 12 Hình 7: Back-end hệ thống IoT xây dựng dịch vụ Amazon Web Services 14 Hình 8: Kiến trúc hệ thống 15 Hình 9: Mơ hình giao thức MQTT 17 10 Hình 10: Sơ đồ kiến trúc TLS 19 11 Hình 11: Kiến trúc hệ quản trị sở liệu MySQL 20 12 Hình 12: Cluster HiveMQ Cloud 22 13 Hình 13: Phần mềm XAMPP 23 14 Hình 14: Cơ sở liệu hồn chỉnh hệ thống 24 15 Hình 15: Web Server hồn chỉnh hệ thống 25 16 Hình 16: Sản phẩm thực tế 26 17 Hình 17: Gửi Topic lên MQTT Broker 27 18 Hình 18: Web Server nhận Topic 27 19 Hình 19: Dữ liệu lưu vào sở liệu MySQL 28 LỜI MỞ ĐẦU Trong năm gần đây, việc chuyển đổi từ lượng truyền thống, hữu hạn sang sử dụng lượng tái tạo trở thành vấn đề cấp thiết quan trọng hàng đầu trình phát triển, cơng nghiệp hóa, đại hóa nhân loại Năng lượng tái tạo nghiên cứu, mở rộng với nhiều nguồn lượng mới, công nghệ thu thập mới, tối ưu hóa q trình thu thập lượng Việc chuyển đổi sang nguồn lượng đẩy mạnh tất quốc gia, Việt Nam quốc gia đầu khu vực ASEAN chuyển đổi nguồn lượng sang lượng tái tạo Năng lượng mặt trời nguồn lượng tái tạo quan trọng nhất, chiếm tỷ lệ lượng lớn loại lượng tái tạo mà khai thác Ánh sáng mặt trời nguồn lượng cho tất hệ thống điện lượng mặt trời Đối với hệ thống điện lượng mặt trời nào, việc thu thập liệu môi trường, cường độ ánh sáng mặt trời công suất sản xuất điện từ lượng mặt trời thước đo độ tin cậy cho việc xây dựng vận hành nhà máy điện mặt trời Việc thu thập thông tin quan trọng trình lựa chọn địa điểm, thiết kế, xây dựng tích hợp quy trình tạo điện từ lượng mặt trời cho việc lưu trữ, sử dụng hoà vào lưới điện quốc gia Xây dựng giao diện IoT việc giám sát quy trình sản xuất điện từ lượng mặt trời công việc cấp thiết quan trọng thiếu tất hệ thống điện lượng mặt trời Giao diện IoT cung cấp nhìn tổng quan liệu thu thập từ cảm biến lắp đặt hệ thống, giúp người sử dụng quản lý, phân tích, thống kê lại khối lượng thông tin lớn mà cảm biến thu thập Với giao diện IoT, Back-end phần cốt lõi toàn hệ thống Web Server Mặc dù Back-end không trực tiếp giao tiếp với người dùng, Back-end lại thành phần xử lý logic, liệu hoạt động giao diện IoT Hiểu tầm quan trọng Back-end giao diện IoT, tính ứng dụng cao giao diện IoT quy trình sản xuất điện từ lượng mặt trời, em chọn đề tài “Nghiên cứu xây dựng Back-end cho giao diện IoT việc giám sát quy trình sản xuất điện từ lượng mặt trời” CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1: Khái niệm mạng cảm biến 1.1.1: Định nghĩa Mạng cảm biến, hay Sensor Network, hệ thống bao gồm nhiều thiết bị cảm biến phân bố rải rác khu vực mơi trường cụ thể, nhằm mục đích thu thập, ghi nhận, truyền tải thông tin môi trường xung quanh Mục tiêu mạng cảm biến tự động hóa q trình thu thập liệu chuyển gửi chúng trạm sở điểm tập trung để tiến hành xử lý, phân tích hiển thị thơng tin Hình 1: Mạng cảm biến Một hệ thống mạng cảm biến hình thành từ nhiều nút cảm biến liên kết với Mỗi nút cảm biến hoạt động cách tự động, với mục đích giám sát, đo lường, thu thập liệu liên quan đến thơng số vật lý, hóa học môi trường xung quanh Mạng cảm biến không cung cấp khả theo dõi hiệu quả, mà đóng vai trị quan trọng việc cung cấp thơng tin để hiểu rõ môi trường, biến động diễn môi trường theo dõi Mạng cảm biến có nhiều ứng dụng sống Trong đó, ứng dụng ý mạng cảm biến việc ứng phó, cứu trợ thiên tai Các nút cảm biến trang bị cảm biến nhiệt độ mơ-đun định vị GPS tạo “bản đồ nhiệt độ”, hữu ích cơng tác phịng cháy, chữa cháy, đặc biệt cháy rừng Ngồi ra, mạng cảm biến cịn ứng dụng việc giám sát môi trường, quản lý tồ nhà thơng minh, quản lý thiết bị (quy trình vận hành bảo dưỡng máy móc), ứng dụng nông nghiệp hay việc thu thập thông tin, thám, quân 1.1.2: Kiến trúc mạng cảm biến Kiến trúc mạng cảm biến bao gồm: • Nút cảm biến • Trường cảm biến • Sink • Internet • Nút quản lý nhiệm vụ Hình 2: Kiến trúc mạng cảm biến khơng dây Trong đó, nút cảm biến có nhiệm vụ cảm nhận, quan sát môi trường xung quanh, theo dõi hay xác định mục tiêu cố định hay di động, thu thập thông tin xử lý thơng tin Nút cảm biến xây dựng vi điều khiển ESP8266, ESP32, STM32, Arduino, hay máy tính nhúng Raspberry Pi, Intel Galileo, Jetson Nano, Nhiều nút cảm biến gần mặt địa lý chức nhóm chung lại thành trường cảm biến Việc phân chia nút cảm biến trường cảm biến giúp giảm độ phức tạp trình cấu hình mạng, tiết kiệm lượng, băng thông, tăng khả quản lý mở rộng hệ thống cảm biến Các Sink đóng vai trị thu thập, xử lý quản lý liệu gửi từ nút cảm biến mạng Sau phân tích, lọc, hay chuyển đổi liệu thu thập được, Sink JavaScript phía máy chủ đề cập đến việc sử dụng ngôn ngữ viết mã logic máy chủ Back-end Trong hệ thống này, JavaScript nằm trực tiếp máy chủ Hàm JavaScript phía máy chủ truy cập sở liệu, thực phép toán logic khác phản hồi lại tương tác máy khách Ưu điểm viết tập lệnh phía máy chủ người dùng có khả tùy chỉnh linh hoạt phản hồi trang web dựa yêu cầu quyền truy cập theo yêu cầu thông tin từ trang web 2.2.2: Node.js Node.js môi trường runtime chạy JavaScript đa tảng có mã nguồn mở, sử dụng để chạy ứng dụng web bên ngồi trình duyệt Client Được xem giải pháp hoàn hảo cho ứng dụng sử dụng nhiều liệu nhờ vào mơ hình hướng kiện (event - driven) không đồng bộ, Node.js cho phép nhà phát triển sử dụng JavaScript để viết công cụ cho việc lập trình kịch phía máy chủ Khả chạy mã JavaScript máy chủ thường sử dụng để tạo nội dung trang web động trước trang web gửi đến trình duyệt web người dùng 2.3: Giao thức MQTT 2.3.1: Khái niệm MQTT (Message Queuing Telemetry Transport) giao thức nhắn tin gọn nhẹ thiết kế để liên lạc nhẹ thiết bị hệ thống máy tính MQTT phát triển với mục tiêu cung cấp giao thức truyền thông nhẹ đơn giản, dành riêng cho ứng dụng IoT (Internet of Things) Giao thức tập trung vào việc truyền thơng tin nhanh chóng hiệu thiết bị mạng IoT, với ưu điểm tối ưu hóa sử dụng băng thơng tiết kiệm lượng 16 Hình 9: Mơ hình giao thức MQTT 2.3.2: Các thành phần MQTT 2.3.2.1: MQTT Broker MQTT Broker hệ thống Back-end điều phối thông điệp máy khách khác Trách nhiệm trình truyền tải bao gồm nhận lọc thông điệp, xác định máy khách đăng ký nhận thông điệp gửi thơng điệp cho máy khách Trình trung chuyển chịu trách nhiệm thực tác vụ khác như: • Ủy quyền xác thực máy khách MQTT • Chuyển thông điệp đến hệ thống khác để phân tích thêm • Xử lý thơng điệp bị bỏ lỡ phiên máy khách 2.3.2.2: MQTT Client Một máy khách MQTT (MQTT Client) thiết bị từ máy chủ đến vi điều khiển có chạy thư viện MQTT Nếu máy khách gửi thơng điệp, hoạt động nơi gửi thơng điệp nhận thơng điệp, hoạt động bên nhận Về bản, thiết bị giao tiếp MQTT qua mạng gọi thiết bị khách MQTT 17 2.3.3: Cách thức hoạt động MQTT 2.3.3.1: MQTT Publish MQTT Publish xuất thơng điệp có chứa chủ đề (MQTT Topics) liệu (Message) định dạng byte Máy khách xác định định dạng liệu liệu văn bản, liệu nhị phân, tệp XML JSON Các máy khách khác đăng ký theo dõi chủ đề nhận thơng điệp Thơng điệp liệu từ cảm biến, trạng thái thiết bị thông tin mà máy khách muốn chia sẻ 2.3.3.2: MQTT Subscribe Máy khách MQTT gửi thông điệp Subscribe (đăng ký) đến trình truyền tải MQTT để nhận thơng điệp chủ đề mà máy khách muốn lấy liệu Thông điệp chứa mã định danh danh sách đăng ký Khi trình truyền tải MQTT nhận thơng điệp Subscribe, ghi nhớ chủ đề mà máy khách đăng ký chuyển tiếp thông điệp tương ứng đến máy khách 2.4: Bảo mật giao thức MQTT Bảo mật giao thức MQTT chia thành nhiều lớp Mỗi lớp ngăn chặn loại công khác Thơng thường, thiết bị IoT có khả xử lý dung lượng lưu trữ hạn chế, nhiều thuật tốn mã hóa u cầu nhiều tài nguyên lớn khả mà thiết bị IoT cung cấp Chính vậy, việc triển khai MQTT thường sử dụng tiêu chuẩn bảo mật tiên tiến SSL/TLS để bảo mật truyền tải 2.4.1: Lớp mạng Một giải pháp để cung cấp kết nối an toàn đáng tin cậy sử dụng VPN (Virtual Private Network) cho tất giao tiếp khách hàng MQTT Broker Điều giúp đảm bảo thơng tin truyền tải qua mạng mã hóa bảo mật, giảm thiểu nguy bị công đánh cắp thông tin Tuy nhiên, việc sử dụng VPN không đảm bảo thông tin bảo mật hồn tồn Nếu sử dụng VPN cơng cộng, thơng tin 18 bị đánh cắp trường hợp VPN bị cơng Vì vậy, phải đảm bảo VPN mà hệ thống sử dụng cung cấp nhà cung cấp đáng tin cậy ln kiểm tra sách bảo mật nhà cung cấp trước sử dụng dịch vụ 2.4.2: Lớp truyền tải Giao thức MQTT dựa giao thức truyền tải TCP (Transmission Control Protocol) Theo mặc định, kết nối TCP không sử dụng giao tiếp mã hóa Để mã hóa tồn giao tiếp MQTT, nhiều MQTT Broker cho phép sử dụng TLS (Transport Layer Security) hay SSL (Secure Sockets Layer) thay TCP đơn giản Hình 10: Sơ đồ kiến trúc TLS SSL giao thức bảo mật sử dụng để mã hóa liệu trước truyền đi, đảm bảo tính bảo mật an tồn cho liệu TLS phiên cải tiến SSL, phát triển để khắc phục vấn đề bảo mật SSL Cổng 8883 dành riêng cho giao tiếp MQTT mã hố thơng qua TLS TLS tập trung vào việc cung cấp kênh liên lạc an toàn, đảm bảo nội dung truyền tải bị đọc thay đổi bên thứ ba 2.4.3: Lớp ứng dụng Ở cấp độ truyền tải, thông tin liên lạc mã hóa danh tính xác thực Giao thức MQTT cung cấp mã định danh khách hàng thông tin xác thực tên người 19 dùng/mật để xác thực thiết bị cấp ứng dụng Các thuộc tính cung cấp giao thức Việc ủy quyền kiểm sốt thơng tin tuỳ thuộc theo quyền mà phía MQTT Broker cung cấp 2.5: Hệ quản trị sở liệu MySQL 2.5.1: Khái niệm MySQL hệ quản trị sở liệu mã nguồn mở (open-source) phổ biến, sử dụng rộng rãi tồn cầu Nó hệ thống quản lý sở liệu (Database Management System - DBMS) cho phép người dùng lưu trữ, truy xuất quản lý liệu môi trường ứng dụng MySQL hỗ trợ nhiều ngơn ngữ lập trình PHP, Java, Python, C++, cho phép ứng dụng web ứng dụng khác tương tác với sở liệu MySQL MySQL cung cấp tính tương tự với ngôn ngữ SQL tạo, sửa đổi, xóa sở liệu, truy vấn liệu, quản lý người dùng quyền truy cập, đảm bảo tính tồn vẹn an ninh liệu 2.5.2: Kiến trúc hệ quản trị sở liệu MySQL Hình 11: Kiến trúc hệ quản trị sở liệu MySQL 20 MySQL hệ quản trị sở liệu quan hệ với kiến trúc ba tầng Tầng tầng khách hàng, tầng thứ hai tầng máy chủ tầng cuối tầng lưu trữ • Tầng khách hàng phần mà ứng dụng người dùng tương tác trực tiếp với hệ thống MySQL Nó chứa giao diện người dùng, ứng dụng, phần mềm cần truy cập tương tác với sở liệu • Tầng máy chủ nơi thực công việc xử lý quản lý sở liệu MySQL Nó xử lý yêu cầu từ tầng khách hàng tương tác trực tiếp với sở liệu để thực thao tác yêu cầu • Tầng lưu trữ nơi liệu thực lưu trữ quản lý Nó bao gồm bảng, mục, chế lưu trữ khác cần thiết để hỗ trợ sở liệu MySQL 2.5.3: Phương thức hoạt động MySQL MySQL hoạt động dựa mơ hình Client - Server, có thành phần tầng khách hàng (client), tầng máy chủ (server), tầng lưu trữ (storage) Người dùng ứng dụng tương tác với hệ thống MySQL thơng qua Client Client ứng dụng web, ứng dụng di động, chương trình có khả gửi truy vấn SQL đến máy chủ MySQL Máy chủ MySQL nhận truy vấn từ tầng khách hàng bắt đầu trình xử lý Điều bao gồm phân tích kiểm tra cú pháp truy vấn, xác định cách thức thực lựa chọn kế hoạch thực thi Sau đó, máy chủ tương tác với tầng lưu trữ để thực thao tác sở liệu thực tế Nếu có, mục ràng buộc sử dụng để tối ưu hóa hiệu suất đảm bảo tính quán liệu Máy chủ trả kết truy vấn tầng khách hàng Kết bao gồm liệu truy xuất, thông báo lỗi, thông tin khác tùy thuộc vào loại truy vấn MySQL sử dụng giao thức truyền liệu TCP/IP để giao tiếp tầng khách hàng tầng máy chủ Giao thức đảm bảo truyền liệu an toàn đáng tin cậy thành phần hệ thống MySQL 21 CHƯƠNG 3: XÂY DỰNG HỆ THỐNG BACK-END 3.1: Xây dựng MQTT Broker 3.1.1: HiveMQ Cloud HiveMQ Cloud tảng MQTT Broker dựa cơng nghệ điện tốn đám mây Được thiết kế nhằm mục đích cho phép cơng ty, tổ chức, cá nhân phát triển, triển khai mở rộng quy mô hệ thống IoT mà lo lắng việc thiết lập, cập nhật bảo trì sở hạ tầng HiveMQ Cloud tích hợp phương thức bảo mật TLS/SSL cho việc mã hoá tin Trung tâm điều khiển HiveMQ Cloud cho việc cung cấp khả quan sát quản lý dự án IoT cách trực quan Ngoài ra, HiveMQ Cloud cung cấp quyền truy cập vào API REST MQTT Broker để kích hoạt quy trình làm việc có lập trình 3.1.2: Tạo MQTT Broker Sau đăng ký tài khoản HiveMQ tạo Cluster, HiveMQ Cloud cung cấp cho người dùng Cluster URL Port để kết nối đến MQTT Broker Hình 12: Cluster HiveMQ Cloud Ta tiến hành truy cập vào Manage Cluster để tạo Credentials Trong đó, tạo tài khoản xác thực với quyền cấp, ví dụ quyền Publish, Subscribe mức độ ưu tiên tài khoản xác thực 22 3.2: Xây dựng sở liệu 3.2.1: Phần mềm XAMPP XAMPP công cụ phần mềm mã nguồn mở, thiết kế để hỗ trợ việc phát triển triển khai ứng dụng web môi trường nội (Localhost) mà không cần đăng ký Hosting hay VPS XAMPP cung cấp máy chủ web Apache làm nhiệm vụ xử lý yêu cầu HTTP từ trình duyệt web phục vụ trang web tương ứng XAMPP hỗ trợ nhiều ngơn ngữ lập trình PHP, Perl, Python, mở rộng khả lựa chọn cho nhà phát triển Hình 13: Phần mềm XAMPP Đối với quản lý sở liệu MySQL, XAMPP tích hợp phpMyAdmin, cung cấp giao diện web để thực tác vụ quản lý liệu Ngoài ra, XAMPP hỗ trợ SSL/TLS để tăng cường bảo mật việc truyền tải liệu 3.2.2: Tạo sở liệu Với kịch xây dựng Back-end cho hệ thống điện lượng mặt trời quy mơ nhỏ, gồm có nút cảm biến lắp đặt hệ thống pin lượng mặt trời, em tiến hành tạo sở liệu có tên “data_tieuluanmangcambien” Trong sở liệu, ta tạo bảng “solarpowerplant” Trong bảng gồm có cột, tương ứng với: 23 • Cột “time” có kiểu liệu timestamp dùng để lưu trữ giá trị thời gian • Cột “name” có kiểu liệu varchar dùng để lưu trữ tên nút cảm biến • Cột “temperature” có kiểu liệu float dùng để lưu trữ giá trị nhiệt độ bề mặt pin • Cột “lux” có kiểu liệu float dùng để lưu trữ giá trị cường độ ánh sáng mặt trời • Cột “direction” có kiểu liệu float dùng để lưu trữ giá trị hướng quay pin lượng mặt trời • Cột “angle” có kiểu liệu float dùng để lưu trữ giá trị góc nâng, hạ pin lượng mặt trời • Cột “voltage” có kiểu liệu float dùng để lưu trữ giá trị hiệu điện pin lượng mặt trời • Cột “current” có kiểu liệu float dùng để lưu trữ giá trị cường độ dòng điện pin lượng mặt trời • Cột “power” có kiểu liệu float dùng để lưu trữ giá trị công suất pin lượng mặt trời Kết quả, ta xây dựng sở liệu sau: Hình 14: Cơ sở liệu hoàn chỉnh hệ thống 24 3.3: Xây dựng Web Server Web Server xây dựng Node.js Trong Web Server, em sử dụng thư viện sau: • Express.js: Express khung ứng dụng web Back-end để xây dựng API RESTful với Node.js Express cho phép người dùng thiết lập lớp trung gian để trả HTTP request • EJS: ngôn ngữ mẫu sử dụng phát triển ứng dụng web Nó giúp phát triển trang web động cách cho phép tạo mẫu HTML kết hợp với mã JavaScript • MQTT.js: thư viện JavaScript dành cho MQTT, cung cấp khả kết nối với MQTT Brokers Publish/Subscribe Topics MQTT • MySQL.js: thư viện JavaScript dành cho MySQL MySQL.js cho phép người dùng kết nối tương tác với sở liệu MySQL • Socket.IO: thư viện hướng kiện dành cho ứng dụng web thời gian thực cho phép giao tiếp hai chiều đồng thời máy khách máy chủ web Được viết dựa giao thức WebSockets - công nghệ hỗ trợ giao tiếp hai chiều Client Server cách sử dụng TCP socket Hình 15: Web Server hoàn chỉnh hệ thống 25 CHƯƠNG 4: SẢN PHẨM THỰC TẾ, KIỂM THỬ VÀ KẾT LUẬN 4.1: Sản phẩm thực tế Hình 16: Sản phẩm thực tế 4.2: Kiểm thử Web Server cấu hình để subscribe topic “datasensor” Sử dụng phần mềm MQTT Explorer để kiểm tra kết nối đến MQTT Broker Sau kết nối thành công, tiến hành gửi Message JSON sau: {"name": 1, "temperature": 25, "lux": 100000, "direction": 90, "angle": 45, "voltage": 13.58, "current": 27.32, "power": 371} Topic Publish thành cơng lên MQTT Broker hình sau: 26 Hình 17: Gửi Topic lên MQTT Broker Hình 18: Web Server nhận Topic 27 Hình 19: Dữ liệu lưu vào sở liệu MySQL Như vậy, sau trình kiểm thử, Back-end giao diện IoT hoạt động thiết kế xây dựng 4.3: Kết luận 4.3.1: Kết đạt Với đề tài “Nghiên cứu xây dựng Back-end cho giao diện IoT việc giám sát quy trình sản xuất điện từ lượng mặt trời”, MQTT Broker, sở liệu Web Server hoạt động yêu cầu đề tài, kịch xây dựng kiến trúc Back-end cho hệ thống điện lượng mặt trời quy mơ nhỏ, gồm có nút cảm biến lắp đặt hệ thống pin lượng mặt trời xây dựng 4.3.2: Những hạn chế tồn • Web Server đặt máy tính cá nhân, sử dụng XAMPP nên truy cập giao tiếp với hệ thống thơng qua localhost • Do kiến thức an ninh mạng hạn chế, nên hệ thống sử dụng giao thức bảo mật mức bản, chưa áp dụng chặt chẽ vào hệ thống • Việc gửi nhận liệu liên tục thay nhận liệu thay đổi xử lý sử dụng lượng lớn băng thơng 28 4.3.3: Phương hướng phát triển • Người sử dụng đưa Web Server lên dịch vụ Web Hosting, đăng ký tên miền để truy cập máy chủ tất nơi, thiết bị hỗ trợ • Có thể mở rộng hàm phần Back-end để tự động cấu hình lựa chọn cấu hình cho nút cảm biến, tự động điều khiển cấu chấp hành liên quan đến hệ thống • Xây dựng hệ thống dịch vụ điện toán đám mây Amazon Web Services (AWS) Với MQTT Broker sử dụng AWS IoT Core, sở liệu sử dụng Amazon DynamoDB Web Server sử dụng Amazon Elastic Compute Cloud 29 TÀI LIỆU THAM KHẢO [1] Apache Software Foundation, "Docs," 30 October 2023 [Online] Available: https://ejs.co/#docs [Accessed 30 October 2023] [2] OpenJS Foundation, "Guide," 30 October 2023 [Online] Available: https://expressjs.com/en/guide/routing.html [Accessed 30 October 2023] [3] HiveMQ, "HiveMQ Introduction," 30 October 2023 [Online] Available: https://docs.hivemq.com/hivemq/4.21/user-guide/introduction.html [Accessed 30 October 2023] [4] Socket.IO, "Introduction," 11 October 2023 [Online] Available: https://socket.io/docs/v4/ [Accessed 30 October 2023] [5] Amazon, "MQTT," 30 October 2023 [Online] Available: https://docs.aws.amazon.com/iot/latest/developerguide/mqtt.html [Accessed 30 October 2023] [6] Oracle Corporation, "MySQL 8.0 Reference Manual," 27 October 2023 [Online] Available: https://dev.mysql.com/doc/refman/8.0/en/ [Accessed 30 October 2023] [7] OpenJS Foundation, "Node.js v20.9.0 documentation," 30 October 2023 [Online] Available: https://nodejs.org/dist/latest-v20.x/docs/api/ [Accessed 30 October 2023] [8] Apache Friends, "XAMPP Documentation," 30 October 2023 [Online] Available: https://www.apachefriends.org/docs/ [Accessed 30 October 2023] 30

Ngày đăng: 17/12/2023, 23:52

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan