Stap 2: Verbind Huzzah met Adafruit aan IFTTT
1. de Huzzah soldeer
https://Learn.adafruit.com/adafruit-Huzzah-esp8266...
2. huzzah te Adafruit.io
https://Learn.adafruit.com/adafruit-io-Basics-Digi...
3. setup IFTTT verbinden met Adafruit.io (Zie de afbeelding)
Maakt u een IFTTT-ID
Maken van een recept: als Blogger dan Adafruit
Invoegen van de feed die u hebt aangebracht op de Adafruit.io
4. Schrijf codes (u moet aanpassen van Wifi en Adafruit informatie)
/***************************************************
Adafruit MQTT bibliotheek ESP8266 voorbeeld
ESP8266 Arduino van moet gebruiken:
https://github.com/esp8266/Arduino
Werkt prima met de Adafruit Huzzah ESP bord:
---> https://www.adafruit.com/product/2471
Adafruit investeert tijd en middelen verstrekken van dit open source-code,
u kan ondersteunen Adafruit en open-source hardware door de aankoop van
producten van Adafruit!
Geschreven door Tony DiCola voor Adafruit industrieën.
Adafruit IO voorbeeld toevoegingen door Todd Treece.
MIT-licentie, alle bovenstaande tekst moet worden opgenomen in eventuele herverdeling
****************************************************/
#include
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"
functie prototypes
nietig connect(void);
/****************************** Pins ******************************************/
#define LAMP 12 / / power schakelaar staart
/************************* WiFi Access Point *********************************/
#define WLAN_SSID "Naam van het Wifi"
#define WLAN_PASS "Wifi wachtwoorden"
/************************* Adafruit.io Setup *********************************/
#define AIO_SERVER "io.adafruit.com"
#define AIO_SERVERPORT 1883
#define AIO_USERNAME "Adafruit.io gebruikersnaam"
#define AIO_KEY "Copy de sleutel van Adafruit.io"
/ *** Global staat (u hoeft niet om dit te veranderen!) ***
/ Maak een ESP8266 WiFiClient klasse verbinden met de server van MQTT.
WiFiClient de klant;
De MQTT server, client-ID, gebruikersnaam en wachtwoord opslaan in het geheugen van de flits.
Dit is vereist voor het gebruik van de bibliotheek van Adafruit MQTT.
const char MQTT_SERVER [PROGMEM] = AIO_SERVER;
Instellen van een unieke MQTT-ID van client met behulp van de AIO-toets + de datum en tijd de schets
werd samengesteld (dus dit uniek zijn in meerdere apparaten voor een gebruiker moet,
Als alternatief kunt u handmatig instellen dit naar een GUID of een andere willekeurige waarde).
const char MQTT_CLIENTID [PROGMEM] = __TIME__ AIO_USERNAME;
const char MQTT_USERNAME [PROGMEM] = AIO_USERNAME;
const char MQTT_PASSWORD [PROGMEM] = AIO_KEY;
De klasse MQTT client setup door passeren in de WiFi-client en de server en login details van de MQTT.
Adafruit_MQTT_Client mqtt (& client, MQTT_SERVER, AIO_SERVERPORT, MQTT_CLIENTID, MQTT_USERNAME, MQTT_PASSWORD);
/****************************** Feeds ***************************************
/ Setup een feed genaamd "licht" voor een abonnement op wijzigingen.
Aankondiging MQTT paden voor AIO volgen het formulier: /feeds/
const char LAMP_FEED [PROGMEM] = AIO_USERNAME "/ feeds/lamp";
Adafruit_MQTT_Subscribe lamp = Adafruit_MQTT_Subscribe (& mqtt, LAMP_FEED);
/*************************** Sketch Code ************************************/
VOID Setup {}
power schakelaar staart pincode instellen als uitgang
pinMode (LAMP, uitvoer);
Serial.begin(115200);
Serial.println (F ("Adafruit IO voorbeeld"));
Verbinden met WiFi-toegangspunt.
Serial.println(); Serial.println();
delay(10);
Serial.Print (F ("verbinden met"));
Serial.println(WLAN_SSID);
WiFi.begin (WLAN_SSID, WLAN_PASS);
terwijl (WiFi.status()! = WL_CONNECTED) {}
delay(500);
Serial.Print(F("."));
}
Serial.println();
Serial.println (F ("WiFi aangesloten"));
Serial.println (F ("IP-adres:"));
Serial.println(WiFi.localIP());
luisteren naar gebeurtenissen op de lamp feed
mqtt.Subscribe(&lamp);
verbinden van adafruit io
Connect();
}
void loop {}
Adafruit_MQTT_Subscribe * abonnement;
ping van adafruit io een paar keer om ervoor te zorgen dat we blijven verbonden
Als (! mqtt.ping(3)) {}
opnieuw verbinding maken met adafruit io
if(! mqtt.Connected())
Connect();
}
Dit is onze 'wachten voor binnenkomende pakketten van het abonnement' drukke subloop
terwijl (abonnement = mqtt.readSubscription(1000)) {}
We hebben alleen de zorg over de gebeurtenissen van de lamp
Als (abonnement == & lamp) {}
mqtt ASCII-nettolading omzetten int
char * waarde = (char *) lamp.lastread;
Serial.Print (F ("ontvangen:"));
Serial.println(Value);
int huidige = atoi(value);
Schrijf de stand naar de power switch staart
digitalWrite (LAMP, huidige == 1? HOOG: LAGE);
}
}
}
verbinden van adafruit io via MQTT
VOID connect() {}
Serial.Print (F ("verbinden met Adafruit IO... "));
int8_t ret;
terwijl ((ret = mqtt.connect())! = 0) {}
schakelaar (ret) {}
geval 1: Serial.println (F ("verkeerde protocol")); breken;
geval 2: Serial.println (F ("ID verworpen")); breken;
Case 3: Serial.println (F ("Server unavail")); breken;
geval 4: Serial.println (F ("slechte user/pass")); breken;
geval 5: Serial.println (F ("niet authed")); breken;
kast 6: Serial.println (F ("Failed abonneren")); breken;
standaard: Serial.println F ("verbinding mislukt"); breken;
}
Als (ret > = 0)
mqtt.Disconnect();
Serial.println (F ("bezig verbinding..."));
delay(5000);
}
Serial.println (F ("Adafruit IO verbonden!"));
}