#include <WiFi.h>
#include <PubSubClient.h>
#include <Ultrasonic.h>
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const char* thingsboardServer = "thingsboard.cloud";
const char* accessToken = "DzT0UToGM74VZmddCqTD";
const int triggerPin = 4; // Pin trigger sensor ultrasonik
const int echoPin = 2; // Pin echo sensor ultrasonik
Ultrasonic ultrasonic(triggerPin, echoPin);
WiFiClient wifiClient;
PubSubClient client(wifiClient);
void setup() {
Serial.begin(115200);
// Menghubungkan ke WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
// Menghubungkan ke ThingsBoard melalui MQTT
client.setServer(thingsboardServer, 1883);
}
void loop() {
// Membaca data dari sensor ultrasonik
float distance = ultrasonic.read();
Serial.print("Distance: ");
Serial.println(distance);
// Kirim data ke ThingsBoard
if (client.connect("ESP32Client", accessToken, NULL)) {
String payload = "{";
payload += "\"distance\":";
payload += distance;
payload += "}";
client.publish("v1/devices/me/telemetry", payload.c_str());
Serial.println("Data sent to ThingsBoard");
client.disconnect();
} else {
Serial.println("Failed to connect to ThingsBoard");
}
delay(1000); // Interval pengiriman data (dalam milidetik)
}