Connect esp8266 to firebase - kết nối esp8266 với firebase (real time)

Xin chào tất cả các bạn, hôm nay mình sẽ hướng dẫn cách để kết nối esp8266 với firebase. Firebase là một dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây được cung cấp bởi Google (có nhiều dịch vụ khác, nhưng trong bài viết này mình sử dụng realtime database của firebase). Với cơ sở dữ liệu này, chúng ta có thể xây dựng được các ứng dụng đơn giản. Sau đây mình xin đi vào phần chính.

Ở bài viết này mình dùng board esp8266 cp2102 nodeMCU và đã add thư viện arduinofirebase.h.
link tải thư viện : https://github.com/googlesamples/firebase-arduino

Đầu tiên, các bạn tiến hành tạo một project trên firebase (nếu chưa có thì các bạn có thể đăng nhập bằng tài khoản google):

Sau đó tiến hành vào database của chúng ta, và tạo một đối tượng :

Lưu ý: giá trị của project phải để là null. Tiến hành tạo đối tượng buzzer có giá trị hello như hình dưới và nhấn enter hoặc click chuột vào ADD.



Sau khi hoàn thành các bước trên chúng ta bắt đầu vào viết chương trình:
có 2 cách để ghi dữ liệu vào database của firebase :
  • Quản trị (có key) mới được phép ghi dữ liệu vào database.
  • Tự do ghi dữ liệu vào firebase.

1. Tự do ghi dữ liệu vào firebase
Để sử ghi dữ liệu vào cách này, chúng ta cần phải cho phép database nhận dữ liệu từ nguồn không phải là người quản trị :

Chúng ta tiến hành sửa giá trị null thành true để cho phép sử dụng chức năng này.

Code:
#include <ESP8266WiFi.h>
#include <FirebaseArduino.h>
#define FIREBASE_HOST "ratdongianblog.firebaseio.com"
#define FIREBASE_AUTH ""
#define WIFI_SSID "MACBook Pro"
#define WIFI_PASSWORD "MACbookpro1"
void setup() {
  Serial.begin(9600);
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  Serial.print("connecting");
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }
  Serial.println();
  Serial.print("connected: ");
  Serial.println(WiFi.localIP());
  Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
  Firebase.set("buzzer", 10000);
}
void loop() {
int i = 0;
  for(i=0;i<100;i++){
    Firebase.set("buzzer", i);
    Serial.print(i);
    delay(200);
    }
}
với :
  •  FIREBASE_HOST : là địa chỉ của database. (tùy vào nơi đối tượng chúng ta cần ghi dữ liệu).


  • FIREBASE_AUTH : key bảo mật của database (vì ví dụ này không cần bảo mật, nên FIREBASE_AUTH để trống).

Sau khi chạy đoạn code trên, chúng ta được kết quả :
Vậy là chúng ta đã ghi được dữ liệu vào firebase bằng board esp8266.

2. Bảo mật khi ghi dữ liệu vào firebase.

với chức năng này, chỉ có quản trị (có key) thì chúng ta mới có thể ghi dữ liệu vào firebase.
Như đã giới thiệu ở cách 1, để lấy key bảo mật chúng ta làm như sau :



Setting > project settings > show > copy Add secret.


Sau khi có được add Secret, chúng ta thêm key này vào FIREBASE_AUTH đã để trống như cách 1.
Lưu ý : nhớ tắt chế độ nhận dữ liệu từ nguồn không phải người quản trị để bảo mật nhé.

Cảm ơn các bạn đã theo dõi.

Nhận xét

  1. Mình tìm cái FIREBASE_AUTH hoài mới ra, thanks tác giả nhé!

    Trả lờiXóa
    Trả lời
    1. hình như firebase mới sửa lại rồi bạn.
      bạn vào Overview > project settings > general có phần web API key :D

      Xóa
    2. bạn hiếu ơi vậy phải chỉnh sữa code thế nào mới chạy ban

      Xóa
    3. @PRINTER 3D: code hình như là vẫn hoạt động bình thường đó bạn.

      Xóa
  2. cho mình hỏi dùng esp truyền dữ liệu lên một firebase được không

    Trả lờiXóa
    Trả lời
    1. mình có thể truyển từ esp8266 lên database của firebase được nha bạn.
      Cài thư viện firebase trên arduino hoặc dùng nodejs để gửi dữ liệu

      Xóa

Đăng nhận xét

Bài đăng phổ biến từ blog này

Dòng điện, điện áp 1 chiều và các định luật cơ bản

Dòng điện 1 chiều (DC) là gì ?

Các cách mắc điện trở

Dòng điện xoay chiều

Biến áp, Triết áp, Phân loại điện trở