WebElektronika

Wifi-s kommunikáció alapjai a beágyazott rendszerekben az ESP8266-os eszközzel

person access_time 2017.01.05.
Folytatjuk tovább az IoT (Internet of Things) sorozatunkat, most a WiFi-s alkalmazások egyik lehetséges megvalósításának az alapjait nézzük át. Az esp8266-os céláramkört fogjuk használni most, illetve még néhány cikk erejéig. Ennek a modulnak az alkalmazása nagyon kényelmes, hiszen az AT parancsok segítségével tudjuk konfigurálni ezt a modult. Látni fogjuk, hogy ennek az eszköznek az alkalmazásával kényelmessé válnak a különböző IoT termékeink fejlesztése.


Több WiFi-s megoldás létezik (pl.: RN131, RN171, stb), mi most néhány cikk erejéig azt nézzük meg, hogy hogyan tudunk AT parancsokkal WiFi-s kommunikációt kiépíteni. Az AT parancsok alkalmazása már korábban is szerepelt a magazinunkban (pl.: lokalizáció). 

A most induló sorozatunkban olyan WiFi-s alkalmazásokat nézünk meg, amelyeknél az ESP8266-os modult használjuk.

Több ESP8266-os modul létezik, ha ezek egyikét egy mikrokontrollerhez szeretnénk illeszteni, akkor célszerű az ESP8266-1-es modult alkalmazni. Fejlesztéshez viszont nem biztos, hogy ez a legjobb választás, kényelmesebb egy NodeMCU modulnak a használata, mert egy ilyen modul már tartalmaz egy USB-UART átalakítót is, illetve a feszültségszintekkel sem kell foglalkoznunk (ha az ESP8266-1-es modul 5V-ot kap 3.3V helyett, akkor tönkre megy).

Mi egy NodeMCU-t (CH340+ESP8266) fogunk használni (de létezik CP2102+ESP8266 is) mert a szükséges AT parancsokat nem egy mikrovezérlő UART moduljának segítségével adjuk ki, hanem a számítógép USB portjáról. Ehhez szükségünk van egy USB-UART átalakítóra, de ezt tartalmazza már az általunk választott ESP8266-os tartalmazó áramkör (1. ábra). Ezt a modult egy USB kábel segítségével tudjuk a számítógéphez csatlakoztatni.

kep
1. ábra   A tesztwifi-s modul
 

Csatlakoztassuk a WiFi-s áramkörünket a számítógépünkhöz. Ha a szükséges driver-t telepítettük, akkor az eszközkezelőben látjuk a felhasznált port nevét (2. ábra).

kep
2. ábra   Az eszközkezelőben látható a WiFi-s modulunk
 

Több sorosportot kezelő program közül választhatunk (pl.: putty, hercules), mi azonban az "ESP8266 User Program"-ot fogjuk használni, amelyet az ESP8266-os modulhoz fejlesztettek ki. Töltsük le ezt a programot (zip file), és a kicsomagolás után indítsuk el. A program elindítása után a következő kép fogad minket (3. ábra).

kep
3. ábra   A kezelőfelület (kattints a képre a nagyobb méretért)

Noha a fórumokon a 9600 baud-ot javasolják az ESP8266-os áramkör használatához, előfordul, hogy ezzel a sebességgel ez nem fog működni. A cikk írásakor is a 115200-as baud volt használható. Látjuk, hogy a program megkereste azt a portot (COM15), amelyen keresztül a csatlakoztatott WiFi-s eszközünk elérhető. Kattintsunk a "Connect" ikont tartalmazó nyomógombra, és ezután a WiFi-s modulunk elérhetővé válik, a különböző nyomógombok is aktívak lesznek (4. ábra). Ezek a nyomógombok adott AT parancsok kiadására képesek, de a "Communication" tab alatt található "Transmit Data" szövegmezőbe beírt AT parancs is végrehajtható.

kep
4. ábra   Csatlakoztattuk az ESP8266-os modult a soros porthoz (kattints a képre a nagyobb méretért)
 

Ha az ESP8266-os céláramkörünk és a számítógépünk között sikeres volt a kommunikáció felépítése, akkor a "Communication" nevű tab-ban a "Received Data" szövegmezőben látnunk kell a gyártó cégnek a nevét és a "ready"-t.

Állítsuk alaphelyzetbe (ez most nem lenne kötelező) a WiFi-s áramkörünket, adjuk ki a "AT+RST" parancsot. Ezt megtehetjük a "Basic Commands" tab-ban látható "AT+RST" nyomógomb megnyomásával is, de mi a "Transmit Data" szövegmezőbe írjuk be ezt a parancsot, majd nyomjuk meg a "Send"-et (5. ábra).

