Comment créer votre propre bouton connecté au Wi-Fi avec ESP8266

Comment créer votre propre bouton connecté au Wi-Fi avec ESP8266

L'Internet des objets a un vaste potentiel de bricolage. Avec suffisamment de savoir-faire et quelques composants bon marché, vous pourriez construire un système complexe d'appareils connectés.





Parfois, cependant, vous voulez quelque chose de simple. Pas de cloches ni de sifflets, juste un bouton qui exécute une seule tâche. Vous connaissez peut-être déjà quelque chose comme ça si vous avez déjà utilisé un bouton Amazon Dash pour réorganiser des articles ménagers de tous les jours.





Aujourd'hui, nous allons créer un bouton compatible Wi-Fi à l'aide d'un NodeMCU et le programmer pour qu'il utilise IFTTT pour faire… eh bien, n'importe quoi ! Instructions écrites à la suite de la vidéo, si vous préférez.





Ce dont vous aurez besoin

Tu auras besoin de:

  • 1 x carte NodeMCU (ESP8266), disponible pour -3 sur AliExpress
  • 1 x bouton poussoir
  • 1 x LED (facultatif)
  • 1 résistance de 220 Ohm (en option)
  • Planche à pain et fils de raccordement
  • Micro USB pour la programmation
  • Ordinateur avec l'IDE Arduino installé

En dehors du NodeMCU, vous devriez pouvoir trouver la plupart de ces pièces dans n'importe quel kit de démarrage Arduino. Ce tutoriel supposera que vous utilisez la LED et la résistance en option, mais elles ne sont pas essentielles.



Étape 1 : Configuration du circuit

La configuration matérielle est très simple pour ce projet. Installez votre planche selon ce schéma.

Le fil violet s'attache broche D0 d'un côté du bouton. Le fil vert relie l'autre côté du bouton au Broche RST . Le fil bleu part de broche D1 à la résistance et à la LED. La patte négative de la LED se fixe au Broche GND du NodeMCU.





Lorsque la maquette est configurée, elle devrait ressembler à ceci :

comment avoir google sur roku

Si vous vous demandez comment j'ai réussi à connecter ma LED à la broche de terre en utilisant uniquement ces petits bouts de câble, notre rapide cours accéléré de planche à pain devrait aider à l'éclaircir ! Vérifiez votre configuration et connectez votre NodeMCU à l'ordinateur via USB.





Étape 2 : Configuration de l'IDE

Avant de commencer le codage, vous devez faire quelques préparatifs. Si vous ne l'avez pas déjà fait, configurez l'IDE Arduino pour reconnaître votre carte NodeMCU. Vous pouvez l'ajouter à votre liste de tableaux via Fichier > Préférences .

Vous pouvez trouver une explication plus détaillée de cette étape dans notre article d'introduction NodeMCU.

Deux bibliothèques sont nécessaires pour ce projet. Aller vers Esquisse > Inclure la bibliothèque > Gérer les bibliothèques . Rechercher ESP8266WIFI par Ivan Grokhotkov et installez-le. Cette bibliothèque est écrite pour établir des connexions Wi-Fi avec la carte NodeMCU.

Recherche suivante du IFTTTWebhook par John Romkey et installez la dernière version. Cette bibliothèque est conçue pour simplifier le processus d'envoi de webhooks à IFTTT.

C'est toute la préparation dont nous avons besoin, codez !

Comment le code fonctionnera-t-il

Nous utiliserons le ESP8266WIFI bibliothèque pour établir une connexion Wi-Fi. Les IFTTTWebhooks La bibliothèque fait une demande à IFTTT --- dans ce cas, pour publier sur Twitter. Ensuite, demandez à la carte NodeMCU de se mettre en veille lorsqu'elle n'est pas utilisée pour économiser de l'énergie.

Lorsque le bouton est enfoncé, il liera le J0 et TVD épingles. Cela réinitialise la carte et le processus se reproduit.

La plupart du code de ce tutoriel est assez simple pour les débutants. Cela dit, si vous débutez, vous comprendrez beaucoup plus facilement après avoir suivi notre Guide du débutant Arduino .

Ce tutoriel passe en revue le code en morceaux pour aider à la compréhension. Si vous voulez vous lancer directement dans les affaires, vous pouvez trouver le code complet chez Pastebin . Notez que vous devrez toujours renseigner vos identifiants Wi-Fi et IFTTT dans ce code pour qu'il fonctionne !

Étape 3 : Tester le sommeil profond

Pour commencer, nous allons créer un test simple pour montrer comment fonctionne le sommeil profond. Ouvrez une nouvelle esquisse dans l'IDE Arduino. Entrez les deux morceaux de code suivants.

