ThingSpeak는 클라우드 기반으로 동작되는 데이터 분석 솔류션이다.
채널생성 및 필드 생성하기
API Keys 탭에서 Write Key 복사하기
channel settings에서 channel ID도 복사하기
아두이노 IDE 라이브러리 매니저에서 thingspeak
설치
예제 > thingspeak > esp32 > writesinglefield 예제 띄우기
ssid, pw, channel ID, write API key를 헤더에 입력하여 esp32에 업로드 시켜보면, 웹사이트에서 그래프가 20초마다 생길 것이다.
delay(20000) - 20초보다 짧게 주면 돈을 더 줘야하기 때문에, delay(20000)으로 고정하자!
Firebase : 구글
에서 제공하는 플랫폼 서비스로 Cloud Database
구축 용도이다. 개발자가 OS 에 관계없이 앱을 만들수 있으며 앱에서 필요로 하는 기능을 API 형태로 제공
한다.
프로젝트
생성 후 빌드 > Firestor Database
로 이동후 데이터베이스 만들기 > 테스트 모드에서 시작
으로 데이터베이스 생성하기
빌드 > Realtime Database > DB 만들기 > 테스트 모드
로 생성하기
생성한 Realtime Database의 주소
복사하기
프로젝트 설정 > 서비스 계정 > DB 비밀번호
에서 비밀번호 복사하기
아두이노 IDE 라이브러리 매니저에서 Firebase ESP 32 Client
설치
예제 > Firebase ESP 32 Client > esp32 > writesinglefield 예제 띄우기
#include <WiFi.h>
#include <FirebaseESP32.h>
#define FIREBASE_HOST "haha" // 데이터베이스 주소
#define FIREBASE_AUTH "hoho" // 데이터베이스 키
FirebaseData firebaseData;
FirebaseJson json;
#define WIFI_SSID "huhu"
#define WIFI_PASSWORD "hehe"
void setup()
{
Serial.begin(115200);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();
Serial.printf("Firebase Client v%s\n\n", FIREBASE_CLIENT_VERSION);
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
}
void loop()
{
String str= "hello world!";
json.set("payload", str);
Firebase.pushJSON(firebaseData, "/response", json); // 보내기, 송신
Serial.println("PATH: " + firebaseData.dataPath());
Serial.println("PUSH NAME: " + firebaseData.pushName());
delay(2000);
}