commit edf0ed366cb861800e5829ad34c2703dc3fcbb28 Author: feny Date: Wed Jul 24 12:01:25 2024 +0700 first commit diff --git a/blynk_v2.ino b/blynk_v2.ino new file mode 100644 index 0000000..4ddd443 --- /dev/null +++ b/blynk_v2.ino @@ -0,0 +1,89 @@ +#include +#include +#include +#define BLYNK_TEMPLATE_ID "TMPL65-q3gCp1" +#define BLYNK_TEMPLATE_NAME "Monitoring Tambak" +#include // Library Blynk untuk ESP8266 + +char auth[] = "gg0y3wCGEGo7g9MBSYX6PvguebjWJMpn"; // Token otorisasi Blynk + +const int oneWireBus = 2; // Pin D4 pada NodeMCU untuk sensor suhu DS18B20 +const int turbidityPin = A0; // Pin analog untuk sensor turbidity + +OneWire oneWire(oneWireBus); +DallasTemperature sensors(&oneWire); + +LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat I2C untuk LCD 16x2 + +void setup() { + Serial.begin(115200); + sensors.begin(); + lcd.init(); + lcd.backlight(); + + // Menampilkan pesan "Connecting WiFi" di LCD + lcd.setCursor(0, 0); + lcd.print("Connecting WiFi"); + + // Menghubungkan ke server Blynk + Blynk.begin(auth, "feny", "123456789"); + + // Tunggu sampai terhubung ke Blynk + while (!Blynk.connected()) { + delay(500); + Serial.print("."); + } + + // Menampilkan pesan "Connected" di LCD + lcd.clear(); + lcd.setCursor(0, 0); + lcd.print("Connected"); + delay(2000); // Tampilkan pesan "Connected" selama 2 detik + lcd.clear(); +} + +void loop() { + Blynk.run(); // Memanggil fungsi Blynk + + // Membaca suhu dalam derajat Celsius + sensors.requestTemperatures(); + float temperatureC = sensors.getTempCByIndex(0); + + // Mengirim nilai suhu ke widget V2 di Blynk + Blynk.virtualWrite(V2, temperatureC); + + // Membaca nilai kekeruhan dari sensor turbidity + int turbidityValueRaw = analogRead(turbidityPin); + + // Mengubah nilai analog menjadi nilai dalam rentang 0-100 dengan kondisi terbalik + int turbidityValue = map(turbidityValueRaw, 0, 1023, 100, 0); + + // Mengirim nilai kekeruhan ke widget V1 di Blynk + Blynk.virtualWrite(V1, turbidityValue); + + // Menampilkan hasil ke LCD + lcd.clear(); + lcd.setCursor(0, 0); + lcd.print("Suhu: "); + lcd.print(temperatureC); + lcd.print(" C"); + + lcd.setCursor(0, 1); + if (turbidityValue >= 0 && turbidityValue <= 25) { + lcd.print("Tingkat: Jernih"); + Serial.println("Tingkat kekeruhan: Jernih"); + Blynk.virtualWrite(V3, "Jernih"); // Mengirim nilai kekeruhan ke widget V3 di Blynk + } else { + lcd.print("Tingkat: Kotor"); + Serial.println("Tingkat kekeruhan: Kotor"); + Blynk.virtualWrite(V3, "Kotor"); // Mengirim nilai kekeruhan ke widget V3 di Blynk + } + + // Menampilkan nilai kekeruhan dan suhu ke Serial Monitor + Serial.print("Suhu: "); + Serial.print(temperatureC); + Serial.print(" C, Kekeruhan: "); + Serial.println(turbidityValue); + + delay(1000); // Delay 1 detik +} diff --git a/keruh_ph_air.ino b/keruh_ph_air.ino new file mode 100644 index 0000000..21fbd42 --- /dev/null +++ b/keruh_ph_air.ino @@ -0,0 +1,42 @@ +#include + +LiquidCrystal_I2C lcd(0x27, 2, 16); + +int sensorPin = A0; //A0 FOR ARDUINO/ 36 FOR ESP + +void setup() +{ + Serial.begin(115200); + // initialize LCD + lcd.init(); + // turn on LCD backlight + lcd.backlight(); +} +void loop() { + int sensorValue = analogRead(sensorPin); + Serial.println(sensorValue); + int turbidity = map(sensorValue, 0, 5, 100, 0); + delay(100); + lcd.setCursor(0, 0); + lcd.print("Turbidity:"); + lcd.print(" "); + lcd.setCursor(10, 0); + lcd.print(turbidity); + + delay(1000); + if (turbidity < 20) { + lcd.setCursor(0, 1); + lcd.print(" its CLEAR "); + Serial.print(" its CLEAR "); + } + if ((turbidity > 20) && (turbidity < 50)) { + lcd.setCursor(0, 1); + lcd.print(" its CLOUDY "); + Serial.print(" its CLOUDY "); + } + if (turbidity > 50) { + lcd.setCursor(0, 1); + lcd.print(" its DIRTY "); + Serial.print(" its DIRTY "); + } +} \ No newline at end of file diff --git a/kombinasi.ino b/kombinasi.ino new file mode 100644 index 0000000..af63e5c --- /dev/null +++ b/kombinasi.ino @@ -0,0 +1,54 @@ +#include +#include +#include + +const int oneWireBus = 2; // Pin D4 pada NodeMCU untuk sensor suhu DS18B20 +const int turbidityPin = A0; // Pin analog untuk sensor turbidity + +OneWire oneWire(oneWireBus); +DallasTemperature sensors(&oneWire); + +LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat I2C untuk LCD 16x2 + +void setup() { + Serial.begin(115200); + sensors.begin(); + lcd.init(); + lcd.backlight(); +} + +void loop() { + // Membaca suhu dalam derajat Celsius + sensors.requestTemperatures(); + float temperatureC = sensors.getTempCByIndex(0); + + // Membaca nilai kekeruhan dari sensor turbidity + int turbidityValue = analogRead(turbidityPin); + + // Menampilkan hasil ke LCD + lcd.clear(); + lcd.setCursor(0, 0); + lcd.print("Suhu: "); + lcd.print(temperatureC); + lcd.print(" C"); + + lcd.setCursor(0, 1); + if (turbidityValue >= 100) { + lcd.print("Tingkat: Jernih"); + Serial.println("Tingkat kekeruhan: Jernih"); + } else if (turbidityValue >= 100 && turbidityValue < 800) { + lcd.print("Tingkat: Sedang"); + Serial.println("Tingkat kekeruhan: Sedang"); + } else { + lcd.print("Tingkat: Kotor"); + Serial.println("Tingkat kekeruhan: Kotor"); + } + + // Menampilkan nilai kekeruhan dan suhu ke Serial Monitor + Serial.print("Suhu: "); + Serial.print(temperatureC); + Serial.print(" C, Kekeruhan: "); + Serial.println(turbidityValue); + + delay(1000); // Delay 1 detik +} diff --git a/suhu_ds18.ino b/suhu_ds18.ino new file mode 100644 index 0000000..5816e52 --- /dev/null +++ b/suhu_ds18.ino @@ -0,0 +1,33 @@ +#include +#include + +// Pin data sensor DS18B20 terhubung ke pin D4 (GPIO2) pada ESP8266 +const int oneWireBus = 2; // D4 pada NodeMCU + +// Inisialisasi sensor suhu DS18B20 +OneWire oneWire(oneWireBus); +DallasTemperature sensors(&oneWire); + +void setup() { + Serial.begin(115200); + sensors.begin(); // Inisialisasi sensor suhu +} + +void loop() { + sensors.requestTemperatures(); // Mengambil data suhu dari sensor + + // Membaca suhu dalam derajat Celsius + float temperatureC = sensors.getTempCByIndex(0); + + // Membaca suhu dalam derajat Fahrenheit + float temperatureF = sensors.getTempFByIndex(0); + + // Menampilkan hasil ke Serial Monitor + Serial.print("Suhu Celsius: "); + Serial.print(temperatureC); + Serial.print(" C, Suhu Fahrenheit: "); + Serial.print(temperatureF); + Serial.println(" F"); + + delay(1000); // Delay 1 detik +}