Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 28 mar 2024, o 17:27


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 39 ]  Przejdź na stronę 1, 2  Następna strona
Autor Wiadomość
PostNapisane: 2 gru 2017, o 08:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Witam,

Pewnie to jest pytanie dla Was banalne i śmieszne.. ale oglądałem wszystkie poradniki pana Mirka na temat B4A i modułu Atnel Wifi..
I wszystkie mówią jak to wysyłać pod konkretny adres IP i port. Tak mi działa... Ale jako, że chcę mieć sterowanie globalne to zrobiłem ddns i przekierowałem port..
dla testów zrobiłem serewer HTTP na avr i mogę na niego wchodzić z każdego miejsca na ziemi :X poprzez link http://www.xxx:8899 ustawienie poprzez TCP SERVER.

Ale teraz zmieniłem na UDP Server i chcę odpytać procesor.. jeśli robię to przez 192.168.1.102:8899 (taki ma IP moduł) to wysyła mi pakiety... ale ja chciałbym porzez http://www.xxxx:8899 kiedy wpisuje tak zamiast IP to wiadomo nie działa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2017, o 10:27 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

Bo mylisz UDP z TCP - tak nigdy nie zadziała

po co się upierasz na to kocie http://www.xxx:8899

użyj że albo samego adresu IP i portu albo samej nazwy i portu

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2017, o 10:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Dziękuję Panie Mirku za odpowiedź

Może posłużę się kodem:

Generalnie chodzi o komunikację UDP między B4A -> AVR

Składnia: [ Pobierz ] [ Ukryj ]
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Jeśli do remote_ip zostanie przekazany ip modułu (u mnie 192.168.1.102) oraz port (8899) no to komunikacja działa potrafię wysłąć i odebrać z avr dane. Ale to lokalnie - bo podałem adres IP lokalny.

Natomiast ja mam przekierowany port modułu pod domeną mgmwojcik.ddns.net to czy jestem w stanie tak sterować ?

Czy muszę w moim przypadku mieć protokół TCP i dane w linku przekazywać ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2017, o 11:40 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

Morcinek92 napisał(a):
Natomiast ja mam przekierowany port modułu pod domeną mgmwojcik.ddns.net to czy jestem w stanie tak sterować ?

A próbowałeś w ogóle ? czy boisz się spróbować ? ;) bo nie rozumiem pytania - czy może uważasz, że gdy tak spróbujesz to coś się fizycznie uszkodzi ? ... nie piszę tego żeby się naśmiewać czy dogryźć - po prostu nie rozumiem jak można nie spróbować i stąd pytanie

obejrzyj sobie te poradniki

https://www.youtube.com/watch?v=6z_FOdA50KY
https://www.youtube.com/watch?v=BRsVPbiUTY4
https://www.youtube.com/watch?v=3qsYbiVO5PQ

bo jak nie zrozumiesz jak TO działa to zawsze będziesz miał problemy

wiesz po co jest DDNS ? On ma za zadanie zwrócić i właśnie adres IP o który tobie przecież chodzi dlatego gdy wpisujesz w przeglądarkę

atnel.pl

to przecież przeglądarkę czochra jakaś tam nazwa atnel.pl - ona jest niezrozumiała dla przeglądarki ... więc jak to działa że wchodzisz na atnel.pl ? Przeglądarka potrzebuje adresu IP

po to są serwery DNS ... to dzięki ...

ale ok nie będę tu się rozpisywał na temat tego o czym mowa jest w poradnikach wideo do których wyżej dałem ci linki

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2017, o 11:58 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

ObrazekObrazekObrazek


Już kiedyś widziałem te poradniki, ale zaraz sobie zacznę je oglądać raz jeszcze.


Próbowałem wpisywać, tylko z poziomu B4A bo w przeglądarce wiadomo, że nic nie dostanę jak avr wysyła
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Wiem co to jest DDNS.. po to je stworzyłem żeby nie wpisywać w przeglądarke swojego adresu IP, który i tak jest dynamiczny. Mam Orange. link: mgmwojcik.ddns.net:8899 przekierowuje mnie to modułu. Tak jak pisałem wcześniej z serwer HTTP na avr to działało świetnie, ale problem jest z UDP



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2017, o 12:08 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

No jak jesteś za NATem komórkowym to zapomnij o zwrocie UDP bo ruch UDP jest zwykle absolutnie tu blokowany.

Gdybyś miał np Neostradę i publiczny choć dynamiczny adres IP to by działało

