Go Down

Topic: Daten über ein Ethernet-Shield in eine txt auf dem laptop speichern (Read 1 time) previous topic - next topic

ThePhil

Guten Tag liebes Forum,
ich besitze einen Arduino Mega mit einem Ethernet-Shield.Nun möchte ich eine Zahl über Ethernet
in eine txt auf meinem Laptop speichern :)
kann mir dabei vielleicht jemand einen Tip geben ?

combie

Dazu wird auf deinem Läppi ein Server Prozess laufen müssen!
Wer seine Meinung nie zurückzieht, liebt sich selbst mehr als die Wahrheit.

Quelle: Joseph Joubert

ThePhil

Also ein Web Server ? Ich habe am ende eine Access Datenbank wo die Daten landen sollen.
hast du einen Sofware tipp?

combie

Quote
Also ein Web Server ?
"Web" habe ich nicht gesagt.
Wäre aber eine der vielen Möglichkeiten.

Ein einfacher Webserver ist z.B.im PHP Interpreter eingebaut.
Wer seine Meinung nie zurückzieht, liebt sich selbst mehr als die Wahrheit.

Quelle: Joseph Joubert

noiasca

da gabs die Tage schon mal eine ähnliche Anfrage. Suche etwas zurück.

Was kannst du in Access? z.B. eine TCP u/o. UDP Nachricht empfangen ? Denn dann braucht es den Umweg über einen ganzen Webserver evtl. nicht.

how to react on postings:
- post helped: provide your final sketch, say thank you & give karma.
- post not understood: Ask as long as you understand the post
- post is off topic (or you think it is): Stay to your topic. Ask again.
- else: Ask again.

ThePhil

Gibt es denn die Möglichkeit per udp oder generell Daten in eine txt auf dem Laptop zu schreiben ?

TriB

Nein. Nicht ohne combies Lösung mit einem Dienst.
Stell Dir vor jeder im Netzwerk kann Dir einfach so Dateien auf Dein Notebook schreiben.

Du musst etwas haben, das für das Ethernet-Shield einen Endpunkt darstellt. Das kann ein Dienst auf dem Laptop sein (WCF, IIS-Server, Sockets, uvm.) oder Du verwendest einen Online-Dienst. Dann musst Du allerdings von dort die Daten auf Deinen Rechner bekommen.

Daher tendiere ich zu einem eigenen Dienst.

Ist auch kein Hexenwerk. Für den Anfang kannst Du Dir einen einfachen TCPClient bauen:
Creating Simple TCP Client
Vielleicht nicht das beste Tutorial, aber kurz und knapp. Und inkl. Datei :)

HTML-Fan

Gibt es denn die Möglichkeit per udp oder generell Daten in eine txt auf dem Laptop zu schreiben ?
Du könntest mit z.B. einem Arduino Due oder Leonardo die Tastertur ansteuern und wenn du vorher eine txt-Datei geöffnet hast, landet der Text eben in der txt. Aber der Mega kann das nicht und was besseres fällt mir nicht auf die Schnelle ein.

ThePhil

Könnte ich von diesem Dienst auch Daten zum Beispiel in eine Access Datenbank bekommen ?

TriB

Ja klar!
Sobald Du einen Empfänger hast (Dienst* oder Anwendung), kannst Du dort jedwede Schnittstelle ansprechen. Also auch in so veraltete und unzeitgemäße Datenbanken wie Access ;)

*Ein Dienst hat den Charme, dass dieser automatisch mit dem Betriebssystem startet und im Hintergrund läuft.
Dafür darf er nicht auf die GUI, die Oberfläche von Deinem Betriebssystem zugreifen. Ist aber auch nicht nötig.

ThePhil

Danke dein Tipp hat mir schon sehr weiter geholfen :)
habe mich jetzt etwas informiert und in Visual Studio so einen WCF Dienst geöffnet.
Nur wie kann ich dem Arduino jetzt sagen welchen Dienst er benutzen soll um dort seine Daten rein zu schreiben ? :)
Und ist das dann in Access eine Sharpoint Liste die ich da einpflegen muss ?

TriB

Du gibst dem WCF Dienst einen Port mit. Dann ist er über Deine IP Adresse des Rechners + diesem Port erreichbar.
In dem Beispiel auf der MSDN geht nicht hervor, dass Du diesen in der app.config anpassen kannst.

Hier habe ich ein besseres Beispiel gefunden, welches auch gleich noch einen Installer für den Dienst mitbringt.
Dort geht auch hervor, wie sich die Adresse (localhost)+Port zusammensetzt.

Für Access kommst Du offenbar an OleDB nicht vorbei. Das scheint die einzige Option zu sein, Daten nach Access zu bekommen. Dann kann man aber mit klassischen SQL-Statements arbeiten.
In Access gibt es Tabellen. Mal ganz vereinfacht gesagt, wie mehrerer Reiter in Excel. Diese kannst Du dann befüllen oder auslesen.
Sharepoint ist schon wieder etwas ganz anderes! Dabei handelt es sich um (noch einfacher ausgedrückt) eine Webseite mit einer Datenbank im Hintergrund. Diese umfasst schon Grundfunktionen wie Benutzerverwaltungen, usw. Sowas verwendet man in Unternehmen für das Intranet.

ThePhil

Hey also deine Antwort hat mir schon sehr geholfen. :)
Ich verwende eine 2016 Access DB besteht hier nicht auch die Möglichkeit das ganze über einen ODBC Import zu machen ?
habe gelesen das eine OLE DB sehr komplex sein soll und ich bin leider kein Profi in dem Bereich:)

TriB

Ja, das sollte auch funktionieren. Ob das nun weniger Aufwändig ist, wage ich aber zu bezweifeln.
Du musst die ODBC Schnittstelle auf dem PC ggf. installieren und dann Einrichten. Das geht imho nicht aus dem Programm heraus, sondern nur über das Betriebssystem. Dann benötigst Du eine ODBC Komponente* in Deiner Dienstanwendung.
Bei OLE DB benötigst Du nur die Komponente* für den Dienst und kannst mit SQL-Befehlen arbeiten.

*Mit der Komponente meine ich eine Klassenbibliothek aka DLL, die Dir die Schnittstellenfunktionalitäten bereitstellt. Man erfindet das Rad ja nicht neu, sondern verwendet Lösungen, die andere mit mehr Ahnung gebaut und getestet haben :D

ThePhil

OK dann nehme ich mal den weg mit der OLE DB :)

nochmal eine frage zum Verständnis: Ich schicke jetzt daten über UDP an die IP
Adresse meines Dienstes indem die IP des Arduinos als Endpoint festgelegt ist ?dann lese ich von dort die daten über eine OLE DB in meine Access DB :) diese kann dann auch daten an die IP Adresse des Dienstes schicken von wo ich diese dann mit dem Arduino auslesen kann ? :)

Go Up