【发布时间】:2019-11-26 01:32:50
【问题描述】:
我的传感器正在正确收集数据,但没有将数据推送到 Firebase。正如预期的那样 Firebase.failed 返回 true 但 Firebase.error 为空。请帮我写代码,因为我的项目将在三天后到期。
我已尝试更改 FirebaseHttpClient.h 文件中的指纹。我还尝试使用和不使用“/”更改 Firebase HOST。
#include "DHT.h"
#include <FirebaseArduino.h>
#include <ESP8266WiFi.h>
#define FIREBASE_HOST "your-project.firebaseio.com"
#define FIREBASE_AUTH "69DtX********************"
#define WIFI_SSID "LAPTOP" // Change the name of your WIFI
#define WIFI_PASSWORD "********" // Change the password of your WIFI
#define DHTPIN 14 // Data Pin of DHT 11 , for NodeMCU D5 GPIO no. is 14
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
WiFi.begin (WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
dht.begin();
Serial.println ("");
Serial.println ("WiFi Connected!");
Firebase.begin(FIREBASE_HOST,FIREBASE_AUTH);
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature(); // Reading temperature as Celsius (the default)
String firehumid = String(h) + String("%");
String firetemp = String(t) + String("C");
Serial.println("Humidity = ");
Serial.println(h);
Serial.println("Temperature = ");
Serial.println(t);
Firebase.setString("/Humidity",firehumid);
Firebase.setString("/Temperature",firetemp);
delay(4000);
if(Firebase.failed())
{
Serial.println("error!");
Serial.println(Firebase.error());
}
}
【问题讨论】:
-
告诉我们您的草图基于此示例github.com/FirebaseExtended/firebase-arduino/tree/master/… 会有所帮助。我正在使用最新的 FirebaseArduino 库和最新的 ArduinoJson 5.x(不是 6.x!),并且演示运行良好。也许您应该回到模板并首先验证您为四个变量添加了正确的值?
-
DHT 标签是关于分布式哈希表,而不是温度传感器。
-
您能否尝试运行随 Arduino firebase 库提供的基本示例并在此处发布结果。您必须在 DB 上启用读/写才能允许从 nodeMCU 写入数据。
标签: firebase firebase-realtime-database arduino arduino-ide nodemcu