RemoteMe.org pomoże Ci wysyłać wiadomości do Twoich urządzeń (również przez internet).
RemoteMe to także zestaw bibliotek, i miejsce na serwerze gdzie możesz hostować swoje strony internetowe do komunikowania się z Twoimi urządzeniami.
Prosty diagram pokazujący proces rejestracji urządzeń w RemoteMe
Urządzeniami są:
- Każde urządzenie podłączone do chmury remoteMe takie jak ESP8266 czy ESP32
- RasbperryPi
- skrypt pythonowy zarządzalny przez aplikacje RemoteMe
- Strona internetowa
- Aplikacja na smartfona
Każde urządzenie posiada:
- deviceId – unikalny numer na koncie RemoteMe
- nazwa – nie musi być unikalna
Jeżeli planujesz podpiąć kilka podobnych urządzeń np ESP, każde powinno posiadać swój deviceId
Każde urządzenie musi korzystać z bibliotek
- bibliotekę javascriptowa do stron internetowych
- remoteMe, i remoteUtils dla arduino – może być zainstalowana przez managera bibliotek
- biblioteki pythonowe – automatycznie dodawane podczas instalacji na RasbperryPI
Biblioteki są używane do komunikacji z aplikacją remoteme.org, Istnieją też kreatory które w łatwy sposób wygenerują potrzebny kod. Można też po zaznajomieniu się z bibliotekami napisać własną stronę internetową czy sketch na arduino
Urządzenia są podłączone do remotemeOrg korzystając z socketów (ESP) lub websocketów RasbperryPi, strony internetowe. W większości przypadków samo połączenie jest utrzymywane poprzez biblioteki, a samo połączenie i jego szczegóły są niewidoczne dla użytkownika
Status połączenia jest pokazywany przy urządzeniu na karcie “devices”
Typy połączeń
- Websocket/Socket standardowe połączenie – urządzenia łączą się do remoteMe a remoteMe zajmuje się jak hub przekazując pomiędzy uradzeniami wiadomości
- Bezpośrednie połączenie ESP<-> strona internetowa w przypadku gdy oba urządzenia należą do tej samej sieci lokalnej i po odpowiedniej konfiguracji tworzone jest bezpośrednie połączenie pomiędzy stroną internetowa a ESP – dzięki temu opóźnienie w przesyle wiadomości jest minimalne
- WebRTC ten rodzaj połączenia jest wykorzystywany do bezpośredniego połączenia RasbperryPi strona internetowa i działa również przez internet. Jest to wygodny protokół nie tylko do przesyłania poleceń z do RasbperryPi ale również do przesyłu obrazu wideo na żywo ( z minimalnym opóźnieniem 150ms)
Wiadomości
RemoteMe wysyła wiadomości do urządzeń poprzez ustanowione połączenie. Typ wiadomości jest dość sporo i odpowiadają za rejestracje urządzeń , przesył stanu aktualizacja plików. Użytkownik może również przesyłać własne wiadomości:
- Direct message asynchronous – wiadomość asynchroniczna – taka po której wysłaniu nie oczekujemy odpowiedzi – np włącz oświetlenie
- Direct message synchronous – Wiadomość synchroniczna – taka gdzie oczekujemy na odpowiedź np podaj mi temperaturę z czujnika A
Jednak najłatwiejszą metodą kontroli urządzeń jest wykorzystanie zmiennych (Variables)
Zmienne
Jest to rodzaj publish subscribera – jedne urządzenie ( lub scheduler ) zmienia stan zmiennej, a urządzenia które są zainteresowane tymi zmianami dostają wiadomość o zmianie tej zmiennej
Do obsługi zmiennych wykorzystywane są biblioteki – javascriptowe, do arduino i do pythona – a kod do ich obsługi może zostać wygenerowany automatycznie. Również strona internetowa może wysyłać zmianę zmiennej np po wciśnięciu przycisku, komponenty na stronę internetową mogą też zostać dodane łatwo przy pomocy kreatora
Więcej o zmiennych tutaj
Poczytaj