使用 ESP32+Sim800L 将传感器数据发送到 Firebase

Sending Sensor Data to Firebase using ESP32+Sim800L

我有一块 TTGO T-CALL ESP32+Sim800L 板,我想将加速度计数据发送到 Firebase。 我正在使用支持 Sim800L SSL/https 连接的 TinyGSM 库。 我目前正在发送虚拟数据以查看它是否有效,但它给了我一个失败的标志。 为什么它不向 Firebase 发送数据?

#define FIREBASE_HOST "https://XXXXXXXXXXXXXXXXXfirebaseio.com/"
#define FIREBASE_AUTH "XXXXXXXXXXXXXXXXXXXXhevKwQ3LALblGclqCk"

FirebaseData firebaseData;

void setup()
{
// Set console baud rate
Serial.begin(115200);
// Set-up modem reset, enable, power pins
pinMode(MODEM_PWKEY, OUTPUT);
pinMode(MODEM_RST, OUTPUT);
pinMode(MODEM_POWER_ON, OUTPUT);
digitalWrite(MODEM_PWKEY, LOW);
digitalWrite(MODEM_RST, HIGH);
digitalWrite(MODEM_POWER_ON, HIGH);

// Set GSM module baud rate and UART pins
SerialAT.begin(115200, SERIAL_8N1, MODEM_RX, MODEM_TX);
delay(3000);

SerialMon.println("Initializing modem...");
modem.init();

SerialMon.print("Connecting to APN: ");
SerialMon.print(apn);
  if (!modem.gprsConnect(apn, gprsUser, gprsPass)) {
    SerialMon.println(" fail");
  }else {
    SerialMon.println(" OK");

    Firebase.begin(FIREBASE_HOST,FIREBASE_AUTH);
    SerialMon.println(" Connection to Firebase Successful");
}
}

void loop()
{
String data = "5";
bool res = Firebase.pushString(firebaseData,"/ax", data);
Serial.println("Data sent");
Serial.println(res); 
Serial.println(firebaseData.errorReason());
delay(1000);

}

This is the output:

我没有在网上找到很多资源,但是,我确实设法做到了,并且我为需要帮助的人制作了一个 GitHub repo

基本上,由于 Firebase 仅接受 Https 请求,因此无法在大多数微控制器和 GSM 模块上制定。 为了避免这个问题,我创建了一个 php 服务器,我可以向其发送 HTTP POST 请求,脚本可以从中获取数据并使用 php firebase 库将其推送到 Firebase .