Bối cảnh và vấn đề nghiên cứu

Thế giới đang chứng kiến mức tăng trưởng mạnh về số lượng thiết bị IoT: từ 9,76 tỷ thiết bị năm 2020 lên 15,9 tỷ thiết bị năm 2023, và dự kiến đạt 31,2 tỷ thiết bị vào năm 2030 (theo Statista). Sự bùng nổ này kéo theo hai thách thức kép trong quy trình quản lý: (1) các thiết bị sử dụng nhiều tiêu chuẩn kết nối và định dạng dữ liệu khác nhau, gây khó khăn trong việc tích hợp; (2) lượng dữ liệu thu thập định kỳ từ các thiết bị là rất lớn, đòi hỏi hệ thống lưu trữ và phân tích tập trung. Ngoài ra, các hệ thống IoT hiện có trong các nghiên cứu liên quan chủ yếu tập trung vào thu thập và giám sát dữ liệu, chưa khai thác triệt để tiềm năng phân tích và dự đoán từ dữ liệu đã thu thập.

Mục tiêu nghiên cứu của đề tài bao gồm:

  1. Tuỳ chỉnh và mở rộng dự án mã nguồn mở Openremote để tạo ra hệ thống quản lý thiết bị IoT với luồng dữ liệu tập trung, hoạt động trên cả nền tảng trình duyệt và di động.
  2. Đề xuất và tích hợp mô hình trí tuệ nhân tạo vào hệ thống để dự đoán khả năng xảy ra mưa vào ngày hôm sau, nhằm khai thác tiềm năng từ dữ liệu thiết bị đã thu thập.
  3. Đánh giá hiệu suất mô hình đề xuất bằng cách so sánh với các mô hình phân loại phổ biến và các nghiên cứu khác cùng sử dụng bộ dữ liệu "Rain in Australia".

Đối tượng nghiên cứu gồm: các thiết bị vạn vật kết nối phổ biến hiện nay; hệ thống quản lý thiết bị vạn vật kết nối trong ngữ cảnh đô thị; các kỹ thuật machine learning và deep learning trong bài toán dự đoán mưa.

Phạm vi nghiên cứu: Hệ thống hoạt động trên trình duyệt web và thiết bị di động Android, kết nối thiết bị IoT qua giao thức HTTP hoặc MQTT. Dữ liệu thời tiết được thu thập, lưu trữ và sử dụng để dự đoán mưa cho ngày tiếp theo.


Cơ sở lý thuyết và phương pháp

Khung công nghệ và lý thuyết

Đề tài sử dụng các công nghệ và mô hình sau, được trình bày trong Chương 2:

Thành phần Công nghệ/Mô hình Vai trò trong hệ thống
Ngôn ngữ lập trình web TypeScript Phát triển giao diện Web UI
Ngôn ngữ lập trình di động Java (Android SDK) Phát triển ứng dụng di động Android
Cơ sở dữ liệu PostgreSQL Lưu trữ toàn bộ dữ liệu hệ thống (14 bảng)
Giao tiếp client–server REST API (HTTP) Trao đổi dữ liệu giữa client và Bảng điều khiển
Giao tiếp thiết bị MQTT Broker, HTTP Kết nối và thu nhận dữ liệu từ thiết bị IoT
Xác thực và phân quyền Keycloak (OAuth2, OpenID Connect, SAML, SSO, 2FA) Quản lý danh tính và kiểm soát truy cập
Kiến trúc triển khai Microservices, Docker Container Tách biệt và triển khai độc lập các dịch vụ
Cân bằng tải HAProxy Proxy và cân bằng tải cho hệ thống công cộng
Nền tảng IoT Openremote (mã nguồn mở) Lõi của hệ thống quản lý thiết bị
Mô hình dự đoán BiLSTM + ECA + Attention Dự đoán khả năng mưa ngày hôm sau

Về lý thuyết mô hình, nhóm tác giả sử dụng:

  • Bidirectional Long Short-Term Memory (BiLSTM): biến thể hai chiều của LSTM, được thiết kế để giải quyết vấn đề vanishing gradient trong mạng RNN truyền thống. Mỗi đơn vị LSTM gồm ba cổng (forget gate, input gate, output gate) giúp duy trì cả trí nhớ ngắn hạn và dài hạn.
  • Efficient Channel Attention (ECA): cơ chế attention tối giản kết hợp global average pooling và tích chập 1D để chọn lọc các kênh quan trọng nhất mà không thay đổi dạng dữ liệu đầu vào.
  • Attention layer: bổ sung khả năng học sự phụ thuộc giữa các token đầu ra của ECA, giúp mô hình tập trung vào token đóng góp nhiều nhất cho bài toán phân loại.

