piątek, 28 lipca 2017

Emulator sieci WiFi - Matrix reaktywacja

Stworzenie wirtualnej sieci WiFi na komputerze Windows 7


Spodobała się mi ta wirtualizacja rzeczywistości. Serwer BLYNK i telefon z aplikacją BLYNK na tym samym komputerze to super rozwiązanie. Błyskawiczna konfiguracja nowych projektów, bezproblemowa zmiana parametrów a przede wszystkim pełna kontrola nad tym co dzieje się w całym środowisku BLYNKa - mikrokontrolerze, serwerze BLYNKa i aplikacji  w telefonie. Pozostały jeszcze dwa elementy zewnętrzne "wystające" poza komputer. To sam mikrokontroler - ale tu pozostanę konserwatystą - i niech ten stan tak zostanie. Drugim elementem jest zewnętrzna sieć WiFi za pomocą której muszę łączyć Arduino lub ESP z serwerem BLYNK. I wirtualizacji tej rzeczywistości poświęcę dzisiejszy wpis.



Obok mamy pierwotny schemat sieci połączeń w ramach systemu BLYNK. System, w którym każdy element znajduje się fizycznie w innym miejscu i łączy się z pozostałymi siecią Internet. Dodatkowo dwa skrajne elementy systemu (mikrokontroler i telefon) mogą się przemieszczać w dowolne miejsce świata bez utraty jakiejkolwiek z zaprogramowanych funkcji. Nawet trzeci z elementów - serwer BLYNK - może mieć postać mobilną o ile tylko zachowa ciągłość dostępu do sieci - choć na razie trudno mi sobie wyobrazić sens takiego rozwiązania. Poza prostotą implementacji ta właśnie mobilność składowych systemu stanowi o sile tego typu rozwiązań. Ale co w jednym przypadku jest zaletą w innym może stanowić utrudnienie - np. podczas uruchamiania czy testowania systemy lepiej gdy wszystkie elementy mamy na oku jak najbliżej własnego komputera.

Do tej pory bardzo ładnie udało się zlokalizować dwa z trzech elementów systemu - telefon i serwer.
Można więc zminimalizować system testowo-uruchomieniowy do takiej postaci


Serwer BLYNK i aplikacja w wirtualnym telefonie łączą się między sobą wewnątrz komputera. Dostęp komputera (czyli serwera BLYNK) do mikrokontrolera dokonuje się zewnętrzną siecią WiFi, do której oba te urządzenia muszą być zalogowane. Na komputerze zainstalowane jest środowisko  Adrduino IDE umożliwiające programowanie mikrokontrolera poprzez port USB. USB również zasila mikrokontroler w czasie programowania i działania.
Wadą tego rozwiązania jest konieczność dostępu do zewnętrznej sieci wifi. Nie jest to problem u siebie w domu ale może nam znacznie utrudnić życie gdy testowanie systemu będzie miało miejsce u klienta. Logowanie się do cudzej sieci jest zawsze kłopotliwe więc trzeba nam będzie zaopatrzyć się w jakiś przenośny miniruter wifi. Albo zrobić taki ruter z naszego telefonu (HotSpot).

Można jednak prościej - można zmusić nasz komputer by stał się dodatkowo ruterem wifi dla zewnętrznych urządzeń. Wtedy cały system uruchomieniowy BLYNKa uprościmy do dwu urządzeń - komputera i układu mikrokontrolera.


Taki minimalny w pełni autonomiczny system można zabrać z sobą i używać np. jadąc pociągiem relacji Szczecin-Przemyśl, łowiąc (bez powodzenia) ryby w zapadłej dziurze gdzieś na Mazurach czy leżąc na plaży na nudnych wakacjach w Acapulco.

Sposobów rozwiązań jak z komputera zrobić ruter jest w sieci sporo. Ja wybrałem najprostszy ze względu na Windowsa 7 w moim notebooku. Całość sprowadza się uruchomienia ukrytej funkcji Windows VWiFi - virtual wifi. Daje ona możliwość zrobienia z komputera rutera wifi a w zasadzie punktu dostępowego takiej sieci. Najczęściej tą funkcjonalność uruchamia się dla przyłączenia innych urządzeń do internetu dostępnego pierwotnie jedynie na danym komputerze. W komórkach taka funkcja nosi nazwę HotSpot. Wcześniej w projektach IoT wykorzystywałem ją do zmiany danych logowania do sieci WiFi mikrokontrolerów z BLYNKiem bez konieczności zmiany kodu programu.

Uruchomienie VWiFi

Stworzenie własnej sieci wifi to proste dwie komendy z Wiersza Poleceń.
WAŻNE - Wiersz Poleceń musi być uruchomiony w trybie Administrator. Klikamy więc prawym klawiszem na ikonie WP w menu START i wybieramy "Uruchom jako Administrator"


I wpisujemy

netsh wlan set hostednetwork mode=allow ssid=blynk key=blynkblynk
netsh wlan start hostednetwork

ssid i key są dowolne, key czyli hasło musi zawierać minimum 8 znaków

wyłączenie wirtualnej sieci to netsh wlan stop hostednetwork

odczyt parametrów stworzonej sieci netsh wlan show hostednetwork

A tak to wygląda w oknie Wiersza Poleceń


Sieć jest widoczna również w Centrum Sieci choć nie można stąd odczytać żadnych jej parametrów


Na koniec możemy tą sieć skrosować z siecią mającą dostęp do Internetu ( w moim przykładzie nie jest to konieczne) poprzez włączenie funkcji udostępniania


I w zasadzie wszystko co musimy zrobić by umożliwić połączenie mikroprocesor do serwera BLYNK na naszym komputerze. No prawie - musimy jeszcze znać adres IP pod którym ukrywa się komputer w stworzonej przez nas wirtualnej sieci. Niezawodna komenda ipconfig /all 
pozwoli nam odczytać adres dostępu do rutera VWiFi - u mnie "Połączenie sieci bezprzewodowej 3"


Możemy także ten adres sprawdzić a nawet zmienić w Połączeniach Sieciowych gdzie nowa wirtualna sieć ma swoją wirtualną kartę sieciową



Teraz już tylko parametry naszej sieci wpisujemy do kodu programu



I już możemy rozkoszować się tequlą z limonką na plaży w Acapulco nie przerywając pasjonującej pracy nad kolejnym wielkopomnym projektem.



Czego sobie i innym życzę w oczekiwaniu na słońce i ciąg dalszy......
92

1 komentarz: