electronique:esp:esp32-commander-led-wifi

no way to compare when less than two revisions

Différences

Ci-dessous, les différences entre deux révisions de la page.


electronique:esp:esp32-commander-led-wifi [2022/03/25 19:52] (Version actuelle) – créée Cédric ABONNEL
Ligne 1: Ligne 1:
 +====== Commander une LED Wifi ======
 +{{ :dummy.png?75x75|Commander la LED intégrer aux boards basées sur ESP866 par une page HTML via une connexion Wifi.}}
  
 +Nous avons vu dans le chapitre [..] comment la carte ESP 8266 peut se connecter à un **point d'accès** Wifi. Nous nous fixons comme objectif de connecter l'ESP 8266 au même réseau qu’un smartphone ou un ordinateur pour commander une LED. Pour ce faire, nous allons configurer l'ESP 8266 afin d'**offrir un service**.  Dans un premier temps nous **offrirons** une page Web à l'utilisateur. Elle permettra de commander la LED incorporée sur votre plaque de développement ESP 8266.
 +
 +{{ :electronique:esp:pasted:20220325-185318.png | Carte ESP-12F avec la LED BUILT IN allumée }}
 +
 +Sur la carte de développement, comme l'ESP-12F, est soudée une LED. Cette LED est celle qui clignote faiblement quand vous téléversez une programme. C'est également celle qui clignote avec le programme **blink led**. Techniquement parlant, cette LED est branchée sur le port GPIO 16. Mais il n'est pas forcément nécessaire de connaître cette valeur par cœur car nous utiliserons dans le code la **constante** (mot clé défini dans l'IDE ARDUINO) ''LED_BUILTIN''.
 +
 +
 +..
 +
 +Jusqu'à présent nous avons utiliser l'ESP pour **présenter une page Web**, fournir un moyen de **commander la LED** et **informer de l'état de la LED**. Dans les objets connectés il n'est pas nécessaire de **présenter une page Web** car celle-ci est fournie par un service centralisé comme **Domoticz** ou **OpenHAB**.
 +
 +<code C>
 +#include <ESP8266WiFi.h>
 + 
 +const char* ssid = "MON-REZO-WIFI";
 +const char* password = "leMotDePasseDuRezoWifi";
 + 
 +int ledPin = 16;
 +
 +// Déclaration du Server sur le port 80
 +WiFiServer server(80);
 + 
 +void setup() 
 +{
 +  // initialisation de la communication série
 +  Serial.begin(115200);
 +  
 +  delay(100);
 +
 +  // initialisation de la sortie pour la LED 
 +  int valeurLED = HIGH;
 +  pinMode(ledPin, OUTPUT);
 +  digitalWrite(ledPin, valeurLED);
 + 
 +  // Connexion wifi
 +  Serial.println();
 +  Serial.print("Connexion au réseau Wifi ");
 +  Serial.println(ssid);
 +  
 +  WiFi.begin(ssid, password);
 +
 +  // connexion  en cours ...
 +  while (WiFi.status() != WL_CONNECTED)
 +  {
 +    delay(500);
 +    Serial.print(".");
 +  }
 +
 +  // Wifi connecter
 +  Serial.println("Réseau WIFI connecté");
 + 
 +  // Démmarrage du serveur.
 +  server.begin();
 +  Serial.println("Serveur démarré !");
 + 
 +  // Affichage de l'adresse IP
 +  Serial.print("Utiliser cette adresse URL pour la connexion : ");
 +  Serial.print("http://");
 +  Serial.print(WiFi.localIP());
 +  Serial.println("/");
 +  
 +
 +}
 + 
 +void loop() {
 +  
 +  // Attente de connexion d'un client
 +  client = server.available();
 +  if (!client)
 +  {
 +    return;
 +  }
 + 
 +  // Attendre si le client envoie des données ...
 +  Serial.println("nouveau client");
 +  while(!client.available()){
 +    delay(1);
 +  }
 + 
 +  String request = client.readStringUntil('\r');
 +  Serial.println(request);
 +  client.flush();
 +
 +  if (request.indexOf("/LED=ON") != -1)  {
 +    valeurLED = LOW;
 +    digitalWrite(ledPin, valeurLED); // allumer la led
 +  }
 +  if (request.indexOf("/LED=OFF") != -1)  {
 +    valeurLED = HIGH;
 +    digitalWrite(ledPin, valeurLED); // éteindre la led
 +  }
 +
 +
 +  // Réponse
 +  client.println("HTTP/1.1 200 OK");
 +  client.println("Content-Type: application/json");
 +  client.println("");
 + 
 +  if(valeurLED == LOW) {
 +    client.println("{\"LED\": \"on\"}");
 +  } else {
 +    client.println("{\"LED\": \"off\"}");
 +  }
 +
 +  Serial.println("Client déconnecté");
 +  Serial.println("");
 + 
 +}
 +</code>
  • electronique/esp/esp32-commander-led-wifi.txt
  • Dernière modification : 2022/03/25 19:52
  • de Cédric ABONNEL