Morcinek92 napisał(a):
z serwer HTTP na avr to działało świetnie,

tak mogło działać ponieważ TCP jest protokołem połączeniowym a UDP bezpołączeniowym. Czyli TCP najpierw zestawia połączenie - dwa gniazdka się łączą i można tą rurą przesyłać dane. UDP nie łączy się tylko próbuje wysłać coś na adres i nie sprawdza czy dotarło


Autor postu otrzymał pochwałę

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2017, o 12:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Hmm.. mam Neostradę.. w sensie Neostrady już dawno nie ma teraz aktualnie to Orange jest.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2017, o 13:01 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

a no to teoretycznie powinno śmigać - ja myślałem że masz to poprzez sieci komórkową

a masz otwarty port 8899 wejściowy w swoim routerze i przekierowanie go na adres ip modułu ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2017, o 13:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Obrazek

uf.... Dziękuję bardzo.. za pomoc.. byłem pewnie, że w port forwarding ustawiłem protokół na "ALL" a był na TCP więc to było tego przyczyną. Po zmianie ruszyło od razu :)
Jestem mega zadowolony :D

Ale jeszcze jedno... więc to oznacza, że mam publiczny adres IP tak?
Gdyby dostawca, przydzielił mi prywatny to nie ma żadnych szans na zrobienie takiej komunikacji ??

W styczniu mam zmianę dostawcy...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2017, o 13:57 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

Cytuj:
Ale jeszcze jedno... więc to oznacza, że mam publiczny adres IP tak?

dokładnie tak .... w telefonii komórkowej praktycznie nikt nie ma takiej możliwości ..

zanim zmienisz dostawcę upewnij się, czy nie będzie ciebie szprycował jakimś lokalnym adresem

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2017, o 14:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Dziękuję, już cosik wiem... coś zaczyna działać jest dobrze.

Nurtuje mnie jeszcze jedna rzecz. Gdybym chciał zrobić urządzenie które też komunikuje się globalnie, ale nie mam publicznego adresu IP ani nie chcę go kupować.

W tedy wykorzystam połączenie TCP tak? Jak wcześniej Mirku powiedziałeś jest to protokół połączeniowy.

Tylko nie wiem jak z komunikacja ze strony B4A.. bo teraz wysyłanie załatwia mi funkcja. SendUDP

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
a przy TCP?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2017, o 14:58 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

Mylisz pojęcia, protokół niema tutaj żadnego znaczenia.
Protokół to jest "zestaw" reguł które służą do wymiany informacji i ma on niewiele wspólnego z fizycznym połączeniem.
Narazie ;) niema żadnej możliwości połączenia się z adresem prywatnym, no może poza zestawieniem VPN, ale i tak wtedy trzeba by jej zestawić od strony "prywatnej"

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2017, o 16:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Czyli to, że zadziało wcześniej na protokole TCP nie znaczy, że działo by gdybym miał IP prywatne..
Tak czy siak jeśli chcę zestawić połączenie globalne czy to TCP czy UDP potrzebuje mieć IP publiczne.

Właśnie słyszałem o VPN.. dokładnie jeszcze nie wiem jak to zadziała..muszę doczytać. Tylko z tego co czytałem to też jest płatne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2017, o 19:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Harry napisał(a):
no może poza zestawieniem VPN, ale i tak wtedy trzeba by jej zestawić od strony "prywatnej"
VPN to jest szyfrowana rura łącząca dwie strony. Więc trzeba mieć do czego ją z drugiej strony podłączyć.

mirekk36 napisał(a):
zanim zmienisz dostawcę upewnij się, czy nie będzie ciebie szprycował jakimś lokalnym adresem
Należy uważać, bo posiadanie publicznego adresu IP nie zawsze daje możliwość połączenia z internetu do naszej sieci. Teraz już nie, bo operatorzy przeszli na prywatne adresy IP, ale jeszcze niedawno klienci sieci komórkowych dostawali publiczne adresy IP, ale połączenia do nich z internetu były blokowane. Aby dostęp był możliwy trzeba wykupić dodatkowy APN.

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2017, o 19:18 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27212
Lokalizacja: Szczecin
Pomógł: 1041

dlatego wyżej pisałem, że w sieciach komórkowych to jest bonanza ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 gru 2017, o 22:04 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

Z bardzo prostej przyczyny.
Chodzi o to że każda sieć komórkowa ma gigantyczną rurę na świat, która mogłaby być wykorzystana w niecnych celach.
Wiele lat temu na jakimś seminarium dot. bezpieczeństwa sieci, wykładowca pokazywał jak łatwo za pośrednictwem sieci komórkowej wywołać pad dowolnego serwera, w dosłownie kilkadziesiąt sekund. Jego DoS opierał się na banalnym pingu, tyle że z określoną trasą, w tym przypadku przez chińskiego operatora. Po pingu który był puszczony przez zaledwie minutę, serwer docelowy zaczął odpowiadać normalnie dopiero po 40 minutach.

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 gru 2017, o 08:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

W takim razie powiedzmy, że klient chce mieć urządzenie sterowane po wifi poprzez telefon komórkowy. Nie chce płacić co miesiąc opłaty za publiczne IP.
Jaki sposób Wy byście zastosowali ?

1) Według mnie najtańsza opcja to wykupić jakąkolwiek domenę i serwer (albo wybrać darmową) i wysyłać dane do bazy danych a tam wyświetlać na stronie - która będzie skalowana do konkretnego wyświetlacza.

Natomiast nadal to nie jest aplikacja w B4A.. : (



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 gru 2017, o 13:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Przy komercyjnych systemach często nie potrzebne jest publiczne IP w kliencie, bo dostawca daje serwer "przesiadkowy". Polega to na tym, że zarówno aplikacja, jak i urządzenie łączą się z tym serwerem. Tam się autoryzują i urządzenie podaje identyfikator. Jeżeli aplikacja chce coś od urządzenia to wysyła do serwera żądanie, które na podstawie identyfikatora urządzenia jest do niego przekierowywane. Przy takich rozwiązaniach obie strony łączą się typowo po protokole TCP - często przez szyfrowane połączenia, lub po VPNie.

Mając własny serwer w internecie można coś takiego samemu sobie zrobić. Tylko publiczne IP u operatora to koszt od 5 zł / miesiąc. Serwer z możliwością odpalania dowolnych własnych programów to znacznie więcej :(.
Jednak można zrobić na tanim (nawet często darmowym) hostingu wersję podobnie działającą. Urządzenie jak i aplikacja wysyła zapytania i dane do serwera (tani hosting daje tylko http / https, ale to wystarcza). Serwer przechowuje informacje w swojej bazie danych i udostępnia drugiej stronie. W ten sposób można wysyłać z aplikacji komendy do wykonania - zapisują się w bazie i czekają tam na kontakt urządzenia z serwerem. Jak urządzenie jest połączone po TCP to nawet może od razu dostać przekierowaną komendę,. Gdy nie, to dopiero po ponownym połączeniu / odpytaniu się serwera.

--
Pozdrawiam,
Robert

------------------------ [ Dodano po: 11 minutach ]

Harry napisał(a):
Chodzi o to że każda sieć komórkowa ma gigantyczną rurę na świat, która mogłaby być wykorzystana w niecnych celach
Sieci stacjonarne mają znacznie większe. To nie dlatego.
W sieci komórkowej kiedyś za wszystkie dane płaciłeś. Teraz to są limity danych, ale jak się wyczerpują to są zakładane ograniczenia prędkości lub naliczana opłata. Jeszcze gorzej jest w roamingu (szczególnie poza UE), gdzie opłaty nie są małe :(.
Gdy masz publiczny adres IP bez blokowania połączeń z internetu, to dowolna osoba może wysłać do Ciebie dane, które wliczają się w Twój pakiet. Czyli Ty nic nie robisz a dane Ci się wyczerpują / naliczają opłaty. Dlatego by operatorzy nie byli oskarżani o błędne naliczanie danych, wystawianie faktur za nieprzesłane dane, to wprowadzili taką politykę.
Jeżeli chcesz mieć dostęp z internetu to musisz mieć aktywowany dodatkowy APN. A że jest za tą usługę naliczana dodatkowa opłata, to ... marketing :D.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 gru 2017, o 13:56 
Offline
Użytkownik

Dołączył(a): 17 mar 2015
Posty: 38
Lokalizacja: Australia
Pomógł: 0

Bardzo interesujący wątek.
rskup napisał(a):
Serwer przechowuje informacje w swojej bazie danych i udostępnia drugiej stronie. W ten sposób można wysyłać z aplikacji komendy do wykonania - zapisują się w bazie i czekają tam na kontakt urządzenia z serwerem.

Testowałem to i ładnie działa ale jak się można domyśleć czas na przekazanie "informacji" z aplikacji na Androidzie do urządzenia docelowego będzie dość długi wynikający z ograniczonej częstotliwości odpytywania serwer o nowe dane.
Myślę, że autorowi wątku zależałoby na tym aby informacja była przekazana możliwie jak najszybciej czyli. np przyciskamy sobie jakiś przycisk na aplikacji w telefonie a urządzenie reaguje możliwie "natychmiast" czyli po czasie kilkudziesięciu/kilkuset milisekund.
Dlatego wydaje mi się, że ta opcja:
rskup napisał(a):
Jak urządzenie jest połączone po TCP to nawet może od razu dostać przekierowaną komendę

byłaby tutaj idealnym rozwiązaniem.
Sam jestem bardzo ciekaw jak to zrealizować. Jak przekierować komendę za pomocą zewnętrznego serwera.
Jakieś podpowiedzi co należałoby wygooglać aby podszkolić się w tym temacie?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 gru 2017, o 15:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

zieleniewiak napisał(a):
Jak przekierować komendę za pomocą zewnętrznego serwera.
A masz dostęp do serwera z shellem czy tylko z hostingiem www?
Jak masz z shellem bez ograniczeń na uruchamiane aplikacje, to tworzysz serwer TCP (jest wiele przykładów w internecie) i jeżeli nie przewidujesz większej ilości urządzeń oraz aplikacji, to w prosty sposób wszystko co otrzymałeś na jednym połączeniu wysyłasz na drugie i odwrotnie :).
Wydaje mi się że przy dostępie różnego rodzaju dodatków da się coś takiego zrobić także na apache. Tylko tutaj nie mamy możliwości komunikowania się między wątkami, więc dane wymieniane powinny być zapisywane do jakiejś bazy danych / pliku w którym każdy z procesów sprawdza czy coś się nie zmieniło.

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 gru 2017, o 18:47 
Online
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2561
Pomógł: 126

Jak masz taką potrzebę, to za niewielkie pieniądze można mieć swój własny serwer z publicznym IP na którym postawisz i robisz co Ci się żywnie podoba.
np. ArubaCloud lub Vultr. Polecam do testowania :) Dostęp poprzez konsolę (z przeglądarki) lub shella.

A jak ktoś ma w domu zewnętrzne IP, to oczywiście rozwiązania typu Raspberry PI, żeby nic nam nad uchem nie huczało. Albo .... jeszcze inne
rozwiązanie - NAS z wirtualizacją. Np. QNAP. Można na nim postawić i Linuxa i Windowsy (jak to w wirtualkach) i przekierować np. fizyczny
USB NASa do maszyny wirtualnej, żeby sobie z niego np. zabootować system (oczywiście bootowanie z plików ISO, które znajdują się na NASie też jest możliwe).
Łączenie się do wirtualnego komputera po VNC lub poprzez przeglądarkę.
Osobiście sprawdzałem - potrzebowałem zrobić dedykowanego pendrive'a z multisystemem (ok. 20GB) i nie chciałem zostawiać włączonego PCta,
który by ściągał niezbędne materiały :) Więc postawiłem na wirtaulce Qnapa testowy system, odpaliłem aplikację do tworzenia pena i po powrocie
z pracy, miałem wszystko gotowe. Co więcej mogłem sobie na bieżąco podglądać postęp :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 gru 2017, o 20:17 
Online
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2561
Pomógł: 126