#include
#include
#define ledPin 5
#define wakePin 16
#define ssid 'YOUR_WIFI_SSID'
#define password 'YOUR_WIFI_PASSWORD'
#define IFTTT_API_KEY 'IFTTT_KEY_GOES_HERE'
#define IFTTT_EVENT_NAME 'IFTTT_EVENT_NAME_HERE'

Ici, nous incluons nos bibliothèques, ainsi que la définition de quelques variables dont nous aurons besoin dans notre esquisse. Vous remarquerez que le ledPin et le wakePin sont numérotés différemment ici par rapport au diagramme de Fritzing ci-dessus. Le NodeMCU a un brochage différent des cartes Arduino. Ce n'est pas un problème cependant, grâce à ce schéma pratique :

Créez maintenant une fonction de configuration :

void setup() {
Serial.begin(115200);
while(!Serial) {
}
Serial.println(' ');// print an empty line before and after Button Press
Serial.println('Button Pressed');
Serial.println(' ');// print an empty line
ESP.deepSleep(wakePin);
}

Ici, nous configurons notre port série et utilisons une boucle while pour attendre qu'il commence. Étant donné que ce code se déclenchera après avoir appuyé sur le bouton de réinitialisation, nous imprimons « Bouton enfoncé » au moniteur série. Ensuite, nous disons au NodeMCU de se mettre en veille prolongée jusqu'à ce que le bouton connectant le wakePin à la TVD la goupille est enfoncée.

Enfin, pour tester, ajoutez ceci à votre boucle() méthode:

void loop(){
//if deep sleep is working, this code will never run.
Serial.println('This shouldn't get printed');
}

Habituellement, les esquisses Arduino exécutent la fonction de boucle en continu après la configuration. Puisque nous envoyons la carte en veille avant la fin de la configuration, la boucle ne s'exécute jamais.

Enregistrez votre croquis et téléchargez-le sur le tableau. Ouvrez le moniteur série et vous devriez voir 'Bouton enfoncé.' Chaque fois que le bouton se déclenche, la carte se réinitialise et le message s'imprime à nouveau. Ça marche!

Une note sur le moniteur série

Vous avez peut-être remarqué des caractères absurdes dans le moniteur série lors de certains de vos projets. Cela est généralement dû au fait que le moniteur série n'est pas réglé sur le même débit en bauds que le Serial.begin(XXXX) taux.

De nombreux guides suggèrent de démarrer la connexion série à un débit en bauds de 115 200 pour un projet comme celui-ci. J'ai essayé de nombreuses combinaisons, et elles avaient toutes des degrés variables de charabia avant et après les messages en série. Selon divers messages du forum, cela pourrait être dû à un problème de compatibilité de carte ou de logiciel défectueux. Comme cela n'affecte pas trop le projet, je choisis de prétendre que cela ne se produit pas.

comment télécharger une vidéo de haute qualité sur facebook

Si vous rencontrez des problèmes avec le moniteur série, essayez différents débits en bauds et voyez celui qui vous convient le mieux.

Étape 4 : connexion au Wi-Fi

Créez maintenant une fonction pour vous connecter à votre réseau Wi-Fi.

void connectToWifi() {
Serial.print('Connecting to: SSID NAME'); //uncomment next line to show SSID name
//Serial.print(ssid);
WiFi.begin(ssid, password);
Serial.println(' ');// print an empty line
Serial.print('Attempting to connect: ');
//try to connect for 10 seconds
int i = 10;
while(WiFi.status() != WL_CONNECTED && i >=0) {
delay(1000);
Serial.print(i);
Serial.print(', ');
i--;
}
Serial.println(' ');// print an empty line
//print connection result
if(WiFi.status() == WL_CONNECTED){
Serial.print('Connected.');
Serial.println(' ');// print an empty line
Serial.print('NodeMCU ip address: ');
Serial.println(WiFi.localIP());
}
else {
Serial.println('Connection failed - check your credentials or connection');
}
}

Cette méthode tente de se connecter à votre réseau dix fois avec une seconde entre les deux. La réussite ou l'échec de la connexion s'imprime sur le moniteur série.

Étape 5 : Appel de la méthode de connexion

En ce moment, le connecterAuWifi() n'est jamais appelé. Ajoutez un appel à votre fonction de configuration entre le message « Bouton enfoncé » et l'envoi de la carte en veille.

connectToWifi();

Au cas où vous vous demanderiez où cela correspond, cela devrait ressembler à ceci :

En haut de l'esquisse, remplacez le ssid et le mot de passe variables avec vos identifiants Wi-Fi. Enregistrez votre croquis et téléchargez-le sur le tableau.

Désormais, lorsque la carte démarrera, elle tentera de se connecter à votre réseau Wi-Fi, avant de revenir à la fonction de configuration. Maintenant, configurons l'intégration IFTTT.

Étape 6 : Configuration de l'intégration IFTTT

IFTTT permet l'intégration avec une vaste gamme de services Web. Nous l'avons utilisé dans notre didacticiel Wi-Fi PC tower LED pour envoyer une alerte chaque fois qu'un nouvel e-mail est reçu. Aujourd'hui, nous allons l'utiliser pour envoyer un tweet en appuyant sur un bouton.

Naviguez vers le Mes applets page et sélectionnez Nouvelle applet

Cliquer sur +ceci et connectez-vous à Webhooks . Sélectionner 'Recevoir une demande Web' et nommez votre événement. Rester simple ! Notez le nom de l'événement, vous devrez l'ajouter à votre code NodeMCU plus tard. Cliquez sur « Créer un déclencheur » .

Maintenant, sélectionnez + que . Rechercher le Twitter service et vous y connecter --- vous devrez l'autoriser à publier sur votre compte Twitter. Sélectionner 'Publier un tweet' et choisissez votre message.

L'écran suivant vous demandera de revoir l'applet. Cliquez sur Terminer. C'est ça!

Étape 7: Ajout des informations d'identification IFTTT au code

De retour dans l'IDE Arduino, vous devrez ajouter votre clé API IFTTT et le nom de l'événement à vos variables définies. Pour trouver la clé API, accédez à Mes applets et sélectionnez Webhooks sous le Prestations de service languette. Sélectionner Documentation pour accéder à votre clé.

Copiez la clé et le nom de l'événement dans votre code, en remplaçant les noms temporaires définis pour eux.

#define IFTTT_API_KEY 'IFTTT_KEY_GOES_HERE'
#define IFTTT_EVENT_NAME 'IFTTT_EVENT_NAME_HERE'

Notez que les guillemets doivent rester, ne remplacez que le texte.

Entre appeler le connecterAuWifi() et en mettant la carte en veille, créez une instance de l'objet de bibliothèque IFTTTWebhook. La LED signale l'achèvement de la tâche avant que le sommeil profond ne recommence.

transférer des contacts d'iphone vers android
//just connected to Wi-Fi
IFTTTWebhook hook(IFTTT_API_KEY, IFTTT_EVENT_NAME);
hook.trigger();
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, HIGH);
delay(200);
digitalWrite(ledPin, LOW);
//now sending board to sleep

Déclencheur d'appel sur le accrocher L'objet déclenche l'applet IFTTT et devrait être publié sur votre compte Twitter. Enregistrez votre croquis et téléchargez-le. Vous devriez maintenant avoir un bouton de tweet entièrement fonctionnel.

Si cela ne semble pas fonctionner, vérifiez soigneusement votre code et vos informations d'identification pour détecter les erreurs. Si vous êtes vraiment bloqué, récupérez le code complet ci-dessus et comparez-le au vôtre.

Terminé! Comment pourriez-vous l'améliorer davantage ?

Il s'agit d'une version de base d'un bouton Wi-Fi, mais il existe de nombreuses façons de l'améliorer. Pour plus de simplicité, la connexion USB est utilisée pour l'alimentation ici. Une batterie le rendrait entièrement mobile, et un boîtier contenant le circuit serait le parfait projet d'impression 3D pour débutant.

Malgré l'utilisation du sommeil profond, vous constaterez peut-être qu'une batterie s'épuisera assez rapidement. Il y a beaucoup de Conseils d'économie d'énergie Arduino qui aident dans ce type de projets. Bien que plus difficile que ce didacticiel, si vous fabriquiez votre propre Arduino économe en énergie à partir de zéro, un bouton Wi-Fi alimenté par batterie pourrait durer des mois !

Ce projet serait parfait pour une télécommande pour les applications de maison intelligente. Il existe déjà une quantité considérable de applets domotiques disponible sur IFTTT. Une fois que vous avez acquis les bases, vous pouvez utiliser presque n'importe quel capteur ou commutateur pour déclencher pratiquement n'importe quel service que vous pouvez imaginer.

Crédit d'image : Vadmary/ Depositphotos

Partager Partager Tweeter E-mail 6 alternatives audibles : les meilleures applications de livres audio gratuites ou bon marché

Si vous n'avez pas envie de payer pour des livres audio, voici quelques excellentes applications qui vous permettent de les écouter gratuitement et légalement.

Lire la suite
Rubriques connexes
  • DIY
  • Arduino
  • Tutoriels de projets de bricolage
A propos de l'auteur Ian Buckley(216 articles publiés)

Ian Buckley est un journaliste indépendant, musicien, interprète et producteur vidéo vivant à Berlin, en Allemagne. Quand il n'écrit pas ou sur scène, il bricole de l'électronique ou du code DIY dans l'espoir de devenir un savant fou.

Plus de Ian Buckley

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner
Catégorie Diy