📜  物联网Google Firebase NodeMCU

📅  最后修改于: 2021-01-04 01:04:04             🧑  作者: Mango

物联网项目:使用NodeMCU ESP8266的Google Firebase

在此物联网项目中,我们将Arduino NodeMCU设备与Google Firebase数据库连接,并使用Android应用程序将数据发送到Firebase以控制LED。

Google Firebase数据库是Google提供的实时,高速,免费的数据库。

硬件要求

  • Wi-Fi节点MCU ESP8266
  • 标准USB电缆连接Node MCU
  • 母对母跳线
  • LED
  • 灯泡座
  • 线
  • AC 220v / 120v家用电器或9v沃尔特电池

软件需求

  • Arduino软件
  • Android Studio

项目的工作原理(Android应用,Google Firebase和Node MCU)

在此项目中,有三个主要组件,它们使用Android应用程序,Firebase数据库和Wi-Fi Node MCU。

Android应用会将串行数据1或0发送到Firebase数据库。 Firebase数据库与Wi-Fi NodeMCU进行交互,并且该NodeMCU根据从Firebase数据库接收的数据进行操作。如果NodeMCU接收到串行数据1,则LED点亮;如果NodeMCU接收到串行输入0,则LED熄灭。

该项目分为三个不同的步骤:

将Arduino Node-MCU与Google Firebase连接

从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数据库是用于物联网的最快,实时和免费的数据库之一。