Hallo zusammen,
ich möchte gern ein GPRS-Modem zur Fernwartung einsetzen. Meine Idee
ist, dass eine Mikrocontroller das Gerät überwacht und beim Auftreten
einer Warnmeldung diese speichert. Nach einigen gespeicherten Meldungen,
sollen diese über das GPRS-Modem an ein Laptop gesendet werden.
Tritt eine Alarmmeldung auf, so soll zusätzlich eine Nachricht an ein
Mobilfunktelefon sowie an den Laptop gesendet werden. Zudem soll eine
Online-Überwachung möglich sein, bei der man beliebig lang die Parameter
am Laptop beobachten kann. Des Weiteren möchte ich Parameteränderungen
am Gerät über das drahtlose Versenden von Befehlen vornehmen.
Aufgrund der großen Datenmengen kommt der Einsatz von GSM-Modems nicht
in Frage. Ich hab nicht allzu viel Erfahrung mit GPRS Modems.
Es gibt ja mittlerweile Modems mit integriertem TCP/IP-Stack. Sprich
über ein Internet- Dial-Kommando müsste ich meine Daten einfach übers
Internet an den Laptop verschicken können. Hierzu erhalte ich eine
dynamische IP-Adresse vom Service-Provider, oder? Die IP wird ja
benötigt um die Daten vom Absender zum vorgesehen Empfänger zu
transportieren. Sie gewährleistet also eine eindeutige Identifizierung.
Wenn jetzt die Datenmenge vom Gerät an den Laptop gesendet werden soll,
woher weiß dann meine Anwendung welche IP mein Laptop hat. Umgekehrt
möchte ich ja vom Laptop aus Befehle an das Gerät senden. Wie
identifiziere ich meine beiden GPRS Modems, um eine sichere Verbindung
zu gewährleisten? Bei den GSM Modems gehts ja einfach über die SIM-Karte
bzw. über die Handynummer.
Also irgendwie kapier ich das noch nicht richtig. Wie läuft da die
Kommunikation ab?
Wäre klasse wenn mir jemand weiterhelfen könnte.
Gruß Rolf
Hallo Rolf,
mehreres ist dabei zu beachten. Zum einen lassen die gängigen
Mobilfunkverträge nur ausgehende Verbindungen zu, ankommende Daten
werden abgewiesen. Soll Dein GPRS Modem ankommende Daten empfangen,
musst Du einen dafür geeigneten Vertrag (mit fester IP Nummer) haben.
Man kann das zwar umgehen, indem man vom GPRS Modem aus ein VPN aufbaut,
die Sache wird halt komplizierter.
Dann musst Du wissen, wie Du Daten eigentlich senden willst. Soll da ein
Web-Server laufen? FTP(keine gute Idee)? SSH, SCP? Auf Deinem Laptop
müssen auch entsprechende Dienste laufen.
Die Adresse Deines Laptops muss das Modem natürlich kennen, und diese
muss auch von außen erreichbar sein. Es bietet sich an, sowohl für Modem
und Laptop Dienste wie DynDNS, NO-IP o.ä. zu benutzen.
Eine lästige Besonderheit sind auch die hohen Latenzzeiten im GPRS Netz.
Das erste gesendete Paket hat oft Round-trip-Zeiten im Sekundenbereich,
die nächsten werden dann besser (~0,7 sec).
Vorausgesetzt wird eine gute Funkanbindung. Es empfiehlt sich dringend,
mit dem Befehl AT+CSQ die Feldstärke zu kontrollieren, und ausreichend
leistungsfähige Antennen zu verwenden. Sonst hast Du ständig
Verbindungsabbrüche und langsame Geschwindigkeiten.
Gruß,
Bernhard
Auch bei GPRS-Modems erfolgt die Authentifizierung über SIM-Karte und
Handynummer, zumindest dem Netz gegenüber. Am AP meldet man sich je nach
Netzbetreiber meist mit einem Standardpasswort an. Ab da ist man dann im
Internet. Die Verbindung kommt also nicht direkt mit der Station
zustande wie bei einer Modemverbindung. Ob die Daten wirklich von der
richtigen Station stammen, kann der Wartungslaptop bei dynamischen
IP-Adressen nur durch selbst hinzugefügte Zusatzinformationen erkennen.
Vielleicht kann man ja das Datentelegramm mit einer krpytographischen
Signatur versehen?
Und ja, es gibt sogar Modems mit Python-Interpreter (von Telit). Viele
GPRS-Modems können FTP und e-mail Versand selbsttätig ausführen, mit
internem Protokollhandling.
Die Zuverlässigkeit ist ein kritischer Punkt bei GPRS, mehr noch als bei
GSM. Die Modems bauen eine durch Störung abgerissene Verbindung nicht
selbsttätig wieder auf. Die Steuerung muß den Verbindungsstatus
regelmäßig prüfen, wenn tatsächlich die TCP/IP-Verbindung offengehalten
werden soll - und ggf. neu verbinden.
Zur Problematik eingehender Verbindungen hat ja mein Vorredner
eigentlich schon fast alles gesagt.
Hi zusammen,
vielen Dank für die Antworten!
Hmmmm, hört sich alles ziemlich tricky an, wobei eine reine
Datenübertragung mit GSM, trotzdem nicht in Frage kommt, da es einfach
eine zu große Datenmenge ist . Eine sichere und zuverlässige Verbindung
ist wohl in beiden Fällen- GPRS oder GSM- nie 100%ig gewährleistet.
Allerdings könnte man für eine Online-Überwachung das Gerät an das
Festnetz anschließen. Trotzdem nochmal Danke für Eure schnelle
Antworten.
Viele Grüße,
Rolf
> ich möchte gern ein GPRS-Modem zur Fernwartung einsetzen.
Sofern es eine Fernwartung für die Industrie ist:
Durch die Vernetzung der Steuergeräte mit dem internen LAN
sind in den meisten Betrieben Fernwartungslösungen verboten,
welche einen zweiten (Internet-)Netzzugang haben, egal ob
das nun GPRS, CSD oder ISDN ist.
Alles muss entweder über den einen Firewallperimeter gehen
oder ggf. über Rendezvous Lösungen.
VG,
Hans
Nein, dass ist nur für mein Abschluss-Projekt. Habt ihr vielleicht auch
Erfahrungen mit den sogenannten Data Calls? Man könnte hierbei den
Datentransfer über das GSM-Mobilfunknetz abwickeln. Zudem wäre die
Sicherheit vgl. zum GPRS auch höher. Gruß
>Nein, dass ist nur für mein Abschluss-Projekt. Habt ihr vielleicht auch
Wenn Dein Abschlussprojekt als Schwerpunkt eine "sichere"
Datenübertragung zum Gegenstand hat, wird man etwas Innovatives
erwarten können/wollen.
Ansonsten mach es pragmatisch: ein CSD via atd0xy12345, nach dem
"Connect" sollte ein transparenter Kanal vorhanden sein; die Daten
nicht binär zu übertragen verhindert Ärger mit (undokumentierten)
"Steuerzeichen".
>Erfahrungen mit den sogenannten Data Calls?
Yipp. Bei mir sogar keine Probleme von (D1/D2) SIEMENS MC60 Handy
auf MC60 Handy....
>Man könnte hierbei den Datentransfer über das GSM-Mobilfunknetz>abwickeln.
Zur Info: CSD wird bei allen Providern als Auslaufmodell angesehen. Das
hängt u.a. damit zusammen, dass es eine Kunst ist, noch ein (neues) ISDN
oder Analog-Modem zu bekommen. Aber es geht noch :-)
>Zudem wäre die Sicherheit vgl. zum GPRS auch höher.
... bei einer geeigneten Definition von "Sicherheit" schon. In der
1. Liga ist eine authentisierte verschlüsselte Verbindung (egal
worüber) State-of-the-art.
VG,
Hans
TCP/IP ueber GPRS ist nur noch duemmlich. Ein Mobiltelephon hat eine
Nummer, weshalb sollte es auch noch eine IP haben ?
Sicherheit ? Man kann uebertreiben.. Ein CRC und eine einfache
Verschluesselung sollten genuegen.
Hi,
ich bin´s nochmal...
Um die statische IP für den Client zu umgehen, wäre es doch möglich mit
dem am PC angeschlossenen GPRS Modem eine SMS an meine Applikation zu
senden. Diese verarbeitet den Befehl und baut dann eine Internet
Verbindung zur Online-Überwachung mit meinem Server bzw. PC auf. Will
ich die Verbindung beenden, sende ich wiederum vom PC aus eine SMS an
meinen Client, der verarbeitet den Befehl und beendet die Verbindung.
Oder ich beende sie vom Server aus. Um SMS mit GPRS Modems zu
verschicken sind jedoch spezielle Tarife notwendig, hab ich zumindest
gelesen. Würde das so gehen?
Grüße
Hallo Rolf,
zunächst sind SMS und GPRS zwei Paar Stiefel. Ob das GSM-Modem im GPRS
Modus in der Lage ist, SMS zu empfangen, solltest Du prüfen. Prinzipiell
könnte das gehen.
Ich habe z.B. einen in der Wildnis stehenden Linux Rechner über GPRS
angebunden, ohne feste IP Nummer. Das Modem ist ein Siemens MC35i,
mittels pppd gesteuert. Per crontab wird zu festgelegten Zeiten ein VPN
auf- und abgebaut, so dass die Möglichkeit zum Einloggen über eine ssh
Konsole besteht.
Viele Wege führen nach Rom...
Gruß,
Bernhard
Bernhard D. schrieb:> Per crontab wird zu festgelegten Zeiten ein VPN> auf- und abgebaut, so dass die Möglichkeit zum Einloggen über eine ssh> Konsole besteht.
Zwischen "der Möglichkeit" und flinken Arbeiten auf der Konsole liegen
aber Welten über GPPRS. Ein paar Zeichen eingeben mag ja gehen. Mit der
Maus braucht man da viel Geduld. ping >700ms
> Um die statische IP für den Client zu umgehen, wäre es doch möglich mit> dem am PC angeschlossenen GPRS Modem eine SMS an meine Applikation zu> senden. Diese verarbeitet den Befehl und baut dann eine Internet> Verbindung zur Online-Überwachung mit meinem Server bzw. PC auf
SMS über GPRS lassen sich schneller übertragen...Allerdings musst du
schauen, welche Anbieter diesen Typ der SMS-Übertragung unterstützen.
Oszi 40 hat Recht!
Wobei "schnell" und "sicher" bei der drahtlosen Kommunikation immer so
ne Sache ist und bleibt. Du kannst auf jeden Fall vom PC dein Client via
SMS ansprechen (mit entsprechendem Provider) und könntest somit die
statische IP für den Client umgehen. Client holt sich über APN die
dynamische IP ab und baut eine Kommunikation mit dem Server ab. Durchaus
möglich...Gruß
Das mit der GPRS Anbindung ist, wie oszi40 schrieb, so eine Sache, BTDT.
Es taugt sicher zur automatischen Datenübertragung, wenn man das
Datenaufkommen klein genug hält.
Leider sind auch noch die Übertragungsgeschwindigkeiten unsymmetrisch,
und gerade für abgehende Daten ungünstig.
Interaktives Arbeiten über eine Konsole geht zwar, macht aber wirklich
keinen Spaß. Mehr als das Ausführen einfacher Kommandos und das Ändern
kleiner Konfigurationsdateien ist nicht machbar. Anwendungen, die viel
Handshake erfordern, verbieten sich.
Grafikorientierte Sachen, wie vnc, Remote Desktop, selbst nx, sind
absolut utopisch.
Man hat im günstigsten(!) Falle das Gefühl, eine Erde-Mond-Erde
Verbindung zu haben. Manchmal dauert die Antwort auch eine halbe Minute.
Nur, manchmal hat man keine andere Möglichkeit. UMTS ist leider oft nur
in Ballungsgebieten verfügbar.
Auf den ersten Blick bietet GPRS gegenüber CSD mehr Speed, und eben eine
volumenbasierte Abrechnung. Sonst hat man aber bei CSD einen exklusiven
Kanal, der berechenbarer ist als das GPRS Gewackel.
Gruß,
Bernhard
Auch mal mein Senf dazu, wir machen sowas in der Art, Kommunikation über
SMS, GPRS und Firmwareupgrade per FTP. Also das geht alles aber nicht
immer zuverlässig und manche Dinge sind Providerabhängig und das ist
sehr schwer zu debuggen.
Nur mit GPRS gibt es meist die Möglichkeit einen TCP Socket zu einem
Server zu öffnen, dann hat man mal bidirektionale Kommunikation stehen
-> aber das muss der Client initialisieren. Das öffnen der Verbindung
könnte man mit einer SMS oder einem Anruf triggern. Die Station muss
sich dann natürliche irgendwie gegenüber dem Server authentifizieren.
GPRS und GSM geht meist nicht gleichzeitig, Stichwort GPRS Class und wie
schon oben gesagt SMS über GPRS geht auch nicht überall und wenn man
nicht viele SMS schickt, würde ich das mal außer Acht lassen.
Aber bitte nicht den Aufwand für so ein Projekt unterschätzen.
Hi Thomas,
ich untersuche ja in meiner Applikation die von einem Gerät gesendeten
seriellen Daten (114 Zeichen lang). Wenn ich ein Teilstring erfasse, der
eine Alarmmeldung geringerer Priorität darstellt, speichere ich diesen
ab. Sind ca. 100 abgespeichert, sollen diese versandt werden. Mit GSM
ist das vom Volumen her halt so ne Sache. Allerdings wäre die
bidirektionale Kommunikation einfacher zu handeln. Beim GPRS ist es ja
meistens so, das nur der Client oder der Server die aktive Rolle
einnimmt. Das Zustellen von SMS Nachrichten über GSM ist manchmal aber
auch so ein Fall für sich...Ich denke da schenken sich beide Techniken,
also GPRS oder GSM, nicht allzu viel, oder? Hat ds vielleicht jemand
Erfahrung mit UMTS? Aus einigen Beiträgen höre ich aber raus, dass das
gute alte GSM für solch eine Überwachung etwas geeigneter ist. Was macht
man da nur?
Gruß
> Hat ds vielleicht jemand Erfahrung mit UMTS
Im Fernwartungsbereich die Finger davonlassen!
Max. Sendeleistung GPRS 900MHz: 2W
GPRS 1800MHZ: 1W ... und UMTS 0.25W.
Zusätzlich sind die UMTS Frequenzen höher,
was geringere Reichweiten impliziert.
Durch die schnellere Datenübertragung hat man
quasi "weniger Zeit Energie in ein Bit
zu investieren" (Wikipedia "Eb/N0" suchen).
VG,
Hans
Hi, also ich hab in etwa das gleiche wie Rolf vor...Allerdings will ich
die Daten nicht über GPRS versenden, da diese "Einbahn-Verhalten", also
nur von GPRS in Internet, mir für die bidirektionale Kommunikation nicht
allzu sinnvoll erscheint. Ich würde es gerne über CSD bzw. HCSD
realisieren. Kann mir vielleicht jemand ein Tipp/Infos bezüglich den
sogenannten Data Calls geben? Tarife, Provider, Prepaid-Karten,...?
VG
bei größeren Datenmegen würde ich GPRS verwenden. Ist finden ich
einfacher zu handlen als SMS. SMS automatisiert schicken/empfangen ist
ja auch nicht so einfach, da braucht man Zugang zum SMSC Server oder man
macht das mit einem GSM Modul oder Handy.
Das einzig lästige an GPRS ist, dass es immer vom Mobile Device
initialisiert werden muss, dann ist die Kommunikation bidirektional
möglich. Wenn das also kein großes Problem ist, wie gesagt hier gibt es
die Möglichkeit das zB mit einer SMS oder uU auch mit einem Anruf zu
tirggern, den das Mobile device nicht annimmt und nur die Rufnummer
auswertet -> kostet nichts. Dann baut das device eine GPRS Verbindung
auf.
SMS kommen im Inland (T Mobile in AT) sehr zuverlässig und innerhalb
weniger Minuten an. Im Ausland kann man das leider nie so genau sagen,
aber aus unserer Erfahrung geht das auch meist sehr gut.
Hi Danke für die vielen Tipps und Hinweise,
die haben mir sehr weiter geholfen. Eine Frage noch: Wenn ich Daten
bspw. über das ISDN Festnetz übertragen will, benötige ich nur ein
Modem, oder sind da noch weitere Dinge zu beachten. Ich wähle die
Nummer/Anschluss der mit dem PC verbunden ist und kann dann die Daten an
den PC senden. Zu einfach gedacht? Grüße
>Eine Frage noch: Wenn ich Daten>bspw. über das ISDN Festnetz übertragen will, benötige ich nur ein>Modem, oder sind da noch weitere Dinge zu beachten. Ich wähle die>Nummer/Anschluss der mit dem PC verbunden ist und kann dann die Daten an>den PC senden. Zu einfach gedacht? Grüße
Also: Ich hatte ein ISDN/Analog Zyxel hinter einer Euracom und hatte
Zugriff vom D2-Handy aus via CSD. Das ist >=10 Jahre her, sollte aber
gehen.
Von der Signalisierung her wird ein Daten-Call angezeigt, das Telefon
klingelt also nicht....
Meine Erinnerung sagt: ISDN-Karten waren mit der damals
verfuegbaren Linuxversion leider nur bedingt einsetzbar, den
Supportstatus aktueller Versionen kenne ich nicht,
duerfte IMHO zunehmend schwinden...
ABER: Es wird ein adventure werden, noch ein ISDN Modem zu erjagen,
was auch heisst: keine zukunftstraechtige Loesung fuer das aktuelle
Projektgeschaeft ;-)
Ob das mit einer reinen analogen Leitung geht? Keine Ahnung!
VG,
Hans
Ich nutze bei mir einen UMTS-Stick (Huawei E620) u.a. auch als
Datenmodem.
Der hängt in einer Dockstar (Debian Kernel von Jeff) und nimmt
eingehende Datenanrufe 9k6 mittels mgetty an.
Bzgl. Provider:
Tchibo Prepaid hat aktuell noch ein Angebot bis 06.12. welches
kostenlose netzinterne (Sprach-) Verbindungen von Tchibo zu Tchibo
ermöglicht. Allerdings werden meine Datenverbindungen von Tchibo Sim, zu
Tchibo Sim nicht berechnet, sodass mir das sehr gelegen kommt ;)
Hey,
wollte keinen neuen Thread aufmachen da es sich bei mir in etwa um das
gleiche Problem handelt. Gibts es zur mobilen kabellosen GPRS
Kommunikation irgendwelche gescheite Literatur oder Code-Beispiele? Ich
meine also wie Server und Client miteinander bspw. über TCP/IP
kommunizieren. Die Einbindung des TCP/IP Stacks, etc.. Gibts da was
kompaktes und übersichtliches zum nachschlagen? Danke und Gruß
also bestimmte Literatur für das Thema kann ich mir schwer vorstellen.
Aber zum Thema Socket Programmierung findest du Code und Literatur zur
Genüge. Auf PC Seite muss natürlich mal ein Netzwerk Device vorhanden
sein, worauf du Sockets verwenden kannst.
Ein Gedanke der mir dazu noch so einfallen würde, für quick and dirty
Lösungen, wäre ein J2ME Midlet am Handy, welches serielle Verbindungen
über Bluethooth entgegen nimmt und die dann über GPRS auf einen Server
weiterleitet. Man hat damit zwar etwas weniger Möglichkeiten als mit
einem GSM Modul, aber es wäre sehr universell für viele Handy
einsetzbar.
Ich bin zur Zeit auch mit dem Thema konfrontiert.
Ein Mikroconroller soll über SIM340 SMS/GPRS-Modul Daten an einen
ftp-Server schicken und dort eine Datendatei anlegen.
Momentan arbeiete ich noch an der allgemeinen Kommunikation zwischen MC
und Modul, aber dann wird das Thema konkret.
Bisher habe ich auch noch kaum konkrete Literatur zum Thema gefunden.