0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用Google Firebase控制臺(tái)和ESP8266的物聯(lián)網(wǎng)控制LED

科技觀察員 ? 來(lái)源:circuitdigest ? 作者:Abhimanyu Pandit ? 2022-09-20 16:51 ? 次閱讀

今天我們將使用Google Firebase 云來(lái)控制一個(gè)使用 NodeMCU ESP8266LED。

設(shè)置 NodeMCU ESP8266 Wi-Fi 模塊

設(shè)置 NodeMCU 非常簡(jiǎn)單,不會(huì)花費(fèi)太多時(shí)間。這可以通過(guò)幾個(gè)簡(jiǎn)單的組件和簡(jiǎn)單的步驟來(lái)完成。

所需組件

NodeMCU ESP8266(12E)

引領(lǐng)

如果您沒(méi)有 NodeMCU ESP8266(12E),那么您也可以將通用 ESP8266 模塊與 Arduino UNO 和 Arduino IDE 一起使用。要了解如何使用 Arduino UNO 和 Arduino IDE 對(duì)通用 ESP8266 模塊進(jìn)行編程,只需點(diǎn)擊鏈接即可。

電路原理

poYBAGMpfpeAcFwtAACgw-x57w0067.png

完成所有組件設(shè)置后,請(qǐng)按照以下簡(jiǎn)單步驟操作:

將 NodeMCU 與計(jì)算機(jī)連接。

打開(kāi) Arduino IDE。

轉(zhuǎn)到“工具”并選擇“板”。

在板的部分中,選擇“NodeMCU V1.0(ESP-12E 模塊)”。

還要選擇適當(dāng)?shù)?COM 端口。

按照下面提到的步驟找到“FIREBASE_HOST”和“FIREBASE_AUTH”后,在下面給出的草圖中編輯并上傳。

使用 Google Firebase 編程 NodeMCU ESP8266

最后給出了帶有工作視頻的完整程序。在這里,我們將解釋代碼的幾個(gè)重要部分。

首先包括使用 ESP8266 和 firebase 的庫(kù)。

#include 《ESP8266WiFi.h

#include 《FirebaseArduino.h

按照以下鏈接下載并安裝庫(kù):

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

https://github.com/bblanchon/ArduinoJson

編譯時(shí),如果您收到未安裝 ArduinoJson.h 庫(kù)的錯(cuò)誤,請(qǐng)使用上面給出的鏈接安裝它。

這兩個(gè)參數(shù)對(duì)于與 firebase 通信非常重要。設(shè)置這些參數(shù)將啟用 ESP8266 和 firebase 之間的數(shù)據(jù)交換。要為您的項(xiàng)目查找這些參數(shù),請(qǐng)按照下面后面部分(設(shè)置 Firebase)中給出的步驟進(jìn)行操作。

#define FIREBASE_HOST "your-project.firebaseio.com" // 來(lái)自 firebase id 的項(xiàng)目名稱地址
#define FIREBASE_AUTH "06dEpqanFg***************qAwnQLwLI" // 生成的密鑰火力基地

成功找到憑據(jù)后,只需在上面的代碼中替換即可。

以下參數(shù)用于連接到您的家庭 Wi-Fi 網(wǎng)絡(luò)或您設(shè)置的網(wǎng)絡(luò)。用您的網(wǎng)絡(luò) SSID 和密碼替換 SSID 和密碼。為了與firebase通信,還需要互聯(lián)網(wǎng)。

#define WIFI_SSID "xxxxxxxxxxxxxx" // 輸入你的家庭或公共wifi名稱
#define WIFI_PASSWORD "xxxxxxxxxxxxxx" //wifi ssid的密碼

此語(yǔ)句嘗試連接您輸入的 Wi-Fi 網(wǎng)絡(luò)。

WiFi.begin(WIFI_SSID, WIFI_PASSWORD); //嘗試連接wifi

連接 Wi-Fi 時(shí),如果沒(méi)有連接到網(wǎng)絡(luò),則只需print(.)直到連接不成功。

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

此語(yǔ)句嘗試與 firebase server 連接。如果主機(jī)地址和授權(quán)密鑰正確,則連接成功

Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH); // 連接到火力基地

這是 firebase 庫(kù)提供的用于向 firebase 服務(wù)器發(fā)送字符串的類。要使用更多課程,請(qǐng)?jiān)L問(wèn)此鏈接。最初將一個(gè)字符串發(fā)送到主路徑。借助此功能,我們可以更改 LED 的狀態(tài)。

Firebase.setString("LED_STATUS", "OFF"); //發(fā)送初始狀態(tài)字符串

將一個(gè)狀態(tài)字符串發(fā)送到 firebase 路徑后,編寫(xiě)此語(yǔ)句以從同一路徑獲取 LED 的狀態(tài)并將其保存到變量中。

fireStatus = Firebase.getString("LED_STATUS"); // 從 firebase 獲取 ld 狀態(tài)輸入

如果接收到的字符串為“ON”或“on”,則只需打開(kāi)內(nèi)置 LED 和外部連接的 LED。

  if (fireStatus == "ON" || fireStatus == "on") { // 比較從 firebase 接收到的 LED 狀態(tài)輸入
    Serial.println("Led Turned ON");                         
    數(shù)字寫(xiě)入(LED_BUILTIN,高);// 使 bultin led ON 
    digitalWrite(led, HIGH); // 使外部 LED 開(kāi)啟
  }

如果接收到的字符串為“OFF”或“off”,則只需關(guān)閉內(nèi)置 LED 和外部連接的 LED。

  else if (fireStatus == "OFF" || fireStatus == "off") { // 比較從 firebase 接收到的 LED 狀態(tài)輸入
    Serial.println("Led Turned OFF"); 
    數(shù)字寫(xiě)入(LED_BUILTIN,低);// 使 bultin led 關(guān)閉
    digitalWrite(led, LOW); // 關(guān)閉外部 LED 
  }

如果收到的字符串不是這些字符串中的任何一個(gè),則忽略并打印一些錯(cuò)誤消息。

  else { 
    Serial.println("錯(cuò)誤的憑證!請(qǐng)發(fā)送 ON/OFF"); 
    }  

設(shè)置 Firebase 控制臺(tái)

如果您是第一次使用 Firebase,那么您可能需要一些時(shí)間來(lái)設(shè)置它。請(qǐng)耐心等待并按照以下步驟操作。

1.如果您有Gmail id,則無(wú)需注冊(cè)firebase,如果您沒(méi)有Gmail id,則注冊(cè)一個(gè),然后您可以進(jìn)入下一步。

2. 打開(kāi)瀏覽器并轉(zhuǎn)到“firebase.google.com”

3.在右上角轉(zhuǎn)到“轉(zhuǎn)到控制臺(tái)”

pYYBAGMpfo-AeKc0AAD2QTlH-oA734.png

4.點(diǎn)擊“添加項(xiàng)目”

poYBAGMpfoyAK4YtAADlaVNYja8122.png

5. 輸入您的項(xiàng)目名稱。

poYBAGMpfoiAS6rPAAD75a2QEQM154.png

6. 接受條款和條件,創(chuàng)建項(xiàng)目并點(diǎn)擊“繼續(xù)”

pYYBAGMpfoSAFU25AABTHHg8cCc217.png

您已成功創(chuàng)建項(xiàng)目。查找主機(jī)名和授權(quán)密鑰,也稱為密鑰。為此,請(qǐng)按照以下步驟操作:

7. 轉(zhuǎn)到設(shè)置圖標(biāo)(齒輪圖標(biāo)),然后單擊“項(xiàng)目設(shè)置”

pYYBAGMpfoCASE1yAAD7dBzZMm0721.png

8. 現(xiàn)在點(diǎn)擊“服務(wù)帳戶”

poYBAGMpfnyASpirAACBFBgeaqM976.png

9. 可以看到“Firebase admin SDK”和“Database Secrets”兩個(gè)選項(xiàng)

10.點(diǎn)擊“數(shù)據(jù)庫(kù)秘密”

11. 滾動(dòng)您的項(xiàng)目名稱,“顯示”選項(xiàng)出現(xiàn)在項(xiàng)目右側(cè)

12.點(diǎn)擊“顯示”,現(xiàn)在您可以看到為您的項(xiàng)目創(chuàng)建的密鑰

pYYBAGMpfniAFNWpAACvh_Jbu7s235.png

13. 復(fù)制密鑰并保存到記事本。這是我們?cè)谏厦娴?Arduino 程序中編寫(xiě)的“FIREBASE_AUTH”字符串。

poYBAGMpfnSAOc1MAACePQuWhc4202.png

14.現(xiàn)在轉(zhuǎn)到左側(cè)控制欄上的“數(shù)據(jù)庫(kù)”并單擊它

15.向下滾動(dòng)并單擊“創(chuàng)建數(shù)據(jù)庫(kù)”

pYYBAGMpfnCAR8VcAACEgxetBb0115.png

16. 選擇“Start in test mode”并點(diǎn)擊“Enable”

pYYBAGMpfmyACbnfAAD2dtcN0ZQ372.png

17. 現(xiàn)在你的數(shù)據(jù)庫(kù)已經(jīng)創(chuàng)建好了,你將不得不再次來(lái)到這個(gè)部分來(lái)控制 LED

18.現(xiàn)在就在數(shù)據(jù)庫(kù)上方你可以看到

“ https://your_project_name.firebaseio.com/ ”

poYBAGMpfmiASSOLAABlxnsQ3Hs384.png

19. 只需復(fù)制“ your_project_name.firebaseio.com ”,不帶任何斜線和https,然后將其再次保存到記事本中,就像您保存的密鑰一樣

20. 這是我們?cè)谏厦娴?Arduino 程序中編寫(xiě)的“FIREBASE_HOST”字符串

21. 您可以探索 firebase,但讓我們先完成教程。

pYYBAGMpfmSAS_sEAABbfsHlyK8044.png

現(xiàn)在將“FIREBASE_HOST”和“FIREBASE_AUTH”放入Arduino程序并上傳草圖。我們已經(jīng)完成了這兩個(gè)部分的設(shè)置。最后給出了完整的 Arduino 程序。

poYBAGMpfmCAVB3HAAP6b5mYPEI496.png

打開(kāi) firebase 數(shù)據(jù)庫(kù)并在“LED_STATUS”部分寫(xiě)入“ON”或“OFF”或“on”或“off”,以從 Google Firebase 控制臺(tái)控制 LED。

/* 使用 Firebase 控制臺(tái)控制 LED */

#include // esp8266 庫(kù)

#include // firebase 庫(kù)


#define FIREBASE_HOST "your-project.firebaseio.com" // 來(lái)自 firebase id 的項(xiàng)目名稱地址

#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)的初始字符串

}


無(wú)效循環(huán)(){

fireStatus = Firebase.getString(“LED_STATUS”);// 從 firebase 獲取 ld 狀態(tài)輸入

if (fireStatus == "ON") { // 比較從 firebase 接收到的 LED 狀態(tài)輸入

Serial.println("Led Turned ON");

數(shù)字寫(xiě)入(LED_BUILTIN,低);// 使 bultin led ON

digitalWrite(led, HIGH); // 使外部 LED 開(kāi)啟

}

else if (fireStatus == "OFF") { // 比較從 firebase

Serial 接收到的 LED 狀態(tài)輸入。

數(shù)字寫(xiě)入(LED_BUILTIN,高);// 使 bultin led 關(guān)閉

digitalWrite(led, LOW); // 關(guān)閉外部LED

}

else {

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

}

}

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    240

    文章

    22907

    瀏覽量

    650140
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2894

    文章

    43316

    瀏覽量

    366499
  • ESP8266
    +關(guān)注

    關(guān)注

    50

    文章

    959

    瀏覽量

    44545
  • NODEMCU
    +關(guān)注

    關(guān)注

    13

    文章

    289

    瀏覽量

    21187
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    使用ESP8266與STM32進(jìn)行聯(lián)網(wǎng)開(kāi)發(fā)板設(shè)計(jì)

    聯(lián)網(wǎng)系列①——使用ESP8266與STM32進(jìn)行聯(lián)網(wǎng)開(kāi)發(fā)板設(shè)計(jì)一、
    發(fā)表于 08-19 09:06

    如何使用ESP8266和Android控制繼電器

    ESP8266 WiFi模塊系列的下一個(gè)項(xiàng)目是通過(guò)在MIT App Inventor的幫助下開(kāi)發(fā)的App(應(yīng)用程序)使用ESP8266和Android控制繼電器。通過(guò)在Android手機(jī)中安裝此應(yīng)用程序(對(duì)不起iOS用戶!?。。?/div>
    的頭像 發(fā)表于 07-30 10:40 ?2.7w次閱讀
    如何使用<b class='flag-5'>ESP8266</b>和Android<b class='flag-5'>控制</b>繼電器

    使用ESP8266實(shí)現(xiàn)電磁繼電器簡(jiǎn)易聯(lián)網(wǎng)控制的詳細(xì)制作過(guò)程說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用ESP8266實(shí)現(xiàn)電磁繼電器簡(jiǎn)易聯(lián)網(wǎng)控制的詳細(xì)制作過(guò)程說(shuō)明。
    發(fā)表于 03-23 08:00 ?22次下載
    使用<b class='flag-5'>ESP8266</b>實(shí)現(xiàn)電磁繼電器簡(jiǎn)易<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b><b class='flag-5'>控制</b>的詳細(xì)制作過(guò)程說(shuō)明

    聯(lián)網(wǎng)】基礎(chǔ)篇 ESP8266-NodeMCU學(xué)習(xí)一

    聯(lián)網(wǎng)】基礎(chǔ)篇 ESP8266-NodeMCU學(xué)習(xí)一本篇文章:本篇文章主要是關(guān)于ESP8266-NodeMCU的學(xué)習(xí)。正文如下:一、ESP8266
    發(fā)表于 10-26 14:21 ?16次下載
    【<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>】基礎(chǔ)篇 <b class='flag-5'>ESP8266</b>-NodeMCU學(xué)習(xí)一

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

    ??使用EsP8266(NodeMCU)連接阿里云服務(wù)器,并在服務(wù)器控制臺(tái)點(diǎn)亮板載LED燈,進(jìn)行數(shù)據(jù)上傳和下傳的測(cè)試。創(chuàng)建阿里云產(chǎn)品功能定義:先選擇編輯草稿,才可以看到最下面的布爾值那個(gè)。添加設(shè)備
    發(fā)表于 11-16 10:21 ?18次下載
    <b class='flag-5'>Esp8266</b>(NodeMCU)連接阿里云服務(wù)器

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

    藍(lán)牙設(shè)備是不可或缺的一部分,在這里我們將用HC05-ESP8266實(shí)現(xiàn)控制LED的閃爍在本篇文章中,將HC-05藍(lán)牙模塊與流行的Wi-Fi模塊ESP8266連接,并通過(guò)藍(lán)牙發(fā)送命令無(wú)線
    發(fā)表于 11-23 18:06 ?1次下載
    HC05-<b class='flag-5'>ESP8266</b>實(shí)現(xiàn)<b class='flag-5'>控制</b><b class='flag-5'>LED</b>的閃爍

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

    調(diào)用Lua新建的WEB服務(wù)器 操作Nodemcu esp8266 控制繼電器實(shí)現(xiàn)聯(lián)網(wǎng)
    發(fā)表于 12-08 16:51 ?13次下載
    調(diào)用Lua新建的WEB服務(wù)器  操作Nodemcu <b class='flag-5'>esp8266</b> <b class='flag-5'>控制</b>繼電器實(shí)現(xiàn)<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>

    ESP8266單股RGB LED控制器板

    電子發(fā)燒友網(wǎng)站提供《ESP8266單股RGB LED控制器板.zip》資料免費(fèi)下載
    發(fā)表于 07-26 10:59 ?2次下載
    <b class='flag-5'>ESP8266</b>單股RGB <b class='flag-5'>LED</b><b class='flag-5'>控制</b>器板

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

    電子發(fā)燒友網(wǎng)站提供《使用ESP8266 Wifi模塊和iPhone/Android控制LED.zip》資料免費(fèi)下載
    發(fā)表于 11-09 14:15 ?7次下載
    使用<b class='flag-5'>ESP8266</b> Wifi模塊和iPhone/Android<b class='flag-5'>控制</b><b class='flag-5'>LED</b>

    使用ESP8266控制帶按鈕開(kāi)關(guān)的LED

    電子發(fā)燒友網(wǎng)站提供《使用ESP8266控制帶按鈕開(kāi)關(guān)的LED.zip》資料免費(fèi)下載
    發(fā)表于 11-11 09:13 ?3次下載
    使用<b class='flag-5'>ESP8266</b><b class='flag-5'>控制</b>帶按鈕開(kāi)關(guān)的<b class='flag-5'>LED</b>

    ESP8266聯(lián)網(wǎng)開(kāi)源分享

    電子發(fā)燒友網(wǎng)站提供《ESP8266聯(lián)網(wǎng)開(kāi)源分享.zip》資料免費(fèi)下載
    發(fā)表于 12-06 14:45 ?4次下載
    <b class='flag-5'>ESP8266</b><b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>開(kāi)源分享

    構(gòu)建基于ESP8266聯(lián)網(wǎng)控制

    電子發(fā)燒友網(wǎng)站提供《構(gòu)建基于ESP8266聯(lián)網(wǎng)控制器.zip》資料免費(fèi)下載
    發(fā)表于 02-13 16:26 ?3次下載
    構(gòu)建基于<b class='flag-5'>ESP8266</b>的<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b><b class='flag-5'>控制</b>器

    使用FirebaseESP8266聯(lián)網(wǎng)平臺(tái)

    電子發(fā)燒友網(wǎng)站提供《使用FirebaseESP8266聯(lián)網(wǎng)平臺(tái).zip》資料免費(fèi)下載
    發(fā)表于 07-03 09:54 ?0次下載
    使用<b class='flag-5'>Firebase</b>的<b class='flag-5'>ESP8266</b><b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>平臺(tái)

    采用ESP8266聯(lián)網(wǎng)開(kāi)關(guān)

    電子發(fā)燒友網(wǎng)站提供《采用ESP8266聯(lián)網(wǎng)開(kāi)關(guān).zip》資料免費(fèi)下載
    發(fā)表于 07-06 15:03 ?4次下載
    采用<b class='flag-5'>ESP8266</b>的<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>開(kāi)關(guān)

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

    電子發(fā)燒友網(wǎng)站提供《ESP8266聯(lián)網(wǎng)茶壺.zip》資料免費(fèi)下載
    發(fā)表于 07-10 16:45 ?0次下載
    <b class='flag-5'>ESP8266</b><b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>茶壺