Arduino Drahtlos Kommunikation zu 5 anderen Devices

Hallo zusammen,
für mein neustes Projekt suche ich nach einer Möglichkeit von einem Hauptarduino (UNO) jeweils ein Signal an 5 Geräte zu schicken.

Dieses Signal soll dort dann eine Oder mehrere LEDs schalten.
Von den Geräten aus soll dann wieder ein Signal zurück an den Hauptarduino geschickt werden sobald die LED per Taster ausgeschaltet wurde.

Brauche ich hier für jedes Gerät einen Arduino oder ist das zu überdimensioniert?

Als drahtlosschnittstelle Bluetooth HC-05? Oder gibts andere bessere Möglichkeiten?
Reichweite wäre hier maximal 30m

Vielen Dank im Voraus.
Lg Nixco

Hi

Wenn sich diese 'Geräte' in unmittelbarer Nachbarschaft befinden, reicht Draht und eine Platine mit 1...5 LEDs wie 1...5 Tastern.
Würde dort auf einen I²C Portexpander gehen - aber NUR, wenn die räumliche Nähe gegeben ist.
Hatte den Scharm, daß Du mit Einem Uno ALLES erschlagen kannst unr trotzdem 'pro Spieler' ein eigenes Terminal hast.
Bis zu welchen Längen man I²C ohne besondere Maßnahmen dehnen kann - kA.
Da als Inter-IC-Bus konzipiert, sind nur wenige Zentimeter geplant gewesen - mit Verstärkern kann man aber auch hier auf mehrere Meter kommen.

Wenn größere Entfernung, schriebst Du bereits BT - Das uist (meines Wissen) eine P2P-Verbindung, also NUR 2 Teilnehmer - der Haupt-Arduino müsste also 'ein paar Mehr' davon beherbergen.

Wenn Entfernung >> I²C, käme RS485 oder CAN in Frage - Letzteres übernimmt Prüfung ect.pp. - Du musst nur Daten schicken und empfangen - der Rest passt.
Bei RS485 musst Du den ganzen Kram selber abhandeln!

MfG

Edit
Daher der Name Wildschwein ... im Thread-Titel steht DRAHTLOS - hatte Das zwar irgendwo aufgeschnappt, fand im Post selber dann aber nur BT, was vage in diese Richtung zeigt.
Funk ginge auch mit NRF24L01 (keine mit zugeklexten Chips kaufen ...)

Nixco:
... Hauptarduino (UNO) ...

Ist das mit dem Uno ein Muss?

Sie Dir vielleicht mal einen der neuen Nanos an - evtl. Arduino Nano 33 IoT — Arduino Official Store?

Gruß

Gregor

30m überschreitet imho das was du mit Bluetooth machen kannst.

Drahtlos würde ich das vermutlich über Wifi machen. ESP8266 auf einem NodeMCU oder WemosD1 für schmales Geld.

Hallo,
Danke für die vielen schnellen Antworten.

Kabelgebunden ist leider keine Option.
Dass Bluetooth eine P2P Verbindung ist, ist tatsächlich ein Problem.

Wäre dies bei WLAN anders?

Lg

Nixco:
Wäre dies bei WLAN anders?

überlege selber mal: wie viele Homepages kannst du mit deinem Smartphone ansurfen?
und umgekehrt: wie viele können gleichzeitig einen Webradio-Sender hören?

Macht Sinn :wink:
Dann werde ich mir testweise mal was bestellen und schauen was dabei raus kommt :slight_smile:

bevor du was bestellst, kannst ja auch einen Link einstellen, dann schauen die Leute noch mal drüber.
Erfahrung mit dem UNO/Nano hast eh schon oder?

Grundsätzlich habe ich Erfahrung mit dem Arduino, allerdings was drahtoskomm. Angeht nur bluetooth.

Ich will nun 5 Sender/Empfänger so mit einem Master verbinden, dass dieser im Prinzip Signale an die einzelnen Empfänger schickt.
An den Empfängern ist ein Taster montiert, der, wenn er gedrückt wird ein Signal zurück an den Master schickt.

Leider hab ich keinerlei Erfahrung mit wlan, sodass ich hier etwas Starthilfe was die Verbindung angeht benötige.

Lg nixco

Nixco:
Dass Bluetooth eine P2P Verbindung ist, ist tatsächlich ein Problem.

Wenn Du mit P2P meinst, dass sich nur zwei Geräte miteinander unterhalten können, liegst Du falsch. Und auch mit BT lässt sich über mehrere zig Meter kommunizieren.

Gruß

Gregor

Ein NRF24L01+ könnte deine Anforderungen erfüllen.

Es gibt Nano Varianten die so einen Chip integriert haben,
Expansion Boards die einen Steckplatz für Nano und NRF24L01+ (und XBee) haben.

Whandall:
You could try a module that has the NRF already integrated

Nano V3.0 with NRF24l01+
nanonrfa.png

or a prototype board that is built for a Nano, a NRF and a XBEE

Nano expansion board
nanonrf.png

I just picked random vendors, you might get them even cheaper.

Hallo,

hätte auch den Vorteil das dieser 5V kompatibel ist im Gegensatz zum Arduino Nano 33 IoT.

Hallo,
Habe mich nun für eine wlan kommunikation entschieden.

Hab ich mal ein bisschen eingelesen. Sollte wohl funktionieren.

Die frage ist nun:

Ein device als access point und die anderen greifen hier drauf zu (im access point steckt dann auch der Großteil der logik)
Oder mit einem extra wifi access point (evtl der kleine router von tplink) und darüber alles laufen lassen?

Was denkt ihr macht mehr sinn bzw ist einfacher?

Lg nixco

imho brauchst du für 6 Geräte einen separaten Access Point. Der ESP8266 lässt sich zwar auch im AP Modus betreiben, kann dann aber nur 4 Geräte zulassen. Das wäre für deinen Anwendungsfall um 1 zu wenig.

Da ich mich gerade wirklich schwer tue, was WLAN kommunikation angeht, poste ich mal meine Ideen, die ich mir so zusammengesucht habe.

  1. Zuerst konfiguriere ich den WLAN Router, damit ich ein in sich geschlossenes WLAN Netz habe.
    2.Danach würde ich jedes einzelne Gerät (Sowohl , das dass die Befehle sendet, als auch die die sie bekommen ) mit dem Router verbinden. So in der Art:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
 
const char* ssid = "YOUR_WLAN_SSID";
const char* password = "YOUR_WLAN_PWD";
 
void setup() {
  Serial.begin(115200);
  delay(10);
 
  Serial.print("Connect to Wifi ");
 
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.print(".");
  }
 
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}
 
void loop() {
  if (WiFi.status() == WL_CONNECTED) {
    // Your WiFi-Stuff here :-)
  }
}
  1. Nun müssten ja alle Geräte im WLAN Netz sein.
    Kann ich nun schon die einzelnen Befehle antriggern, z.B. von meinem Gerät dass sendet:
    Empfänger 1? Schalte Pin so und so TRUE.
    Empfänger 2? Schalte du ebenfalls Pin so und so TRUE.

Bei einer Bluetooth Verbindung wüsste ich wie ich vorgehen müsste, bei WLAN habe ich allerdings keine Idee. Vermutlich über die IP Adresse des jeweiligen Empfängers?
Kann mir hier einer weiterhelfen?

Besten Dank im voraus.

lg Nixco

Du musst Dir ein eigenes Protokoll ausdenken, wie Du die Aktionen auslösen willst.
Als Übertragungsprotokoll würde ich UDP nehmen (da gibt es Beispiele für den ESP8266).

Der Rest hängt davon ab, was Du machen willst:

Variante 1: Du sprichst jeden Empfänger mit seiner IP an und gibst durch, was er tun soll.
Variante 2: Du arbeitst mit Broadcast, dann muss zusätzlich noch ein Byte mit rein, welcher ESP den Befehl ausführen soll.

Wichtig ist erst mal eine vollständige Liste aller Aktionen, die Du durchführen willst und in welche Richtung die gehen sollen. Beziehe da auch mögliche Erweiterungen mit ein.

Je besser diese Liste ist, um so besser kannst Du Dein Protokoll bauen.

Gruß Tommy

noiasca:
Der ESP8266 lässt sich zwar auch im AP Modus betreiben, kann dann aber nur 4 Geräte zulassen.

Gilt diese Beschränkung auch für den ESP32?

// bool softAP(const char* ssid, const char* passphrase = NULL, int channel = 1, int ssid_hidden = 0, int max_connection = 4);
WiFi.softAP(ssid, password, 1, 0, 5);

Ob es funktioniert kann ich mangels Hardware leider nicht testen.

das habe ich nicht gesucht.

Habe noch was in WiFiAP.h gefunden, siehe #16. (Dachte nicht, daß Du schon munter bist :slight_smile: )

Und hier:

HOWEVER, now that the ESP32 is available, I decided to revisit it. It even turns out that, alhtough the default for ESP32 is still 4, there was a recent commit to the ESP32 SDK that supports changing the maximum. Using Sparkfun ESP32 thing with the extended API - which is WiFi.softAP(ssid, passphrase, channel, ssid_hidden, max_connection) - I have been able to set max_connections to 16 and have so far connected 6 clients simultaneously, with a throughput of 40 packets per second (25ms/packet)! Hooray for the ESP32!

Wäre also einen Versuch wert, oder?

testbar ja, aber ich habe keinen Anwendungsfall. Soll der TO machen ;-). Ich verwende den AP Modus nur zum konfigurieren oder für "Portable Geräte" damit ich mal schnell eine Änderung mit dem Smartphone durchführen kann.

Generell:
Mir fehlt da noch eine genauere Beschreibung vom Projekt. Auch so wie Tommy bereits geschrieben hat:
was erfolgt an Kommunikation?
wie sehen die Abläufe aus?
Wie wird erkannt wenn eine Station nicht mehr erreichbar ist?
was soll dann passieren?
Eine Zeichnung mit der Hauptstation und mindestens zwei Nodes woraus man erkennt was an welcher Stelle geschehen soll.
Wie bekommt die Hauptstation ihre Befehle? über Pins getriggert von außen?