Phương pháp nghiên cứu

Đề tài kết hợp hai hướng:

  • Thiết kế và xây dựng hệ thống: khảo sát dự án mã nguồn mở Openremote, mở rộng và tuỳ chỉnh để đáp ứng yêu cầu, sau đó hiện thực hoá trên hai nền tảng web và di động.
  • Nghiên cứu thực nghiệm mô hình AI: phân tích các bài báo liên quan đến bài toán dự đoán mưa; phân tích đặc điểm nhiều bộ dữ liệu; đề xuất kiến trúc cải tiến; huấn luyện và đánh giá mô hình trên nhiều tập thông số khởi tạo khác nhau.

Nguồn dữ liệu

Hai bộ dữ liệu được sử dụng trong thực nghiệm:

Bộ dữ liệu Mục đích sử dụng
Vietnam Weather Data Dữ liệu chính — huấn luyện mô hình tích hợp vào hệ thống; 10 đặc trưng
Rain in Australia Đánh giá so sánh hiệu suất với các nghiên cứu khác cùng sử dụng bộ dữ liệu này

Nội dung chính theo từng chương

Chương 1 — Tổng quan đề tài

Chương này trình bày bối cảnh tăng trưởng thiết bị IoT toàn cầu, phân tích các nghiên cứu liên quan trong hai hướng chính: vạn vật kết nối trong công nghiệp/nông nghiệp (hệ thống nông nghiệp qua mạng Lora với bộ xử lý STM32L151, giám sát trạm dệt qua mạng ZigBee) và vạn vật kết nối trong đời sống (phân tích tiêu thụ năng lượng nhà thông minh, tích hợp AI với cảm biến qua Lora Gateway). Nhóm tác giả chỉ ra nhược điểm chung của các hệ thống tiền nhiệm: chưa phân tích và sử dụng dữ liệu một cách tối ưu. Từ đó đặt ra mục tiêu xây dựng hệ thống quản lý thiết bị IoT có tích hợp khả năng dự đoán mưa bằng AI.

Chương 2 — Cơ sở lý thuyết

Chương này giới thiệu chi tiết từng công nghệ được áp dụng trong hệ thống, bao gồm: TypeScript (kiểm tra kiểu tĩnh, hỗ trợ OOP, tương thích ECMAScript 2015), PostgreSQL (đa dạng kiểu dữ liệu, hỗ trợ SCRAM-SHA-256/SSPI/LDAP/GSSAPI, mở rộng qua PL/PGSQL và PostGIS), REST API (tách biệt client–server, stateless, hỗ trợ cache, phương thức GET/POST/PUT/DELETE cho CRUD), Android SDK (môi trường phát triển toàn diện của Google), Keycloak (SSO, 2FA, OAuth2, OpenID Connect, SAML, quản lý người dùng theo nhóm và vai trò), và kiến trúc Microservices (triển khai độc lập từng dịch vụ dưới dạng container). Ngoài ra, chương trình bày nền tảng lý thuyết của BiLSTM, ECA, và Attention làm cơ sở cho mô hình dự đoán ở các chương sau.

Chương 3 — Phân tích và thiết kế hệ thống

Chương này đặc tả kiến trúc hệ thống gồm 6 thành phần được đóng gói thành Docker Image và triển khai trên cùng nền tảng Docker:

  1. Cơ sở dữ liệu (PostgreSQL): 14 bảng dữ liệu, lắng nghe tại cổng 5432.
  2. Xác thực/Phân quyền (Keycloak): dựa trên Keycloak OpenID Connect Provider, tiêu chuẩn OAuth 2, quản lý quyền hạn qua token.
  3. Proxy (HAProxy): cân bằng tải và chuyển hướng yêu cầu.
  4. Bảng điều khiển: thành phần trung tâm, cung cấp Restful API đầy đủ, Websocket API, MQTT Broker.
  5. Dịch vụ dự đoán: chạy trên Docker Container riêng, truy xuất dữ liệu và thực hiện dự đoán mỗi 1 giờ, gửi kết quả lại Bảng điều khiển qua Restful API.
  6. Website và Di động (Client): TypeScript cho web, Java cho Android.

