Site icon TAPIT

Hướng dẫn gửi cảnh báo qua Email sử dụng AWS IoT Core và Amazon SNS

Trong các bài trước, mình đã hướng dẫn các bạn cách tạo ứng dụng IoTs với AWS IoT Core và ESP32, các bạn có thể xem chuỗi bài hướng dẫn được tổng hợp tại đây. Trong bài viết này mình sẽ hướng dẫn các bạn cách thực hiện chức năng gửi cảnh báo (push notification) qua Email sử dụng dịch vụ Amazon SNS, đây cũng là tính năng rất cần thiết trong các hệ thống IoT.


1. Tổng quan quy trình thực hiện:

2. Giới thiệu dịch vụ Amazon SNS:

Amazon Simple Notification Service (Amazon SNS) là một dịch vụ của AWS giúp phân phối và quản lí việc gửi tin nhắn (message) đến các điểm cuối (enpoint) hoặc các khách hàng (client) đã đăng kí đến Amazon SNS Topic.

Amazon SNS hoạt động theo mô hình publish/subscribe, vì vậy có 2 loại client tương tác với dịch vụ này là publisher (bên gửi) và subscriber (bên nhận). Quá trình gửi và nhận tin được thực hiện theo cơ chế bất đồng bộ, các publisher sẽ thực hiện gửi tin đến một điểm cuối đóng vai trò kênh liên lạc gọi là topic, các subscriber (có thể là địa chỉ email, web server hay các dịch vụ khác của AWS như Amazon SQS, Labda,…) sẽ nhận thông báo bằng cách sử dụng một trong các giao thức được hỗ trợ như HTTP/S, email, SMS, Amazon SQS,…

Khi sử dụng SNS, chúng ta cần tạo topic và thực hiện kiểm soát quyền truy cập vào topic bằng cách định nghĩa các policy (chính sách) để xác định các publisher và subscriber có thể giao tiếp với topic được tạo. Mỗi topic sẽ có một tên định danh duy nhất xác định điểm cuối để các client thực hiện publish/subscribe gọi là địa chỉ ARN.

3. Gửi cảnh báo qua Email

Tạo SNS Topic:

Subscribe đến SNS Topic

Tạo SNS Rule

Nếu theo dõi các chuỗi bài hướng dẫn trước, các bạn sẽ biết rằng dữ liệu từ thiết bị sẽ gửi đến AWS IoT Core qua giao thức MQTT đến các MQTT topic, giả sử chúng ta có dữ liệu cảnh báo cần gửi đến SNS topic để chuyển tiếp đến Email, cách đơn giản nhất là sử dụng AWS IoT Rule, tính năng này cho phép viết các câu lệnh SQL SELECT để trích xuất dữ liệu từ các MQTT Topic và gửi đến các dịch vụ AWS khác  như SNS, DynamoDB, Lambda,… Trong ví dụ này chúng ta sẽ thực hiện một ví dụ đơn giản là viết Rule để chuyển tiếp tin nhắn “Hello, Amazon SNS” từ thiết bị đến địa chỉ Email đã đăng ký subscription đến SNS_Topic_Demo ở bước trên.

.

4. Demo

Để demo tính năng vừa tạo, mình sử dụng phần mềm MQTT.fx để kết nối và gửi message đến Topic ‘my_sns/topic’, khi message được gửi đến Topic ‘my_sns/topic’ thì sẽ trigger SNS Rule, sau đó messsage được đẩy qua Amazon SNS sau đó gửi về địa chỉ Email đã đăng kí.

Lưu ý: gói tin phải ở định dạng JSON và nội dung phải nằm trong trường “default”.

Kết quả sẽ chuyển đến tại địa chỉ Email đã đăng ký:

Như vậy mình đã hướng dẫn các bạn ví dụ đơn giản để thực hiện gửi cảnh báo từ thiết bị đến Email kết hợp giữa AWS IoT Core và Amazon SNS, hy vọng sẽ giúp các bạn hoàn thiện ứng dụng IoT của mình. Chúc các bạn thành công!

Nhóm TAPIT IoTs