firebase-realtime-database - 是否可以将坐标数据发送到具有超过 2 个小数位的 firebase 实时数据库?
问题描述
我正在使用 NodeMCU 和 sim808 微控制器,我正在使用 firebase-arduino 库将从我的 sim808 接收到的数据发送到我的 firebase 实时数据库,我注意到我在我的 firebase 数据库中收到的数据只有小数点后 2 位浮点数考虑到我发送的数据是坐标,这不是那么准确
下面是我正在使用的代码:
#include <DFRobot_sim808.h>
#include <SoftwareSerial.h>
#include <ESP8266WiFi.h>
#include <FirebaseArduino.h>
#define PIN_TX 5
#define PIN_RX 4
// Set these to run example.
#define FIREBASE_HOST "..........com"
#define FIREBASE_AUTH "............."
#define WIFI_SSID "........."
#define WIFI_PASSWORD ".......!"
SoftwareSerial mySerial(PIN_TX,PIN_RX);
DFRobot_SIM808 sim808(&mySerial);//Connect RX,TX,PWR,
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
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");
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);
}
else {
Serial.println("Open the GPS power failure");
}
}
void loop() {
while (sim808.getGPS()){
Serial.print("Latgps: ");
Serial.println(sim808.GPSdata.lat);
Serial.print("Longps: ");
Serial.println(sim808.GPSdata.lon);
// set value
Firebase.set("latitude",sim808.GPSdata.lat);
// handle error
if (Firebase.failed()) {
Serial.print("setting /gps failed:");
Serial.println(Firebase.error());
return;
}
delay(1000);
// update value
Firebase.set("longitude", sim808.GPSdata.lon);
// handle error
if (Firebase.failed()) {
Serial.print("setting /gps failed:");
Serial.println(Firebase.error());
return;
}
delay(1000);
// get value
Serial.print("latfire: ");
Serial.println(Firebase.getFloat("latitude" ), 4);
Serial.print("lonfire: ");
Serial.println(Firebase.getFloat("longitude"), 4);
delay(1000);
// remove value
// set string value
Firebase.setString("message", "........");
// handle error
if (Firebase.failed()) {
Serial.print("setting /message failed:");
Serial.println(Firebase.error());
return;
}
delay(1000);
// set bool value
// append a new value to /logs
}
}
解决方案
推荐阅读
- python - 如何从单独的机密配置文件访问由 wfastcgi 设置的环境变量
- python - Django CMS:创建页面时设置默认占位符值
- android - react-native:运行expo弹出后项目未构建
- shell - 使用 shell 脚本的 O365 收件箱中的邮件计数
- r - R:当一个值出现超过 75% 的时间时,将组中的每个值设置为 NA
- javascript - 查找并禁用
- c - 反向 Jenkins 的一次一个哈希
- angular - 无法将数据放入 MEAN 应用程序
- python - 在python3 vs python2中将参数传递给ctypes函数
- apache-spark - 为什么文件接收器没有完整的模式?