Xây dựng hệ thống Internet of Things sử dụng nền tảng AWS IoTs (P1)

Các ứng dụng Internet of Things (IoTs) ngày càng trở nên phổ biến và gần gũi hơn với cuộc sống con người. Amazon Web Services (AWS) cung cấp nền tảng AWS IoT bao gồm một loạt các dịch vụ khác nhau giúp các doanh nghiệp, nhà phát triển có thể xây dựng các ứng dụng IoTs dễ dàng và tiện lợi nhất.

Dịch vụ AWS IoT cung cấp giao tiếp hai chiều an toàn giữa các thực thể IoTs và AWS Cloud (các thực thể có thể là cảm biến, vi điều khiển nhúng hoặc thiết bị thông minh), giúp các nhà phát triển có thể kết nối, quản lý thiết bị hay thu thập, phân tích và trích xuất dữ liệu. AWS IoT bao gồm rất nhiều dịch vụ con với chức năng khác nhau như AWS IoT Core, AWS IoT Device Management, AWS IoT Greengrass, AWS IoT Events

Chuỗi bài viết này nhóm TAPIT IoTs sẽ hướng dẫn các bạn cách sử dụng dịch vụ AWS IoT Core để kết nối và quản lý hệ thống thiết bị Internet of Things.

Phần 1: Hướng dẫn tạo Thing, Device Certificate và Policy

AWS IoT Core là nền tảng đám mây giúp kết nối, xác thực các thiết bị với AWS Cloud hoặc giữa các thiết bị với nhau dễ dàng và bảo mật cao thông qua các giao thức HTTP, WebSockets, MQTT và các giao thức chuẩn công nghiệp khác. Ngoài ra với AWS IoT Core, chúng ta có thể dễ dàng liên các với các dịch vụ khác thông qua các “Rules” như AWS Lambda, Amazon S3, Amazon DynamoDB, Amazon CloudWatch,… để các ứng dụng IoTs trở nên mạnh mẽ hơn nữa.

Để bắt đầu với AWS IoT các bạn cần tạo một tài khoản AWS, tại trang chủ của AWS https://aws.amazon.com/ chọn Create an AWS account. Sau khi điền đầy đủ thông tin sẽ nhận được một mã PIN, sau đó sẽ nhận được cuộc gọi yêu cầu xác thực từ đội ngũ hỗ trợ AWS, các bạn sử dụng mã PIN này để xác thực (Lưu ý là để đăng ký tài khoản thành công phải có thông tin thẻ Credit Card hoặc Debit Card, các bạn có thể đăng ký mở thẻ ở các ngân hàng).

Sau khi đăng ký tài khoản xong, để sử dụng dịch vụ AWS IoT Core chúng ta sẽ sử dụng giao diện quản lý AWS IoT Console, truy cập đường dẫn https://console.aws.amazon.com/iot/home và chọn Get Started sau đó sử dụng tài khoản đã đăng ký để đăng nhập vào.

Bước 1: Đăng ký thiết bị với Registry

Các thiết bị kết nối đến AWS IoT được xem là các “Things” trong registry. Registry cho phép chúng ta lưu trữ thông tin của tất cả các thiết bị được kết nối với AWS IoT. Có nghĩa rằng mỗi thiết bị thực tế có kết nối internet của chúng ta sẽ được đại diện bởi một Thing, trạng thái của thiết bị (state) sẽ được biểu thị thông qua Thing Shadow, qua đó chúng ta có thể thực hiện các truy vấn về trạng thái của thiết bị (cập nhật, truy xuất, xóa,…) (chi tiết về Thing Shadow mình sẽ hướng dẫn ở bài viết tiếp theo nhé).

Tại giao diện Console, ở thanh điều hướng bên trái chọn Manage->Things->Register a thing:

Chọn Create a Single Thing:

Đặt tên cho thiết bị muốn đăng ký (có thể là NodeMCU, Arduino, Light,…), ở đây mình đặt tên là TAPIT-IoT sau đó cuộn xuống dưới cùng và chọn Next:

 

