Liebe Mikrocontroller-Mitglieder!
Ich weiß nicht, ob ich es hier in diese Rubrik oder in die
"PC-Programmierung"-Rubrik schreiben soll. Falls ich mich gnadenlos für
die Falsche entschieden habe, bitte ich vielmals um Entschuldigung :-)
Meine Freundin hat bald Geburtstag und sie wünscht sich einen
Heimtrainer zum Geburtstag. Es soll einer um 99 Euro von Neckermann
sein. - Heute bestellt und nun beginnt das ewige Warten!
Wie es an einem langweiligen und frustrierten Sonntag üblich ist, kommen
einem die schrägsten Ideen in den Sinn, wie auch diese:
Da wir beide keine eigene Wohnung haben und uns derzeit größtenteils mit
Webcam und Chat in Verbindung halten, sind wir auf die Idee gekommen,
uns gegenseitig mit unserer Sportivität "auszuspionieren".
So kam meine Idee, die Daten ihres Heimtrainers ( z.B. Drehzahl der
Schwungscheibe pro Minute) mit einem Mikrocontroller des Typs Atmega8 /
Atmega16 zu erfassen, diese via RS232 (UART) an den jeweiligen Rechner
zu senden, welche wiederum von einem eigens geschriebenen Programm
empfangen werden UND ...aufgepasst jetzt kommts ... aktuell über das
Internet an meinen PC übertragen wird. Ich dachte dabei an ein
Browser-Interface oder ein kleines Programm, welches die auf meinem
Webserver (Webspace von meinem Provider) gespeicherten Daten
entgegennimmt.
Nun zur Frage: Ist es möglich, Daten periodisch auf dem Webspace
abzuspeichern? Oder gibt es eine andere Möglichkeit, Echtzeitdaten über
das Internet von Rechner-A an Rechner-B zu übertragen?
Ich freue mich auf Antworten, und Nein, es ist kein Aprilscherz, ich
meine es ernst :)
Gruß Ludwig
@ Ludwig Austerer (Gast)
>Nun zur Frage: Ist es möglich, Daten periodisch auf dem Webspace>abzuspeichern? Oder gibt es eine andere Möglichkeit, Echtzeitdaten über>das Internet von Rechner-A an Rechner-B zu übertragen?
Ja, mit einem kleinen Webserver.
Beitrag "Webserver ATmega32/644DIP ENC28J60"
MfgG
Falk
ok Danke erstmal für deine schnelle Antwort!
Würde das nicht softwaremäßig über meinen Webspace auch funktionieren?
Ich dachte da an ein von mir geschriebenes PC-Programm, welches zyklisch
die Daten an den Webspace transferiert?!
Danke
Ludwig Austerer wrote:
> Würde das nicht softwaremäßig über meinen Webspace auch funktionieren?
Nun ja, sicherlich würd das funktionieren... Allerdings musst du dafür
eine PHP seite schreiben und dazu ein kleines C Programm, welches zu
erst die Daten puffert, die vom UART kommen und dann als HTTP_Request
weiterschicken. Am einfachsten wär da wirklich noch der Webserver wie er
in der Codesammlung ist. Mit dem PC ist das ewig viel Coderei.
JÜrgen G. wrote:
> ...> weiterschicken. Am einfachsten wär da wirklich noch der Webserver wie er> in der Codesammlung ist. Mit dem PC ist das ewig viel Coderei.
mit linux (bzw. cygwin) ist es grade mal einzeiler (ein etwas langer
einzeiler)
so in der richtung:
while [ 1 ]; do sleep 60; cat -n 1 /dev/ttyS0 | ncftp -u ftpusername -p
ftppasswort ftp.ftpserver.de results.txt; done
oder mit tools wie socat kann man den rs232 port ins netzt legen
(umleiten)
@Gerard Choinka: Das würde heißen, dass ich einen Linux-Webserver
einrichten müsste, an den das Mikrocontroller-Board via RS232
angeschlossen ist...oder eben die emulation von Linux.
sleep 60, bedeutet das, dass er im Minutentakt die Daten am Server mit
dem Puffer der RS232 synchronisiert?
Ich habe auf meinem Uralt-PC zuhause Ubuntu Linux. Welches Programm
benötige ich für diesen Servereinsatz?
Danke
Oh,...ich hatte ein Verständnisproblem. Es würde also heißen, dass der
Linux-Rechner als "FTP-Programm" funktioniert, welcher permanent die
result.txt auf den Server schickt.
Ich müsste dann also lediglich diese result.txt an einem Client (z.B.
dann meinem Notebook) abrufen, um an die Messdaten meiner Freundin zu
gelangen :)
>Ist es möglich, Daten periodisch auf dem Webspace>abzuspeichern? Oder gibt es eine andere Möglichkeit, Echtzeitdaten über>das Internet von Rechner-A an Rechner-B zu übertragen?
ja, das ist, was das Internet prinzipiell macht. Siehe z.B. auch Chat,
Voice-Chat, Video-Chat usw. ist auch alles Echtzeit ohne, dass man
irgendwas auf einen Webserver hoch lädt.
Also ich würde ja jetzt nicht anfangen und für so eine "Mini-Aufgabe"
einen Webserver zusammen löten. Da ist es sicher schneller, wenn du
einfach eine Client-Server-Anwendung schreibst, welche dann die Daten
vom COM-Port des PCs (UART) entgegen nimmt und dann über das Internet
(TCP/IP) zum Rechner deiner Freundin und andersrum schickt. Damit
würdest du allerdings nicht zu deinem gewünschten Webinterface kommen.
Mit der FTP-Variante kann es ggf. vorkommen, dass dir das dein
Webspace-Provider auf dauer übelnimmt, wenn du ständig verbindest und
ein Dateichen hochlädst. ...besonders wenn es sich um kostenlosen
Webspace handelt.
hmm ok, das heißt aber dann, dass ich "nur" zwischen Mir und meiner
Freundin kommuniziere und theoretisch niemand anders auf die Daten
zugreifen kann.
Mir wäre es lieber, wenn ich es erstmal mit meinem Heimtrainer zuhause
versuche, denn da habe ich dann auch mehr zeit zu probieren. Ich würde
es jetzt so machen, dass ich den Linux-Rechner an den AtMega anschließe,
der dann die Daten erstmal in die text-Datei schreibt. Anschließend
schickt er sie über die Codezeile von Gerard Choinka an meinen Webspace.
- Welches FTP-Programm benötige ich in Linux für diese Codezeile? -ist
das das NCFTP?
- Gäbe es eine Möglichkeit, dass der Linux-Rechner gleichzeitig mein
Webserver ist, auf den ich dann diese Text-Datei mit einem FTP-Programm
welches auch unter Linux läuft hochlade? Dann hätte ich das Problem mit
dem free-Webspace nicht.
Danke
- Gäbe es eine Möglichkeit, dass der Linux-Rechner gleichzeitig mein
Webserver ist, auf den ich dann diese Text-Datei mit einem FTP-Programm
welches auch unter Linux läuft hochlade? Dann hätte ich das Problem mit
dem free-Webspace nicht.
Hi,
Das geht, einfach eine Webserversoftware installieren. Und das Programm,
dass die per RS232 empfangenen Meßdaten in eine Datei umwandelt, gleich
noch HTML drumherumbauen lassen, z.B.
<HTML><HEAD>Hildegards Leistungsabgabe</HEAD><BODY>Der Heimtrainer
verlangt mir gerade plöpp Watt ab!</BODY></HTML>
und die Datendatei in das Verzeichnis schreiben, das im Webserver
freigegeben ist.
Mit dyndns.org oder ähnlichen Diensten deinem hiermit entstandenen
heimischen Webserver einen festen Domainnamen zuweisen, z.B.
schatzisheimtrainer.dyndns.org und ggf. noch den Router korrekt
einstellen, Stichwort NAT.
Dann kanns abgehen, und du kannst mit dem Refresh-Knopf deines Browsers
zugucken. Und sie entsprechend später bei Dir !
Gruß,
Hendi
@Hendi:
Das Problem bei deinem Vorschlag ist aber nur, dass ich eben ständig die
HTML-Seite mit den Messwerten manuell hochladen muss.
Drum würde ich auf den Codeschnipsel von Gerard zurückgreifen, um das
Hochladen der Datei zu Automatisieren.
Ich muss also folgende Sachen programmieren:
- Mikrocontroller
- RS232 Empfang für "Heimtrainer-PC"
- Routine, um die Daten zyklisch an den Server zu schicken
Welches Programm nehme ich für den Empfang der Daten der Seriellen
Schnittstelle unter Linux (xubuntu)?
Welches FTP-Programm eignet sich am besten?
Hat der Codeschnipsel von Gerard etwas mit dem FTP-Programm selbst
zutun, oder kann man da auch ein anderes nehmen, damit es funktioniert,
unabhängig von dem NCFTP?
Danke
Gruß
Falk Brunner wrote:
> @ Ludwig Austerer (Gast)>>>Nun zur Frage: Ist es möglich, Daten periodisch auf dem Webspace>>abzuspeichern? Oder gibt es eine andere Möglichkeit, Echtzeitdaten über>>das Internet von Rechner-A an Rechner-B zu übertragen?>> Ja, mit einem kleinen Webserver.>> Beitrag "Webserver ATmega32/644DIP ENC28J60">> MfgG> Falkkleiner Webserver wäre auch das hier:
Beitrag "ENC28J60 (Mikro-)Web-Server die Nächste"
ok also schritt-für-schritt.....
...ich installiere gerade mal Xubuntu auf einem "Spiel-Rechner", der
andere ist mir jetzt zu "sauber" um auf ihm diverse Sachen
auszuprobieren.
Nun brauche ich also als Erstes Apache bzw ein FTP-client-Programm.
Wenn das mal läuft bin ich schonmal froh ;)
Wisst ihr ob xubuntu diese Serverprogramme mitliefert?
Danke!