Verbindung zwischen mehreren Geräten aufbauen

Hallo,

könnte mir jemand auf die Sprünge helfen, wie ich am besten Daten von mehreren Geräten an einen Empfänger sende?

Daten sollten am besten Echtzeit übertragen werden.

Ist es besser WLan (ESP8266 o.ä.) oder Bluetooth(NRF24L01 o.ä) zu verwenden?

Wenn jemand einen Code hat oder Link wo sowas schon gemacht wurde, bitte gleich Posten.

Danke

mfg

Hast du sonst noch besondere Wünsche ?

Menschen wie dich braucht die Welt unbedingt, gäbe es mehr die so Hilfsbereit sind und produktive kommentare von sich geben, wäre alles besser :rofl:

1 Like

Über wieviele Geräte sprechen wir denn und wieviel Daten?

Hallo
hier kommt ein konstrukiver Vorschlag mit einem Link :slight_smile:
https://create.arduino.cc/projecthub/franciscomoreirapcb/how-to-communicate-two-hc12-module-with-arduino-a0b5fa

WLAN.

Code habe ich hier:
https://werner.rothschopf.net/201809_arduino_esp8266_server_client_0.htm

Lesen.
Ausprobieren.
Konkrete Fragen können gestellt werden.

Na dann verstehen wir uns doch.

Danke für den Post.
Wenn ich nun mehrere Clients auf einen Server senden lassen will, muss ich das iwie timen oder macht das ser server selber?

Die Standart Bsp zu Server Client verbindungen kenn ich, nur die Codes haben nie mit mehreren Clients zu gleich funktioniert.

Wora liegt das?
Mfg

die Übertragung eines Client dauert so kurz, das arbeitet der Server problem nacheinander ab ohne dass du das merklich mitbekommst.

Der NRF24L01+ kann kein Bluetooth.

Zusätzlich ist das ein Doppelpost.

https://forum.arduino.cc/t/establish-a-connection-between-several-devices/908044

jap Doppelpost, nur in englisch falls jemand nicht deutsch spricht und eine Idee hätte und es gibt Leute die im englischen Forum nicht antworten, da sie die Sprache nicht gut genug können..

Weiß niemand wie ich am besten Daten von mehreren Geräten an eines Senden kann?

Wenn ich 3 ESP8266 habe und einer als Server oder Acess Point und die anderen als Clients, kann ich dann nicht über UDP oder TCP Daten gleizeitig an von den Clients senden?

Wenn ja vlt hat jemand bitte einen Bsp-Code, ich finde nichts wo es gemacht worden ist mit googlen.

Die BSp welche ich gefunden habe senden immer nur von einem Gerät.

Wäre wirklich sehr nett!

mfg

Doppelpost ärgern die user nur und versperren Dir eine breite Hilfsbereitschaft.
Grüße Uwe

Na, dann nimm doch einfach mal 2 ESP8266 als Sender und sende von beiden. Es ist beim Sender ja der gleiche Grundcode für ersten und zweiten Sender. Deshalb wird da auch keiner ein Beispiel mit 2 Sendern schreiben.
Nur der Inhalt sollte sich unterscheiden, damit Du im seriellen Monitor siehst, dass es von 2 verschiedenen Sendern kommt.
Ob UDP oder TCP ist egal - was Dir besser liegt.

Gruß Tommy

@mr_n

Anderer Beitrag/Duplikat GELÖSCHT
Bitte kreuzen Sie Beiträge / Duplikate NICHT an, da dies die Zeit und Mühe der Leute verschwendet, mehr als einen Beitrag für ein einzelnes Thema zu haben.

Fortgesetztes Cross-Posting kann zu einer Auszeit vom Forum führen.

Könnten Sie sich auch einen Moment Zeit nehmen, um Wie man dieses Forum benutzt - bitte lesen

Weitere allgemeine Hilfe- und Fehlerbehebungshinweise finden Sie hier.
Es wird Ihnen helfen, das Beste aus dem Forum in Zukunft herauszuholen.

Ich habe mich schon mit #1 entschlossen keinen fachlichen Piep raus zu lassen.
Denn ein Mensch mit (egomanischer?) Anspruchshaltung übersieht gerne die Bedürfnisse anderer, straft sie für ihre Bedürfnisse mit Verachtung ab. So in #3 geschehen.

Das Crossposting bestätigt das Vorurteil noch einmal mehr.
Es dreht sich nur um das eine "ich".
Es kennt nur gute, das heißt Leute, welche sich dienlich verhalten. Und böse, welche sich nicht dem "ich" fügen. Diese darf man, ja, muss man, herabwürdigen. Mal so richtig klar machen, wo der Hammer hängt.
Wer Kritik übt, wird abgestraft

DAS erwarte ich jetzt und hier auch.

Wie wäre es denn, Fragen zu beantworten?
Was denkst Du denn, was Du hier bekommst?

Problem ist, das die Daten so extrem langsam ankommen.
Was kann man dagegen tun?

Hier mein Code zum Senden:

// Basic demo for accelerometer readings from Adafruit MPU6050

// ESP32 Guide: https://RandomNerdTutorials.com/esp32-mpu-6050-accelerometer-gyroscope-arduino/
// ESP8266 Guide: https://RandomNerdTutorials.com/esp8266-nodemcu-mpu-6050-accelerometer-gyroscope-arduino/
// Arduino Guide: https://RandomNerdTutorials.com/arduino-mpu-6050-accelerometer-gyroscope/

#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>  // Wire Bibliothek hochladen
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
/*
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

Adafruit_SSD1306 display = Adafruit_SSD1306(128, 32, &Wire);
*/
Adafruit_MPU6050 mpu;

char ssid[] = "Wemos_AP";           // SSID of your AP
char pass[] = "Wemos_comm";         // password of your AP

IPAddress server(192,168,4,15);     // IP address of the AP
WiFiClient client;

void setup(void) {
  Serial.begin(230400);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, pass);           // connects to the WiFi AP
  Serial.println();
  Serial.println("Connection to the AP");
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }
  Serial.println();
  Serial.println("Connected");
  Serial.println("station_bare_01.ino");
  Serial.print("LocalIP:"); Serial.println(WiFi.localIP());
  Serial.println("MAC:" + WiFi.macAddress());
  Serial.print("Gateway:"); Serial.println(WiFi.gatewayIP());
  Serial.print("AP MAC:"); Serial.println(WiFi.BSSIDstr());



  
  while (!Serial)
    delay(10); // will pause Zero, Leonardo, etc until serial console opens

  Serial.println("Adafruit MPU6050 test!");

  // Try to initialize!
  if (!mpu.begin()) {
    Serial.println("Failed to find MPU6050 chip");
    while (1) {
      delay(10);
    }
  }
  Serial.println("MPU6050 Found!");

  mpu.setAccelerometerRange(MPU6050_RANGE_8_G);
  Serial.print("Accelerometer range set to: ");
  switch (mpu.getAccelerometerRange()) {
  case MPU6050_RANGE_2_G:
    Serial.println("+-2G");
    break;
  case MPU6050_RANGE_4_G:
    Serial.println("+-4G");
    break;
  case MPU6050_RANGE_8_G:
    Serial.println("+-8G");
    break;
  case MPU6050_RANGE_16_G:
    Serial.println("+-16G");
    break;
  }
  mpu.setGyroRange(MPU6050_RANGE_500_DEG);
  Serial.print("Gyro range set to: ");
  switch (mpu.getGyroRange()) {
  case MPU6050_RANGE_250_DEG:
    Serial.println("+- 250 deg/s");
    break;
  case MPU6050_RANGE_500_DEG:
    Serial.println("+- 500 deg/s");
    break;
  case MPU6050_RANGE_1000_DEG:
    Serial.println("+- 1000 deg/s");
    break;
  case MPU6050_RANGE_2000_DEG:
    Serial.println("+- 2000 deg/s");
    break;
  }

  mpu.setFilterBandwidth(MPU6050_BAND_5_HZ);
  Serial.print("Filter bandwidth set to: ");
  switch (mpu.getFilterBandwidth()) {
  case MPU6050_BAND_260_HZ:
    Serial.println("260 Hz");
    break;
  case MPU6050_BAND_184_HZ:
    Serial.println("184 Hz");
    break;
  case MPU6050_BAND_94_HZ:
    Serial.println("94 Hz");
    break;
  case MPU6050_BAND_44_HZ:
    Serial.println("44 Hz");
    break;
  case MPU6050_BAND_21_HZ:
    Serial.println("21 Hz");
    break;
  case MPU6050_BAND_10_HZ:
    Serial.println("10 Hz");
    break;
  case MPU6050_BAND_5_HZ:
    Serial.println("5 Hz");
    break;
  }

  Serial.println("");
 // delay(100);

