mehrere ESP`s mit Strom versorgen?
|
01.01.2021, 19:37
Beitrag #17
|
|||
|
|||
RE: mehrere ESP`s mit Strom versorgen?
Moin Tommy,
(01.01.2021 16:53)Tommy56 schrieb: Du solltest noch unterscheiden lernen zwischen quote und code. Nee, den kenn ich! ![]() Sorry, ich habe außerhalb des Browsers die Antwort verfasst und da ist mir das durchgerutscht. ![]() Soll nicht mehr vorkommen! bis dann, Steinspiel |
|||
01.01.2021, 23:41
(Dieser Beitrag wurde zuletzt bearbeitet: 01.01.2021 23:42 von nbk83.)
Beitrag #18
|
|||
|
|||
RE: mehrere ESP`s mit Strom versorgen?
Moin Steinspiel,
Zitat:Das Problem scheint wohl "mqtt" zu seinDas stimmt. Du hast in Zeile 34 (PubSubClient client(espClient); ) "client" als deinen Postdienstleister ernannt, über den die gesamte MQTT-Kommunikation läuft. Ich vermute mal, dass dieser Postdienstleister in deinem BLE-Sketch "mqtt" hieß. Den kennt der neue Sketch aber nicht. Mache einfach aus mqtt.publish --> client.publish und dann lass ruhig MQTT_scantopic stehen. Warum allerdings das publishen nach der händischen Änderung nicht funktioniert, da bin ich etwas überfragt. Versuche mal das (char*) rauszunehmen, aber das ist jetzt auch etwas stochern im Dunkeln meinerseits. Bei Code: client.publish(MQTT_scantopic, NachrichtJSON.c_str()); Aber zu dem Thema (strings, chars, arrays, umwandlungen, usw.) könnte vielleicht Tommy die Literaturhinweise geben. Hat es denn in dem reinen BLE-Sketch funktioniert? Und hast Du in mqtt.fx die Topics einzeln angegeben oder eine Wildcard subscribed? wenn nicht, dann versuche das sonst mal. Zitat:Ich habe in meinem schlauen Arduino Buch nichts dazu finden können, wo liegt der Unterschied? Oder warum macht "man" das unterschiedlich?Welches Buch hast Du denn? Hast Du Dir auch schon die Code-Referenz (ganz oben hier im Forum unter dem grünen Banner) angesehen? Da steht ganz gut der Unterschied zwischen #define und const beschrieben. Kurz: #define: Der Compiler geht den gesamten Sketch in "Suchen/Ersetzen"-Manier durch, bevor das Programm in Maschinensprache übersetzt wird. const: Es wird eine (unveränderliche) Variable erzeugt (die dann auch einen Speicherplatz belegt), auf die das übersetzte Programm während der Ausführung zugreift. Zitat:Mir ist noch was aufgefallen: in dem "BME280 Sketch" gibt es einen LED Pin (const int ledPin_blau = 19) der sich per MQTT Subscribe AN und AUS schalten lässt. Das funktioniert auch gut. In der "zusammen gelegten Verion" ist es aber so das, wenn ich in Node-Red den Switch schalte dieser auch augenblicklich in MQTT.fx angezeit wird, es aber bis zum reagierender LED auf dem ESP32 bestimmt zwei,drei Sekunden dauert. Das ganze ist erst mal nebensächlich, ich wollte es nur erwähnt haben...Was sagt denn der Serielle Monitor? Wird da die Nachricht auch verzögert angezeigt? Möglicherweise blockiert auch der BLE-Scanner irgendwas (hab diesbezüglich aber nichts gefunden...). Dachte zuerst, dass es an den delays für das LED-Blinken liegt, aber das wird ja nur alle 1/10/15 Minuten ausgeführt. Delays solltest Du grundsätzlich im loop vermeiden, da der Prozessor in dem Moment nichts anderes macht, als warten bis die Zeit rum ist und alles andere blockiert. Des Weiteren ist mir aufgefallen, dass dein BLE Setup im WiFi_Setup gelandet ist. Funktioniert auch irgendwie, aber ich würde es ins normale Setup schreiben, bzw. in eine eigene Funktion, die im Setup aufgerufen wird. So, ich glaub, das wars erstmal ![]() Grüße Jan |
|||
02.01.2021, 00:32
Beitrag #19
|
|||
|
|||
RE: mehrere ESP`s mit Strom versorgen?
Moin,
(01.01.2021 23:41)nbk83 schrieb: Moin Steinspiel, Angesichts der späten Stunde erst mal ein großes Danke! Ist ja wirklich Super das Du so schnell Zeit gefunden hast für meinen Kram! Ich werde mich morgen ran setzen und versuchen alles zu berichtigen und dann Auskunft geben. Die erwähnte Code-Referenz von oben nehme ich jetzt mit in Bett... ![]() bis dann, Steinspiel |
|||
02.01.2021, 00:45
Beitrag #20
|
|||
|
|||
RE: mehrere ESP`s mit Strom versorgen?
Ich noch mal,
(01.01.2021 23:41)nbk83 schrieb: [...] Es hat mir doch keine Ruhe gelassen einfach so jetzt den Rechner runter zu fahren... ![]() Du scheinst Recht zu haben, in meinem original Sketch steht Code: PubSubClient mqtt(MQTT_server, 1883, wclient); und ich habe wieder was dazu gelernt, denn diese "MQTT Sache" ist das was mich im Moment an diesen µController`n sehr interessiert. Also, bis morgen dann... bis dann, Steinspiel |
|||
02.01.2021, 09:46
Beitrag #21
|
|||
|
|||
RE: mehrere ESP`s mit Strom versorgen?
(01.01.2021 23:41)nbk83 schrieb: #define: Der Compiler geht den gesamten Sketch in "Suchen/Ersetzen"-Manier durch, bevor das Programm in Maschinensprache übersetzt wird.Bist du dir sicher bezüglich Speicherplatz? Code: //#define ZAHL 34567 Hier hast du wohl recht. Code: //#define STR "Braucht_es_Speicherplatz_dafür!" Deshalb sollte man "constexpr" den Vorzug geben. Noch zu erwähnen, die Werte in geschweiften Klammern ermöglicht es dem Kompilier eine Überprüfung durchzuführen. Zitat:#define GANZZAHL 345.67Wird klaglos hingenommen! Zitat:constexpr int GANZZAHL {345.67};Mit Klammern meckert der Kompilier, sofern die Warnungen eingeschaltet sind. Gruß Fips Meine Esp8266 & ESP32 Projekte |
|||
02.01.2021, 13:54
Beitrag #22
|
|||
|
|||
RE: mehrere ESP`s mit Strom versorgen? | |||
02.01.2021, 19:23
Beitrag #23
|
|||
|
|||
RE: mehrere ESP`s mit Strom versorgen?
Moin,
(01.01.2021 23:41)nbk83 schrieb: Das stimmt. Du hast in Zeile 34 (PubSubClient client(espClient); ) "client" als deinen Postdienstleister ernannt, Ich habe es ums Verrecken nicht hinbekommen! Zig mal den "Postdienstleister" angepasst - es ging nicht! ![]() Dann habe ich die beiden Ur-Sketche genommen, die MQQT Parameter in jedem einzelnen so angepasst das alle Namen, Variablen(?) die mit MQTT zu tun hatten in beide Sketche gleich hießen und beide Sketche dann zusammengeführt. Und siehe da: es lief! :-) Zitat:Und hast Du in mqtt.fx die Topics einzeln angegeben oder eine Wildcard subscribed? wenn nicht, dann versuche das sonst mal Den MQTT.fx dient hier nur zur schnellen Kontrolle, "eigentlich" empfange ich die MQTT Daten mit Node-Red und werte sie dann aus. Da jeder (MQTT)-Node für nur einen Topic zuständig ist, habe ich keine Wildcard genommen. Zitat:Welches Buch hast Du denn? Das "Arduino Kompendium" von D.Schreiter, gehört wohl Standartmäßig zum Arduino Starter Kit... Zitat:[LED per MQTT Subscribe schalten] Schalte ich in Node-Red besagten Schalter (der dann einen MQTT Publish auslöst) so wird dieser auch umgehend in MQTT.fx angezeigt. Im seriellen Monitor kommt er meistens mit 4 - 8 Sekunden Verzögerung an, schaltet dann aber sofort. Eigentlich ist es zu 95% so das er verzögert schaltet. :-( Zitat:Delays solltest Du grundsätzlich im loop vermeiden Und kannst Du mir ne Möglichkeit zeigen womit ich das im Loop ersetzen könnte ? Code: digitalWrite(ledPin_gelb, HIGH); // sets the LED on Zitat:[Funktionen] Das wollte ich noch einmal fragen: Diese "Funktionen" sind das so etwas, was bei mir z.B. so aussieht? Code: setup_wifi(); Wenn ja, sind Namen und Positionen im Sketch frei wählbar? Zitat:So, ich glaub, das wars erstmal Sehr vielen Dank für Deine Hilfe! Wirklich, Du hast mir sehr geholfen und der ganze Nachmittag mit diesen beiden Sketchen hier, hat mir einiges gezeigt! Das mit dem Subsribe Topic werde ich aber weiter verfolgen... bis dann, Steinspiel |
|||
02.01.2021, 23:00
Beitrag #24
|
|||
|
|||
RE: mehrere ESP`s mit Strom versorgen?
Moin Steinspiel,
Zitat:Und siehe da: es lief! :-)Sehr schön! Jedes Neu-Tippen übt auch ![]() Zitat:habe ich keine Wildcard genommen.Das war eine Idee, um zu überprüfen, ob Du dich vielleicht nur beim Topic vertippt hast, da Du dann halt erst einmal alles mitschneidest. Ich selbst arbeite nicht mit mqtt.fx oder Node-Red, von daher kann es sein, dass auch mal eine doofe Nachfrage kommt ![]() Zitat:Im seriellen Monitor kommt er meistens mit 4 - 8 Sekunden Verzögerung an, schaltet dann aber sofort.Hmm, versuche mal die Scantime des Scanners runter zu setzen (wenn ich recht erinnere liegt die aktuell bei 8 Sekunden), und guck, ob sich das Verhalten ändert. Wenn ja, ist der Fehler zwar nicht behoben, aber zumindest eingegrenzt. Zitat:Und kannst Du mir ne Möglichkeit zeigen womit ich das im Loop ersetzen könnte ?Ja, könnte ich. Da haben sich andere aber schon viel Mühe mit gegeben. ![]() Zitat:Diese "Funktionen" sind das so etwas, was bei mir z.B. so aussieht?Genau. Die Funktionen, also z.B. void setup_wifi() {tu was}, kannst Du letztendlich überall außerhalb von anderen Funktionen hinschreiben. So wie es für Dich am übersichtlichsten ist. Der Aufruf, also setup_wifi(); kommt dann dahin, wo die Funktion ausgeführt werden soll. Bei den Namen bist Du völlig frei, es sei denn der wird schon anderweitig verwendet. Wenn Du deutsche Namen verwendest, bist Du eigentlich auf der sicheren Seite. Zitat:Das mit dem Subsribe Topic werde ich aber weiter verfolgen...??? Könntest Du nochmal eine aktuelle Version des Sketches posten. Grüße Jan |
|||
|
|
Möglicherweise verwandte Themen... | |||||
Thema: | Verfasser | Antworten: | Ansichten: | Letzter Beitrag | |
Mehrere EthernetClients/WiFiClients in verschiedenen Tasks? | miq19 | 15 | 1.356 |
07.10.2020 18:15 Letzter Beitrag: Tommy56 |
|
ESP32 Cam mehrere Clients | nbk83 | 3 | 1.322 |
29.04.2020 21:22 Letzter Beitrag: nbk83 |
|
Strom sparen bei ESPs im Batteriebetrieb | ardu_arne | 0 | 896 |
11.12.2019 20:47 Letzter Beitrag: ardu_arne |
|
Begrenzung 2048 Bytes: Wie mehrere Pakete? | GuaAck | 10 | 4.225 |
06.02.2018 17:12 Letzter Beitrag: GuaAck |
Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste