Connectez votre ESP8266 à n'importe quel réseau Wi-Fi disponible
L' ESP8266 est un microcontrôleur développé par Espressif Systems . Connu sous le nom de module WiFi , ce microcontrôleur peut être utilisé pour effectuer diverses activités liées au WiFi, avec des applications en domotique et au-delà. En termes de prix et de fonctionnalités, il existe de nombreux types de modules ESP8266 disponibles, mais tous sont incroyablement utiles dans le IoT .
Quelle que soit l' IoT que vous avez développée, il existe deux manières de connecter votre ESP8266 au cloud. Tout d'abord, vous pouvez saisir vos informations d'identification WiFi dans le micrologiciel de l'ESP8266 pour établir la connexion requise et commencer à envoyer des données. Une deuxième façon – que nous aborderons étape par étape ci-dessous – consiste à intégrer votre propre point d'accès dans la carte, créant ainsi un micrologiciel universel qui établira une connexion à n'importe quel réseau disponible en appuyant simplement sur un bouton.
Exigences
- Module ESP8266
- Arduino IDE 1.8.2 ou supérieur
- Bibliothèque ConfigManager
- Bibliothèque PubSubClient
- Compte Ubidots
Étape 1. Configuration matérielle
Remarque : L' Ubidots a apporté quelques modifications dans la bibliothèque ConfigManager pour implémenter une routine qui lance le mode AP en appuyant simplement sur un de réinitialisation .
En fonction du module ESP8266 que vous choisissez, vous devrez peut-être attribuer la broche de réinitialisation à l'aide de cette version de la bibliothèque . Les paramètres par défaut des boutons sont attribués au code PIN 5 ; si vous utilisez un NodeMCU , vous devez connecter le bouton à la D1 .
Étape 2. Configurez l'IDE Arduino avec votre appareil
Avant d'utiliser un ESP8266 , vous devrez installer les cartes dans l'IDE Arduino. Suivez les étapes ci-dessous pour compiler le tableau.
Si vous ne l'avez pas déjà fait, commencez par télécharger l' IDE Arduino .
- Ouvrez l'IDE Arduino. Sélectionnez Fichiers -> Préférences et entrez l'URL sous le URL supplémentaires du gestionnaire de cartes . Vous pouvez ajouter plusieurs URL en les séparant par des virgules.
http://arduino.esp8266.com/stable/package_esp8266com_index.json
REMARQUE : si vous êtes un utilisateur Mac , Arduino et File contiennent des fonctions déroulantes différentes de celles des utilisateurs Windows. Vous devrez également installer le pilote pour télécharger le micrologiciel sur votre NodeMCU.
2. Ouvrez le gestionnaire de cartes depuis Outils -> Carte -> Gestionnaire de cartes et installez la plateforme ESP8266. Pour trouver le bon appareil, recherchez ESP8266 dans la barre de recherche.
3. Sélectionnez le module ESP8266 que vous utilisez. Dans ce cas, nous avons décidé d'utiliser le NodeMCU 1.0 (module ESP-12) . Pour sélectionner le tableau, accédez à Outils > Tableau > Sélectionner le tableau .
De plus, pour communiquer avec le NodeMCU, nous devrons également sélectionner le port com. Accédez à Outils -> Port et sélectionnez le PORT approprié pour votre appareil.
Pour que tout fonctionne rapidement et sans problème, assurons-nous que la vitesse de téléchargement est optimisée à 115 200. Accédez à Outils -> Vitesse de téléchargement -> 115 200.
4. Rendez-vous sur GitHub et téléchargez la bibliothèque ConfigManager . Cliquez sur le bouton vert intitulé « Cloner ou télécharger » et sélectionnez « Télécharger ZIP ».
5. Maintenant, retournez dans l'IDE Arduino et cliquez sur Sketch -> Include Library -> Add .ZIP Library .
6. Sélectionnez le fichier .ZIP de ConfigManager puis « Accepter » ou « Choisir ».
En cas de succès, vous verrez le message suivant dans l'IDE Arduino : " Bibliothèque ajoutée à votre bibliothèque. Cochez le menu "Inclure la bibliothèque" "
7. Ensuite, accédez à Sketch/Program -> Include Library -> Library Manager et installez la bibliothèque PubSubClient Pour trouver la bonne bibliothèque, recherchez PubSubClient dans la barre de recherche.
8. Maintenant, redémarrez l'IDE Arduino avant le téléchargement.
9. Une fois la plate-forme ESP8266 et les bibliothèques requises installées, installez le téléchargeur du système de fichiers Arduino ESP8266 . étapes d'installation du référentiel et revenez à ce guide.
10. Une fois votre programme de téléchargement installé, créez un nouveau croquis sur lequel travailler et enregistrez-le. Notre exemple s'appelle AP_ESP8266 :
11. Ensuite, accédez au répertoire sketch et créez un nouveau dossier appelé data .
12. Une fois le répertoire créé, téléchargez ce fichier HTML et joignez-le au répertoire. Ce fichier sera utilisé dans le système de fichiers.
13. Ensuite, nous devons télécharger le fichier sur le système de fichiers flash ESP8266. Pour commencer, assurez-vous d'avoir sélectionné un port de la carte et fermé Serial Monitor .
14. Sélectionnez Outils > Téléchargement de données d'esquisse ESP8266 pour commencer à télécharger des fichiers vers le système de fichiers flash ESP8266.
Une fois terminé, la barre d'état de l'EDI devrait afficher SPIFFS Image Uploaded :
15.Maintenant, collez le code ci-dessous dans l' IDE Arduino . Une fois collé, attribuez les étiquettes de périphérique et de variable souhaitées, ainsi que votre Ubidots . Si vous ne connaissez pas votre Ubidots , découvrez comment vous en procurer un ici.
Copiez et collez le code ci-dessous dans l'IDE Arduino, y compris votre appareil spécifique et les paramètres variables.
#inclure<ESP8266WiFi.h> #inclure<ConfigManager.h> #inclure<PubSubClient.h> /******* Définir les constantes **********/ espace de noms{ const char * AP_NAME = " Point d'accès Ubidots " ; // Attribue le nom de votre point d'accès const char * MQTT_SERVER = "things. ubidots .com"; const char * JETON = "...."; // Attribue votre Ubidots TOKEN const char * DEVICE_LABEL = "my-device"; // Attribue votre étiquette de périphérique const char * VARIABLE_LABEL = "my-variable" ; // Attribue votre étiquette de variable int SENSOR = A0; } char sujet[150]; charge utile de caractères[50] ; Chaîne clientMac = "" ; caractère non signé mac[6] ; struct Config { nom de caractère[20]; booléen activé ; int8 heure ; } configuration ; /******* Initialiser une instance globale **********/ WiFiClient espClient; Client PubSubClient (espClient); ConfigManager configManager ; /***************Fonctions auxiliaires *******************/ void callback (sujet char*, charge utile octet*, unsigned int length){ } void reconnect() { while (!client.connected()){ Serial.print("Tentative de connexion MQTT..."); // Tentative de connexion if (client.connect(clientMac.c_str(), TOKEN, NULL)) { Serial.println("connected"); casser; } autre { configManager.reset(); Serial.print("échec, rc="); Serial.print(client.state()); Serial.println(" réessayez dans 3 secondes "); for(uint8_t Blink=0; Blink<=3; Blink++){ digitalWrite(LED, LOW); retard (500); écriture numérique (LED, ÉLEVÉE) ; retard (500); } } } } String macToStr(const uint8_t* mac) { Résultat de la chaîne ; for (int i = 0; i < 6; ++i) { result += String(mac[i], 16); si (i < 5)résultat += ':'; } renvoie le résultat ; } /********* Fonctions principales *************/ void setup() { Serial.begin(115200); /* Déclare les codes PIN comme entrée/sortie */ pinMode(SENSOR, INPUT); pinMode(PIN_RESET, INPUT); pinMode (LED, SORTIE); /* Attribue une adresse MAC WiFi comme nom de client MQTT */ WiFi.macAddress(mac); clientMac += macToStr(mac); /* Configuration du point d'accès */ configManager.setAPName(AP_NAME); configManager.addParameter("nom", config.name, 20); configManager.addParameter("enabled", &config.enabled); configManager.addParameter("heure", &config.heure); configManager.begin(config); /* Set Définit les détails du serveur */ client.setServer(MQTT_SERVER, 1883); client.setCallback(rappel); /* Génère la requête de sujet */ sprintf(topic, "%s%s", "/v1.6/devices/", DEVICE_LABEL); } void loop() { configManager.reset(); configManager.loop(); /* Reconnexion du client MQTT */ if (!client.connected()) { reconnect(); } /* Lecture du capteur */ int value = analogRead(SENSOR); /* Génère la requête de charge utile */ sprintf(payload, "{\"%s\": %d}", VARIABLE_LABEL, value); /* Publier la valeur du capteur sur Ubidots */ client.publish(topic, payload); client.loop(); retard (5000); }
16. Après avoir saisi vos paramètres, vérifiez le code dans l'IDE Arduino. Pour ce faire, cliquez sur l' en forme de coche dans le coin supérieur gauche de votre IDE Arduino.
Ensuite, téléchargez votre code dans votre NodeMCU . Choisissez l’ de flèche droite à côté de la coche.
Une fois le code téléchargé, vous verrez le message ci-dessous dans l'IDE Arduino :
Votre module ESP8266 est maintenant prêt à établir une connexion avec n'importe quel réseau disponible en appuyant simplement sur le bouton !
17. Pour vérifier l'état de la connexion, ouvrez le moniteur série , appuyez sur le bouton connecté à votre module ESP et maintenez-le enfoncé pendant 5 secondes jusqu'à ce que vous voyiez le message « Démarrage du point d'accès » sur votre moniteur série :
18. Maintenant que le point d'accès est créé, vous pouvez établir une connexion depuis votre téléphone. Sous Réseaux Wi-Fi, sélectionnez Point d'accès Ubidots :
Une fois la connexion établie, elle vous redirigera vers la page ci-dessous. Saisissez vos paramètres Wi-Fi et cliquez sur Enregistrer .
19. Pour vérifier que la connexion est établie, accédez au moniteur série :
Revenez maintenant sur vos comptes Ubidots pour visualiser les données reçues de votre nouvel appareil :
Résultats
En suivant ce guide, vous configurerez un point d'accès qui connectera votre appareil à n'importe quel réseau disponible sans définir les informations d'identification dans le micrologiciel – créant ainsi un micrologiciel universel qui peut être utilisé n'importe où !