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
    +关注

    关注

    237

    文章

    22449

    浏览量

    645853
  • 物联网
    +关注

    关注

    2868

    文章

    41622

    浏览量

    358343
  • ESP8266
    +关注

    关注

    50

    文章

    947

    浏览量

    43932
  • NODEMCU
    +关注

    关注

    13

    文章

    289

    浏览量

    21000
收藏 人收藏

    评论

    相关推荐

    使用DHT11和ESP8266将传感器数据发送到Firebase数据库

    我们将使用温度和湿度传感器 DHT11和NodeMCU ESP8266 模块在 GoogleFirebase 数据库服务器上实时记录温度和湿度。
    的头像 发表于 09-20 15:53 2280次阅读
    使用DHT11和<b class='flag-5'>ESP8266</b>将传感器数据发送到<b class='flag-5'>Firebase</b>数据库

    ESP8266联网解决

    2015年联网处于爆发的一年,乐鑫的ESP8266WIFI 芯片成为强烈的催化剂。成功的将2014年前的40以上的WIFI成本压缩到现在的10元左右。内置WIFI前端和高性能的32位MCU
    发表于 09-12 16:31

    (可远程)App inventor编写安卓app控制ESP8266

    中,如果WIFI信息没有填错的话ESP8266就会自动连接到云服务器上。开发者可进行测试,测试方法,在控制台该主题处推送消息,可观察ESP8266是否收到该消息。可通过串口工具查看输出。消息检测代码
    发表于 08-23 18:52

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

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

    STM32如何控制ESP8266呢?

    ,只要需要使用无线网络环境的都可以应用它。ESP8266简单来说就是可以通过WiFi实现数据交互。比如:联网、智能插座、智能家居、智能家电、可穿戴电子产品、WiFi定位、WiFi探针、WiFi彩灯
    发表于 09-14 13:57

    基于ESP8266联网智能小车的设计资料分享

    ESP8266ESP32联网智能小车开发系列文章目录第一篇:最简单DIY基于ESP8266
    发表于 01-21 08:39

    Esp8266 Firebase:IP连接后卡住了怎么解决?

    您好,我是这类东西的新手,所以我不明白发生了什么。所以我想用基于 Firebase 数据库的 esp8266(v3) 制作一个联网门锁,并在我插入代码然后运行它时 用应用程序(它用于
    发表于 04-28 06:19

    ESP8266 控制开关

    ESP8266为服务端,当用户的访问设备与ESP8266在同一个Wi-Fi下时,可以通过ESP8266的IP地址来访问控制灯光开关的页面。使用方法:第一步、将下面的代码修改过Wi-F
    发表于 10-21 16:21 28次下载
    <b class='flag-5'>ESP8266</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 3通道控制

    电子发烧友网站提供《ESP8266 3通道控制.zip》资料免费下载
    发表于 07-28 09:26 3次下载
    <b class='flag-5'>ESP8266</b> 3通道<b class='flag-5'>控制</b>

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

    电子发烧友网站提供《使用ESP8266 Wifi模块和iPhone/Android控制LED.zip》资料免费下载
    发表于 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控制带按钮开关的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>

    DHT22到Google表并使用ESP8266LED、开关重置

    电子发烧友网站提供《DHT22到Google表并使用ESP8266LED、开关重置.zip》资料免费下载
    发表于 11-11 11:15 0次下载
    DHT22到<b class='flag-5'>Google</b>表并使用<b class='flag-5'>ESP8266</b>、<b class='flag-5'>LED</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>器

    使用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>平台