publish: Commander une LED en Wifi
This commit is contained in:
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"title": "Commander une LED en Wifi",
|
||||
"_updated_at": "2026-05-15 21:45:35",
|
||||
"slug": "esp32-commander-led-wifi",
|
||||
"published": true,
|
||||
"published_at": "2022-03-25 18:52",
|
||||
"category": "Électronique",
|
||||
"tags": {
|
||||
"tags": [
|
||||
"ESP",
|
||||
"Développement"
|
||||
]
|
||||
},
|
||||
"seo_title": "",
|
||||
"seo_description": "",
|
||||
"og_image": "https://www.abonnel.fr/file?uuid=e5652004-dbab-44f0-b4fa-85948b357769&name=cover.png"
|
||||
}
|
||||
@@ -1,129 +0,0 @@
|
||||
# Commander une LED en Wifi
|
||||
|
||||
Nous avons vu dans le chapitre précédent comment la carte ESP8266 peut se connecter à un **point d'accès** Wifi. Nous nous fixons maintenant comme objectif de connecter l'ESP8266 au même réseau qu'un smartphone ou un ordinateur afin de commander une LED depuis ces derniers. Pour ce faire, nous allons configurer l'ESP8266 de manière à ce qu'il joue le rôle de **serveur** : il offrira une page Web à l'utilisateur, et cette page permettra de commander la LED intégrée à la carte de développement.
|
||||
|
||||
## La LED intégrée à la carte
|
||||
|
||||

