firebase-realtime-database - 使用nodemcu将sim 808 gps数据发送到firebase ...发送0数据
问题描述
我正在使用 nodemcu 作为一种方法,使用 df 机器人库从我的 sim 808 模块中获取数据,并将收集到的数据发送到我的 firebase 实时数据库。尽管代码中没有错误,但我没有发送任何数据。下面的代码只是 firebasearduino 和 dfrobot 库示例代码的修改版本。
这是我正在使用的代码:
#include <ESP8266WiFi.h>
#include <FirebaseArduino.h>
#define FIREBASE_HOST "mcuu-xxxx.firebaseio.com"
#define FIREBASE_AUTH "xxxxxxxxxxxxx"
#define WIFI_SSID "xxxxxxx"
#define WIFI_PASSWORD "xxxxxxxxxx"
#include <DFRobot_sim808.h>
#include <SoftwareSerial.h>
#define PIN_TX 4
#define PIN_RX 5
SoftwareSerial mySerial(PIN_TX,PIN_RX);
DFRobot_SIM808 sim808(&mySerial);//Connect RX,TX,PWR,
void setup() {
Serial.begin(9600);
mySerial.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);
while(!sim808.init()) {
delay(1000);
Serial.print("Sim808 init error\r\n");
}
//************* Turn on the GPS power************
if( sim808.attachGPS())
Serial.println("Open the GPS power success");
else
Serial.println("Open the GPS power failure");
}
int n = 0;
void loop() {
Serial.print("Latgps: ");
Serial.println(sim808.GPSdata.lat, 8);
Serial.print("Longps: ");
Serial.println(sim808.GPSdata.lon, 8);
// set value
Firebase.setFloat("latitude",sim808.GPSdata.lat);
// handle error
if (Firebase.failed()) {
Serial.print("firebase connection failed");
Serial.println(Firebase.error());
return;
}
delay(1000);
// update value
Firebase.setFloat("longitude", sim808.GPSdata.lon);
// handle error
if (Firebase.failed()) {
Serial.print("firebase connection failed");
Serial.println(Firebase.error());
return;
}
delay(1000);
// get value
Serial.print("latitudefire: ");
Serial.println(Firebase.getFloat("latitude"));
Serial.print("longitudefire: ");
Serial.println(Firebase.getFloat("longitude"));
delay(1000);
// set string value
Firebase.setString("message", "xxxxxxxx");
// handle error
if (Firebase.failed()) {
Serial.print("setting /message failed:");
Serial.println(Firebase.error());
return;
}
delay(1000);
}
SERIAL MONITOR:
connected: 192.168.1.6
Open the GPS power success
Latgps: 0.00000000
Longps: 0.00000000
latitudefire: 0.00
longitudefire: 0.00
Latgps: 0.00000000
Longps: 0.00000000
latitudefire: 0.00
longitudefire: 0.00
Latgps: 0.00000000
Longps: 0.00000000
latitudefire: 0.00
longitudefire: 0.00
解决方案
推荐阅读
- visual-studio - 限制在 Visual Studio 或其他开发者项目中加载网络框架 DLL
- swift - 将变量从 UIButton 传递给另一个函数
- php - 在phpmailer中调整图像大小
- node.js - 两个项目工作区的 VSCode Eslint 配置
- email - 使用消息、收件人和附件预填充邮件客户端,但不发送
- vuejs2 - 通过数组移动的Vue组件问题
- python - Windows 10 上 python 3.8 中的 PyCairo Pip 安装失败
- c++ - 使用 Clang++ 有没有办法将文件包含为命名空间等?
- c++ - 如何在 cmake 库中包含 libcurl
- ngxs - NGXS:如何让 RouteHandler 工作?