Wlan Kommunikation zwischen Arduino (MKR 1010)und Router

OP #6817863
Lesenswert?

Hallo Zusammen,

ich fang demnächst mit meiner Masterarbeit und paar Tips würden mich 
sehr helfen.

Die Idee ist dass auf der eine Seite ein Arduino mit einem Sensor über 
SPI kommuniziert und danach die Sensordaten sammeln und über Wlan an dem 
Router schicken und letztendlich die Sensordaten mit dem Ethernet Kabel 
am PC ausloggen und auswerten.

Ich habe schon mit Hilfe der WIFInina Bibliothek eine Verbindung 
zwischen dem Arduino und dem Router hergestellt. und ich habe die 
SPI-Kommunikation auch hergestellt.

2 Fragen habe ich:

1) wie kann ich am einfachsten die Sensordaten (SPI) an dem Router per 
Wlan schicken?

2) wie logt man am besten die Sensordaten per Ethernet Kabel raus?

Später muss das ganze System erweitert werden dass 4 Arduinos zum 
Einsatz kommen und dass die Gleichzeitig mit dem Router reden. Ein Bild 
vom Konzept ist im Anhang zu finden.
Angehängte Dateien:
Gast #6817872
Lesenswert?

> Arduino MKR 1010

Ganz schön teuer, ich hätte ein Board mit ESP8266 verwendet.

Was du da im Bild mit "Switch" bezeichnet hast, nennt man wohl eher 
"Multiplexer". Zu deinen Fragen:

SPI ist ja ein Bus bei dem entweder alle Teilnehmer parallel geschaltet 
sind und mittels einer Slave-Select Leitung ausgewählt werden oder sie 
sind in Reihe geschaltet weil sie die Daten des Vorgängers "durch 
reichen". Jetzt kommt es darauf an, welche der beiden Varianten deine 
Sensoren untertsützten.

Bei so vielen Sensoren auf einem Knubbel ahne ich, dass du mehr als 30cm 
Leitungslängen haben wirst. Dafür ist SPI nicht gemacht. Bei solchen 
Leitungslängen braucht man zum Protokoll passende Leitungstreiber (RS422 
anstelle von SPI wäre ein Klassiker).

> wie kann ich am einfachsten die Sensordaten (SPI) an dem
> Router per Wlan schicken?

Gar nicht, der Router ist kein geeigneter Empfänger für Nutzdaten. Du 
musst die Daten gezielt an den PC senden, oder dieser holt sie ab. Wirst 
du das Programm auf dem PC selber schreiben? Da hast du die Qual der 
Wahl zwischen IP-Socket, UDP Pakete und einem Message Broker (z.B. 
MQTT).

> wie logt man am besten die Sensordaten per Ethernet Kabel raus

Eine textuelle Variante mittels printf() ist naheliegend, zum Beispiel 
im CSV Format:
1
Sensor1, 1.001
2
Sensor2, 45.01

Allerdings wird die Übertragung gepuffert und nicht kontinuierlich 
stattfinden. Selbst wenn der Computer am anderen Ende nicht anderes zu 
tun hat, sind unregelmäßige Verzögerungen im zweistelligen Millisekunden 
Bereich normal und TCP erlaubt sogar bis zu einer Minute.

Also wäre es dann schon gut, die Messwerte mit einem Zeitstempel zu 
versehen. Was wiederum die Frage aufwirft, wo die Zeit-Information 
herkommen soll.

In welchen Intervallen willst du die Sensoren abfragen? Oder sind es 
keine regelmäßigen Intervalle sondern on demand, also ereignisgesteuert. 
Welche Ereignisse wären das?
#6817886
Lesenswert?

Hammad S. schrieb:
> 1) wie kann ich am einfachsten die Sensordaten (SPI) an dem Router per
> Wlan schicken?

Dein MKR 1010 Modul wird sich natürlich mit dem Router (Access Point) 
verbinden, jedoch wirst du zum Router keine Daten senden, sondern zum 
PC.
Wie bereits erwähnt, mittels TCP.
Höhstwahrscheinlich wirst du dir PC-seitig einen TCP Server schreiben 
und die einzelnen Clients (Arduino) werden ihre Daten dann an die IP des 
PC senden.

Hammad S. schrieb:
> wie logt man am besten die Sensordaten per Ethernet Kabel raus?

Ich würde mir da noch ein "Protokoll" (Frame) ausdenken,
von welchem Arduino kommen die Daten, Sensorzugehörigkeit, Sensordaten, 
Timestamp (wie bereits erwähnt)...weitere Angaben sind möglich und eine 
CRC.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren