====== 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** ([[hu:arduino:soft_basic#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
===== A parancsok típusai =====
* **AT+=?**: Teszt
* **AT+?**: Lekérdezés
* **AT+=<…>**: Beállítás
* **AT+**: Végrehajtás
===== Az ESP8266 AT parancsok =====
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ő)
^parancs^leírás|
|**Alap-parancsok** ||
|**AT**|**Teszt parancs** A válasznak az "OK"-nak kell lennie.|
|**AT+RST**|**Modul reset** A válasz: "OK".|
|**AT+GMR**|**Verzió 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**=|**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. \\ : késleltetési idő (ms) \\ Megj.: a "deep sleep" az ESP-01-en is elérhető, némi hekkeléssel. Lásd [[hu:esp:start#esp-01_deep_sleep|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+RESTORE**|**Gyá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**=, , , , |**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 \\ : 110..115200*40 (4.608 Mega) \\ : 5..8 \\ : 1: 1 bit stop bit, 2: 1.5 bit, 3: 2 bit \\ : 0: None, 1: Odd, 2: EVEN \\ : 0: disable flow control, 1: enable RTS, 2: enable CTS, 3: enable both RTS and CTS|
|**AT+UART_CUR**=, , , , |**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**=, , , , |**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**=|**Az alvás-mód beállítása** A válasz: "OK" \\ : 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". \\ : 0: alvás mód tiltva, 1: light-sleep mode, 2: modem-sleep mode |
|**AT+WAKEUPGPIO**=,,[,,]|**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 \\ : \\ 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 \\ : Az "ébresztő" GPIO száma [0..15] \\ : \\ 0: Ébresztés a GPIO LOW level esetén \\ 1: Ébresztés a GPIO HIGH level esetén \\ []: opcionális GPIO flag beállítása az ébresztéshez [0..15] \\[]: 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**=|**A maximális adóteljesítmény beállítása** A válasz: "OK". \\ Például: AT+RFPOWER=50 \\ : 0 ~ 82, 0.25dBm / egység|
|**AT+RFVDD**=|**A VDD33 kimeneti feszültségének állítása** A válasz: "OK". \\ : 1900..3300 (1/1024 V) |
|**AT+RFVDD?**|**A VDD33 kimeneti feszültségének lekérdezése** A válasz a és "OK". \\ : 1900..3300 (1/1024 V) |
|**+RFAUTOTRACE:**|**Automatikus RF követés** Válasz: "OK". A paraméter a FLAsH-ben tárolásra kerül. \\ : 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:" és "OK". \\ : 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:" és "OK" \\ : A RAM mérete bájtban|
|**AT+SYSADC?**|**Az ADC érték lekérdezése** Válasz: "+SYSADC:" és "OK" \\ : ADC érték (1/1024V)|
|**AT+SYSIOSETCFG**=,,|**IO-k konfigurálása** Válasz: "OK" \\ : a pin száma \\ : a pin módja; 3:GPIO \\ : 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**=|**IO-k konfigurációjának lekérdezése** Válasz:"+SYSIOGETCFG:,," és "OK" \\ : a pin száma|
|**AT+SYSGPIODIR**=,|**IO-k input/output beállítása** Válasz:"OK" és "NOT GPIO MODE! ERROR" \\ : a pin száma \\ : a pin módja; 0:input, 1:output |
|**AT+SYSGPIOWRITE**=,|**GPIO írása** Válasz:"OK" és "NOT OUTPUT! ERROR" \\ : a pin száma \\ : á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**=|**GPIO olvasása** Válasz, ha nincs hiba: "+SYSGPIOREAD:,," és "OK" \\ válasz hiba esetén: "NOT GPIO MODE!" és "ERROR" \\ : GPIO pin száma \\ : pin iránya - 0: input, 1: output \\ : 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**=|**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 (",CONNECT"), 1: bővebb jelzés (+LINK_CONN:,,"UDP/TCP/SSL",,,,) \\ Példa: AT+SYSMSG_CUR=3 (mindkét funkció bekapcsolva)|
|**AT+SYSMSG_DEF**=|**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 (",CONNECT"), 1: bővebb jelzés (+LINK_CONN:,,"UDP/TCP/SSL",,,,) \\ Példa: AT+SYSMSG_DEF=3 (mindkét funkció bekapcsolva)|
|**WiFi-parancsok** |
|**AT+CWMODE**=|**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**=|**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 \\ : \\ 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 és "OK".|
|**AT+CWMODE_DEF**=|**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 \\ : \\ 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 és "OK".|
|**AT+CWJAP**=, [, ]|**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:// FAIL \\ Pélául: AT+CWJAP ="abc", "0123456789" \\ AT+CWJAP ="abc", "0123456789", "ca:d7:19:d8:a6:44" \\ : string, Az AP SSID-je \\ : string, jelszó, maximum 64 byte ASCII \\ []: string, opcionális, az AP MAC címe, gyakran megegyezik az SSID-vel \\ : 1 időtúllépés \\ : 2 rossz jelszó \\ : 3 az AP nem található \\ : 4 csatlakozási hiba |
|**AT+CWJAP?**|**Az aktuálisan csatlakozott AP adatok lekérdezése** A válasz //+CWJAP:, , , // és //OK//.|
|**AT+CWJAP_CUR**=, [, ]|**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:, , , // és //OK//.|
|**AT+CWJAP_DEF**=, [, ]|**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:, , , // és //OK//.|
|**AT+CWLAP** \\ **AT+CWLAP**=[, , ]|**Az elérhető AP-k listája** Válasz a lista: //+CWLAP:, , , , , , // é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" \\ : \\ 0 OPEN \\ 1 WEP \\ 2 WPA_PSK \\ 3 WPA2_PSK \\ 4 WPA_WPA2_PSK \\ : string, az AP SSID-je \\ : jelerősség \\ : string, MAC address \\ az AP frekvencia-sávja, egysége: KHz (ppm: / 2.4) \\ frekvencia-sáv kalibrációja \\|
|**AT+CWLAPOPT**=, |**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) \\ : 1: a lista szerinti rendezése, 0: nélküli rendezése \\ : az alábbi jellemzők megjelenítése (0: nem jelenik meg, 1: megjelenik): \\ bit 0: megjelenítése \\ bit 1: megjelenítése \\ bit 2: megjelenítése \\ bit 3: megjelenítése \\ bit 4: megjelenítése \\ bit 5: megjelenítése \\ bit 6: megjelenítése |
|**AT+ CWQAP**|**Lecsatlakozás az AP-ről** Válasz: OK|
|**AT+CWSAP**=, , , [, ][, ]|**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 \\ : string, az ESP8266 softAP SSID-je \\ : string, jelszó az AP-hoz, 8 ~ 64 byte ASCII \\ : csatorna azonosító \\ : hozzáférési mód: \\ 0 OPEN \\ 2 WPA_PSK \\ 3 WPA2_PSK \\ 4 WPA_WPA2_PSK \\ : az ESP8266 soft-AP-hez csatlakozó állomások maximális száma [1..4] \\ : 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:, , , , , |
|**AT+CWSAP_CUR**=, , , [, ][, ]|**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**=, , , [, ][, ]|**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+ CWLIF**|**Az ESP8266 softAP-hez csatlakozott állomások jegyzéke** A válasz a jegyzék , 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\\ : a csatlakozott egység IP címe \\ : a csatlakozott egység MAC address-sze|
|**AT+CWDHCP**=,|**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. \\ : \\ 0 : ESP8266 soft-AP \\ 1 : ESP8266 station \\ 2 : softAP és station egyidejűleg \\ : 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**=,|**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**=,|**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**=, , , |**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) \\ : 1: korlátozás, 0: korlátozás feloldása \\ : a korlátozás érvénybe lépése percben [1..2880] \\ : az IP tartomány alsó határa \\ : az IP tartomány felső határa|
|**AT+CWDHCPS_DEF**=, , , |**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) \\ : 1: korlátozás, 0: korlátozás feloldása \\ : a korlátozás érvénybe lépése percben [1..2880] \\ : az IP tartomány alsó határa \\ : az IP tartomány felső határa|
|**AT+CWAUTOCONN**=|**Automatikus csatlakozás az AP-hez** A válasz //OK//. \\ : \\ 0: bekapcsolás után nem csatlakozik automatikusan \\ 1: automatikus csatlakozás az AP-hez a bekapcsolást követően|
|**AT+CIPSTAMAC**=|**MAC adress beállítása** Javasolt inkább a AT+CIPSTAMAC_CUR vagy AT+CIPSTAMAC_DEF parancsok használata. Válasz: OK. \\ : string, az ESP8266 MAC address-sze|
|**AT+CIPSTAMAC?**|**MAC adress lekérdezése** \\ Válasz: +CIPSTAMAC: és OK.|
|**AT+CIPSTAMAC_CUR**=|**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 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**=[,,]|**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" \\ : az ESP8266 IP címe, string \\ []: opcionális - gateway \\ []: 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: \\ +CIPSTA_CUR: \\ +CIPSTA_CUR: \\ OK \\ A parancs csak akkor működik, ha az ESP8266 már csatlakozott egy AP-hez|
|**AT+CIPSTA_DEF**=[,,]|**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" \\ : az ESP8266 IP címe, string \\ []: opcionális - gateway \\ []: 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: \\ +CIPSTA_DEF: \\ +CIPSTA_DEF: \\ OK \\ A parancs csak akkor működik, ha az ESP8266 már csatlakozott egy AP-hez|
|**AT+CIPAP_CUR**=[,,]|**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" \\ : a SoftAP IP címe, string \\ []: opcionális - gateway \\ []: 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: \\ +CIPAP_CUR: \\ +CIPAP_CUR: \\ OK|
|**AT+CIPAP_DEF**=[,