Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ausgabe des ermittelten Messwerts über freie UART weil keine WLAN-Verbindung möglich #512

Closed
demmy03 opened this issue Jan 3, 2022 · 8 comments

Comments

@demmy03
Copy link

demmy03 commented Jan 3, 2022

Hallo zusammen,

zunächst einmal finde ich das Projekt richtig super! Vielen Dank dafür an den/die Entwickler.

Ich habe folgendes Problem:

An meinem Aufstellungs-/Verwendungsort ist es leider nicht möglich eine WLAN-Verbindung vom ESP mit dem Hausnetz aufzubauen und die Daten/den Messwert über MQTT abzufragen.

Daher nun die Frage, wäre es evtl. möglich, den zuletzt erfolgreich ermittelten Messwert, zyklisch (z.B. alle 5s), zusätzlich über eine freie UART (idealerweise nicht die Programmierschnittstelle) auszugeben? Ich habe an meiner Gebäudeleittechnik beispielsweise noch eine serielle Schnittstelle frei und man könnte so, ohne großen Aufwand, auch ohne WLAN-Verbindung auf die Messwerte zugreifen.

Was natürlich für die Parametrierung noch von Vorteil wäre ist, wenn man den ESP in so einem Fall als Accesspoint verwenden könnte.

Vielen Dank und viele Grüße

@jomjol
Copy link
Owner

jomjol commented Jan 3, 2022

Vielen Dank für das Feedback.
Leider sind nur noch zwei freie GPIOs verfügbar (GPIO12/13), davon wird einer für die Ansteuerung der externen LEDs benötigt.
Daher gibt es nicht genügend freie GPIOs für eine externe Kommunikationsschnittstelle, außer den Programmier-GPIOs. Da aber auch kein JTAG Debugger anschließbar ist, benötige ich diese für das Debugging und will sie nicht für die Kommunikation verwenden.
An dem Port kannst du natürlich auch lauschen und die Daten entsprechend filtern. Man könnte dort ein eindeutiges TAG verwenden, was die Messwerte kennzeichnet, dann könntest du den Rest ignorieren. Wäre aber ein bisschen Aufwand.

Da es leider die "die Entwickler", sondern nur "den einen Entwickler" gibt, sind meine Ressourcen etwas begrenzt. Im Moment bekomme ich zwischen 50 und 100 eMail am Tag, da gerade jemand wieder mein Projekt in einem Youtube-Channel vorgestellt hat.

Das freut mich natürlich, aber allein das Beantworten der Issues und Fragen braucht aktuell ziemlich Zeit.

Beste Grüße,
jomjol

@demmy03
Copy link
Author

demmy03 commented Jan 3, 2022

Hi,
danke für deine schnelle Rückmeldung.

Wow, echt alle 38 Pins des ESP32 sind in Verwendung?
Oder meinst du es sind nur noch die zwei Pins frei (GPIO12/13), die bei dem Cam-Board auf Pinheader geführt sind?

Wenn ich dich richtig verstanden habe, wäre deine Idee, auf der UART0, welche du als Debugging-Schnittstelle verwendest (und natürlich zum Programmieren),
die Messwerte mit einen Tag/Identifier in deinen Diagnosedaten auszugeben? ​
Sowas wäre für mich natürlich auch in Ordnung. Im Prinzip würde es sogar ausreichen wenn der Messwert nur einmalig nach dem Triggern eines Bildes und der Auswertung
des Ergebnisses auf die Schnittstelle geschrieben wird. Wenn du eine entsprechende Kennung für den Messwert vergeben hast könnte man dann den Datenstrom entsprechend parsen.

Ein anderer Vorschlag wäre noch von mir, da du ja physikalisch nur noch einen Pin zur Verfügung hast und wir ja auch nicht schreibend auf den ESP zugreifen wollen,
sondern nur lesend, nur diesen einen Pin über eine Software-Uart als TxD zu verwenden.
Da die Kommunikation in der UART immer Masse bezogen ist, benötigt man den RxD nicht. Also vorausgesetzt du würdest diesen einen Pin dafür opfern wollen. ;-)

Das du mit Anfragen bombardiert wirst kann ich mir gut vorstellen, es ist ja auch ein super Projekt mit viel Potential!! Ich sehe das jetzt auch nicht als Prio 1 auf deiner Liste.
Außer du kannst das natürlich irgendwie mit geringem Aufwand minimalistischste einfließen lassen.

Ansonsten kann man dir irgendwie behilflich sein um dich etwas zu entlasten und dir Zeit zu verschaffen am eigentlichen Projekt zu Arbeiten?

Viele Grüße

@jomjol
Copy link
Owner

jomjol commented Jan 4, 2022

Das Thema ist nicht, dass alle PINs belegt sind, sondern dass auf dem ESP32-CAM nur noch die beiden freien GPIO12/13 zugänglich sind. Es hat halt nur zwei Steckerleisten á 8 Pins.

Ich übernehme die Idee in den langzeit Ideenspeichen und schließe ihn.

