#include <WiFi.h>
#include <MQTT.h>
#define PIN_TRIG 32
#define PIN_ECHO 35
WiFiClient net;
MQTTClient client;
const char ssid[] = "Wokwi-GUEST";
const char pass[] = "";
long readDistanceCM() {
digitalWrite(PIN_TRIG, LOW);
delayMicroseconds(2);
digitalWrite(PIN_TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(PIN_TRIG, LOW);
long duration = pulseIn(PIN_ECHO, HIGH);
return duration * 0.034 / 2;
}
void connect() {
Serial.print("Menghubungkan ke broker MQTT...");
while (!client.connect("PublisherClient")) {
Serial.print(".");
delay(500);
}
Serial.println("\nTerhubung ke broker!");
}
void setup() {
Serial.begin(9600);
pinMode(PIN_TRIG, OUTPUT);
pinMode(PIN_ECHO, INPUT);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println("\nTerhubung ke WiFi!");
client.begin("broker.emqx.io", net);
connect();
}
void loop() {
long jarak = readDistanceCM();
if (client.connected()) {
String jarakStr = String(jarak);
client.publish("mufiz/range", jarakStr);
Serial.println("Data jarak diterbitkan: " + jarakStr);
}
delay(5000);
}