I. Tổng quan đề tài Xây dựng IoT Gateway trên nền tảng EdgeX
Trong kỷ nguyên công nghệ số, Internet of Things (IoT) đã trở thành một khái niệm phổ biến, mang lại những ứng dụng đột phá cho cuộc sống. Báo cáo đề tài nghiên cứu khoa học sinh viên (NCKH 2023) mã số 34-SV-2023-ĐT1 tập trung vào việc xây dựng IoT Gateway trên nền tảng EdgeX Foundry. Đây là một hướng tiếp cận hiện đại, giải quyết các bài toán về xử lý dữ liệu phân tán và hiệu quả. Một IoT Gateway đóng vai trò là cầu nối trung tâm, kết nối các cảm biến, thiết bị thông minh với đám mây. Nhiệm vụ của nó không chỉ là chuyển tiếp dữ liệu mà còn tiền xử lý, lọc và phân tích thông tin ngay tại biên. Việc này giúp giảm thiểu độ trễ, tiết kiệm băng thông và tăng cường bảo mật. Đề tài này khai thác sức mạnh của Edge Computing (Điện toán biên), một kiến trúc cho phép xử lý dữ liệu gần với nguồn phát sinh nhất. Thay vì gửi toàn bộ dữ liệu thô lên đám mây, các tác vụ tính toán được thực hiện tại các nút biên, giúp hệ thống phản hồi nhanh hơn và hoạt động ổn định ngay cả khi mất kết nối Internet. Nền tảng được lựa chọn là EdgeX Foundry, một framework mã nguồn mở, linh hoạt và có khả năng tương tác cao. EdgeX Foundry cung cấp một kiến trúc dựa trên microservices trong IoT, cho phép các nhà phát triển dễ dàng tích hợp, thay thế và mở rộng các thành phần hệ thống.
1.1. Vai trò của Điện toán biên Edge Computing trong hệ thống IoT
Edge Computing là một kiến trúc được thiết kế để tối ưu hóa hệ thống điện toán đám mây. Nó cho phép xử lý dữ liệu tại vùng biên, nơi gần với các thiết bị IoT nhất. Lợi ích chính của mô hình này là giảm độ trễ, vì các quyết định có thể được đưa ra cục bộ mà không cần chờ phản hồi từ máy chủ trung tâm. Điều này đặc biệt quan trọng trong các ứng dụng yêu cầu thời gian thực. Hơn nữa, xử lý dữ liệu tại biên giúp giảm đáng kể lượng dữ liệu cần truyền lên đám mây, tiết kiệm chi phí băng thông và lưu trữ. Một hệ thống biên có thể tổng hợp, lọc và chỉ gửi đi những thông tin quan trọng. Điều này cũng tăng cường bảo mật, vì dữ liệu nhạy cảm có thể được xử lý tại chỗ thay vì truyền qua mạng công cộng. Báo cáo trích dẫn, "Điện toán biên cho phép làm rõ phạm vi và tài nguyên tại biên để tối ưu hoá việc phân tích, xử lý, làm giảm các chi phí vận hành".
1.2. Giới thiệu nền tảng EdgeX Foundry là gì và mục tiêu đề tài
EdgeX Foundry là gì? Đây là một nền tảng phần mềm trung gian, mã nguồn mở, được thiết kế cho các ứng dụng Edge Computing. Nó cung cấp một framework linh hoạt và có khả năng tương tác cao, giúp đơn giản hóa việc kết nối và quản lý các thiết bị IoT đa dạng. Kiến trúc của EdgeX dựa trên các microservices, cho phép các thành phần hoạt động độc lập và dễ dàng thay thế. Mục tiêu chính của đề tài luận văn IoT Gateway này là xây dựng một IoT Gateway hoàn chỉnh sử dụng EdgeX Foundry. Cụ thể, hệ thống sẽ có khả năng thu thập dữ liệu từ cảm biến, xử lý cục bộ và gửi đến các ứng dụng phía bắc. Đề tài cũng hướng tới việc mô phỏng và đánh giá hiệu năng của gateway trong một kịch bản thực tế, sử dụng các công cụ như Postman và MQTT broker. Đây là một bước quan trọng trong việc làm chủ công nghệ và tạo ra các giải pháp IoT hiệu quả cho tương lai.
II. Thách thức chính khi triển khai IoT Gateway và vai trò EdgeX
Việc triển khai IoT Gateway trong các hệ thống thực tế đối mặt với nhiều thách thức đáng kể. Một trong những vấn đề lớn nhất là sự thiếu tương thích giữa các thiết bị. Các nhà sản xuất khác nhau sử dụng các giao thức và định dạng dữ liệu riêng, gây khó khăn cho việc tích hợp chúng vào một hệ thống duy nhất. Điều này đòi hỏi các giải pháp gateway phải đủ linh hoạt để hỗ trợ nhiều chuẩn kết nối. Một thách thức khác đến từ mô hình điện toán đám mây truyền thống. Việc gửi toàn bộ dữ liệu từ hàng tỷ thiết bị cảm biến lên đám mây để xử lý gây ra độ trễ lớn và tiêu tốn băng thông mạng. Trong nhiều ứng dụng công nghiệp hoặc y tế, độ trễ vài giây có thể dẫn đến hậu quả nghiêm trọng. Nền tảng EdgeX Foundry ra đời để giải quyết những vấn đề này. Với kiến trúc EdgeX module hóa, nó cho phép tạo ra các Device Service EdgeX riêng biệt cho từng loại giao thức. Điều này giúp chuẩn hóa dữ liệu ngay tại gateway trước khi gửi vào hệ thống lõi. Bằng cách thực hiện xử lý dữ liệu tại biên, EdgeX giảm tải cho hệ thống đám mây, cho phép phản ứng tức thời và đảm bảo hoạt động liên tục. Báo cáo nhấn mạnh, EdgeX Foundry "đơn giản hóa và tiêu chuẩn hóa nền tảng cho các kiến trúc điện toán biên", tạo điều kiện cho một hệ sinh thái IoT tương tác và mở rộng.
2.1. Vấn đề tương thích và xử lý dữ liệu trong các mô hình IoT
Sự đa dạng của các thiết bị IoT là một con dao hai lưỡi. Nó mang lại nhiều lựa chọn nhưng cũng tạo ra một rào cản lớn về khả năng tương tác. Các cảm biến có thể giao tiếp qua Modbus, MQTT, BLE, hoặc các giao thức độc quyền khác. Một IoT Gateway hiệu quả phải có khả năng "nói" được nhiều "ngôn ngữ" này. Ngoài ra, dữ liệu thô từ cảm biến thường nhiễu và cần được tiền xử lý. Ví dụ, một cảm biến nhiệt độ có thể tạo ra hàng nghìn điểm dữ liệu mỗi giây. Việc lọc, chuẩn hóa và tổng hợp dữ liệu này tại gateway là cần thiết để có được thông tin hữu ích và giảm gánh nặng xử lý cho các hệ thống cấp cao hơn. Đây là những bài toán mà một đồ án tốt nghiệp IoT cần giải quyết triệt để.
2.2. Hạn chế của mô hình Cloud centric và sự cần thiết của biên
Mô hình tập trung vào đám mây (Cloud-centric) đã bộc lộ nhiều hạn chế khi quy mô hệ thống IoT tăng lên. Độ trễ mạng là vấn đề lớn nhất. Thời gian để dữ liệu di chuyển từ cảm biến lên đám mây và nhận lại lệnh điều khiển có thể quá dài cho các ứng dụng tự động hóa. Chi phí băng thông cũng là một yếu tố cần cân nhắc khi truyền tải một lượng lớn dữ liệu video hoặc cảm biến. Hơn nữa, sự phụ thuộc hoàn toàn vào kết nối Internet khiến hệ thống dễ bị gián đoạn. Edge Computing cung cấp một giải pháp thay thế hiệu quả. Bằng cách đặt năng lực tính toán tại biên, hệ thống có thể hoạt động độc lập, ra quyết định nhanh chóng và chỉ gửi những dữ liệu đã được tinh lọc lên đám mây. Vai trò của IoT Gateway lúc này được nâng cấp từ một bộ chuyển tiếp đơn thuần thành một trung tâm xử lý thông minh.
III. Hướng dẫn chi tiết kiến trúc microservices của EdgeX Foundry
Nền tảng EdgeX Foundry được xây dựng dựa trên kiến trúc microservices, một phương pháp thiết kế phần mềm hiện đại. Thay vì một ứng dụng nguyên khối, EdgeX bao gồm nhiều dịch vụ nhỏ, độc lập, giao tiếp với nhau thông qua REST API hoặc message bus. Hướng dẫn EdgeX Foundry trong tài liệu gốc mô tả chi tiết cấu trúc này, cho thấy sự linh hoạt vượt trội. Kiến trúc này được chia thành nhiều lớp dịch vụ logic. Lớp Thiết bị (Device Services) chịu trách nhiệm giao tiếp trực tiếp với các thiết bị vật lý. Lớp Lõi (Core Services) là trung tâm của hệ thống, quản lý siêu dữ liệu (Metadata), lưu trữ dữ liệu cảm biến (Core Data) và điều phối các lệnh (Command). Lớp Hỗ trợ (Supporting Services) cung cấp các chức năng bổ sung như lập lịch và công cụ quy tắc. Cuối cùng, Lớp Ứng dụng (Application Services) xử lý và xuất dữ liệu đến các hệ thống bên ngoài. Mỗi microservice có thể được triển khai, nâng cấp hoặc thay thế độc lập mà không ảnh hưởng đến toàn bộ hệ thống. Điều này không chỉ giúp đẩy nhanh quá trình phát triển mà còn tăng cường khả năng phục hồi và mở rộng của mô hình hệ thống IoT. Tài liệu nêu rõ: "Bất kỳ phần nào của nền tảng có thể được nâng cấp, thay thế hoặc nâng cấp bởi các dịch vụ vi mô hoặc thành phần phần mềm khác."
3.1. Phân tích các lớp dịch vụ chính trong kiến trúc EdgeX
Cấu trúc của EdgeX Foundry được tổ chức thành các lớp rõ ràng. Device Service EdgeX là lớp giao tiếp với thế giới vật lý, chuyển đổi dữ liệu từ các giao thức như Modbus, MQTT, BLE thành định dạng chuẩn của EdgeX. Core Services bao gồm: Core Data để lưu trữ các sự kiện và kết quả đọc từ cảm biến; Metadata để quản lý thông tin về thiết bị và cấu hình của chúng; và Command để gửi lệnh điều khiển ngược lại các thiết bị. Supporting Services chứa các công cụ quan trọng như Rules Engine (eKuiper) để phân tích dữ liệu tại biên. Cuối cùng, Application Service EdgeX là cổng ra, nơi dữ liệu được định dạng, lọc và gửi đến các điểm cuối như cơ sở dữ liệu hoặc nền tảng đám mây. Sự phân chia này tạo ra một hệ thống logic và dễ quản lý.
3.2. Luồng hoạt động từ thu thập dữ liệu đến thực thi hành động
Một luồng hoạt động cơ bản trong EdgeX bắt đầu khi một Device Service thu thập dữ liệu từ cảm biến. Dữ liệu này được đóng gói thành một đối tượng "Event" và gửi đến Core Data thông qua REST API hoặc message bus. Core Data lưu trữ sự kiện này và đồng thời đẩy nó lên một message bus khác cho các dịch vụ ứng dụng. Một Application Service hoặc Rules Engine (eKuiper) sẽ lắng nghe trên bus này, nhận dữ liệu để phân tích. Nếu một quy tắc được kích hoạt (ví dụ: nhiệt độ vượt ngưỡng), Rules Engine sẽ gọi dịch vụ Command. Dịch vụ Command sau đó sẽ gửi một yêu cầu hành động (ví dụ: bật quạt) đến Device Service tương ứng. Cuối cùng, Device Service dịch lệnh này thành giao thức cụ thể của thiết bị và thực thi hành động. Quy trình khép kín này cho phép tự động hóa và phản ứng nhanh ngay tại biên.
IV. Phương pháp xây dựng Raspberry Pi IoT Gateway với EdgeX
Đề tài nghiên cứu khoa học sinh viên này trình bày một phương pháp thực tiễn để xây dựng IoT Gateway bằng cách sử dụng bo mạch Raspberry Pi và nền tảng EdgeX Foundry. Việc lựa chọn Raspberry Pi làm phần cứng là hợp lý do chi phí thấp, cộng đồng hỗ trợ lớn và đủ sức mạnh để chạy các microservices của EdgeX. Đây là một nền tảng mẫu lý tưởng cho việc phát triển và thử nghiệm các giải pháp điện toán biên. Quá trình triển khai bắt đầu bằng việc cài đặt hệ điều hành và các thành phần của EdgeX Foundry lên Raspberry Pi, thường thông qua Docker để quản lý các microservices một cách dễ dàng. Bước tiếp theo là kết nối cảm biến với gateway. Trong đề tài này, cảm biến nhiệt độ và độ ẩm DHT11 được sử dụng. Một Device Service tùy chỉnh hoặc có sẵn (ví dụ: Device Service cho GPIO hoặc MQTT) được cấu hình để đọc dữ liệu từ cảm biến này. Việc định nghĩa thiết bị và các tài nguyên của nó được thực hiện thông qua Device Profile và đăng ký với dịch vụ Metadata. Quá trình này đảm bảo rằng toàn bộ hệ thống EdgeX "hiểu" được thiết bị mới và biết cách tương tác với nó. Đây là một bước quan trọng trong việc hiện thực hóa một mô hình hệ thống IoT linh hoạt.
4.1. Lựa chọn phần cứng Raspberry Pi và cảm biến DHT11
Đề tài sử dụng Raspberry Pi 3B+, một máy tính nhúng mạnh mẽ và linh hoạt. Bo mạch này cung cấp đủ tài nguyên CPU và bộ nhớ để vận hành môi trường Docker chứa các dịch vụ của EdgeX. Cảm biến được chọn là DHT11, một cảm biến phổ biến để đo nhiệt độ và độ ẩm. DHT11 có chi phí thấp, dễ dàng kết nối với các chân GPIO của Raspberry Pi IoT Gateway và cung cấp đầu ra số đã được hiệu chỉnh. Sự kết hợp giữa Raspberry Pi và DHT11 tạo ra một nút biên hoàn chỉnh, có khả năng thu thập dữ liệu môi trường và xử lý cục bộ, là một ví dụ điển hình cho các báo cáo thực tập IoT.
4.2. Cấu hình Device Profile và Metadata để quản lý thiết bị
Để EdgeX có thể quản lý một thiết bị mới, cần phải tạo một Device Profile. Đây là một tệp YAML mô tả loại thiết bị, các tài nguyên (ví dụ: 'temperature', 'humidity'), kiểu dữ liệu và các lệnh mà thiết bị hỗ trợ. Sau khi Device Profile được tải lên dịch vụ Metadata, một thiết bị cụ thể (ví dụ: 'DHT11-LivingRoom') có thể được đăng ký, liên kết với profile đó và gán cho một Device Service phù hợp. Dịch vụ Metadata đóng vai trò như một sổ đăng ký trung tâm, chứa thông tin về tất cả các thiết bị được kết nối. Điều này cho phép các dịch vụ khác truy vấn và tương tác với thiết bị một cách đồng nhất mà không cần biết chi tiết về giao thức cơ bản.
V. Kết quả mô phỏng và đánh giá hiệu năng IoT Gateway thực tế
Sau khi hoàn tất việc triển khai IoT Gateway, giai đoạn mô phỏng và đánh giá đóng vai trò quan trọng để xác thực tính đúng đắn và hiệu quả của hệ thống. Đề tài đã sử dụng phần mềm Postman, một công cụ mạnh mẽ để làm việc với API. Postman được dùng để gửi các yêu cầu REST API đến các dịch vụ của EdgeX, chẳng hạn như tạo mới thiết bị, đọc dữ liệu từ Core Data, hoặc gửi lệnh điều khiển thông qua dịch vụ Command. Quá trình này giúp kiểm thử từng chức năng của gateway một cách độc lập và có hệ thống. Một phần quan trọng của việc đánh giá là kiểm tra khả năng xử lý dữ liệu tại biên. Công cụ quy tắc eKuiper, được tích hợp sẵn trong lớp Hỗ trợ của EdgeX, được sử dụng để tạo các quy tắc phân tích luồng dữ liệu. Ví dụ, một quy tắc được thiết lập để phát hiện khi nhiệt độ vượt quá một ngưỡng nhất định và tự động kích hoạt một hành động. Dữ liệu sau khi được xử lý sẽ được xuất ra một MQTT broker. Các ứng dụng hoặc người dùng có thể đăng ký vào topic của broker này để giám sát và nhận thông báo theo thời gian thực. Kết quả mô phỏng cho thấy IoT Gateway xây dựng trên nền tảng EdgeX hoạt động ổn định và đáp ứng tốt các yêu cầu đề ra.
5.1. Sử dụng REST API và Postman để kiểm thử hệ thống
Tài liệu gốc mô tả chi tiết việc sử dụng Postman để tương tác với các endpoint API của EdgeX. Các yêu cầu POST được gửi đến {{address}}:59881/api/v2/device để đăng ký thiết bị mới với dịch vụ Metadata. Các yêu cầu GET được gửi đến {{address}}:59880/api/v2/reading/device/name/{name} để truy xuất các bản đọc gần nhất từ Core Data. Phương pháp này cho phép nhóm nghiên cứu xác minh rằng dữ liệu từ cảm biến được thu thập và lưu trữ chính xác. Việc sử dụng API để kiểm thử là một phương pháp chuyên nghiệp, giúp tự động hóa quy trình và đảm bảo tính nhất quán của hệ thống.
5.2. Trích xuất và giám sát dữ liệu qua MQTT Broker
Một trong những mục tiêu cuối cùng của gateway là cung cấp dữ liệu cho các ứng dụng khác. Application Service EdgeX được cấu hình để xuất dữ liệu đến một MQTT Broker. Dịch vụ này sẽ định dạng dữ liệu (ví dụ: thành JSON) và đẩy vào một topic cụ thể (ví dụ: edgex/events/dht11). Bất kỳ client nào, chẳng hạn như một dashboard trực quan hóa hoặc một ứng dụng di động, đều có thể đăng ký vào topic này để nhận dữ liệu cảm biến gần như ngay lập tức. Mô hình này rất linh hoạt và phổ biến trong các mô hình hệ thống IoT, cho phép kết nối nhiều hệ thống khác nhau một cách dễ dàng.
VI. Tương lai của đề tài và hướng phát triển mới cho EdgeX IoT
Báo cáo đề tài NCKH 2023 về xây dựng IoT Gateway trên nền tảng EdgeX đã đạt được những thành công cơ bản, tạo ra một gateway hoạt động với các chức năng cốt lõi. Tuy nhiên, đây chỉ là bước khởi đầu cho một chặng đường dài phát triển và tối ưu hóa. Các hướng phát triển trong tương lai rất đa dạng và hứa hẹn. Một trong những ưu tiên hàng đầu là tối ưu hóa hiệu suất. Mặc dù Raspberry Pi là một nền tảng tốt để bắt đầu, việc triển khai trên các thiết bị biên có tài nguyên hạn chế hơn đòi hỏi phải tối ưu hóa mã nguồn và cấu hình các microservices để giảm mức sử dụng CPU và bộ nhớ. Một hướng đi khác là tăng cường bảo mật. Các hệ thống IoT Gateway là mục tiêu tiềm năng của các cuộc tấn công mạng. Do đó, việc tích hợp các biện pháp bảo mật mạnh mẽ hơn, như mã hóa đầu cuối, quản lý danh tính và truy cập, là cực kỳ cần thiết. Việc mở rộng tính năng cũng là một hướng quan trọng, ví dụ như tích hợp các thuật toán học máy (Machine Learning) ngay tại biên để thực hiện phân tích dự đoán. Những cải tiến này sẽ nâng cao giá trị của các đồ án tốt nghiệp IoT và góp phần thúc đẩy ứng dụng của EdgeX Foundry trong thực tiễn.
6.1. Tổng kết thành tựu của đề tài nghiên cứu khoa học sinh viên
Đề tài đã hoàn thành xuất sắc các mục tiêu đề ra, bao gồm việc nghiên cứu thành công kiến trúc EdgeX, triển khai nền tảng trên phần cứng Raspberry Pi, và xây dựng một IoT Gateway có khả năng thu thập, xử lý và xuất dữ liệu. Nhóm nghiên cứu đã chứng minh được tính khả thi của việc sử dụng EdgeX Foundry cho các dự án nghiên cứu khoa học sinh viên. Kết quả này không chỉ là một sản phẩm kỹ thuật mà còn là một tài liệu tham khảo quý giá, cung cấp một hướng dẫn EdgeX Foundry thực tiễn cho những người đi sau.
6.2. Các hướng tối ưu hóa hiệu suất và bảo mật cho Gateway
Để đưa giải pháp ra thực tế, các cải tiến là cần thiết. Về hiệu suất, có thể nghiên cứu việc biên dịch các dịch vụ sang mã nhị phân gốc thay vì chạy trong container để giảm overhead. Về bảo mật, tài liệu đề xuất việc triển khai các dịch vụ bảo mật của EdgeX, quản lý secret và thiết lập các quy tắc tường lửa nghiêm ngặt trên IoT Gateway. Thêm vào đó, việc tích hợp các công nghệ mới như blockchain để đảm bảo tính toàn vẹn của dữ liệu hoặc triển khai các mô hình AI/ML được tối ưu hóa cho thiết bị biên (TinyML) sẽ mở ra những khả năng ứng dụng mới, biến chiếc gateway thành một nút biên thực sự thông minh và an toàn.