ich sitze gerade dran und suche nach einer Möglichkeit, eine Datei von einem ESP32 an ein ArduinoUno zu senden.
Ich habe ein Code geschrieben um ein Bluetooth Signal auf zu nehmen, die Stärke abzuspeichern und würde nun gerne dieses Signal an den ArduinoUno weiter schicken.
Dabei soll nun dieser von 2 verschiedenen ESP32 diese Signale bekommen und abgleichen.
Mein Problem ist es nun, überhaupt etwas von dem ESP32 an den ArduinoUno zu schicken.
Bitte Bittte helft mir, ich habe so vieles nun versucht.
Mir reicht ein sketch, der Hello World versendet. Mir ist es ganz egal was.
Aber ganz wichtig, vom ESP32 zum ArduinoUno.
Da wäre es sinnvoll, uns das mitzuteilen.
Möglichkeiten wären I2C (Multimaster, da 2 ESP32), Serial (Softwareserial am UNO)
oder UNO weg lassen und beide ESP32 per I2C kommunizieren lassen. Einer ist Master und fordert den Wert vom zweiten an. Der kann die Auswertung auch mit machen. Was soll der UNO dabei?
Wire soll doch Multi-Master unterstützen, dann muß ich mich nicht darum kümmern. Oder ist das eine Illusion?
Wie wahr! Ohne die Aufgabenstellung genauer zu kennen, ist eine Vertiefung dieses Themas sinnlos. Schließlich gibt es ja eine ganze Handvoll Schnittstellen, alle mit Vor- und Nachteilen.
Ja, wenn man verschiedene Prozessorarchitekturen verbinden muss man da unter Umständen aufpassen. Wenn man nur AVR Prozessoren hat ist sowas egal. Aber 32-Bit Prozessoren arbeiten immer in 4 Byte Blöcken:
Ich würde gerne ein Bluetooth Signal Empfangen und zwar über zwei Esp32 und dann an den Uno weiter geben.
Diese werden beim uno dann verglichen und es wird ein Motor angesteuert.
Und bei mir klappen die Codes aber es kam bis jetzt nur Kauderwelsch an.
Wie schließe ich dann den Level shifter an?
Also ich habe es versucht und bei dem Code von dir steht ne baud Rate von 19200 beim Uno und 115200 beim esp ist das, weil sie unterschiedliche Prozessoren nutzen?
Also dann eher einen Atmega nutzen um die beiden daten heraus zu lesen oder eben einen 3. esp32 ?
kannst du mir mit der verdrahtung helfen, auch wenn ich es auf A5 und A4 anschließe, kommt kein Signal zum Plotten beim Uno heraus
Ich danke dir ehrlich sehr.
Ich schaue seit tagen, wo ich das wissen her bekomme und versuche so vieles aber nichts funktioniert.
Es geht einfach wirklich... ich habe es gerade angeschlossen im moment.
Ok, ich danke dir sooo sehr erstmal.
Nun 1. Woher wusstest du die pins beim esp32?
sind es beim uno immer scl und sda?
ich habe vorhin schon mal versucht von einem esp32 zu einem anderen die daten zu schicken, da du ja meintest ich solle einfach ein 3. esp32 nehmen um das ganze zu vergleichen.
um eine Zahl zu versenden geht das doch genauso oder ich müsste sonst strin benutzen oder?
3.1 ich werde herum versuchen, das ist schon mal der ober mega super hammer. wirklich danke
Ich weiß nur die Tags hier nichts, sonst würde ich das gerne hier hinein stellen.
Ich habe dein link aber dort ist nichts von arrays, ich werde aber weiter nachsehen, da das ein hammer tipp ist. Also vielen Dank
Aber der Code funktioniert nur spuckt er es untereinander aus statt nebeneinander...
Ich habe es auch schon damit hinbekommen... und mit dem while, war ich der meinung er macht das so lange, die verbindung besteht oder er was empfängt oder?
Musst mal den code versuchen, der geht wirklich aber eben untereinander...
hmm ich muss mehr daran arbeiten und eure tipps einbeziehen
jetzt geht wieder gar nichts also ich glaube, ich habe heute zu lang dran gesessen, seit heut morgen bis jetzt.. Ich brauch ne kurze pause.
Aber so lange eine Frage, wie versende ich denn eine Global definierte Variable von einem esp zu einem anderen ich habe das auch versucht und eigentlich hat es auch funktioniert
ich hab das heut morgen mit einem esp32 simuliert und es an sich selbst senden lassen, da der zweite noch nicht da war..
Der Code sieht so aus:
// Sending/Receiving example
#include <BLEDevice.h>
#include <BLEScan.h>
#include <BLEAdvertisedDevice.h>
HardwareSerial Sender(2); // Define a Serial port instance called 'Sender' using serial port 1
HardwareSerial Receiver(1); // Define a Serial port instance called 'Receiver' using serial port 2
#define Receiver_Txd_pin 27
#define Receiver_Rxd_pin 14
#define Sender_Txd_pin 13
#define Sender_Rxd_pin 12
int rechtsstarke ;
int beaconInRange ;
int scanTime = 1; // In Sekunden, weniger als 1 ist nicht möglich schon getestet
BLEScan *pBLEScan;
class MyAdvertisedDeviceCallbacks : public BLEAdvertisedDeviceCallbacks
{
void onResult(BLEAdvertisedDevice advertisedDevice)
{
if (advertisedDevice.getName() == "HMSoft") //statt if muss glaube ich while hier hin
{
int ble_rssi = advertisedDevice.getRSSI();
Serial.println("RSSI: " + String(ble_rssi));
rechtsstarke = ble_rssi;
Sender.begin(115200, SERIAL_8N1, Sender_Txd_pin, Sender_Rxd_pin); // Define and start Sender serial port
Sender.println("RSSO: " + String(rechtsstarke)) ;
}
}
};
void setup() {
//Serial.begin(Baud Rate, Data Protocol, Txd pin, Rxd pin);
Serial.begin(115200);
Serial.println("Scanning...");
BLEDevice::init("");
pBLEScan = BLEDevice::getScan(); //Neuer Scan wird angelegt
pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());
pBLEScan->setActiveScan(true); //Scannt die ganze Zeit durchgehend
pBLEScan->setInterval(4); //Wenn dies hier zu klein ist, dann scheint es, als würde er langsamer werden
pBLEScan->setWindow(3); // Dies muss weniger sein als das Intervall // Define and start serial monitor
Receiver.begin(115200, SERIAL_8N1, Receiver_Txd_pin, Receiver_Rxd_pin); // Define and start Receiver seri
// Sender.begin(115200, SERIAL_8N1, Sender_Txd_pin, Sender_Rxd_pin); // Define and start Sender serial port
}
void loop() {
// Sender.println("RSSO: " + String(rechtsstarke)) ;
while (Receiver.available()) { // Wait for the Receiver to get the characters
String rechtsstarke1 = Receiver.readStringUntil('\n');
Serial.println(rechtsstarke1);// Display the result on the serial monitor
}
pBLEScan->clearResults(); // Ergebnisse löschen um den Speicher nicht voll zu machen
//rechtsstarke = 1;
}
kann ich das denn auch dann an einen anderen übersenden, eigentlich doch schon oder, da er das an sich selbst als simulation eines anderen ja auch schickt?
ahja und rechtsstarke steht für die rechte Stärke ich hab auch linksstarke und will diese werte dann beim 3. esp vergleichen..