0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用Google Firebase控制台和ESP8266的物联网控制LED

科技观察员 来源:circuitdigest 作者:Abhimanyu Pandit 2022-09-20 16:51 次阅读

今天我们将使用Google Firebase 云来控制一个使用 NodeMCU ESP8266LED

设置 NodeMCU ESP8266 Wi-Fi 模块

设置 NodeMCU 非常简单,不会花费太多时间。这可以通过几个简单的组件和简单的步骤来完成。

所需组件

NodeMCU ESP8266(12E)

引领

如果您没有 NodeMCU ESP8266(12E),那么您也可以将通用 ESP8266 模块与 Arduino UNO 和 Arduino IDE 一起使用。要了解如何使用 Arduino UNO 和 Arduino IDE 对通用 ESP8266 模块进行编程,只需点击链接即可。

电路原理

poYBAGMpfpeAcFwtAACgw-x57w0067.png

完成所有组件设置后,请按照以下简单步骤操作:

将 NodeMCU 与计算机连接。

打开 Arduino IDE。

转到“工具”并选择“板”。

在板的部分中,选择“NodeMCU V1.0(ESP-12E 模块)”。

还要选择适当的 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 库的错误,请使用上面给出的链接安装它。

这两个参数对于与 firebase 通信非常重要。设置这些参数将启用 ESP8266 和 firebase 之间的数据交换。要为您的项目查找这些参数,请按照下面后面部分(设置 Firebase)中给出的步骤进行操作。

#define FIREBASE_HOST "your-project.firebaseio.com" // 来自 firebase id 的项目名称地址
#define FIREBASE_AUTH "06dEpqanFg***************qAwnQLwLI" // 生成的密钥火力基地

成功找到凭据后,只需在上面的代码中替换即可。

以下参数用于连接到您的家庭 Wi-Fi 网络或您设置的网络。用您的网络 SSID 和密码替换 SSID 和密码。为了与firebase通信,还需要互联网。

#define WIFI_SSID "xxxxxxxxxxxxxx" // 输入你的家庭或公共wifi名称
#define WIFI_PASSWORD "xxxxxxxxxxxxxx" //wifi ssid的密码

此语句尝试连接您输入的 Wi-Fi 网络。

WiFi.begin(WIFI_SSID, WIFI_PASSWORD); //尝试连接wifi

连接 Wi-Fi 时,如果没有连接到网络,则只需print(.)直到连接不成功。

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

此语句尝试与 firebase server 连接。如果主机地址和授权密钥正确,则连接成功

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

这是 firebase 库提供的用于向 firebase 服务器发送字符串的类。要使用更多课程,请访问此链接。最初将一个字符串发送到主路径。借助此功能,我们可以更改 LED 的状态。

Firebase.setString("LED_STATUS", "OFF"); //发送初始状态字符串

将一个状态字符串发送到 firebase 路径后,编写此语句以从同一路径获取 LED 的状态并将其保存到变量中。

fireStatus = Firebase.getString("LED_STATUS"); // 从 firebase 获取 ld 状态输入

如果接收到的字符串为“ON”或“on”,则只需打开内置 LED 和外部连接的 LED。

  if (fireStatus == "ON" || fireStatus == "on") { // 比较从 firebase 接收到的 LED 状态输入
    Serial.println("Led Turned ON");                         
    数字写入(LED_BUILTIN,高);// 使 bultin led ON 
    digitalWrite(led, HIGH); // 使外部 LED 开启
  }

如果接收到的字符串为“OFF”或“off”,则只需关闭内置 LED 和外部连接的 LED。

  else if (fireStatus == "OFF" || fireStatus == "off") { // 比较从 firebase 接收到的 LED 状态输入
    Serial.println("Led Turned OFF"); 
    数字写入(LED_BUILTIN,低);// 使 bultin led 关闭
    digitalWrite(led, LOW); // 关闭外部 LED 
  }

如果收到的字符串不是这些字符串中的任何一个,则忽略并打印一些错误消息。

  else { 
    Serial.println("错误的凭证!请发送 ON/OFF"); 
    }  

设置 Firebase 控制台

如果您是第一次使用 Firebase,那么您可能需要一些时间来设置它。请耐心等待并按照以下步骤操作。

1.如果您有Gmail id,则无需注册firebase,如果您没有Gmail id,则注册一个,然后您可以进入下一步。

2. 打开浏览器并转到“firebase.google.com”

3.在右上角转到“转到控制台”

pYYBAGMpfo-AeKc0AAD2QTlH-oA734.png

4.点击“添加项目”

poYBAGMpfoyAK4YtAADlaVNYja8122.png

5. 输入您的项目名称。

poYBAGMpfoiAS6rPAAD75a2QEQM154.png

6. 接受条款和条件,创建项目并点击“继续”

pYYBAGMpfoSAFU25AABTHHg8cCc217.png

您已成功创建项目。查找主机名和授权密钥,也称为密钥。为此,请按照以下步骤操作:

7. 转到设置图标(齿轮图标),然后单击“项目设置”

pYYBAGMpfoCASE1yAAD7dBzZMm0721.png

8. 现在点击“服务帐户”

poYBAGMpfnyASpirAACBFBgeaqM976.png

9. 可以看到“Firebase admin SDK”和“Database Secrets”两个选项

10.点击“数据库秘密”

11. 滚动您的项目名称,“显示”选项出现在项目右侧

12.点击“显示”,现在您可以看到为您的项目创建的密钥

pYYBAGMpfniAFNWpAACvh_Jbu7s235.png

13. 复制密钥并保存到记事本。这是我们在上面的 Arduino 程序中编写的“FIREBASE_AUTH”字符串。

poYBAGMpfnSAOc1MAACePQuWhc4202.png

14.现在转到左侧控制栏上的“数据库”并单击它

15.向下滚动并单击“创建数据库”

pYYBAGMpfnCAR8VcAACEgxetBb0115.png

16. 选择“Start in test mode”并点击“Enable”

pYYBAGMpfmyACbnfAAD2dtcN0ZQ372.png

17. 现在你的数据库已经创建好了,你将不得不再次来到这个部分来控制 LED

18.现在就在数据库上方你可以看到

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

poYBAGMpfmiASSOLAABlxnsQ3Hs384.png

19. 只需复制“ your_project_name.firebaseio.com ”,不带任何斜线和https,然后将其再次保存到记事本中,就像您保存的密钥一样

20. 这是我们在上面的 Arduino 程序中编写的“FIREBASE_HOST”字符串

21. 您可以探索 firebase,但让我们先完成教程

pYYBAGMpfmSAS_sEAABbfsHlyK8044.png

现在将“FIREBASE_HOST”和“FIREBASE_AUTH”放入Arduino程序并上传草图。我们已经完成了这两个部分的设置。最后给出了完整的 Arduino 程序。

poYBAGMpfmCAVB3HAAP6b5mYPEI496.png

打开 firebase 数据库并在“LED_STATUS”部分写入“ON”或“OFF”或“on”或“off”,以从 Google Firebase 控制台控制 LED。

/* 使用 Firebase 控制台控制 LED */

#include // esp8266 库

#include // firebase 库


#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 状态

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"); // 发送 LED 状态的初始字符串

}


无效循环(){

fireStatus = Firebase.getString(“LED_STATUS”);// 从 firebase 获取 ld 状态输入

if (fireStatus == "ON") { // 比较从 firebase 接收到的 LED 状态输入

Serial.println("Led Turned ON");

数字写入(LED_BUILTIN,低);// 使 bultin led ON

digitalWrite(led, HIGH); // 使外部 LED 开启

}

else if (fireStatus == "OFF") { // 比较从 firebase

Serial 接收到的 LED 状态输入。

数字写入(LED_BUILTIN,高);// 使 bultin led 关闭

digitalWrite(led, LOW); // 关闭外部LED

}

else {

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

}

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    242

    文章

    23296

    浏览量

    661305
  • 物联网
    +关注

    关注

    2909

    文章

    44704

    浏览量

    374029
  • ESP8266
    +关注

    关注

    50

    文章

    962

    浏览量

    45093
  • NODEMCU
    +关注

    关注

    13

    文章

    289

    浏览量

    21444
收藏 人收藏

    评论

    相关推荐

    使用ESP8266与STM32进行联网开发板设计

    联网系列①——使用ESP8266与STM32进行联网开发板设计一、
    发表于 08-19 09:06

    如何使用ESP8266和Android控制继电器

    ESP8266 WiFi模块系列的下一个项目是通过在MIT App Inventor的帮助下开发的App(应用程序)使用ESP8266和Android控制继电器。通过在Android手机中安装此应用程序(对不起iOS用户!!!)
    的头像 发表于 07-30 10:40 2.7w次阅读
    如何使用<b class='flag-5'>ESP8266</b>和Android<b class='flag-5'>控制</b>继电器

    使用ESP8266实现电磁继电器简易联网控制的详细制作过程说明

    本文档的主要内容详细介绍的是使用ESP8266实现电磁继电器简易联网控制的详细制作过程说明。
    发表于 03-23 08:00 22次下载
    使用<b class='flag-5'>ESP8266</b>实现电磁继电器简易<b class='flag-5'>物</b><b class='flag-5'>联网</b><b class='flag-5'>控制</b>的详细制作过程说明

    联网】基础篇 ESP8266-NodeMCU学习一

    联网】基础篇 ESP8266-NodeMCU学习一本篇文章:本篇文章主要是关于ESP8266-NodeMCU的学习。正文如下:一、ESP8266
    发表于 10-26 14:21 16次下载
    【<b class='flag-5'>物</b><b class='flag-5'>联网</b>】基础篇 <b class='flag-5'>ESP8266</b>-NodeMCU学习一

    Esp8266(NodeMCU)连接阿里云服务器

      使用EsP8266(NodeMCU)连接阿里云服务器,并在服务器控制台点亮板载LED灯,进行数据上传和下传的测试。创建阿里云产品功能定义:先选择编辑草稿,才可以看到最下面的布尔值那个。添加设备
    发表于 11-16 10:21 18次下载
    <b class='flag-5'>Esp8266</b>(NodeMCU)连接阿里云服务器

    HC05-ESP8266实现控制LED的闪烁

    蓝牙设备是不可或缺的一部分,在这里我们将用HC05-ESP8266实现控制LED的闪烁在本篇文章中,将HC-05蓝牙模块与流行的Wi-Fi模块ESP8266连接,并通过蓝牙发送命令无线
    发表于 11-23 18:06 1次下载
    HC05-<b class='flag-5'>ESP8266</b>实现<b class='flag-5'>控制</b><b class='flag-5'>LED</b>的闪烁

    调用Lua新建的WEB服务器 操作Nodemcu esp8266 控制继电器实现联网

    调用Lua新建的WEB服务器 操作Nodemcu esp8266 控制继电器实现联网
    发表于 12-08 16:51 13次下载
    调用Lua新建的WEB服务器  操作Nodemcu <b class='flag-5'>esp8266</b> <b class='flag-5'>控制</b>继电器实现<b class='flag-5'>物</b><b class='flag-5'>联网</b>

    ESP8266单股RGB LED控制器板

    电子发烧友网站提供《ESP8266单股RGB LED控制器板.zip》资料免费下载
    发表于 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

    电子发烧友网站提供《使用ESP8266 Wifi模块和iPhone/Android控制LED.zip》资料免费下载
    发表于 11-09 14:15 10次下载
    使用<b class='flag-5'>ESP8266</b> Wifi模块和iPhone/Android<b class='flag-5'>控制</b><b class='flag-5'>LED</b>

    使用ESP8266控制带按钮开关的LED

    电子发烧友网站提供《使用ESP8266控制带按钮开关的LED.zip》资料免费下载
    发表于 11-11 09:13 3次下载
    使用<b class='flag-5'>ESP8266</b><b class='flag-5'>控制</b>带按钮开关的<b class='flag-5'>LED</b>

    ESP8266联网开源分享

    电子发烧友网站提供《ESP8266联网开源分享.zip》资料免费下载
    发表于 12-06 14:45 4次下载
    <b class='flag-5'>ESP8266</b><b class='flag-5'>物</b><b class='flag-5'>联网</b>开源分享

    构建基于ESP8266联网控制

    电子发烧友网站提供《构建基于ESP8266联网控制器.zip》资料免费下载
    发表于 02-13 16:26 3次下载
    构建基于<b class='flag-5'>ESP8266</b>的<b class='flag-5'>物</b><b class='flag-5'>联网</b><b class='flag-5'>控制</b>器

    使用FirebaseESP8266联网平台

    电子发烧友网站提供《使用FirebaseESP8266联网平台.zip》资料免费下载
    发表于 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'>联网</b>平台

    采用ESP8266联网开关

    电子发烧友网站提供《采用ESP8266联网开关.zip》资料免费下载
    发表于 07-06 15:03 4次下载
    采用<b class='flag-5'>ESP8266</b>的<b class='flag-5'>物</b><b class='flag-5'>联网</b>开关

    ESP8266联网茶壶

    电子发烧友网站提供《ESP8266联网茶壶.zip》资料免费下载
    发表于 07-10 16:45 0次下载
    <b class='flag-5'>ESP8266</b><b class='flag-5'>物</b><b class='flag-5'>联网</b>茶壶