Forum: HF, Funk und Felder Funknetzwerk aufbauen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Nibor T. (napster1989)


Bewertung
-1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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. (jojos)


Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert

von Nibor T. (napster1989)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.