Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Komunikacja pomiędzy serwerem www a urządzeniem używając GPRS

montepl 15 Cze 2015 21:48 639 10
  • #1 15 Cze 2015 21:48
    montepl
    Poziom 8  

    Witam,
    Sytuacja wygląda tak:
    Mam urządzenie wysyłające dane za pomocą gprs (tracker gps). Wysłane dane chcę jakoś odbierać na serwerze www i w jakiś tam sposób wyświetlać.

    Moje główne pytanie brzmi, jak je odebrać? Czy da się to zrobić za pomocą samego php czy trzeba kombinować z czymś innym?

    Pytanie numer dwa. Czy jest możliwa komunikacja w drugą stronę, czyli serwer wysyła dane a urządzenie je odbiera. Jeśli jest to możliwe to jak mniej więcej ma to wyglądać? Zakładam, że nie można tego zrobić za pomocą samego numeru karty sim tylko potrzebny będzie jakiś adres ip, który zapewne przydziela operator.

    I tu pojawia się trzecie pytanie.Czy numer ip zmienia się przy każdym zapytaniu czy też jest on utrzymywany przez jakiś czas (zakładam, że na statyczne ip nie ma co liczyć lub będzie się to wiązało z większymi kosztami)?

    Mój poroblem może wydawać się błahy ale dopiero zaczynam zabawę z gprs-em i nie mam za bardzo pojęcia jak się za to zabrać, dlatego też proszę o wyrozumiałość.

  • #2 15 Cze 2015 22:19
    TvWidget
    Poziom 30  

    W tym wypadku najważniejszy jest protokół jakim są przesyłane dane. To czy jest to robione przez GPRS czy np. przez ADSL ma drugorzędne znaczenie.

  • #3 15 Cze 2015 22:19
    Dżyszla
    Poziom 42  

    Poczytaj na wikipedii o GRPS, to dowiesz się, jak wygląda sprawa IP ;)

    Natomiast do nawiązania (zainicjowania) komunikacji w drugą stronę konieczne byłoby wdzwonienie się na urządzenie, a więc bez modemu GSM się nie obędzie.

    Zakres możliwości, przesyłane dane, ich format i cel będą zależeć od urządzenia.

  • #4 16 Cze 2015 09:15
    montepl
    Poziom 8  

    Bardzo dziękuję za tak szybkie odpowiedzi :)

    Jakie protokoły są najczęściej spotykane w takich urządzeniach (tcp, udp, czy jeszcze jakieś inne)? Albo inaczej, jeżeli ustawię już w urządzeniu parametry łącza (APN, numer IP serwera oraz port) i włączę wysyłanie danych to czy mogę jakoś na serwerze sprawdzić jakiego protokołu używa to urządzenie?

    Poczytałem o tym GPRS-ie i wychodzi na to, że ip jest udostępniane na czas trwania sesji. Tylko teraz nie bardzo wiem ile taka sesja trwa. Czy utrzymywana jest tak długo jak urządzenie podłączone do sieci czy po np. 10 minutach następuje zakończenie sesji i jest automatycznie rozpoczynana nowa?

  • #5 16 Cze 2015 11:18
    TvWidget
    Poziom 30  

    W urządzeniach przeznaczonych dla firm (pewnie 99% rynku) stosuje się protokół UDP a dla użytkowników indywidualnych HTTP (wyższa warstwa TCP).
    W przypadku HTTP dane można odebrać przy pomocy PHP na serwerze wirtualnym. Dla UDP wymagany jest serwer dedykowany lub tzw. prywatny z uruchomioną odpowiednią aplikacją. W przypadku UDP komunikacja w drugą stronę dla standardowych kart SIM w zasadzie nie jest możliwa.
    Rodzaj stosowanego protokołu można rozpoznać po ustawieniach. HTTP wymaga podania adresu URL skryptu PHP. Dla UDP zwykle w ustawieniach jest adres IP serwera i port.
    To czy sesja jest stale utrzymywana czy nawiązywana przy każdej wysyłce danych zależy wyłączenie od firmware urządzenia.

  • #6 16 Cze 2015 13:28
    montepl
    Poziom 8  

    To teraz już przynajmniej, mniej więcej wiem na czym stoję.

    Tak jeszcze dla pewności czy dobrze wszystko zrozumiałem :)
    - Do odbioru danych po UDP muszę mieć odpowiednią aplikację na serwerze (czyli poprzez samo php nie da rady)?
    - Zwykła karta sim nadaje się tylko i wyłącznie do wysyłania danych? Czy karty oferowane do zastosowań telemetrycznych różnią się czymś w tej kwestii czy też są to zwykłe karty?

  • #7 16 Cze 2015 14:26
    kornik280
    Poziom 17  

    To są normalne karty z wykupioną usługą.
    Często bywa, że do komunikacji dwukierunkowej GPRS jest używany serwer OPC (np.Siemens tak ma)
    Do podglądu transmisji możesz użyć np. Wireshark

  • #8 16 Cze 2015 15:10
    mpier
    Poziom 15  

    Hej,
    na wszystkie twoje pytania można odpowiedzieć "tak", "nie", "da się" i "nie da się" w dowolnej kolejności. Da się to zrobić w php, jeśli masz na czym je uruchomić. Co to jest "samo php"? Wysłać dane do urządzenia możesz jakie chcesz, tu jest dowolność, choć operatorzy gsm nie wszystko przepuszczają, ale urządzenie pewnie nic z nimi nie zrobi.

    Zacznij od dokumentacji i instrukcji, tam pewnie będą odpowiedzi.

  • #9 16 Cze 2015 15:39
    montepl
    Poziom 8  

    Już myślałem, że wszystko jest z grubsza wyjaśnione a tu proszę, znowu jakieś nowe opcje :)

    To w końcu co się da a czego nie bo widzę tu sprzeczne (chyba :P) informacje?

    Sugerując się wypowiedzią TvWidget sądziłem, że aby odbierać dane na serwerze będę musiał sobie jakiś program napisać specjalnie do obsługi UDP. Z komunikacją w drugą stronę (z serwera do urządzenia) wydawało mi się, że jest podobnie - poprostu nie da się.

    Jeśli jednak da się zrobić komunikację dwustronną i to przy użyciu php to chętnie dowiem się jak :)

    Dokumentację i instrukcję przeczytałem ale jak to czasami bywa nie zawsze jest w niej wszystko wyjaśnione. Chociaż same opisy ramek/pakietów są całkiem fajnie zrobione.

  • Pomocny post
    #10 16 Cze 2015 19:15
    TvWidget
    Poziom 30  

    W przypadku odbierania danych przesyłanych protokołem UDP program/skrypt musi być uruchomiony jako daemon. Jeżyk w jakim się go napisze nie jest istotny.
    Podobnie jest z wysyłaniem danych "w drugą stronę". Język nie ma żadnego znaczenia. Z tego powodu pytania typu "czy da się to zrobić w PHP nie mają sensu".

  • #11 16 Cze 2015 20:25
    montepl
    Poziom 8  

    Ok, to teraz już wszystko rozumiem.
    Dzięki wszystkim za wyjaśnienia :)

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME