//Google Assistant Home Automation #include #include "Adafruit_MQTT.h" #include "Adafruit_MQTT_Client.h" int Relay1 = 16; int Relay2 = 14; int Relay3 = 12; int Relay4 = 13; #define WLAN_SSID "---------" // Your SSID #define WLAN_PASS "---------" // Your password /************************* Adafruit.io Setup *********************************/ #define AIO_SERVER "io.adafruit.com" //Adafruit Server #define AIO_SERVERPORT 1883 #define AIO_USERNAME "----------" // Username #define AIO_KEY "----------" // 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/Relay1"); // Feeds name should be same everywhere Adafruit_MQTT_Subscribe Light2 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/Relay2"); Adafruit_MQTT_Subscribe Light3 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/Relay3"); Adafruit_MQTT_Subscribe Light4 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/Relay4"); Adafruit_MQTT_Subscribe Light5 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/Relay5"); void MQTT_connect(); void setup() { Serial.begin(115200); pinMode(Relay1, OUTPUT); pinMode(Relay2, OUTPUT); pinMode(Relay3, OUTPUT); pinMode(Relay4, OUTPUT); pinMode(Relay5, 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); mqtt.subscribe(&Light5); } 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); } if (subscription == &Light5) { Serial.print(F("Got: ")); Serial.println((char *)Light5.lastread); int Light5_State = atoi((char *)Light5.lastread); digitalWrite(Relay5, Light5_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!"); } Video Demo..!
Tidak ada komentar