#include <Arduino.h>
#include <WiFi.h>
#include <WiFiClient.h>
#include "DHTesp.h"
const int DHT_PIN = 14;
const int PWM_out = 25;
const int KY026_PIN = 26;
const int gasSensorPin = 35;
DHTesp dhtSensor;
const int threshold = 1500; // Ambang batas sensor gas, sesuaikan dengan yang Anda butuhkan.
unsigned long previousTempTime = 0;
unsigned long previousFlameTime = 0;
unsigned long previousGasTime = 0;
const long intervalTemp = 2000; // Interval pembacaan suhu (dalam milidetik)
const long intervalFlame = 3000; // Interval pembacaan sensor api
const long intervalGas = 3000; // Interval pembacaan sensor gas
void setup() {
Serial.begin(115200);
pinMode(PWM_out, OUTPUT);
pinMode(KY026_PIN, INPUT);
pinMode(gasSensorPin, INPUT);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousTempTime >= intervalTemp) {
sendSensorSuhu();
previousTempTime = currentMillis;
}
if (currentMillis - previousFlameTime >= intervalFlame) {
sendSensorApi();
previousFlameTime = currentMillis;
}
if (currentMillis - previousGasTime >= intervalGas) {
sendSensorGas();
previousGasTime = currentMillis;
}
}
void sendSensorSuhu() {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Temp: " + String(data.temperature, 2) + "°C");
Serial.println("Humidity: " + String(data.humidity, 1) + "%");
}
void sendSensorApi() {
int flamevalue = digitalRead(KY026_PIN);
Serial.println("Flame Sensor Value: " + String(flamevalue));
if (flamevalue == HIGH) {
kedip1(3); // Misalnya, kedip 3 kali ketika sensor api terdeteksi
}
}
void sendSensorGas() {
int sensorValue = analogRead(gasSensorPin);
Serial.println("Nilai Sensor: " + String(sensorValue));
if (sensorValue > threshold) {
Serial.println("Deteksi Gas! Bahaya!");
// Di sini Anda dapat mengirimkan pemberitahuan atau melakukan tindakan lain.
}
}
void kedip1(int count) {
for (int i = 0; i < count; i++) {
digitalWrite(PWM_out, HIGH);
delay(500); // Misalnya, LED menyala selama 0.5 detik
digitalWrite(PWM_out, LOW);
delay(500); // Misalnya, LED mati selama 0.5 detik
}
}