Site icon TAPIT

Thiết kế API tương tác ứng dụng website khi sử dụng AWS IoT Core

Mặc dù các dịch vụ riêng biệt trong AWS như IoT Core, Device Shadow, DynamoDB,… đều cung cấp các phương thức để ứng dụng có thể kết nối và trao đổi dữ liệu qua API hay SDK, tuy nhiên một hệ thống IoT hoàn chỉnh đòi hỏi phải thiết kế riêng một tập hợp các API lớp ứng dụng theo một tiêu chuẩn chung nhất để các ứng dụng có thể dễ dàng tương tác đảm bảo khả năng dễ dàng mở rộng, kế thừa và bảo trì hệ thống nâng cấp về sau.
Bài viết này sẽ chia sẻ về ví dụ thiết kế hệ thống nhà thông minh ứng dụng nền tảng điện toán đám mây AWS, trong đó sử dụng dịch vụ Amazon API Gateway kết hợp AWS Lambda làm dịch vụ phụ trợ (backend) để thiết kế một bộ gồm các API theo tiêu chuẩn REST giúp ứng dụng bên ngoài tương tác truy vấn dữ liệu. Tham khảo từ ví dụ này, các bạn cũng có thể xây dựng các API phù hợp cho hệ thống IoT của chính các bạn. 


Hình 1: Sơ đồ kiến trúc thiết kế API cho ứng dụng website theo kiến trúc REST

Với thiết kế hệ thống nhà thông minh, nhóm thực hiện thiết kế 4 tài nguyên để ứng dụng tương tác với hệ thống như sau:

Đọc dữ liệu reported của Thing trong Device Shadow cảm biến trong khoảng thời gian chỉ định:

Đọc dữ liệu cảm biến trong khoảng thời gian chỉ định:

Gửi lệnh điều khiển trạng thái đến thiết bị:

Gửi lệnh cấu hình ngưỡng cảnh báo khí ga đến thiết bị:

API Gateway theo kiến trúc REST trên nền giao thức HTTP nên sử dụng mô hình request/response gồm 4 quá trình [1]:


Hình 2: Quá trình hoạt động của các thành phần API Gateway theo mô hình request/response

Cùng với nội dung các bài phân tích và chia sẻ trước, có thể thấy AWS IoT là dịch vụ cung cấp các dịch vụ nền tảng về IoT sâu rộng, trong đó dịch vụ AWS IoT Core đóng vai trò trung tâm để các thiết bị IoT có thể kết nối đến AWS và làm việc với các dịch vụ đám mây khác. Nền tảng AWS cung cấp các dịch vụ đa dạng hoàn toàn đáp ứng được đầy đủ các yêu cầu thiết kế của một hệ thống IoT bất kỳ.

Tìm hiểu thêm:
Tổng hợp hướng dẫn Internet of Things với NodeMCU ESP8266 và ESP32
Tổng hợp các bài hướng dẫn Lập trình vi điều khiển STM32
[HỌC ONLINE: LẬP TRÌNH VI ĐIỀU KHIỂN STM32, VI XỬ LÝ ARM CORTEX – M]
Fanpage Cộng đồng Kỹ thuật TAPIT: TAPIT – Learning, Research and Sharing Community

Chuỗi bài viết được thực hiện và chia sẻ bởi LCV.Khải và Các nhóm nghiên cứu tại Cộng đồng Kỹ thuật TAPIT
Chúc các bạn thành công!

Tài liệu tham khảo
[1] AWS, “Create a REST API with Lambda integrations”,  Amazon API Gateway Developer Guide, Amazon Web Service, 2020.