#include <PubSubClient.h>
const char *ssid = "Pradita University";
const char *pass = "KampusPradita";
const char *mqtt_server = "192.168.113.245";
const int mqtt_port = 1883;
const char *mqtt_user = "NULL";
const char *mqtt_password = "NULL";
const char *mqtt_topic = "topik/api";
const int SensorPin = 34;
WiFiClient espClient;
PubSubClient client(espClient);
void setup() {
Serial.begin(115200);
pinMode(SensorPin, INPUT);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(2000);
Serial.println("Connecting to WiFi");
}
Serial.println("WiFi connected");
client.setServer(mqtt_server, 1883);
client.setCallback(callback);
delay(2000);
while (!client.connected()) {
Serial.println("Connecting to MQTT...");
if (client.connect("ESP32Client", mqtt_user, mqtt_password)) {
client.subscribe(mqtt_topic);
Serial.println("Connected to MQTT");
delay(3000);
}
}
}
void loop() {
if (!client.connected()){
reconnect();
}
int sensorValue = analogRead(SensorPin);
if (sensorValue < 3000) {
Serial.println(sensorValue);
if (client.connected()){
client.publish(mqtt_topic, "1");
}
} else {
Serial.println(sensorValue);
if (client.connected()){
client.publish(mqtt_topic, "0");
}
}
if (!client.connected()){
reconnect();
}
client.loop();
delay(3000);
}
void reconnect() {
while (!client.connected()) {
Serial.print("Attempting MQTT connection...");
if (client.connect("ESP32Client", mqtt_user, mqtt_password)) {
Serial.println("connected");
client.subscribe(mqtt_topic);
delay(3000);
}
}
}