这是我的密码。我失败了很多次。我设法在LoRa接收器和LoRa发射机之间发送消息,但未能上传到Firebase。据说我需要主表达式,但是当我查看其他代码并遵循它时,它不使用Arduino IDE推荐的代码。
我在用ESP32和RFM95 SX1276。

#include <SPI.h>
#include <LoRa.h>
#include <WiFi.h>
#include <WiFiClient.h>
const char* ssid = "*******";
const char* password = "******";
#include <Firebase.h>
#define FIREBASE_HOST "************************"
#define FIREBASE_AUTH "************"
#define ss 5
#define rst 14
#define dio0 2
#define BAND 915E6
// Initialize variables to get and save LoRa data
int rssi;
String loRaMessage;
String temperature;
String humidity;
String readingID;
String suhu;
String lembab;
FirebaseData data;
String processor(const String& var){
//Serial.println(var);
if(var == "TEMPERATURE"){
return temperature;
}
else if(var == "HUMIDITY"){
return humidity;
} else if (var == "RRSI") {
return String(rssi);
}
return String();
}
void startLoRA(){
int counter;
LoRa.setPins(ss, rst, dio0);
while (!LoRa.begin(BAND) && counter < 10) {
Serial.print(".");
counter++;
delay(500);
}
if (counter == 10) {
// Increment readingID on every new reading
Serial.println("Starting LoRa failed!");
}
Serial.println("LoRa Initialization OK!");
}
void setup(){
Serial.begin(115200);
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
//WIFI
WiFi.begin(ssid, password);
Serial.print("Connecting to WiFi");
while (WiFi.status() !=WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println("Connected to the Network");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
startLoRA();
}
void loop(){
// Check if there are LoRa packets available
int packetSize = LoRa.parsePacket();
if (packetSize){
String LoRaData = LoRa.readString();
while (LoRa.available()){
Serial.print((char)LoRa.read());
}
// Get RSSI
rssi = LoRa.packetRssi();
Serial.print("With RSSI ");
Serial.println(rssi);
int pos1 = LoRaData.indexOf('/');
int pos2 = LoRaData.indexOf('&');
readingID = LoRaData.substring(0,pos1);
temperature = LoRaData.substring(pos1 + 1, pos2);
humidity = LoRaData.substring(pos2 + 1, LoRaData.length());
if (readingID =="001"){
suhu= temperature;
Serial.print(F("Suhu :"));
Serial.println(suhu);
Serial.println(F("C"));
lembab= humidity;
Serial.print(F("Kelembaban : "));
Serial.print(lembab);
Serial.println("%");
String fbsuhu = String (suhu) + String("C");
String fblembab = String (lembab) + String("%");
Firebase.setString (FirebaseData, "Suhu :", fbsuhu);
Firebase.setString (FirebaseData, "Lembab :", fblembab);
}
}
}发布于 2022-09-24 07:34:52
就我所理解的Firebase库而言,它是Firebase.setString(key, value);。所以只有两个论点。你已经超过三个了。
https://stackoverflow.com/questions/72789882
复制相似问题