Interaktiva lampa för din natt tid rutin (2 / 6 steg)
Steg 2: Anslut Huzzah till Adafruit till IFTTT
1. löda Huzzah
https://learn.adafruit.com/adafruit-Huzzah-esp8266...
2. huzzah till Adafruit.io
https://learn.adafruit.com/adafruit-IO-Basics-Digi...
3. installationsprogrammet IFTTT att ansluta till Adafruit.io (se bilden)
Göra ett IFTTT-ID
Skapa ett recept: om Blogger då Adafruit
Infoga den feed som du gjort på Adafruit.io
4. skriva koder (du måste anpassa Wifi och Adafruit information)
/***************************************************
Adafruit MQTT bibliotek ESP8266 exempel
Måste använda ESP8266 Arduino från:
https://github.com/esp8266/Arduino
Fungerar utmärkt med Adafruit's Huzzah ESP styrelse:
---> https://www.adafruit.com/product/2471
Adafruit investerar tid och resurser att tillhandahålla detta öppen källkod,
Vänligen stödja Adafruit och öppen hårdvara genom att köpa
produkter från Adafruit!
Skrivet av Tony DiCola för Adafruit industrier.
Adafruit IO exempel tillägg av Todd Treece.
MIT license, alla texten ovan måste inkluderas i en omfördelning
****************************************************/
#include
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"
funktionen prototyper
void connect(void);
/****************************** Pins ******************************************/
#define lampa 12 / / power switch svans
/************************* WiFi Access Point *********************************/
#define WLAN_SSID "Wifi namn"
#define WLAN_PASS "Wifi lösenord"
/************************* Adafruit.io Setup *********************************/
#define AIO_SERVER "io.adafruit.com"
#define AIO_SERVERPORT 1883
#define AIO_USERNAME "Din Adafruit.io User Name"
#define AIO_KEY "Kopiera nyckeln från Adafruit.io"
/ *** Global stat (du inte behöver ändra på detta!) ***
/ Skapa en ESP8266 WiFiClient klass att ansluta till servern MQTT.
WiFiClient klient;
Lagra MQTT servern, klient-ID, användarnamn och lösenord i flash-minnet.
Detta behövs för att använda Adafruit MQTT biblioteket.
CONST char MQTT_SERVER [] PROGMEM = AIO_SERVER;
Ange ett unikt MQTT klient-ID med hjälp av nyckeln AIO + datum och tid skissen
sammanställdes (så detta bör vara unika över flera enheter för en användare,
Alternativt kan du manuellt ange en GUID eller andra slumpmässiga värde).
CONST char MQTT_CLIENTID [] PROGMEM = __TIME__ AIO_USERNAME;
CONST char MQTT_USERNAME [] PROGMEM = AIO_USERNAME;
CONST char MQTT_PASSWORD [] PROGMEM = AIO_KEY;
Setup klassen MQTT klienten av bortgång i WiFi klienten och MQTT server och logga in detaljer.
Adafruit_MQTT_Client mqtt (& client, MQTT_SERVER, AIO_SERVERPORT, MQTT_CLIENTID, MQTT_USERNAME, MQTT_PASSWORD);
/****************************** Feeds ***************************************
/ Setup ett foder som heter "lampa" för att prenumerera på förändringar.
Meddelande MQTT banor för AIO följa form: /feeds/
CONST char LAMP_FEED [] PROGMEM = AIO_USERNAME "/ feeds/lampa";
Adafruit_MQTT_Subscribe lampa = Adafruit_MQTT_Subscribe (& mqtt, LAMP_FEED);
/*************************** Sketch Code ************************************/
void setup() {
Ange en power switch svans pin
pinMode (lampa, OUTPUT);
Serial.BEGIN(115200);
Serial.println F ("Adafruit IO exempel").
Anslut till WiFi-åtkomstpunkt.
Serial.println(); Serial.println();
Delay(10);
Serial.Print F ("ansluter till").
Serial.println(WLAN_SSID);
WiFi.begin (WLAN_SSID, WLAN_PASS);
medan (WiFi.status()! = WL_CONNECTED) {
Delay(500);
Serial.Print(F("."));
}
Serial.println();
Serial.println F ("WiFi-anslutna").
Serial.println (F ("IP-adress:"));
Serial.println(WiFi.localIP());
lyssna efter händelser på lampan foder
mqtt.subscribe(&LAMP);
ansluta till adafruit io
Connect();
}
void loop() {
Adafruit_MQTT_Subscribe * prenumeration;
ping adafruit io några gånger för att se till att vi vara ansluten
om (! mqtt.ping(3)) {
återansluta till adafruit io
IF(! mqtt.Connected())
Connect();
}
Detta är vår "vänta för inkommande prenumeration paket" upptagen subloop
medan (abonnemang = mqtt.readSubscription(1000)) {
vi bara bryr oss om händelserna lampa
om (prenumeration == & lampa) {
konvertera mqtt ASCII-nyttolasten till int
char * värde = (char *) lamp.lastread;
Serial.Print (F ("fick:"));
Serial.println(Value);
int nuvarande = atoi(value);
Skriv det aktuella tillståndet till power switch svansen
digitalWrite (lampa, nuvarande == 1? HÖG: LÅG);
}
}
}
ansluta till adafruit io via MQTT
void connect() {
Serial.Print (F ("ansluter till Adafruit IO... "));
int8_t ret;
medan ((ret = mqtt.connect())! = 0) {
Växla (ret) {
fall 1: Serial.println F ("fel protocol"). bryta;
fall 2: Serial.println F ("ID förkastade"). bryta;
fall 3: Serial.println (F ("Server unavail")); bryta;
fall 4: Serial.println F ("dåliga användare/passera"). bryta;
fall 5: Serial.println F ("inte authed"). bryta;
mål 6: Serial.println F ("kunde inte prenumerera"). bryta;
standard: Serial.println F ("Anslutning misslyckades"). bryta;
}
om (ret > = 0)
mqtt.Disconnect();
Serial.println F ("Retrying anslutning...").
Delay(5000);
}
Serial.println (F ("Adafruit IO ansluten!"));
}