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

今天我们将使用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。
转到“工具”并选择“板”。
在板的部分中,选择“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.在右上角转到“转到控制台”
4.点击“添加项目”
5. 输入您的项目名称。
6. 接受条款和条件,创建项目并点击“继续”
您已成功创建项目。查找主机名和授权密钥,也称为密钥。为此,请按照以下步骤操作:
7. 转到设置图标(齿轮图标),然后单击“项目设置”
8. 现在点击“服务帐户”
9. 可以看到“firebase admin sdk”和“database secrets”两个选项
10.点击“数据库秘密”
11. 滚动您的项目名称,“显示”选项出现在项目右侧
12.点击“显示”,现在您可以看到为您的项目创建的密钥
13. 复制密钥并保存到记事本。这是我们在上面的 arduino 程序中编写的“firebase_auth”字符串。
14.现在转到左侧控制栏上的“数据库”并单击它
15.向下滚动并单击“创建数据库”
16. 选择“start in test mode”并点击“enable”
17. 现在你的数据库已经创建好了,你将不得不再次来到这个部分来控制 led
18.现在就在数据库上方你可以看到
“ https://your_project_name.firebaseio.com/ ”
19. 只需复制“ your_project_name.firebaseio.com ”,不带任何斜线和https,然后将其再次保存到记事本中,就像您保存的密钥一样
20. 这是我们在上面的 arduino 程序中编写的“firebase_host”字符串
21. 您可以探索 firebase,但让我们先完成教程。
现在将“firebase_host”和“firebase_auth”放入arduino程序并上传草图。我们已经完成了这两个部分的设置。最后给出了完整的 arduino 程序。
打开 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);
}
}

Expand 命令示例
射极跟随电路设计
魅蓝5s又迈了一大步,千元机普及快充第一机
锂电池的充电电路与保护电路设计
电感分类简介
如何使用Google Firebase控制台和ESP8266的物联网控制LED
云之家数字化转型,金蝶为什么会得到资本市场的认可
绿色继电器是如何工作的?
危机逼近,华为自研的操作系统渐显“真容”
有不漏音的骨传导耳机吗?骨传导耳机漏音科普
PLC怎么控制伺服电机
城市停车及物业管理两大领域的发展动向
PCB的电磁兼容测试设计方案
眼图背后的故事【明眸】与【蜂腰】
研究当前传感的全效技术如何将其应用于智能电网
艾迈斯欧司朗安全可靠的医疗与健康解决方案分享
李彦宏:人工智能由“炫”转“实”
三星发布5nm工艺Exynos 1080 vivo首发搭载Exynos 1080处理器的手机
微软在近期的Inspire活动中展示了一段超酷的HoloLens演示视频
人工智能与人脑影像学结合数据库建立,助力中枢神经系统疾病的治疗