diff --git a/5.thingspeak_uno_all_sensor.ino b/5.thingspeak_uno_all_sensor.ino new file mode 100644 index 0000000..3fe8935 --- /dev/null +++ b/5.thingspeak_uno_all_sensor.ino @@ -0,0 +1,96 @@ +#include +#include + +SoftwareSerial mySerial(2, 3); + +const int pinSensorApi = A1; // Pin sensor api +const int pinSensorGas = A2; // Pin sensor gas +const int pinBuzzer = 11; // Pin buzzer +const int pinDHT = 7; // Pin sensor DHT +#define DHTTYPE DHT11 // Tipe sensor DHT (DHT11, DHT21, DHT22) +DHT dht(pinDHT, DHTTYPE); +int nilaiSensorApi = 0; +int nilaiSensorGas = 0; +char c; +String data; + +void setup() { + Serial.begin(115200); + mySerial.begin(115200); + pinMode(pinSensorApi, INPUT); + pinMode(pinSensorGas, INPUT); + pinMode(pinBuzzer, OUTPUT); + dht.begin(); +} + +void loop() { + while (mySerial.available() > 0) { + delay(10); + c = mySerial.read(); + data += c; + } + + if (data.length() > 0) { + Serial.println(data); + data = ""; + } + + nilaiSensorApi = analogRead(pinSensorApi); + // Inversi nilai sensor api + int nilaiSensorApiInverted = 1023 - nilaiSensorApi; + // Serial.print("Nilai Sensor Api: "); + // Serial.println(nilaiSensorApiInverted); + + nilaiSensorGas = analogRead(pinSensorGas); + // Serial.print("Nilai Sensor Gas: "); + // Serial.println(nilaiSensorGas); + + float suhu = dht.readTemperature(); + // Serial.print("Suhu: "); + // Serial.println(suhu); + + if (suhu > 57) { // Sesuaikan nilai ambang sesuai kebutuhan + mySerial.print(" SUHU TINGGI "); + Serial.println(" SUHU TINGGI "); + + // Bunyi buzzer 5 kali + for (int i = 0; i < 3; i++) { + digitalWrite(pinBuzzer, HIGH); + delay(500); // Buzzer ON selama 500 ms + digitalWrite(pinBuzzer, LOW); + delay(500); // Buzzer OFF selama 500 ms + } + } + + if (nilaiSensorApiInverted > 800) { // Sesuaikan nilai ambang sesuai kebutuhan + mySerial.print(" API TERDETEKSI "); + Serial.println(" API TERDETEKSI "); + + // Bunyi buzzer 3 kali + for (int i = 0; i < 3; i++) { + digitalWrite(pinBuzzer, HIGH); + delay(500); // Buzzer ON selama 500 ms + digitalWrite(pinBuzzer, LOW); + delay(500); // Buzzer OFF selama 500 ms + } + } + + if (nilaiSensorGas > 100) { // Sesuaikan nilai ambang sesuai kebutuhan + mySerial.print(" GAS BERBAHAYA TERDETEKSI "); + Serial.println(" GAS BERBAHAYA TERDETEKSI "); + + // Bunyi buzzer 5 kali + for (int i = 0; i < 3; i++) { + digitalWrite(pinBuzzer, HIGH); + delay(500); // Buzzer ON selama 500 ms + digitalWrite(pinBuzzer, LOW); + delay(500); // Buzzer OFF selama 500 ms + } + } + + // Kirim data sensor ke ESP8266 + data = "Sensor Api: " + String(nilaiSensorApiInverted) + " Sensor Gas: " + String(nilaiSensorGas) + " Suhu: " + String(suhu); + mySerial.println(data); + + delay(1000); // Mengirim data setiap 1 detik +}