Zapomniałem dodać, że można na NASie postawić np. Domoticza.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 gru 2017, o 20:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Dokładnie o takie rozwiązanie mi chodzi jakie podesłał kolega KiSoft.

AVR <-> Could <-> B4A

Ale to już wyższa szkoła..

Przeglądałem ofertę firmy Supla.. mają mega tanie te urządzenia

https://allegro.pl/listing?string=SONOFF&order=p&bmatch=ss-base-relevance-floki-5-nga-hcp-hou-1-3-1003



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 gru 2017, o 05:28 
Offline
Użytkownik

Dołączył(a): 17 mar 2015
Posty: 38
Lokalizacja: Australia
Pomógł: 0

Morcinek92 napisał(a):
Dokładnie o takie rozwiązanie mi chodzi jakie podesłał kolega KiSoft.

AVR <-> Could <-> B4A

Ale to już wyższa szkoła..

Przeglądałem ofertę firmy Supla.. mają mega tanie te urządzenia

Właśnie taki rodzaj komunikacji mnie też interesuje
I tutaj też mam pytanie.
Jak zrobić taki serwer jak zrobiła firma Supla.
Wiem, że musi być to serwer zewnętrzny z którym kontaktują się zarówno AVR jak i B4A. Server ten następnie w jakiś "magiczny" sposób umożliwia bezpośrednią komunikację pomiędzy AVR a B4A.
Chciałbym zrobić taki serwer jednak nie bardo wiem jak się do tego zabrać.
Jakie wymagania musi spełniać usługa hostingowa aby taki server stworzyć?

