MQTT basic publish and subscribe commutation each other
FIRST device PUBLISH data
#include <WiFi.h>
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"
#define AIO_SERVER "io.adafruit.com"
#define AIO_SERVERPORT 1883
#define AIO_USERNAME "suresh7799"
#define AIO_KEY "6d84f0c9edca4461a7212d74c6099175"
WiFiClient client;
Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
boolean MQTT_connect();
boolean MQTT_connect() {
int8_t ret;
if (mqtt.connected()) {
return true; }
uint8_t retries = 3;
while ((ret = mqtt.connect()) != 0) {
mqtt.disconnect();
delay(2000);
Serial.println("conneting to mqtt");
retries--;
if (retries == 0)
{
Serial.println("time out for mqtt");
return false; }}
return true;
}
Adafruit_MQTT_Publish dash = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/dash");
void setup()
{
Serial.begin(9600);
WiFi.disconnect();
delay(3000);
Serial.println("START");
WiFi.begin("3floor","vijaysai1234");
while ((!(WiFi.status() == WL_CONNECTED))){
delay(300);
Serial.print("..");
}
Serial.println("Connected");
Serial.println("Your IP is");
Serial.println((WiFi.localIP()));
}
void loop()
{
if (MQTT_connect()) {
Serial.println("mqtt conneted");
if (dash.publish("1")) {
Serial.println("START mqtt");
}
}
delay(10000);
}
SECOND Device for subscribe topic
#include <WiFi.h>
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"
#define AIO_SERVER "io.adafruit.com"
#define AIO_SERVERPORT 1883
#define AIO_USERNAME "suresh7799"
#define AIO_KEY "6d84f0c9edca4461a7212d74c6099175"
WiFiClient client;
Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
Adafruit_MQTT_Subscribe dash = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/dash");
boolean MQTT_connect();
boolean MQTT_connect() { int8_t ret; if (mqtt.connected()) { return true; } uint8_t retries = 3; while ((ret = mqtt.connect()) != 0) { mqtt.disconnect(); delay(2000); retries--;if (retries == 0) { return false; }} return true;}
void setup()
{
Serial.begin(9600);
WiFi.disconnect();
delay(3000);
mqtt.subscribe(&dash);
Serial.println("START");
WiFi.begin("3floor","vijaysai1234");
while ((!(WiFi.status() == WL_CONNECTED))){
delay(300);
Serial.print("..");
}
Serial.println("Connected");
Serial.println("Your IP is");
Serial.println((WiFi.localIP()));
}
void loop()
{
if (MQTT_connect()) {
Adafruit_MQTT_Subscribe *sub;
while ((sub = mqtt.readSubscription(5000))) {
if (sub == &dash) {
Serial.println(((char *)dash.lastread));
}
}
}
delay(10000);
}
Comments
Post a Comment