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
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.
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.
Hier gibt es so etwas http://jeelabs.net/projects/hardware/wiki/JeeNode https://nathan.chantrell.net/tinytx-wireless-sensor/
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!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.