#include <ESP32Servo.h>
#include <WiFi.h>
#define WIFI_AP "Wokwi-GUEST"
#define WIFI_PASSWORD ""
const int servoPin = 22;
const int potPin = 34;
Servo servo;
int nilaiDigital;
float kelembapanTanah;
String keran;
#include <PubSubClient.h>
const char* ssid = "Wokwi-GUEST";
const char* password = "";
#define tb_server "thingsboard.cloud"
const int tb_port = 1883;
#define tb_token "fHY4hTHXRAclu3oRwa1E"
WiFiClient espClient;
PubSubClient client(espClient);
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
servo.attach(servoPin);
InitWiFi();
// lastSend = 0;
}
void loop() {
nilaiDigital=analogRead(34); //membaca nilai tegangan dari sensor pada pin 34
kelembapanTanah = nilaiDigital/4095.00 * 100.00; //nilai 0-100%
if (kelembapanTanah <= 50) {
//Keran Air Terbuka
servo.write(180);
keran = "Keran Air Terbuka";
}
else{
//Keran Air Tertutup
servo.write(0);
keran = "Keran Air Tertutup";
}
Serial.println("Mengirim data ke ThingsBoard:");
Serial.print("Kelembaban tanah = ");
Serial.print(kelembapanTanah);
Serial.print(", Kondisi Keran = ");
Serial.print(keran);
Serial.println("");
// device1.sendTelemetryFloat("Kelembaban Tanah", kelembapanTanah);
// // device1.sendTelemetryFloat("humidity", humidity);
// lastSend = millis();
// Serial.println("Mengirim data ke ThingsBoard:");
// Serial.print("Kelembaban tanah = ");
// Serial.print(kelembapanTanah);
// Serial.print(", Kondisi Keran = ");
// Serial.print(keran);
// Serial.println("");
// }
// device1.loop();
delay(15);
}
void InitWiFi()
{
Serial.println("Menghubungkan ...");
// mencoba koneksi ke WiFi
WiFi.begin(WIFI_AP, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("Berhasil terhubung!");
}
// void reconnect() {
// // diulang sampai reconnected
// while (!device1.connected()) {
// status = WiFi.status();
// if ( status != WL_CONNECTED) {
// WiFi.begin(WIFI_AP, WIFI_PASSWORD);
// while (WiFi.status() != WL_CONNECTED) {
// delay(500);
// Serial.print(".");
// }
// Serial.println("Berhasil terhubung!");
// }
// Serial.print("Menghubungkan ke ThingsBoard node ...");
// if ( device1.connect(thingsboardServer, TOKEN) ) {
// Serial.println( "[DONE]" );
// } else {
// Serial.print( "[FAILED]" );
// Serial.println( " [ retrying in 5 seconds]" );
// // Wait 5 detik
// delay( 5000 );
// }
// }
// }