kep
5. ábra   Az ESP8266-os céláramkör resetelése (kattints a képre a nagyobb méretért)
 

Ha kiváncsiak vagyunk a firmware verziójára, akkor az "AT+GMR" utasítást kell kiadni (6. ábra).

kep
6. ábra   A firmware lekérdezése (kattints a nagyobb képért)
 

Ezután azt kell eldöntenünk, hogy az ESP8266-os modulunkat milyen módban kívánjuk használni. Használhatjuk kliensként, szerverként, de akár mind a két mód is alkalmazható. Ennek a kiválasztása az "AT+CWMODE" paranccsal történik. Ezt a kiválasztást most az erre a célre létrehozott nyomógomb megnyomásával érjük el, de előtte a legördülő menüben állítsuk be a kívánt módot (7. ábra).
Ezt a lépést kiválthattuk volna úgy is, hogy az AT parancsot a "Transmit Data" szövegmezőbe beírjuk a következő AT parancsot : "AT+CWMODE=3". (1 : kliens, 2 : host, 3 : kliens és host).

kep
7. ábra   Működési mód kiválasztása (kattints a képre a nagyobb méretért)
 

Jelenítsük most meg azokat a WiFi hálózatokat (SSID), amelyeket az ESP8266-os modulunk "lát". Később ezek egyikére tudunk majd rácsatlakozni.
A WiFi-s hálózatok megjelenítéséhez az "AT+CWLAP" utasítást kell kiadnunk. Ezt beírhatjuk a "Transmit Data" mezőbe is, de akár a "AT+CWLAP" nyomógombra is kattinthatunk (8. ábra).

kep
8. ábra   Az elérhető WiFi-s hálózatok megjelenítése (kattints a képre a nagyobb méretért)
 

Csatlakozzunk rá az egyik WiFi-s hálózatra, amelynek a neve : "LABORAMUS". A csatlakozást az "AT+CWJAP" utasítás kiadásával érhetjük el. Az AT parancs kiadásakor meg kell adni az SSID-t, illetve a jelszót. Írjuk be ezeket az adatokat a "Wifi Connection" tab-ban lévő szövegmezőkbe, majd kattintsunk az "AT+CWJAP" nyomógombra (9. ábra). Sikeres csatlakozás esetén a "Received Data" szövegmezőben látjuk a "WIFI CONNECTED"-et és az "OK"-ot is.
Csatlakozhattunk volna úgy is a WiFi hálózathoz, hogy ezt a parancsot írjuk be a "Transmit Data" szövegmezőbe : "AT+CWJAP="hálózat neve","jelszó"".

kep
9. ábra   Csatlakozás a LABORAMUS WiFi hálózatra (kattints a képre a nagyobb méretért)
 

A sikeres csatlakozás után az eszközünk IP címet kap, amelyet le tudunk kérni az "AT+CIFSR" paranccsal. Írjuk ezt be a "Transmit Data" szövegmezőbe, majd kattintsunk a "Send" nyomógombra. Ezután visszakapjuk a másik szövegdobozban az eszközünk IP címét (10. ábra, a kapott IP : 192.168.2.5).

kep
10. ábra   WiFi-s eszközünk IP címének lekérdezése (kattints a képre a nagyobb méretért)
 

Teszteljük a WiFi-s modulunk működését, ehhez szükséges a "ping" alkalmazása. Használjuk ehhez a Command ablakot, indítsuk el, és írjuk be a ping-et és a tesztelendő eszközünk IP címét.

kep
11. ábra   Az IP cím ping-elése
 

Látjuk a parancsablakban, hogy a WiFi-s eszközünk elérése sikeres volt. Változtassuk most meg az eszközünknek az IP címét, adjunk neki egy olyan címet, amelyet mi adunk meg. Legyen ez a cím a "192.168.111.112".
Az IP cím megváltoztatásához az "AT+CIPSTA" parancs szükséges. Írjuk be megfelelő szövegmezőbe a "AT+CIPSTA="192.168.111.112"-t, majd kattintsunk a "Send" nyomógombra (12. ábra).

kep
12. ábra   Az IP cím megváltoztatása (kattints a képre a nagyobb méretért)
 

Ellenőrizzük újra a ping segítségével az IP címet. A korábban működő IP cím már nem elérhető, hanem helyette az új IP címen látható a WiFi modulunk (13. ábra).

kep
13. ábra   Az új IP cím ping-elése