📅  最后修改于: 2021-01-04 01:04:04             🧑  作者: Mango
在此物联网项目中,我们将Arduino NodeMCU设备与Google Firebase数据库连接,并使用Android应用程序将数据发送到Firebase以控制LED。
Google Firebase数据库是Google提供的实时,高速,免费的数据库。
在此项目中,有三个主要组件,它们使用Android应用程序,Firebase数据库和Wi-Fi Node MCU。
Android应用会将串行数据1或0发送到Firebase数据库。 Firebase数据库与Wi-Fi NodeMCU进行交互,并且该NodeMCU根据从Firebase数据库接收的数据进行操作。如果NodeMCU接收到串行数据1,则LED点亮;如果NodeMCU接收到串行输入0,则LED熄灭。
该项目分为三个不同的步骤:
从https://github.com/FirebaseExtended/firebase-arduino下载Firebase Arduino库
将Firebase Arduino库添加到Arduino IDE,单击“草图”->“包含库”->“添加.ZIP库…”,然后选择下载的库。
如果Firebase Arduino库已成功添加,它将显示在“包含库”中。
现在,使用您的Google帐户登录Google Firebase。通过单击添加项目创建Firebase项目。
提供项目名称并创建项目。
单击“项目概述”设置,从中可以找到项目的详细信息。现在,单击“服务帐户”选项以查看数据库机密。
Arduino IDE上用于连接NodeMCU和Google Firebase的程序
单击文件>示例> FirebaseArduino> FirebaseDemo_ESP8266
单击项目概述>项目设置>服务帐户>数据库密码以查看firebase身份验证密码,然后将此密码添加到Arduino程序的FIREBASE_AUTH中。
转到左侧菜单中的“数据库”部分,然后搜索“实时数据库”,您可以在其中找到Firebase主机URL。复制此URL,结尾不带“ https://”和“ /”,并将其粘贴到程序的FIREBASE_HOST中。
在您的项目中添加实时数据库,单击项目概述设置>实时数据库。
将您的WIFI名称和密码分别添加到WIFI_SSID和WIFI_PASSWORD中。
#include
#include
#include
#include
#include
#include
//
// Copyright 2015 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// FirebaseDemo_ESP8266 is a sample that demo the different functions
// of the FirebaseArduino API.
#include
#include
// Set these to run example.
#define FIREBASE_HOST "nodemcu-demo-697d8.firebaseio.com"
#define FIREBASE_AUTH "YOUR_FIREBASE_AUTH"
#define WIFI_SSID "NETGEAR64"
#define WIFI_PASSWORD "*JAVATPOINT#"
void setup() {
Serial.begin(9600);
// connect to wifi.
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("connecting");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println();
Serial.print("connected: ");
Serial.println(WiFi.localIP());
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
}
int n = 0;
void loop() {
// set value
Firebase.setFloat("number", 42.0);
// handle error
if (Firebase.failed()) {
Serial.print("setting /number failed:");
Serial.println(Firebase.error());
return;
}
delay(1000);
// update value
Firebase.setFloat("number", 43.0);
// handle error
if (Firebase.failed()) {
Serial.print("setting /number failed:");
Serial.println(Firebase.error());
return;
}
delay(1000);
// get value
Serial.print("number: ");
Serial.println(Firebase.getFloat("number"));
delay(1000);
// remove value
Firebase.remove("number");
delay(1000);
// set string value
Firebase.setString("message", "hello world");
// handle error
if (Firebase.failed()) {
Serial.print("setting /message failed:");
Serial.println(Firebase.error());
return;
}
delay(1000);
// set bool value
Firebase.setBool("truth", false);
// handle error
if (Firebase.failed()) {
Serial.print("setting /truth failed:");
Serial.println(Firebase.error());
return;
}
delay(1000);
// append a new value to /logs
String name = Firebase.pushInt("logs", n++);
// handle error
if (Firebase.failed()) {
Serial.print("pushing /logs failed:");
Serial.println(Firebase.error());
return;
}
Serial.print("pushed: /logs/");
Serial.println(name);
delay(1000);
}
通过标准USB电缆将NodeMCU ESP8266与个人计算机连接,并在其中上传代码。将代码上传到NodeMCU时,设备持续闪烁。
现在打开串行监视器表单工具,您会发现数据已上传到Firebase数据库。
注意:如果您设置/ number失败:串行监视器中的消息,然后更新指纹:转到C:/ Users / {用户名} / My Documents / Arduino / libraries / firebase-arduino-master / src打开FirebaseHttpClient.h文件,并使用=> 6F D0 9A 52 C0 E9 E4 CD A0 D3 02 A4 B7 A1 92 38 2D CA 2F 26更新指纹
输出:
Google Firebase数据库是用于物联网的最快,实时和免费的数据库之一。