logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Sterowanie ESP32 z zewnątrz sieci - jak skonfigurować dostęp?

madiz08 13 Cze 2019 12:03 4674 5
  • #1 18009394
    madiz08
    Poziom 14  
    Posty: 517
    Pomógł: 4
    Ocena: 172
    Witam,
    Używam ESP32 do kontroli i przesyłu danych przez domowe WiFi. Być może pytanie nie jest do tego działu, ale czy mógłbym dostać chociażby jakieś linki do tematyki jak sterować wyjściem ESP32 gdy jestem w pracy. Z kilku przykładów, które robiłem (aplikacja na telefonie - ESP32), z aplikacji na telefonie, przesyłam wewnętrzny adres IP 192.168.0.106/Włącz. Działa to oczywiście tylko po lokalnym wifi. Zdaję sobie sprawę, że mój telefon w pracy łącząc się przez mobilny internet ma całkiem inne IP i nie wie jak połączyć się z moim routerem w domu, który wychodzi na świat z jeszcze innym IP.
    Czy chcąc napisać coś takiego powinienem się cofnąć do pozyskania wiedzy z sieci komputerowych, czy są jakieś gotowce lub linki jak mogę to wykonać
  • Pomocny post
    #3 18009568
    kaczakat
    Poziom 34  
    Posty: 1748
    Pomógł: 317
    Ocena: 231
    W zależności czy Twoje IP jest stałe czy zmienne, ale w ogóle jest zewnętrzne, można podejść do tematu na różne sposoby. W każdym przypadku musisz mieć dostęp do ustawień routera i umieć przekierować porty. Np. port 12222 przekierowujesz na wewnętrzne IP 192.168.0.106 i port 80 (typowy dla serwera WWW). Jeśli IP zewnętrzne jest stałe to podajesz w swojej komendzie IP:12222/Włącz. Jeśli IP jest zmienne to musisz sobie uruchomić jakiegoś klienta DDNS w routerze, sprawdź jakie serwisy umie obsłużyć, wchodzisz na taki serwis, zakładasz konto, rejestrujesz sobie jakąś wolną nazwę i w efekcie zawsze gdy router jest w sieci, nieważne jakie ma akurat IP będziesz się mógł do niego dostać używając tej nazwy, np. wolnanazwa.ddns.net:12222/Włącz - polskich znaków pewnie jednak nie używasz.
    Jeśli nie masz zewnętrznego IP pozostaje instalacja Blynka czy podobnego ustrojstwa i opieranie się o dostępne rozwiązania przez serwery pośredniczące w komunikacji. Z drugiej strony tak może być bezpieczniej - otwarcie i przekierowanie portu to pewne prawdopodobieństwo, że ktoś inny też z tego będzie chciał skorzystać.
    Pomogłem? Kup mi kawę.
  • #4 18009679
    madiz08
    Poziom 14  
    Posty: 517
    Pomógł: 4
    Ocena: 172
    Rozumiem, czyli najpierw spróbuję poprzez blynk.
  • Pomocny post
    #5 18021773
    Maciej_1985
    Poziom 2  
    Posty: 3
    Pomógł: 2
    Hej,
    tworzę platformę remoteme.org, może Ci pomoże to w łatwy sposób osiągnąć - w porównaniu z blynkiem masz pełną dowolność w tworzeniu, bo po prostu tworzysz strony WWW i używając bibliotek komunikujesz się z ESP, a potem taka stronę możesz wyeksportować paroma kliknięciami jako apkę na telefonie:
    https://remoteme.org/pl/wysylanie-push-notyfi...likacji-na-androidzie-out-of-the-box-project/
    tutaj opisałem krok po kroku i chyba dokładnie to, co potrzebujesz (i nie jest potrzebna konfiguracja rutera, stały IP czy inne takie - działa out of the box ;))
  • #6 18028650
    madiz08
    Poziom 14  
    Posty: 517
    Pomógł: 4
    Ocena: 172
    Blynk przetestowany i działa poprawnie, ale ma ograniczenia.
    W drugiej kolejności chciałbym spróbować połączyć się przez otwarty port. Pierwsze co zrobiłem to konfiguracja port forwarding w moim routerze TP-Link:
    Sterowanie ESP32 z zewnątrz sieci - jak skonfigurować dostęp?
    Nastepnie poprzez whatsmyip dowiedziałem się o swoim adresie IP na świat. Chcąc przesłać polecenie przez przeglądarkę, w windowsie w ustawieniach firewall dodałem regułę przepuszczającą port 350.
    wpisałem polecenie XXX.XX.XXX.X:350/strefa1_ON, gdzie normalnie 192.168.0.106/strefa1_ON aktywuje mi wyjście ESP32 i nic. Ustawiłem taki adres IP na aplikacji w telefonie (adresIP mam tam edytowalny) i też nic.
    Okazała się rzecz, o której całkowicie zapomniałem. Po wpisaniu w przeglądarkę adresu IP z whatsmyip, okazało się ze wskoczyła mi strona z konfiguracja drugiego routera. Router LIVEBOX połączony jest ze światem, mój router TPLINK połaczony jest z nim po LAN-ie:
    Sterowanie ESP32 z zewnątrz sieci - jak skonfigurować dostęp?
    Teraz, żeby to działało to podejrzewam, że musiałbym też otworzyć port na LIVEBOX-ie, czy tak? A może w ESP32 wystarczyłoby zmienić gateway na 192.168.1.1?
    Mam tez pytanie odnośnie bezpieczeństwa, czy konfigurując PORT dla konkretnego IP mam pewność, że wpuszczam coś z zewnątrz tylko do tego określonego adresem IP urzadzenia, czy otwieram dostęp dla wszystkiego?
    Jak jest widziany dla rutera LIVEBOX mój ruter TP-LINK? Czy on tez ma przydzielane IP z grupy 192.168.1.XXX?
    Bardzo ciekawi mnie przetestowanie tego, ale obawiam się trochę zbytniego kombinowania.
    Jeszcze zastanawia mnie też czy ESP32 w programie arduino nie powinno mieć skonfigurowanego danego portu.

    Dodano po 27 [minuty]:

    Teraz zauważyłem, że kolega kaczakat pisał już o informacji, że port wewnętrzny powinien być ustawiony na 80, także to też zmienię.
REKLAMA