Upload files to "Kode Program Arduino IDE"
This commit is contained in:
commit
42d4015460
|
@ -0,0 +1,117 @@
|
|||
#include <ESP8266WiFi.h>
|
||||
#include <ThingSpeak.h>
|
||||
|
||||
const char* ssid = "RAJPBS"; // Nama jaringan WiFi Anda
|
||||
const char* password = "20012003"; // Kata sandi WiFi Anda
|
||||
|
||||
const int trigPin = D1; // Pin Trig sensor ultrasonik
|
||||
const int echoPin = D2; // Pin Echo sensor ultrasonik
|
||||
const int buzzerPin = D3;
|
||||
const int rainSensorPin = A0; // Pin sensor hujan analog
|
||||
long duration;
|
||||
int distance;
|
||||
int height;
|
||||
|
||||
// Informasi ThingSpeak
|
||||
const char *thingSpeakAddress = "api.thingspeak.com";
|
||||
const unsigned long channelID = 2610710; // Masukkan ID saluran ThingSpeak Anda
|
||||
const char *writeAPIKey = "S7E9ATGV103DCUZO"; // Masukkan Write API Key Anda
|
||||
|
||||
WiFiClient client;
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600); // Memulai komunikasi serial dengan baudrate 9600
|
||||
pinMode(trigPin, OUTPUT); // Menetapkan trigPin sebagai OUTPUT
|
||||
pinMode(echoPin, INPUT); // Menetapkan echoPin sebagai INPUT
|
||||
pinMode(buzzerPin, OUTPUT);
|
||||
|
||||
// Menghubungkan ke jaringan WiFi
|
||||
Serial.print("Menghubungkan ke ");
|
||||
Serial.println(ssid);
|
||||
WiFi.begin(ssid, password);
|
||||
|
||||
while (WiFi.status() != WL_CONNECTED) {
|
||||
delay(500);
|
||||
Serial.print(".");
|
||||
}
|
||||
Serial.println("");
|
||||
Serial.println("WiFi terhubung");
|
||||
Serial.println("Alamat IP: ");
|
||||
Serial.println(WiFi.localIP());
|
||||
|
||||
ThingSpeak.begin(client); // Inisialisasi ThingSpeak
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// Menetapkan trigPin HIGH selama 10 mikrodetik untuk mengirimkan pulsa ultrasonik
|
||||
digitalWrite(trigPin, HIGH);
|
||||
delayMicroseconds(10);
|
||||
digitalWrite(trigPin, LOW);
|
||||
|
||||
// Membaca durasi pulsa dari echoPin
|
||||
duration = pulseIn(echoPin, HIGH);
|
||||
|
||||
// Menghitung jarak dalam cm
|
||||
distance = duration * 0.034 / 2;
|
||||
|
||||
// Mengonversi jarak menjadi ketinggian permukaan air (12 terdekat dan 1 terjauh)
|
||||
if (distance >= 1 && distance <= 12) {
|
||||
height = 13 - distance;
|
||||
Serial.print("Ketinggian permukaan air: ");
|
||||
Serial.print(height);
|
||||
Serial.println(" cm");
|
||||
|
||||
// Cek kondisi ketinggian air dan tampilkan status
|
||||
if (height >= 8 && height <= 12) {
|
||||
digitalWrite(buzzerPin, HIGH);
|
||||
Serial.println("Status: Bahaya!");
|
||||
delay(5000);
|
||||
digitalWrite(buzzerPin, LOW);
|
||||
} else if (height > 4 && height <= 8) {
|
||||
Serial.println("Status: Waspada");
|
||||
digitalWrite(buzzerPin, LOW);
|
||||
} else if (height > 1 && height <= 4) {
|
||||
Serial.println("Status: Aman");
|
||||
digitalWrite(buzzerPin, LOW);
|
||||
} else {
|
||||
digitalWrite(buzzerPin, LOW);
|
||||
Serial.println("Status: Ketinggian air aman");
|
||||
}
|
||||
|
||||
} else {
|
||||
Serial.println("Jarak di luar rentang yang diharapkan");
|
||||
digitalWrite(buzzerPin, LOW);
|
||||
}
|
||||
|
||||
int sensorValue = analogRead(rainSensorPin); // Baca nilai analog dari sensor hujan
|
||||
Serial.print("Nilai Sensor Hujan: ");
|
||||
Serial.println(sensorValue); // Cetak nilai sensor ke serial monitor
|
||||
|
||||
// Logika untuk mendeteksi intensitas hujan
|
||||
String rainStatus;
|
||||
if (sensorValue > 900) {
|
||||
rainStatus = "Tidak ada hujan";
|
||||
} else if (sensorValue <= 900 && sensorValue > 700) {
|
||||
rainStatus = "Hujan ringan";
|
||||
} else if (sensorValue <= 700 && sensorValue > 300) {
|
||||
rainStatus = "Hujan deras";
|
||||
} else {
|
||||
rainStatus = "Hujan sangat deras";
|
||||
}
|
||||
Serial.println("Status Hujan: " + rainStatus);
|
||||
|
||||
// Kirim data ke ThingSpeak
|
||||
ThingSpeak.setField(1, height); // Field 1 untuk ketinggian air
|
||||
ThingSpeak.setField(2, sensorValue); // Field 2 untuk nilai sensor hujan
|
||||
|
||||
int httpCode = ThingSpeak.writeFields(channelID, writeAPIKey);
|
||||
if (httpCode == 200) {
|
||||
Serial.println("Data berhasil dikirim ke ThingSpeak");
|
||||
} else {
|
||||
Serial.print("Masalah saat mengirim data ke ThingSpeak. Kode error HTTP: ");
|
||||
Serial.println(httpCode);
|
||||
}
|
||||
|
||||
// Menunggu 15 detik sebelum mengirim data lagi
|
||||
delay(15000);
|
||||
}
|
Loading…
Reference in New Issue