#include <Servo.h> //include untuk memasukkan file yg diinginkan, file library program
Servo myservo; //mengidentifikasi nama servo yang digunakan
#define waterLevelSensor A0
#define emptyLED A1
#define fullLED A2
#define DHTPIN 2
const float BETA = 3950;
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
/*//#define BLYNK_PRINT DebugSerial
#include <SoftwareSerial.h>
//SoftwareSerial DebugSerial(2,3);
#include <BlynkSimpleStream.h>
char auth[] ="866CZ3vk1BgTXZq_cWm-o_jjl3v2AWXH";
BlynkTimer timer;
/*char ssid[] ="HOME";
char pass[] ="localhost";*/
void setup() {
Serial.begin(9600);
pinMode(waterLevelSensor, INPUT);
pinMode(emptyLED, OUTPUT);
pinMode(fullLED, OUTPUT);
myservo.attach(9);
dht.begin();
}
void loop()
{
//blynk
/*Blynk.run;
timer.run;*/
//water level dan pompa
int waterLevel = analogRead(waterLevelSensor);
if (waterLevel > 900) // jika volume air sangat penuh
{
Serial.println("Kondisi Air Penuh"); // mengirim data ke port serial atau menampilkan data ke serial monitor (baris baru)
myservo.write(180); //servo di posisi 180 derajat
digitalWrite (emptyLED,LOW);
digitalWrite(fullLED,HIGH);
}
else if ((waterLevel > 250 ) && (waterLevel <=900 )) // volume air pertengahan
{
Serial.println("Kondisi Air Cukup"); // mengirim data ke port serial atau menampilkan data ke serial monitor (baris baru)
myservo.write(90);
digitalWrite (emptyLED,HIGH);
digitalWrite(fullLED,HIGH);
}
else
{
Serial.println("Kondisi Air Kering");
myservo.write(0);
digitalWrite (emptyLED,HIGH);
digitalWrite(fullLED,LOW);
delay(500);// delay pergerakan servo 0,5s}
}
//temeprature air ceritanya
int analogValue = analogRead(A3);
float celsius = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
Serial.print("Suhu Air: ");
Serial.print(celsius);
Serial.println(" ℃");
delay(1000);
//temperature ruangan
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
// Read temperature as Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature(true);
// Check if any reads failed and exit early (to try again).
/* if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}*/
// Compute heat index in Fahrenheit (the default)
float hif = dht.computeHeatIndex(f, h);
// Compute heat index in Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex(t, h, false);
Serial.print(F("Kelembapan Udara: "));
Serial.print(h);
Serial.print(F("% Temperature Ruangan: "));
Serial.print(t);
Serial.print(F("°C "));
Serial.print(f);
Serial.print(F("°F Heat index: "));
Serial.print(hic);
Serial.print(F("°C "));
Serial.print(hif);
Serial.println(F("°F"));
}
Loading
esp-01
esp-01