#define BLYNK_TEMPLATE_ID "TMPL6KQMMaQjM"
#define BLYNK_TEMPLATE_NAME "ac"
#define BLYNK_AUTH_TOKEN "Ln6WrlNoNFToCq0orvaKzgt8ie2gttLp"
#include <Wire.h>
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
#include "HX711.h"
#define DHTPIN 4
#define DHTTYPE DHT22
#define TRIGPIN 13
#define ECHOPIN 12
#define MQ2_ANA 34
//#define MQ2_DIG 2
// HX711 circuit wiring
const int LOADCELL_DOUT_PIN = 2;
const int LOADCELL_SCK_PIN = 5;
HX711 scale;
int reading;
int lastReading;
#define CALIBRATION_FACTOR 420 // Calibration factor need to be calculate, approximately -456
DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;
char auth[] = "Ln6WrlNoNFToCq0orvaKzgt8ie2gttLp";
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
void setup() {
Serial.begin(115200);
dht.begin();
pinMode(MQ2_ANA, INPUT);
//pinMode(MQ2_DIG, INPUT);
Blynk.begin(auth, ssid, pass);
timer.setInterval(2000L, sendSensorData);
scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
scale.set_scale(CALIBRATION_FACTOR);
scale.tare();
}
void sendSensorData() {
float temp = dht.readTemperature();
Blynk.virtualWrite(V2, temp);
Serial.print("Analog: ");
Serial.println(analogRead(MQ2_ANA));
//Serial.print("Digital: ");
//Serial.println(digitalRead(MQ2_DIG));
//Blynk.virtualWrite(V3, MQ2_ANA);
//Blynk.virtualWrite(V4, MQ2_DIG);
// Tampilkan suhu ruangan pada konsol
Serial.print("Suhu Ruangan: ");
Serial.println(String (temp) + " °C");
}
long getDistance() {
digitalWrite(TRIGPIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGPIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGPIN, LOW);
long duration = pulseIn(ECHOPIN, HIGH);
long distance = (duration/2) / 29.1;
return distance;
}
BLYNK_WRITE(V0) {
int buttonState = param.asInt();
if (buttonState) {
Blynk.virtualWrite(V1, HIGH);
Serial.println("AC HIDUP");
} else {
Blynk.virtualWrite(V1, LOW);
Serial.println("AC MATI");
}
}
void loop() {
Blynk.run();
timer.run();
}