Điều khiển LED bằng Google Firebase Console và ESP8266 NodeMCU | IOT

Điều khiển LED bằng Google Firebase Console và ESP8266 NodeMCU | IOT

Bạn đã bao giờ nghĩ đến việc điều khiển mọi thiết bị ngoại vi từ bất cứ nơi nào trên thế giới? Có, IoT (Internet vạn vật) đã biến điều này thành có thể để điều khiển mọi thiết bị từ bất cứ đâu và có nhiều phần cứng và nền tảng đám mây IoT có sẵn để thực hiện điều này. Hôm nay chúng tôi sẽ sử dụng đám mây Google Firebase để điều khiển LED bằng NodeMCU ESP8266 . Nếu bạn không biết Firebase là gì, thì tôi sẽ cố gắng trình bày ngắn gọn.

Firebase là nền tảng cơ sở dữ liệu của Google, được sử dụng để tạo, quản lý và sửa đổi dữ liệu được tạo từ bất kỳ ứng dụng Android, dịch vụ web, cảm biến, v.v. Để biết thêm thông tin về Firebase, vui lòng truy cập trang web chính thức của Google Firebase.

Để điều khiển LED từ Firebase, trước tiên, chúng tôi sẽ thiết lập Mô-đun Wi-Fi NodeMCU ESP8266 và sau đó thiết lập Google Firebase .

Thiết lập Mô-đun Wi-Fi NodeMCU ESP8266

Thiết lập NodeMCU rất dễ dàng và sẽ không mất nhiều thời gian. Điều này có thể được thực hiện với vài linh kiện đơn giản và các bước đơn giản.

Linh kiện cần thiết

  1. NodeMCU ESP8266 (12E)
  2. LED

Nếu bạn không có NodeMCU ESP8266 (12E) thì bạn cũng có thể sử dụng mô-đun Generic ESP8266 với Arduino UNO và Arduino IDE.

Sơ đồ mạch

Khi bạn đã thiết lập xong các linh kiện, vui lòng làm theo các bước đơn giản được đề cập dưới đây:

  1. Kết nối NodeMCU với máy tính.
  2. Mở Arduino IDE.
  3. Đi đến ‘Tools’ và chọn ‘Board’.
  4. Trong section của board, chọn ‘NodeMCU V1.0 (Mô-đun ESP-12E)’.
  5. Cũng chọn Cổng COM thích hợp.
  6. Sau khi tìm thấy FIREBASE_HOST và FIREBASE_AUTH theo các bước được đề cập trên, hãy chỉnh sửa trong bản phác thảo được đưa ra dưới đây và tải lên.

Lập trình NodeMCU ESP8266 để sử dụng Google Firebase

Chương trình hoàn chỉnh với Video được đưa ra ở cuối. Ở đây chúng tôi chỉ giải thích một vài phần quan trọng của code.

Đầu tiên thêm các thư viện để sử dụng ESP8266 và firebase.

#include <ESP8266WiFi.h
#include <FirebaseArduino.h

Tải xuống và cài đặt các thư viện theo các liên kết dưới đây:

https://github.com/FirebaseExtended/firebase-arduino/blob/master/src/Firebase.h

https://github.com/bblanchon/ArduinoJson

Trong khi biên dịch, nếu bạn gặp lỗi mà thư viện ArduinoJson.h chưa được cài đặt thì vui lòng cài đặt nó bằng liên kết đã cho ở trên.

Hai thông số này rất quan trọng để liên lạc với firebase. Khai báo các tham số này sẽ cho phép trao đổi dữ liệu giữa và ESP8266 và firebase. Để tìm các tham số này cho dự án của bạn, hãy làm theo các bước được đưa ra trong phần sau (Thiết lập Firebase) bên dưới.

#define FIREBASE_HOST "your-project.firebaseio.com"             // the project name address from firebase id
#define FIREBASE_AUTH "06dEpqanFg***************qAwnQLwLI"       // the secret key generated from firebase

Sau khi tìm thành công thông tin đăng nhập, chỉ cần thay thế vào đoạn code trên.

Các thông số bên dưới được sử dụng để kết nối với mạng Wi-Fi của bạn hoặc mạng mà bạn thiết lập. Thay thế SSID và mật khẩu bằng SSID và mật khẩu mạng của bạn . Ngoài ra internet cũng cần thiết để liên lạc với firebase.

#define WIFI_SSID "xxxxxxxxxxxxx" // nhập tên wifi của bạn
#define WIFI_PASSWORD "xxxxxxxxxxxxxx" // mật khẩu của wifi ssid

Khai báo này cố gắng kết nối với mạng Wi-Fi đã nhập của bạn .

WiFi.begin (WIFI_SSID, WIFI_PASSWORD); // thử kết nối với wifi

Khi kết nối với Wi-Fi, nếu nó không kết nối với mạng thì chỉ cần print(.) Cho đến khi nó được kết nối thành công .

  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }

Khai báo này cố gắng kết nối với máy chủ firebase . Nếu địa chỉ máy chủ và khóa ủy quyền là chính xác thì nó sẽ kết nối thành công

Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); // kết nối với firebase

Đây là lớp được cung cấp bởi thư viện firebase để gửi chuỗi đến máy chủ firebase. Ban đầu gửi một chuỗi đến đường dẫ. Với sự giúp đỡ của điều này, chúng ta có thể thay đổi trạng thái của LED.

Firebase.setString("LED_STATUS", "OFF");                  //send initial string of led status

Sau khi gửi một chuỗi trạng thái đến đường dẫn firebase, hãy viết câu lệnh này để lấy trạng thái của LED từ cùng một đường dẫn và lưu nó vào biến.

fireStatus = Firebase.getString ("LED_STATUS"); // lấy đầu vào trạng thái ld từ firebase

Nếu chuỗi nhận được là ON hoặc on trên mạng thì LED được bật và tích hợp LED được kết nối bên ngoài.

  if (fireStatus == "ON" || fireStatus == "on") {                                   // compare the input of led status received from firebase
    Serial.println("Led Turned ON");                        
    digitalWrite(LED_BUILTIN, HIGH);                             // make bultin led ON
    digitalWrite(led, HIGH);                                    // make external led ON
  }

Nếu chuỗi nhận được là OFF hoặc off thì LED sẽ tắt và LED được kết nối bên ngoài.

  else if (fireStatus == "OFF" || fireStatus == "off") {                                // compare the input of led status received from firebase
    Serial.println("Led Turned OFF");
    digitalWrite(LED_BUILTIN, LOW);                                // make bultin led OFF
    digitalWrite(led, LOW);                                         // make external led OFF
  }

Nếu chuỗi nhận được không phải như trên thì chỉ cần bỏ qua và in ra lỗi.

else {
    Serial.println("Wrong Credential! Please send ON/OFF");
    }

Thiết lập Bảng điều khiển Firebase

Nếu bạn sử dụng Firebase lần đầu tiên thì bạn có thể mất một chút thời gian để thiết lập nó. Hãy kiên nhẫn và làm theo các bước này.

  1. Nếu bạn có id Gmail thì bạn không cần phải Đăng ký firebase, nếu bạn không có id Gmail thì hãy Đăng ký một cái và sau đó bạn có thể chuyển sang bước tiếp theo.
  2. Mở trình duyệt của bạn và truy cập vào fire firebase.google.com
  3. Ở góc trên cùng bên phải, hãy truy cập vào “Go to Console”

  1. Nhấp chuột vào “Add project”

  1. Nhập tên dự án của bạn.

  1. Chấp nhận các điều khoản và điều kiện, Tạo dự án và nhấp vào “Continue”

Bạn đã tạo thành công dự án của bạn. Tìm Tên Máy chủ và Khóa ủy quyền còn được gọi là Secret Key. Đối với điều này, hãy làm theo các bước được đưa ra dưới đây:

  1. Chuyển đến Biểu tượng cài đặt (Biểu tượng bánh răng) và nhấp vào “Project Settings”

  1. Bây giờ bấm vào “Service Accounts”

  1. Bạn có thể thấy hai tùy chọn “Firebase admin SDK” và “Database Secrets”
  2. Nhấp vào “Database Secrets”
  3. Di chuyển vào tên dự án của bạn và tùy chọn Show xuất hiện ở bên phải dự án của bạn
  4. Nhấp vào “Show” và bây giờ bạn có thể thấy mật khẩu được tạo cho dự án của bạn

  1. Sao chép mật khẩu và lưu nó vào notepad. Đây là chuỗi FIREBASE_AUTH của bạn mà chúng tôi đã viết trong chương trình Arduino ở trên.

  1. Bây giờ, hãy truy cập vào “Database” trên thanh điều khiển bên trái và nhấp vào nó
  2. Cuộn xuống và nhấp vào “Create Database”

 

  1. Chọn “Start in test mode” và nhấp vào “Enable”

  1. Bây giờ cơ sở dữ liệu của bạn đã được tạo và bạn sẽ phải quay lại phần này một lần nữa để điều khiển LED
  2. Bây giờ ngay phía trên cơ sở dữ liệu bạn có thể thấy

https://your_project_name.firebaseio.com/

  1. Chỉ cần sao chép “your_project_name.firebaseio.com” mà không có dấu gạch và https và lưu lại vào notepad nơi bạn đã lưu mật khẩu
  2. Đây là chuỗi FIREBASE_HOST của bạn mà chúng tôi đã viết trong chương trình Arduino ở trên
  3. Bạn có thể khám phá firebase nhưng trước tiên hãy hoàn thành hướng dẫn.

Bây giờ, hãy đặt FI FIBASE_HOST và FIREBASE_AUTH vào chương trình Arduino và tải lên bản phác thảo . Và chúng tôi đã hoàn thành việc thiết lập cả hai phần. Chương trình Arduino hoàn chỉnh được đưa ra ở cuối.

Mở cơ sở dữ liệu về firebase và viết  “ON” /“OFF” hay “on” / “off” trong “LED_STATUS để điều khiển LED từ bảng điều khiển Google Firebase.

Xem video dưới đây để hiểu hoạt động của dự án.

CODE

#include <ESP8266WiFi.h>                                                // esp8266 library
#include <FirebaseArduino.h>                                             // firebase library

#define FIREBASE_HOST "your-project.firebaseio.com"                         // the project name address from firebase id
#define FIREBASE_AUTH "06dEpqanFg***************qAwnQLwLI"                    // the secret key generated from firebase
#define WIFI_SSID "xxxxxxxxxxxxx"                                          // input your home or public wifi name 
#define WIFI_PASSWORD "xxxxxxxxxxxxxx"                                    //password of wifi ssid

String fireStatus = "";                                                     // led status received from firebase
int led = D3;                                                                // for external led
void setup() {
  Serial.begin(9600);
  delay(1000);
  pinMode(LED_BUILTIN, OUTPUT);      
  pinMode(led, OUTPUT);                 
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);                                      //try to connect with wifi
  Serial.print("Connecting to ");
  Serial.print(WIFI_SSID);
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }
  Serial.println();
  Serial.print("Connected to ");
  Serial.println(WIFI_SSID);
  Serial.print("IP Address is : ");
  Serial.println(WiFi.localIP());                                                      //print local IP address
  Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);                                       // connect to firebase
  Firebase.setString("LED_STATUS", "OFF");                                          //send initial string of led status
}

void loop() {
  fireStatus = Firebase.getString("LED_STATUS");                                      // get ld status input from firebase
  if (fireStatus == "ON") {                                                          // compare the input of led status received from firebase
    Serial.println("Led Turned ON");                         
    digitalWrite(LED_BUILTIN, LOW);                                                  // make bultin led ON
    digitalWrite(led, HIGH);                                                         // make external led ON
  } 
  else if (fireStatus == "OFF") {                                                  // compare the input of led status received from firebase
    Serial.println("Led Turned OFF");
    digitalWrite(LED_BUILTIN, HIGH);                                               // make bultin led OFF
    digitalWrite(led, LOW);                                                         // make external led OFF
  }
  else {
    Serial.println("Wrong Credential! Please send ON/OFF");
  }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *