Hallo!
Ich möchte einen Wert über ein GSM Modul (Adafruit FONA) auf einer
Webseite ausgeben. Vom Sensor zum AVR und weiter zum FONA sollte ich
schaffen. Alles dannach sind für mich "Böhmische Dörfer".
Wie kommt etwas ins Internet? Wie kommt es von da auf die Webseite? Ist
das so ähnlich wie UART?
GPRS, TCP/IP, UDP, HTTP, APN,IP, DNS.......ich blicke grade garnichts!
Was muss ich lesen und in welcher Reihenfolge?
Vielen Dank für Tipps!
Dein Sensor und das GSM-Modul laufen wohl kaum alleine, also ist da ein
Rechner, der das ganze steuert, z.B. ein Arduino oder Raspi.
Eine der Möglichkeiten, Daten auf den Webserver zu bekommen, ist die,
dass auf deinem Webserver ein PHP-Skript darauf "lauert", vom eben
erwähnten Rechner (per TCP über GSM) aufgerufen zu werden. Bei diesem
Aufruf werden die Sensordaten per GET- oder POST-Statement (eine
Funktion im HTTP) quasi Huckepack mitgesendet. Das Skript speichert
diese Sensordaten in einer Datei oder einer Datenbank (meist MySQL).
Wenn dann jemand die Webseite abruft, sorgt ein anderes PHP-Skript
dafür, dass die Sensorwerte aus eben dieser Datenbank wieder abgerufen
und z.B. in einer Tabelle oder als Grafik erscheinen ...
Das GSM-Modul ist nur eine der Möglichkeiten, "von Unterwegs" ins
Internet zu kommen, das ändert an den Technologien zur Erfassung und
Darstellung von Sensorwerten erstmal garnix. Bei Verwendung eines
gewöhnlichen PC mit DLS-Anschluss würden genau die geleichen Methoden
verwendet.
Um mit dem GSM-Modul eine Internetverbindung herzustellen, muss dieses
in einen speziellen Modus geschaltet werden - da musst du aber alleine
durch, vor Allem die Anleitung lesen. Wahrscheinlich bekommst du (bzw.
das GSM-Modul) alle notwendigen IP-Einstellungen (z.B. DNS, vor denen du
dich fürchtest) automatisch zugewiesen.
Vielen Dank! Leider hat mir deine Antwort nicht weitergeholfen. Es soll
ein Atmega 8 werden, kein Arduino oder so.
Mir ist klar dass ich vor allem diese application Note vollständig
verstehen muss:
https://www.adafruit.com/datasheets/sim800_series_ip_application_note_v1.00.pdf
Mir fehlen allerdings die Grundlagen. Darauf bezog sich meine Frage. Was
muss ich lesen und in welcher Reihenfolge um diese application Note zu
verstehen?
Hallo,
ich bin mir nicht sicher, ob ich dich richtig verstanden hab. Ich hab
herausgelesen, das du folgende Kette umsetzen möchtest:
Sensor -> Controller (ATMega8) -> GSM Modul (beim Sensor) -> GSM Modul
(zu Hause) -> PC -> Webserver
Attila C. schrieb:> Wie kommt etwas ins Internet?
Dafür gibt es mehrere Möglichkeiten. Zum einen kann es auf einem Server
im Internet liegen (der dann in irgend einem Rechenzentrum steht) oder
du kannst es lokal bei dir zu Hause auf einem Server mit Internetzugang
liegen haben. Wenn es bei dir lokal liegt benötigst du dann noch einen
DynDNS Dienst, um deine täglich wechselnde IP Adresse verfolgen zu
können.
Deine Messwerte müssen dann auf den Server hochgeladen werden (egal ob
der bei dir zu Hause, oder im Rechenzentrum steht). Dort werden die
Daten dann gespeichert, entweder in einer Datei oder in einer Datenbank,
wobei die Datenbank die bessere Option ist (und auch quasi Standard).
Dann musst du eine Website erstellen, die bei Aufruf die Messdaten aus
der Datenbank abruft und in der gewünschten Weise darstellt.
Zum Hoch- und Runterladen der Daten vom Server (Website ist auch nur
Runterladen) bietet sich ein PHP Skript an, das als Schnittstelle
zwischen Datenbank und Website fungiert. Die Website selbst ist eine
HTML Seite, die mit dem PHP Skript dynamisch erstellt wird.
Hier ist z.B. ein PHP und Datenbank Tutorial:
http://php-einfach.de/
SQL ist die Datenbanksprache und MySQL ist hierbei das
Datenbankprogramm.
Gruß Kai
PS: Dein GSM Modul ist einfach ein "altes Handy". Damit kannst du nicht
einfach "das Internet" anrufen und die Daten durchgeben. Bedeutet, du
musst die Daten selbst im Internet zur Verfügung stellen.
Vom Atmega8 zum GSM-Modul macht hier wenig Sinn.
Nimm ein ESP8266-Modul , sende die Daten vom Atmega8 an das
ESP8266-Modul per Tx und laß das ESP8266-Modul entweder als Server
laufen mit Webanzeige oder als Client Broadcast(en) auf eine
Serverseite.
Für das ESP8266 Modul gibts einige alternative Firmware um sich nicht
mit AT-Befehlen "quälen" zu müssen :-)
Die Kette soll z.B. so sein:
Temperatur Sensor --> Atmega8 --> FONA -->internet--> Webseite mit
Ausgabe der Temperatur
Alles bis zum FONA sollte ich hinbekommen. Wäre die Aufgabe eine SMS zu
verschicken wäre es wahrscheinlich kein Problem.
Laut datasheet kann das FONA: TCP oder UDP oder HTTP oder FTP
Hier weiß ich z.B. gar nicht was die 4 verschiedenen Möglichkeiten genau
sind und welche die Richtige für mich ist.
Wenn ich mir die Wikipedia Artikel zu den 4 Abkürzungen durchlese
erkenne ich dass mir Grundkenntnisse fehlen.
Was muss ich lesen um den Weg einer Information von A nach B im
Internet zu vesrtehen?
Attila C. schrieb:> Wenn ich mir die Wikipedia Artikel zu den 4 Abkürzungen durchlese> erkenne ich dass mir Grundkenntnisse fehlen.
TCP bzw. UDP sind die unten liegenden Schichten. Die kümmern sich um den
Transport. Vergleichbar etwa der Schicht Kabel+Wählamt bei einem
herkömmlichen Telefon.
HTTP und FTP sind Dienste, die darauf aufsetzen. Sie benutzen also die
erstgenannten, damit sie den Transport für sie abwickeln. Vergleichbar
etwa dem Fax-Gerät, welches die Telefon-Infrastruktur benutzt, um damit
eine Grafik von A nach B zu bringen.
Netzwerkverkehr ist in Schichten aufgeteilt. Jede Schicht hat ihre
eigene Aufgabe und benutzt darunterliegende Schichten, um den
'Kleinkram' für sie zu erledigen.
> Was muss ich lesen um den Weg einer Information von A nach B im> Internet zu vesrtehen?
Kommt drauf an, wie genau du es wissen willst. Bei deinem FONA Shield
willst/brauchst du es nicht so genau wissen. Du gibst dem Teil die
Telefonnummer deines Providers, so dass es eine Telefonverbindung zu ihm
aufbauen kann. Dann teilst du ihm mit, dass du jetzt gerne ins Internet
möchtest und sagst ihm zb mittels
1
GEThttp://www.google.com
dass es die Google-Webseite aufrufen soll. Ich kenn die mitgelieferte
Software nicht, aber es kann durchaus sein, dass da auch gleich eine
fertige Funktion dabei ist, der du nur noch den Namen des Servers
übergibt und die Funktion kümmert sich um den ganzen Rest.
Ergo: Doku von dem FONA Teil studieren. Mitgelieferte Beispiele
studieren.
Eine ganz andere Frage ist, wo denn eigentlich dein Web-Server steht.
Denn bis jetzt reden wir ja nur davon, dass du deine Daten auf
irgendeinem Server ablegst.
Hallo Karl Heinz!
Ich studiere grade HTTP da ich vermute dass ich damit weiter komme.
Die FONA Doku wie auch die Beispiele verstehe ich nicht da mir die
Grundlagen fehlen. Daher ja auch meine Anfrage hier.
Ich habe eine seit Jahren brachliegende Webseite die sich, so wie ich
das verstehe, auf einem Server des Anbieters befindet. Dort drauf würde
ich gerne die Werte meines Sensors schreiben und meine Webseite so
ummodeln das sie diesen Wert zeigt.
Reichlich naiv? Kann sein aber es hilft vielleicht mir dabei zu helfen
die richtige Lektüre auszuwählen!
Attila C. schrieb:> Ich studiere grade HTTP da ich vermute dass ich damit weiter komme.
HTTP Hypertext Transfer Protokoll
FTP File Transfer Protokoll
FTP ist älter und wird benutzt um ganz einfach Dateien von einem Rechner
zu einem anderen Rechner zu schieben. (WObei man das mit den Dateien
nicht unbedingt wörtlich nehmen muss. Der eine Rechner schickt Daten und
teilt dem anderen Rechner mit, in welcher 'Datei' er die ablegen soll.
Ob der andere Rechner das auch wirklich tut, weiss der sendende Rechner
nicht. Genauso umgekehrt. Der empfangende Rechner kann nicht wissen, ob
sich die Daten wirklich in einer Datei befinden, oder ob der sendende
Rechner das einfach nur behauptet.
HTTP ist neuer und geht einen Schritt weiter. Der Client (der Browser)
fordert beim Server eine Datei an. In dieser Datei ist ein Text, in dem
beschrieben ist, was der Client eigentlich anzeigen soll. In diesen
Beschreiobungstext eingebettet ist auch die Möglichkeit, dass der
Browser an dieser Stelle im Text einen sog. Link einbaut. In diesem Link
ist beschrieben, welche andere Datei der Browser von welchem Rechner
anfordern und anzeigen soll, wenn der Benutzer da drauf klickt. Das ist
die Grundidee von HTTP/HTML und damit vom Web. Aber im Prinzip ist es
auch nichts anderes als "Der Browser fordert vom Server Dateien an,
interpretiert den Inhalt dieser Datei und zeigt das vorgefundene an".
Damit kommen wir zur Frage: Wenn der Browser irgendeine Datei anfordert,
woher kommt die denn?
Und an dieser Stelle kommst du ins Spiel. Der Server kann natürlich
nicht einfach irgendeine Datei ausliefern, sondern er muss schon die mit
dem richtigen (und auch angefordertem) Namen liefern. Die muss aber
irgendwer einmal geschrieben haben. Nämlich du. Oder zb irgendein
anderer Rechner, der diese Datei zu deinem Server dann hochgeladen hat.
Datei hochladen, das klingt erst mal wie ein Dateitransfer. Und dazu
gibt es ja FTP (obwohl das mitlerweile mit HTTP auch geht). Denn FTP ist
ja das File Transfer Protokoll.
> Ich habe eine seit Jahren brachliegende Webseite die sich, so wie ich> das verstehe, auf einem Server des Anbieters befindet. Dort drauf würde> ich gerne die Werte meines Sensors schreiben und meine Webseite so> ummodeln das sie diesen Wert zeigt.
Gut. Dann versuch mal, ob du per FTP an den Speicherplatz deines
Provirders herankommst. Dazu brauchst du deine Benutzerkennung und dein
Passwort. Du kannst das zb mit den meisten Browsern machen. Die können
auch alle FTP. Als Adresse gibst du an
1
ftp://www.meineSeite.de
Dann wird dich der Browser nach Benutzername und Passwort fragen. Ist
das in Ordnung, dann zeigt dir der Browser ein Inhaltsverzeichnis deines
SPeicherplatzes bei ihm an. Dort liegen alle Dateien, die du zu ihm
übertragen hast.
Und genau das gleiche kannst du auch mit dem FONA Modul machen. Du
kannst deinem FONA Modul den Auftrag geben, per FTP deinen Provider
anzurufen und dann Inhaltsverzeichnis abrufen, Dateien runter und wieder
hochladen, etc. Es spricht also nichts dagegen, dass du per FTP eine
neue 'Datei' auf deinen Webspace hochladest, in der eine Webseite ist,
in der du deinen Sensorwert eingebaut hast. Das die bei dir nicht als
Datei vorliegt interessiert keinen, denn das kann der Server sowieso
nicht feststellen.
Das ist jetzt natürlich mühsam und vor allen Dingen unflexibel. Denn man
möchte ja eigentlich Werte von Anzege trennen. Wenn sich das Design
ändert (das in den Dateien per HTML ja festgelegt ist), dann soll das ja
nicht bedeuten, dass dein Arduino umprogtrammiert werden muss. Denn dann
müsste ja ein anderer Inhalt in die 'Datei' rein, die der Arduino per
FTP zum Server hochädt. Daher macht man das oft ein bischen anders. Man
legt die eigentlichen Daten (die Werte) zb in eine Datenbank. Die auf
dem Server vorliegende WEb_Seite holt sich den gerade aktuellen Wert aus
dieser Datenbank, ehe dann der Server die Seite zum Anfrager (Browser)
ausliefert.
D.h. man muss sich fragen: wie kommt denn jetzt der WErt in diese
Datenbank?
Man kann dazu einen Trick benutzen. Denn wenn der Browser eine Datei
anfordert, dann kann der nicht nur den Namen der gesuchten Datei
angeben, sondern auch noch weitere Werte. Normalerweise steuern die zb.
welche Daten der Server in die Web Seite einbauen soll. Das muss aber
nicht so sein. Win PHP Programm kann an diese zusätzlichen Werte in der
Anfrage herankommen und die zb in die Datenbank speichern. Eine
eingehende Verbindung beim Server könnte also zb lauten
1
GET http://www.meineDaten.de/store.php?25
(das nach dem ? ist das zurätzliche Argument)
Das bedeutet: lieber Web-Server. Gib mir bitte den Inhalt der Datei
"www.meineDaten.de/store.php"
und als zusätzliches Argument gebe ich dir noch die 25 mit.
Hinter www.meineDaten.de/store.php steht ein PHP Skript (das du
geschrieben hast), welches nichts anderes macht, als diese 25 in eine
Datenbank einzutragen. Die Datei store.php existiert nach wie vor, ist
aber eine Skript-Datei und wird als solche ausgeführt, ehe dann der sich
daraus ergebende Text zum Browser ausgeliefert wird.
> Reichlich naiv? Kann sein aber es hilft vielleicht mir dabei zu helfen> die richtige Lektüre auszuwählen!
Ich hätte erst mal gesagt:
Vergiss den Ardunio, vergiss das FONA Modul, schnapp dir ein HTML
Tutorial und arbeite das durch, wobei du die Übungen mit dem dir zur
Verfügung stehenden Webspace machst! Schnapp dir Tutorien, die sich mit
PHP beschäftigen, genauso wie Tutorien die sich mit MySQL beschäftigen.
Und dann natürlich das Zusammenspiel der beiden. Wenn du das alles drauf
hast und von deinem PC aus ins laufen kriegst, dann bist du auch
gerüstet eine Stufe tiefer zu gehen und das ganze dann mit direkter
Ansteuerung deines FONA Moduls zu machen, welches den Browser Teil
übernimmt und auf die von dir schon zum Provider hochgeladenen
HTML-Seiten und PHP Skripte zugreift. Denn den wesentlichen Teil der
Magie macht nicht dein Ardunio oder das FONA-Modul, sondern die Skripte,
die beim Provider auf dessen Computern laufen. Denen wiederrum ist es
egal, ob die "Abfrage" von deinem PC aus kommt, oder ob das ein µC ist.
Abfrage ist Abfrage und daraus resultiert dann eine Verarbeitungskette,
die in beiden Fällen identisch ist.
Karl Heinz!
Erstmal nur der Ordnung halber: Atmega8, kein Arduino oder so.
HTML Tutorial, PHP Tutorial, MySQL Tutorial: Wird gemacht!
Und Final: Vielen Dank! Ziemlich genau das wollte ich wissen!
Karl Heinz!
Das war hart!!! (Immerhin hatte ich vor 3 Wochen nicht den blassesten
Schimmer!) Aber ich habe jetzt tatsächlich eine Zahl über das GSM Modul
auf meine Webseite schreiben können.
Es gilt natürlich jetzt den Code aufzuräumen, zu kommentieren und die
Ausgabe halbwegs "hübsch" zu machen usw.
Dazu habe ich Fragen die ich hier die Tage mal stellen möchte.
Unterm Strich erst mal: Vielen Dank für deinen Input!!! Ich habe was Du
geschrieben hast wieder und wieder und wieder gelesen!