반응형

먼저 파이어베이스에 접속하여 로그인한다. 

파이어베이스 주소 : https://firebase.google.com/?hl=ko

 

Firebase

Firebase는 고품질 앱을 빠르게 개발하고 비즈니스를 성장시키는 데 도움이 되는 Google의 모바일 플랫폼입니다.

firebase.google.com

 

먼저 콘솔로 이동을 클릭한다. 그리고 자신의 프로젝트를 선택하여 들어간 뒤 

옆에 톱니바퀴 우리가 흔히 설정의 아이콘으로 알고 있는 저 익숙한 아이콘을 선택하면 프로젝트 설정과 사용자 및 권한이 나오게 되는 데 그 중에 '프로젝트 설정'을 누르면 된다.

그 후 서비스 계정을 누르고 밑으로 내려보면 '데이터베이스 비밀번호'라고 써 있는 곳이 있는데 거기를 클릭한다.

클릭하면 저렇게 비밀번호가 동그라미로 나오게 되는 데 가장 오른쪽에 마우스를 가져다 놓으면 표시라는 것이 뜨게 된다. 그것을 꾹 클릭하면 복사하기 라는 아이콘이 나오는데 그걸 클릭한 후 저기 아두이노 코드에 붙여넣기 하면 된다.

 

 

여기서 환경설정(Ctrl + Comma)를 누른다. 그러면 

이런 화면이 나오게 되는데 여기서 저기 추가적인 보드 매니저 URLs 줄에 있는 파란색 네모를 누른다(네모 두개 겹쳐져있는 거 말하는 거임.)

그걸 누르면 

이런 화면이 나오는데(원래 있었는데 설명하느라 지워버림. ㅎ) 저 화면 흰색 부분에 http://arduino.esp8266.com/stable/package_esp8266com_index.json 를 삽입하고 확인을 누른다.

 

+ 2020-11-26

요즘 새로 파이어베이스 라이브러리가 바뀌면서 기존코드가 안되고 있는 상황이라고 들었는데 그래서 나도 열심히 여러 사람들의 포스팅을 참고해서 보드 매니저에 dl.espressif.com/dl/package_esp32_index.json

도 추가해보고 툴-> 보드매니저에서 esp8266를 검색해서 설치했더니 된다. (진짜 식은땀 좔좔)

 

툴 -> 라이브러리 관리를 눌러준다. 그러면 

이런 화면이 나오는데 여기서 json 이라고 친다. 그러면 ArduinoJson by Benoit Blanchon를 누르고 설치를 눌러준다.

 

그리고 나서 파이어베이스 라이브러리를 추가해줘야하는데

https://github.com/mobizt/Firebase-ESP8266

 

mobizt/Firebase-ESP8266

ESP8266 Firebase RTDB Arduino Library. Contribute to mobizt/Firebase-ESP8266 development by creating an account on GitHub.

github.com

여기로 들어가서 다운받으면 된다. 하지만 나는 귀찮고 이 글을 보시는 분들중에 아주 귀찮아 하시는 분들이 있을 수 있으니까 파일을 올려드리겠습니다.

Firebase-ESP8266-master.zip
0.14MB

이걸 다운받으신 후에 'libraries'폴더 안에 압축을 풀면 된다. (사람마다 경로가 다를 수 있다. 왜냐하면 아두이노를 어디에 설치했는지 모르니까?)

 

풀코드 

#include <ESP8266WiFi.h>
#include "FirebaseArduino.h" // 파이어베이스 라이브러리

#define FIREBASE_HOST "파이어베이스아이디"
#define FIREBASE_AUTH "비밀번호"
#define WIFI_SSID " "
#define WIFI_PASSWORD " "

#include "DHT.h"
#define DHTPIN 5     // what digital pin we're connected to
#define DHTTYPE DHT11  // DHT 22  (AM2302), AM2321
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(115200);

  // connect to wifi.
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  Serial.print("connecting");
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }
  Serial.println();
  Serial.print("connected: ");
  Serial.println(WiFi.localIP());
  
  Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);

  Serial.println("DHT11 test!");
  dht.begin();
}

int n = 0;

void loop() {
  delay(2000);
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  if (isnan(h) || isnan(t)) {
    Serial.print("Error");
    return;
  }
  Firebase.setFloat("Humidity",h);
  Firebase.setFloat("Temperature",t);

  
  n++;
  // set value
  Firebase.setFloat("number", n);
  // handle error
  if (Firebase.failed()) {
      Serial.print("setting /number failed:");
      Serial.println(Firebase.error());  
      return;
  }
  delay(1000); 
}

 

 

반응형

+ Recent posts