Chương trình bày kiến trúc mô hình BiLSTM-ECA-Attention (lớp BiLSTM đầu tiên 256 đơn vị, lớp thứ hai 128 đơn vị), sơ đồ luồng 11 bước sử dụng mô hình dự đoán, mô hình phân rã chức năng, 12 sơ đồ Usecase (Tài khoản, Bản đồ, Quản lý thiết bị, Chi tiết thiết bị, Quy tắc, Quản trị viên), thiết kế cơ sở dữ liệu 8 bảng chính (Asset, Asset Datapoint, AssetLink, Dashboard, Notification, Gateway Connection, Syslog Event, Asset Ruleset), và 23 sơ đồ Sequence Diagram cho các luồng chức năng cụ thể.

Chương 4 — Hiện thực hệ thống

Chương này mô tả kết quả hiện thực hóa giao diện trên hai nền tảng. Trên ứng dụng di động Android: các màn hình đăng ký, đăng nhập, trang chủ, danh sách thiết bị, tạo thiết bị, xem/chỉnh sửa thiết bị và thuộc tính, bản đồ, biểu đồ dữ liệu, danh sách và tạo/sửa quy tắc, phân quyền, danh sách người dùng. Trên ứng dụng web: các màn hình đăng nhập, đăng ký, quên mật khẩu, thêm/hiển thị/chỉnh sửa thiết bị, biểu đồ nhiệt độ và độ ẩm, quy tắc, quản lý người dùng và phân quyền người dùng.

Chương 5 — Thực nghiệm và bàn luận

Chương này trình bày toàn bộ quy trình thực nghiệm mô hình dự đoán mưa, bao gồm: các bước tiền xử lý dữ liệu cho từng bộ (Rain in Australia và Vietnam Weather Data), xử lý mất cân bằng nhãn bằng SMOTE, đánh giá từng tổ hợp thành phần (BiLSTM đơn lẻ, BiLSTM+ECA, BiLSTM+Attention, BiLSTM+ECA+Attention), so sánh với các mô hình phân loại phổ biến (KNN, SVC,...) và so sánh với các nghiên cứu khác cùng dùng bộ "Rain in Australia".


Thiết kế và triển khai

Kiến trúc hệ thống

Hệ thống áp dụng kiến trúc Microservices với toàn bộ 6 dịch vụ được đóng gói thành Docker Image và triển khai trên cùng một nền tảng Docker. Các dịch vụ giao tiếp với nhau qua REST API. Thành phần Bảng điều khiển được xây dựng dựa trên dự án mã nguồn mở Openremote, sau đó được mở rộng để hỗ trợ thêm ứng dụng di động và dịch vụ dự đoán AI.

Công nghệ sử dụng

  • Backend / Bảng điều khiển: Openremote (mã nguồn mở), REST API, Websocket API, MQTT Broker
  • Cơ sở dữ liệu: PostgreSQL (cổng 5432, 14 bảng)
  • Xác thực: Keycloak với OAuth2, OpenID Connect, SAML, SSO, 2FA
  • Frontend web: TypeScript
  • Ứng dụng di động: Java, Android SDK
  • Proxy: HAProxy
  • Containerisation: Docker
  • Mô hình AI: BiLSTM (256 + 128 units) + ECA + Attention, xây dựng bằng Python

Luồng dự đoán mưa

Dịch vụ dự đoán hoạt động theo chu kỳ 1 giờ/lần: gửi yêu cầu truy xuất dữ liệu thời tiết từ Bảng điều khiển → tiền xử lý (encoding dữ liệu chữ như hướng gió, scaling dữ liệu số như nhiệt độ, độ ẩm) → đưa vào mô hình BiLSTM+ECA+Attention → gửi kết quả dự đoán (xác suất mưa, dạng phần trăm) về Bảng điều khiển → lưu vào cơ sở dữ liệu → client truy vấn và hiển thị kèm icon thời tiết tương ứng.

Kiểm thử và đánh giá mô hình

Mô hình được huấn luyện và đánh giá nhiều lần trên hai bộ dữ liệu:

  • Vietnam Weather Data: 10 đặc trưng, độ chính xác trung bình 80% sau 10 lần thử nghiệm.
  • Rain in Australia: dùng cùng kiến trúc mô hình để so sánh với các nghiên cứu khác cùng sử dụng bộ dữ liệu này.

Kết quả thực nghiệm được trình bày dưới dạng bảng so sánh (Bảng 5.6, 5.7, 5.8) bao gồm: kết quả từng tổ hợp thành phần, so sánh với KNN/SVC và các mô hình phân loại phổ biến khác, so sánh với các mô hình từ nghiên cứu tiền nhiệm.


Kết quả và đóng góp

