Hallo
ich habe folgendes vor:
Mit meiner AVR Net-IO Messergebnisse an eine Datenbank zu senden und
dann diese Daten auf einer Webseite darzustellen.
Was ich habe:
-V-Server mit Apache Webserver und MySQL Datenbankserver
- AVR Net-IO
- C Kenntnisse
- Lernbereitschaft
Was mir fehlt:
- Wissen wie man so was realisiert.
Nun wollte ich Euch fragen ob so was machbar ist?
Welche Entwicklungsumgebungen benötigt werden und wie ich mich eurer
meinung am schnellsten in diese Thematik einarbeite.
Ich hoffe ich habe mein Vorhaben einigermaßen gut beschrieben.
Freue mich schon auf Eure Antworten
Danke
peter
der es noch nicht kann schrieb:> Nun wollte ich Euch fragen ob so was machbar ist?
Ein ganz klares Jein!
Ja -> Wenn die Datenrate nicht zu hoch sind ein paar kB/s sicher machbar
ansonsten -> nein.
STK500-Besitzer hat ja schon auf Ulrich Radigs Software genannt, es gäbe
da noch uIP und Ethersex. Jedenfalls solltest du dich gut in TCP/IP
einarbeiten. Denn den 'Treiber' zur Kommunikation mit der Datenbank
wirst du selbst schreiben dürfen, ich habe zumindest noch keine
Implementierung für einen µC gesehen.
Gegenvorschlag:
Sammle die Daten doch zunächst auf auf einer SD-Karte an deinem AVR und
lasse sie Regelmäßig von deinem V-Server abholen, dieser kümmert sich
dann selbst darum die Messdaten in die Datenbank zu schreiben.
Hab ich auchmal gebaut. Alles in einem AVR. Die Messungen, die
Datenbank, der Webserver, die Webseite. Wenn man den Datenbank Server
abtrennt, wird dieser mit Php abgefragt. Daten auf einer Webseite,
zumindest was ueber eine Zhlentabelle hinausgeht werden mit Ajax &
Javascript dargestellt.
M. K. schrieb:> Gegenvorschlag:> Sammle die Daten doch zunächst auf auf einer SD-Karte an deinem AVR und> lasse sie Regelmäßig von deinem V-Server abholen, dieser kümmert sich> dann selbst darum die Messdaten in die Datenbank zu schreiben.
Was verwendet man auf dem v-Server für Software um die Daten auf der
Sd-Karte abzuholen?
Troll schrieb:> Hab ich auchmal gebaut. Alles in einem AVR. Die Messungen, die> Datenbank, der Webserver, die Webseite. Wenn man den Datenbank Server> abtrennt, wird dieser mit Php abgefragt. Daten auf einer Webseite,> zumindest was ueber eine Zhlentabelle hinausgeht werden mit Ajax &> Javascript dargestellt.
Kannst du mir da noch ein paar mehr Infos geben?
Ich meine keinen Code aber einen Groben Schematischen Aufbau wäre toll!
Danke Gruß
Peter
der es noch nicht kann schrieb:> Was verwendet man auf dem v-Server für Software um die Daten auf der> Sd-Karte abzuholen?
Ich gehe mal von einem Linux-System als V-Server aus, dann ist wget
bestens dafür geeignet. Auf dem AVR benötigst du dann NUR einen
Webserver, der ist bei Ulrich Radigs Software schon dabei, außerdem hast
du da auch schon alles nötige für die SD-Karte dabei.
Dann hast du allerdings erst die Datei übertragen, du musst die Daten
noch in die Datenbank übertragen dazu wirst du dir wahrscheinlich ein
kleines Script auf dem Server schreiben müssen, oder du schreibst dir
sofort eine kleine Software welches die Daten abholt und in die
Datenbank überträgt.
Wenn alles auf einem AVR laeuft spart man sich vieles. Als Datenspeicher
war das interne Ram genuegend. Falls dem nicht so ist, kommt die Frage
nach der Schreibhaeufigkeit. Ich wuerd vielleicht ein Serielles RAM oder
EEProm in Betracht ziehen, in diesm Zusammenhang sollte man sich
ueberlegen, was mit den Daten bei, Poweroff geschehen soll. Die
Seitenfunktionalitaet konnte per http immer neu geladen werden. Das war
der Output, den der anfragende Client erhielt aber noch scriptcode
enthielt. Eine Seitenanfrage spulte also diese Seite aus dem externen
Flash ab, fuellte die benoetigten Daten ein und schob sie ueber die
Kommunikationsschnittstelle raus. Dabei war wichtig, de Berechnung der
anzuzeigenden Daten nicht selbst zu machen, sondern dem Client
anzuhaengen. Es wurden daher die Rohdaten versandt, und die
Rechenvorschrift, dh die Formel war in der Seite als Javascript
versteckt. In der Regel waren das Float Rechnungen, die der PC nun mal
besser kann. Im wesentlichen benoetigt man also zweischwach gekoppelte
Prozesse. Die Acquisition mit iregndwas, und den Webserver. Der
Webserver bekommt die Anfragen, holt sich die Seite aus dem Flash fuellt
die Daten ein und schiebt die Seite zurueck. Irgendwelche Commands
werden als Parameter zur Anfrage empfangen und vor der Seite
ausgefuehrt.
M. K. schrieb:> oder du schreibst dir> sofort eine kleine Software welches die Daten abholt und in die> Datenbank überträgt.
Ja irgendwie kommt mir dein Lösungsansatz "recht einfach vor" Welche
Sprache ist für eine solche Software geeignet ich habe etwas C#
Erfahrung aber nur unter Windows!
Troll schrieb:> Wenn alles auf einem AVR laeuft spart man sich vieles.
Dein Vorschlag klingt auch sehr gut aber kommt mir etwas komplizierter
vor!
Habe noch keinen konkreten Plan!
Vielleicht könnt Ihr mich ja noch von was anderem überzeugen!
Danke für Eure Hilfe
Gruß
Peter
Der AVR NetIO liefert eine per http abfragbare HTML WebSeite mit dem
AKTUELLEN Messwert (das kommt wohl ricght out of the box),
ein Skript auf dem Apache Server fragt die ab und trägt deren Werte in
die Datenbank ein (oder in vielen Fällen viel besser einfach ans Ende
einer Datei schreiben).
Die programmiert man wohl eher nicht in C sondern in PHP.
der es noch nicht kann schrieb:> Habe noch keinen konkreten Plan!
Wie du siehst Möglichkeiten gibt es viele. Grundlegend musst du erst
einmal die beiden folgenden Dinge für dich klären.
1. Was soll mit den Daten passieren?
1a. Müssen die Daten gespeichert werden?
1b. Muss es wirklich eine Datenbank sein, wenn ja warum?
2. Muss es ein externer Server sein, oder reicht es wenn der Server zu
Hause steht (AVR NetIO über das Internet erreichbar)?
der es noch nicht kann schrieb:> Vielleicht könnt Ihr mich ja noch von was anderem überzeugen!
Möglichkeiten gibt es noch genügend, z.B ein Raspberry Pi, ein PC mit
Messkarte, ...
der es noch nicht kann schrieb:> Ja irgendwie kommt mir dein Lösungsansatz "recht einfach vor" Welche> Sprache ist für eine solche Software geeignet ich habe etwas C#> Erfahrung aber nur unter Windows!STK500-Besitzer schrieb:> Wenn dein NetIO die Daten per GET an den Webserver schickt, dann kann> sich dort ein PHP-Skript um das Eintragen in die Datenbank kümmern.
PHP-Scripte müssen nicht zwingend von einem Web-Server aufgerufen
werden, PHP-Scripte laufen auch eigenständig. So könnte man ein
PHP-Script auch einfach per Cron-Job starten.
Ansonsten ist jede Programmiersprache erlaubt die es dir irgendwie
ermöglicht TCP/IP zu sprechen und für dein Ziel-System verfügbar ist
Hab ich erst vor kurzem mit einem Raspberry PI gebaut.
Ein Python Script holt von einem kleinen Webserver, der auf einem PIC
Controller läuft, Daten periodisch alle Minute per Get - Request ab und
speichert diese Daten in eine MYSQL Datenbank.
Für die Graphische Anzeige sorgen dann einige PHP Scripten serverseitig
sowie etwas Javascript für die Erzeugung der Graphik.
Als Datenaustauschformat zwischen den beteiligten Geräten dient diesem
Fall JSON