Khi thực hiện một dự án IoT sử dụng công nghệ mạng truyền thông không dây LoRa theo tiêu chuẩn LoRaWAN, chúng ta thường sử dụng LoRaWAN Server The Things Network (TTN) do tính miễn phí và giao diện dễ dàng sử dụng của nó. Nhưng có một nhu cầu mà chắc hẳn không ít người muốn thực hiện đó là đưa dữ liệu Payload từ TTN sang một Cloud Database khác như Firebase Realtime Database của Google để sử dụng cho các Application như Web hoặc ứng dụng Android, iOS, …
Bài viết này, mình sẽ hướng dẫn các bạn cách đưa dữ liệu Payload từ Server The Things Network sang Firebase Realtime Database.
I/Cài đặt Firebase Realtime Database:
Firebase Realtime Database là cơ sở dữ liệu được lưu trữ trên đám mây. Dữ liệu được lưu trữ dưới dạng JSON và được đồng bộ hóa trong thời gian thực cho mọi máy khách được kết nối. Khi có một máy khách cập nhật dữ liệu, tất cả các máy khách khác đều nhận được dữ liệu mới nhất này từ cơ sở dữ liệu). Firebase Realtime Database cung cấp các Restful endpoint cho phép việc tương tác với cơ sở dữ liệu dễ dàng hơn. Tất cả những gì chúng ta cần làm là thêm .json vào cuối URL và gửi HTTP request từ ứng dụng muốn liên kết. Để cài đặt Firebase Realtime Database chúng ta thực hiện theo các bước sau:
- Bước 1: Tạo 1 ứng dụng Firebase mới
+ Add Project tại Firebase Console
Màn hình console
+ Điền tên Project và nhấp Continue để tiếp tục và Create Project
- Bước 2: Create Realtime Database
+ Vào Project đã tạo, vào mục Realtime Database à Create Database
Màn hình Realtime Database
+ Sẽ có 2 lựa chọn:
- Locked Mode: Dữ liệu của bạn là riêng tư theo mặc định. Quyền truy cập đọc / ghi của ứng dụng khách sẽ chỉ được cấp theo quy định của các quy tắc bảo mật của bạn.
- Test Mode: Dữ liệu của bạn được mở theo mặc định để cho phép thiết lập nhanh. Tuy nhiên, bạn phải cập nhật các quy tắc bảo mật của mình trong vòng 30 ngày để cho phép truy cập đọc / ghi ứng dụng khách dài hạn.
- Ở đây để test nên mình sẽ chọn Test mode. Sau đó Enable.
+ Sau khi tạo xong Realtime Database, chúng ta sẽ có 1 URL có dạng <databaseName>.firebaseio.com. Bạn sẽ sử dụng URL này để xác thực và lưu trữ và đồng bộ hóa dữ liệu với ứng dụng.
The Things Network cung cấp cho chúng ta một chức năng có tên là HTTP Integration. Chức năng này sẽ tự động gửi HTTP Request đưa gói tin đến đường dẫn đã được cài đặt trước ngay khi Server nhận được Payload từ LoRaWAN Endnode gửi lên.
- Bước 1: Vào ứng dụng trên TTN, vào mục Integration, add integration
- Bước 2: Add HTTP Integration
- Bước 3: Bắt đầu vào cài đặt cho HTTP Integration
- Bước 4: Copy URL của Firebase mình đã đề cập ở cuối bước 2 phần Firebase vào mục URL của phần Setting, nhớ phải có .json ở cuối nhé.
- Bước 5: Method: các bạn có thể chọn các HTTP Method để sử dụng, tuỳ theo mục đích sử dụng mà chọn Method cho đúng nhé.
- Bước 6: Add Integration.
Và chúng ta cùng xem kết quả:
Dữ liệu được gửi từ LoRaWAN Node đến TTN
Dữ liệu từ TTN gửi tới Firebase
Chúc các bạn thành công!
Thang Pham – TT TAPIT
[HỌC ONLINE: LẬP TRÌNH VI ĐIỀU KHIỂN STM32, VI XỬ LÝ ARM CORTEX – M]
Xem thêm Tổng hợp các bài hướng dẫn Lập trình vi điều khiển STM32 tại đây.
Xem thêm Tổng hợp hướng dẫn Internet of Things với NodeMCU ESP8266 và ESP32 tại đây.
Tham khảo: Installation & Setup for REST API | Firebase (google.com), HTTP | The Things Network