Kết quả chính

  • Xây dựng thành công hệ thống quản lý thiết bị IoT hoàn chỉnh trên hai nền tảng (web và Android), với đầy đủ chức năng: quản lý thiết bị (thêm, xóa, chỉnh sửa, xem chi tiết, phân loại, tìm kiếm), bản đồ vị trí thiết bị, biểu đồ dữ liệu, hệ thống quy tắc điều kiện-hành động, quản lý người dùng và phân quyền.
  • Mô hình BiLSTM kết hợp ECA và Attention đạt độ chính xác trung bình 80% trên bộ dữ liệu Vietnam Weather Data (tính trung bình sau 10 lần huấn luyện và đánh giá).
  • Dịch vụ dự đoán được tích hợp thành công vào hệ thống như một microservice độc lập, thực hiện dự đoán mỗi 1 giờ và cung cấp kết quả cho client thông qua Restful API.

Giải pháp và kiến nghị tác giả đề xuất

  • Tích hợp mô hình AI vào hệ thống IoT để tận dụng dữ liệu thiết bị đã thu thập, không dừng ở mức giám sát đơn thuần.
  • Sử dụng Openremote làm nền tảng lõi mã nguồn mở, sau đó tuỳ chỉnh và mở rộng thay vì xây dựng từ đầu, giúp rút ngắn thời gian phát triển.
  • Sử dụng SMOTE để xử lý mất cân bằng nhãn trong bộ dữ liệu dự đoán mưa.
  • Đề xuất kết hợp ba thành phần BiLSTM + ECA + Attention như một hướng cải tiến so với BiLSTM đơn lẻ.

Đóng góp so với nghiên cứu trước

Nhóm tác giả xác định đóng góp chính ở hai điểm: (1) các hệ thống IoT trong các nghiên cứu trước chưa phân tích và sử dụng dữ liệu một cách tối ưu — đề tài này lấp đầy khoảng trống đó bằng cách tích hợp mô hình dự đoán AI trực tiếp vào hệ thống quản lý IoT; (2) đề xuất kiến trúc BiLSTM+ECA+Attention cho bài toán dự đoán mưa và đánh giá hiệu suất so sánh trên bộ dữ liệu "Rain in Australia" — bộ dữ liệu chuẩn được nhiều nghiên cứu khác sử dụng.


Hạn chế và hướng nghiên cứu tiếp

Hạn chế tác giả nêu trong văn bản

Nhóm tác giả thừa nhận trong quá trình thực hiện vẫn còn tồn tại một số sai sót và hạn chế (được trình bày trong Mục 6.2 của văn bản gốc, phần chi tiết không được trích dẫn đầy đủ trong fulltext được cung cấp).

Hạn chế có thể nhận thấy từ phạm vi nghiên cứu

  • Mô hình được huấn luyện trên bộ dữ liệu Vietnam Weather Data với 10 đặc trưng; việc thu thập đủ dữ liệu thực tế từ các thiết bị IoT tích hợp trong thực tiễn triển khai có thể gặp thách thức.
  • Hệ thống hiện hỗ trợ nền tảng di động Android; iOS chưa được đề cập trong phạm vi đề tài.
  • Phạm vi dự đoán giới hạn ở bài toán phân loại nhị phân (có mưa/không mưa ngày hôm sau), chưa mở rộng sang dự đoán cường độ mưa.

Hướng phát triển tác giả đề xuất

Văn bản đề cập đến hướng phát triển trong Mục 6.2, bao gồm các định hướng mở rộng hệ thống và cải tiến mô hình dự đoán trong các nghiên cứu tiếp theo.


Giá trị tham khảo

Đề tài này có giá trị tham khảo cho các nhóm đối tượng sau:

  • Sinh viên ngành Mạng máy tính và Truyền thông, Công nghệ thông tin, Kỹ thuật máy tính: phần thiết kế hệ thống (Chương 3) và phần cơ sở lý thuyết (Chương 2) cung cấp cách tiếp cận thực tế trong việc lựa chọn và kết hợp công nghệ để xây dựng hệ thống IoT đa nền tảng.
  • Sinh viên, nghiên cứu viên làm về học máy và học sâu: phần thực nghiệm mô hình (Chương 5) trình bày quy trình đầy đủ từ tiền xử lý dữ liệu mất cân bằng (SMOTE), lựa chọn kiến trúc, đến đánh giá so sánh — có thể làm cơ sở để thực hiện các đề tài tương tự về dự đoán thời tiết hoặc bài toán chuỗi thời gian.
  • Nhóm thực hiện đề tài tương tự về hệ thống IoT tích hợp AI: cách tổ chức dịch vụ dự đoán như một microservice độc lập (Chương 3, phần kiến trúc hệ thống) và sơ đồ luồng dự đoán 11 bước là mô hình tham chiếu hữu ích.
  • Người triển khai hệ thống IoT quy mô nhỏ đến vừa trong ngữ cảnh đô thị: phần hiện thực hệ thống (Chương 4) minh họa đầy đủ các giao diện chức năng trên cả web lẫn di động, có thể dùng làm mẫu tham chiếu thiết kế.

