0

AWS IoT kết nối ESP32 sử dụng MQTTs

ESP32 kết nối AWS IoT Core

Trong thời đại Internet Of Things (IoTs) ngày càng nhiều thiết bị được kết nối Internet, trong các giao thức kết nối đó phổ biến nhất là MQTT. Các nền tảng IoT phổ biến đều cung cấp các giải pháp kết nối MQTT như AWS IoT Core (Amazon Web Service), Azure IoT Hub (Microsoft Azure) và Cloud IoT Core (Google).

Nền tảng Amazon Web Service (AWS) cung cấp một loạt các chức năng dựa trên dịch vụ IoT Core, giúp các nhà phát triển và doanh nghiệp có thể kêt nối, quản lý, thu thập và phân tích dữ liệu từ các thiết bị của mình.

  • IoT Core
  • Amazon FreeRTOS
  • IoT 1-Click
  • IoT Analytics
  • IoT Device Defender
  • IoT Device Management
  • IoT Events
  • IoT Greengrass
  • IoT SiteWise
  • IoT Things Graph

Trong bài viết này, ESPITEK sẽ hướng dẫn các bạn kết nối ESP32 tới AWS IoT Core sử dụng MQTTs.

Chuẩn bị công cụ

Tạo Thing trên AWS IoT Core

1. Từ AWS Console truy cập dịch vụ IoT Core, sau đó chọn thẻ Manage > Things

IoT-Core

2. Bắt đầu tạo một Thing bằng cách chọn Create từ góc trên bên phải

3. Chọn Create a single thing và nhập tên của Thing, sau đó chọn Next

Create thing

Create thing

Create thing

4. Chọn Create certificate để tạo Chứng chỉ bảo mật cho Thing, sau khi tạo các bạn Download và lưu trữ các file này để dùng ở các nước sau.

– Có 4 file cần download bao gồm AmazonRootCA1.pem, xxx.cert.pem, xxx.private.keyxxx.public.key.

Create thing

Create thing

Create thing

Create thing

5. Tạo một Policy ủy quyền cho các hành động và truy cập của Thing.

Từ màn hình IoT Core chọn SecurePolicies > Create.

– Các hành động có thể là Subscribe, Publish,…

– Các truy cập có thể là thing, topic,…

Create thing

6. Gán Policy vừa tạo cho Thing.

Từ Mange > Thing chọn Thing đã tạo, tiếp tục chọn SecurityCertificate đã tạo cùng Thing.

Ở góc trên cùng bên phải chọn Actions > Attach policy, một giao diên hiển thị danh sách policy hiện ra, bạn cần chọn tên Policy đã tạo từ bước 5 và chọn Attach

Create thing

Create thing

Create thing

Kết nối ESP32 tới Thing AWS IoT Core

1. Mở dự án mẫu đã download bằng Arduino IDE

2. Thay thế tên Wifi và mật khẩu cho phù hợp

const char* ssid = "Your-SSID";
const char* password = "Your-Password";

3. Thay thế các thông tin đã tạo từ AWS IoT Core của bạn.

Quay lại màn hình IoT Core chọn Settings, sao chép chuỗi Endpoint và thay thế “Your-Endpoint”, mqtt_port = 8883

const char* mqtt_server = "Your-Endpoint";
const int mqtt_port = 8883;

Mở các file Certificate đã tạo dưới dạng text hoặc mở với Nodepad, sao chép nội dung các file AmazonRootCA1.pem, xxx.cert.pem, xxx.private.key thay thế const char* root, const char* certconst char* privateKey.

– Chú ý đến các kí tự “\n”\ ở cuối dòng.

const char* root = \
                   "-----BEGIN CERTIFICATE-----\n"\
                   "................................................................\n"\
                   "-----END CERTIFICATE-----\n";
                   
const char* cert = \
                   "-----BEGIN CERTIFICATE-----\n"\
                   "................................................................\n"\
                   "-----END CERTIFICATE-----\n";
                   
const char* privateKey = \
                         "-----BEGIN RSA PRIVATE KEY-----\n"\
                         "................................................................\n"\
                         "-----END RSA PRIVATE KEY-----\n";

4. Build và Upload Sketch

Kiểm tra kết quả

Từ IoT Core chọn Test

Để Subscribe chọn Subscribe to a topic > nhập topic > Subscribe to topic

Test

Để Publish một gói tin tới thiết bị chọn Publish to a topic > nhập topic > nhập nội dung > Publish to topic

Test

Test

Test

Video hướng dẫn

Tạm kết

Bài viết đã hoàn thành kết nối ESP32 và AWS IoT Core, hy vọng giúp các bạn có được những kiến thức căn bản để có thể xây dựng các thiết bị IoT kết hợp với AWS IoT cho riêng mình.

Để tìm hiểu thêm các chức năng khác của AWS IoT các bạn có thể tham khảo tại docs.aws.amazon.com và theo dõi các bài hướng dẫn về AWS của ESPITEK nhé!

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

thanhbinh89

Trả lời

Email của bạn sẽ không được hiển thị công khai.