Moduł ESP-01
Komunikacja z modułem WiFi opartym o układ ESP8266 odbywa się za pośrednictwem UART.
Układ posiada między innymi zintegrowany stos protokołu TCP/IP, co wraz z możliwością sterowania poprzez komendy AT umożliwia podłączenie do sieci WiFi urządzeń opartych nawet o proste mikrokontrolery.
Moduł jest zgodny ze standardem 802.11 b/g/n i pracuje na częstotliwości 2,4GHz.
Wspiera zabezpieczenia WPA/WPA2.
Układ wymaga zasilania o napięciu 3,3V i wydajności prądowej wynoszącej 400mA.
Wyprowadzenia modułu
Rys. Wyprowadzenia modułu ESP-01 z układem ESP8266.
Pin | Uwagi |
VCC, GND | Zasilanie 3.3V |
UTXD | Interface UART, nadawanie |
URXD | Interface UART, odbiór |
RST | Restart po podaniu stanu niskiego |
CH_PD | Włączenie układu po podaniu stanu wysokiego (stan wysoki przy flashowaniu) |
GPIO0 | Przełączenie między trybem pracy a flashowania (podanie stanu niskiego) |
GPIO2 | Wyprowadzenie pinu 2 |
Czerwony LED | Sygnalizuje zasilanie |
Niebieski LED | Sygnalizuje przesył danych |
Komendy AT
Uwaga komendy AT muszą być zakończone znakami \r\n.
Ważna jest również wielkość znaków.
Komenda | Opis | Typ | Set/Execute | Parametry i przykłady |
---|---|---|---|---|
AT | test | basic | – | – |
AT+RST | restart modułu | basic | – | – |
AT+GMR | sprawdzenie wersji oprogramowania | basic | – | – |
AT+CWMODE | tryb wifi | wifi | AT+CWMODE= | 1= Stacja, 2= AccessPoint, 3= softAP + stacja |
AT+CWJAP | podłączenie do AP | wifi | AT+ CWJAP =< ssid >,< pwd > | ssid = nazwa sieci, pwd = hasło do sieci |
AT+CWLAP | lista AP | wifi | AT+CWLAP | |
AT+CWQAP | odłączenie od AP | wifi | AT+CWQAP | |
AT+ CWSAP | parametry połączenia z AP | wifi | AT+ CWSAP= ssid, pwd, chl, enc | ssid = nazwa sieci, pwd = hasło do sieci, chl = kanał, enc = szyfrowanie; Przykładowo połączenie z routerem: AT+CWJAP=”mynetwork”,”helloworld”; Następnie należy sprawdzić czy połączono poleceniem: AT+CWJAP? |
AT+CWLIF | sprawdzenie IP podłączonych urządzeń | wifi | AT+CWLIF | |
AT+ CIPSTATUS | sprawdzanie statusu połączenia | TCP/IP | AT+ CIPSTATUS | ,,,,= tryb klienta lub serwera |
AT+CIPSTART | ustawienie połączenia TCP lub UDP | TCP/IP | 1)pojedyncze łącze (+CIPMUX=0) AT+CIPSTART= ,,;
2)wielokrotne łącze (+CIPMUX=1) AT+CIPSTART= ,, |
id = 0-4, type = TCP/UDP, addr = adres IP, port= port; Przykładowo połączenie do serwera za pomocą TCP Ustawienie wielokrotnego połączenia: AT+CIPMUX=1; Połączenie: AT+CIPSTART=4,”TCP”,”X1.X2.X3.X4″,9999 |
AT+CIPMODE | ustawienie trybu przesyłu danych | TCP/IP | AT+CIPMODE= | 0 tryb bez danych, 1 tryb z danymi; zwraca “Link is builded” |
AT+CIPSEND | wysłanie danych | TCP/IP | 1)pojedyncze łącze (+CIPMUX=0) AT+CIPSEND=;
2) wielokrotne łącze (+CIPMUX=1) AT+CIPSEND= , |
Wysłanie danych: AT+CIPSEND=4,15 a następnie dane. |
AT+CIPCLOSE | zamknięcie połączenia TCP lub UDP | TCP/IP | AT+CIPCLOSE= lub AT+CIPCLOSE |
|
AT+CIFSR | Sprawdzenie przydzielonego IP | TCP/IP | AT+CIFSR | |
AT+ CIPMUX | ustawienie wielokrotnego połączenia | TCP/IP | AT+ CIPMUX= | 0 dla pojedynczego połączenia, 1 dla wielokrotnego połączenia |
AT+ CIPSERVER | ustawienie serwera | TCP/IP | AT+ CIPSERVER= [, ] | mode 0 to close server mode, mode 1 to open; port = port; eg. turn on as a TCP server: AT+CIPSERVER=1,8888, check the self server IP address: AT+CIFSR=? |
AT+ CIPSTO | Set the server timeout | AT+CIPSTO= | 0~28800 wartość podana w sekundach | |
+IPD | Odebrane dane | dla pojedynczego połączenia (CIPMUX=0): + IPD, : dla trybu wielokrotnego łącza CIPMUX=1): + IPD, , : |
Przykłady
Podłączenie do sieci
Sprawdzenie dostępnych sieci:
AT+CIPSTART
AT+CWLAP
Podłączenie do sieci o nazwie “testowa” która nie jest zabezpieczona hasłem:
AT+CWMODE=1
AT+CWJAP=”testowa”,””
Sprawdzenie przydzielonego adresu IP:
AT+CIFSR
Uruchomienie serwera
Uruchomienie serwera nasłuchującego na porcie 21:
AT+CIPMUX=1
AT+CIPSERVER=1,21
Wysłanie odpowiedzi “hej” do podłączonego klienta:
AT+CIPSEND=0,5
hej
Pobranie danych z sieci
Podłączenie do serwera:
AT+CIPSTART=1,”TCP”,”test.noweenergie.org”,80
Pobranie danych:
AT+CIPSEND=1,88
GET http://test.noweenergie.org/get.php?a=1&b=2 HTTP/1.0\r\nHost: test.noweenergie.org\r\n
Zamknięcie połączenia:
AT+CIPCLOSE
Odłączenie od sieci
Odłączenie od sieci:
AT+CWQAP
Odnośniki
Pliki:
- https://github.com/marcin-filipiak/ESP_01_tester/blob/main/eps_01_test.py – skrypt testujący (język Python)
Odnośniki:
- http://wiki.iteadstudio.com/File:ESP8266_Specifications_English.pdf – specyfikacja modułu