IoT/Arduino

아두이노 esp32에서 firebase에 데이터 값 전송 [IoT]

은성 개발자 2022. 11. 11. 12:00
728x90

이번 프로젝트로 제일 고생했던 건 다름아닌

아두이노에서 firebase 값을 전송하고 보내는 것인데,,

 

일단 보드를 esp32 client -> NodeMUC-325로 변경해요

( 물론 포트도 확인해줘야 합니다)

 

esp32 client가 없다면 보드매니저에서 추가하셔야 합니다!

 


파이어베이스에 디비를 만듭니다.

이런식으로 만들었다고 치고 a의 값을 이용합니다.


먼저 데이터 값을 보내는 코드입니다.

 

  • https://을 제거한 후 파이어베이스 링크를 붙여줘야 합니다. -> 아두이노가 자동으로 붙여주기 때문
  • firebase 데이터베이스 비밀번호는 '프로젝트 설정 -> 서비스 계정 -> 데이터베이스 비밀번호'에서 복사하면 됩니다.
  • setInt()로 한 건 int 값을 보내니깐 사용
#if defined(ESP32)
#include <WiFi.h>
#include <FirebaseESP32.h>
#elif defined(ESP8266)
#include <ESP8266WiFi.h>
#include <FirebaseESP8266.h>
#endif

/* 2. If work with RTDB, define the RTDB URL and database secret */
#define DATABASE_URL "your_firebase_link" // http 제거!!!!
#define DATABASE_SECRET "your_firebase_password"

/* 1 wifi  */
#define WIFI_SSID "your_wifi"
#define WIFI_PASSWORD "password"

/* 3. Define the Firebase Data object */
FirebaseData fbdo;

void setup() {
  Serial.begin(115200);
  
  // connect to wifi.
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);

  Firebase.reconnectWiFi(true);

  Firebase.begin(DATABASE_URL,DATABASE_SECRET);
  Serial.println("ESP ready.");
}

void loop() {
   int a = 1;

   Firebase.setInt(fbdo,"/aa/a",a);
   
   a++;
   delay(1000);
}

(주의 : 원래 코드와 다르기 때문에 실행이 안될 수 도 있음.)

 

< esp32 에서 실행시 주의 사항 >

  • esp32를 보면 버튼이 2개 있는데, 실행 후 connect...하면서 점이 생기기 시작할 때 왼쪽 버튼을 눌러줘야 실행이 됩니다.
  • 100%까지 되면 그제서야 esp32가 실행됩니다.
  • 왼쪽 버튼을 몇초만 눌러줘야 하는데, 눌러도 안 될 수도 있으니 될 때까지 눌러줘야 합니다.
  • 시간이 지나 오류가 나면 다시 실행해서 왼쪽 버튼을 눌러줘야 합니다.

 


다음에는 데이터 값 보내는 걸 설명하겠습니다!

프로젝트로 배운 게 정말 많네요.. 

 

궁금한 게 있다면 최대한 알려드리겠습니다!!

(늦게 볼 수 있다는 점,,,)

728x90
반응형