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ụ
- ESP32-DevKitC
- Cáp USB Micro
- Cài đặt ESP32 trên Arduino IDE
- Cài đặt thư viện PubSubClient trên Arduino IDE
- Download dự án mẫu (Source code)
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
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
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.key và xxx.public.key.
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 Secure > Policies > Create.
– Các hành động có thể là Subscribe, Publish,…
– Các truy cập có thể là thing, topic,…
6. Gán Policy vừa tạo cho Thing.
Từ Mange > Thing chọn Thing đã tạo, tiếp tục chọn Security và Certificate đã 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
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* cert và const 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
Để 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
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!