Seit einiger Zeit überlege ich, mich mal mit dem Thema Arduino + GSM zu
beschäftigen. Dabei interessiert mich besonders das GSM-Modul als
Internet-Zugang. Mit dem Ethernet-Shield habe ich schon einige
Erfahrungen in dieser Hinsicht.
Was mir bei der GSM-Geschichte unklar ist, und was so auch in den
Beschreibungen zu den Modulen nicht recht deutlich zu lesen ist: Wie
realisiere ich ein Netzwerk-Interface a la Ethernetshield? So mit
adequaten Kommandos wie "server.available", "ethernet.address" usw.? Ich
lese immer nur was von UART und AT-Kommandos.
So gesehen ist der Ethernetshield samt Lib eine
Ethernet-zu-Serial-Bridge. Bekomme ich das mit einem GSM-Modul auch
genau so hin?
Ist das jetzt auch von der GSM-Hardware (interner IP-Stack?) abhängig?
Ist das Standard oder können das nur spezielle Module?
>So gesehen ist der Ethernetshield samt Lib eine>Ethernet-zu-Serial-Bridge. Bekomme ich das mit einem GSM-Modul auch>genau so hin?
Nein, das mit den AT Kommandos solltest du dir anschauen. Es könnte aber
ein wenig zu kompliziert werden für dich, wenn es noch keine arduino lib
dafür gibt (aus dem Gefühl heraus, wie du es hier beschreibst)
Aber versuch macht klug...
Einfach anstecken und 3 Zeilen Code, dass funktioniert (mehr oder
weniger) nur in der Adruino-Welt
>Ist das jetzt auch von der GSM-Hardware (interner IP-Stack?) abhängig?>Ist das Standard oder können das nur spezielle Module?
Nein, kein Stack im üblichen Sinne nötig
GPRS können sie fast alle... UMTS und co. -> Einfach in die Beschreibung
des Moduls schauen...
Grüße
Basti
Es gibt zumindest Module wo man direkt ohne viel aufwand direkt FTP
verbindungen aufbauen und emails verschicken kann.
Aber sone Kleinkind Library wie beim Failduino musste da nicht erwarten.
"AT-Kommandos"
Dann ist die Sache doch klar - das GSM-Modul emuliert ein Modem. Und
darüber musst du dann eine PPP, SLIP... oder vergleichbare Verbindung
fahren.
Warum müssen Arduino-Nutzer immer Projekte fahren welche eindeutig
außerhalb ihres Horizonts liegen? Liegt es daran dass mit Arduino jeder
nach 2 Minuten denkt er könne nun alles entwickeln? Man nutzt fertige
Shields mit einer fertigen lib und danach meint man tatsächlich man
hätte was geleistet und möchte sich anspruchsvollen Projekten zuwenden?
Wie realitätsfern kann man sein?
gruß cyblord
cyblord ---- schrieb:> Wie realitätsfern kann man sein?
Aha. Es ist also "realitätsnah" jedesmal das Fahhrad neu zu erfinden?
Warum sollte das so, wie es mit dem Ethernetshield geht, mit einem
GSM-Modul nicht grundsätzlich auch funktionieren?
Eine einfache sachliche Antwort, wie "Nein, ganz so einfach ist es mit
GSM-Modulen nicht, mir ist derzeit keine pasende Arduino-Lib bekannt."
hätte ja wohl auch genügt.
Oder Garnichts schreiben, wenn man keinen konstruktiven Beitrag liefern
kann. Aber Hauptsache rumpapmen ... gehts dir jetzt besser?
Natürlich hat man dann etwas geleistet - es ist eben auf einer anderen
Ebene des vielschichtigen "Stacks" der Technik. Der eine hat Spass daran
seinen TCP/IP bzw PPP Stack dann selbst zu schreiben , wieder ein
anderer daran das Rechnerboard selbst zu entwerfen und zu bauen, wieder
ein anderer will beides möglichst einfach haben weil es nur ein Teil
eines grösseren Projektes ist um das es eigentlich geht... Ein Arduino
ist für die dritten gedacht und wurde sicherlich von Leuten der ersten
und zweiten Kategorie entworfen - da ist ja nichts schlimmes dran.
Ich bin eher ein Kat. 2 Typ aber kriege trotzdem nen Rappel wenn ich
sowas wie von cyblord und fritzler lese (nichts persönliches!).
Ok ... ich lass mich nun dafür kritisieren, dass ich wohl nicht
gründlich genug gesucht habe. Es gibt wohl doch Alles das, was ich
wollte bereits hier:
http://labs.arduino.cc/GPRS/Library
Aszug:
- connectTCP(const char* server, int port) This function makes the
connection of a TCP client to a DNS server “server” to a port “port”.
- disconnectTCP() This function cuts the connection of a TCP client.
- connectTCPServer(int port) This function connects the modem as a
server in the port “port”.
- connectedClient() This function informs when the modem as a server,
accepts a client.
- write(const uint8_t* buffer, size_t sz) This function is used to send
data directly to the modem in data mode. Must be used after a connection
is created (either as client or server)
- read(char* result, int resultlength) This function is used to read
data from the modem in data mode. Must be used after a connection is
created (either as client or server)
usw. ...
Frank schrieb:> cyblord ---- schrieb:>> Wie realitätsfern kann man sein?>> Aha. Es ist also "realitätsnah" jedesmal das Fahhrad neu zu erfinden?> Warum sollte das so, wie es mit dem Ethernetshield geht, mit einem> GSM-Modul nicht grundsätzlich auch funktionieren?>
Interessant dass du denkst, alles ohne Arduino wäre das Fahrrad neu zu
erfinden. Aber wenn man ohne Arduino nichtmal eine LED blinken lassen
kann, dann sollte man eben Abstand davon nehmen irgendwas
anspruchsvolleres selber entwickeln zu wollen. Aber es gibt ja
anscheinend eine Arduino-lib für dein Problem, dann ist doch alles ok.
Nur die Idee da selber was entwickeln zu wollen, jenseits einer fertigen
lib, ist halt für dich Utopisch. Nur DAS wollte ich eigentlich sagen.
@Andy:
Man kann sich himmelschreiende Inkompetenz auch durch eine wirre Theorie
schönreden. Das ändert aber nichts.
@cyblord Ja, aber was bringt es mir es mir hässlichzureden dass Leute
mit solchen Ansätzen an die Sache rangehen? Da red ichs mir lieber
schön. Zwingt mich ja keiner selbst nen Arduino zu nehmen.