ADAFRUIT IOT WITH ESP8266

 https://io.adafruit.com/anokhramesh/dashboards/google-assistant-homeautomation

ADAFRUIT IOT


//Google Assistant Home Automation

#include <ESP8266WiFi.h>

#include "Adafruit_MQTT.h"

#include "Adafruit_MQTT_Client.h"


#define Relay1            D0

#define Relay2            D1

#define Relay3            D2

#define Relay4            D3


#define WLAN_SSID       "dewa406"             // Your SSID

#define WLAN_PASS       "Ramesh16384"        // Your password


/************************* Adafruit.io Setup *********************************/


#define AIO_SERVER      "io.adafruit.com" //Adafruit Server

#define AIO_SERVERPORT  1883                   

#define AIO_USERNAME    "anokhramesh"            // Username

#define AIO_KEY         "aio_oWch33X2fM0uP2mBqAFrEMy73SSv"   // Auth Key


//WIFI CLIENT

WiFiClient client;


Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);


Adafruit_MQTT_Subscribe Light1 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME"/feeds/device-1"); // Feeds name should be same everywhere

Adafruit_MQTT_Subscribe Light2 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/device-2");

Adafruit_MQTT_Subscribe Light3 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/device-3");

Adafruit_MQTT_Subscribe Light4 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/device-4");


void MQTT_connect();


void setup() {

  Serial.begin(115200);


  pinMode(Relay1, OUTPUT);

  pinMode(Relay2, OUTPUT);

  pinMode(Relay3, OUTPUT);

  pinMode(Relay4, OUTPUT);

  

  // Connect to WiFi access point.

  Serial.println(); Serial.println();

  Serial.print("Connecting to ");

  Serial.println(WLAN_SSID);


  WiFi.begin(WLAN_SSID, WLAN_PASS);

  while (WiFi.status() != WL_CONNECTED) {

    delay(500);

    Serial.print(".");

  }

  Serial.println();


  Serial.println("WiFi connected");

  Serial.println("IP address: "); 

  Serial.println(WiFi.localIP());

 

  mqtt.subscribe(&Light1);

  mqtt.subscribe(&Light3);

  mqtt.subscribe(&Light2);

  mqtt.subscribe(&Light4);

}


void loop() {

 

  MQTT_connect();

  


  Adafruit_MQTT_Subscribe *subscription;

  while ((subscription = mqtt.readSubscription(20000))) {

    if (subscription == &Light1) {

      Serial.print(F("Got: "));

      Serial.println((char *)Light1.lastread);

      int Light1_State = atoi((char *)Light1.lastread);

      digitalWrite(Relay1, Light1_State);

      

    }

    if (subscription == &Light2) {

      Serial.print(F("Got: "));

      Serial.println((char *)Light2.lastread);

      int Light2_State = atoi((char *)Light2.lastread);

      digitalWrite(Relay2, Light2_State);

    }

    if (subscription == &Light3) {

      Serial.print(F("Got: "));

      Serial.println((char *)Light3.lastread);

      int Light3_State = atoi((char *)Light3.lastread);

      digitalWrite(Relay3, Light3_State);

    }

    if (subscription == &Light4) {

      Serial.print(F("Got: "));

      Serial.println((char *)Light4.lastread);

      int Light4_State = atoi((char *)Light4.lastread);

      digitalWrite(Relay4, Light4_State);

      

    }

  }


  

}


void MQTT_connect() {

  int8_t ret;


  if (mqtt.connected()) {

    return;

  }


  Serial.print("Connecting to MQTT... ");


  uint8_t retries = 3;

  

  while ((ret = mqtt.connect()) != 0) {

    Serial.println(mqtt.connectErrorString(ret));

    Serial.println("Retrying MQTT connection in 5 seconds...");

    mqtt.disconnect();

    delay(5000); 

    retries--;

    if (retries == 0) {

      while (1);

    }

  }

  Serial.println("MQTT Connected!");

  

}

Comments

Popular posts from this blog

Proteus simulation 4x4 Matrix Keypad with Arduino and LCD screen

Digital Clock with Arduino and RTC Module and P10 LEDmatrix

Interfacing KY038 sound sensor with Raspberry pi Pico