#define BLYNK_PRINT Serial
/* Fill in information from Blynk Device Info here */
#define BLYNK_TEMPLATE_ID "TMPL67B5MXc1M"
#define BLYNK_TEMPLATE_NAME "DHT Buzz LCD"
#define BLYNK_AUTH_TOKEN "_yKWzJ27M0S_x-1tGSRUXBcBGyipD9Ck"
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <DHT.h>
#define DHTPIN D5 // What digital pin we're connected to
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
#include <LCD_I2C.h>
LCD_I2C lcd(0x27, 16, 2);
const int buzz = D0;
int enable, setpoint;
BlynkTimer timer;
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "adi punya";
char pass[] = "solok123";
void sendSensor() {
float suhu = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit
Blynk.virtualWrite(V0, suhu);
lcd.setCursor(0, 0);
lcd.print("t:");
lcd.setCursor(2, 0);
lcd.print(suhu);
float kelembaban = dht.readHumidity();
Blynk.virtualWrite(V1, kelembaban);
lcd.setCursor(9, 0);
lcd.print("h:");
lcd.setCursor(11, 0);
lcd.print(kelembaban);
// if (isnan(kelembaban) || isnan(suhu)) {
// Serial.println("Failed to read from DHT sensor!");
// return;
// }
if (suhu >= setpoint && enable == 1) {
digitalWrite(buzz, 1);
Blynk.virtualWrite(V4, 1);
lcd.setCursor(11, 1);
lcd.print("b:ON ");
} else {
digitalWrite(buzz, 0);
Blynk.virtualWrite(V4, 0);
lcd.setCursor(11, 1);
lcd.print("b:OFF");
}
if (enable == 1) {
lcd.setCursor(5, 1);
lcd.print("e:ON ");
} else {
lcd.setCursor(5, 1);
lcd.print("e:OFF");
}
lcd.setCursor(0, 1);
lcd.print("s:");
lcd.print(setpoint);
lcd.print(" ");
// delay(10000);
// lcd.clear();
}
BLYNK_WRITE(V2) {
setpoint = param.asInt(); // assigning incoming value from pin V1 to a variable
}
BLYNK_WRITE(V3) {
enable = param.asInt();
}
void setup() {
// Debug console
Serial.begin(9600);
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
dht.begin();
lcd.begin();
lcd.backlight();
pinMode(buzz, OUTPUT);
// Setup a function to be called every second
timer.setInterval(1000L, sendSensor);
}
void loop() {
Blynk.run();
timer.run();
}