L'Internet des objets (IoT) offre un immense potentiel pour les projets de bricolage. Avec quelques composants abordables et des bases en électronique, vous pouvez assembler un réseau d'appareils intelligents.
Parfois, la simplicité prime : un simple bouton déclenchant une action unique, comme le regretté Amazon Dash pour les commandes rapides. Aujourd'hui, réalisons un bouton Wi-Fi avec une carte NodeMCU (basée sur ESP8266), programmé pour interagir avec IFTTT et exécuter n'importe quelle tâche ! Instructions détaillées ci-dessous, vidéo en option.

Vous aurez besoin de :
Hormis la NodeMCU, ces pièces se trouvent dans tout kit Arduino débutant. Ce tutoriel inclut la LED et la résistance, mais elles sont facultatives.
Le câblage est simple. Suivez ce schéma :

Fil violet : broche D0 à un côté du bouton.
Fil vert : autre côté du bouton à RST.
Fil bleu : D1 vers résistance et anode LED.
Cathode LED vers GND.
Votre breadboard devrait ressembler à ceci :

Pour les connexions courtes sur breadboard, consultez notre guide rapide. Vérifiez tout, branchez la NodeMCU via USB.
Ajoutez le support NodeMCU via Fichier > Préférences (URL des boards ESP8266).

Détails dans notre intro NodeMCU.
Installez deux bibliothèques via Sketch > Inclure bibliothèque > Gérer les bibliothèques :
- ESP8266WiFi d'Ivan Grokhotkov (connexions Wi-Fi).

- IFTTTWebhook de John Romkey (webhooks IFTTT).
Prêt à coder !
ESP8266WiFi gère la connexion Wi-Fi. IFTTTWebhook envoie un webhook (ex. : tweet). Deep sleep économise l'énergie. Appui sur bouton relie D0-RST pour reset.
Code simple pour débutants (voir notre guide Arduino). Code complet sur Pastebin ; ajoutez vos identifiants Wi-Fi/IFTTT.
Test simple. Nouvelle esquisse :
#include <ESP8266WiFi.h>
#define ledPin 5 // D1
#define wakePin 16 // D0
#define ssid "VOTRE_WIFI_SSID"
#define password "VOTRE_WIFI_PASSWORD"
#define IFTTT_API_KEY "VOTRE_CLE_IFTTT"
#define IFTTT_EVENT_NAME "VOTRE_EVENT_NAME"Brochage NodeMCU vs Arduino :

Fonction setup() :
void setup() {
Serial.begin(115200);
while (!Serial) {}
Serial.println(" ");
Serial.println("Bouton enfoncé");
Serial.println(" ");
ESP.deepSleep(0, WAKE_RF_DEFAULT); // Attente reset via RST
}Loop() vide pour test :
void loop() {
// Ne s'exécute jamais si deep sleep OK
Serial.println("Ceci ne devrait pas s'afficher");
}Upload, moniteur série (115200 bauds) : "Bouton enfoncé" à chaque appui. Succès !

Caractères bizarres ? Vérifiez baudrate (115200). Testez d'autres si besoin ; courant sur ESP8266.
Fonction connectToWifi() :
void connectToWifi() {
Serial.print("Connexion à : ");
WiFi.begin(ssid, password);
Serial.println(" ");
Serial.print("Tentative : ");
int i = 10;
while (WiFi.status() != WL_CONNECTED && i >= 0) {
delay(1000);
Serial.print(i);
Serial.print(", ");
i--;
}
Serial.println(" ");
if (WiFi.status() == WL_CONNECTED) {
Serial.println("Connecté ! IP : ");
Serial.println(WiFi.localIP());
} else {
Serial.println("Échec - vérifiez identifiants");
}
}Ajoutez connectToWifi(); dans setup() après message bouton.

Remplacez ssid/password. Upload : connexion tentée à chaque reset.
IFTTT intègre services web (ex. : tweet sur appui). Créez applet : +this > Webhooks > Receive a web request (nom event simple).

+that > Twitter > Post a tweet.

Clé API : Mes applets > Services > Webhooks > Documentation.
Ajoutez dans code. Après connectToWifi() :
#include <IFTTTWebhook.h>
IFTTTWebhook hook(IFTTT_API_KEY, IFTTT_EVENT_NAME);
hook.trigger();
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, HIGH);
delay(200);
digitalWrite(ledPin, LOW);Upload : tweet à chaque appui !

Problèmes ? Vérifiez code/credentials.
Batterie pour mobilité, boîtier 3D. Optimisez énergie (tips Arduino). Idéal pour domotique via IFTTT.
Crédit image : Vadmary/Depositphotos
[]