abonnel-siteweb/data/pages/electronique/esp/esp8266-commandes-at.txt

189 lines
4.6 KiB
Plaintext
Raw Normal View History

2024-01-07 10:02:35 +01:00
====== Commandes AT ======
Sans modification du programme le **circuit intégré ESP8266** répondra à des commandes AT (ou commandes Hayes) s'il est chargé avec le [[electronique:esp:esp8266ex-restore-commandes-at|firmware adéquat]]. C'est le cas de la plupart des [[electronique:esp:specifications-esp-01|ESP-01]]
Je propose le T.P. suivant afin de prendre en main un **ESP8266** avec les commandes AT.
<WRAP clear/>
----
Vérifier le fonctionnement du mode Wifi
AT+CWMODE?
----
Passer en mode dual (AP + client)
AT+CWMODE=3
-> ok
----
Se connecter à un réseau
AT+CWJAP="ACEGRP_NET","249cb30b415788bdd20c5d3c20"
-> WIFI CONNECTED
-> WIFI GOT IP
->
-> OK
----
Mémoriser les paramètres de connexion
AT+CWQAP
->
-> OK
----
Lister les adresses réseaux
AT+CIFSR
-> +CIFSR:APIP,"192.168.4.1"
-> +CIFSR:APMAC,"1a:fe:34:9a:36:13"
-> +CIFSR:STAIP,"192.168.101.20"
-> +CIFSR:STAMAC,"18:fe:34:9a:36:13"
->
-> OK
----
Activer les connexions multiples
<code>
00:21:55.429 -> OK
01:09:33.601 -> AT+CIPMUX=1
</code>
----
Activer le serveur Web (port 80)
<code>
01:09:33.601 -> OK
01:09:40.391 -> AT+CIPSERVER=1,80
</code>
Lorsqu'un client se connecte, les informations suivantes dans la console s'affichent :
<code>
01:09:56.319 -> 0,CONNECT
01:09:56.319 ->
01:09:56.319 -> +IPD,0,341:GET / HTTP/1.1
01:09:56.319 -> Host: 192.168.101.20
01:09:56.319 -> User-Agent: Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:83.0) Gecko/20100101 Firefox/83.0
01:09:56.319 -> Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
01:09:56.319 -> Accept-Language: fr,fr-FR;q=0.5
01:09:56.319 -> Accept-Encoding: gzip, deflate
01:09:56.352 -> DNT: 1
01:09:56.352 -> Connection: keep-alive
01:09:56.352 -> Upgrade-Insecure-Requests: 1
01:09:56.352 ->
01:12:56.522 -> 0,CLOSED
</code>
====== Glossaire des commandes AT - Wifi ======
===== CWMODE : Mode de fonctionnement du Wifi =====
**Retourner** la valeur numérique du mode de fonctionnement du Wifi du module ESP.
AT+CWMODE?
**Désigner** la valeur numérique du mode de fonctionnement du Wifi du module ESP. Par exemple
AT+CWMODE=3
**Valeurs numériques** pour désigner du mode de fonctionnement du Wifi pour **CWMODE** :
* 1 = mode client
* 2 = mode point d'accès (AP)
* 3 = AP + mode client (dual mode)
__Exemple de réponse avec AT+CWMODE?__
23:16:33.243 -> AT+CWMODE?
23:16:33.243 -> +CWMODE:1
===== CWLAP - Lister les points d'accès =====
Lister les points d'accès vus par l'ESP.
AT+CWLAP
Chaque ligne retournée correspond à un point d'accès avec les paramètres **ecn**, **ssid**, **rssi**, **mac**, **channel**.
* ecn: 0 OPEN , 1 WEP , 2 WPA_PSK , 3 WPA2_PSK , 4 WPA_WPA2_PSK
* ssid: chaîne représentant le nom du point d'accès
* rssi: force du signal en dB
* mac: chaîne représentant l'adresse MAC
* channel : valeur numérique
__Exemple de réponse avec AT+CWLAP__
<code>
23:16:55.796 -> AT+CWLAP
23:16:57.915 -> +CWLAP:(3,"ACEGRP_NET-F2",-22,"f8:9a:78:9b:67:05",4)
23:16:57.915 -> +CWLAP:(3,"ACEGRP_NET",-68,"50:c7:bf:8c:4f:e9",6)
23:16:57.915 -> +CWLAP:(3,"ACEGRP_NET",-82,"e0:24:81:49:14:eb",7)
23:16:57.915 ->
23:16:57.915 -> OK
</code>
===== CWJAP - Se connecter à un point d'accès =====
Connecter à un point d'accès l'ESP de nom de réseau **ssid** et de mot de passe **passwd**.
AT+CWJAP="ssid","passwd"
__Exemple de réponse avec AT+CWJAP en echec__
<code>
00:13:39.096 -> AT+CWJAP="ACEGRP_NET","249cb30b415788bdd20c5d3c20"
00:13:46.182 -> WIFI DISCONNECT
00:13:54.427 -> +CWJAP:1
00:13:54.427 ->
00:13:54.427 -> FAIL
</code>
__Exemple de réponse avec AT+CWJAP en réussite__
<code>
00:14:02.538 -> AT+CWJAP="ACEGRP_NET","249cb30b415788bdd20c5d3c20"
00:14:08.763 -> WIFI CONNECTED
00:14:12.671 -> WIFI GOT IP
00:14:13.632 ->
00:14:13.632 -> OK
</code>
===== CIFSR - Renvoi l'adresse IP local =====
AT+CIFSR
Renvoi l'adresse IP local. Il y a une adresse en mode client et une adresse en mode AP.
===== CIPMUX - Permettre des connexions multiples =====
Permet des connexions multiples ou non. L'option **mode** permet d'autoriser (valeur 1) ou non (valeur 0) les connexions multiples.
AT+CIPMUX=mode
===== CIPSERVER - Configurer comme un serveur =====
Configurer l'ESP8266 comme un serveur (**mode** à 1) ou non (**mode** à 0) sur le **port** indiqué. **Port** n'est pas une valeur obligatoire.
AT+CIPSERVER=mode,port
Si **mode** est passé à 0, il faut redémarrer l'ESP8266.
Le **port** par défaut est le 333.
La création d'un serveur n'est possible qu'a condition d'executer en pré requis la commande ''AT+CIPMUX=1''.