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.
:
Bearbeitet durch User
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 | GET http://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.
:
Bearbeitet durch User
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!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.