|
||||
|
||||
La plupart des cartes de développement à base d'ESP8266 (NodeMCU, Wemos D1 mini, ESP-12F sur platine, etc.) embarquent une LED soudée directement sur la carte. C'est cette LED qui clignote faiblement lors du téléversement d'un programme, et c'est également elle qui s'allume avec l'exemple classique *Blink*.
|
||||
|
||||
Le GPIO sur lequel cette LED est câblée dépend de la carte : il s'agit le plus souvent du **GPIO 2** (NodeMCU, Wemos D1 mini), mais sur certains modules c'est le **GPIO 16**. Plutôt que de retenir ce numéro, nous utiliserons la **constante** `LED_BUILTIN`, définie par le cœur Arduino pour l'ESP8266 et qui pointe automatiquement vers le bon GPIO selon la carte sélectionnée dans l'IDE.
|
||||
|
||||
> **À noter — logique inversée.** Sur la quasi-totalité des cartes ESP8266, la LED intégrée est *active à l'état bas* : on l'allume en écrivant `LOW` sur la broche et on l'éteint en écrivant `HIGH`. C'est l'inverse de ce que l'on observerait avec une LED externe câblée classiquement entre le GPIO et la masse.
|
||||
|
||||
## Principe de fonctionnement
|
||||
|
||||
Le programme suit un schéma **client / serveur HTTP** très simple :
|
||||
|
||||
1. L'ESP8266 se connecte au réseau Wifi et démarre un serveur sur le port 80.
|
||||
2. Depuis un navigateur (smartphone ou ordinateur connecté au même réseau), l'utilisateur saisit l'adresse IP de l'ESP.
|
||||
3. L'ESP reçoit la requête HTTP, l'analyse pour détecter une commande (`/LED=ON` ou `/LED=OFF`), agit sur la LED en conséquence, puis renvoie une page HTML contenant deux liens de commande ainsi que l'état courant de la LED.
|
||||
|
||||
## Le code
|
||||
|
||||
```c
|
||||
#include <ESP8266WiFi.h>
|
||||
|
||||
const char* ssid = "MON-RESEAU-WIFI";
|
||||
const char* password = "leMotDePasseDuReseauWifi";
|
||||
|
||||
// Variable globale : état courant de la LED.
|
||||
// La LED étant active à l'état bas, HIGH = éteinte au démarrage.
|
||||
int valeurLED = HIGH;
|
||||
|
||||
// Déclaration du serveur 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
|
||||
pinMode(LED_BUILTIN, OUTPUT);
|
||||
digitalWrite(LED_BUILTIN, valeurLED);
|
||||
|
||||
// Connexion au 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(".");
|
||||
}
|
||||
Serial.println();
|
||||
Serial.println("Réseau Wifi connecté");
|
||||
|
||||
// Démarrage du serveur
|
||||
server.begin();
|
||||
Serial.println("Serveur démarré !");
|
||||
|
||||
// Affichage de l'adresse IP à utiliser dans le navigateur
|
||||
Serial.print("Utiliser cette adresse URL pour la connexion : http://");
|
||||
Serial.print(WiFi.localIP());
|
||||
Serial.println("/");
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// Attente de connexion d'un client
|
||||
WiFiClient client = server.available();
|
||||
if (!client) {
|
||||
return;
|
||||
}
|
||||
|
||||
Serial.println("Nouveau client");
|
||||
|
||||
// Attendre que le client envoie des données
|
||||
while (!client.available()) {
|
||||
delay(1);
|
||||
}
|
||||
|
||||
// Lecture de la première ligne de la requête HTTP
|
||||
String request = client.readStringUntil('\r');
|
||||
Serial.println(request);
|
||||
client.flush();
|
||||
|
||||
// Interprétation de la requête
|
||||
if (request.indexOf("/LED=ON") != -1) {
|
||||
valeurLED = LOW; // logique inversée : LOW allume
|
||||
digitalWrite(LED_BUILTIN, valeurLED);
|
||||
}
|
||||
if (request.indexOf("/LED=OFF") != -1) {
|
||||
valeurLED = HIGH; // HIGH éteint
|
||||
digitalWrite(LED_BUILTIN, valeurLED);
|
||||
}
|
||||
|
||||
// Réponse HTTP : page HTML simple
|
||||
client.println("HTTP/1.1 200 OK");
|
||||
client.println("Content-Type: text/html");
|
||||
client.println("Connection: close");
|
||||
client.println();
|
||||
client.println("<!DOCTYPE HTML>");
|
||||
client.println("<html><head><meta charset=\"utf-8\"></head><body>");
|
||||
|
||||
client.print("<p>La LED est actuellement : <b>");
|
||||
client.print(valeurLED == LOW ? "ALLUMÉE" : "ÉTEINTE");
|
||||
client.println("</b></p>");
|
||||
|
||||
client.println("<p><a href=\"/LED=ON\">Allumer la LED</a></p>");
|
||||
client.println("<p><a href=\"/LED=OFF\">Éteindre la LED</a></p>");
|
||||
client.println("</body></html>");
|
||||
|
||||
// Fermeture propre de la connexion
|
||||
delay(1);
|
||||
client.stop();
|
||||
Serial.println("Client déconnecté");
|
||||
Serial.println();
|
||||
}
|
||||
```
|
||||
|
||||
## Pour aller plus loin
|
||||
|
||||
Jusqu'à présent, l'ESP a assumé trois rôles à lui seul : **présenter une page Web**, **commander la LED** et **informer de son état**. Cette approche est pratique pour apprendre, mais elle ne correspond pas vraiment à ce qui se fait dans l'écosystème des objets connectés.
|
||||
|
||||
Dans un déploiement réel, l'ESP se contente le plus souvent d'**exposer une API** (par exemple en JSON), et c'est un service centralisé comme **Domoticz**, **Home Assistant** ou **OpenHAB** qui fournit l'interface utilisateur, agrège les différents objets et orchestre les automatisations. Dans le chapitre suivant, nous modifierons donc ce programme pour qu'il renvoie une réponse JSON plutôt qu'une page HTML, ce qui en fera un véritable objet connecté prêt à être intégré à une plateforme domotique.
|
||||
@@ -1,111 +1,129 @@
|
||||
# Commander une LED Wifi
|
||||
# Commander une LED en Wifi
|
||||
|
||||

|
||||
Nous avons vu dans le chapitre précédent comment la carte ESP8266 peut se connecter à un **point d'accès** Wifi. Nous nous fixons maintenant comme objectif de connecter l'ESP8266 au même réseau qu'un smartphone ou un ordinateur afin de commander une LED depuis ces derniers. Pour ce faire, nous allons configurer l'ESP8266 de manière à ce qu'il joue le rôle de **serveur** : il offrira une page Web à l'utilisateur, et cette page permettra de commander la LED intégrée à la carte de développement.
|
||||
|
||||
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.
|
||||
## La LED intégrée à la carte
|
||||
|
||||

|
||||

