Cześć,
w tej części kursu dowiesz się jak zrobić prosty serwer na ESP8266. Jako przykład wykorzystania, zrealizujemy sobie sterowanie diodą LED przez sieć Wi-Fi :)
Spis treści:
- Tryby Wi-Fi
- Access Point
- Station Mode
- Tworzenie serwera WWW
- Sterowanie modułem (diodą) przez Wi-Fi (Access Point)
- Podsumowanie
1. Tryby Wi-Fi
Układ ESP8266 oddaje nam dwa główne tryby jakimi są Access Point i Station Mode. Pierwszy tryb odznacza się tym, że nasze ESP8266 jest hostem, do którego podłączamy się innymi urządzeniami. W trybie Station Mode, nasz moduł podłącza się do innej sieci, gdzie przy wykorzystaniu np. VPN jesteśmy w stanie pobierać dane z układu przez internet.
1.1 Access Point:
1 2 3 4 5 |
cfg={} cfg.ssid="Nazwa_SSID" cfg.pwd="Haslo" wifi.ap.config(cfg) wifi.setmode(wifi.SOFTAP) |
jest to najprostszy rodzaj konfiguracji. W pierwszej linii tworzymy tabelę cfg (od config), do której będą zapisane dane takie jak, SSID naszej sieci oraz hasło. Jeżeli pole z hasłem zostawimy puste, tzn.
1 |
cfg.pwd="" |
To będzie oznaczać, że nie ustawiliśmy żadnego hasła do naszego hosta. Teraz w 4. linii przypisujemy wyżej stworzoną konfigurację do trybu Access Point oraz w ostatniej linii ustawiamy moduł Wi-Fi w tryb Access Point.
To był prosty przykład, konfiguracji. Teraz zobaczymy troszkę trudniejszą konfigurację- tzn. bardziej rozbudowaną:
1 2 3 4 5 6 7 8 9 10 11 |
cfg={} cfg.ssid="Nazwa_SSID" cfg.pwd="Haslo" wifi.ap.config(cfg) cfgip={} cfgip.ip="192.168.1.1"; cfgip.netmask="255.255.255.0"; cfgip.gateway="192.168.1.1"; wifi.ap.setip(cfgip); wifi.setmode(wifi.SOFTAP) |
W tej części, od linii 6. konfigurujemy IP naszego hosta. Kolejno, adres IP naszego hosta, maskę podsieci, oraz bramę domyślną naszej sieci (czyli adres IP hosta). Następnie przypisujemy te dane do konfiguracji IP oraz na koniec- jak wyżej- ustawiamy tryb naszego Wi-Fi.
Przejdźmy teraz do testów.
Najpierw przetestujemy pierwszy kod, z małym dodatkiem w postaci zwrócenia wartości adresu MAC oraz IP:
Program:
1 2 3 4 5 6 7 8 9 |
cfg={} cfg.ssid="NodeMCU_v2" cfg.pwd="feriarlab" wifi.ap.config(cfg) wifi.setmode(wifi.SOFTAP) print("Uruchomiono: "..cfg.ssid) print("Adres MAC: "..wifi.ap.getmac()) print("Adres IP: "..wifi.ap.getip()) |
Po wgraniu programu otrzymujemy w monitorze portu szeregowego:
Zobaczmy teraz czy wykrywa nową sieć:
Jak widzimy, została wykryta nowa sieć o nazwie NodeMCU_v2, czyli wszystko jest w porządku. Pozostało wpisać hasło i sprawdzić właściwości sieci:
Jak widzimy, naszej nowej Sieci NodeMCU_v2 przypisało adres IP 192.168.4.1 z maską domyślną 255.255.255.0, a samemu komputerowi przypisało adres 192.168.4.3. Zobaczymy zatem jak sprawy będą się miały przy „zaawansowanej” konfiguracji sieci:
Program:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
cfg={} cfg.ssid="NodeMCU_v2" cfg.pwd="feriarlab" wifi.ap.config(cfg) cfgip={} cfgip.ip="192.168.1.1"; cfgip.netmask="255.255.255.0"; cfgip.gateway="192.168.1.1"; wifi.ap.setip(cfgip); wifi.setmode(wifi.SOFTAP) print("Uruchomiono: "..cfg.ssid) print("Adres MAC: "..wifi.ap.getmac()) print("Adres IP: "..wifi.ap.getip()) |
Dane z portu szeregowego:
Dane sieci:
Jak widzimy po powyższej grafice, konfiguracja naszego adresu IP dała zamierzony efekt, teraz nasz host ma adres 192.168.1.1, a komputer posiada następny wolny adres czyli 192.168.1.2.
Skoro już wiemy jak konfigurować tryb Access Point to teraz przyjrzyjmy się drugiemu trybowi jakim jest Station Mode.