La communication sans fil entre les appareils électroniques et les modules est très importante pour les rendre «adaptés» au monde de l'Internet des objets. Le protocole HTTP et le langage HTML ont permis de transférer les données partout dans le monde, sur le Web. Nous avons déjà couvert certains projets qui utilisent le Wi-Fi avec Arduino, jetez-y un œil pour commencer:
- Envoi d'e-mails à l'aide d'Arduino et du module WiFi ESP8266
- Robot contrôlé WiFi utilisant Arduino
- Contrôle de la LED RVB à l'aide d'Arduino et du Wi-Fi
Maintenant, dans ce tutoriel, nous construisons un programme pour envoyer des données sur le Web à l'aide d'Arduino et du module Wi-Fi. Pour cela, nous avons d'abord besoin d'une adresse IP du serveur global ou local, ici pour des raisons de facilité et de démonstration, nous utilisons le serveur local.
Composants requis:
- Arduino UNO
- Module Wi-Fi ESP8266
- Cable USB
- Fils de connexion
- Portable
- Source de courant
Module Wi-Fi ESP8266:
Connexions du circuit:
Le schéma de circuit pour «Publier les données d'Arduino vers le Web» est donné ci-dessous. Nous avons principalement besoin d'un module Wi-Fi Arduino et ESP8266. Les broches Vcc et GND de l'ESP8266 sont directement connectées à 3,3 V et GND d'Arduino et CH_PD est également connecté à 3,3 V. Les broches Tx et Rx de l'ESP8266 sont directement connectées aux broches 2 et 3 d'Arduino. La bibliothèque série logicielle est utilisée pour permettre la communication série sur les broches 2 et 3 d'Arduino. Nous avons déjà couvert en détail l'interfaçage du module Wi-Fi ESP8266 avec Arduino.
En utilisant la bibliothèque série logicielle ici, nous avons autorisé la communication série sur les broches 2 et 3, et les avons rendues Rx et Tx respectivement. Par défaut, les broches 0 et 1 d'Arduino sont utilisées pour la communication série, mais en utilisant la bibliothèque SoftwareSerial, nous pouvons autoriser la communication série sur d'autres broches numériques de l'Arduino.
Remarque: pour regarder la réponse de l'ESP8266 sur le moniteur série, veuillez ouvrir Serial Monitor of Arduino IDE.
Explication de travail:
Tout d'abord, nous devons connecter notre module Wi-Fi au routeur Wi-Fi pour la connectivité réseau. Ensuite, nous allons configurer le serveur local, envoyer les données sur le Web et enfin fermer la connexion. Ce processus et ces commandes ont été expliqués dans les étapes ci-dessous:
1. Nous devons d'abord tester le module Wi-Fi en envoyant une commande AT , il reviendra une réponse contenant OK .
2. Après cela, nous devons sélectionner le mode en utilisant la commande AT + CWMODE = mode_id , nous avons utilisé Mode id = 3. Identifiants de mode:
1 = Mode Station (client)
2 = Mode AP (hôte)
3 = Mode AP + Station (Oui, ESP8266 a un mode double!)
3. Maintenant, nous devons déconnecter notre module Wi-Fi du réseau Wi-Fi précédemment connecté, en utilisant la commande AT + CWQAP, car ESP8266 est automatiquement connecté par défaut à tout réseau Wi-Fi disponible auparavant.
4. Après cela, l'utilisateur peut réinitialiser le module avec la commande AT + RST . Cette étape est facultative.
5. Maintenant, nous devons connecter l'ESP8266 au routeur Wi-Fi en utilisant la commande donnée
6. Maintenant, obtenez l'adresse IP en utilisant la commande donnée:
Il renverra une adresse IP.
7. Activez maintenant le mode multiplex en utilisant AT + CIPMUX = 1 (1 pour une connexion multiple et 0 pour une connexion unique)
8. Configurez maintenant ESP8266 comme serveur en utilisant AT + CIPSERVER = 1, port_no (le port peut être 80). Votre Wi-Fi est maintenant prêt. Ici, «1» est utilisé pour créer le serveur et «0» pour supprimer le serveur.
9. Maintenant, en utilisant la commande donnée, l'utilisateur peut envoyer des données au serveur créé local:
Id = numéro d'identification de connexion de transmission
Length = La longueur maximale des données est de 2 kb
10. Après avoir envoyé l'ID et la longueur au serveur, nous devons envoyer des données telles que: Serial.println ("[email protected]");
11. Après l'envoi des données, nous devons fermer la connexion par la commande donnée:
Les données ont maintenant été transmises au serveur local.
12. Tapez maintenant l'adresse IP dans la barre d'adresse du navigateur Web et appuyez sur Entrée. Maintenant, l'utilisateur peut voir les données transmises sur la page Web.
Vérifiez la vidéo ci-dessous pour le processus complet.
Étapes de programmation:
1. Incluez la bibliothèque SoftwareSerial pour permettre la communication série sur les PIN 2 et 3 et déclarer certaines variables et chaînes.
#comprendre
2. Après cela, nous devons définir certaines fonctions pour effectuer les tâches souhaitées.
Dans la fonction Setup () , nous initialisons la communication UART série intégrée pour ESP8266 en tant que client.begin (9600); à la vitesse de transmission de 9600.
void setup () {Serial.begin (9600); client.begin (9600); wifi_init (); Serial.println ("Système prêt.."); }
3. Dans la fonction wifi_init () , nous initialisons le module wifi en envoyant des commandes telles que réinitialiser, définir le mode, se connecter au routeur, configurer la connexion, etc. Ces commandes ont également été expliquées ci-dessus dans la partie description.
void wifi_init () {connect_wifi ("AT", 100); connect_wifi ("AT + CWMODE = 3", 100); connect_wifi ("AT + CWQAP", 100); connect_wifi ("AT + RST", 5000);…………………
4. Dans la fonction connect_wifi () , nous envoyons des données de commandes à ESP8266 puis lisons la réponse du module Wi-Fi ESP8266.
void connect_wifi (String cmd, int t) {int temp = 0, i = 0; while (1) {Serial.println (cmd);…………………
5. La fonction sendwebdata () est utilisée pour envoyer des données au serveur local ou à la page Web.
void sendwebdata (chaîne webPage) {int ii = 0; while (1) {unsigned int l = webPage.length (); Serial.print ("AT + CIPSEND = 0,"); client.print ("AT + CIPSEND = 0,");…………………
6. La fonction void send () est utilisée pour envoyer des chaînes de données à la fonction sendwebdata () . Cela sera ensuite envoyé à la page Web.
void Send () {page Web = "
Bienvenue sur Circuit Digest
"; sendwebdata (page Web); page Web = nom; page Web + = dat;…………………7. La fonction get_ip () est utilisée pour obtenir l'adresse IP du serveur créé localement.
8. Dans la fonction void loop () , nous envoyons des instructions à l'utilisateur pour actualiser la page et vérifier si le serveur est connecté ou non. Lorsque l'utilisateur actualise ou demande la page Web, les données sont automatiquement transmises à la même adresse IP.
boucle vide () {k = 0; Serial.println ("Veuillez actualiser votre page"); tandis que (k <1000)………………
Nous pouvons afficher toutes les données d'Arduino à la page Web en utilisant ce processus, comme la température et l'humidité de la pièce, l'heure de l'horloge, les coordonnées GPS, la fréquence cardiaque, etc.