Bước 2: Tạo và kích hoạt chứng chỉ xác thực cho thiết bị

Quá trình kết nối và giao tiếp giữa thiết bị và AWS IoT được bảo vệ thông qua chứng chỉ xác thực X.509. Chúng ta có thể sử dụng chứng chỉ được tạo bởi AWS IoT hoặc sử dụng chứng chỉ của riêng mình. Trong hướng dẫn này mình sẽ sử dụng chứng chỉ được tạo bởi AWS IoT.

Chọn Create Certificate:

Tại trang Certificacte Created! chọn download Certificate, Private keyRoot CA (không cần download Public key) để lưu trữ lại để sử dụng sau này. Sau đó chọn Activate để tiếp tục.

Chọn Done để quay lại màn hình Console:

Bước 3: Tạo AWS IoT Policy

Sau khi tạo chứng chỉ xác thực cho thiết bị, chúng ta cần một thao tác nữa là tạo policy cho chứng chỉ. Policy là một đối tượng của AWS, khi được liên kết với một danh tính hoặc tài nguyên (ví dụ certificate) sẽ có nhiệm vụ xác định các quyền của danh tính hoặc tài nguyên đó. Nếu certificate được dùng để AWS IoT xác thực danh tính của thiết bị khi kết nối hoặc gửi dữ liệu đến AWS IoT thì policy được liên kết sẽ quyết định những quyền cụ thể mà thiết bị đó có thể được phép thực hiện sau khi xác thực thành công (ví dụ publish hoặc subscribe). Vì vậy chúng ta phải tạo AWS IoT policy thích hợp và liên kết với chứng chỉ của thiết bị.

Để tạo policy, ở thanh điều hướng bên trái chọn Secure->Policies->Create a Policy:

Đặt tên cho policy ở trường Name, ở đây mình đặt là TAPIT-IoT-Policy.

Tại trường Action sẽ là tập hợp các quyền của policy đó. Ví dụ: iot:connect, iot:Publish, iot:Subscribe (có thể nhập iot:* để cho phép thực hiện tất cả các hoạt động liên quan đến AWS IoT).

Tại trường Resource ARN nhập vào ARN cụ thể của client hoặc nhập * để cho phép tất cả các client.

Tại Effect chọn Allow để policy được khả dụng, sau đó chọn Create:

Bước 4: Liên kết Policy với chứng chỉ xác thực của thiết bị

Tại thanh điều hướng bên trái chọn Secure->Certificate, chọn icon hình dấu 3 chấm tại góc trên bên phải của certificate và chọn Attach Policy:

Chọn policy đã tạo và chọn Attach:

Bước 5: Đính kèm chứng chỉ xác thực vào Thing

Sau khi tạo xong chứng chỉ xác thực và xác định các quyền của chứng chỉ đó thông qua policy, bước cuối cùng chúng ta sẽ đính kèm chứng chỉ đó vào Thing đại diện cho thiết bị. Tương tự như bước trên, tại thanh điều hướng bên trái chọn Secure->Certificate, chọn icon hình dấu 3 chấm tại góc trên bên phải của certificate và chọn Attach Thing:

Chọn Thing đã tạo và chọn Attach:

Như vậy là chúng ta đã tạo xong Thing, certificate và policy cho Thing đó. Các bạn lưu ý là một policy có thể liên kết được với nhiều certificate và một certificate cũng có thể liên kết được với nhiều Thing nhé. Ở những bài tiếp theo nhóm TAPIT IoTs sẽ hướng dẫn cách tổ chức lưu trữ, quản lý, truy vấn trạng thái thiết bị sử dụng Device Shadow Serivce kết hợp các giao thức và ứng dụng khác nhau, cùng đón xem nhé.

Chúc các bạn thành công!

Xem tiếp Phần 2: Tương tác với Device Shadow Service sử dụng giao thức MQTT
Xem thêm:  Tổng hợp hướng dẫn Internet of Things với NodeMCU ESP8266 và ESP32

Nhóm TAPIT IoTs