Etape 2: Connectez Huzzah au Adafruit à IFTTT
1. souder le Huzzah
https://Learn.Adafruit.com/Adafruit-Huzzah-esp8266...
2. huzzah à Adafruit.io
https://Learn.Adafruit.com/Adafruit-IO-Basics-Digi...
3. le programme d’installation IFTTT pour se connecter à Adafruit.io (voir photo)
Faire un ID IFTTT
Créer une recette : si Blogger puis Adafruit
Insérer le flux que vous avez fait à l’Adafruit.io
4. écriture codes (vous devez personnaliser les informations Wifi et Adafruit)
/***************************************************
Adafruit MQTT bibliothèque ESP8266 exemple
Devez utiliser Arduino ESP8266 de :
https://github.com/esp8266/Arduino
Fonctionne très bien avec le Conseil d’administration de Adafruit Huzzah ESP :
---> https://www.adafruit.com/product/2471
Adafruit investit temps et ressources fournissant ce code source ouvert,
Merci de soutenir Adafruit et open source hardware en achetant
produits de Adafruit !
Écrit par Tony DiCola Adafruit industries.
Adafruit IO exemple ajouts par Todd Treece.
Licence MIT, tout le texte qui précède doit être incluse dans toute redistribution
****************************************************/
#include
#include « Adafruit_MQTT.h »
#include « Adafruit_MQTT_Client.h »
prototypes de fonction
void connect(void) ;
/****************************** Pins ******************************************/
#define lampe 12 / / queue de l’interrupteur d’alimentation
/************************* WiFi Access Point *********************************/
#define WLAN_SSID « Nom du Wifi »
#define WLAN_PASS « Mots de passe Wifi »
/************************* Adafruit.io Setup *********************************/
#define AIO_SERVER « io.adafruit.com »
#define AIO_SERVERPORT 1883
#define AIO_USERNAME « Votre nom d’utilisateur Adafruit.io »
#define AIO_KEY « Copier la clé de Adafruit.io »
/ *** État Global (vous n’avez pas besoin de changer cela!) ***
/ Créer une classe de ESP8266 WiFiClient de se connecter au serveur MQTT.
WiFiClient client ;
Stocker le serveur MQTT, ID client, username et mot de passe dans la mémoire flash.
Ceci est requis pour utiliser la bibliothèque Adafruit MQTT.
const char MQTT_SERVER [] PROGMEM = AIO_SERVER ;
Définir un ID de client MQTT unique à l’aide de la clé de l’AIO + la date et l’heure de l’esquisse
a été compilé (donc cela devrait être unique avec plusieurs périphériques pour un utilisateur,
vous pouvez également affecter manuellement cela à un GUID ou une autre valeur aléatoire).
const char MQTT_CLIENTID [] PROGMEM = __TIME__ AIO_USERNAME ;
const char MQTT_USERNAME [] PROGMEM = AIO_USERNAME ;
const char MQTT_PASSWORD [] PROGMEM = AIO_KEY ;
Configurer la classe de client MQTT en passant dans le client WiFi et les détails de connexion et de serveur MQTT.
Adafruit_MQTT_Client mqtt (& client, MQTT_SERVER, AIO_SERVERPORT, MQTT_CLIENTID, MQTT_USERNAME, MQTT_PASSWORD) ;
/****************************** Feeds ***************************************
/ Un flux appelé « lampe » pour s’abonner aux changements de configuration.
Avis MQTT chemins pour AIO suivent la forme : /feeds/
const char LAMP_FEED [] PROGMEM = AIO_USERNAME "/ RSS/lampe" ;
Lampe Adafruit_MQTT_Subscribe = Adafruit_MQTT_Subscribe (& mqtt, LAMP_FEED) ;
/*************************** Sketch Code ************************************/
void setup() {}
définir la broche d’alimentation commutateur queue comme sortie
pinMode (lampe, sortie) ;
Serial.Begin(115200) ;
Serial.println (F ("Adafruit IO Example")) ;
Se connecter au point d’accès WiFi.
Serial.println() ; Serial.println() ;
Delay(10) ;
Serial.Print (F ("connexion")) ;
Serial.println(WLAN_SSID) ;
WiFi.begin (WLAN_SSID, WLAN_PASS) ;
tandis que (WiFi.status()! = WL_CONNECTED) {}
Delay(500) ;
Serial.Print(F(".")) ;
}
Serial.println() ;
Serial.println (F (« WiFi connecté")) ;
Serial.println (F ("adresse IP:")) ;
Serial.println(WiFi.localIP()) ;
l’écoute des événements sur l’alimentation du feu
MQTT.Subscribe(&LAMP) ;
se connecter à adafruit io
Connect() ;
}
void loop() {}
Adafruit_MQTT_Subscribe * abonnement ;
ping adafruit io à quelques reprises pour s’assurer que nous restons connectés
Si (! mqtt.ping(3)) {}
se reconnecter à adafruit io
if(! MQTT.Connected())
Connect() ;
}
Il s’agit de notre subloop occupé à « attendre les paquets entrants d’abonnement »
tandis que (abonnement = {mqtt.readSubscription(1000))}
Nous nous préoccupons seulement les événements de la lampe
Si (abonnement == & lampe) {}
convertir int payload ascii mqtt
char * valeur = (char *) lamp.lastread ;
Serial.Print (F ("reçu:")) ;
Serial.println(value) ;
cours int = atoi(value) ;
écrire l’état actuel de la queue de commutateur de puissance
digitalWrite (lampe, courant == 1 ? HAUT : BAS) ;
}
}
}
se connecter à adafruit io via MQTT
connect() Sub {}
Serial.Print (F (« Connecting to Adafruit IO... "));
int8_t ret ;
tandis que ((ret = mqtt.connect())! = 0) {}
commutateur (ret) {}
cas 1: Serial.println (F (« protocole incorrect")) ; rupture ;
cas 2: Serial.println (F ("ID rejetée")) ; rupture ;
case 3: Serial.println (F (« non de serveur")) ; rupture ;
case 4: Serial.println (F ("Bad user/pass")) ; rupture ;
cas 5: Serial.println (F (« pas authed")) ; rupture ;
case 6: Serial.println (F ("Impossible de s’abonner")) ; rupture ;
par défaut : Serial.println (F ("connexion a échoué")) ; rupture ;
}
Si (ret > = 0)
MQTT.Disconnect() ;
Serial.println (F ("nouvelle tentative connexion...")) ;
Delay(5000) ;
}
Serial.println (F ("Adafruit IO connecté!")) ;
}