구글 콘솔 등록,Home Automation 해 보기 위한 Firebase database , Android App,ESP32,ESP8266 연동 어플
https://play.google.com/store/apps/details?id=com.kjint2pi.iotautohome
https://www.youtube.com/watch?v=0zqbxNQsb68&t=10s
https://www.youtube.com/watch?v=Qt_ul3q0DZg
https://blog.naver.com/kjint_02/222402624526
///arduino version 1.8.13
///https://arduino.esp8266.com/stable/package_esp8266com_index.json
///https://dl.espressif.com/dl/package_esp32_index.json
//firebase esp32 client
//firebase esp8266 client
//https://blog.naver.com/kjint_02/222402624526
//
#if defined(ESP32)
#include <WiFi.h>
#include <FirebaseESP32.h>
//;;int LED_BUILTIN = 2; //nodeMCU-32S skip.. 생략
#elif defined(ESP8266) //esp12e
#include <ESP8266WiFi.h>
#include <FirebaseESP8266.h>
#endif
#include <Ticker.h>
#define FIREBASE_HOST "iotautohome-acdf3-default-rtdb.firebaseio.com"
#define FIREBASE_AUTH "F1Ji8qR6MUr6arY4Dn58nb3DEEl92XQihpgDB1w5"
#define WIFI_SSID "YOUR_WIFI_AP" /// "YOUR_WIFI_AP"
#define WIFI_PASSWORD "YOUR_WIFI_PASSWORD" /// "YOUR_WIFI_PASSWORD"
//Define Firebase Data objects
FirebaseData firebaseLed1; //
FirebaseData firebaseLed2;
FirebaseData firebaseStr;
const int ledR = 15; //GPIO15
const int ledG = 12; //GPIO12 //Led1
const int ledB = 13; //GPIO13 //Led2
String firePath="/fireId0"; /// fireId0,fireId1,fireId2 ... fireId9
String Led1Fire="led1"; //type bool
String Led2Fire="led2"; //type bool
String lcdStr="lcdStr"; //type String maxlength 16
volatile unsigned int count = 0;
volatile unsigned int vistNum=0;
Ticker flipper;
void flip() {
int state = digitalRead(LED_BUILTIN); // get the current state of GPIO1 pin
digitalWrite(LED_BUILTIN, !state); // set pin to the opposite state
++count;
}
void setup()
{
Serial.begin(115200);
pinMode(ledR, OUTPUT);
pinMode(ledG, OUTPUT);
pinMode(ledB, OUTPUT);
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
Serial.println();
Serial.println();
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();
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Firebase.reconnectWiFi(true);
if (!Firebase.beginStream(firebaseLed1, firePath + "/" + Led1Fire))
{
Serial.println("Could not begin stream");
Serial.println("REASON: " + firebaseLed1.errorReason());
Serial.println();
}
if (!Firebase.beginStream(firebaseLed2, firePath + "/" + Led2Fire))
{
Serial.println("Could not begin stream");
Serial.println("REASON: " + firebaseLed2.errorReason());
Serial.println();
}
if (!Firebase.beginStream(firebaseStr, firePath + "/" + lcdStr))
{
Serial.println("Could not begin stream");
Serial.println("REASON: " + firebaseStr.errorReason());
Serial.println();
}
flipper.attach(1.0, flip);
}
void loop()
{
if (!Firebase.readStream(firebaseLed1))
{
Serial.println();
Serial.println("Can't read stream data");
Serial.println("REASON: " + firebaseLed1.errorReason());
Serial.println();
}
if (firebaseLed1.streamTimeout())
{
Serial.println();
Serial.println("Stream timeout, resume streaming...");
Serial.println();
}
if (firebaseLed1.streamAvailable())
{
if (firebaseLed1.dataType() == "boolean")
{
if (firebaseLed1.boolData())
Serial.println("Set " + Led1Fire + " to High");
else
Serial.println("Set " + Led1Fire + " to Low");
digitalWrite(ledG, firebaseLed1.boolData());
}
}
if (!Firebase.readStream(firebaseLed2))
{
Serial.println();
Serial.println("Can't read stream data");
Serial.println("REASON: " + firebaseLed2.errorReason());
Serial.println();
}
if (firebaseLed2.streamTimeout())
{
Serial.println();
Serial.println("Stream timeout, resume streaming...");
Serial.println();
}
if (firebaseLed2.streamAvailable())
{
if (firebaseLed2.dataType() == "boolean")
{
if (firebaseLed2.boolData())
Serial.println("Set " + Led1Fire + " to High");
else
Serial.println("Set " + Led1Fire + " to Low");
digitalWrite(ledB, firebaseLed2.boolData());
}
}
if(count > 9) {
vistNum=vistNum+1;
if (Firebase.setString(firebaseStr, firePath +"/" + lcdStr, "visitor:" + String(vistNum)))
{
Serial.println("visitor:" + String(vistNum));
}
else
{
Serial.println("FAILED");
Serial.println("REASON: " + firebaseStr.errorReason());
}
count=0;
}
}
댓글
댓글 쓰기