ESPNOW senden mit ESP12 geht schief, warum ?

OP #7664806
Lesenswert?
• ▲
▼

Das Kompilieren geht fehlerfrei, das Lesen des Shelly's geht problemlos, die Variablen haben die richtigen Inhalte, aber ESPNOW-Senden (siehe: void Senden(), Zeile 177) tut er nicht. Gibt Fehlermeldung und kommt nix an.

1
//***************** Senden ********************
2

3
void Senden()
4
{
5
  Ausgabe = Verteil[Laststufe] + " " + Strom + " " + Ampere + " " + Limit + "    " + Summe + " " + Schwelle + Ausgabe + "      ";
6
  Ausgabe.toCharArray(Puffer, 60);
7
  esp_now_send(broadcastAddress, (uint8_t *)&Puffer, sizeof(Puffer));
8
  Serial.println(Puffer);
9
}

Jemand ne Idee? Gruß Helle

#7664810
Lesenswert?
• ▲
▼

Bitte beachten:

Wichtige Regeln - erst lesen, dann posten!

1
Groß- und Kleinschreibung verwenden
2
Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Ich mag dein Programm nicht durchschauen, da ich des dauernden Scrollens leid bin! Ein paar weniger Leerzeilen wären auch nicht zu verachten.

#7664884
Lesenswert?
• ▲
▼

Helmut H. schrieb:

esp_now_send(broadcastAddress, (uint8_t *)&Puffer, sizeof(Puffer));

sizeof() gibt die Größe des gesamten Puffers zurück. Ist denn die Nachricht auch wirklich exakt so lang, oder ist sie kürzer, so daß dahinter Mumpitz gesendet wird?

Für Textnachrichten nimmt man daher strlen(), wenn nicht bereits die Sendefunktion automatisch bei "\0" aufhört.

Beitrag #7669414 wurde von einem Moderator gelöscht.
Gast #7669415
Lesenswert?
• ▲
▼

Helmut H. schrieb:

einfach nix: Delivery fail.

Welchen der beiden Fehlercodes bekommst du denn? gebe den Code mal seriell aus.

https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/network/esp_now.html https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/network/esp_now.html#_CPPv424esp_now_register_send_cb17esp_now_send_cb_t

Prüfe, ob die Stromversorgung stabil ist. Sie muss mindestens 500 mA alleine für den ESP liefern können, plus mehr für alles was da sonst noch dran hängt.

Angehängte Dateien:
#7669432
Lesenswert?
• ▲
▼

Helmut H. schrieb:

Ist denn die Nachricht auch wirklich exakt so lang, oder ist sie kürzer, so daß dahinter Mumpitz gesendet wird?

Es wird doch garnix gesendet...

Weißt du das genau? Anscheinend sendest du zu viel, da kann sich der Empfänger dran verschlucken.

memcpy(&Puffer, &myData, sizeof(myData)); esp_now_send(broadcastAddress, (uint8_t *)&Puffer, sizeof(Puffer));

Müsste es in der zweiten Zeile nicht sizeof(myData) heißen?

OP #7672640
Lesenswert?
• ▲
▼

Hi, Dank euch Beiden. Es gab wohl tatsächlich eine Kollision. Nachdem ich die HTTP-Abfrage mal auskommentiert hatte, sendete die ESPNOW-Funktion einwandfrei. Um weiterzukommen, hab ich jetzt die häufig angewandte Methode gewählt, und zum Senden einen zweiten ESP investiert, dem ich den Datensatz über serial geliefert habe. Jetzt funktioniert alles.

Gruß Helle

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.