TKK_E32210977/FixAnnaEsp32Rec/FixAnnaEsp32Rec.ino

65 lines
2.1 KiB
C++

#define BLYNK_TEMPLATE_ID "TMPL6wIKYMxbe"
#define BLYNK_TEMPLATE_NAME "WaterTester"
#define BLYNK_AUTH_TOKEN "v-1Offttn2hvVofsSGHiiz1jDcSTrfUm"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
char auth[] = BLYNK_AUTH_TOKEN; // Auth Token
char ssid[] = "yuhu";
char pass[] = "AnnaSalsabila";
float ParameterKekeruhan = 0-5; // Parameter kekeruhan
float ParameterTDS = 0.2-0.5; // Parameter TDS
float lastKekeruhan = 0; // Nilai terakhir kekeruhan
float lastTDS = 0; // Nilai terakhir TDS
BlynkTimer timer;
// Callback function untuk pengiriman data sensor ke Blynk
void sendSensor() {
if (Serial.available()) { // Jika data tersedia di buffer serial
String dataReceived = Serial.readStringUntil('\n'); // Baca data hingga karakter newline
float kekeruhan = dataReceived.substring(0, dataReceived.indexOf(',')).toFloat(); // Parse data kekeruhan
float tdsValue = dataReceived.substring(dataReceived.indexOf(',') + 1).toFloat(); // Parse data TDS
// Jika data yang diterima valid (bukan 0)
if (kekeruhan != 0 && tdsValue != 0) {
lastKekeruhan = kekeruhan; // Simpan nilai terakhir kekeruhan
lastTDS = tdsValue; // Simpan nilai terakhir TDS
}
}
// Kirim data terakhir ke Blynk
Blynk.virtualWrite(V0, lastKekeruhan); // Kirim data kekeruhan terakhir ke Virtual pin V0 di Blynk
Blynk.virtualWrite(V1, lastTDS); // Kirim data TDS terakhir ke Virtual pin V1 di Blynk
// Kirim status kekeruhan terakhir ke Blynk
if (lastKekeruhan > ParameterKekeruhan) {
Blynk.virtualWrite(V2, "Air Keruh");
} else {
Blynk.virtualWrite(V2, "Air Tidak Keruh");
}
// Kirim status TDS terakhir ke Blynk
if (lastTDS > ParameterTDS) {
Blynk.virtualWrite(V3, "Kaporit Tinggi");
} else {
Blynk.virtualWrite(V3, "Kaporit Normal");
}
}
void setup() {
Serial.begin(9600); // Baud rate serial monitor
Blynk.begin(auth, ssid, pass); // Mulai Blynk
timer.setInterval(20L, sendSensor); // Set interval timer untuk pengiriman data 20ms
}
void loop() {
Blynk.run(); // Menjalankan Blynk
timer.run(); // Menjalankan timer
}