Delete Kode ESP32 Client
This commit is contained in:
parent
33400d9049
commit
40f20f2d40
|
@ -1,141 +0,0 @@
|
||||||
#include <SPI.h>
|
|
||||||
#include <LoRa.h>
|
|
||||||
#include <DHT.h>
|
|
||||||
|
|
||||||
#define LORA_SS 5
|
|
||||||
#define LORA_RST 14
|
|
||||||
#define LORA_DIO0 2
|
|
||||||
#define RELAY_PIN 27
|
|
||||||
#define FIRE_SENSOR_PIN 33
|
|
||||||
#define MQ2_SENSOR_PIN 26
|
|
||||||
#define DHTPIN 4
|
|
||||||
#define DHTTYPE DHT11
|
|
||||||
#define SOIL_SENSOR_PIN 25
|
|
||||||
|
|
||||||
DHT dht(DHTPIN, DHTTYPE);
|
|
||||||
|
|
||||||
bool pengirimanAktif = true;
|
|
||||||
bool relayAktifKarenaKebakaran = false;
|
|
||||||
int lastRelayState = LOW;
|
|
||||||
|
|
||||||
unsigned long lastSendTime = 0;
|
|
||||||
const unsigned long interval = 1000;
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
delay(3000);
|
|
||||||
Serial.begin(115200);
|
|
||||||
while (!Serial)
|
|
||||||
;
|
|
||||||
Serial.println("Memulai setup...");
|
|
||||||
|
|
||||||
pinMode(RELAY_PIN, OUTPUT);
|
|
||||||
digitalWrite(RELAY_PIN, LOW);
|
|
||||||
Serial.println("Relay diset LOW");
|
|
||||||
|
|
||||||
pinMode(FIRE_SENSOR_PIN, INPUT);
|
|
||||||
pinMode(MQ2_SENSOR_PIN, INPUT);
|
|
||||||
dht.begin();
|
|
||||||
|
|
||||||
LoRa.setPins(LORA_SS, LORA_RST, LORA_DIO0);
|
|
||||||
delay(1000);
|
|
||||||
if (!LoRa.begin(433E6)) {
|
|
||||||
Serial.println("Gagal memulai LoRa");
|
|
||||||
while (1)
|
|
||||||
;
|
|
||||||
}
|
|
||||||
Serial.println("LoRa siap mengirim");
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
if (Serial.available()) {
|
|
||||||
String cmd = Serial.readStringUntil('\n');
|
|
||||||
cmd.trim();
|
|
||||||
|
|
||||||
if (cmd == "pause") {
|
|
||||||
pengirimanAktif = false;
|
|
||||||
Serial.println("Pengiriman LoRa dihentikan");
|
|
||||||
} else if (cmd == "resume") {
|
|
||||||
pengirimanAktif = true;
|
|
||||||
Serial.println("Pengiriman LoRa dilanjutkan");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int fireDigital = digitalRead(FIRE_SENSOR_PIN);
|
|
||||||
int asapDigital = digitalRead(MQ2_SENSOR_PIN);
|
|
||||||
float suhuC = dht.readTemperature();
|
|
||||||
int soilRaw = analogRead(SOIL_SENSOR_PIN);
|
|
||||||
int kelembabanTanah = map(soilRaw, 1949, 4095, 100, 0);
|
|
||||||
kelembabanTanah = constrain(kelembabanTanah, 0, 100);
|
|
||||||
|
|
||||||
String statusApi = (fireDigital == LOW) ? "iya" : "tidak";
|
|
||||||
String statusAsap = (asapDigital == LOW) ? "iya" : "tidak";
|
|
||||||
bool suhuTinggi = suhuC > 40.0;
|
|
||||||
|
|
||||||
String statusKebakaran = "tidak";
|
|
||||||
if (fireDigital == LOW && asapDigital == LOW && suhuTinggi) {
|
|
||||||
statusKebakaran = "iya";
|
|
||||||
} else {
|
|
||||||
statusKebakaran = "tidak";
|
|
||||||
}
|
|
||||||
|
|
||||||
Serial.println("Sensor:");
|
|
||||||
Serial.println(" - Api: " + String(fireDigital == LOW ? "iya" : "tidak"));
|
|
||||||
Serial.println(" - Asap: " + String(asapDigital == LOW ? "iya" : "tidak"));
|
|
||||||
Serial.println(" - Suhu: " + String(suhuC, 1) + "C");
|
|
||||||
Serial.println(" - Tanah: " + String(kelembabanTanah) + "%");
|
|
||||||
|
|
||||||
if (statusKebakaran == "iya") {
|
|
||||||
digitalWrite(RELAY_PIN, HIGH);
|
|
||||||
relayAktifKarenaKebakaran = true;
|
|
||||||
Serial.println("Kebakaran terdeteksi! Relay ON");
|
|
||||||
} else if (relayAktifKarenaKebakaran && fireDigital == HIGH) {
|
|
||||||
Serial.println("Api padam");
|
|
||||||
delay(300);
|
|
||||||
digitalWrite(RELAY_PIN, LOW);
|
|
||||||
relayAktifKarenaKebakaran = false;
|
|
||||||
Serial.println("Relay dimatikan otomatis setelah api padam");
|
|
||||||
} else {
|
|
||||||
digitalWrite(RELAY_PIN, LOW);
|
|
||||||
relayAktifKarenaKebakaran = false;
|
|
||||||
Serial.println("Kondisi aman - Relay OFF");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (millis() - lastSendTime > interval) {
|
|
||||||
lastSendTime = millis();
|
|
||||||
|
|
||||||
String apiStr = (fireDigital == LOW ? "iya" : "tidak");
|
|
||||||
String asapStr = (asapDigital == LOW ? "iya" : "tidak");
|
|
||||||
String suhuStr = isnan(suhuC) ? "nanC" : String(suhuC, 1) + "C";
|
|
||||||
String tanahStr = String(kelembabanTanah) + "%";
|
|
||||||
String relayStr = (digitalRead(RELAY_PIN) ? "ON" : "OFF");
|
|
||||||
|
|
||||||
String data = "api:" + apiStr + ",asap:" + asapStr + ",suhu:" + suhuStr + ",tanah:" + tanahStr + ",relay:" + relayStr;
|
|
||||||
|
|
||||||
String statusGabungan = "Status: " + statusApi + " - Relay " + relayStr;
|
|
||||||
|
|
||||||
if (pengirimanAktif) {
|
|
||||||
kirimLoRa(data);
|
|
||||||
delay(1000),
|
|
||||||
kirimLoRa(statusGabungan);
|
|
||||||
delay(1000);
|
|
||||||
Serial.println("Data dikirim:\n" + data);
|
|
||||||
Serial.println("Status dikirim:\n" + statusGabungan);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pengirimanAktif) {
|
|
||||||
kirimLoRa("kebakaran:" + statusKebakaran);
|
|
||||||
delay(300);
|
|
||||||
Serial.println("Status kebakaran dikirim: kebakaran:" + statusKebakaran);
|
|
||||||
}
|
|
||||||
|
|
||||||
delay(400);
|
|
||||||
}
|
|
||||||
|
|
||||||
void kirimLoRa(String pesan) {
|
|
||||||
Serial.println("LoRa kirim:\n" + pesan);
|
|
||||||
LoRa.beginPacket();
|
|
||||||
LoRa.print(pesan);
|
|
||||||
LoRa.endPacket();
|
|
||||||
delay(100);
|
|
||||||
}
|
|
Loading…
Reference in New Issue