// Adafruit IO Subscription Example // // Adafruit invests time and resources providing this open source code. // Please support Adafruit and open source hardware by purchasing // products from Adafruit! // // Written by Todd Treece for Adafruit Industries // Copyright (c) 2016 Adafruit Industries // Licensed under the MIT license. // // All text above must be included in any redistribution. /* Code written by Iván Sánchez Milara based on example code adafruitio_01_subscribe Tutorials: - https://learn.adafruit.com/using-ifttt-with-adafruit-io/ - https://learn.adafruit.com/adafruit-io-basics-esp8266-arduino/ This example code is in public domain. ************************************************************* This example runs directly on NodeMCU. Note: This requires ESP8266 support package: https://github.com/esp8266/Arduino And the following libraries: - Adafruit IO Arduino - Adafruit MQTT library *************************************************************/ #include /************************** Configuration ***********************************/ //const int LED = 2; // edit the config.h tab and enter your Adafruit IO credentials // and any additional configuration needed for WiFi, cellular, // or ethernet clients. #include "config.h" // set up the feed AdafruitIO_Feed *feed0 = io.feed("Home"); AdafruitIO_Feed *feed1 = io.feed("Commute"); AdafruitIO_Feed *feed2 = io.feed("Work"); AdafruitIO_Feed *feed3 = io.feed("School"); AdafruitIO_Feed *feed4 = io.feed("Grocery"); AdafruitIO_Feed *feed5 = io.feed("Shopping"); AdafruitIO_Feed *feed6 = io.feed("Dinner"); AdafruitIO_Feed *feed7 = io.feed("Travel"); AdafruitIO_Feed *feed8 = io.feed("Vacation"); AdafruitIO_Feed *feed9 = io.feed("Neptune"); //AdafruitIO_Feed *feed10 = io.feed("Emergent"); //AdafruitIO_Feed *feed11 = io.feed("Exercise"); #define delay_time 500 const int LED=2; void setup() { pinMode (LED, OUTPUT); // start the serial connection Serial.begin(9600); // wait for serial monitor to open while(! Serial); //Serial.print("Connecting to Adafruit IO"); // start MQTT connection to io.adafruit.com io.connect(); // set up a message handler for the count feed. // the handleMessage function (defined below) // will be called whenever a message is // received from adafruit io. feed0->onMessage(handleMessage0); feed1->onMessage(handleMessage1); feed2->onMessage(handleMessage2); feed3->onMessage(handleMessage3); feed4->onMessage(handleMessage4); feed5->onMessage(handleMessage5); feed6->onMessage(handleMessage6); feed7->onMessage(handleMessage7); feed8->onMessage(handleMessage8); feed9->onMessage(handleMessage9); //feed10->onMessage(handleMessage10); //feed11->onMessage(handleMessage11); // wait for an MQTT connection // NOTE: when blending the HTTP and MQTT API, always use the mqttStatus // method to check on MQTT connection status specifically // while(io.mqttStatus() < AIO_CONNECTED) { //Serial.print("."); digitalWrite (LED, HIGH); // Making LED High. delay(500); // Some Delay digitalWrite (LED, LOW); // Making LED LOW. delay(500); //delay(500); // } // Because Adafruit IO doesn't support the MQTT retain flag, we can use the // get() function to ask IO to resend the last value for this feed to just // this MQTT client after the io client is connected. feed0->get(); feed1->get(); feed2->get(); feed3->get(); feed4->get(); feed5->get(); feed6->get(); feed7->get(); feed8->get(); feed9->get(); //feed10->get(); //feed11->get(); // we are connected //Serial.println(); //Serial.println(io.statusText()); digitalWrite (LED, LOW); // Making LED High. } void loop() { // io.run(); is required for all sketches. // it should always be present at the top of your loop // function. it keeps the client connected to // io.adafruit.com, and processes any incoming data. io.run(); // Because this sketch isn't publishing, we don't need // a delay() in the main program loop. } // this function is called whenever a 'feed' message // is received from Adafruit IO. it was attached to // the counter feed in the setup() function above. void handleMessage0(AdafruitIO_Data *data) { // When received a position Serial.println("0");//home digitalWrite (LED, LOW); // Making LED High. delay(500); // Some Delay digitalWrite (LED, HIGH); // Making LED LOW. } void handleMessage1(AdafruitIO_Data *data) { // When received a position Serial.println("1");//commute digitalWrite (LED, LOW); // Making LED High. delay(500); // Some Delay digitalWrite (LED, HIGH); // Making LED LOW. } void handleMessage2(AdafruitIO_Data *data) { // When received a position Serial.println("2");//work digitalWrite (LED, LOW); // Making LED High. delay(500); // Some Delay digitalWrite (LED, HIGH); // Making LED LOW. } void handleMessage3(AdafruitIO_Data *data) { // When received a position Serial.println("3"); //school digitalWrite (LED, LOW); // Making LED High. delay(500); // Some Delay digitalWrite (LED, HIGH); // Making LED LOW. } void handleMessage4(AdafruitIO_Data *data) { // When received a position Serial.println("4");//grocery digitalWrite (LED, LOW); // Making LED High. delay(500); // Some Delay digitalWrite (LED, HIGH); // Making LED LOW. } void handleMessage5(AdafruitIO_Data *data) { // When received a position Serial.println("5");//shopping digitalWrite (LED, LOW); // Making LED High. delay(500); // Some Delay digitalWrite (LED, HIGH); // Making LED LOW. } void handleMessage6(AdafruitIO_Data *data) { // When received a position Serial.println("6");//dinner digitalWrite (LED, LOW); // Making LED High. delay(500); // Some Delay digitalWrite (LED, HIGH); // Making LED LOW. } void handleMessage7(AdafruitIO_Data *data) { // When received a position Serial.println("7");//travel digitalWrite (LED, LOW); // Making LED High. delay(500); // Some Delay digitalWrite (LED, HIGH); // Making LED LOW. } void handleMessage8(AdafruitIO_Data *data) { // When received a position Serial.println("8");//vacation digitalWrite (LED, LOW); // Making LED High. delay(500); // Some Delay digitalWrite (LED, HIGH); // Making LED LOW. } void handleMessage9(AdafruitIO_Data *data) { // When received a position Serial.println("9");//Neptune digitalWrite (LED, LOW); // Making LED High. delay(500); // Some Delay digitalWrite (LED, HIGH); // Making LED LOW. } void handleMessage10(AdafruitIO_Data *data) { // When received a position Serial.println("10");//emergent digitalWrite (LED, LOW); // Making LED High. delay(500); // Some Delay digitalWrite (LED, HIGH); // Making LED LOW. } void handleMessage11(AdafruitIO_Data *data) { // When received a position Serial.println("11");//exercise digitalWrite (LED, LOW); // Making LED High. delay(500); // Some Delay digitalWrite (LED, HIGH); // Making LED LOW. }