Forum: PC-Programmierung Daten auf SQL Server übertragen


von Thomas (Gast)


Lesenswert?

Hi,

ich habe einen uC mit Internetanbindung.
Dieser uC nimmt jede Minute ein paar Sensordaten auf.
Diese Sensordaten sollen in einer SQL Datenbank gespeichert werden, die 
auf einem Webserver liegt.

Externen SQL Zugang erlaubt mein Provider nicht.

Jede Minute ausführen:
http://www.server.de/log.php?date=14.02.2013&time=12:33:12&a=12.33&b=55.77

Weiß jemand was besseres?

Gruß,
Thomas

von Peter II (Gast)


Lesenswert?

Thomas schrieb:
> Weiß jemand was besseres?

ist doch gut, was soll man da noch verbessern?

von Thomas (Gast)


Lesenswert?

Keine Anhnung, das Web kenne ich bisher nur von Anwenderseite.
Ich könnte mir z.B. vorstellen das es nicht so toll ist regelmäßig 
Verbindungen aufzubauen und man besser in größeren Abständen größere 
Datenmengen übertragen sollte.
Dann währe noch die Frage wie, also was gibt es sonst noch für 
Möglichkeiten.
FTP-Upload würde mir noch einfallen, aber es gibt bestimmt noch 
Web-Technologien von denen ich noch nie gehört habe.
Kann ja auch sein, dass jemand sagt: "Alles außer direkter SQL Zugang 
ist mist, also wechsel deinen Webhoster."

von TestX .. (xaos)


Lesenswert?

HTTP gateway ist doch standard für solche dinge... direktes sql macht 
man eigtl nie..

von Vlad T. (vlad_tepesch)


Lesenswert?

Thomas schrieb:
> Jede Minute ausführen:
> http://www.server.de/log.php?date=14.02.2013&time=...
>
> Weiß jemand was besseres?

was spricht denn dagegen? Das ist dochj optimal.
Für den µC keine Arbeit außer ein Request. Der Server mach die ganze 
Arbeit.

von Deneriel (Gast)


Lesenswert?

Ein Verbesserungsvorschlag meinerseits wäre, dass du noch eine 
Authentifizierung einbaust. Und prüfe die Eingaben auf plausibilität. 
Klassisches Beispiel ist die Eingabe
1
name"; drop all databases;
in ein Formularfeld. Security trough obscourity funktioniert nicht.

von Vlad T. (vlad_tepesch)


Lesenswert?


von Peter II (Gast)


Lesenswert?

Deneriel schrieb:
> Und prüfe die Eingaben auf plausibilität.
> Klassisches Beispiel ist die Eingabename"; drop all databases;
> in ein Formularfeld. Security trough obscourity funktioniert nicht.

dafür sollte man mit prepared sql arbeiten, dann kann da nichts 
passieren.

von T.roll (Gast)


Lesenswert?

Einfach mal raten, da man ja nichts genaues von dir weiß:

Wenn du für deinen Webspace SSH hast, kannst du die Verbindung zur DB 
damit auf deinen PC tunneln.

von Thomas (Gast)


Lesenswert?

Danke, Leute!

Funktioniert.

@Vlad: lol

@T.roll:
ssh Tunnel würde gehen, ist hier aber sicher nicht praktikabel.

von Verwirrter Anfänger (Gast)


Lesenswert?

Wenn du mit einer zeitlichen Genauigkeit von ca. 5 Sekunden auskommst, 
würde ich die Zeit einfach auf dem Server mit generieren und 
abspeichern. Idealerweise willst du die Zeit eh als Linux Timestamp 
haben und dadurch sparst du dir einen Kalender auf dem Controller und 
ein paar Daten bei der Übertragung.

Wenn deinen µC mal der Strom ausfällt hast du auch keine Probleme mit 
unsinnigen Einträgen in der DB, und du must dir keine Gedanken um 
Schaltjahre, Schaltsekunden, Sommerzeit / Winterzeit, etc... machen.

von Thomas (Gast)


Lesenswert?

Ja, guter Vorschlag.
Zumindest bei der Übertragung könnte ich das auch so machen.
Wenn die Übertragung aus irgend einem Grund schief läuft speichert er 
die Werte aber zunächst lokal auf einer SD-Karte und synchronisiert 
diese dann nach der nächsten erfolgreichen Übertragung wieder. Daher 
muss die Zeit eh permanent laufen.

Nach einem Stromausfall holt der uC sich die aktuelle Zeit per NTP.
Eine Pufferung der RTC per Goldcap ist auf der TODO Liste.

von Vlad T. (vlad_tepesch)


Lesenswert?

Verwirrter Anfänger schrieb:
> Wenn deinen µC mal der Strom ausfällt hast du auch keine Probleme mit
> unsinnigen Einträgen in der DB, und du must dir keine Gedanken um
> Schaltjahre, Schaltsekunden, Sommerzeit / Winterzeit, etc... machen.

Man kann ja auch im Controller Unix-Sekunden zählen.
Dann fällt das Kalender-Gedöhns auch weg. Das Problem mit Zeit nach 
Restart besorgen bleibt natürlich trotzdem.

von Thomas (Gast)


Lesenswert?

> Man kann ja auch im Controller Unix-Sekunden zählen.
Genau so läuft es auch.

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.