AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Datenaustausch zwischen PC und Arduino, zukünftig zusätzlich über Android
Thema durchsuchen
Ansicht
Themen-Optionen

Datenaustausch zwischen PC und Arduino, zukünftig zusätzlich über Android

Ein Thema von DelphiFan2008 · begonnen am 13. Jan 2013 · letzter Beitrag vom 13. Jan 2013
Antwort Antwort
DelphiFan2008

Registriert seit: 4. Dez 2008
81 Beiträge
 
Delphi XE2 Starter
 
#1

Datenaustausch zwischen PC und Arduino, zukünftig zusätzlich über Android

  Alt 13. Jan 2013, 10:30
Hallo,

habe mit verschiedene Arduino-Boards besorgt und die eine oder andere "stand alone" Applikation erstellt. Das neu erworbene Arduino Board besitzt eine Ethernet Schnittstelle inkl. der Arduino Library für den Datenaustausch per TCP oder UDP. Im ersten Schritt würde ich gerne einen Datenaustausch zwischen PC und Arduino Board realisieren, später sollte das ganze auch mit einem Android Smartfone und/oder Tablett funktionieren - Ziel ist "Hausautomatisierung, Ein-/Ausschalten von Gartenlicht abhängig von Zeit etc."

Meine erste Idee:
- Datenaustasch per TCP
- Arduino als Server
- PC und Android als Client
- Komponente unter Delphi XE2 ist Indy10 TIdTCPClient
- Zum Test: Umsetzung einer Server-Applikation (Simulation der Ardiuno-Funktionalität) mit Delphi XE2 und Indy10 TIdTCPServer auf gleichem oder anderem PC

Hat jemand schon mal etwas ähnliches umgesetzt oder kann mir Informationen zur Anwendung der Indy10 bzw. TCP senden.

Bzgl. Ethernet Datentransfer etc. bin ich Neuling. Vielleicht kenn jemand eine Doku die hinsichtlich Ethernet und Verwendung/Umsetzung mit Delphi weiterhilft.

Gruß DelphiFan2008
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Datenaustausch zwischen PC und Arduino, zukünftig zusätzlich über Android

  Alt 13. Jan 2013, 11:09
- Komponente unter Delphi XE2 ist Indy10 TIdTCPClient
- Zum Test: Umsetzung einer Server-Applikation (Simulation der Ardiuno-Funktionalität) mit Delphi XE2 und Indy10 TIdTCPServer auf gleichem oder anderem PC

Hat jemand schon mal etwas ähnliches umgesetzt oder kann mir Informationen zur Anwendung der Indy10 bzw. TCP senden.
Ist es ein proprietäres (Arduino-)Protokoll, das der Client beherrschen muss?
Muss man den Arduino-Simulationsserver selber programmieren, oder gibt es vielleicht schon eine Beispielimplementierung (es muss nicht in Delphi sein) für Testzwecke? Das würde es mir als Android Entwickler ja ermöglichen, einen Teil zumindest zu programmieren und Android Unittests laufen zu lassen ohne ein physisches Device anschliessen zu müssen.
Michael Justin
  Mit Zitat antworten Zitat
DelphiFan2008

Registriert seit: 4. Dez 2008
81 Beiträge
 
Delphi XE2 Starter
 
#3

AW: Datenaustausch zwischen PC und Arduino, zukünftig zusätzlich über Android

  Alt 13. Jan 2013, 11:30
Hallo,

danke für die schnelle Antwort. Das Arduino Board besitzt eine eigene an C angelehnte Entwicklungsumgebung, welche es sehr einfach mach auf dem µC-Board Programme zu erstellen. Die Beschreibung der Arduino-Ethernet-Library ist hier. Die Anwendung wird z.B. hier beschrieben.

Der "Datenlayer" über TCP in der/den Applikationen muss aus meiner Sicht natürlich selbst gestaltet werden.

z.B. Gesendeter Datenframe vom Client an Server <Cmd><Data><CRC> Rückmeldung vom Server <Cmd><DataSet><CRC>

Gruß DelphiFan2008
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#4

AW: Datenaustausch zwischen PC und Arduino, zukünftig zusätzlich über Android

  Alt 13. Jan 2013, 12:55

Der "Datenlayer" über TCP in der/den Applikationen muss aus meiner Sicht natürlich selbst gestaltet werden.

z.B. Gesendeter Datenframe vom Client an Server <Cmd><Data><CRC> Rückmeldung vom Server <Cmd><DataSet><CRC>
Verstehe - der Server (der auf dem Arduino laufen soll) wäre also eine komplette Eigenentwicklung, und muss sich nicht auf ein bestimmtes Protokoll festlegen.

Ist die Kommunikation nur als Request/Response (Client sendet an Arduino und wartet - blockierend - auf Antwort) geplant, oder soll das Arduino Device selber die Initiative ergreifen und unabhängig von einem vorhergehenden Request Daten an den Client senden können?

Falls nein (es wird also nur Request/Response benötigt) könnte man HTTP als Protokoll verwenden, oder ist das aufgrund beschränkter Systemresourcen nicht gewünscht? Denn mit einem so bewährten Protokoll wären ja einige Probleme gegenüber Eigenkreationen gelöst, unter anderem was die Ausgereiftheit und die Verfügbarkeit von Clientbibliotheken, auch auf anderen Plattformen, betrifft. Man könnte sofort mit der eigentlichen Daten/Anwendungssxhicht loslegen, und bestehende Infrastruktur nutzen. Konkret zum Beispiel den Indy HTTP Client.

Update: ein HTTP Server für Arduino ist zum Beispiel Webduino, er beherrscht einige sehr interessante Features:

* HTTP Methods: GET, HEAD, POST, PUT, DELETE, PATCH
* Web Forms
* JSON/RESTful interface
* HTTP Basic Authentication

Neben der primären Nutzung über die Delphi / Android Clients hätte man damit auch die Möglichkeit, ein einfaches webbasiertes Administrationsinterface zu erstellen.
Michael Justin
habarisoft.com

Geändert von mjustin (13. Jan 2013 um 13:06 Uhr)
  Mit Zitat antworten Zitat
DelphiFan2008

Registriert seit: 4. Dez 2008
81 Beiträge
 
Delphi XE2 Starter
 
#5

AW: Datenaustausch zwischen PC und Arduino, zukünftig zusätzlich über Android

  Alt 13. Jan 2013, 13:06
Hallo,

habe im beigefügten Bild die Grundidee abgebildet. Per Arduino werden die Befehle per TCP empfangen und ein Status an die Clients versendet (welche Lampen sind gerade an, Status von I/O-Ports, A/D-Wandler, Timer etc.) abhängig von Protokoll. Eventuell zyklisches Senden/Empfangen, kann über Client Ein-/Ausgeschaltet werden, ebenfalls Zyklus.

Die Arduino Library bietet ja zum einfachen Senden/Empfangen entsprechende Routinen, Bsp. Schreiben

Gruß DelphiFan2008
Miniaturansicht angehängter Grafiken
arduino__hausautomatisierung.jpg  
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz