今天我們將使用Google Firebase 云來控制一個使用 NodeMCU ESP8266 的 LED。
設置 NodeMCU ESP8266 Wi-Fi 模塊
設置 NodeMCU 非常簡單,不會花費太多時間。這可以通過幾個簡單的組件和簡單的步驟來完成。
所需組件
NodeMCU ESP8266(12E)
引領
如果您沒有 NodeMCU ESP8266(12E),那么您也可以將通用 ESP8266 模塊與 Arduino UNO 和 Arduino IDE 一起使用。要了解如何使用 Arduino UNO 和 Arduino IDE 對通用 ESP8266 模塊進行編程,只需點擊鏈接即可。
電路原理圖
完成所有組件設置后,請按照以下簡單步驟操作:
將 NodeMCU 與計算機連接。
打開 Arduino IDE。
轉(zhuǎn)到“工具”并選擇“板”。
在板的部分中,選擇“NodeMCU V1.0(ESP-12E 模塊)”。
還要選擇適當?shù)?COM 端口。
按照下面提到的步驟找到“FIREBASE_HOST”和“FIREBASE_AUTH”后,在下面給出的草圖中編輯并上傳。
使用 Google Firebase 編程 NodeMCU ESP8266
最后給出了帶有工作視頻的完整程序。在這里,我們將解釋代碼的幾個重要部分。
首先包括使用 ESP8266 和 firebase 的庫。
#include 《ESP8266WiFi.h
#include 《FirebaseArduino.h
按照以下鏈接下載并安裝庫:
https://github.com/FirebaseExtended/firebase-arduino/blob/master/src/Firebase.h
https://github.com/bblanchon/ArduinoJson
編譯時,如果您收到未安裝 ArduinoJson.h 庫的錯誤,請使用上面給出的鏈接安裝它。
這兩個參數(shù)對于與 firebase 通信非常重要。設置這些參數(shù)將啟用 ESP8266 和 firebase 之間的數(shù)據(jù)交換。要為您的項目查找這些參數(shù),請按照下面后面部分(設置 Firebase)中給出的步驟進行操作。
#define FIREBASE_HOST "your-project.firebaseio.com" // 來自 firebase id 的項目名稱地址 #define FIREBASE_AUTH "06dEpqanFg***************qAwnQLwLI" // 生成的密鑰火力基地
成功找到憑據(jù)后,只需在上面的代碼中替換即可。
以下參數(shù)用于連接到您的家庭 Wi-Fi 網(wǎng)絡或您設置的網(wǎng)絡。用您的網(wǎng)絡 SSID 和密碼替換 SSID 和密碼。為了與firebase通信,還需要互聯(lián)網(wǎng)。
#define WIFI_SSID "xxxxxxxxxxxxxx" // 輸入你的家庭或公共wifi名稱 #define WIFI_PASSWORD "xxxxxxxxxxxxxx" //wifi ssid的密碼
此語句嘗試連接您輸入的 Wi-Fi 網(wǎng)絡。
WiFi.begin(WIFI_SSID, WIFI_PASSWORD); //嘗試連接wifi
連接 Wi-Fi 時,如果沒有連接到網(wǎng)絡,則只需print(.)直到連接不成功。
while (WiFi.status() != WL_CONNECTED) { Serial.print("."); 延遲(500); }
此語句嘗試與 firebase server 連接。如果主機地址和授權密鑰正確,則連接成功
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH); // 連接到火力基地
這是 firebase 庫提供的用于向 firebase 服務器發(fā)送字符串的類。要使用更多課程,請訪問此鏈接。最初將一個字符串發(fā)送到主路徑。借助此功能,我們可以更改 LED 的狀態(tài)。
Firebase.setString("LED_STATUS", "OFF"); //發(fā)送初始狀態(tài)字符串
將一個狀態(tài)字符串發(fā)送到 firebase 路徑后,編寫此語句以從同一路徑獲取 LED 的狀態(tài)并將其保存到變量中。
fireStatus = Firebase.getString("LED_STATUS"); // 從 firebase 獲取 ld 狀態(tài)輸入
如果接收到的字符串為“ON”或“on”,則只需打開內(nèi)置 LED 和外部連接的 LED。
if (fireStatus == "ON" || fireStatus == "on") { // 比較從 firebase 接收到的 LED 狀態(tài)輸入 Serial.println("Led Turned ON"); 數(shù)字寫入(LED_BUILTIN,高);// 使 bultin led ON digitalWrite(led, HIGH); // 使外部 LED 開啟 }
如果接收到的字符串為“OFF”或“off”,則只需關閉內(nèi)置 LED 和外部連接的 LED。
else if (fireStatus == "OFF" || fireStatus == "off") { // 比較從 firebase 接收到的 LED 狀態(tài)輸入 Serial.println("Led Turned OFF"); 數(shù)字寫入(LED_BUILTIN,低);// 使 bultin led 關閉 digitalWrite(led, LOW); // 關閉外部 LED }
如果收到的字符串不是這些字符串中的任何一個,則忽略并打印一些錯誤消息。
else { Serial.println("錯誤的憑證!請發(fā)送 ON/OFF"); }
設置 Firebase 控制臺
如果您是第一次使用 Firebase,那么您可能需要一些時間來設置它。請耐心等待并按照以下步驟操作。
1.如果您有Gmail id,則無需注冊firebase,如果您沒有Gmail id,則注冊一個,然后您可以進入下一步。
2. 打開瀏覽器并轉(zhuǎn)到“firebase.google.com”
3.在右上角轉(zhuǎn)到“轉(zhuǎn)到控制臺”
4.點擊“添加項目”
5. 輸入您的項目名稱。
6. 接受條款和條件,創(chuàng)建項目并點擊“繼續(xù)”
您已成功創(chuàng)建項目。查找主機名和授權密鑰,也稱為密鑰。為此,請按照以下步驟操作:
7. 轉(zhuǎn)到設置圖標(齒輪圖標),然后單擊“項目設置”
8. 現(xiàn)在點擊“服務帳戶”
9. 可以看到“Firebase admin SDK”和“Database Secrets”兩個選項
10.點擊“數(shù)據(jù)庫秘密”
11. 滾動您的項目名稱,“顯示”選項出現(xiàn)在項目右側(cè)
12.點擊“顯示”,現(xiàn)在您可以看到為您的項目創(chuàng)建的密鑰
13. 復制密鑰并保存到記事本。這是我們在上面的 Arduino 程序中編寫的“FIREBASE_AUTH”字符串。
14.現(xiàn)在轉(zhuǎn)到左側(cè)控制欄上的“數(shù)據(jù)庫”并單擊它
15.向下滾動并單擊“創(chuàng)建數(shù)據(jù)庫”
16. 選擇“Start in test mode”并點擊“Enable”
17. 現(xiàn)在你的數(shù)據(jù)庫已經(jīng)創(chuàng)建好了,你將不得不再次來到這個部分來控制 LED
18.現(xiàn)在就在數(shù)據(jù)庫上方你可以看到
“ https://your_project_name.firebaseio.com/ ”
19. 只需復制“ your_project_name.firebaseio.com ”,不帶任何斜線和https,然后將其再次保存到記事本中,就像您保存的密鑰一樣
20. 這是我們在上面的 Arduino 程序中編寫的“FIREBASE_HOST”字符串
21. 您可以探索 firebase,但讓我們先完成教程。
現(xiàn)在將“FIREBASE_HOST”和“FIREBASE_AUTH”放入Arduino程序并上傳草圖。我們已經(jīng)完成了這兩個部分的設置。最后給出了完整的 Arduino 程序。
打開 firebase 數(shù)據(jù)庫并在“LED_STATUS”部分寫入“ON”或“OFF”或“on”或“off”,以從 Google Firebase 控制臺控制 LED。
/* 使用 Firebase 控制臺控制 LED */
#include
#include
#define FIREBASE_HOST "your-project.firebaseio.com" // 來自 firebase id 的項目名稱地址
#define FIREBASE_AUTH "06dEpqanFg***************qAwnQLwLI" // 生成的密鑰firebase
#define WIFI_SSID "xxxxxxxxxxxxxx" // 輸入你的家庭或公共wifi名稱
#define WIFI_PASSWORD "xxxxxxxxxxxxxx" //wifi ssid的密碼
字符串 fireStatus = ""; // 從 firebase 接收到的 led 狀態(tài)
int led = D3; // 用于外部LED
void setup() {
Serial.begin(9600);
延遲(1000);
pinMode(LED_BUILTIN,輸出);
pinMode(LED,輸出);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD); //嘗試連接wifi
Serial.print("Connecting to ");
Serial.print(WIFI_SSID);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
延遲(500);
}
Serial.println();
Serial.print("連接到"
Serial.println(WIFI_SSID);
Serial.print("IP 地址為:");
Serial.println(WiFi.localIP()); //打印本地IP地址
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH); // 連接到
Firebase Firebase.setString("LED_STATUS", "OFF"); // 發(fā)送 LED 狀態(tài)的初始字符串
}
無效循環(huán)(){
fireStatus = Firebase.getString(“LED_STATUS”);// 從 firebase 獲取 ld 狀態(tài)輸入
if (fireStatus == "ON") { // 比較從 firebase 接收到的 LED 狀態(tài)輸入
Serial.println("Led Turned ON");
數(shù)字寫入(LED_BUILTIN,低);// 使 bultin led ON
digitalWrite(led, HIGH); // 使外部 LED 開啟
}
else if (fireStatus == "OFF") { // 比較從 firebase
Serial 接收到的 LED 狀態(tài)輸入。
數(shù)字寫入(LED_BUILTIN,高);// 使 bultin led 關閉
digitalWrite(led, LOW); // 關閉外部LED
}
else {
Serial.println("Wrong Credential! Please send ON/OFF");
}
}
-
led
+關注
關注
242文章
23437瀏覽量
664725 -
物聯(lián)網(wǎng)
+關注
關注
2914文章
45092瀏覽量
378764 -
ESP8266
+關注
關注
50文章
962瀏覽量
45619 -
NODEMCU
+關注
關注
13文章
289瀏覽量
21689
發(fā)布評論請先 登錄
相關推薦
使用ESP8266與STM32進行物聯(lián)網(wǎng)開發(fā)板設計
如何使用ESP8266和Android控制繼電器

使用ESP8266實現(xiàn)電磁繼電器簡易物聯(lián)網(wǎng)控制的詳細制作過程說明

【物聯(lián)網(wǎng)】基礎篇 ESP8266-NodeMCU學習一

Esp8266(NodeMCU)連接阿里云服務器

HC05-ESP8266實現(xiàn)控制LED的閃爍

調(diào)用Lua新建的WEB服務器 操作Nodemcu esp8266 控制繼電器實現(xiàn)物聯(lián)網(wǎng)

使用ESP8266 Wifi模塊和iPhone/Android控制LED

ESP8266物聯(lián)網(wǎng)開源分享

構建基于ESP8266的物聯(lián)網(wǎng)控制器

使用Firebase的ESP8266物聯(lián)網(wǎng)平臺

采用ESP8266的物聯(lián)網(wǎng)開關

ESP8266物聯(lián)網(wǎng)茶壺

評論