Grundsätzlich ist die Variante mit Tag/Identifier am einfachsten umsetzbar, da der GPIO13 ja auch von anderen über die MQTT-Schnittstelle für andere Ansteuerungen verwendet werden kann. Zudem eine TX Schnittstelle mit nur einem Kabel und ohne RX, dann doch zu mehr Verwirrung führen würde.

@jomjol jomjol closed this as completed Jan 4, 2022
@labmaster
Copy link

Ich finde das Projekt auch genial und war extrem überrascht das sowas mit einem ESP32 möglich ist. Hut ab.

Da eine Wasserzähler ja häufig im Keller zu finden ist und man dort selten brauchbares WLAN hat, ist die Idee mit einem seriellen Ausgang wirklich sehr sinnvoll.
Ich stehe vor dem selben Problem bezüglich des WLANs ausserdem bin ich allgemein ein Verfechter des Vermeidens von Funkverbindungen dort wo sie nicht mobil benötigt werden. Der Wasserzähler ist stationär und somit gehört wenn er, wenn möglich per Kabel angebunden.

Ich denke auch, daß ein serieller TX hierfür vollkommen ausreichendi st, eine Rückverbindung benötigt man nicht. "Fire and forget"
In meinem Fall würde ich damit in ein Arduino Board mit KNX Bussankoppler gehen der mit das dann auf KNX umsetzt wo dann auch der Strom für den Arduino (20mA@5V) und das ESP32CAM Board (130mA@3.3V) herkommen soll. (ca. 20mA@28V von KNX)

Beste Grüße und Danke für so ein tolles Projekt,
Walter

@Waschtli
Copy link

Hallo,

wie vor einer Weile schon mal geschrieben, bin ich von dem Projekt wirklich begeistert. Meine erste Installation hörte irgendwann einfach auf und ich habe es noch mal neu aufgesetzt und nun läuft es wieder :-).
Was mir aber etwas fehlt ist die Möglichkeit, den Messwert kabelgebunden zu bekommen. Eigentlich wäre ein LAN perfekt, aber auch eine andere serielle Kommunikation des Messwertes wäre für mich in Ordnung. Dazu habe ich schon mal ander Seriellen Schnittstelle glauscht, aber da ist sehr viel Kommunikation, die über den Messwert hinaus geht. Ich hatte gedacht, das mit einem Arduino zu filtern, was ihn aber überfordert. Daher sehe ich aktuell drei Optionen:

  1. Eine Einstellung in der Konfiguration, die die Serielle Ausgabe auf den Messwert oder "error" beschränkt, Damit könnte man einfach einen Arduino als Protokoll-Konverter füttern, der den Messwert dann per LAN an einen MQTT-Server oder per RS485 an ein Mysensors-Gatway weiter gibt.
  2. Tunnelung der Seriellen Daten über LAN und die Dekodierung auf einem leistungsfähigerem SBC, z.B. Raspberry,
  3. Vielleicht gibt es einen SPI-Bus auf dem Board, der als Anschluß für eine externen LAN-Anschluß verwendbar wäre?
    Variante 1 wäre aus meiner Sicht am einfachsten durch ein kleines Stück Software zu realisieren, auch wenn ich dazu nicht in der Lage bin.

Viele Grüße und Danke für das tolle Projekt.

Waschtl

@jomjol
Copy link
Owner

jomjol commented Feb 28, 2023

Hi Waschtl,

ein Arduino dürfte da eigentlich nicht überfordert sein. Denn die Übertragungsrate ist bei 115200 baud und der Arduino müsste eigentlich nur auf bestimmte Schlagworte hören. Das würde ich weiterverfolgen.

Gruß,
jomjol

@Waschtli
Copy link

Waschtli commented Mar 6, 2023

Hallo jomjol,

danke für die prompte Antwort. Das werde ich mal weiter verfolgen. Ich habe da ein paar Ansätze mit Streams von Strings gesehen, die vielversprechend sind (https://arduinogetstarted.com/de/reference/arduino-stream). Dauert bei mir aber...

Viele Grüße

Waschtl

@thoath2
Copy link

thoath2 commented Jun 13, 2023

Hallo jomjol,
ich will auch noch mal auf das WLAN-Thema eingehen. Ich habe das tolle Projekt am Wochenende ausprobiert. Nach etwas basteln (die Ziffern wurden nicht gleich erkannt) konnte ich dem Gerät dann exakte Werte entnehmen. Vielen Dank für Deine Energie, die Du in das Projekt gesteckt hast.
Das Problem war allerdings, dass die WLAN-Verbindung nur zustande kam, wenn ich den WLAN-Router 3 Meter neben den ESP gestellt habe. Nur dann kam eine zuverlässige Verbindung zustande. Ich versuche es noch einmal mit einer externen Antenne. Aber eigentlich will ich - wie labmaster auch - den WLAN-Verkehr, dort wo es nicht nötig erscheint, minimieren und würde mich über eine kabelgebunde Möglichkeit des Auslesens freuen (LAN, USB, seriell).
Gäbe es evtl. andere ESPs, oder Zusatzsteckeinheiten, die das könnten?
Viele Grüße
Thomas

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants