I would like to upload parsed data in esp32 to Google Firebase

Esp32 received the parsed packet value through esp32uart communication with atmega328.
I want to register this packet value with the server as real-time data value by communicating wifi again.
What should I do? I don't know how.

-----------------------------------------------------------------------
main code
-----------------------------------------------------------------------
#include <WiFi.h>
#include <FirebaseESP32.h>
#include <HardwareSerial.h>
#define SSID_id "NZR" //공유기 이름
#define password "needsrobot"//공유기 비밀번호
#define FIREBASE_AUTH "RddMa9fJUuRJ8MoHqNYoSZr71fIznCWV8LK1Wd8m"//파이어베이스 암호키
#define FIREBASE_HOST "parmkit-packetdatatx-default-rtdb.firebaseio.com" //파이어베이스 호스트 주소
#define RXD2 16
#define TXD2 17


//tx관련
#define ControlPacket_length 23 //컨트롤메시지 패킷 길이
byte ControlPacket_data[ControlPacket_length]={0, }; //컨트롤패킷데이터 배열변수

//rx관련
#define SensorPacket_length 16 // 센서메세지 패킷 길이

//버튼 트리거
#define button1 0

//파싱관련
byte rxPacketData[ControlPacket_length]={0, };
byte data=0;
byte cntVal=0;
boolean flagComRx=false;

// 카운터 관련 
uint32_t cntLoop=0;
uint8_t valButton;

void controlpacket()
{
      ControlPacket_data[0] = 0x03;
      ControlPacket_data[1] = 0x02;
      ControlPacket_data[2] = ControlPacket_length;
      ControlPacket_data[3] = 0x02;
      ControlPacket_data[4] = cntVal++;
      
      ControlPacket_data[ControlPacket_length-1] = ControlPacket_data[0];
  
      for(byte i=1; i<ControlPacket_length-1; i++) //CRC 생성
      {
        ControlPacket_data[ControlPacket_length-1]=ControlPacket_data[ControlPacket_length-1]^ControlPacket_data[i];
      }
      
      Serial2.write(ControlPacket_data, ControlPacket_length);
     
      Serial.print("[Tx}: ");
      printString(ControlPacket_data, ControlPacket_length);
       
     
}
void setup(){
  
 WiFi_FireBase_connect();
 
}

 

void loop()
{
   
   
   if(Serial2.available()) //센서데이터 패킷이 들어오면
     {
       data=Serial2.read(); //임시변수에 집어넣고
       fnAPP_Packet_Parsing(data); // 패킷분석 후 flagComRx 값을 false 변환되면
     }

   valButton = digitalRead(button1);
  
   if(valButton==0) // (flagComRx==false) &&  if조건을 만족 하기 때문에 버튼을 누르면
     {
      cntLoop++;
      if (cntLoop>5000)  { // 200ms
          controlpacket();//컨트롤패킷을 보내면서 flagComRx 값을 true로 변경되고 if문을 빠져나옴
          cntLoop = 0;
      }
     }
     
   delayMicroseconds(10);
}


void printString(byte *buffTemp, byte lenStr) // 더비깅 테스팅 
{
      for (byte i=0; i<lenStr; i++) 
        {
          Serial.print(buffTemp[i]);
           Serial.print(" ");
        }
    Serial.println();
}

void WiFi_FireBase_connect()
{
   Serial.begin(115200);
  Serial2.begin(57600);
  Serial.println("Test begin");  
  pinMode(button1, INPUT_PULLUP);

   Serial.print("Wifi Start"); // 와이파이 시작
  WiFi.begin(SSID_id, password);// 접속요청
  delay(100);

    while(WiFi.status()!=WL_CONNECTED) //와이파이 접속이 완료될때까지 계속 연결
   {
     Serial.print(".");
     delay(500);
    }

  Serial.println("Connected"); //연결 성공시 텍스트 출력
  Serial.print("ip Adress: ");
  Serial.print(WiFi.localIP()); //ip주소 호출

  Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH); //파이어베이스 웹서버 연결시작
  Firebase.reconnectWiFi(true);//와이파이 끊어졋을때 웹서버 재연결
}

What does that mean?

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.