wifi4564

I. Objectifs

- Etudier un réseau sans fil wifi;
- Créer une application qui commande un robot.

II. Etude du Wifi avec la carte Esp8266

Pour réaliser votre application, vous utiliserez la carte  Esp8266 avec module wifi intégré :. 

Carte Esp8266  

2.1. Etude documentaire

A partir des liens suivants répondre aux questions ci-dessous :

http://arduino.cc/en/Main/ArduinoBoardYun?from=Products.ArduinoYUNet

http://infotechplus.free.fr/topo_w.inc.php

Quel est l'intérêt des réseaux wifi ?

Quelle est la particularité de la carte esp8266 par rapport aux cartes arduino?

 

En déduire pour le reseau wifi de la carte Esp8266 Esp12s :  

La portée du signal en champ libre:
Le debit maximum :
La puissance d'émission du signal:
La bande de fréquences utilisée :
Le type de modulation :
La norme utilisée :

Calculer sa puissance électrique consommée pour une tension d'alimentation de 5V.

 

Donner les 3 types de topologies pour le wifi ( nom et schéma ):

 
 
 
Nom :  Nom :
 
 
 
Nom :   

2.2.Normes Wi-Fi 802.11a/b/g/n/ac :

A partir du lien ci-dessous donnée le débit et la portée de chacune des normes:

http://www.frandroid.com/comment-faire/241426_les-differentes-normes-wi-fi-802-11abgnac-quelles-differences-pratique

 

2.3. Norme OSI et TCP/IP

 

Les réseaux wifi appartiennent à quelle couche des modèles OSI et TCP/IP?

 

 

III. Application avec le wifi de l'Esp8266

3.1. Cahier des charges

Un utilisateur souhaite commander par son mobile un robot.

 

Le diagramme Sysml des cas d'utilisation est le suivant :

 Cas d'utilisation

Les contraintes imposées par l'utilisateur sont les suivantes :

  - la liaison entre la tablette et la carte esp8266 se fera en wifi;

  - l'application permettra de commander et superviser le niveau de batterie du robot.

Quelle topologie allez vous réaliser pour cette application?

 

  

IV. Programmation de la led sur ESP8266

https://learn.sparkfun.com/tutorials/esp8266-thing-hookup-guide/installing-the-esp8266-arduino-addon

En vous aidant des 2 programmes ci-dessous, vous allez réaliser un programme pour commander le robot mobile à l'aide de la tablette ou de votre mobile.

Programme 1 : Commander la led intégrée à l'esp8266  

si /ON -> allumer led 
si /OFF -> éteindre led

Vous choisirez comme type de carte dans  ide arduino : NodeMCU 0.9.

Si cette carte n'est pas installé dans IDE Arduino, allez sur le lien suivant : 

Guide d'installation de l'Esp8266

Programme :  Esp8266 En point d'accès (Hotspot)

 

//Charger la librairie Wifi pour l'Esp
#include <ESP8266WiFi.h>

//declaration des parametres wifi
const char* ssid = "EspSin";
const char* password = "12345678";

WiFiServer server(80); //Utilise le port http

void setup() {
   Serial.begin(115200);
   delay(10);
   Serial.println(WiFi.localIP());
   // prepare GPIO2
   //Declare la sortie BUILTIN_LED
   pinMode(BUILTIN_LED, OUTPUT);
   digitalWrite(BUILTIN_LED, LOW);

   // Connection au Wifi de la salle
   Serial.println();
   Serial.println();
   Serial.print("Connecting to ");
   Serial.println(ssid);

   //Déclaration du point d'accès
   WiFi.mode(WIFI_AP);
   WiFi.softAP(ssid, password);

   //Demarrage du serveur
   server.begin();
   Serial.println("Serveur Esp Ok");

   //Affiche l'adresse IP de l'Esp
   Serial.println(WiFi.localIP());
}

void loop() {
  //Teste si un client est connecté

  WiFiClient client = server.available();
  if (!client) {
    return;
  }

  // Attend que le client envoie des données
 while (!client.available()) {
     delay(1);
  }

    //Récupère la 1ère ligne de la requète
    String req = client.readStringUntil('\r');
    client.flush();

    //Traite la requète
    if (req.indexOf("") != -10) { //Vérifie si c'est la page principale

   if (req.indexOf("/OFF") != -1) { //Vérifie si OFF
     digitalWrite(BUILTIN_LED, LOW);
     Serial.println("Led OFF");
   }
    if (req.indexOf("/ON") != -1) { //Vérifie si ON
      digitalWrite(BUILTIN_LED, HIGH);
      Serial.println("Led ON");
    }
   }
   else {
    Serial.println("invalid request");
    client.stop();
    return;
  }

  //Créer la réponse
  String s = "HTTP/1.1 200 OK\r\n";
  s += "Content-Type: text/html\r\n\r\n";
  s += "<!DOCTYPE HTML>\r\n";
  s += "<html>\r\n";
  s += "<head>\r\n";
  s += "<meta charset=\"utf-8\"/>\r\n";
  s += "<title>Esp8266 en SIN</title>\r\n";
  s += "</head>\r\n";
  s += "<body>\r\n";
  s += "<br/><input type=\"button\" name=\"bl\" value=\"Turn LED ON \" onclick=\"location.href='/ON'\">";
  s += "<br/><br/>";
  s += "<input type=\"button\" name=\"bl\" value=\"Turn LED OFF\" onclick=\"location.href='/OFF'\">";
  s += "</body>\r\n";
  s += "</html>\n";

  client.flush(); //initialise le client.print


  //Envoie la page au client
  client.print(s);
  delay(1);
}

 

Ouvrer l'IDE Arduino.

Copier le programme dans l'IDE.

Changer le nom du wifi (ssid) et téléverser le programme dans l'esp8266.

Normalement, la led bleue sur l'Esp8266 doit s'allumer.

Si ce n'est pas le cas, modifier le type de carte en  NodeMCU 1.0 et recommencer le téléversement.

Avec votre mobile, connectez-vous au wifi de l'Esp8266. 

Lancer le navigateur de votre mobile et rentrer l'adresse ip de l'esp 192.168.4.1 dans l'url.

Tester le programme et visualiser les données envoyer sur le port série (outils -> Moniteur série).

Corriger l'erreur qui s'est glissé dans le programme.

 

 

 

V. Programmation du robot ESP8266

Les bornes de Esp8266 pour commander le shield moteur sont les suivantes :

Moteur A
D5 pour la PWM
D0 pour la direction 

Moteur B
D4 pour le PWM
D2 pour la direction

 

A l'aide des indications ci-dessus, écrire votre programme, dans le bloque ci-dessous, pour  le robot puisse avancer et stopper.

Tester votre programme et le faire valider par le professeur.

Pour finir, réaliser le programme pour  le robot puisse avancer, stopper,reculer, tourner à gauche et à droite.

 

Tester votre programme et le faire valider par le professeur.

 

Méthode 3 : Application sur la tablette

Vous allez  réaliser une application ionic cordova

Ouvrir le terminal de commande.

Aller dans le répertoire applications (cd application). Si celui-ci n'existe pas créer le ( mkdir applications).

Ensuite créer application :

cordova create espapp com.sciencesappliquees.espapp "Esp App"

 Aller dans le répertoire espapp

cd espapp

Ajouter les plateformes  windows et android

 cordova platform add windows

 cordova platform add android

Lancer le serveur cordova pour visualiser votre application sur chrome à l'adresse http://localhost:8000

cordova serve

 Modifier le fichier index.html dans le répertoire www 

 

 

 

V. Conclusion

Faire une synthèse du TP

footer2

Richard GAUTHIER
Professeur de Physique Appliquée
Certification ISN
Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.

 

 


Mentions légales


Plan du site

  Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.