├── .gitattributes ├── Love_Pedants_Master └── Love_Pedants_Master.ino └── Love_Pendants_Slave └── Love_Pendants_Slave.ino /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /Love_Pedants_Master/Love_Pedants_Master.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include "Adafruit_MQTT.h" 3 | #include "Adafruit_MQTT_Client.h" 4 | 5 | /************************* WiFi Access Point *********************************/ 6 | 7 | #define WLAN_SSID "SSID_Name" 8 | #define WLAN_PASS "Pass" 9 | bool one_time_only = 1; 10 | /************************* Adafruit.io Setup *********************************/ 11 | 12 | #define AIO_SERVER "io.adafruit.com" 13 | #define AIO_SERVERPORT 1883 // use 8883 for SSL 14 | #define AIO_USERNAME "AIO_USERNAME" 15 | #define AIO_KEY "AIO_KEY" 16 | 17 | #define touch 0 18 | #define LED 2 19 | int x = 0; 20 | bool touch_flag = 0; 21 | bool mqtt_flag = 0; 22 | bool one_time_flag = 1; 23 | int lamp_1_master = 0; 24 | int lamp_2_master = 0; 25 | /************ Global State (you don't need to change this!) ******************/ 26 | 27 | // Create an ESP8266 WiFiClient class to connect to the MQTT server. 28 | WiFiClient client; 29 | // or... use WiFiFlientSecure for SSL 30 | //WiFiClientSecure client; 31 | 32 | // Setup the MQTT client class by passing in the WiFi client and MQTT server and login details. 33 | Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY); 34 | 35 | /****************************** Feeds ***************************************/ 36 | 37 | // Setup a feed called 'photocell' for publishing. 38 | // Notice MQTT paths for AIO follow the form: /feeds/ 39 | Adafruit_MQTT_Publish lamp_brightness_pub = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/lamp_brightness"); //lamp_1_master 40 | Adafruit_MQTT_Publish lamp_1_master_pub = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/lamp_1_master"); 41 | Adafruit_MQTT_Publish lamp_2_master_pub = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/lamp_2_master"); 42 | // Setup a feed called 'onoff' for subscribing to changes. 43 | Adafruit_MQTT_Subscribe lamp_brightness_sub = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/lamp_brightness"); 44 | Adafruit_MQTT_Subscribe lamp_1_master_sub = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/lamp_1_master"); 45 | Adafruit_MQTT_Subscribe lamp_2_master_sub = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/lamp_2_master"); 46 | 47 | /*************************** Sketch Code ************************************/ 48 | 49 | // Bug workaround for Arduino 1.6.6, it seems to need a function declaration 50 | // for some reason (only affects ESP8266, likely an arduino-builder bug). 51 | void MQTT_connect(); 52 | 53 | 54 | void setup() { 55 | 56 | pinMode(touch, INPUT); 57 | pinMode(LED, OUTPUT); 58 | digitalWrite(LED,HIGH); 59 | Serial.begin(115200); 60 | 61 | Serial.println(F("Adafruit MQTT demo")); 62 | 63 | // Connect to WiFi access point. 64 | Serial.println(); Serial.println(); 65 | Serial.print("Connecting to "); 66 | Serial.println(WLAN_SSID); 67 | 68 | WiFi.begin(WLAN_SSID, WLAN_PASS); 69 | while (WiFi.status() != WL_CONNECTED) { 70 | delay(500); 71 | Serial.print("."); 72 | } 73 | Serial.println(); 74 | 75 | Serial.println("WiFi connected"); 76 | Serial.println("IP address: "); Serial.println(WiFi.localIP()); 77 | 78 | // Setup MQTT subscription for onoff feed. 79 | mqtt.subscribe(&lamp_brightness_sub); 80 | mqtt.subscribe(&lamp_1_master_sub); 81 | mqtt.subscribe(&lamp_2_master_sub); 82 | 83 | } 84 | 85 | void loop() { 86 | int brightness_value; 87 | int button_flag = 0; 88 | 89 | MQTT_connect(); 90 | 91 | if (one_time_only) 92 | { 93 | if (!lamp_1_master_pub.publish(0)) { 94 | Serial.println(F("Failed")); 95 | } else { 96 | Serial.println(F("LAMP 1 = 0")); 97 | } 98 | Adafruit_MQTT_Subscribe *subscription; 99 | while ((subscription = mqtt.readSubscription(1))) { 100 | Serial.println("FIRST READING"); 101 | 102 | if (subscription == &lamp_1_master_sub) { 103 | Serial.print(F("Got: ")); 104 | Serial.println((char *)lamp_1_master_sub.lastread); 105 | lamp_1_master = atoi((char *)lamp_1_master_sub.lastread); 106 | } 107 | } 108 | if (!lamp_2_master_pub.publish(0)) { 109 | Serial.println(F("Failed")); 110 | } else { 111 | Serial.println(F("LAMP 2 = 0")); 112 | } 113 | 114 | while ((subscription = mqtt.readSubscription(1))) { 115 | Serial.println("SECOND READING"); 116 | 117 | if (subscription == &lamp_2_master_sub) { 118 | Serial.print(F("Got: ")); 119 | Serial.println((char *)lamp_2_master_sub.lastread); 120 | lamp_2_master = atoi((char *)lamp_2_master_sub.lastread); 121 | } 122 | } 123 | Serial.print(F("\nSending brightness val ")); 124 | Serial.print(x); 125 | Serial.print("..."); 126 | if (! lamp_brightness_pub.publish(x)) { 127 | Serial.println(F("Failed")); 128 | } else { 129 | Serial.println(F("Published value")); 130 | } 131 | digitalWrite(LED, x); 132 | one_time_only = 0; 133 | } 134 | if (lamp_1_master == 0 && lamp_2_master == 0) 135 | { 136 | Serial.println("FIRST IF"); 137 | //Serial.println(analogRead(touch)); 138 | while (digitalRead(touch) == HIGH) 139 | { 140 | delay(10); 141 | 142 | if(digitalRead(touch) == HIGH) 143 | Serial.println("HIGH"); 144 | 145 | else 146 | { 147 | lamp_1_master = 1; 148 | if (!lamp_1_master_pub.publish(1)) { 149 | Serial.println(F("Failed")); 150 | } else { 151 | Serial.println(F("LAMP 1 = 1")); 152 | } 153 | Serial.println("lamp_1_master"); 154 | break; 155 | } 156 | 157 | Adafruit_MQTT_Subscribe *subscription; 158 | while ((subscription = mqtt.readSubscription(1))) { 159 | Serial.println("mqtt"); 160 | if (subscription == &lamp_2_master_sub) { 161 | Serial.print(F("Got: ")); 162 | Serial.println((char *)lamp_2_master_sub.lastread); 163 | lamp_2_master = atoi((char *)lamp_2_master_sub.lastread); 164 | digitalWrite(LED, x); 165 | } 166 | } 167 | 168 | // Serial.println("Searching"); 169 | if (lamp_2_master == 1) 170 | break; 171 | } 172 | } 173 | 174 | if (lamp_1_master == 1 && lamp_2_master == 0 && button_flag == 0) 175 | { 176 | //Serial.println("SECOND IF"); 177 | repeat: 178 | // Serial.println(analogRead(touch)); 179 | if (digitalRead(touch) == LOW) 180 | { 181 | Serial.println("TOUCH"); 182 | //counter_flag = 0; 183 | x = 1; 184 | digitalWrite(LED, x); 185 | delay(200); 186 | button_flag = 1; 187 | } 188 | // analogWrite(LED, x); 189 | 190 | /* while (counter_flag < 5000) 191 | { 192 | if (digitalRead(touch) == HIGH && counter_flag > 5000) { 193 | 194 | delay(1); 195 | break; 196 | } 197 | else 198 | { 199 | counter_flag++; 200 | delay(1); 201 | Serial.println(counter_flag); 202 | goto repeat; 203 | } 204 | 205 | } 206 | */ 207 | 208 | if (button_flag) 209 | { 210 | 211 | 212 | Serial.print(F("\nSending brightness val from lamp 1")); 213 | Serial.print(x); 214 | Serial.print("..."); 215 | if (! lamp_brightness_pub.publish(1)) { 216 | Serial.println(F("Failed")); 217 | } else { 218 | Serial.println(F("Published value")); 219 | } 220 | 221 | } 222 | 223 | } 224 | 225 | if (lamp_1_master == 1 && lamp_2_master == 0 && button_flag == 1) 226 | { 227 | Serial.println("Pahoch Gaya..."); 228 | while (lamp_1_master != 0) 229 | { 230 | Adafruit_MQTT_Subscribe *subscription; 231 | while ((subscription = mqtt.readSubscription(1))) { 232 | Serial.println("mqtt"); 233 | if (subscription == &lamp_brightness_sub) { 234 | Serial.print(F("Got: ")); 235 | Serial.println((char *)lamp_brightness_sub.lastread); 236 | x = atoi((char *)lamp_brightness_sub.lastread); 237 | digitalWrite(LED, x); 238 | Serial.print("Value of x = "); Serial.println(x); 239 | } 240 | } 241 | if (x == 0) 242 | { 243 | button_flag = 0; 244 | if (!lamp_1_master_pub.publish(x)) { 245 | Serial.println(F("Failed")); 246 | } else { 247 | Serial.println(F("LAMP 1 = 0")); 248 | } 249 | lamp_1_master = 0; 250 | } 251 | } 252 | /* 253 | Serial.print(F("\nSending brightness val from lamp 1")); 254 | Serial.print(x); 255 | Serial.print("..."); 256 | if (! lamp_brightness_pub.publish(x)) { 257 | Serial.println(F("Failed")); 258 | } else { 259 | Serial.println(F("brightness = 0")); 260 | } 261 | if (!lamp_1_master_pub.publish(x)) { 262 | Serial.println(F("Failed")); 263 | } else { 264 | Serial.println(F("LAMP 1 = 0")); 265 | } 266 | lamp_1_master = 0; 267 | if (!lamp_2_master_pub.publish(x)) { 268 | Serial.println(F("Failed")); 269 | } else { 270 | Serial.println(F("LAMP 2 = 0")); 271 | } 272 | lamp_2_master = 0; 273 | counter_flag = 0; 274 | */ 275 | } 276 | 277 | if (lamp_2_master == 1) 278 | { 279 | 280 | while (digitalRead(touch) == HIGH) 281 | { 282 | Adafruit_MQTT_Subscribe *subscription; 283 | while ((subscription = mqtt.readSubscription(1))) { 284 | Serial.println("mqtt"); 285 | if (subscription == &lamp_brightness_sub) { 286 | Serial.print(F("Got: ")); 287 | Serial.println((char *)lamp_brightness_sub.lastread); 288 | x = atoi((char *)lamp_brightness_sub.lastread); 289 | digitalWrite(LED, x); 290 | Serial.print("Value of x = "); Serial.println(x); 291 | } 292 | } 293 | } 294 | Serial.println("TOUCH"); 295 | touch_flag = 1; 296 | x = 0; 297 | digitalWrite(LED, x); 298 | 299 | 300 | Serial.print(F("\nSending brightness val from lamp 1")); 301 | Serial.print(x); 302 | Serial.print("..."); 303 | if (! lamp_brightness_pub.publish(x)) { 304 | Serial.println(F("Failed")); 305 | } else { 306 | Serial.println(F("brightness = 0")); 307 | } 308 | if (!lamp_1_master_pub.publish(x)) { 309 | Serial.println(F("Failed")); 310 | } else { 311 | Serial.println(F("LAMP 1 = 0")); 312 | } 313 | lamp_1_master = 0; 314 | if (!lamp_2_master_pub.publish(x)) { 315 | Serial.println(F("Failed")); 316 | } else { 317 | Serial.println(F("LAMP 2 = 0")); 318 | } 319 | lamp_2_master = 0; 320 | button_flag = 0; 321 | 322 | } 323 | 324 | 325 | if(! mqtt.ping()) { 326 | mqtt.disconnect(); 327 | } 328 | 329 | //delay(500); 330 | 331 | 332 | 333 | // put your main code here, to run repeatedly: 334 | 335 | } 336 | void MQTT_connect() { 337 | int8_t ret; 338 | 339 | // Stop if already connected. 340 | if (mqtt.connected()) { 341 | return; 342 | } 343 | 344 | Serial.print("Connecting to MQTT... "); 345 | 346 | uint8_t retries = 3; 347 | while ((ret = mqtt.connect()) != 0) { // connect will return 0 for connected 348 | Serial.println(mqtt.connectErrorString(ret)); 349 | Serial.println("Retrying MQTT connection in 5 seconds..."); 350 | mqtt.disconnect(); 351 | delay(5000); // wait 5 seconds 352 | retries--; 353 | if (retries == 0) { 354 | // basically die and wait for WDT to reset me 355 | while (1); 356 | } 357 | } 358 | Serial.println("MQTT Connected!"); 359 | digitalWrite(LED,LOW); 360 | } 361 | -------------------------------------------------------------------------------- /Love_Pendants_Slave/Love_Pendants_Slave.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include "Adafruit_MQTT.h" 3 | #include "Adafruit_MQTT_Client.h" 4 | 5 | /************************* WiFi Access Point *********************************/ 6 | 7 | #define WLAN_SSID "SSID_Name" 8 | #define WLAN_PASS "Pass" 9 | bool one_time_only = 1; 10 | /************************* Adafruit.io Setup *********************************/ 11 | 12 | #define AIO_SERVER "io.adafruit.com" 13 | #define AIO_SERVERPORT 1883 // use 8883 for SSL 14 | #define AIO_USERNAME "AIO_USERNAME" 15 | #define AIO_KEY "AIO_KEY" 16 | 17 | #define touch 0 18 | #define LED 2 19 | int x = 0; 20 | bool touch_flag = 0; 21 | bool mqtt_flag = 0; 22 | bool one_time_flag = 1; 23 | int lamp_1_master = 0; 24 | int lamp_2_master = 0; 25 | /************ Global State (you don't need to change this!) ******************/ 26 | 27 | // Create an ESP8266 WiFiClient class to connect to the MQTT server. 28 | WiFiClient client; 29 | // or... use WiFiFlientSecure for SSL 30 | //WiFiClientSecure client; 31 | 32 | // Setup the MQTT client class by passing in the WiFi client and MQTT server and login details. 33 | Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY); 34 | 35 | /****************************** Feeds ***************************************/ 36 | 37 | // Setup a feed called 'photocell' for publishing. 38 | // Notice MQTT paths for AIO follow the form: /feeds/ 39 | Adafruit_MQTT_Publish lamp_brightness_pub = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/lamp_brightness"); //lamp_1_master 40 | Adafruit_MQTT_Publish lamp_1_master_pub = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/lamp_1_master"); 41 | Adafruit_MQTT_Publish lamp_2_master_pub = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/lamp_2_master"); 42 | // Setup a feed called 'onoff' for subscribing to changes. 43 | Adafruit_MQTT_Subscribe lamp_brightness_sub = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/lamp_brightness"); 44 | Adafruit_MQTT_Subscribe lamp_1_master_sub = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/lamp_1_master"); 45 | Adafruit_MQTT_Subscribe lamp_2_master_sub = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/lamp_2_master"); 46 | 47 | /*************************** Sketch Code ************************************/ 48 | 49 | // Bug workaround for Arduino 1.6.6, it seems to need a function declaration 50 | // for some reason (only affects ESP8266, likely an arduino-builder bug). 51 | void MQTT_connect(); 52 | 53 | 54 | void setup() { 55 | 56 | pinMode(touch, INPUT_PULLUP); 57 | pinMode(LED, OUTPUT); 58 | digitalWrite(LED,HIGH); 59 | Serial.begin(115200); 60 | 61 | Serial.println(F("Adafruit MQTT demo")); 62 | 63 | // Connect to WiFi access point. 64 | Serial.println(); Serial.println(); 65 | Serial.print("Connecting to "); 66 | Serial.println(WLAN_SSID); 67 | 68 | WiFi.begin(WLAN_SSID, WLAN_PASS); 69 | while (WiFi.status() != WL_CONNECTED) { 70 | delay(500); 71 | Serial.print("."); 72 | } 73 | Serial.println(); 74 | 75 | Serial.println("WiFi connected"); 76 | Serial.println("IP address: "); Serial.println(WiFi.localIP()); 77 | 78 | // Setup MQTT subscription for onoff feed. 79 | mqtt.subscribe(&lamp_brightness_sub); 80 | mqtt.subscribe(&lamp_1_master_sub); 81 | mqtt.subscribe(&lamp_2_master_sub); 82 | 83 | } 84 | 85 | void loop() { 86 | 87 | 88 | int brightness_value; 89 | int button_flag = 0; 90 | 91 | MQTT_connect(); 92 | 93 | if (one_time_only) 94 | { 95 | if (!lamp_1_master_pub.publish(0)) { 96 | Serial.println(F("Failed")); 97 | } else { 98 | Serial.println(F("LAMP 1 = 0")); 99 | } 100 | Adafruit_MQTT_Subscribe *subscription; 101 | while ((subscription = mqtt.readSubscription(1))) { 102 | Serial.println("FIRST READING"); 103 | 104 | if (subscription == &lamp_1_master_sub) { 105 | Serial.print(F("Got: ")); 106 | Serial.println((char *)lamp_1_master_sub.lastread); 107 | lamp_1_master = atoi((char *)lamp_1_master_sub.lastread); 108 | } 109 | } 110 | if (!lamp_2_master_pub.publish(0)) { 111 | Serial.println(F("Failed")); 112 | } else { 113 | Serial.println(F("LAMP 2 = 0")); 114 | } 115 | 116 | while ((subscription = mqtt.readSubscription(1))) { 117 | Serial.println("SECOND READING"); 118 | 119 | if (subscription == &lamp_2_master_sub) { 120 | Serial.print(F("Got: ")); 121 | Serial.println((char *)lamp_2_master_sub.lastread); 122 | lamp_2_master = atoi((char *)lamp_2_master_sub.lastread); 123 | } 124 | } 125 | Serial.print(F("\nSending brightness val ")); 126 | Serial.print(x); 127 | Serial.print("..."); 128 | if (! lamp_brightness_pub.publish(x)) { 129 | Serial.println(F("Failed")); 130 | } else { 131 | Serial.println(F("Published value")); 132 | } 133 | digitalWrite(LED, x); 134 | one_time_only = 0; 135 | } 136 | if (lamp_1_master == 0 && lamp_2_master == 0) 137 | { 138 | Serial.println("FIRST IF"); 139 | while (digitalRead(touch) == HIGH) 140 | { 141 | delay(10); 142 | 143 | if(digitalRead(touch) == HIGH) 144 | { 145 | 146 | } 147 | 148 | else 149 | { 150 | lamp_2_master = 1; 151 | if (!lamp_2_master_pub.publish(1)) { 152 | Serial.println(F("Failed")); 153 | } else { 154 | Serial.println(F("LAMP 2 = 1")); 155 | } 156 | Serial.println("lamp_2_master"); 157 | break; 158 | } 159 | 160 | Adafruit_MQTT_Subscribe *subscription; 161 | while ((subscription = mqtt.readSubscription(1))) { 162 | Serial.println("FIRST READING"); 163 | 164 | if (subscription == &lamp_1_master_sub) { 165 | Serial.print(F("Got: ")); 166 | Serial.println((char *)lamp_1_master_sub.lastread); 167 | lamp_1_master = atoi((char *)lamp_1_master_sub.lastread); 168 | } 169 | } 170 | 171 | if(lamp_1_master == 1) 172 | break; 173 | } 174 | } 175 | 176 | if (lamp_1_master == 0 && lamp_2_master == 1 && button_flag == 0) 177 | { 178 | // Serial.println("SECOND IF"); 179 | repeat: 180 | // Serial.println(analogRead(touch)); 181 | if (digitalRead(touch) == LOW) 182 | { 183 | Serial.println("TOUCH"); 184 | button_flag = 1; 185 | 186 | x = 1; 187 | digitalWrite(LED, x); 188 | delay(200); 189 | } 190 | /* 191 | while (counter_flag < 5000) 192 | { 193 | 194 | if (digitalRead(touch) ==LOW && counter_flag < 5000) 195 | { 196 | delay(1); 197 | break; 198 | } 199 | else if (digitalRead(touch)==HIGH && counter_flag > 5000) { 200 | 201 | delay(1); 202 | break; 203 | } 204 | else 205 | { 206 | counter_flag++; 207 | delay(1); 208 | goto repeat; 209 | } 210 | 211 | } 212 | */ 213 | 214 | if (button_flag) 215 | { 216 | 217 | Serial.print(F("\nSending brightness val from lamp 2")); 218 | Serial.print(x); 219 | Serial.print("..."); 220 | if (! lamp_brightness_pub.publish(x)) { 221 | Serial.println(F("Failed")); 222 | } else { 223 | Serial.println(F("Published value")); 224 | } 225 | } 226 | } 227 | if (lamp_1_master == 0 && lamp_2_master == 1 && button_flag == 1) 228 | { 229 | while(lamp_2_master != 0){ 230 | Adafruit_MQTT_Subscribe *subscription; 231 | while ((subscription = mqtt.readSubscription(1))) { 232 | Serial.println("mqtt"); 233 | if (subscription == &lamp_brightness_sub) { 234 | Serial.print(F("Got: ")); 235 | Serial.println((char *)lamp_brightness_sub.lastread); 236 | x = atoi((char *)lamp_brightness_sub.lastread); 237 | digitalWrite(LED, x); 238 | Serial.print("Value of x = "); Serial.println(x); 239 | } 240 | } 241 | if(x == 0) 242 | { 243 | button_flag = 0; 244 | if (!lamp_2_master_pub.publish(x)) { 245 | Serial.println(F("Failed")); 246 | } else { 247 | Serial.println(F("LAMP 2 = 0")); 248 | } 249 | lamp_2_master = 0; 250 | } 251 | } 252 | } 253 | 254 | if (lamp_1_master == 1) 255 | { 256 | 257 | while (digitalRead(touch) ==HIGH) 258 | { 259 | Adafruit_MQTT_Subscribe *subscription; 260 | while ((subscription = mqtt.readSubscription(1))) { 261 | Serial.println("mqtt"); 262 | if (subscription == &lamp_brightness_sub) { 263 | Serial.print(F("Got: ")); 264 | Serial.println((char *)lamp_brightness_sub.lastread); 265 | x = atoi((char *)lamp_brightness_sub.lastread); 266 | digitalWrite(LED, x); 267 | Serial.print("Value of x = "); Serial.println(x); 268 | } 269 | } 270 | } 271 | Serial.println("TOUCH"); 272 | touch_flag = 1; 273 | x = 0; 274 | digitalWrite(LED, x); 275 | Serial.print(F("\nSending brightness val from lamp 1")); 276 | Serial.print(x); 277 | Serial.print("..."); 278 | if (! lamp_brightness_pub.publish(x)) { 279 | Serial.println(F("Failed")); 280 | } else { 281 | Serial.println(F("brightness = 0")); 282 | } 283 | if (!lamp_1_master_pub.publish(x)) { 284 | Serial.println(F("Failed")); 285 | } else { 286 | Serial.println(F("LAMP 1 = 0")); 287 | } 288 | lamp_1_master = 0; 289 | if (!lamp_2_master_pub.publish(x)) { 290 | Serial.println(F("Failed")); 291 | } else { 292 | Serial.println(F("LAMP 2 = 0")); 293 | } 294 | lamp_2_master = 0; 295 | button_flag = 0; 296 | 297 | } 298 | /* 299 | Serial.println(analogRead(touch)); 300 | while (analogRead(touch) < 850) 301 | { 302 | Serial.println("GO ON"); 303 | delay(1); 304 | 305 | } 306 | 307 | Serial.println("TOUCH"); 308 | touch_flag = 1; 309 | x = 0; 310 | analogWrite(LED, x); 311 | 312 | 313 | Serial.print(F("\nSending brightness val from lamp 1")); 314 | Serial.print(x); 315 | Serial.print("..."); 316 | if (! lamp_brightness_pub.publish(x)) { 317 | Serial.println(F("Failed")); 318 | } else { 319 | Serial.println(F("brightness = 0")); 320 | } 321 | if (!lamp_1_master_pub.publish(x)) { 322 | Serial.println(F("Failed")); 323 | } else { 324 | Serial.println(F("LAMP 1 = 0")); 325 | } 326 | lamp_1_master = 0; 327 | if (!lamp_2_master_pub.publish(x)) { 328 | Serial.println(F("Failed")); 329 | } else { 330 | Serial.println(F("LAMP 2 = 0")); 331 | } 332 | lamp_2_master = 0; 333 | } 334 | */ 335 | 336 | 337 | // delay(500); 338 | 339 | if(! mqtt.ping()) { 340 | mqtt.disconnect(); 341 | } 342 | 343 | // put your main code here, to run repeatedly: 344 | 345 | } 346 | void MQTT_connect() { 347 | int8_t ret; 348 | 349 | // Stop if already connected. 350 | if (mqtt.connected()) { 351 | return; 352 | } 353 | 354 | Serial.print("Connecting to MQTT... "); 355 | 356 | uint8_t retries = 3; 357 | while ((ret = mqtt.connect()) != 0) { // connect will return 0 for connected 358 | Serial.println(mqtt.connectErrorString(ret)); 359 | Serial.println("Retrying MQTT connection in 5 seconds..."); 360 | mqtt.disconnect(); 361 | delay(5000); // wait 5 seconds 362 | retries--; 363 | if (retries == 0) { 364 | // basically die and wait for WDT to reset me 365 | while (1); 366 | } 367 | } 368 | Serial.println("MQTT Connected!"); 369 | digitalWrite(LED,LOW); 370 | } 371 | --------------------------------------------------------------------------------