#include <WiFi.h>
#include<FirebaseESP32.h>
#include <DHT.h>
#define DHT_TYPE DHT22
#define DHT_PIN 2
DHT dht(DHT_PIN,DHT_TYPE);
FirebaseData firebasedata;
FirebaseJson json;
#define FIREBASE_HOST "test1-6f45f-default-rtdb.asia-southeast1.firebasedatabase.app"
#define FIREBASE_AUTH "uSgg8wq4q4o26ppMjSciuSCrGqApWLOOMaX8AyVO"
String path="/";
WiFiClient client;
byte x=0;
int led1=13;
int led2=25;
#include <Stepper.h>
const int stepsPerRevolution = 100; // change this to fit the number of steps per revolution
// for your motor
bool motor=false;
bool den=false;
bool motornhietdo=false;
Stepper myStepper(stepsPerRevolution, 5, 18, 19, 21);
Stepper nhietdoStepper(stepsPerRevolution, 12, 14, 27, 26);
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
myStepper.setSpeed(60);
nhietdoStepper.setSpeed(60);
dht.begin();
Serial.print("Connecting to WiFi");
WiFi.begin("Wokwi-GUEST", "", 6);
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print(".");
}
Serial.println(" Kết nối!");
pinMode(led1,OUTPUT);
pinMode(led2, OUTPUT);
Firebase.begin(FIREBASE_HOST,FIREBASE_AUTH);
Firebase.reconnectWiFi(true);
if(Firebase.beginStream(firebasedata,path)){
Serial.println("Đã kết nối Firebase !");
}
}
void loop() {
int anhsang=analogRead(A0);
int dosang=map(anhsang,32,4063,100,0);
Serial.println(anhsang);
int nhietdo=dht.readTemperature();
int doam=dht.readHumidity();
Firebase.setInt(firebasedata,path+"vuontm/nhietdo",nhietdo);
Firebase.setInt(firebasedata,path+"vuontm/doam",doam);
Firebase.setInt(firebasedata,path+"vuontm/dosang",dosang);
if(nhietdo>=50){
Serial.println("motor nhiệt độ CHẠY");
nhietdoStepper.step(stepsPerRevolution);
}else{
Serial.println("motor nhiệt độ DỪNG");
}
if(dosang<=50){
digitalWrite(led1,HIGH);
}else{
digitalWrite(led1,LOW);
}
if(Firebase.getInt(firebasedata,path+"vuontm/nhietdo")){
x=firebasedata.intData();
Serial.println(x);
Serial.println("");
}
if(Firebase.getInt(firebasedata,path+"vuontm/doam")){
x=firebasedata.intData();
Serial.println(x);
Serial.println("");
}
if(Firebase.getBool(firebasedata,path+"vuontm/motor")){
x=firebasedata.boolData();
motor=bool(x);
}
if(motor){
Serial.println("motor bơm nước CHẠY");
myStepper.step(stepsPerRevolution);
}else{
Serial.println("motor bơm nước DỪNG");
}
if(Firebase.getBool(firebasedata,path+"vuontm/den")){
x=firebasedata.boolData();
den=bool(x);
}
if(den){
Serial.println("Đèn bật");
digitalWrite(led2, HIGH);
}else{
Serial.println("Đèn tắt");
digitalWrite(led2, LOW);
}
}