首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想做LoRa接收器,LoRa消息将被发送到Firebase,但我总是失败

我想做LoRa接收器,LoRa消息将被发送到Firebase,但我总是失败
EN

Stack Overflow用户
提问于 2022-06-28 16:10:40
回答 1查看 94关注 0票数 0

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

我在用ESP32和RFM95 SX1276。

代码语言:javascript
复制
#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);
  }
 }
}
EN

回答 1

Stack Overflow用户

发布于 2022-09-24 07:34:52

就我所理解的Firebase库而言,它是Firebase.setString(key, value);。所以只有两个论点。你已经超过三个了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72789882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档