czwartek, 20 lipca 2017

Emulator Androida czyli BLYNK MATRIX

Więcej wirtualnego świata

 

Dziwny jest ten świat - 50 lat temu pięknie zauważył to Czesław Niemen. Dziwny jest i dziś gdy realne rzeczy zastępuje w coraz większym stopniu wirtualna fikcja. Dzieciaki zamiast w piłkę na boisku wpatrzone są tablety, w laboratoriach i pracowniach uczelni technicznych miast przyrządów,urządzeń i maszyn - symulatory, a o uzależnieniu od komputera, internetu i telewizji dorosłej części społeczeństwa szkoda nawet gadać. Nawet nasze pieniądze znikają gdzieś w wirtualnym świecie.
Dołóżmy i my swoją cegiełkę do wirtualnej rzeczywistości.
W kolejnym odcinku o tym jak zasymulować telefon z BLYNKiem na ekranie naszego komputera.

Aplikacje BLYNK dostępne są jedynie na telefony i tablety a dokładnie na Andrioida i IOSa. Nie ma i według zapowiedzi autorów, nie będzie wersji stacjonarnej na komputery (jak również na urządzenia mobilne z WIN10). Nie jest to żaden problem w czasie normalnej pracy systemu - obsługa domowego IoT z urządzeń mobilnych jest oczywistością.
Inaczej to wygląda gdy dopiero tworzymy projekt naszego inteligentnego domu lub gdy BLYNK służy jako uniwersalna konsola wejścia/wyjścia  projektów elektronicznych. Tutaj niewielki ekran telefonu z jeszcze mniejszą klawiaturą jest beznadziejny. A gdy potrzebujemy dwu niezależnych aplikacji testowanych równolegle ... albo trzech.

Na szczęście możemy przenieść nasz telefon w wirtualny świat a tam powiększać go lub zmniejszać, klonować i kasować do woli.  Sprawdźmy więc czy emulacja androidowego telefonu na komputerze, z którego programujemy nasze ulubione Arduino lub ESP8266  ułatwi proces projektowania i uruchamiania urządzenia. A jeśli jeszcze na dokładkę na tym samym komputerze zostałby uruchomiony serwer BLYNK - to cały ten wirtualny świat IoT powinniśmy zmieścić w jednym komputerze, na jednym ekranie pod naszą całkowitą kontrolą. Pełen MATRIX?!

Sugestię wyboru emulatora znalazłem na stronach forum BLYNKa. Mocno zachwalano MEmu.
Program niczego sobie - ponad 300 MB!!! Ale instaluje się łatwo i bez problemów. Pierwsze wrażenie jest naprawdę świetne - masz na kolanach tablet z Androidem o przekątnej twojego notebooka i z komfortową klawiatura komputera (i oczywiście wszystko za free). Tylko jakość ekranu "nieco" odbiega od Retiny. Cóż - to tylko emulator. Jest spolszczony.

MEmu jest wirtualną maszyną uruchamianą w Windowsie a program Multi-MEmu jest oknem zarządzającym kolejnymi uruchamianymi obrazami androidowej aplikacji.
Przy tworzeniu nowego obrazu możemy wybrać wersję emulowanego Androida (default 4.4.4/5.1). Możemy też wybrać typ urządzenie jakie chcemy zasymulować choć nie zauważyłem różnic w obsłudze. Teoretycznie da się uruchomić nieograniczoną liczbę obrazów ale już przy trzecim komputer wyraźnie siada.
Wszytko (no prawie) odbywa się jak w rzeczywistym telefonie. Niczego więc nie trzeba się uczyć. Emulator działa praktycznie od razu.  Parametry dostępu do  sieci są konfigurowane automatycznie - wystarczy sprawdzić czy działa przeglądarka. Jeśli jest ok możemy instalować własne aplikacje  z Google Play lub bezpośrednio z pliku APK.

