【问题标题】:Node MCU(ESP 8266) with firebaseNodemcu(ESP8266)与火力基地
【发布时间】:2018-06-10 18:10:06
【问题描述】:

这是我上传到 ESP8266 以连接到 Firebase 的代码。

 #include <ESP8266WiFi.h>
 #include <FirebaseArduino.h>

 #define FIREBASE_HOST "*******.firebaseio.com"
 #define FIREBASE_AUTH "68GM**************m4k0IPLXF4G1"
 #define WIFI_SSID "IDR"
 #define WIFI_PASSWORD "****"

 #define LED 2

 void setup() {
    pinMode(LED,OUTPUT);
    digitalWrite(LED,0);
    digitalWrite(LED,0);
    Serial.begin(9600);
    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);
    Firebase.setInt("LEDStatus",0);
 }   

 void loop() {
    if(Firebase.getInt("LEDStatus"))
    {                            
       digitalWrite(LED,HIGH);
    }
    else
    {
       digitalWrite(LED,LOW);
    }
    delay(1000);
 }

使用此代码,我的 NodeMCU 可以毫无问题地连接到互联网。
问题是 LEDStatus 没有在 firebase 数据库中更新。

我的 FirebaseArduino.h 参考库有问题吗?

任何帮助将不胜感激。

【问题讨论】:

    标签: firebase firebase-realtime-database arduino nodemcu arduino-esp8266


    【解决方案1】:

    Google Firebase 数据库机密现已弃用。所以你需要继续使用 Firebase Admin SDK。 看到这个。

    【讨论】:

    • 谢谢山顿。我会查的。
    【解决方案2】:

    尝试这样做

      Firebase.setInt("LEDStatus",0); 
         if (Firebase.failed()) {
         Serial.print("failed:");
         Serial.println(Firebase.error());  
         return;
      }
    

    如果它在串行监视器上打印“失败”,请仔细检查“FIREBASE_HOST”和“FIREBASE_AUTH”

    对我来说,这样做并没有帮助。帮助更改“FirebaseHttpClient.h”文件中的“static const char kFirebaseFingerprint []”中的指纹 "C:\Users\xxxxxxxx\Documents\Arduino\libraries\firebase-arduino-master\src"

    您可以通过输入您的 FIREBASE_HOST(即https://xxxxxxx.firebaseio.com/)在“https://www.grc.com/fingerprints.htm”表格中找到您的指纹

    PS。不要把 ( : ) 放在指纹里

    【讨论】:

      【解决方案3】:
      1. 首先检查您是否已授予写入数据库规则的权限。
      2. 或根据https://github.com/FirebaseExtended/firebase-arduino/issues/236 更改 FirebaseFingerPrint,这解决了我的问题。
      3. (可选)使用 6 位 SSID、PASSWORD 但不要太长的字符串。有时,由于命名约定不当,我在制作 softAp 时遇到问题。

      输入。

      【讨论】:

        【解决方案4】:

        我回答了一个类似的问题here。

        基本上,由于数据库机密已被弃用(正如 previus answer 中指出的那样),而且我找不到支持新 Firebase Admin SDK 的 Arduino 库,我使用了 Firebase Cloud Functions,与 http 触发器 存储和检索实时数据库中的数据。

        您可以在链接的答案中看到 Arduino 草图和云功能的示例。

        【讨论】:

          【解决方案5】:

          感谢@Isuru Nuwanthilaka,我完成了工作,并且我的 nodeMcu 已成功将数据发送到 firebase,尽管已弃用数据库机密。所以我搜索了一种将数据发送到 firebase 的替代方法,我发现 REST 女巫更容易并且可用于任何支持 https 请求的设备。

          使用 REST(witch 只是一个 https 请求),您只需发送 https 请求即可使用您的 firebase。无需 SDK,无需云功能。在您的情况下,您只需 #include 和其他支持 HTTPS 客户端的库。 node:cu 上不需要 firebaseSDK

          【讨论】:

            猜你喜欢
            • 2016-09-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-06-05
            • 2016-08-03
            相关资源
            最近更新 更多