|
||||
|
||||
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`.
|
||||
La plupart des cartes de développement à base d'ESP8266 (NodeMCU, Wemos D1 mini, ESP-12F sur platine, etc.) embarquent une LED soudée directement sur la carte. C'est cette LED qui clignote faiblement lors du téléversement d'un programme, et c'est également elle qui s'allume avec l'exemple classique *Blink*.
|
||||
|
||||
..
|
||||
Le GPIO sur lequel cette LED est câblée dépend de la carte : il s'agit le plus souvent du **GPIO 2** (NodeMCU, Wemos D1 mini), mais sur certains modules c'est le **GPIO 16**. Plutôt que de retenir ce numéro, nous utiliserons la **constante** `LED_BUILTIN`, définie par le cœur Arduino pour l'ESP8266 et qui pointe automatiquement vers le bon GPIO selon la carte sélectionnée dans l'IDE.
|
||||
|
||||
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**.
|
||||
> **À noter — logique inversée.** Sur la quasi-totalité des cartes ESP8266, la LED intégrée est *active à l'état bas* : on l'allume en écrivant `LOW` sur la broche et on l'éteint en écrivant `HIGH`. C'est l'inverse de ce que l'on observerait avec une LED externe câblée classiquement entre le GPIO et la masse.
|
||||
|
||||
```C
|
||||
## Principe de fonctionnement
|
||||
|
||||
Le programme suit un schéma **client / serveur HTTP** très simple :
|
||||
|
||||
1. L'ESP8266 se connecte au réseau Wifi et démarre un serveur sur le port 80.
|
||||
2. Depuis un navigateur (smartphone ou ordinateur connecté au même réseau), l'utilisateur saisit l'adresse IP de l'ESP.
|
||||
3. L'ESP reçoit la requête HTTP, l'analyse pour détecter une commande (`/LED=ON` ou `/LED=OFF`), agit sur la LED en conséquence, puis renvoie une page HTML contenant deux liens de commande ainsi que l'état courant de la LED.
|
||||
|
||||
## Le 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
|
||||
const char* ssid = "MON-RESEAU-WIFI";
|
||||
const char* password = "leMotDePasseDuReseauWifi";
|
||||
|
||||
// Variable globale : état courant de la LED.
|
||||
// La LED étant active à l'état bas, HIGH = éteinte au démarrage.
|
||||
int valeurLED = HIGH;
|
||||
|
||||
// Déclaration du serveur sur le port 80
|
||||
WiFiServer server(80);
|
||||
|
||||
void setup()
|
||||
{
|
||||
- initialisation de la communication série
|
||||
|
||||
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
|
||||
// Initialisation de la sortie pour la LED
|
||||
pinMode(LED_BUILTIN, OUTPUT);
|
||||
digitalWrite(LED_BUILTIN, valeurLED);
|
||||
|
||||
// Connexion au 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)
|
||||
{
|
||||
// Connexion en cours...
|
||||
while (WiFi.status() != WL_CONNECTED) {
|
||||
delay(500);
|
||||
Serial.print(".");
|
||||
}
|
||||
Serial.println();
|
||||
Serial.println("Réseau Wifi connecté");
|
||||
|
||||
- Wifi connecter
|
||||
Serial.println("Réseau WIFI connecté");
|
||||
|
||||
- Démmarrage du serveur.
|
||||
// Démarrage 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:*");
|
||||
|
||||
// Affichage de l'adresse IP à utiliser dans le navigateur
|
||||
Serial.print("Utiliser cette adresse URL pour la connexion : http://");
|
||||
Serial.print(WiFi.localIP());
|
||||
Serial.println("/");
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
void loop() {
|
||||
|
||||
- Attente de connexion d'un client
|
||||
client = server.available();
|
||||
if (!client)
|
||||
{
|
||||
// Attente de connexion d'un client
|
||||
WiFiClient client = server.available();
|
||||
if (!client) {
|
||||
return;
|
||||
}
|
||||
|
||||
- Attendre si le client envoie des données ...
|
||||
Serial.println("nouveau client");
|
||||
while(!client.available()){
|
||||
|
||||
Serial.println("Nouveau client");
|
||||
|
||||
// Attendre que le client envoie des données
|
||||
while (!client.available()) {
|
||||
delay(1);
|
||||
}
|
||||
|
||||
|
||||
// Lecture de la première ligne de la requête HTTP
|
||||
String request = client.readStringUntil('\r');
|
||||
Serial.println(request);
|
||||
client.flush();
|
||||
|
||||
if (request.indexOf("/LED=ON") != -1) {
|
||||
valeurLED = LOW;
|
||||
digitalWrite(ledPin, valeurLED); * allumer la led
|
||||
// Interprétation de la requête
|
||||
if (request.indexOf("/LED=ON") != -1) {
|
||||
valeurLED = LOW; // logique inversée : LOW allume
|
||||
digitalWrite(LED_BUILTIN, valeurLED);
|
||||
}
|
||||
if (request.indexOf("/LED=OFF") != -1) {
|
||||
valeurLED = HIGH;
|
||||
digitalWrite(ledPin, valeurLED); * éteindre la led
|
||||
if (request.indexOf("/LED=OFF") != -1) {
|
||||
valeurLED = HIGH; // HIGH éteint
|
||||
digitalWrite(LED_BUILTIN, valeurLED);
|
||||
}
|
||||
|
||||
- Réponse
|
||||
// Réponse HTTP : page HTML simple
|
||||
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\"}");
|
||||
}
|
||||
client.println("Content-Type: text/html");
|
||||
client.println("Connection: close");
|
||||
client.println();
|
||||
client.println("<!DOCTYPE HTML>");
|
||||
client.println("<html><head><meta charset=\"utf-8\"></head><body>");
|
||||
|
||||
client.print("<p>La LED est actuellement : <b>");
|
||||
client.print(valeurLED == LOW ? "ALLUMÉE" : "ÉTEINTE");
|
||||
client.println("</b></p>");
|
||||
|
||||
client.println("<p><a href=\"/LED=ON\">Allumer la LED</a></p>");
|
||||
client.println("<p><a href=\"/LED=OFF\">Éteindre la LED</a></p>");
|
||||
client.println("</body></html>");
|
||||
|
||||
// Fermeture propre de la connexion
|
||||
delay(1);
|
||||
client.stop();
|
||||
Serial.println("Client déconnecté");
|
||||
Serial.println("");
|
||||
|
||||
Serial.println();
|
||||
}
|
||||
```
|
||||
```
|
||||
|
||||
## Pour aller plus loin
|
||||
|
||||
Jusqu'à présent, l'ESP a assumé trois rôles à lui seul : **présenter une page Web**, **commander la LED** et **informer de son état**. Cette approche est pratique pour apprendre, mais elle ne correspond pas vraiment à ce qui se fait dans l'écosystème des objets connectés.
|
||||
|
||||
Dans un déploiement réel, l'ESP se contente le plus souvent d'**exposer une API** (par exemple en JSON), et c'est un service centralisé comme **Domoticz**, **Home Assistant** ou **OpenHAB** qui fournit l'interface utilisateur, agrège les différents objets et orchestre les automatisations. Dans le chapitre suivant, nous modifierons donc ce programme pour qu'il renvoie une réponse JSON plutôt qu'une page HTML, ce qui en fera un véritable objet connecté prêt à être intégré à une plateforme domotique.
|
||||
|
||||
@@ -1,18 +1,32 @@
|
||||
{
|
||||
"uuid": "e5652004-dbab-44f0-b4fa-85948b357769",
|
||||
"slug": "esp32-commander-led-wifi",
|
||||
"title": "Commander une LED Wifi",
|
||||
"title": "Commander une LED en Wifi",
|
||||
"author": "cedric@abonnel.fr",
|
||||
"published": true,
|
||||
"published_at": "2022-03-25 18:52:47",
|
||||
"featured": false,
|
||||
"published_at": "2022-03-25 18:52",
|
||||
"created_at": "2022-03-25 18:52:47",
|
||||
"updated_at": "2022-03-25 18:52:47",
|
||||
"revisions": [],
|
||||
"updated_at": "2026-05-15 21:45:43",
|
||||
"revisions": [
|
||||
{
|
||||
"n": 1,
|
||||
"date": "2026-05-15 21:45:43",
|
||||
"comment": "Titre modifié, tags modifiés, contenu modifié, image de couverture modifiée",
|
||||
"title": "Commander une LED Wifi"
|
||||
}
|
||||
],
|
||||
"cover": "cover.png",
|
||||
"files_meta": [],
|
||||
"external_links": [],
|
||||
"seo_title": "",
|
||||
"seo_description": "",
|
||||
"og_image": "",
|
||||
"category": "Électronique"
|
||||
"og_image": "https://www.abonnel.fr/file?uuid=e5652004-dbab-44f0-b4fa-85948b357769&name=cover.png",
|
||||
"category": "Électronique",
|
||||
"tags": {
|
||||
"tags": [
|
||||
"ESP",
|
||||
"Développement"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
# Commander une LED 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.
|
||||
|
||||

|
||||
|
||||
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**.
|
||||
|
||||
```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("");
|
||||
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user