#include <WiFi.h>
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"
/* ========== WiFi Credentials ========== */
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASSWORD ""
/* ========== Adafruit IO Credentials ========== */
#define AIO_SERVER "io.adafruit.com"
#define AIO_SERVERPORT 1883
#define AIO_USERNAME "Santhosh2714"
#define AIO_KEY "aio_hnvy85iTC2FDgCWeDg5qjEfw9oKx"
/* ========== WiFi & MQTT Clients ========== */
WiFiClient client;
Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT,
AIO_USERNAME, AIO_KEY);
/* ========== Subscribe to Temperature Feed ========== */
Adafruit_MQTT_Subscribe temperatureFeed =
Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/temperature");
void setup() {
Serial.begin(115200);
/* Connect to WiFi */
Serial.print("Connecting to WiFi");
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi Connected");
/* Subscribe */
mqtt.subscribe(&temperatureFeed);
}
void loop() {
/* Ensure MQTT connection */
if (!mqtt.connected()) {
connectMQTT();
}
mqtt.processPackets(10000);
mqtt.ping();
/* Check for incoming data */
Adafruit_MQTT_Subscribe *subscription;
while ((subscription = mqtt.readSubscription(5000))) {
if (subscription == &temperatureFeed) {
Serial.print("🌡 Temperature received: ");
Serial.print(temperatureRead.lastread);
Serial.println((char *)temperatureFeed.lastread);
}
}
}
/* ========== MQTT Connect Function ========== */
void connectMQTT() {
Serial.print("Connecting to Adafruit IO...");
int8_t ret;
while ((ret = mqtt.connect()) != 0) {
Serial.println(mqtt.connectErrorString(ret));
delay(2000);
}
Serial.println(" Connected!");
}