Alat / Bahan
- Arduino IDE
- Library: Blynk
- Library: ESP8266
- NodeMCU ESP8266
- Sensor LDR
- Resistor 10K
- Relay 1 Channel
- Lampu 220V
- Project Board
- Kabel Jumper
- Smartphone
/* Program Pengendali Cahaya untuk Tanaman dengan Smartphone dibuat oleh Indobot */
#include //Library ESP8266
#include //Library Blynk
char auth[] = “HoP9z23_PbWp-iEyMBYFGnnALYBvvcXS”; //Token
char ssid[] = “Wifi.id”; //Nama wifi
char pass[] = “alam oye”; //Password wifi
BlynkTimer timer;
#define LDR A0 //LDR pada pin A0
#define MAX_ADC_READING 1023
#define ADC_REF_VOLTAGE 5.0
#define REF_RESISTANCE 10000
#define LUX_CALC_SCALAR 125235178.3654270
#define LUX_CALC_EXPONENT -1.604568157
int ldrRawData;
float resistorVoltage, ldrVoltage;
float ldrResistance;
float ldrLux;
unsigned long TSekarang;
unsigned long TAkhir;
void setup() {
Blynk.begin(auth, ssid, pass); //Inisialisasi token, wifi dan password
timer.setInterval(1000L, sendSensor); //Kirim data sensor
Serial.begin(9600);
}
void loop() {
Blynk.run(); //Jalankan pembacaan Blynk
timer.run();
hitung_cahaya(); //Hitung nilai Lux
if(ldrLux < 200){ TSekarang = millis(); if(TSekarang – TAkhir > 10000){ //Kirim notifikasi setiap 10 detik
Blynk.notify(“Tumbuhan Kekurangan Cahaya. Nyalakan Cahaya Buatan…!!!”);
TAkhir = TSekarang;
}
}
Serial.println(ldrLux);
}
void sendSensor(){ //Kirim data sensor
Blynk.virtualWrite(V0,ldrLux);
}
void hitung_cahaya(){
ldrRawData = analogRead(LDR); //Baca sensor
//————Konversi dari data analog ke nilai lux————//
resistorVoltage = (float)ldrRawData / MAX_ADC_READING * ADC_REF_VOLTAGE;
ldrVoltage = ADC_REF_VOLTAGE – resistorVoltage;
ldrResistance = ldrVoltage / resistorVoltage * REF_RESISTANCE;
ldrLux = LUX_CALC_SCALAR * pow(ldrResistance, LUX_CALC_EXPONENT);
}
jika ada kendala bisa diskusi di : 085369237896 (mas fajar)