1.2 Station Mode
W tym trybie, ESP8266 pracuje jako klient, który dołączą się do innej sieci. Zobaczmy zatem jak to wygląda w praktyce.
1 2 3 |
wifi.sta.config("SSID","Haslo_sieci") wifi.setmode(wifi.STATION) print("Przypisany adres IP: "..wifi.sta.getip()) |
I to wszystko jeśli chodzi o podłączenie ESP8266 do innej sieci. W pierwszej linii podajemy SSID sieci do której chcemy się podłączyć oraz hasło tej sieci. Oczywiście jak mamy parę sieci o tej samej nazwie dostępnych to możemy jeszcze doprecyzować pod jaki adres MAC się podpiąć ESP. Informację o tym znajdziesz w linku do dokumentacji poniżej. W następnej linii konfigurujemy tryb w jakimi Wi-Fi będzie pracować oraz wydrukujemy informację jaki adres IP został przypisany do ESP.
Zobaczymy odpowiedź na monitorze portu szeregowego:
Oraz w naszej sieci jak to wygląda:
Możemy również sami przypisać adres IP dla naszego modułu:
1 2 3 4 5 6 7 8 9 10 |
wifi.setmode(wifi.STATION) wifi.sta.config("SSID","Haslo") cfgip={} cfgip.ip="Adres_IP_dla_ESP"; cfgip.netmask="Maska_podsieci"; cfgip.gateway="Brama_domyslna"; wifi.sta.setip(cfgip); print("Przypisany adres IP: "..wifi.sta.getip()) |
Po uzupełnieniu danych:
1 2 3 4 5 6 7 8 9 10 |
wifi.setmode(wifi.STATION) wifi.sta.config("SSID","Haslo") cfgip={} cfgip.ip="192.168.1.8"; cfgip.netmask="255.255.255.0"; cfgip.gateway="192.168.1.1"; wifi.sta.setip(cfgip); print("Przypisany adres IP: "..wifi.sta.getip()) |
otrzymujemy:
Oraz w ustawieniach sieci:
To już wszystko odnośnie konfiguracji trybu Wi-Fi w ESP8266
2. Tworzenie serwera WWW
Serwer WWW jest bardzo prosty do stworzenia. Jego minimalna wersja jest taka jak poniżej:
1 2 3 4 5 6 7 8 9 10 11 12 |
wifi.setmode(wifi.STATION) wifi.sta.config("SSID","Haslo") print("Przypisany adres IP: "..wifi.sta.getip()) srv=net.createServer(net.TCP) srv:listen(80,function(conn) conn:on("receive",function(conn,payload) print(payload) conn:send("<h1> Nasz pierwszy serwer WWW na bazie ESP8266 !!.</h1>") end) end) |
Przyjrzyjmy się teraz programowi. W 6. linii tworzymy serwer typu TCP (dostępny jeszcze UDP). W następnie linii zaczynamy nasłuchiwać IP z portu 80 oraz wszystkie dane przekazujemy do funkcji conn w momencie uzyskania prawidłowego połączenia. Gdy zostaną zażądane dane, tzn. gdy ktoś połączy się z tym adresem to wywoływana jest właśnie funkcja conn. Jest ona zdefiniowana jako receive, czyli jeżeli zostaną zażądane dane (wystąpi jakiś event) to te dane będą zwracane jako string. W tym samym momencie następuje odwołanie do funkcji conn oraz payload. Funkcja payload odpowiada za zwrócenie informacji do ESP kto się połączył, czyli np. z jakiej przeglądarki, jaki system itp.
Ostatnia linia conn:send odpowiada za wygenerowanie wiadomości z serwera, czyli można powiedzieć, że naszej strony do której się łączymy. Jak widać wysyłana wiadomość jest wygenerowana jako HTML.