BLYNK ściąga się błyskawicznie i instaluje bez zająknięcia. Jeśli potrzebujemy dwóch telefonów uruchamiamy kolejny emulator. Oba pracują szybko i całkowicie niezależnie od siebie.BLYNK na emulatorze działa świetnie. Nie zauważyłem żadnych problemów poza oczywistymi różnicami wynikającymi z tego, że to nie jest telefon. A więc większości widgetów ściśle powiązanych z funkcjami telefonu (czujnik światła, żyroskop itd) nie przetestujemy symulatorem.Działa aparat o ile komputer ma zainstalowaną kamerkę. Pozycję GPSa możemy ustawić ręcznie. Jest klawisz symulacji potrząsania telefonem.




Pozostaje tylko uruchomić serwer BLYNK i połączyć oba programy w ramach tego samego komputera. Jeśli komputer nie ma stałego adresu IP to należy go odczytać z ustawień sieciowych lub z wiersza poleceń komendą ipconfig /all. i wpisać ten adres do obu uruchamianych aplikacji.
W przeglądarce https://192.168.2.21:9433 - dostęp do administrowania serwerem BLYNK
W aplikacji BLYNK - 192.168.2.21 : 8443 - dostęp APP w telefonie do serwera BLYNK
Oba programy powinny połączyć się z sobą bez problemów.


Niestety aplikacja BLYNK (albo emulator) nie rozpoznaje adresu 127.0.0.1 trzeba wpisać rzeczywisty adres IP przydzielony karcie sieciowej komputera. Albo nazwę komputera (hosta) bo ta się nie zmienia przy włączonym DHCP i nie trzeba każdorazowo sprawdzać adresu IP.


Zaczynamy
Dla użytkownika tt@tt.pl tworzę nowy projekt pt. 'Domek za miastem" (to zapowiedź kolejnego projektu). Oczywiście nie zapominamy o zmianie adresu serwera BLYNK na lokalny.
Adres użytkownika wpisałem z sufitu więc kod AUTH należy odczytać albo z aplikacji w telefonie albo z panelu administracyjnego serwera.
Kliknięcie na ukryty kod powoduje jego skopiowanie do schowka. W panelu administratora kod zapisany jest w postaci jawnej












Ostatnim krokiem będzie przyłączenie do systemu rzeczywistego mikroprocesora z zainstalowaną biblioteką BLYNKa. Wybrałem najprostszy moduł - D1 MINIz ESP8266. I absolutnie minimalny program

Mikroprocesor łączy się z komputerem poprzez domową sieć WiFi (ssid, pass). By dostać się do serwera lokalnego należy przekierować połączenie z domyślego (serwer BLYNK w chmurze) na komputer z zainstalowanym serwerem.



Zamieniamy więc zawartość Blynk.begin
z      Blynk.begin(auth, ssid, pass);
na    Blynk.begin(auth, ssid, pass, IPAddress(192,168,2,21));
Zamiast adresu serwera lokalnego możemy wpisać nazwę komputera (hosta)
Blynk.begin(auth, ssid, pass, "Nazwa_hosta");

Efektem naszych starań powinien być taki sympatyczny komunikat na monitorze Arduino IDE








Pozostaje tylko sprawdzić jak aplikacja w wirtualnym telefonie współpracuje z rzeczywistym układem testowym opartym na module D1 MINI poprzez serwer uruchomiony na tym samym komputerze. Zaprogramowałem trzy przyciski sterujące bezpośrednio portami GPIO2, 12 i 14 układu ESP8266.
I niestety działa - choć nazwa projektu się lekko wykoślawiła



A tak przy okazji
wirtualny Android pozwala w prosty sposób nagrywać to co na nim robimy. Ikona kamerki uruchamia proces nagrywania naszej aktywności na emulowanym telefonie.



Można także jednocześnie nagrywać sterowanie BLYNKiem na ekranie emulowanego telefonu i widok układu mikroprocesora reagującego na to sterowanie. Potrzebna będzie do tego jakakolwiek kamera internetowa i dwa programy AMCap - wyświetlający obraz  z kamery i  oCam do rejestracji wybranego fragmentu ekranu. Efekt nagrywania - powyżej.






Na dziś wystarczy tych konfiguracyjnych eksperymentów. Poczekajmy na cd....
91

Brak komentarzy:

Prześlij komentarz