ESP8266 AT parancsok

Az AT parancsok a már "történelmi" Hayes (modem) parancskészleten alapulnak, azoktól meglepően kevés eltéréssel. A parancsokat minden esetben "sortörés" és "új sor" prefixekkel kell zárni. Ha ez nem állítható be, akkor az ASCII-s "/r/n" sorzárással is lehet próbálkozni. Ha a kék led a parancs kiadása után felvillan, az azt jelenti, hogy a modul fogadta a parancsot és válaszolt. A parancsok karakterei között nem szabad szóközt (vagy bármi mást) hagyni.

Sajnos, ez a "/r/n" prefix a legtöbb UART monitorprogramon kifog, nekem legalábbis nem sikerült például a puTTY-ot rávennem a kommunikációra.

Ellenben viszont a Termite (bővebben itt) egy remek megoldást kínál a PC-ESP kommunikációra, a program innen tölthető le: https://www.compuphase.com/software_termite.htm

Ne feledjük:

  • az ESP-k alapból 115200 baud-dal kommunikálnak
  • a tápjuk és a TX, RX jelszintjük is a 3,3V-os TTL logikát alkalmazza, az 5V-os (vezetékes) kapcsolatokhoz illeszteni kell ezeket
  • AT+<x>=?: Teszt
  • AT+<x>?: Lekérdezés
  • AT+<x>=<…>: Beállítás
  • AT+<x>: Végrehajtás

Az AT parancsokat 3 csoportba lehet sorolni:

  • Alap-parancsok
  • WiFi szint parancsai
  • TCPIP szint parancsai

Megj.: Sok esetben az adott parancsnak van _CUR és _DEF variánsa is. Ezekben az esetekben a "sima" parancs helyett érdemes ezeket a változatokat alkalmazni:

  • _CUR: pillanatnyi állapot beállítása, az újraindítás után elveszik, mivel nem kerül mentésre a flash-be
  • _DIR: állandó állapot beállítása, az újraindítás után nem veszik el, mivel a flash-ben tárolásra kerül (gyári resettel törölhető)
parancsleírás
Alap-parancsok
ATTeszt parancs A válasznak az "OK"-nak kell lennie.
AT+RSTModul reset A válasz: "OK".
AT+GMRVerzió lekérdezés A válasz megadja az aktuális AT és SDK verziókat és a fordítási időt. A választ "OK"-val zárja.
AT+GSLP=<time>A mélyalvás késleltetési ideje (time) A válasz az idő és "OK" Az ESP8266-nak a "deep sleep" után ennyi idővel kell ébrednie.
<time>: késleltetési idő (ms)
Megj.: a "deep sleep" az ESP-01-en is elérhető, némi hekkeléssel. Lásd ott.
ATE (ATE0 vagy TAE1)A parancsok visszajelzése (visszhang) ATE0: visszhang ki, ATE1: visszhang be. A válasz: "OK" vagy "ERROR"
ERROR: a megadott paraméter nem 0 vagy 1.
AT+RESTOREGyári értékek visszaállítása A válasz: "OK"
A parancs a FLASH tartalmát visszaállítja gyári értékre és újraindítja a modult.
AT+UART=<baudrate>, <databits>, <stopbits>, <parity>, <flow control>A soros kommunikáció végleges beállítása A kommunikációs paraméterek a FLASH-be beírásra kerülnek. A válasz: "OK" Ajánlott inkább az AT+UART_CUR vagy AT+UART_DEF parancsok használata.
Például: AT+UART=115200, 8, 1, 0, 3
<baudrate>: 110..115200*40 (4.608 Mega)
<databits>: 5..8
<stopbits>: 1: 1 bit stop bit, 2: 1.5 bit, 3: 2 bit
<parity>: 0: None, 1: Odd, 2: EVEN
<flow control>: 0: disable flow control, 1: enable RTS, 2: enable CTS, 3: enable both RTS and CTS
AT+UART_CUR=<baudrate>, <databits>, <stopbits>, <parity>, <flow control>A soros kommunikáció ideiglenes beállítása A kommunikációs paraméterek a FLASH-be nem kerülnek be. A válasz: "OK"
Például: AT+UART_CUR=115200, 8, 1, 0, 3
AT+UART_DEF=<baudrate>, <databits>, <stopbits>, <parity>, <flow control>A soros kommunikáció alapértelmezett paramétereinek a beállítása A kommunikációs paraméterek a FLASH-be kerülnek és ezek lesznek a "default" paraméterek. A válasz: "OK"
Például: le AT+UART_DEF=115200, 8, 1, 0, 3
AT+SLEEP=<sleep mode>Az alvás-mód beállítása A válasz: "OK"
<sleep mode>: 0: alvás mód tiltva, 1: light-sleep mode, 2: modem-sleep mode
AT+SLEEP?Az alvás-mód lekérdezése A válasz az aktuális paraméter és "OK".
<sleep mode>: 0: alvás mód tiltva, 1: light-sleep mode, 2: modem-sleep mode
AT+WAKEUPGPIO=<enable>,<trigger_GPIO>,<trigger_level>[,<awake_GPIO>,<awake_level>]Az ESP8266 ébresztése GPIO-n keresztül Light-sleep módban
Példa: AT+WAKEUPGPIO=1,0,0 A modul felébred light-sleep módban, ha a GPIO0 LOW állapotba kerül
<enable>:
0: a modul nem ébreszthető light-sleep módban GPIO-n keresztül
1: a modul ébreszthető light-sleep módban GPIO-n keresztül
<trigger_GPIO>: Az "ébresztő" GPIO száma [0..15]
<trigger_level>:
0: Ébresztés a GPIO LOW level esetén
1: Ébresztés a GPIO HIGH level esetén
[<awake_GPIO>]: opcionális GPIO flag beállítása az ébresztéshez [0..15] \\[<awake_level>]: opcionális, az ébresztést követően a GPIO-t 0: LOW, 1: HIGH levelre kell állítani
Az awake_GPIO és trigger_GPIO értékei nem lehetnek azonosak
AT+RFPOWER=<TX power>A maximális adóteljesítmény beállítása A válasz: "OK".
Például: AT+RFPOWER=50
<TX power>: 0 ~ 82, 0.25dBm / egység
AT+RFVDD=<VDD33>A VDD33 kimeneti feszültségének állítása A válasz: "OK".
<VDD33>: 1900..3300 (1/1024 V)
AT+RFVDD?A VDD33 kimeneti feszültségének lekérdezése A válasz a <VDD33> és "OK".
<VDD33>: 1900..3300 (1/1024 V)
+RFAUTOTRACE:<enable>Automatikus RF követés Válasz: "OK". A paraméter a FLAsH-ben tárolásra kerül.
<enable>: 1: Automatikus RF követés engedélyezése, 0: tiltása
+RFAUTOTRACE?Automatikus RF követés állapotának lekérdezése Válasz: "+RFAUTOTRACE:<enable>" és "OK".
<enable>: 1: Automatikus RF követés engedélyezése, 0: tiltása
AT+SYSRAM?A RAM méretének a lekérdezése Válasz: "+SYSRAM:<remaining RAM size>" és "OK"
<remaining RAM size>: A RAM mérete bájtban
AT+SYSADC?Az ADC érték lekérdezése Válasz: "+SYSADC:<ADC>" és "OK"
<ADC>: ADC érték (1/1024V)
AT+SYSIOSETCFG=<pin>,<mode>,<pull-up>IO-k konfigurálása Válasz: "OK"
<pin>: a pin száma
<mode>: a pin módja; 3:GPIO
<pull-up>: felhúzóellenállás 0:tiltva, 1: engedélyezve
Ez a parancs meglehetősen HW-specifikus.
ESP-01 esetén a tapasztalatok alapján érdemes a mode-ot 0-ra állítani
AT+SYSIOGETCFG=<pin>IO-k konfigurációjának lekérdezése Válasz:"+SYSIOGETCFG:<pin>,<mode>,<pull-up>" és "OK"
<pin>: a pin száma
AT+SYSGPIODIR=<pin>,<dir>IO-k input/output beállítása Válasz:"OK" és "NOT GPIO MODE! ERROR"
<pin>: a pin száma
<dir>: a pin módja; 0:input, 1:output
AT+SYSGPIOWRITE=<pin>,<level>GPIO írása Válasz:"OK" és "NOT OUTPUT! ERROR"
<pin>: a pin száma
<level>: állapot 0: LOW, 1: HIGH
Példa:
AT+SYSIOSETCFG=12,3,1 //GPIO12 beállítása "GPIO"-nak
AT+SYSGPIODIR=12,1 //GPIO12 beállítása "output"-nak
AT+SYSGPIOWRITE=12,1 //GPIO12 beállítása "HI"-ra

T+SYSGPIOREAD=<pin>GPIO olvasása Válasz, ha nincs hiba: "+SYSGPIOREAD:<pin>,<dir>,<level>" és "OK"
válasz hiba esetén: "NOT GPIO MODE!" és "ERROR"
<pin>: GPIO pin száma
<dir>: pin iránya - 0: input, 1: output
<level>: jelszint - 0: low level, 1: high level
Példa:
AT+SYSIOSETCFG=12,3,1 //GPIO12 beállítása "GPIO"-nak
AT+SYSGPIODIR=12,0 //GPIO12 beállítása "input"-nak
AT+SYSGPIOREAD=12 //GPIO12 olvasása
AT+SYSMSG_CUR=<n>Rendszerüzenetek indeiglenes beállítása A beállítás nem kerül a FLASH-be tárolásra. Válasz "OK". A parancs két bitből áll:
bit0: Az üzenetek nyugtázása: 0: nincs nyugtázás, 1: nyugtázás a "message +QUITT" üzenettel. Alapértelmezés: 0
bit1: állapotjelzés: 0: alapjelzés ("<Link_ID>,CONNECT"), 1: bővebb jelzés (+LINK_CONN:<status_type>,<link_id>,"UDP/TCP/SSL",<c/s>,<remote_ip>,<remote_port>,<local_port>)
Példa: AT+SYSMSG_CUR=3 (mindkét funkció bekapcsolva)
AT+SYSMSG_DEF=<n>Rendszerüzenetek végleges beállítása A beállítás a FLASH-ben tárolásra kerül. Válasz "OK". A parancs két bitből áll:
bit0: Az üzenetek nyugtázása: 0: nincs nyugtázás, 1: nyugtázás a "message +QUITT" üzenettel. Alapértelmezés: 0
bit1: állapotjelzés: 0: alapjelzés ("<Link_ID>,CONNECT"), 1: bővebb jelzés (+LINK_CONN:<status_type>,<link_id>,"UDP/TCP/SSL",<c/s>,<remote_ip>,<remote_port>,<local_port>)
Példa: AT+SYSMSG_DEF=3 (mindkét funkció bekapcsolva)
WiFi-parancsok
AT+CWMODE=<mode>Wifi mód választása Ez a parancs kissé problémás, használja helyette a AT+CWMODE_CUR-t vagy AT+CWMODE_DEF-et
AT+CWMODE_CUR=<mode>A pillanatnyi Wifi mód kiválasztása A beállított érték nem kerül a FLASH-be tárolásra. A válasz: "OK".
Például: AT+CWMODE_CUR=3
<mode>:
1 : station mode
2 : softAP mode
3 : softAP + station mode
AT+CWMODE_CUR?A pillanatnyi Wifi mód lekérdezése A válasz a <mode> és "OK".
AT+CWMODE_DEF=<mode>Az alapértelmezett Wifi mód kiválasztása A beállított érték a FLASH-be tárolásra kerül. A válasz: "OK".
Például: AT+CWMODE_DEF=1
<mode>:
1 : station mode
2 : softAP mode
3 : softAP + station mode
AT+CWMODE_DEF?Az alapértelmezett Wifi mód lekérdezése A válasz a <mode> és "OK".
AT+CWJAP=<ssid>, <pwd>[, <bssid>]Csatlakozás egy AP-hez A parancs helyett érdemes inkább a AT+CWJAP_CUR-t vagy AT+CWJAP_DEF-et használni. A válasz vagy OK, vagy +CWJAP:<error code> FAIL
Pélául: AT+CWJAP ="abc", "0123456789"
AT+CWJAP ="abc", "0123456789", "ca:d7:19:d8:a6:44"
<ssid>: string, Az AP SSID-je
<pwd>: string, jelszó, maximum 64 byte ASCII
[<bssid>]: string, opcionális, az AP MAC címe, gyakran megegyezik az SSID-vel
<error code>: 1 időtúllépés
<error code>: 2 rossz jelszó
<error code>: 3 az AP nem található
<error code>: 4 csatlakozási hiba
AT+CWJAP?Az aktuálisan csatlakozott AP adatok lekérdezése A válasz +CWJAP:<ssid>, <bssid>, <channel>, <rssi> és OK.
AT+CWJAP_CUR=<ssid>, <pwd>[, <bssid>]Ideiglenes csatlakozás egy AP-hez A beállított paraméterek nem kerülnek a FLASH-be mentésre. A beállításokat lésd fent, az AT+CWJAP-nél.
AT+CWJAP_CUR?Az ideiglenesen csatlakozott AP adatok lekérdezése A válasz +CWJAP:<ssid>, <bssid>, <channel>, <rssi> és OK.
AT+CWJAP_DEF=<ssid>, <pwd>[, <bssid>]Végleges csatlakozás egy AP-hez A beállított paraméterek a FLASH-ben mentésre kerülnek. A beállításokat lésd fent, az AT+CWJAP-nél.
AT+CWJAP_DEF?A véglegesen csatlakozott AP adatok lekérdezése A válasz +CWJAP:<ssid>, <bssid>, <channel>, <rssi> és OK.
AT+CWLAP
AT+CWLAP=<ssid>[, <mac>, <ch>]
Az elérhető AP-k listája Válasz a lista: +CWLAP:<ecn>, <ssid>, <rssi>, <mac>, <ch>, <freq offset>, <freq calibration> és vagy OK vagy ERROR
Példa: egy adott AP keresése: AT+CWLAP="WiFi", "ca:d7:19:d8:a6:44", 6, egy SSID-s AP keresése: AT+CWLAP="ezitt"
<ecn>:
0 OPEN
1 WEP
2 WPA_PSK
3 WPA2_PSK
4 WPA_WPA2_PSK
<ssid>: string, az AP SSID-je
<rssi>: jelerősség
<mac>: string, MAC address
<freq offset> az AP frekvencia-sávja, egysége: KHz (ppm: <freq offset> / 2.4)
<freq calibration> frekvencia-sáv kalibrációja \\
AT+CWLAPOPT=<sort_enable>, <mask>Az "AT+CWLAP" parancs konfigurálása A válasz vagy "OK" vagy "ERROR".
Pélául: AT+CWLAPOPT=1, 127 (rssi szerinti rendezés, minden paraméter megjelenítése)
<sort_enable>: 1: a lista <rssi> szerinti rendezése, 0: <rssi> nélküli rendezése
<mask>: az alábbi jellemzők megjelenítése (0: nem jelenik meg, 1: megjelenik):
bit 0: <ecn> megjelenítése
bit 1: <ssid> megjelenítése
bit 2: <rssi> megjelenítése
bit 3: <mac> megjelenítése
bit 4: <ch> megjelenítése
bit 5: <freq offset> megjelenítése
bit 6: <freq calibration> megjelenítése
AT+ CWQAPLecsatlakozás az AP-ről Válasz: OK
AT+CWSAP=<ssid>, <pwd>, <chl>, <ecn>[, <max conn>][, <ssid hidden>]A softAP mode konfigurációja Ajánlott inkább az AT+CWSAP_CUR vagy AT+CWSAP_DEF parancsok használata. A válasz OK vagy ERROR lehet.
Pélául: AT+CWSAP="ESP8266","1234567890",5,3
<ssid>: string, az ESP8266 softAP SSID-je
<pwd>: string, jelszó az AP-hoz, 8 ~ 64 byte ASCII
<chl>: csatorna azonosító
<ecn>: hozzáférési mód:
0 OPEN
2 WPA_PSK
3 WPA2_PSK
4 WPA_WPA2_PSK
<max conn>: az ESP8266 soft-AP-hez csatlakozó állomások maximális száma [1..4]
<ssid hidden>: Broadcast SSID alapértelmezése: 0: broadcast, 1: nincs broadcast
AT+CWSAP?A softAP konfigurációjának lekérdezése A válasz: +CWSAP:<ssid>, <pwd>, <chl>, <ecn>, <max conn>, <ssid hidden>
AT+CWSAP_CUR=<ssid>, <pwd>, <chl>, <ecn>[, <max conn>][, <ssid hidden>]A softAP mode konfigurációjának ideiglenes módosítása Lásd fent: AT+CWSAP
AT+CWSAP_CUR?A softAP mode ideiglenes konfigurációjának lekérdezése A módosítás a FLASH-ben nem kerül mentésre. Lásd fent: AT+CWSAP?
AT+CWSAP_DEF=<ssid>, <pwd>, <chl>, <ecn>[, <max conn>][, <ssid hidden>]A softAP mode konfigurációjának végleges módosítása A módosítás a FLASH-be mentésre kerül. Lásd fent: AT+CWSAP
AT+CWSAP_DEF?A softAP mode végleges konfigurációjának lekérdezése Lásd fent: AT+CWSAP?
AT+ CWLIFAz ESP8266 softAP-hez csatlakozott állomások jegyzéke A válasz a jegyzék <IP addr>, <mac> formában és OK.
A parancs a statikus IP-kel nem boldogul, csak akkor működik, ha van DHCP (és az engedélyezve is van), lásd lent: AT+ CWDHCP
<IP addr>: a csatlakozott egység IP címe
<mac>: a csatlakozott egység MAC address-sze
AT+CWDHCP=<mode>,<en>A DHCP engedélyezése / tiltása A válasz OK. Javasolt inkább az AT+CWDHCP_CUR vagy AT+CWDHCP_DEF parancsok használata. A parancs ellentételesen működik az AT+CIPSTA-val, a kettőt egyszerre kell állítani.
<mode>:
0 : ESP8266 soft-AP
1 : ESP8266 station
2 : softAP és station egyidejűleg
<en>: 0: DHCP tiltása, 1: DHCP engedélyezése
AT+CWDHCP?A DHCP állapotának a lekérdezése Bit0: A soft-AP DHCP 0: tiltva, 1: engedélyezve Bit1: A station DHCP 0: tiltva, 1: engedélyezve
AT+CWDHCP_CUR=<mode>,<en>A DHCP ideiglenes engedélyezése / tiltása A beállítás nem kerül a FLASH-be mentésre. Lásd fent: AT+CWDHCP
AT+CWDHCP_CUR?A DHCP ideiglenes állapotának a lekérdezése Lásd fent: AT+CWDHCP?
AT+CWDHCP_DEF=<mode>,<en>A DHCP végleges engedélyezése / tiltása A beállítás a FLASH-be kerül mentésre. Lásd fent: AT+CWDHCP
AT+CWDHCP_DEF?A DHCP végleges állapotának a lekérdezése Lásd fent: AT+CWDHCP?
AT+CWDHCPS_CUR=<enable>, <lease time>, <start IP>, <end IP>A DHCP címtartományának ideiglenes korlátozása A beállítás nem kerül a FLASH-be mentésre.
Pélául: AT+CWDHCPS_CUR=1, 3, "192.168.4.10", "192.168.4.15"
AT+CWDHCPS_CUR=0 (a korlátozás feloldása)
<enable>: 1: korlátozás, 0: korlátozás feloldása
<lease time>: a korlátozás érvénybe lépése percben [1..2880]
<start IP>: az IP tartomány alsó határa
<end IP>: az IP tartomány felső határa
AT+CWDHCPS_DEF=<enable>, <lease time>, <start IP>, <end IP>A DHCP címtartományának végleges korlátozása A beállítás a FLASH-be kerül mentésre.
Pélául: AT+CWDHCPS_DEF=1, 3, "192.168.4.10", "192.168.4.15"
AT+CWDHCPS_DEF=0 (a korlátozás feloldása)
<enable>: 1: korlátozás, 0: korlátozás feloldása
<lease time>: a korlátozás érvénybe lépése percben [1..2880]
<start IP>: az IP tartomány alsó határa
<end IP>: az IP tartomány felső határa
AT+CWAUTOCONN=<enable>Automatikus csatlakozás az AP-hez A válasz OK.
<enable>:
0: bekapcsolás után nem csatlakozik automatikusan
1: automatikus csatlakozás az AP-hez a bekapcsolást követően
AT+CIPSTAMAC=<mac>MAC adress beállítása Javasolt inkább a AT+CIPSTAMAC_CUR vagy AT+CIPSTAMAC_DEF parancsok használata. Válasz: OK.
<mac>: string, az ESP8266 MAC address-sze
AT+CIPSTAMAC?MAC adress lekérdezése
Válasz: +CIPSTAMAC:<mac> és OK.
AT+CIPSTAMAC_CUR=<mac>MAC adress ideiglenes beállítása A beállítás nem kerül a FLASH-be mentésre. Lásd fent: AT+CIPSTAMAC
AT+CIPSTAMAC_CUR?ideiglenes MAC adress lekérdezése
Lásd: AT+CIPSTAMAC?
AT+CIPSTAMAC_DEF=<mac>MAC adress végleges beállítása A beállítás nem kerül a FLASH-be mentésre. Lásd fent: AT+CIPSTAMAC
AT+CIPSTAMAC_DEF?végleges MAC adress lekérdezése
Lásd: AT+CIPSTAMAC?
AT+CIPSTA_CUR=<ip>[,<gateway>,<netmask>]Az IP cím ideiglenes beállítása A beállítás nem kerül a FLASH-be letárolásra. Válasz: "OK"
<ip>: az ESP8266 IP címe, string
[<gateway>]: opcionális - gateway
[<netmask>]: opcionális - netmask
A AT+CWDHCP beállításai a DHCP-vel kapcsolatban érvénytelenné válnak
Példa: AT+CIPSTA_CUR="192.168.6.100","192.168.6.1","255.255.255.0"
AT+CIPSTA_CUR?Az ideiglenes IP cím lekérdezése Válasz: +CIPSTA_CUR:<ip>
+CIPSTA_CUR:<gateway>
+CIPSTA_CUR:<netmask>
OK
A parancs csak akkor működik, ha az ESP8266 már csatlakozott egy AP-hez
AT+CIPSTA_DEF=<ip>[,<gateway>,<netmask>]Az IP cím végleges beállítása A beállítás a FLASH-ben letárolásra kerül. Válasz: "OK"
<ip>: az ESP8266 IP címe, string
[<gateway>]: opcionális - gateway
[<netmask>]: opcionális - netmask
A AT+CWDHCP beállításai a DHCP-vel kapcsolatban érvénytelenné válnak
Példa: AT+CIPSTA_DEF="192.168.6.100","192.168.6.1","255.255.255.0"
AT+CIPSTA_DEF?A végleges IP cím lekérdezése Válasz: +CIPSTA_DEF:<ip>
+CIPSTA_DEF:<gateway>
+CIPSTA_DEF:<netmask>
OK
A parancs csak akkor működik, ha az ESP8266 már csatlakozott egy AP-hez
AT+CIPAP_CUR=<ip>[,<gateway>,<netmask>]A SoftAP ideiglenes IP címének beállítása A beállítás nem kerül a FLASH-be letárolásra. Válasz: "OK"
<ip>: a SoftAP IP címe, string
[<gateway>]: opcionális - gateway
[<netmask>]: opcionális - netmask
A AT+CWDHCP beállításai a DHCP-vel kapcsolatban érvénytelenné válnak
Példa: AT+CIPAP_CUR="192.168.6.100","192.168.6.1","255.255.255.0"
AT+CIPAP_CUR?A SoftAP ideiglenes IP címének lekérdezése Válasz: +CIPAP_CUR:<ip>
+CIPAP_CUR:<gateway>
+CIPAP_CUR:<netmask>
OK
AT+CIPAP_DEF=<ip>[,<gateway>,<netmask>]A SoftAP végleges IP címének beállítása A beállítás nem kerül a FLASH-be letárolásra. Válasz: "OK"
<ip>: a SoftAP IP címe, string
[<gateway>]: opcionális - gateway
[<netmask>]: opcionális - netmask
A AT+CWDHCP beállításai a DHCP-vel kapcsolatban érvénytelenné válnak
Példa: AT+CIPAP_DEF="192.168.6.100","192.168.6.1","255.255.255.0"
AT+CIPAP_DEF?A SoftAP végleges IP címének lekérdezése Válasz: +CIPAP_DEF:<ip>
+CIPAP_DEF:<gateway>
+CIPAP_DEF:<netmask>
OK
AT+CWSTARTSMART=<type>SmartConfig indítása A Smartconfig egy olyan alkalmazás, mely lehetővé teszi az ESP8266 egységeknek a Wifi hálózathoz csatlakozását mobiltelefonos applikáción keresztül. Erről bővebben itt olvashat.
<type>: 1: ESP-TOUCH, 2: AirKiss, 3: ESP-TOUCH+AirKiss
Példa:
AT+CWMODE=1
AT+CWSTARTSMART
AT+CWSTOPSMARTSmartConfig leállítása Válasz "OK"
AT+CWSTARTDISCOVER=<WeChat number>,<dev_type>,<time>A WeChat-hoz való csatlakozás engedélyezése Ez is valami aluldokumentált funkció
AT+WPS=<enable>WPS engedélyezése Válasz "OK" vagy "ERROR".
<enable>: 1: WPS (Wi-Fi Protected Setup) engedélyezése, 0:tiltása
Példa:
AT+CWMODE=1
AT+WPS=1
AT+MDNS=<enable>,<hostname>,<server_name>,<server_port>mDNS funkció beállítása Válasz: "OK" vagy "ERROR".
<enable>: 1: az MDNS engedélyezése; 0: tiltása
<hostname>: MDNS kiszolgáló (host) neve
<server_name>: MDNS szerver neve
<server_port>: MDNS szerver portja
Példa: AT+MDNS=1,"espressif","iot",8080
Speciális karaktereket (pl: .) vagy protokollneveket (pl: http, tcp, utp) nem szabad használni az alábbi paraméterekben: <hostname> és <server_name>.
AT+CWHOSTNAME=<hostname>Host name beállítása az ESP8266-ra Válasz "OK" vagy "ERROR".
<hostname>: a host name az ESP8266 számára
A beállítás nem kerül a FLASH-ben mentésre. Az alapértelmezett host name valami ilyesmi: ESP_XXXXXX; XXXXXX, az utolsó 3 byte az aktuális MAC-adress, például: ESP_A378DA. Példa:
AT+CWMODE=3
AT+CWHOSTNAME="my_test"
AT+CWHOSTNAME?Host name lekérdezése az ESP8266-ből Válasz "+CWHOSTNAME:<host name>" és "OK" vagy "+CWHOSTNAME:<null>" és "OK", ha az állomás mód (AT+CWMODE) nincs engedélyezve
TCP/IP-parancsok
AT+CIPSTATUSTCP/IP kapcsolat állapota Válasz:
STATUS:<stat>
+CIPSTATUS:<link ID>,<type>,<remote IP>,<remote port>,<local port>,<tetype>
<stat>: ESP8266 "Station" kapcsolata
2: Az ESP8266 Station kapcsolódott az AP-hez, ennek az IP-je ismert
3: Az ESP8266 Station TCP-n vagy UDP-n forgalmaz
4: Az ESP8266 Station TCP-je vagy UDP-je megszakadt
5: Az ESP8266 Station nem tud kapcsolódni az AP-hez

<link ID>: a kapcsolat azonosítója (0~4), "multiple" kapcsolódás esetén
<type>: string: "TCP" vagy "UDP".
<remote IP>: a távoli állomás IP-je
<remote port>: a távoli állomás portja
<local port>: az ESP8266 lokális portja
<tetype>: 0: az ESP8266 kliensként működik, 1: az ESP8266 szerverként működik
AT+CIPDOMAIN=<domain name>DNS beállítása Válasz "OK".
<domain name>: a domain-név, hossza nem haladhatja meg a 64 bájot
Példa:
AT+CWMODE=1 // "station" mód
AT+CWJAP="SSID","password" // jelszó
AT+CIPDOMAIN="iot.espressif.cn" // DNS funkció
AT+CIPDOMAIN?DNS lekérdezése Válasz "+CIPDOMAIN:<IP address>"
Egyszeres (sigle) TCP kapcsolat:

AT+CIPSTART=<type>,<remote IP>,<remote port>[,<TCP keep alive>]
Egyszeres TCP kapcsolat (AT+CIPMUX=0) Válasz "OK" vagy "ERROR", ha a kapcsolat létejött: "ALREADY CONNECT"
<link ID>: ID ID azonosítója (0~4), többszörös kapcsolat esetén
<type>: string: "TCP", "UDP" vagy "SSL"
<remote IP>: távoli állomás IP-je
<remote port>: távoli állomás portja
[<TCP keep alive>]: opcionális: 0: nincs TCP felügyeleti idő (alapértelmezett), 1..7200: felügyeleti idő másodpercben
Példa:
AT+CIPSTART="TCP","iot.espressif.cn",8000
AT+CIPSTART="TCP","192.168.101.110",1000
Többszörös (multiple) TCP kapcsolat:

AT+CIPSTART=CIPSTART=<link ID>,<type>,<remote IP>,<remote port>[,<TCP keep alive>]
Többszörös TCP kapcsolat (AT+CIPMUX=1) Válasz "OK" vagy "ERROR", ha a kapcsolat létejött: "ALREADY CONNECT"
<link ID>: ID ID azonosítója (0~4), többszörös kapcsolat esetén
<type>: string: "TCP", "UDP" vagy "SSL"
<remote IP>: távoli állomás IP-je
<remote port>: távoli állomás portja
[<TCP keep alive>]: opcionális: 0: nincs TCP felügyeleti idő (alapértelmezett), 1..7200: felügyeleti idő másodpercben
Példa:
AT+CIPSTART="TCP","iot.espressif.cn",8000
AT+CIPSTART="TCP","192.168.101.110",1000
Egyszeres (single) UDP kapcsolat:

AT+CIPSTART=<type>,<remote IP>,<remote port>[,(<UDP local port>),(<UDP mode>)]
Egyszeres UDP kapcsolat (AT+CIPMUX=0) Válasz "OK" vagy "ERROR", ha a kapcsolat létejött: "ALREADY CONNECT"
<link ID>: ID ID azonosítója (0~4), többszörös kapcsolat esetén
<type>: string: "TCP", "UDP" vagy "SSL"
<remote IP>: távoli állomás IP-je
<remote port>: távoli állomás portja [<UDP local port>]: opcionális: helyi UDP port
[<UDP mode>]: opcionális:
0: az UDP cél-egysége nem változtatható (alapértelmezett)
1: az UDP cél-egysége egyszer változtatható
2: az UDP cél-egysége változtatható
Példa:
AT+CIPSTART="UDP","192.168.101.110",1000,1002,2
Többszörös (multiple) UDP kapcsolat:

AT+CIPSTART=CIPSTART=<link ID>,<type>,<remote IP>,<remote port>[,(<UDP local port>),(<UDP mode>)]
Többszörös UDP kapcsolat (AT+CIPMUX=1) Válasz "OK" vagy "ERROR", ha a kapcsolat létejött: "ALREADY CONNECT"
<link ID>: ID ID azonosítója (0~4), többszörös kapcsolat esetén
<type>: string: "TCP", "UDP" vagy "SSL"
<remote IP>: távoli állomás IP-je
<remote port>: távoli állomás portja
[<UDP local port>]: opcionális: helyi UDP port
[<UDP mode>]: opcionális:
0: az UDP cél-egysége nem változtatható (alapértelmezett)
1: az UDP cél-egysége egyszer változtatható
2: az UDP cél-egysége változtatható
Példa:
AT+CIPSTART="UDP","192.168.101.110",1000,1002,2
SSL (single) kapcsolat:

AT+CIPSTART=<type>,<remote IP>,<remote port>[,<TCP keep alive>]
SSL kapcsolat (AT+CIPMUX=0) Válasz "OK" vagy "ERROR", ha a kapcsolat létejött: "ALREADY CONNECT"
<link ID>: ID ID azonosítója (0~4), többszörös kapcsolat esetén
<type>: string: "TCP", "UDP" vagy "SSL"
<remote IP>: távoli állomás IP-je
<remote port>: távoli állomás portja
[<TCP keep alive>]: opcionális: 0: nincs TCP felügyeleti idő (alapértelmezett), 1..7200: felügyeleti idő másodpercben
Példa:
AT+CIPSTART="TCP","iot.espressif.cn",8000
AT+CIPSTART="SSL","iot.espressif.cn",8443

Az ESP8266 egyszerre csak egy SSL kapcsolatot támogat
AZ SSL-nek nagy a memeóriaigénye.
AT+CIPSSLSIZE=<size>Az SSL pufferméretének állítása Válasz "OK" vagy "ERROR".
<size>: az SSL puffermérete: [2048, 4096]. Példa:
AT+CIPSSLSIZE=4096
Egyszeres (single) kapcsolat esetén:

AT+CIPSEND=<length>
Adatküldés beállítása (+CIPMUX=0) Válasz "SEND OK" vagy "ERROR"
<link ID>: az ID azonosítója (0~4), többszörös kapcsolat esetén
<length>: telegramm hossza, maximum 2048 bájt
[<remote IP>]: Opcionális: Távoli IP UDP kapcsolat esetén
[<remote port>]: Opcionális: Távoli port UDP kapcsolat esetén
Többszörös (multiple) kapcsolat esetén:

AT+CIPSEND=<link ID>,<length>
Adatküldés beállítása (+CIPMUX=1) Válasz "SEND OK" vagy "ERROR"
<link ID>: az ID azonosítója (0~4), többszörös kapcsolat esetén
<length>: telegramm hossza, maximum 2048 bájt
[<remote IP>]: Opcionális: Távoli IP UDP kapcsolat esetén
[<remote port>]: Opcionális: Távoli port UDP kapcsolat esetén
IP változással az UDP alatt:

AT+CIPSEND=[<link ID>,]<length> [,<remote IP>,<remote port>]
Adatküldés beállítása (UDP) Válasz "SEND OK" vagy "ERROR"
<link ID>: az ID azonosítója (0~4), többszörös kapcsolat esetén
<length>: telegramm hossza, maximum 2048 bájt
[<remote IP>]: Opcionális: Távoli IP UDP kapcsolat esetén
[<remote port>]: Opcionális: Távoli port UDP kapcsolat esetén
Transzparens egyszeres (single) kapcsolat:

AT+CIPSEND
A "transparens" küldés művelet végrehajtása Ez a mód csak transzparens egyszeres (single) kapcsolat esetén használható
A csomagok küldése között legalább 20 msec-et kell várni.
A csomagok maximális mérete 2048 bájt lehet. A beérkező csomag "+++" tartalommal jelzi, hogy az ESP8266 visszatért parancs módba.
Egyszeres (single) kapcsolat esetén:

AT+CIPSENDEX=<length>
Megadott hosszúságú adatküldés beállítása (+CIPMUX=0) Válasz "SEND OK" vagy "ERROR"
Az adatküldés elindul, ha az adatmennyiség eléri a <length> paraméterben megadott hosszt, vagy \\0 terminate karakter érkezik.
<link ID>: az ID azonosítója (0~4), többszörös kapcsolat esetén
<length>: telegramm hossza, maximum 2048 bájt
[<remote IP>]: Opcionális: Távoli IP UDP kapcsolat esetén
[<remote port>]: Opcionális: Távoli port UDP kapcsolat esetén
Többszörös (multiple) kapcsolat esetén:

AT+CIPSENDEX=<link ID>,<length>
Megadott hosszúságú adatküldés beállítása (+CIPMUX=1) Válasz "SEND OK" vagy "ERROR"
Az adatküldés elindul, ha az adatmennyiség eléri a <length> paraméterben megadott hosszt, vagy \\0 terminate karakter érkezik.
<link ID>: az ID azonosítója (0~4), többszörös kapcsolat esetén
<length>: telegramm hossza, maximum 2048 bájt
[<remote IP>]: Opcionális: Távoli IP UDP kapcsolat esetén
[<remote port>]: Opcionális: Távoli port UDP kapcsolat esetén
IP változással az UDP alatt:

