Rencontrez le tueur Arduino ESP8266
Le Wi-Fi est un élément essentiel du kit pour tous les projets de bricolage d'Internet of Things (IoT), mais notre Arduino préféré ne vient pas avec le Wi-Fi, et l'ajout d'un bouclier Wi-Fi peut amener le coût total à environ 40 $. Et si je vous disais qu'il existe un tableau de développement compatible Arduino avec Wi-Fi intégré pour moins de 10 $? Eh bien, il y a.
Rencontrez le tueur Arduino: ESP8266. Ce n'était qu'une question de temps avant que la couronne ne soit volée à la tête brillante de notre cher conseil de développement Arduino. Est-il possible de tomber amoureux d'un circuit imprimé?
Mis à part les noms accrocheurs, l'ESP8266 (également connu sous le nom de NodeMCU) a été commercialisé à l'origine en tant qu'add-on Wi-Fi à faible coût pour les cartes Arduino, jusqu'à ce que la communauté des hackers se rende compte que vous pouvez supprimer complètement l'Arduino..
En moins d'un an, la popularité de l'ESP8266 a grimpé en flèche et son support et son développement sont à présent si bien développés que vous devez prendre des mesures, si vous utilisez actuellement Arduino. Achetez-en un maintenant, puis suivez ce guide pour commencer à programmer votre ESP8266 - le tout à partir de l'IDE Arduino bien connu.
Bien sûr, vous n'êtes pas limité à utiliser l'IDE Arduino - ils sont également compatibles avec Lua (qui ressemble à un Python allégé à mes yeux de novice), mais puisque nous abordons cette question du point de vue de ceux qui ont appris sur Arduino, c'est ce que nous allons couvrir exclusivement aujourd'hui.
Il existe de nombreux modèles d'ESP8266 actuellement, mais je vais aller de l'avant et recommander celui-ci: ESP-12E (également connu sous le nom de NodeMCU 1.0 ou son plus récent frère NodeMCU 2.0).
C'est un peu plus cher que les autres (6,50 $ contre 4!), Mais il inclut le pilote série nécessaire à la programmation de la puce, un régulateur de puissance intégré ainsi que de nombreuses broches d'entrée / sortie. Il est largement pris en charge et n'a besoin de rien, sauf d'une connexion USB pour la programmation ou l'alimentation, il est donc le plus simple à utiliser. Si vous achetez un autre type de carte ESP8266, vous aurez peut-être besoin d'un régulateur de puissance 3.3v séparé et d'une connexion FTDI appropriée pour la programmation..
Premiers pas avec ESP8266-12E et Arduino
Commencez par installer les pilotes série pour cette carte. Vous devrez peut-être désactiver la signature KEXT si vous utilisez El Capitan en raison de nouveaux systèmes de sécurité..
Ensuite, nous devons activer le support de l'ESP8266 à partir du gestionnaire de cartes de l'IDE Arduino. Ouvrez les préférences et entrez l'URL suivante où il est indiqué URL supplémentaires de Board Manager:
Hit OK, puis ouvrez le Responsable des conseils de Outils -> Conseil menu, recherchez esp8266 et installez la plate-forme. Vous devriez maintenant voir un choix pour NodeMCU 1.0.
Laissez le processeur et la vitesse de téléchargement tels quels, puis sélectionnez le port série que vous venez d’installer. Sur Mac, cela apparaît comme cu.SLAB_USBtoUART.
En guise de premier programme, je suggérerais le scanner Wi-Fi simple - trouvez-le sur Fichier -> Exemples -> ESP8266WiFi -> WifiScan. Notez qu'il est assez lent à télécharger, mais finalement, il sera dit “terminé le téléchargement” et à ce stade (pas avant, ou vous interromprez le processus de téléchargement), vous pouvez ouvrir le moniteur Série. Vous devriez voir quelque chose de semblable à ceci:
Succès! Maintenant, essayons de vous connecter à un.
Voici un code barebone absolument simple pour la connexion à un réseau Wi-Fi. Cela ne fait rien d’autre que simplement vous connecter, mais c’est quelque chose que vous pouvez ajouter trop tard. Rappelez-vous simplement de changer les options YOUR_SSID et YOUR_PASSWORD en fonction de vos détails Wi-Fi. Téléchargez, ouvrez la console série et vous devriez voir la connexion.
#include const char * ssid = "YOUR_SSID"; const char * password = "YOUR_PASSWORD"; WiFiClient wifiClient; void setup () Serial.begin (115200); Serial.print ("Connexion à"); Serial.println (ssid); WiFi.begin (ssid, mot de passe); while (WiFi.status ()! = WL_CONNECTED) delay (500); Serial.print ("."); Serial.println (""); Serial.println ("WiFi connected"); Serial.println ("adresse IP:"); Serial.println (WiFi.localIP ()); void loop ()
N'est-ce pas formidable de voir à quel point cela était ridiculement simple??
Avant de poursuivre, voici le schéma de brochage - il pourrait être utile plus tard. Notez que les numéros de broches référencés dans le code sont les numéros GPIO, et non le D0-16 probablement écrit sur le circuit imprimé de votre carte. Si vous ne pouvez absolument pas comprendre pourquoi un capteur ne fonctionne pas, vous avez probablement mélangé les numéros de broche.
Capteur rapide Smart Home avec MQTT et DHT11
Voici un exemple pratique que vous pouvez immédiatement utiliser pour surveiller votre maison. Nous ajouterons un capteur de température et d'humidité DHT11, puis communiquerons les valeurs à l'aide du protocole MQTT sur le réseau Wi-Fi, dans mon cas, à un système domotique OpenHAB DIY (sinon, vous voudrez peut-être lire notre guide du débutant pour Mise en route d'OpenHAB sur un Raspberry Pi Mise en route d'OpenHAB Home Automation sur Raspberry Pi Mise en route d'OpenHAB Home Automation sur Raspberry Pi OpenHAB est une plate-forme de domotique open source mature qui s'exécute sur divers matériels et dont le protocole est indépendant du protocole. En savoir plus, et la partie 2, qui traite spécifiquement de l’installation d’un serveur MQTT. Guide du débutant OpenHAB, partie 2: ZWave, MQTT, Règles et affichage du guide du débutant OpenHAB, partie 2: ZWave, MQTT, Rules and Charting OpenHAB, le logiciel de domotique open source, dépasse de loin les capacités des autres systèmes de domotique du marché, mais sa configuration est difficile. agir, cela peut être carrément frustrant. Lire la suite ).
Côté câblage, connectez le capteur DHT à GND, 3.3v, et ~ D4 (ou GPIO 2). C'est tout ce dont nous avons besoin pour l'instant.
Téléchargez ces bibliothèques MQTT et DHT. Même si vous les avez déjà, Téléchargez-les quand même, sauvegardez ce que vous avez et écrasez-les. La dernière bibliothèque DHT11 d'Adafruit utilise un algorithme automatique pour déterminer la vitesse à laquelle les données sont lues à partir du capteur. Toutefois, il y a un problème avec l'ESP8266 et, dans 90% des cas, des lectures manquantes ont échoué..
Avec l'ancienne version 1.0 de la bibliothèque que j'ai incluse dans le téléchargement, vous pouvez modifier manuellement le minutage: 11 fonctionnent mieux pour ces cartes ESP2866. J'ai également parcouru de nombreux exemplaires de la bibliothèque MQTT pour en trouver un bon. rappeler fonction, atterrissant enfin sur celle incluse. Vous aurez besoin de redémarrer l'IDE Arduino après avoir remplacé ces.
Voici le code complet du projet. En haut, vous trouverez toutes les variables que vous devez modifier, y compris les détails Wi-Fi, le serveur MQTT (une URL peut être utilisée à la place si vous utilisez un serveur cloud, bien qu'aucune authentification ne soit en place), et les canaux sur lesquels vous souhaitez publier des données..
Voici comment cela fonctionne et quelques notes:
- Nous nous connectons d’abord au Wi-Fi, puis au serveur MQTT, puis commençons le boucle().
- Dans la boucle, nous interrogeons le capteur DHT toutes les 60 secondes et publions les lectures sur les canaux MQTT appropriés. Encore une fois, si vous trouvez que la plupart des résultats donnent un message d'échec, vous avez la mauvaise version de la bibliothèque DHT - rétrograder à la v1.0.
- client.loop () passe le contrôle à la bibliothèque MQTT, lui permettant de réagir aux messages entrants.
- Il y a un message reçu() fonction où nous traitons les messages entrants - il suffit de faire une simple instruction if pour comparer la charge utile avec le message que vous attendez. Vous pouvez utiliser ceci pour activer un relais, par exemple.
- Après avoir exécuté ces logiciels pendant quelques jours, j’ai découvert qu’ils cesseraient de fonctionner de manière aléatoire. Je suppose que c’est une sorte de fuite de mémoire, mais étant donné que je n’ai pas les compétences de programmation nécessaires pour y faire face, c’est peut-être avec les bibliothèques principales. 'ai opté pour une réinitialisation logicielle simple chaque jour. Exactement un jour après que les nœuds de capteurs ont été activés pour la première fois, ils redémarrent.
- Lorsque vous alimentez ces modules DHT11 bon marché à partir de 3,3 v, les valeurs d'humidité sont bien inférieures à ce qu'elles devraient être. J'ai résolu ce problème avec une simple multiplication et étalonné par rapport à un capteur commercial. Je vous conseillerais également de vérifier auprès de votre propre source connue avant de vous fier aux lectures. Sinon, alimentez-les avec 5V - mais vous devez placer un décaleur de niveau logique 5v-3.3v entre la broche de données et l'ESP8266, sinon vous risqueriez de l'endommager.
Si tout s'est bien passé, vous devriez maintenant recevoir les lectures de capteurs dans votre courtier MQTT et les connecter à OpenHAB comme indiqué dans la partie 2 de notre guide du débutant OpenHAB Beginner's Guide (Partie 2: ZWave, MQTT, Règles et création de graphiques OpenHAB Beginner's Guide). Guide Partie 2: ZWave, MQTT, Règles et Graphiques OpenHAB, le logiciel de domotique open source, dépasse de loin les capacités des autres systèmes de domotique du marché, mais il n’est pas facile de le configurer. En fait, cela peut être franchement frustrant. Lire la suite, où je vous ai également montré comment représenter graphiquement les données.
Adieu Arduino, nous t'aimions tellement. Je rigole: pas partout dans ma maison peut même avoir le Wi-Fi, donc pour ces endroits, j'ai encore besoin d'un réseau maillé avec Arduino et récepteurs RF.
Pour un projet amusant, découvrez comment créer un bouton Wi-Fi avec l'ESP8266 Comment créer votre propre bouton connecté Wi-Fi avec ESP8266 Comment créer votre propre bouton Wi-Fi connecté avec ESP8266 Dans ce didacticiel, vous allez apprendre comment créer un bouton compatible Wi-Fi à l'aide de NodeMCU et IFTTT. Lire la suite .
Mais que ferez-vous avec ESP8266? Des projets utilisant ESP8266 que vous voudriez voir rédigés sur MakeUseOf? Faites le nous savoir dans les commentaires!
Explorer plus sur: Arduino, Electronique, Internet des objets, Capteur intelligent.