#define BLYNK_TEMPLATE_ID "TMPLvDWdyevA"
#define BLYNK_DEVICE_NAME "hidroponik"
#define BLYNK_AUTH_TOKEN "DU4R93efn-sClMUt4qL6DqugBOA4G__o"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <DHTesp.h> //Library untuk DHT
char auth[] = BLYNK_AUTH_TOKEN ; //Auth Token
char ssid[] = "12"; //nama hotspot yang digunakan
char pass[] = "12345678"; //password hotspot yang digunakan
const int DHT_PIN = 26;
const int sensorPin = A0;
byte LED_B = 14;
BLYNK_WRITE(V0)
{
int value1 = param.asInt();
digitalWrite(LED_B,value1); }
DHTesp dht;
BlynkTimer timer;
//function untuk pengiriman sensor
void sendSensor()
{
TempAndHumidity data = dht.getTempAndHumidity();
float kelembaban_tanah;
int nilaiADC = analogRead(sensorPin);
kelembaban_tanah = ( 100 - ( (nilaiADC/4095.00) * 100 ) );
//menampilkan temperature pada Serial monitor
Serial.print("% Temperature: ");
Serial.print(data.temperature);
Serial.println("C ");
Serial.print("% Kelembaban: ");
Serial.print(data.humidity);
Serial.print("% ");
Serial.print("Kelembaban tanah = ");
Serial.println(kelembaban_tanah);
Blynk.virtualWrite(V1, kelembaban_tanah); //mengirimkan data kelemaban ke Virtual pin V1 di Blynk Cloud
Blynk.virtualWrite(V2, data.temperature); //mengirimkan data temperatur ke Virtual pin VO di Blynk Cloud
Blynk.virtualWrite(V3, data.humidity); //mengirimkan data kelemaban ke Virtual pin V1 di Blynk Cloud
}
void setup()
{
// Debug console
Serial.begin(115200); //serial monitor menggunakan bautrate 9600
dht.setup(DHT_PIN, DHTesp::DHT11);
pinMode(LED_B, OUTPUT);
Blynk.begin(auth, ssid, pass); //memulai Blynk
timer.setInterval(1000, sendSensor); //Mengaktifkan timer untuk pengiriman data 1000ms
}
void loop()
{
Blynk.run(); //menjalankan blynk
timer.run(); //menjalankan timer
}