Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révisionLes deux révisions suivantes | |||
howto:arduino-esp:esp_atelier1 [2021/06/24 15:46] – créée - modification externe 127.0.0.1 | howto:arduino-esp:esp_atelier1 [2022/11/14 10:02] – admin | ||
---|---|---|---|
Ligne 7: | Ligne 7: | ||
Le code fournis en fin d' | Le code fournis en fin d' | ||
- | #1-Le Code | + | =====1-Le Code ===== |
+ | |||
+ | ==== Se connecter au Wifi ==== | ||
- | Se connecter au Wifi | ||
- | -------------------- | ||
La première étape est bien sûr d' | La première étape est bien sûr d' | ||
La première étape, importer la lib Wifi pour l'ESP: | La première étape, importer la lib Wifi pour l'ESP: | ||
- | + | < | |
- | `#include < | + | #include < |
+ | </ | ||
puis déclarer le login et le mot de passe du réseau: | puis déclarer le login et le mot de passe du réseau: | ||
- | ``` | + | < |
// Les accès pour se connecter au réseau wifi | // Les accès pour se connecter au réseau wifi | ||
const char* ssid = " | const char* ssid = " | ||
const char* password = " | const char* password = " | ||
- | ``` | + | </ |
Ensuite, dans la fonction `setup()` , il suffit de se connecter avec : | Ensuite, dans la fonction `setup()` , il suffit de se connecter avec : | ||
- | ``` | + | < |
WiFi.begin(ssid, | WiFi.begin(ssid, | ||
while (WiFi.status() != WL_CONNECTED) | while (WiFi.status() != WL_CONNECTED) | ||
Ligne 36: | Ligne 37: | ||
Serial.println("" | Serial.println("" | ||
Serial.println(" | Serial.println(" | ||
- | ``` | + | </ |
La boucle `while` permet seulement de signifier à l' | La boucle `while` permet seulement de signifier à l' | ||
Puisque nous affichons quelques trucs sur la console, profitons en pour afficher l' | Puisque nous affichons quelques trucs sur la console, profitons en pour afficher l' | ||
+ | < | ||
`Serial.println(WiFi.localIP()); | `Serial.println(WiFi.localIP()); | ||
+ | </ | ||
- | Le serveur Web | + | ==== Le serveur Web ==== |
- | -------------- | + | |
Pour communiquer avec l'ESP, nous utiliserons notre navigateur préféré (sur un ordinateur ou un smartphone). Il faut donc, côté ESP, lancer un serveur web, qui recevra les requêtes et les traitera. On le déclare: | Pour communiquer avec l'ESP, nous utiliserons notre navigateur préféré (sur un ordinateur ou un smartphone). Il faut donc, côté ESP, lancer un serveur web, qui recevra les requêtes et les traitera. On le déclare: | ||
- | + | < | |
- | `WiFiServer server(80);` | + | WiFiServer server(80); |
+ | </ | ||
Puis dans le `setup()`, on le démarre: | Puis dans le `setup()`, on le démarre: | ||
+ | < | ||
+ | server.begin(); | ||
+ | </ | ||
- | `server.begin(); | + | ==== Client |
- | + | ||
- | CLient | + | |
- | ------------------ | + | |
Le principe de l' | Le principe de l' | ||
Ligne 61: | Ligne 64: | ||
On surveille d' | On surveille d' | ||
- | ``` | + | < |
// On vérifie qu'un client est connecté | // On vérifie qu'un client est connecté | ||
WiFiClient client = server.available(); | WiFiClient client = server.available(); | ||
Ligne 68: | Ligne 71: | ||
} | } | ||
| | ||
- | // Puis on attends | + | // Puis on attend |
Serial.println(" | Serial.println(" | ||
while(!client.available()){ | while(!client.available()){ | ||
delay(1); | delay(1); | ||
} | } | ||
- | ``` | + | </ |
Si un client est connecté, on analyse sa requête (c'est une chaîne de caractère): | Si un client est connecté, on analyse sa requête (c'est une chaîne de caractère): | ||
- | ``` | + | < |
// On lit la première ligne de la requête | // On lit la première ligne de la requête | ||
String req = client.readStringUntil(' | String req = client.readStringUntil(' | ||
Ligne 95: | Ligne 99: | ||
return; | return; | ||
} | } | ||
- | ``` | + | </ |
En résumé, si l' | En résumé, si l' | ||
La suite est très simple, on manipule la pin digitale comme on pourrait le faire sur un arduino. | La suite est très simple, on manipule la pin digitale comme on pourrait le faire sur un arduino. | ||
- | La réponse HTML | + | ==== La réponse HTML ==== |
- | --------------- | + | |
Le programme pourrait s' | Le programme pourrait s' | ||
- | ``` | + | < |
// On prépare la réponse | // On prépare la réponse | ||
String s = " | String s = " | ||
Ligne 114: | Ligne 118: | ||
client.print(s); | client.print(s); | ||
- | ``` | + | </ |
- | Amélioration de l'Html | + | ==== Amélioration de l' |
- | ---------------------- | + | |
Il est un peu contraignant de devoir demander à l' | Il est un peu contraignant de devoir demander à l' | ||
Analysons la partie HTML qui affiche les boutons: | Analysons la partie HTML qui affiche les boutons: | ||
- | + | < | |
- | ``` | + | |
if (output5State==" | if (output5State==" | ||
| | ||
Ligne 129: | Ligne 131: | ||
| | ||
} | } | ||
- | ``` | + | </ |
On voit que le paramètre `href` prend des URL semblables à celles que nous avons utilisé précédemment. | On voit que le paramètre `href` prend des URL semblables à celles que nous avons utilisé précédemment. | ||
Je vous laisse le soin d' | Je vous laisse le soin d' | ||
- | Fichier d' | + | ==== Fichier d' |
- | ------------------------------------------- | + | |
{{ : | {{ : | ||