#include #include const char* ssid = "MAHAKAL"; const char* password = "8527669889"; const int led = 13; const char* mqtt_server = "192.168.1.8"; WiFiClient espClient; PubSubClient client(espClient); const int ledGPIO2 = 2; void setup_wifi() { int i; delay(10); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); Serial.println("WIFI BEGUN"); while (WiFi.status() != WL_CONNECTED) { ESP.wdtFeed(); delay(500); i++; if ((i&0x01)==0){ digitalWrite(led, 0); } else { digitalWrite(led, 1); // led should start blinking at .5 seconds } Serial.print("."); if (i>1000) break; // get out after 50 seconds if (i==1000){ } Serial.print("."); Serial.println(""); Serial.print("WiFi connected - ESP IP address: "); Serial.println(WiFi.localIP()); } } void callback(String topic, byte* message, unsigned int length) { Serial.print("Message arrived on topic: "); Serial.print(topic); Serial.print(". Message: "); String messageTemp; for (int i = 0; i < length; i++) { Serial.print((char)message[i]); messageTemp += (char)message[i]; } Serial.println(); if(topic=="Lamp1"){ Serial.print("Changing GPIO 2 to "); if(messageTemp == "on"){ digitalWrite(ledGPIO2, HIGH); Serial.print("On"); } else if(messageTemp == "off"){ digitalWrite(ledGPIO2, LOW); Serial.print("Off"); } } Serial.println(); } void reconnect() { // Loop until we're reconnected while (!client.connected()) { Serial.print("Attempting MQTT connection..."); if (client.connect("ESP8266Client")) { Serial.println("connected"); client.subscribe("Lamp1"); } else { Serial.print("failed, rc="); Serial.print(client.state()); Serial.println(" try again in 5 seconds"); // Wait 5 seconds before retrying delay(5000); } } } void setup() { pinMode(ledGPIO2, OUTPUT); digitalWrite(ledGPIO2, true); Serial.begin(115200); setup_wifi(); client.setServer(mqtt_server, 1883); client.setCallback(callback); } void loop() { if (!client.connected()) { reconnect(); } if(!client.loop()) client.connect("ESP8266Client"); }