#include <SoftwareSerial.h>
SoftwareSerial gsm (9, 10);
int gasValue;
int fiftyFlag = 0;
int hundredFlag = 0;
int buzzerPin = 8; // Assign buzzer pin
void setup() {
Serial.begin(9600);
gsm.begin(9600);
gsm.println("AT+CNMI=2,2,0,0,0");
delay(500);
gsm.println("AT+CMGF=1");
delay(1000);
gsm.println((char)26);
delay(500);
pinMode(buzzerPin, OUTPUT); // Set buzzer pin as output
}
void loop() {
gasValue = analogRead(A0);
if (gasValue < 600 && fiftyFlag == 1) {
fiftyFlag = 0;
noTone(buzzerPin); // Matikan buzzer jika kondisi turun di bawah 50%
}
if (gasValue < 800 && hundredFlag == 1) {
hundredFlag = 0;
noTone(buzzerPin); // Matikan buzzer jika kondisi turun di bawah 100%
}
if (gasValue > 600 && gasValue < 800 && fiftyFlag == 0) {
fiftyPercent();
fiftyFlag = 1;
tone(buzzerPin, 1000); // Nyalakan buzzer dengan frekuensi 1000 Hz untuk 50%
}
if (gasValue > 800 && hundredFlag == 0) {
hundredPercent();
hundredFlag = 1;
tone(buzzerPin, 2000); // Nyalakan buzzer dengan frekuensi 2000 Hz untuk 100%
}
delay(1000); // Sesuaikan delay sesuai kebutuhan aplikasi
}
void fiftyPercent() {
gsm.println("AT+CMGF=1");
delay(500);
gsm.println("AT+CMGS=\"+6281262022171\"\r"); // Ganti dengan nomor telepon Anda
delay(500);
gsm.println("awas ada api pak !!!");
delay(100);
gsm.println("Gas Leakage = 50%");
delay(100);
gsm.println((char)26);
delay(500);
Serial.println("Message sent - 50% leakage");
gsm.println("AT+CMGF=1");
delay(500);
}
void hundredPercent() {
gsm.println("AT+CMGF=1");
delay(500);
gsm.println("AT+CMGS=\"+6281262022171\"\r"); // Ganti dengan nomor telepon Anda
delay(500);
gsm.println("awas ada api pak !!!");
delay(100);
gsm.println("Gas Leakage = 100%");
delay(100);
gsm.println((char)26);
delay(500);
Serial.println("Message sent - 100% leakage");
gsm.println("AT+CMGF=1");
delay(500);
}