String AccX;
String AccY;
String AccZ;
String GyX;
String GyY;
String GyZ;
String temper;
 
/*
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // Address 0x3C for 128x32
  display.display();
  delay(1000);
  display.clearDisplay();
  display.display();
*/
}

void loop() {
  /* Get new sensor events with the readings */

  if (WiFi.status() == WL_CONNECTED) {
  sensors_event_t a, g, temp;
  mpu.getEvent(&a, &g, &temp);
  int myarray[5];
  myarray[0]= a.acceleration.x;
  myarray[1]= a.acceleration.y;
  myarray[2]= a.acceleration.z;
  myarray[3]= g.gyro.x;
  myarray[4]= g.gyro.y;
  myarray[5]= g.gyro.z;
 // myarray[6]= temp.temperature;
  //int size1 = sizeof(myarray);
  //Serial.println(client.write(myarray,size1));
/*
  
  Serial.print("Acceleration X: ");
  Serial.print(a.acceleration.x);
  Serial.print(", Y: ");
  Serial.print(a.acceleration.y);
  Serial.print(", Z: ");
  Serial.print(a.acceleration.z);
  Serial.println(" m/s^2");

  Serial.print("Rotation X: ");
  Serial.print(g.gyro.x);
  Serial.print(", Y: ");
  Serial.print(g.gyro.y);
  Serial.print(", Z: ");
  Serial.print(g.gyro.z);
  Serial.println(" rad/s");

  Serial.print("Temperature: ");
  Serial.print(temp.temperature);
  Serial.println(" degC");

  Serial.println("");
 // delay(500);
*/
/*
  String AccX = "Acceleration X: " + a.acceleration.x;
  String AccY = "Acceleration Y: " + a.acceleration.y;
  String AccZ = "Acceleration Z: " + a.acceleration.z;
  String GyX = "Rotation X: " + g.gyro.x;
  String GyY = "Rotation X: " + g.gyro.y;
  String GyZ = "Rotation X: " + g.gyro.z;
  String temper; = "Temperature: " + temp.temperature;
*/

  client.connect(server, 80);
  Serial.println("********************************");
  Serial.print("Byte sent to the AP: ");
  //Serial.println(client.print("Acceleration X:"));
  Serial.println(client.print(a.acceleration.x, '\n'));
  //Serial.println(client.print("Acceleration Y:"));
  Serial.println(client.print(a.acceleration.y, '\n'));
  //Serial.println(client.print("Acceleration Z:"));
  Serial.println(client.print(a.acceleration.z, '\n'));
  //Serial.println(client.print("Rotation X:"));
  Serial.println(client.print(g.gyro.x, '\n'));
  //Serial.println(client.print("Rotation Y:"));
  Serial.println(client.print(g.gyro.y, '\n'));
  //Serial.println(client.print("Rotation Z:"));
  Serial.println(client.print(g.gyro.z, '\n'));
  //Serial.println(client.print("Temperature: "));
  Serial.println(client.print(temp.temperature, '\r'));
  //String answer = client.readStringUntil('\r');
  //Serial.println("From the AP: " + answer);
  client.flush();
  client.stop();



  }

 
/*
  delay(1000);
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0,0);
  display.println("X: ");
  display.setCursor(0,4);
  display.print(a.acceleration.x);
  display.println(", Y: ");
  display.print(a.acceleration.y);
  display.println(", Z: ");
  display.print(a.acceleration.z);
  
  display.setCursor(0,00);
  display.println("X: ");
  display.print(g.gyro.x);
  display.setCursor(0,10);
  display.println(", Y: ");
  display.print(g.gyro.y);
  display.setCursor(0,20);
  display.println(", Z: ");
  display.print(g.gyro.z);
  display.display();
  display.clearDisplay();
*/
}

Das beste an dem Forum ist, das bei jeder zweiten Frage von einem Anfänger, statt Antworten nur blöde Meldungen kommen,
Ist hier anscheinend wieder passiert (von manchen, nicht allen)
Es gibt anscheinend Leute die nichts besseres zu tun haben, anstatt auf eine Frage zu Antworten nur blöden Scheis schreiben.

Außerdem war mein Doppelpost genau das Gegenteil als "ich" sonst würde ich nicht auf Leute denken, die sich schwer mit einer zweiten Sprache tun.
Aber so soziale Intelligenz darf man wie hier schon 3 mal bewiesen nicht von jedem erwarten.

Wie schon gesagt, würde die Welt nur aus solchen Menschen bestehen, gäbe es keine Probleme mehr :joy:

@mr_n, bitte sei so freundlich und sage mir, wieviel Hilfe denkst Du, dass Du bekommst, wenn du bei Deinem Tonfall uns gegenüber bleibst? Wie Reagierst DU, wenn siech jemand in diesem Ton an Dich wendet, und dir Fast befielt, ihm zu helfen, obwohl Du an und fürsich gar nicht in der Pflich bist , zu helfen? würdest Du in diesem Fall nicht nur sagen "ja, sofort ,ich springe, sag mir nur noch wie hoch", oder sagst Du dem erstmal "nö wenn Du so fragst, such Dir nen Anderen"?
Ich fände es sehr freundlich von Dir, wenn Du über meine Fragen nachdenkst und sie mir beantwortet.

Ich hab doch am Anfang ganz normal nachgefragt und danke gesagt ohne jemanden was zu befehlen o.ä.
Wenn jemand gesagt hätte, das meine Frage für Ihn/Sie unfreundlich definiert/geschrieben ist, hätte ich gesagt ok, tut mir leid war nicht so gemeint, sry dafür. Kein Problem aber die erste Antwort war doch so sarkastisch, was soll ich da sonst drauf sagen.
Und zum Doppelpost sage ich noch immer mit voller Überzeugung, es gibt Leute die sind nicht so gut in anderen Sprachen und trauen sich deshalb nicht antworten und um so jemanden auch am Gespräch teilhaben zu lassen, hab ich den Post in beiden sprachen gepostet.
Für mich ist es normal auf sowas Rücksicht zu nehmen, aber für andere die dann behaupten, ich bin egomanisch, die sind selber zwischenmenschliche Versager.

Es ist nur komisch, dass fast bei jeder Frage im deutschen Forum, die ein Anfänger stellt, gleich mal Sarkastische Meldungen kommen.

Wie soll man Fragen bzw. die Frage definieren oder konkretisieren wenn man sich nicht auskennt, das erwarten im deutschen Forum aber immer gleich alle und wenn nicht kommen blöde Meldungen zurück.

Ich kann schon verstehen manche haben sonst kein Leben und sitzen den ganzen Tag vor PC und trauen sich hier Ansagen zu machen, die Sie sonst im real life nicht machen würden aber so ist das Internet.

Nicht jeder ist mit vollständigem Arduino oder C/C++ Wissen vom Himmel gefallen und kann seine Frage gleich so auf den Punkt bringen wie manche es hier gerne hätten.

So meine letzte Aussage zu dem ganze Kindergarten hier.
Ich mach einen neuen Post im englischen Forum, könnt den hier gerne löschen oder verschieben.

Danke an die Leute die bemüht waren.
Und der Rest soll sich ...., ihr lächerlichen Internetrambos :rofl: :kiss: