Hallo, ich würde gerne einen Arduino (Master) mit 4 Arduinos (Clients) verbinden, das alles über Funk. Der Master soll dabei nach und nach in einer Schleife die Clients abfragen. Ich habe an die Bluetooth Module HC05 gedacht, aber Bluetooth funktioniert immer nur zwischen zwei Modulen. Ich dachte daher, das der Master die Verbindung zum Client 1 trennt und dann eine Verbindung zum Client 2 Aufbaut... Das ist aber irgendwie unschön und funktioniert scheinbar nur über die Programmierschnittstelle in dem die Client Adresse eingetragen werden muss. Übersehe ich irgendetwas? Hat jemand eine Idee? vielen Dank
Mick schrieb: > Verwende lieber die nRF24L01+ Module. Ja, ist dafür bestens geeignet da er vielfältige Adressierung und ein Acknowledge-Protokoll kennt.
Und außerdem gibts für die nRF24L01 auch schon ein funktionierendes Mesh-Funknetz: https://tmrh20.github.io/RF24Mesh/
Wie ist denn der RFM75 im Vergleich zum nRF24L01? Der RFM75 hat ja - wenn ich mich recht erinnere - 6 FiFos.
Danke für die Antwort, ich habe mir mal ein paar Module bestellt und versuche es dann damit...
Die Terminologie ist noch nicht ganz richtig. Es gibt Client & Server. Der Server wartet bis der Client etwas will, dann macht er das, und wartet wieder. Der Server macht von sich aus nichts. Der Client macht quasi den Ablauf. Es gibt Master & Slave. Der Master befiehlt, der Slave macht. Der Slave macht von sich aus nichts. Ein Sensor misst und wartet bis etwas die Daten haben will. Ein Sensor kommuniziert nicht von selbst. In einem Sensornetzwerk redet man von Master und Slave. Bei Datenbanken und Internet von Client & Server Server toent wuchtiger und teurer, deshalb der Unterschied, ist aber funktional dasselbe wie ein Slave.
Mesh schrieb: > Und außerdem gibts für die nRF24L01 auch schon ein funktionierendes > Mesh-Funknetz: > > https://tmrh20.github.io/RF24Mesh/ Gibt es das auch für die ESP8266?
Kolja L. schrieb: > Mesh schrieb: >> Und außerdem gibts für die nRF24L01 auch schon ein funktionierendes >> Mesh-Funknetz: >> >> https://tmrh20.github.io/RF24Mesh/ > > Gibt es das auch für die ESP8266? Klassisches WLan wie es die ESPs bereitstellen ist dafür nicht sonderlich gut geeignet, weil WLAN eine Client<->AP Infrastruktur ist.
Kolja L. schrieb: > Gibt es das auch für die ESP8266? Ja, sicherlich! Schon lange in der ESP8266 API eingebaut. Auch im Ardiono ESP Paket. Google: "ESP8266 Mesh"
Hallo, ich meine natürlich Master und Slave. Ein Master und 4 Slaves. Ich habe nun einmal zwei Arduino Nanos mit je einen RF24 Modul verbunden. Ich habe folgende Lib eingebunden: https://github.com/TMRh20/RF24 wenn ich hier das Beispiel Programm: "GettingStarted" aufspiele, funktioniert es soweit. Ich habe dann einmal ein eigenes kleines Programm geschrieben: Sender:
1 | #include <SPI.h> |
2 | #include <nRF24L01.h> |
3 | #include <RF24.h> |
4 | |
5 | RF24 radio(7, 8); // CE, CSN |
6 | |
7 | const byte rxAddr[6] = "00001"; |
8 | int i; |
9 | void setup() |
10 | {
|
11 | i = 0; |
12 | radio.begin(); |
13 | radio.setRetries(15, 15); |
14 | radio.openWritingPipe(rxAddr); |
15 | |
16 | radio.stopListening(); |
17 | |
18 | Serial.begin(9600); |
19 | }
|
20 | |
21 | void loop() |
22 | {
|
23 | const char text[] = "Hallo"; |
24 | bool ok = radio.write(&text, sizeof(text)); |
25 | |
26 | if(ok) |
27 | Serial.println("gesendet"); |
28 | else
|
29 | Serial.println("Fehler"); |
30 | |
31 | delay(1000); |
32 | }
|
Empfänger:
1 | #include <SPI.h> |
2 | #include <nRF24L01.h> |
3 | #include <RF24.h> |
4 | |
5 | RF24 radio(7, 8); |
6 | |
7 | const byte rxAddr[6] = "00001"; |
8 | |
9 | void setup() |
10 | {
|
11 | while (!Serial); |
12 | Serial.begin(9600); |
13 | |
14 | radio.begin(); |
15 | radio.openReadingPipe(0, rxAddr); |
16 | |
17 | radio.startListening(); |
18 | |
19 | Serial.println("Start"); |
20 | }
|
21 | |
22 | void loop() |
23 | {
|
24 | if (radio.available()) |
25 | {
|
26 | char text[32] = {0}; |
27 | radio.read(&text, sizeof(text)); |
28 | |
29 | Serial.println(text); |
30 | }
|
31 | }
|
Ich hatte es einmal geschafft "Hallo" ein oder zweimal zu übertragen, aber eigentlich funktioniert es nicht. Es wird auf der Sender Seite auch immer nur "Fehler" ausgegeben. kann hier mal jemand rüber gucken und mir bitte helfen? danke
Nachtrag: Angeschlossen ist es am Arduino Nano GND -> GND 3,3V -> Versorgung D7 -> CE D8 -> CSN D10 -> IRQ D11 -> MOSI D12 -> MISO D13 -> SCK ich weiß das an der D13 auch eine auf dem Arduino Nano Board befindliche LED angeschlossen ist, kann diese ein Problem darstellen?
Digit schrieb: > ich weiß das an der D13 auch eine auf dem Arduino Nano Board befindliche > LED angeschlossen ist, kann diese ein Problem darstellen? Nein, aber die üblichen fehlenden Abblock-Kondensatoren. Die Leute bei denen "es geht" behaupten man bräuchte sie nicht. Die Leute bei denen es nicht geht sagen "die anderen brauchen auch keine Abblock-Kondensatoren". Seltsam ist nur dass meine Schaltungen alle einwandfrei funktionieren. Allerdings habe ich keine Kosten, Mühe und Arbeit gescheut und überall mindestens ein Kermaik-C und einen Elko verbaut. Das war teuer! Beitrag "NRF24L01 - Testprogramm für Windows PC" Beitrag "NRF24L01+ test program for Arduino Uno" Beitrag "NRF24L01+ test program for Arduino Mega" Fliegende Aufbauten sind oft auch sehr hilfreich gegen einwandfreies funktionieren.
ok, es lag an der lib, die die ich verwendet hat funktioniert irgendwie nicht... habe jetzt allerdings eine andere Frage: Ich habe zum Beispiel drei Module A, B und C. Kann ich nun ein Netzwerk der Datenübertragen wie folgt aufbauen? A <-> B <-> C <-> A Würde es mit der folgenden Zeile funktionieren?
1 | radio.openReadingPipe(0, rxAddr); |
in dem die "0" für die einzelnen Verbindungen verwendet wird? Ich finde dazu leider nichts...
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.