Forum: HF, Funk und Felder Funknetzwerk aufbauen


von Nibor T. (napster1989)


Lesenswert?

Hi Community,

ich will mittelfristig Netzwerk aus mehreren >20 Nodes (Arduino Nano / 
Uno Mikrocontrollern) herstellen. Die Controller sollen alle an einen 
Host / Gateway senden. Gesendet werden diverse Prozessdaten, 
idealerweise mit einer Frequenz von 2-4Hz.

Ich habe aktuell folgende Funkmodule (zum testen): RFM69HCW, RFM24, 
RFM26 (jeweils 868Mhz)

Das Problem, welches ich aktuell habe ist, dass es zwar Problemlos geht 
zwei Controller miteinander kommunizieren zu lassen,wenn jedoch noch ein 
dritter im Spiel ist, wird nur der "erste" empfangen.

Meine Frage ist eigentlich, sind diese Module in der Lage ein Netzwerk 
mit mehr als zwei Teilnehmern aufbauen zu können?

Ist es vom vorgehen vllt. sinnvoller, wenn die einzelnen Nodes als 
Server agieren, und das Gateway als Client, der sequentiell die 
jeweiligen Nodes anfragt und eine entsprechende Antwort erhält?

Habt ihr soetwas schon einmal gelöst? Vielen Dank für eure Anregungen 
und einen schönen Gruß aus dem Ruhrgebiet.


Edit: Ich habe vergessen zu erwähnen, dass ich die Library von RadioHead 
verwende: http://www.airspayce.com/mikem/arduino/RadioHead/

: Bearbeitet durch User
von Dampf T. (ouuneii)


Lesenswert?

Ja, was soll denn das Konzept sein ? Jeder sendet ein Wenig, wenn er 
Zeit und Lust hat oder was ?
Du benoetigts ein Protokoll, das das Konzept abbildet.

Das Einfachste ist, wenn der Host alle Knoten sieht. Dann wuerde man ein 
Master Slave Konzept anwenden, der Master(Host) adressiert die Slaves 
und fragt sie ab. Die Slave antworten nur, senden nie ungefragt. Ja, die 
Slaves sind so gesehen Server.

von Johannes S. (Gast)


Lesenswert?

Ich benutze die RFM69 mit der LowPowerLabs Lib. Die Module selber haben 
schon eine Adressfilterung und nutzen einfache 1-Byte Adressen. Damit 
ist es also einfach eine Zentrale zu haben und die von mehreren Clients 
anzufunken. Wenn die Clients von sich aus aktiv werden kann es ja 
passieren das sich zwei stören wenn sie gleichzeitig senden. Deshalb ist 
in der LPL Lib ein 'listen before send' drin um das zu verhindern.

von Jeenode tinytx (Gast)


Lesenswert?


von Nibor T. (napster1989)


Lesenswert?

Hi,

sorry für die späte Antwort - ein frohes Neues an dieser Stelle erst 
einmal!

Die Idee, dass der Server die Nodes einzeln anspricht und diese dann 
antworten ist nicht schlecht. Ich möchte langfristig aber (relativ) 
schnell die Daten der Nodes (Messdaten - Druck, Temperatur, Spannungen 
an I/O Ports ..) erhalten. Ich sage mal so 5 Samples/s und ich 
befürchte, dass das adressieren und ansprechen der jeweiligen Nodes zu 
lange dauert.

Ich schau mir aber mal die Librarys an, die Ihr gepostet habt.


Danke nochmal für euer Feedback!

von Pandur S. (jetztnicht)


Lesenswert?

Weshalb soll das Adressieren zu lange dauern ? Wie lange dauert denn 
eine Kommunikation, welche Baudrate wird verwendet ? Welches sind die 
Distanzen ?

Bei 20 Stationen und 5Hz darf eine Interaktion grad mal 10ms lang sein. 
Also eine Anfrage + Funkdelay + Antworten + Funkdelay. Der Funkdelay 
wird in den Mikrosekunden sein, also vernachlaessigbar. 300m = 1us.
Eine Anfrage benoetigt zB 4 Byte = Header + Adresse + Command + Ende. 
Die Antwort aus den Prozessdaten dauert dann vielleicht 10 Byte, mit 
Header + Checks. Das waeren dann 14 bytes, also irgendwas groesser 
gleich 38400 Baud mit etwas Reserve.

Alles andere, Senden ohne Anfrage, mit Timeslots ist signifikant viel 
aufwendiger.

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.