You are on page 1of 2

#include <FirebaseESP8266.

h>
#include <WiFiManager.h>
#include <EEPROM.h>
#include <ESP8266WiFi.h>

// Cấu hình thông tin Firebase


#define FIREBASE_HOST "gianphoido-c6bb8-default-rtdb.firebaseio.com"
#define FIREBASE_AUTH "hMb5tcglA3S8xHk04cH4JrOfOlAPewiqAyn9QABe"

// Khởi tạo đối tượng Firebase


FirebaseData firebaseData;

// Khai báo các chân kết nối cảm biến và relay


unsigned int t;
int st1, cd;
int motor1;
const int motorPin1 = D2;
const int motorPin2 = D3;

// Biến lưu trữ giá trị đọc được từ cảm biến


int rainValue;
int lightValue;

void setup() {
// Kết nối WiFi
EEPROM.begin(512);
WiFiManager wifiManager;
Serial.begin(9600);
delay(3000);
wifiManager.resetSettings();
wifiManager.autoConnect("ESP8266-TrieuVi");
Serial.println("Kết nối Wifi thành công :)");
Firebase.begin(WiFi.SSID().c_str(), WiFi.psk().c_str());

// Khởi tạo kết nối Firebase


Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);

// Khai báo chân kết nối của các thiết bị


pinMode(A0, INPUT);
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
//digitalWrite(motorPin1, HIGH);
//digitalWrite(motorPin2, HIGH);
}

void loop() {
// Đọc giá trị từ các cảm biến
int st = analogRead(A0);
int rainValue = digitalRead(D0);
int st1 = map(st, 350, 1023, 0, 100);
int lightValue = 100 - st1;
Serial.print("Anh sang: ");
Serial.println(lightValue);
if (rainValue == 0) {
Serial.print("Co mua: ");
} else {
Serial.print("khong mua: ");
}
Serial.println(rainValue);
// Ghi giá trị cảm biến vào Firebase
Firebase.setInt(firebaseData, "/rain", rainValue);
Firebase.setInt(firebaseData, "/light", lightValue);

Firebase.getString(firebaseData, "/motor1");
String t = firebaseData.stringData();
motor1 = t.toInt();
Firebase.getString(firebaseData, "/cd");
String t1 = firebaseData.stringData();
cd = t1.toInt();

// delay(1000);

// Điều khiển motor dựa trên giá trị của cảm biến
if (cd == 1) {
if (rainValue == 1 || lightValue > 100) {
motor1 == 0;
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, HIGH);

} else {
motor1 == 1;
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
}
}

//bat tat tay


if (cd == 0) {
if (motor1 == 0) {
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, HIGH);
} else {
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
}
}

delay(1000);
}

You might also like