#define BLYNK_TEMPLATE_ID "TMPL6armWccga"
#define BLYNK_TEMPLATE_NAME "ESP32 Desain Aplikasi dan IoT"
#define BLYNK_AUTH_TOKEN "PRM614I-PcePXMcptJmVnRfv91zvQGAs"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
#include <HX711.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST"; //nama hotspot yang digunakan
char pass[] = ""; //password hotspot yang digunakan
#define DHTPIN 2 // Mention the digital pin where you connected
#define DHTTYPE DHT22 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;
#define HX711_DOUT 18 // Ganti dengan pin data (DT) yang Anda gunakan
#define HX711_SCK 19 // Ganti dengan pin clock (SCK) yang Anda gunakan
HX711 scale;
//LAMPU LED PADA ESP32 STICH PADA BLYNK
int SW_state = 0;
BLYNK_WRITE(V4)
{
SW_state = param.asInt();
if(SW_state == 1){
Serial.println("Switch on..");
digitalWrite(22, HIGH);
Blynk.virtualWrite(V4, HIGH);
}
if(SW_state == 0){
Serial.println("Switch off..");
digitalWrite(22, LOW);
Blynk.virtualWrite(V4, LOW);
}
}
const int ld_cell=18;
const int ld_sck=19;
void setup(){
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
// You can also specify server:
//Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);
//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
dht.begin();
timer.setInterval(2500L, sendSensor);
scale.begin(HX711_DOUT, HX711_SCK);
scale.set_scale(); // Atur faktor skala yang sudah dihitung
scale.tare(); // Atur nol awal (tare)
//scale.begin(ld_cell,ld_sck);
//BUTTON PADA ESP32 dengan LAMPU PADA BLYNK
pinMode(22, OUTPUT);
pinMode(35, INPUT);
}
void loop(){
Blynk.run();
timer.run();
//if(scale.is_ready()){
//scale.set_scale();
//Serial.println("Tare reset");
//delay (5000);
//scale.tare();
//Serial.println("Tare done..");
//Serial.println("Now put weight..");
//delay(5000);
//long reading = scale.get_uints(10);
//Serial.println(reading);
//}
//TOMBOL PADA ESP32 dan LAMPU PADA BLYNK
if(digitalRead(35) == 1){
Blynk.virtualWrite(V3, HIGH);
Serial.println("Blinking..");
}
if(digitalRead(35) == 0){
Blynk.virtualWrite(V3, LOW);
}
delay(100);
}
void sendSensor(){
float h = dht.readHumidity();
float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit
float weight = scale.get_units();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Blynk.virtualWrite(V1, h);
Blynk.virtualWrite(V0, t);
Blynk.virtualWrite(V2, weight/420);
Serial.print("Temperature : ");
Serial.print(t);
Serial.print(" Humidity : ");
Serial.println(h);
Serial.println("Weight : ");
Serial.println(weight/420);
//if(t > 30){
// Blynk.email("[email protected]", "Alert", "Temperature over 28C!");
//Blynk.logEvent("temp_alert","Temp above 30 degrees");
//}
}