Câu hỏi thường gặp

1. Mô hình dự đoán mưa trong hệ thống đạt độ chính xác bao nhiêu và được đo trên bộ dữ liệu nào? Mô hình BiLSTM kết hợp ECA và Attention được huấn luyện trên bộ dữ liệu "Vietnam Weather Data" với 10 đặc trưng, đạt độ chính xác trung bình 80% được tính sau 10 lần thử nghiệm gần nhất. Ngoài ra, nhóm sử dụng cùng kiến trúc mô hình huấn luyện trên bộ "Rain in Australia" để so sánh hiệu suất với các nghiên cứu khác cùng dùng bộ dữ liệu này.

2. Hệ thống bao gồm những thành phần triển khai nào và chúng giao tiếp với nhau như thế nào? Hệ thống gồm 6 thành phần đóng gói thành Docker Image: PostgreSQL (cổng 5432), Keycloak (xác thực/phân quyền theo OAuth2), HAProxy (proxy và cân bằng tải), Bảng điều khiển (lõi Openremote, cung cấp REST API + Websocket + MQTT), Dịch vụ dự đoán (microservice riêng, chu kỳ 1 giờ), và Client (web dùng TypeScript, di động dùng Java/Android SDK). Các thành phần giao tiếp chủ yếu qua Restful API của Bảng điều khiển.

3. Tại sao nhóm chọn Openremote thay vì tự xây dựng hệ thống IoT từ đầu? Văn bản ghi nhận mục tiêu của nhóm là "tuỳ chỉnh và mở rộng dự án mã nguồn mở Openremote" để tập trung nguồn lực vào việc tích hợp AI và hỗ trợ nền tảng di động — hai điểm mà các hệ thống IoT hiện có còn thiếu — thay vì xây dựng lại phần hạ tầng IoT đã có sẵn.

4. Dịch vụ dự đoán mưa hoạt động theo luồng nào từ khi thu thập dữ liệu đến khi client nhận kết quả? Luồng gồm 11 bước: dịch vụ dự đoán gửi yêu cầu → Bảng điều khiển truy xuất dữ liệu thời tiết từ PostgreSQL → trả dữ liệu cho dịch vụ dự đoán → tiền xử lý (encoding hướng gió, scaling nhiệt độ/độ ẩm) → mô hình đưa ra xác suất mưa ngày mai → gửi kết quả về Bảng điều khiển → lưu vào cơ sở dữ liệu → client yêu cầu → Bảng điều khiển truy vấn → trả kết quả cho client → client hiển thị kèm icon phù hợp.

5. Keycloak đảm nhận những chức năng bảo mật nào trong hệ thống này? Keycloak được tích hợp làm dịch vụ xác thực và uỷ quyền, hỗ trợ đăng nhập một lần (SSO), xác thực hai yếu tố (2FA), OAuth2, OpenID Connect, và SAML. Mỗi lượt đăng nhập tạo ra một token chứa đầy đủ thông tin quyền hạn. Ngoài ra, Keycloak cung cấp API quản lý người dùng, nhóm người dùng và vai trò, được tích hợp vào hệ thống để quản lý quyền truy cập.


Kết luận

Đề tài xây dựng một hệ thống quản lý thiết bị IoT dựa trên nền tảng mã nguồn mở Openremote, mở rộng để hoạt động trên trình duyệt web và ứng dụng di động Android, đồng thời tích hợp mô hình dự đoán mưa BiLSTM kết hợp ECA và Attention như một dịch vụ microservice độc lập. Mô hình đề xuất đạt độ chính xác trung bình 80% trên bộ dữ liệu Vietnam Weather Data và được đánh giá so sánh với các mô hình tiêu chuẩn thông qua bộ dữ liệu Rain in Australia. Đề tài thực hiện được theo hướng kép: vừa hoàn thiện một hệ thống phần mềm đầy đủ chức năng, vừa đề xuất và đánh giá mô hình AI nhằm lấp đầy khoảng trống mà các nghiên cứu IoT trước chưa giải quyết — tức là khai thác triệt để dữ liệu thu thập từ thiết bị cho mục đích dự đoán.