Quynh Cute2021-12-30T16:02:16+07:00
XÁC ĐỊNH CHIẾN LƯỢC THU THẬP DỮ LIỆU KHI BẮT ĐẦU DỰ ÁN IOT
Khi bắt đầu một dự án IoT, hẳn là bạn đã hình dùng sơ bộ về tính kết nối của các thiết bị, về dữ liệu, về cloud, về giám sát thông số qua dashboard,…Sẽ khá là phức tạp và rắc rối cho dù bạn là người làm công nghệ. Nhưng đã bao giờ bạn hỏi về bản chất của triền khai IoT chưa? Theo tôi thì đó chính là thu thập dữ liệu, cho dù giám sát một chậu cây hay nhiệt độ, độ ẩm của kho hàng hay smart home thì đều có một điểm chung là phải thu thập dữ liệu.
Vậy, thu thập như thế nào, dữ liệu gì là phù hợp với dự án của bạn.
Đầu tiên, chúng ta cần hiểu 3 pha của dữ liệu:
- Khởi đầu là dữ liệu được tạo ra và truyền đi. Pha này diễn ra ở lớp thiết bị IoT (như cảm biến, PLC, camera,…) và dữ liệu được truyền qua một mạng lưới.
- Pha thứ 2 là thu thập và tổ chức, lưu trữ lại dữ liệu.
- Cuối cùng sử dụng thực tế các dữ liệu đó.
Theo đó, quá trình dữ liệu được thu thập và lưu trữ sẽ định hình cách mà chúng ta sẽ lựa chọn triển khai với dự án của mình. Cùng xem qua một số vấn đề của 2 yếu tố này:
Truyền dữ liệu (Streaming IoT data)
Trong thế giới IoT, mỗi sự kiện tạo ra dữ liệu. Việc gửi dữ liệu lên cloud liên quan đến các giao thức tiêu chuẩn như MQTT, WAMP, HTTP, CoAP hoặc Sigfox. Mỗi giao thức đi kèm với điểm mạnh riêng và các trường hợp sử dụng cụ thể. Các giao thức này hỗ trợ cập nhật các thay đổi mới nhất hoặc thông tin khác từ thiết bị IoT để gửi nó đến một hệ tập trung nhất định (local server, virtual server, cloud,…) để xử lý.
Ở giai đoạn này, bạn phải quyết định cách dữ liệu được tổng hợp và lưu trữ để sử dụng trong tương lai. Lúc này, cần xác định xem dữ liệu nên được gửi theo thời gian thực hay theo lô (batches). Ngoài ra, bạn cần xác định thứ tự các điểm dữ liệu sẽ được tạo ra để bước phân tích đạt chính xác cao hơn, thứ tự ở đây được hiểu như thứ tự thời gian trước sau hay thứ tự vị trí địa lý để dữ liệu có thể được lưu đúng chỗ.
Người ta thường sử dụng dữ liệu thời gian thực để đạt độ chính xác tối đa. Tuy nhiên, dữ liệu phải truyền liên tục, tạo nên khối lượng rất lớn nếu có nhiều thiết bị. Do đó việc đặt dấu thời gian (timestamp) phù hợp để phân loại dữ liệu đến từ nhiều thiết bị IoT trở thành một thách thức. Và bạn nên cân nhắc hệ thống nào phù hợp với tốc độ và khối lượng của dữ liệu IoT đổ đến tương ứng.
Bạn cũng cần xem xét các ứng dụng IoT cụ thể. Tùy ứng dụng có những yêu cầu riêng về độ trễ, mức tiêu thụ năng lượng và độ chính xác. Một số ứng dụng có thể cho phép độ trễ. Những ứng dụng khác, chẳng hạn như các ứng dụng bảo mật, thời gian rất quan trọng và không có chỗ cho sự chậm trễ.
Nhiều trường hợp không yêu cầu độ chính xác cao và sẽ cho phép gửi dữ liệu theo lô (batches). Dù dữ liệu có thể được gửi theo lô hoặc vi lô (micro-batch), bạn vẫn nhận được bản ghi của tất cả dữ liệu. Quá trình này không theo thời gian thực mà chỉ diễn ra ở những khoảng thời gian đã thiết lập trước (có thể là vài phút hoặc 15, 30 phút như các ứng dụng liên quan nhiệt độ).
Lưu trữ dữ liệu IoT
Lựa chọn phương pháp thu thập tất cả dữ liệu IoT thời gian thực và phân tích tất cả dữ liệu đó nên được hỗ trợ bởi một cơ sở lý luận rõ ràng. Nếu không, khối lượng dữ liệu lớn sẽ tác động nặng nề đến cloud của bạn — ở đây hiểu là tài nguyên lưu thông và tài nguyên lưu trữ cần thiết để duy trì cả hệ.
Bạn có thể chọn lưu trữ tại thiết bị biến (edge), hoặc tại local server hoặc cloud, tùy vào mục đích và yêu cầu của ứng dụng. Đôi khi lưu tạm (buffer) một lượng dữ liệu rồi chuyển đi sau vài ngày sẽ tiết kiệm khá nhiều băng thông. Điển hình như dữ liệu vận hành tàu điện ngầm được thu thập liên tục trong cả chuyến đi và lưu tạm tại đầu máy cho đến khi tàu cập bến mới tải lên server.
Các công nghệ, chiến lược tổ chức lưu trữ sẽ phụ thuộc vào cách bạn sẽ sử dụng dữ liệu như thế nào, xem hình dưới để lựa chọn phương pháp thích hợp:
Các chiến lược ưu tiên khi thu thập dữ liệu
Xin nhắc lại là, phương pháp thu thập và lưu trữ dữ liệu IoT phụ thuộc rất nhiều vào các yêu cầu mục tiêu của một dự án nhất định. Các yêu cầu rất đa dạng như độ chính xác của dữ liệu, mức tiêu thụ năng lượng, thời gian phản hồi và bảo vệ quyền riêng tư. Các phương pháp tiếp cận đã được chứng minh để giảm khối lượng dữ liệu IoT thu thập là tổng hợp (aggregation), lọc (filtering), diễn dịch (interpretation) và nén dữ liệu (compress) ở cấp độ cảm biến hoặc cấp độ cạnh biến (edge) IoT, càng gần nguồn dữ liệu càng tốt.
Sau đây, chúng tôi tóm tắt một số cách tiếp cận thu thập dữ liệu chính:
Chiến lược ưu tiên sự chính xác hoặc tần số
Chiến lược này cần sự đánh đổi giữa tần suất của phép đo và độ chính xác của dữ liệu. Bạn có thể hiểu, đo càng nhiều thì dữ liệu càng trung thực, hạn chế bỏ sót thông tin nhưng bù lại phải lưu trữ nhiều hơn và truyền đi vất vả hơn.
Ví dụ như đo điện áp xoay chiều tiêu thụ của gia đình, tần số lấy mẫu thường là 1s 1 lần, nhìn có vẻ nhỏ nhưng thật ra những thay đổi điện áp đột ngột khi bạn mở máy lạnh hay lò vi sóng thì tần số 1Hz không thể phát hiện được. Nhưng nhìn chung người dùng không quan tâm lắm sự thay đổi đó, chỉ có kỹ sư của nhà máy điện mới quan tâm chi li từng biến đổi. Như vậy mức độ chính xác cao hơn không mang lại bất kỳ giá trị bổ sung nào cả.
Ngược lại, ở các thiết bị theo dõi sức khỏe, tần số đo mẫu là khoảng 10Hz hoặc 100Hz có khi cao hơn, nhằm ghi nhận những thay đổi nhỏ nhất của bệnh nhân một cách chính xác. Hay ứng dụng theo dõi sức khỏe máy móc, động cơ, phải thu thập ở tần số rất cao (1 kHz).
Như vậy, bạn cần giảm tần suất của các phép đo dữ liệu cho phù hợp yêu cầu. Điều này giúp giảm tài nguyên cần thiết cho việc thu thập dữ liệu IoT trong khi vẫn giữ được mục tiêu chính xác đã đề ra trước đó.
Mặt khác, tần số dữ liệu sẽ ảnh hưởng rất lớn đến chi phí duy trì hệ IoT khi bạn sử dụng một nền tảng nào đó. Thông số thường thấy khi tính giá sẽ là số kết nối (connection) và lưu lượng trao đổi (traffic). Trong hình trên là các gói tương ứng với miễn phí traffic 100GB một tháng, tăng 0.15$ mỗi GB. Nhìn có vẻ nhiều, nhưng thử giả định:
- 1000 thiết bị kết nối
- Mỗi thiết bị gửi 1 KB dữ liệu
- Gửi liên tục trong 1 tháng, tương ứng 43,200 phút
Thì khi chia đều traffic miễn phí kia cho 1000 thiết bị trong tháng, tần số nhỏ nhất có thể là 2.4 phút / 1 tin nhắn. Nếu muốn cao hơn, chính xác hơn thì bạn phải trả thêm tiền cho traffic phát sinh rồi.
(bảng thống kê một số ứng dụng và thời gian lấy mẫu – tham khảo sách chính xác)
Chiến lược ưu tiên tối ưu năng lượng
Yếu tố năng lượng thường được đề cao cho những cảm biến sử dụng pin hoặc nguồn năng lượng thấp (như năng lượng mặt trời, gió). Mục tiêu là đạt được độ chính xác trong khi tối ưu được năng lượng sử dụng, gọi chung là tối ưu hiệu năng.
Năng lượng được tiêu thụ ở các thiết bị IoT chủ yếu nằm ở pha truyền nhận dữ liệu. Nhưng các pha khác đều tốn:
- Các cảm biến chủ động (active sensor) cần năng lượng để kích hoạt và tạo ra dữ liệu,
- Tiếp tục vi xử lý cần năng lượng để đọc tín hiệu cảm biến,
- Cuối cùng tốn thêm năng lượng để chuyển sang bộ thu phát sóng RF hoặc các line-driver để truyền đến gateway
Các cảm biến môi trường gắn ở vùng xa có lượng pin giới hạn nên rất cần tối ưu năng lượng để hoạt động lâu nhất có thể, thông thường chúng sẽ gửi dữ liệu vài tiếng hoặc vài ngày 1 lần. Hoặc một ví dụ khác là thiết bị đeo thông minh như đồng hồ theo dõi sức khỏe, chúng chỉ hoạt động khi bạn đưa tay lên và nhìn vào màn hình, còn lại thiết bị sẽ ngủ hoặc hoạt động tối thiểu. Hoặc các vệ tinh không gian, hoạt động với tần số tối thiểu vì lượng pin từ mặt trời rất hạn hẹp.
Do vậy, cần cân nhắc lựa chọn linh kiện, thiết kế firmware, giao thức truyền nhận dữ liệu (ví dụ LPWAN) và tính toán tần suất truyền dữ liệu để tối ưu nhất năng lượng. Tham khảo sơ đồ dưới đây khi bạn muốn cân đối giữa khoảng cách và lượng dữ liệu:
Chiến lược ưu tiên bảo mật
Nếu yêu cầu của dự án mang yếu tố bảo mật cao từ ứng dụng cho tới thiết bị IoT thì ngoài việc thiết lập tường lửa bảo vệ cloud, lớp ứng dụng thì bạn cần quan tâm bảo mật cả phần cứng, kênh truyền tại các gateway hay cảm biến luôn.
Các phương pháp bảo mật tầng thấp thường là tối thiểu hóa số lần quét dữ liệu từ cảm biến, thêm nhiễu vào dữ liệu trước khi truyền đi và mã hóa thông tin giữa các nút.
Khi triển khai IoT, đa phần người ta thường bảo mật ở đường truyền từ gateway đến cloud, đường truyền qua internet, sử dụng các phương án mã hóa như TLS/SSL hay AES. Nhưng ít đơn vị quan tâm đến mã hóa tại điểm đầu-cuối (end-to-end) hoặc mã hóa ở trường thiết bị (Field-level). Vì các chuẩn mã hóa cao cấp như AES khá tốn tài nguyên xử lý nên không được áp dụng tại cảm biến hay thiết bị thu thập.
Phương pháp thêm nhiễu vào dữ liệu được thực hiện tại bước thu thập chứ không phải xử lý dữ liệu. Nó khá đơn giản nên có thể dùng ở ngay cảm biến với khả năng xử lý yếu. Theo nghiên cứu, phương pháp này cho phép trích xuất thông tin trên một lượng lớn người dùng mà không làm lộ bất kì thông tin của các cá nhân nào. Vì mỗi cá nhân sẽ có dữ liệu sai lệch bởi nhiễu nhưng khi tổng hợp nhiều dữ liệu từ cá thể sẽ không làm lệch kết quả thống kê.
Các thuật toán bảo mật dữ liệu đang được sử dụng phổ biến trong IoT là:
Kết luận
Đây chỉ là một phần nhỏ trong vô vàng cách tiếp cận khi bạn bắt đầu thu thập dữ liệu, những chiến lược ưu tiên khác như chi phí, tính dễ dàng, tính mở rộng,…Mỗi sự ưu tiên sẽ có cách lựa chọn công nghệ, đối tác, thiết bị và phương án khác nhau. Do đó, bạn nên tìm hiểu thật kỹ nhu cầu của mình hay khách hàng để có lựa chọn sáng suốt, hợp lý nhé. Hoặc bạn có thể liên hệ đội ngũ Pyriot M2C để được tư vấn nhiều hơn cho vấn đề của mình.