Sans modification du programme le **circuit intégré ESP8266** répondra à des commandes AT (ou commandes Hayes) s'il est chargé avec le firmware adéquat. C'est le cas de la plupart des ESP-01 Je propose le T.P. suivant afin de prendre en main un **ESP8266** avec les commandes AT. --- 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 ``` 00:21:55.429 -> OK 01:09:33.601 -> AT+CIPMUX=1 ``` --- Activer le serveur Web (port 80) ``` 01:09:33.601 -> OK 01:09:40.391 -> AT+CIPSERVER=1,80 ``` Lorsqu'un client se connecte, les informations suivantes dans la console s'affichent : ``` 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 ``` # 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 ``` 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 ``` ## 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 ``` 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 ``` Exemple de réponse avec AT+CWJAP en réussite ``` 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 ``` ## 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`.