FirebaseIOTLEDControlAPP.aia下載
#include <ESP8266WiFi.h>
#include <FirebaseArduino.h>
#define FIREBASE_HOST "https://myledcontrol-bfe1a.firebaseio.com/"
#define FIREBASE_AUTH "K4KsetBtJLVyZFFZKUvgL2MtQ4y8o2rDat3ZR9qV"
#define WIFI_SSID "tcy-3" // 變更 WIFI 的名稱
#define WIFI_PASSWORD "034375396" // 變更 WIFI 的密碼
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); //設置LCD1602的I2C位址為0x27,LCD1602
#define led 14
String fireStatus = ""; // led status received from firebase
void setup()
{
Serial.begin(115200);
delay(1000);
pinMode(led, OUTPUT);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to ");
Serial.print(WIFI_SSID);
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(500);
}
Serial.println();
Serial.print("Connected to ");
Serial.println(WIFI_SSID);
lcd.init(); // 給LCD的I2C通訊初始化
lcd.backlight(); // 點亮LCD背光燈
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH); // 連線到 firebase
Firebase.setString("LED_STATUS", "OFF"); //傳送主導狀態的初始字串
}
void loop()
{
fireStatus = Firebase.getString("LED_STATUS"); // get led status input from firebase
if (fireStatus == "ON")
{ // 比較從firebase接收的主導狀態的輸入
Serial.println("Led Turned ON");
digitalWrite(led, HIGH); // make external led ON
lcd.setCursor(0, 0);
lcd.print("Led Turned ON");
}
else if (fireStatus == "OFF")
{ // 比較從firebase接收的 led 狀態的輸入
Serial.println("Led Turned OFF");
digitalWrite(led, LOW); // make external led OFF
lcd.setCursor(0, 0);
lcd.print("Led Turned ON");
}
else
{
Serial.println("Command Error! Please send ON/OFF");
}
}