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
A parancsok típusai
- AT+<x>=?: Teszt
- AT+<x>?: Lekérdezés
- AT+<x>=<…>: Beállítás
- AT+<x>: 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=<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+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=<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+ CWQAP | Lecsatlakozá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+ CWLIF | Az 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+CWSTOPSMART | SmartConfig 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+CIPSTATUS | TCP/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+CIFSR | A 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