Forum: Mikrocontroller und Digitale Elektronik Heimtrainer-Projekt


von Ludwig Austerer (Gast)


Lesenswert?

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

von Falk B. (falk)


Lesenswert?

@ 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

von Thomas (Gast)


Lesenswert?

nutze die zeit lieber sinnvoll und verbringe eben diese zeit um deine 
freundin zu besuchen

von Ludwig Austerer (Gast)


Lesenswert?

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

von JÜrgen G. (Firma: 4CKnowLedge) (psicom) Benutzerseite


Lesenswert?

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.

von Ludwig Austerer (Gast)


Lesenswert?

ok, das heißt die Daten über den AtMega-Webserver ins Netz stellen.

Danke!

von Gerard C. (gerardchoinka)


Lesenswert?

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)

von Hagen (Gast)


Lesenswert?

Kauf euch ne WebCam, ist billiger schneller und du kannst auch noch 
sehen wie sie schwitzt ;)

Gruß Hagen

von Ludwig Austerer (Gast)


Lesenswert?

@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

von Ludwig Austerer (Gast)


Lesenswert?

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 :)

von sascha (Gast)


Lesenswert?

>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.

von Ludwig Austerer (Gast)


Lesenswert?

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

von STK500-Besitzer (Gast)


Lesenswert?

Und als "Antrieb" für den Linux-Rechner kann man am besten eine Dynamo 
an den Heimtrainer bauen...

von Hendi (dg3hda) (Gast)


Lesenswert?

- 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

von Ludwig Austerer (Gast)


Lesenswert?

@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ß

von Chris (Gast)


Lesenswert?

bei Linux Apache benutzen, ist relativ einfach zu konfigurieren :)

von Ludwig Austerer (Gast)


Lesenswert?

Gibts da ein Tutorial, wie man die config-Datei  konfiguriert?

von Simon K. (simon) Benutzerseite


Lesenswert?

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
> Falk

kleiner Webserver wäre auch das hier:
Beitrag "ENC28J60 (Mikro-)Web-Server die Nächste"

von Ludwig Austerer (Gast)


Lesenswert?

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!

von STK500-Besitzer (Gast)


Lesenswert?


von JÜrgen G. (Firma: 4CKnowLedge) (psicom) Benutzerseite


Lesenswert?

Ludwig Austerer wrote:


> Wisst ihr ob xubuntu diese Serverprogramme mitliefert?

sudo apt -get programmname

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
Noch kein Account? Hier anmelden.