Szukam po internecie ale wygląda to trochę jak błądzenie po ciemku.
Może koledzy podali by choć jakieś wskazówki/słowa kluczowe od których należało by zacząć.
Z góry dziękuje za pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 gru 2017, o 08:56 
Online
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2561
Pomógł: 126

O Domoticzu pisałem wcześniej przy okazji NASa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 gru 2017, o 09:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

Z tym, że koledze zieleniewiak nie chodzi o gotowe serwisy.
Sam chciałby takie coś stworzyć. Też bym chciał ale nie mam wystarczającej wiedzy w tym zakresie jak na razie..

Kiedyś próbowałem ale robiłem to prze MySQL. Procesor wysyłał dane np. co 30 sekund i poprzez skrypt PHP na serwerze zostały zapisane do bazy danych. Następnie chciałem w B4A odczytywać po wejściu w aplikację ostatni records z bazy, ale to mi się już nie udało..

Jeśli Cię to interesuje to tutaj kolega z forum @Majster to troszkę opisał
http://avrtech.pl/2016/09/11/stacja-meteo-czesc-3/
http://avrtech.pl/2016/09/13/stacja-meteo-czesc-4/

oraz cała seria poradników Pana Mirka "WIFI - CLIENT - WWW/PHP"

https://www.youtube.com/watch?v=pFWw5oVj_0Q.

Wspólnymi siłami może jakoś damy radę to zrobić :)

Zastanawiam się tylko czy to jest dobre podejście w tym przypadku do bazy danych. Czy takie serwisy jak Supla I Domoticz działają z bazą danych czy jest to inaczej zrealizowane



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 gru 2017, o 09:47 
Offline
Użytkownik

Dołączył(a): 17 mar 2015
Posty: 38
Lokalizacja: Australia
Pomógł: 0

Morcinek92 napisał(a):
Z tym, że koledze zieleniewiak nie chodzi o gotowe serwisy.
Sam chciałby takie coś stworzyć. Też bym chciał ale nie mam wystarczającej wiedzy w tym zakresie jak na razie..

Dokładnie.
Chodzi o podobne działanie jak np Skype gdzie serwer skype jest tylko potrzebny do nawiązania połączenie. Sama transmisja wideo odbywa się już bezpośrednio pomiędzy użytkownikami bodajże po UDP właśnie.
I wcale Ci użytkownicy nie muszą być w sieci z publicznym adresem IP.

Morcinek92 napisał(a):
Kiedyś próbowałem ale robiłem to prze MySQL. Procesor wysyłał dane np. co 30 sekund i poprzez skrypt PHP na serwerze zostały zapisane do bazy danych. Następnie chciałem w B4A odczytywać po wejściu w aplikację ostatni records z bazy, ale to mi się już nie udało..

To akurat mi działało. Jako, że nie bardzo znam się na bazach danych to to zrobiłem to na pliku tekstowym.
Do tego celu musiałem "liznąć" pisania skryptów PHP i wyszło mi coś takiego:

Jeden ksrypt "andr.php" wywołujemy z Androida poprzez: http://ba365.pl/andr.php?sysID=10001&val=_MOD0170%20:0202:75 aby dodać dane val i jednocześnie odczytać to co ewentualnie było pozostawione poprzez uC

Składnia: [ Pobierz ] [ Ukryj ]
język php
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Drugi skrypt wywoływane z uC poprzez: http://ba365.pl/uc.php?sysID=10001&all=0&val=00112233445566778899AABBCCDDEEFF
aby przekazać swoje dane i odczytać to co zostawił Android

Składnia: [ Pobierz ] [ Ukryj ]
język php
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Dane zapisywane są, jak już wspomniałem w pliku tekstowym. Każde dane w oddzielnej linii. Odczytywana jest zawsze "najstarsza" linia.

Przepraszam za brak profesjonalizmu w powyższym kodzie ale była to moja pierwsza przygoda z php i jak na razie jedyna.

Wadą tego rozwiązania jest to, że czas przekazania wiadomości pomiędzy uC i Androidem (lub odwrotnie) jest relatywnie długi. Wynika to z tego, że nie możemy przecież wysyłać zapytania url do serwera np 100 razy na sekundę aby odpytywać czy przypadkiem jakieś dane tam na nas czekają. Gdzie w znacznej większości zapytań odpowiedź będzie - brak danych NaN

To rozwiązanie może i jest dobre ale nie dla rozwiązań typu sterowanie oświetleniem z Androida gdzie reakcja musi być "natychmiastowa".

Przekierowanie portów mogło by być dobre ale wymaga publicznego IP dla sieci w której zainstalowany jest uC.

Dlatego najlepszym rozwiązaniem wydawało by się znalezienie rozwiązania o którym wspomniałem na początku moich wypocin ;)
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 gru 2017, o 11:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

kisoft napisał(a):
Wykupienie serwera i domeny jest kosztowne.


Jeśli nie zależy nam na konkretnej nazwie domeny, to nie jest wcale drogie. Ja domenę z hostingiem wykupiłem za 15 zł na rok. Więc taniej wychodzi niż publiczne IP u operatorów. Ale masz rację można poszukać darmowego serwera.

zieleniewiak:

A jaki był mniej więcej czas od kliknięcia w aplikacji do fizycznej zmiany stanu stanu na porcie? to są mili sekundy ? sekundy ??
Aplikację programowałeś w B4A? Jeśli tak mógłbyś pokazać kod



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 gru 2017, o 12:05 
Offline
Użytkownik

Dołączył(a): 17 mar 2015
Posty: 38
Lokalizacja: Australia
Pomógł: 0

Morcinek92 napisał(a):
kisoft napisał(a):
Wykupienie serwera i domeny jest kosztowne.


Jeśli nie zależy nam na konkretnej nazwie domeny, to nie jest wcale drogie. Ja domenę z hostingiem wykupiłem za 15 zł na rok. Więc taniej wychodzi niż publiczne IP u operatorów. Ale masz rację można poszukać darmowego serwera.

Ja bym może nie skupiał się nad kosztami. Zarówno ja jak i kolega Morcinek92 zdajemy sobie sprawę, że w przypadku rozwiązania którego szukamy niezbędny jest wykupiony hosting i zewnętrzna domena. To wiemy.
Nie wiemy natomiast jak z tym ruszyć. Kolega w pracy wspomniał, że na pewno chodzi mi o połączenie p2p. Miał rację? Czy to o co pytamy to będzie p2p?

Morcinek92 napisał(a):
zieleniewiak:

A jaki był mniej więcej czas od kliknięcia w aplikacji do fizycznej zmiany stanu stanu na porcie? to są mili sekundy ? sekundy ??

Jeśli chodzi o czas reakcji to nie jestem pewien o które rozwiązanie Ci chodzi.

Jeśli chodzi o opcję z przekierowaniem portów w routerze to było to, hm trudno określić, szybko, jakieś 100-200 ms.

W opcji w zapisem danych na serwerze zewnętrznych i odpytywaniem o dane przez drugą stronę było to różnie pomiędzy 2 a 5 sekund. Przy odpytywaniu chyba co 2 sekundy. Jeśli odpytywałem częściej to nie bardzo chciało działać :)

Morcinek92 napisał(a):
Aplikację programowałeś w B4A? Jeśli tak mógłbyś pokazać kod

Tak aplikację pisałem w B4A.
O którą opcję Ci chodzi?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 gru 2017, o 12:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 sty 2013
Posty: 435
Lokalizacja: Rybnik
Pomógł: 6

zieleniewiak napisał(a):
W opcji w zapisem danych na serwerze zewnętrznych i odpytywaniem o dane przez drugą stronę było to różnie pomiędzy 2 a 5 sekund. Przy odpytywaniu chyba co 2 sekundy. Jeśli odpytywałem częściej to nie bardzo chciało działać :)


Pytałem głównie o tę opcje. 2 sekundy to jest za długo... Gdybyś mógł podesłać kod do tej opcji. Zobaczył bym jak to miałeś zrealizowane.

Aktualnie mam sterowanie po UDP, ale przez zewnętrzne IP to czas jest niemalże natychmiastowy.
Napiszę mejla do tej firmy SUPLA może coś podpowiedzą jak to jest zrealizowane.
Chyba, że wystraszą się, że konkurencja im wzrośnie :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 39 ]  Przejdź na stronę 1, 2  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO