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