Forum: Mikrocontroller und Digitale Elektronik Wlan Kommunikation zwischen Arduino (MKR 1010)und Router


von Hammad S. (msaf)


Angehängte Dateien:

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.

von Cyblord -. (cyblord)


Lesenswert?

1.) MQTT

2.) Lerne Netzwerkgrundlagen. Es ist schauderlich. Gerade ein Master 
sollte in seiner Arbeit eine saubere Vorstellung davon haben, was er tut 
und das mit korrekter Terminologie deutlich machen. Dein Geschwurbel 
klingt nach Realschule.

: Bearbeitet durch User
von Sebastian R. (sebastian_r569)


Lesenswert?

Cyblord -. schrieb:
> 1.)MQTT

Dazu nen Raspberry Pi mit Node-Red. Sieht dann mitm Dashboard schick aus 
und man muss kaum programmieren können.

von Stefan F. (Gast)


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?

von Stefan F. (Gast)


Lesenswert?

Hier hat sich mal jemand damit beschäftigt, wie man Informationen an 
einem Redis Server senden kann: 
https://medium.com/@stockholmux/ice-wine-redis-and-microcontrollers-96f90be09ea

von Adam P. (adamap)


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.

: Bearbeitet durch User
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.