#include <WiFi.h>
#include <WiFiClient.h>
#include <ThingSpeak.h>
const char *ssid = "Wokwi-GUEST"; // Masukkan SSID WiFi Anda
const char *password = ""; // Masukkan password WiFi Anda
const int potPin = 34; // Pin untuk potensiometer (pengganti sensor gas)
const int buzzerPin = 14; // Pin untuk buzzer
const int ledPin = 13; // Pin untuk LED
int threshold = 500; // Ambang batas untuk mendeteksi gas (sesuaikan dengan kondisi nyata)
const char *thingSpeakApiKey = "LUQQIHLCPEYT82Y4"; // Masukkan API Key Thingspeak Anda
const int channelID = 2396496; // Masukkan Channel ID Thingspeak Anda
WiFiClient client;
void setup() {
pinMode(buzzerPin, OUTPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(115200);
delay(100);
WiFi.begin(ssid, password);
Serial.println("Connecting to WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting...");
}
Serial.println("Connected to WiFi");
ThingSpeak.begin(client);
}
void loop() {
int sensorValue = analogRead(potPin); // Membaca nilai potensiometer
if (sensorValue > threshold) {
Serial.println("Gas Detected!");
digitalWrite(buzzerPin, HIGH); // Aktifkan buzzer
digitalWrite(ledPin, HIGH); // Nyalakan LED
tone(buzzerPin, 1000); // Menghasilkan bunyi dengan frekuensi 1000 Hz
// Kirim data ke ThingSpeak jika terdeteksi gas
ThingSpeak.setField(1, sensorValue); // Field 1 di ThingSpeak
ThingSpeak.setField(2, sensorValue * 2); // Field 2 di ThingSpeak
ThingSpeak.setField(3, sensorValue / 2); // Field 3 di ThingSpeak
ThingSpeak.writeFields(channelID, thingSpeakApiKey);
} else {
digitalWrite(buzzerPin, LOW); // Matikan buzzer
digitalWrite(ledPin, LOW); // Matikan LED
noTone(buzzerPin); // Berhenti mengeluarkan bunyi pada buzzer
// Jika tidak ada gas yang terdeteksi, set field ThingSpeak ke nilai 0
ThingSpeak.setField(1, 0);
ThingSpeak.setField(2, 0);
ThingSpeak.setField(3, 0);
ThingSpeak.writeFields(channelID, thingSpeakApiKey);
}
delay(10000); // Delay sebelum pembacaan ulang nilai sensor (dalam contoh ini, 10 detik)
}