带有firebase的节点MCU(ESP 8266)

时间:2018-06-10 18:10:07

标签: firebase firebase-realtime-database arduino nodemcu

这是我上传到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);`}

NODE mcu连接互联网没有任何问题。但是LEDStatus没有在firebase中更新。

我的参考图书馆出了问题

FirebaseArduino.h

请帮助

5 个答案:

答案 0 :(得分:1)

Google Firebase数据库机密现已弃用。因此,您需要继续使用Firebase Admin SDK。enter image description here请参阅此内容。

答案 1 :(得分:1)

尝试这样做

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

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

对我来说,这样做并没有帮助。有用的是从以下位置更改“ FirebaseHttpClient.h”文件中“静态常量char kFirebaseFingerprint []”中的指纹 “ C:\ Users \ xxxxxxxx \ Documents \ Arduino \ libraries \ firebase-arduino-master \ src”

通过放置FIREBASE_HOST(即https://www.grc.com/fingerprints.htm),您可以找到一种形式为“ https://xxxxxxx.firebaseio.com/”的指纹

PS。不要在指纹中放入(:)

答案 2 :(得分:1)

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

IN。

答案 3 :(得分:1)

我回答了类似的问题here

基本上,由于数据库秘密已被废除(如previus answer中所指出),而且我找不到支持新Firebase Admin SDK的Arduino库,因此我使用了{{3} },使用 http触发器从实时数据库中存储和检索数据。

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

答案 4 :(得分:0)

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

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