AT+CIPSENDEX=[<link ID>,]<length> [,<remote IP>,<remote port>]
Megadott hosszúságú adatküldés beállítása (UDP) Válasz "SEND OK" vagy "ERROR"
Az adatküldés elindul, ha az adatmennyiség eléri a <length> paraméterben megadott hosszt, vagy \\0 terminate karakter érkezik.
<link ID>: az ID azonosítója (0~4), többszörös kapcsolat esetén
<length>: telegramm hossza, maximum 2048 bájt
[<remote IP>]: Opcionális: Távoli IP UDP kapcsolat esetén
[<remote port>]: Opcionális: Távoli port UDP kapcsolat esetén
AT+CIPSENDBUF=<length>
AT+CIPSENDBUF=<linkID>,<length>
TCP küldés puffer beállítása
Egyszeres (singe) kapcsolat esetén (+CIPMUX=0): AT+CIPSENDBUF=<length
Multiple kapcsolat esetén (+CIPMUX=1): AT+CIPSENDBUF=<linkID>,<length»
Válasz: <current segment ID>,<segment ID of which sent successfully> és "OK" vagy "ERROR".
Hiba: - nincs kapcsolat, - nem TCP kapcsolat, - puffer túlcsordulás, - valami ilyesmi.
Átvitel vége (single): <segment ID>,SEND OK, (multiple): <link ID>,<segment ID>,SEND OK
<link ID>: az ID azonosítója (0~4), többszörös kapcsolat esetén
<segment ID>: uint32; Az átküldött csomag azonosítója. Minden, a pufferből elküldött csomagnak egyedi azonosítója van. Küldés esetén a számláló 1-ről indul és egyesével növekszik
<length>: adathossz; maximum 2048 bájt
A parancs SSL kapcsolat esetén nem működik.
Single, multiple:
AT+CIPBUFRESET
AT+CIPBUFRESET=<link ID>
Az adott ID szegmensszámláló visszaállítása Válasz OK vagy ERROR.
ERROR: a kapcsolat nem létezik vagy éppen várakoznak adatok a TCP küldésre.
<link ID>: az ID azonosítója (0~4), többszörös kapcsolat esetén
Ez a parancs csak a AT+CIPSENDBUF aktiválása után működik.
Single, multiple:
AT+CIPBUFSTATUS
AT+CIPBUFSTATUS=<link ID>
A TCP küldő puffer állapotának a lekérdezése Válasz: <next segment ID>,<segment ID sent>,<segment ID successfully sent>,<remain buffer size>,<queue number> és OK
<next segment ID>: A következő TCP szegmensazonosító az AT+CIPSENDBUF-ban
<segment ID sent>: Az utoljára küldött TCP szegmens azonosítója
<segment ID successfully sent>: Az utoljára eredményesen küldött TCP szegmens azonosítója
<remain buffer size>: A szegmenspuffer mérete
<queue number>: ha a funkció engedélyezett; a sorban álló szegmensek száma. Nem megbízható, és csak referenciaként használható fel; amikor értéke: 0, nem lehet TCP-adatokat küldeni.
Single, multiple:
AT+CIPCHECKSEQ=<segment ID>
AT+CIPCHECKSEQ=<link ID>,<segment ID>
Egy adott szegmens küldésének az ellenőrzése Válasz: [<link ID>,]<segment ID>,<status> és "OK" A funkció csak az utolsó 32 szegmensküldésre alkalmazható.
[<link ID>]: az ID azonosítója (0~4), többszörös kapcsolat esetén
<segment ID>: a szegmnes száma
<status>: FALSE: hibás szegmensküldés; TRUE: eredményes szegmensküldés
A parancs csak a AT+CIPSENDBUF aktiválása után használható.
Single, multiple:
AT+CIPCLOSE
AT+CIPCLOSE=<link ID>
A TCP/UDP/SSL kapcsolat lezárása
<link ID>: az ID azonosítója (0~4), többszörös kapcsolat esetén
AT+CIFSRA lokális IP lekérdezése Válasz: +CIFSR:<SoftAP IP address> +CIFSR:<Station IP address> és "OK"
<IP address>:
az ESP8266 SoftAP IP címe;
az ESP8266 állomás IP címe (csak akkor olvasható ki, ha az állomás már csatlakozott AP-hez)
AT+CIPMUX=<mode>Single - multiple kapcsolatválasztó Válasz: "OK"
<mode>:
0: single kapcsolat (alapértelmezett)
1: multiple kapcsolat (csak akkor választható, ha a transzparens küldés inaktív (AT+CIPMODE=0)
Csak olyankor lehet változtatni a beállítást, ha nincs nyitott kapcsolat.
A szervert először törölni kell (AT+CIPSERVER=0), single választása esetén.
AT+CIPMUX?A Single - multiple kapcsolatválasztó lekérdezése Válasz: +CIPMUX:<mode> és "OK"
<mode>:
0: single kapcsolat
1: multiple kapcsolat
AT+CIPSERVER=<mode>[,<port>]Szerver létrehozása vagy törlése Válasz: "OK"
<mode>:
0: szerver törlése
1: szerver létrehozása
<port>: opcionális: port megadása (alapértelmezett: 333)
A szerver csak akkor hozható létre, ha a "multiple" kapcsolat aktív (AT+CIPMUX=1)
Példa:
AT+CIPMUX=1
AT+CIPSERVER=1,1001
AT+CIPMODE=<mode>Transzparens átvitel beállítása (UART-Wi-Fi passthrough mode)
<mode>:
0: normál átvitel
1: transzparens átvitel (UART-Wi-Fi passthrough mode) (csak single TCP átvitel esetén, illetve az UDP-nél, ha a távoli cím nem változik)
A beállítás nem kerül mentésre a FLASH-be
Transzparens módban a TCP kapcsolat megszakadása esetén az ESP8266 megkíséreli a kapcsolatot újra bekapcsolni. Normál módban nem.
AT+CIPMODE?Átviteli mód lekérdezése (UART-Wi-Fi passthrough mode) Válasz: +CIPMODE:<mode> és "OK"
<mode>:
0: normál átvitel
1: transzparens átvitel (UART-Wi-Fi passthrough mode)
TCP single kapcsolat
AT+SAVETRANSLINK=<mode>,<remote IP vagy domain-név>,<remote port>[,<type>,<TCP keep alive>]
Transzparens átvitel beállításának mentése a FLASH-be (UART-Wi-Fi passthrough mode) Válasz: "OK" vagy "ERROR"
<mode>:
0: normál átvitel bekapcsolás után
1: transzparens átvitel bekapcsolás után (UART-Wi-Fi passthrough mode)
<remote IP>: távoli IP vagy domain-név
<remote port>: távoli port
[<type>]: opcionális: TCP vagy UDP, alapértelmezett: TCP
[<TCP keep alive>] opcionális: TCP életben tartása.
0: TCP életben tartás tiltása (alapértelmezett)
1..7200: TCP életben tartás hossza másodpercben
Példa: AT+SAVETRANSLINK=1,"192.168.6.110",1002,"TCP"
UDP kapcsolat
AT+SAVETRANSLINK=<mode>,<remote IP vagy domain-név>,<remote port>[,<type>,<UDP local port>]
Transzparens átvitel beállításának mentése a FLASH-be (UART-Wi-Fi passthrough mode) Válasz: "OK" vagy "ERROR"
<mode>:
0: normál átvitel bekapcsolás után
1: transzparens átvitel bekapcsolás után (UART-Wi-Fi passthrough mode)
<remote IP>: távoli IP vagy domain-név
<remote port>: távoli port
[<type>]: opcionális: TCP vagy UDP, alapértelmezett: TCP
[<UDP local port>] opcionális: UDP helyi port
Példa: AT+SAVETRANSLINK=1,"192.168.6.110",1002,"UDP",1005
AT+CIPSTO=<time>TCP szerver (timeout) felügyeleti idő beállítása
<time>: 0..7200 sec TCP (timeout) felügyeleti idő, ha 0, akkor rögtön leold, ha nincs kapcsolat
Példa:
AT+CIPMUX=1
AT+CIPSERVER=1,1001
AT+CIPSTO=10
AT+PING=<IP>Ping pack Válasz +<time> és "OK" vagy "ERROR"
<IP>: string; hoszt IP vagy domain-név
<time>: válasz-idő
Példa:
AT+PING="192.168.1.1"
AT+PING="www.ob121.com"
+CIPUPDATE:<n>Szoftver upate WiFi-n keresztül
<n>:
1: szerver keresése
2: kapcsolat a szerverrel
3: szoftver letöltése
4: update start
AT+CIPDINFO=<mode>Távoli IP és port lekérdezése az IPD-vel
<mode>: 0: nem látható az IP és a port, 1: látható
egyszeres (single) kapcsolat
(+CIPMUX=0)+IPD,<len>[,<remote IP>,<remote port>]:<data>
+IPD adatok fogadása
[<remote IP>]: opcionális: távoli IP AT+CIPDINFO=1 esetén engedélyezett
[<remote port>]: opcionális: távoli port AT+CIPDINFO=1 esetén engedélyezett
<link ID>: az ID azonosítója (0~4), többszörös kapcsolat esetén
<len>: adat hossza
<data>: érkező adat
többszörös (multiple) kapcsolat
(+CIPMUX=1)+IPD,<link ID>,<len>[,<remote IP>,<remote port>]:<data>
+IPD adatok fogadása
[<remote IP>]: opcionális: távoli IP AT+CIPDINFO=1 esetén engedélyezett
[<remote port>]: opcionális: távoli port AT+CIPDINFO=1 esetén engedélyezett
<link ID>: az ID azonosítója (0~4), többszörös kapcsolat esetén
<len>: adat hossza
<data>: érkező adat
AT+CIPSNTPCFG=<enable>[,<timezone>][,<SNTP server0>,<SNTP server1>,<SNTP server2>]SNTP (időszerver) konfigurálása Válasz: "OK"
<enable>: 0: SNTP tiltva, 1: SNTP engedélyezve
<timezone>: időzóna: [-11..13]; SNTP engedélyezése esetén be kell állítani
<SNTP server0>: opcionális: 1. SNTP szerver címe vagy neve
<SNTP server1>: opcionális: 2. SNTP szerver címe vagy neve
<SNTP server2>: opcionális: 3. SNTP szerver címe vagy neve
Példa: AT+CIPSNTPCFG=1,1,"cn.ntp.org.cn","ntp.sjtu.edu.cn","us.pool.ntp.org"
AT+CIPSNTPCFG?SNTP (időszerver) konfigurálációjának lekérdezése Válasz: +CIPSNTPCFG:<enable>,<timezone>,<SNTP server1>[,<SNTP server2>,<SNTP server3>] és "OK"
<enable>: 0: SNTP tiltva, 1: SNTP engedélyezve
<timezone>: időzóna: [-11..13]; SNTP engedélyezése esetén be kell állítani
<SNTP server0>: opcionális: 1. SNTP szerver címe vagy neve
<SNTP server1>: opcionális: 2. SNTP szerver címe vagy neve
<SNTP server2>: opcionális: 3. SNTP szerver címe vagy neve
+CIPSNTPTIME?SNTP teszt Válasz: +CIPSNTPTIME:<time> és "OK".
<time>: SNTP idő, például:
+CIPSNTPTIME:Thu Aug 04 14:48:05 2018
OK

Példa:
AT+CWMODE=1 // állomás-mód beállítása
AT+CWJAP="DemoAP","password" // csatlakozás a router-hez és az internethez
AT+CIPSNTPCFG=8 // időzóna beállítása
AT+CIPSNTPTIME? // idő lekérdezése
AT+CIPDNS_CUR=<enable>[,<DNS server0>,<DNS server1>]Felhasználó által definiált DNS szerver ideiglenes beállítása A beállítás nem kerül a FLASH-be mentésre.
<enable>: 1: felhasználói DNS engedélyezése, 0: tiltása
<DNS server0>: opcionális: 1.DNS szerver címe
<DNS server1>: opcionális: 2.DNS szerver címe
Tiltás (AT+CIPDNS_CUR=0) esetén az aktuális DNS szerver címe: "208.67.222.222" - márha a router is így akarja.
Példa: AT+CIPDNS_CUR=1,"208.67.220.220"
AT+CIPDNS_DEF=<enable>[,<DNS server0>,<DNS server1>]Felhasználó által definiált DNS szerver állandó beállítása A beállítás a FLASH-ben mentésre kerül.
<enable>: 1: felhasználói DNS engedélyezése, 0: tiltása
<DNS server0>: opcionális: 1.DNS szerver címe
<DNS server1>: opcionális: 2.DNS szerver címe
Tiltás (AT+CIPDNS_DEF=0) esetén az aktuális DNS szerver címe: "208.67.222.222" - márha a router is így akarja.
Példa: AT+CIPDNS_DEF=1,"208.67.220.220"

Sandor Vamos 2018/06/25 16:46

Forrás: ESP8266 At-instruction set