ESP und Reisemonitor

  • Hallo in die Runde,

    wo fange ich nun am Besten an, um nicht alles doppelt zu schreiben ? Also entschuldigt bitte wenn es jetzt vielleicht etwas durcheinander zugeht. Aber ich versuche auf alle Fragen einzugehen.

    keine Ahnung in welcher Sprache du den ESP32 programmieren möchtest,

    Bis jetzt habe ich meine ersten Versuche in Mircopythen gemacht. Dazu habe ich diese Anleitung, und diesen Code für das Display genutzt. Das erst einmal zur Frage betreffend der Programmiersprache. Diese Nachbauten sowihl von Hr. Kainka, wie auch Hr. Witt habe ich nur den fertigen Code genutzt. Von diesen beiden Programmiersprachen, wohl Basecom, und C habe ich so gut wie keine Erfahrung, oder praktische Übung damit.

    Für den ESP32 gelten die gleichen Bedenken die der Autor zu den verwendeten Arduino Nano hat. Dazu kommt noch, das das WLan-Modul im ESP32 schlecht abgeschaltet werden kann. Strombedarf.

    Das Thema Strombedarf ist noch Ergebnisoffen, da ich bis jetzt diese DIY Schaltung noch nicht mit dem ESP zum laufen bekommen habe. Damit ist jetzt auch noch bicht vorherbestimmbar, wie groß die Akkukapazität sein müsste.

    Ja zu deiner Aussage bei dem AVR bleiben, denkbar ist das schon. Nur wäre ich dann wieder bei dem Problem, wie änderte man den Basecom Code für einen anderen AVR so ab, dass dieser dann sowohl eine Balkenanzeige wie auch den Blitzblinker, und ein akustisches Signal abgeben kann. Zudem dann noch mit dem ESP kommuniziert ? Benötige ich dann einen Portexpander, oder sollte man einen AVR verwenden, welcher über ausreichend Pins verfügt ?

    WLAN Webausgabe über das ESP für die Daten des Gewitterwarners habe ich nicht vorgesehen.

    Mhm, hat der ESP32 nicht einen RTC-Timer?!?

    Ich verstehe jetzt die Zusammenhäne nicht so ganz ? Falls es weiter helfen würde, so ein Teil habe ich auch noch, bzw. müßte ein zweites beschaffen. Dieses Funkuhrmodul werkelt zur Zeit in meiner Großanzeigen Stubenuhr, mit Raumtemperaturabhängigen Farbwahl. Es war aber auch schon:

    Natürlich ist das ein interessantes Projekt, wenn man selber bauen möchte. Aber dann würde ich denke ich auf jeden Fall noch ein GPS Modul vorsehen.

    Nur welches ist - ich habe keine großen Erfahrungen, nicht nur Stromsparend, sondern auch noch bezahlbar ?

    Irgendjemand hat den Raspberry Pi Pico ins Spiel gebraucht, der aber wegen fehlende WLan abgelehnt wurde.

    Seit neuesten gibt es den Pico MIT WLan.

    Was ist hier nun der groß Unterschied zwischen einem ESP32 mit WLAN und dem PICO mit WLAN ? ist hier die softwaregesteuerte Abschaltung des WLANs einfacher umzusetzen ?

    Der von mir vorgeschlagene Controller hat einen IRQ-Pin, aber die Reichweite war ja nicht groß genug.

    Der Arduino Nano müsste folgendes machen:

    Bei einem Ereignis die gelesenen ADC-Werte im RAM zwischenspeichern
    Die zwischengespeicherte Werte z.B. via tty zur Verfügung stellen
    Trigger-Pin beim Ereignis auf High ziehen, der den ESP32 aufweckt
    ESP32 holt sich die Daten, startet z.B. einen Webserver und stell sie bereit. Ggf. kann er die Daten auch irgendwo hin senden, sofern ein offenes WLAN zur Verfügung steht.

    Von einem dauerhaften Betrieb des Modems (Wlan/BT) sollte man absehen, da das die Stromfresser sind.

    Ja das ist einfach so. Wenn man als ängstliche Familie einen Badetag an einem Tümpel macht, oder die Ruderpartie auf dem Schloßteich nicht in einem Fiasko enden soll, kann man mit diesen 40km Detektionsreichweiten arbeiten. Nur mal falls es nicht klar wird, ist man zB in den Bergen, auch dem Gebirgsvorland unterwegs, und die nächste Hütte oder was auch immer als Unterkriechstelle ist noch fußläufig 1 1/2 Stunden entfernt, und man weiss wie schnell sich Gewitterfronten in den Bergen bewegen ( 50 - 180 Kmh je nach Wolkenhöhe ) sind 40 km einfach zu wenig. Damit ist das Thema Fertigsensor von der Stange vom Tisch und nicht verhandelbar.
    Ich verstehe auch nicht warum du jetzt ständig einen WEB-Server ins Gespräch bringst ? Wozu frage ich mich ? In dem Display ist ein SD Card Reader / Writer enthalten, also könnte man zumindest erst einmal theoretisch den Touren-Log dort ablegen. Ich brauche kein WEB-Server weil ich weder ein Smartphone, noch eine Tablet mitschleppe.
    Die WLAN Connectivität ist nur dafür, und das erst einmal gedanklich vorgesehen, um sich in Reichweite eines zugänglichen WLANs nur die Wettervorherrsagen der kommenden Tage abzuholen. Darüber soll nichts rein gar nichts ausgegeben werden.

    Steffen

    Steffen.

  • Moin!

    Ich vermute das alle Mitlesende und Aktive dieses Threads so langsam die Übersicht verloren haben!

    Darum mein Vorschlag. Du fasst in einem Beitrag mal alles zusammen was für Funktionen dein Wunschgerät habe soll.

    Wichtig dabei ist, glaube ich, was zwingend wie und wie lange funktionieren soll.

    Beispiel:

    Wird der Gewitterwarner bei Beginn der Wanderung eingeschaltet und bleibt es auch, solange du unterwegs bist.

    Oder wird er nur Eingeschaltet wenn dir das Wetter komisch vorkommt .

    Wie und wann sollen Lichtsignale und Tongeber was machen .

    Wofür sollen WLan und ein Display dienen? Willst du sie gezielt ein- und ausschalten?

    WLan: wie soll man das erforderliche Passwort eingegeben werden?

    Du siehst es ist vieles unklar oder über mehrere Beiträge verteilt.

    Im Geschäftlichen würde man von einem Pflichtenheft sprechen.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Ich verstehe auch nicht warum du jetzt ständig einen WEB-Server ins Gespräch bringst ? Wozu frage ich mich ? In dem Display ist ein SD Card Reader / Writer enthalten, also könnte man zumindest erst einmal theoretisch den Touren-Log dort ablegen. Ich brauche kein WEB-Server weil ich weder ein Smartphone, noch eine Tablet mitschleppe.
    Die WLAN Connectivität ist nur dafür, und das erst einmal gedanklich vorgesehen, um sich in Reichweite eines zugänglichen WLANs nur die Wettervorherrsagen der kommenden Tage abzuholen. Darüber soll nichts rein gar nichts ausgegeben werden.

    Und genau da ist das Problem. Wie bekommst du die Zugangsdaten für die zukünftige optionale WLAN-Verbindung in den Controller rein?

    Das ist ein sogar Touch-Display? Dann brauchst du keinen Webserver und kannst die Zugangsdaten direkt übers Display eingeben.

    In dem Thread habe ich 2 gefunden:

    Damit du meinen Gedankengang verstehst, wieso ich permanent mit dem Webserver um die Ecke komme:

    • Controller wird aktiviert und versucht sich mit dem Hotspot zu verbinden, der als letztes eingestellt worden ist.
    • Falls noch keiner eingetragen war oder der gewünschte WLAN-Hotspot nicht verfügbar ist, WLAN als AccessPoint starten
    • Über die eingebaute Website WLANs scannen, auswählen, passwort eintragen, verbinden
    • AccessPoint wird wieder beendet und der Controller verbindet sich mit dem WLAN

    Zu diesem Thema gibt es auch ein paar Projekte. Aber das würde entfallen, wenn du zukünftig einplanst, das über das Touch-Display einzugeben. Ohne Touch-Display wirst du dann zusätzliche GPIOs benötigen, um ein paar Knöpfe zur Eingabe zur Verfügung zu stellen.

    Zitat

    In dem Display ist ein SD Card Reader / Writer enthalten, also könnte man zumindest erst einmal theoretisch den Touren-Log dort ablegen.


    Ja, das geht. Display (ILI9341 240x320) und die SD-Karte nutzen beide SPI. Die sind 2 getrennte SPI.

    Für BASCOM gibt Funktionen, mit denen man auf die SD-Karte zugreifen kann: http://staff.ltam.lu/feljc/electron…n_Low_Level.pdf

    Aber in dem Beispiel konnte ich nichts von einem Dateisystem entdecken (FAT32). Sieht so aus, als ob in dem Beispiel direkt auf die Karte ohne darunterliegendes Dateisystem geschrieben wird. Es gibt noch eine Biliothek für Fat16/32: https://avrhelp.mcselec.com/index.html?avr_dos_file_system.htm

  • Hallo,

    Weil ich euch wirklich für die bisherigen Rückmeldungen sehr dankbar bin habe ich eine ganze Weile gebraucht und überlegt wie ich diesen Artikel aufbaue, und darlege, um die Fragen auch von Bernd666 zu beantwortenversuche ich es mal mit Stichpunkten, in Funktionsgruppen unterteilt, mit deren ON/OFF, ihrer Fuunktionsbeschreibung so genau wie möglich, und meinen Ideen oder Vorstellungen einer Umsetzung.

    - Der ganze Kasten hat einen Akku mit einem Ladeanschluss ( Akkukapazität noch vollständig offen ).
    - der "autonome Gewitterwarner"

    -> über einen Schiebeschalter oder ähnlichen, jedoch rastend soll dieser aktiviert werden.

    -> Welcher Mikrocontroller nun diese Aufgabe übernimmt ist noch vollständig Ergebnisoffen.
    - die Grundfunktion, sofern kein GPS Modul verwendet wird, soll Timergesteuert, diese Einschaltkalibrierung = Anpassung an den Rauschlevel stündlich wiederholt werden. Dazu habe ich bei Herrn Keinka die Information eingeholt, dass dieses BASCOM Programm am Anfang die PWM Verstärkerreglung für den TDA7642 hochfährt, bis der Rauschanteil am Ausgang zu einer Signalauslösung führt, und dann wieder heruntergefahren zu werden. Das soll der Feststellung des örtlich gegebenen Hintergrundrauschens diesen. ( So habe ich das verstanden - dass sollten Sprachkunde von Basecom jedoch selber erkennen können)

    -> Dann soll diese Routine als Dauerschleife laufen, und der Akku soll dafür für mind. 36 Stunden Dauerbetrieb zureichen.

    -> die Auswertung bzw. die Ausgabe soll über einen 10 LEDs umfassende Balkenanzeige erfolgen. Dabei soll immer nur eine LED leuchten, bzw gar keine wenn es zu keiner Blitzerfassung gekommen ist. Dieser Leuchtbalken soll somit als Entfernungsindikator dienen.

    -> Weiterhin soll über eine DUO LED Rot/Grün eine Blitzdetektion in Form ein kurzen grünen LED aufblitzen angezeigt werden, bzw bei einer Annäherung auf die Hälfte gemäß Balkenanzeige, die Biltzfarge auf Rot wechseln, und die Anzahl der Darstellungsimpulse jetzt als roter Blitz entsprechend erhöht werden. zB Entfenrung lauf Balken 50% ein kurzer roter Blitzer, bei vollen 100% drei Rote längere LED Blitze.

    -> ab ca. 50 km Entfernungserfassung ( ca. 8 oder 9te LED Balken ) soll auch noch ein akustisches Signal ausgegeben werden, das bei absoluter Gewitternähe vollen 100% der optischen Alarmstufe ein Wiederholender akustischer Ton ausgegeben wird.

    -> Alle Gewitter denen man näher als 50-80km gekommen ist, sollen entweder über einen Zeit- oder Positionsstempel protokolliert werden. Am besten auf einer SD Karte oder dem interen Flash Speicher der Mikrokontroller-Platine ( ESP32 alternativ PICO oder PICO W )

    - der Umweltsensor:

    -> Dieser soll auf Tastendruck angefragt und auf dem Display dargestellt werden. Nach ca. 30 sek. soll das Display wieder abgeschaltet werden.

    - eine Datenaufzeichnung habe ich erst einmal nicht vorgesehen.

    -> im Zusammenhang mit der Sensordatenanzeige soll im Hintergrund ein WLAN Netzwerkscan durchgeführt werden. Also nur wenn das Display durch den Bediener bewusst zugeschaltet wird, soll ein Symbol oder so etwas erscheinen ob eines der schon gespeicherten WLAN Netzwerke erreichbar sind, bzw ob neu WLAN Netzwerke verfügbar sind.

    -> jetzt muss das wohl etwas genauer formulieren.
    Ab und an kommt man doch mal wieder bei der selben Unterkunft an, oder vorbei, so er gespeichert egal ob jetzt SD oder Flash, eien Liste der WLAN Netzwerke anlegen, und speichern in die man sich schon eingewählt hat, inkl. des WLAN Passwort.
    Ich versuche es mal so, weil ich noch nicht weiß oder entscheiden habe, ob ich eine GPS Modul verwenden werden, war mein Idee folgende: Während des Einschaltens zum Reisebeginn ist die temporäre SSID Liste noch leer. Damit muss auch nicht nach einem WLAN Netzwerk , parallel zur Gewitterortung, gescannt werden. Ist einmal noch innerhalb dieser mind. 36h Einschaltphase, die jedoch durch nachladen beliebig verlängert werden kann, ein WLAN Erfasst und die Zugangsdaten eingegeben worden, wird dieses wenn nicht schon vorhanden, dieser WLAN Liste hinzugefügt, und in einem 2-5 Min Rythmus nach diesem gesannt sobald das Display sich wieder abgeschaltet hat, und das via der zweiten DUO LED angezeigt.
    Während des Display ON Modus , in der Grunddarstellung der Sensorwerte, dachte ich an einen Displaybutton, den man Anwählen kann, um in das WLAN Menü zu gelangen. Hier werden dann einem die WLANs aufgelistet, die man darüber auswählen kann, und ggf einem eine Verbindung angeboten ( Sortierung nach ganz oben ) wenn dieses schon bekannt ist. Mit dieser Verbindung hergestellt wurde ggf auch durch Displayeingabe des Zugangspasswortes , sollen diese Daten aktuellen in die temporäre Liste übernommen werden, nach der dann zukünftig regelmäßig gescannt werden soll, und nur via LED angezeigt werden soll.
    Dabei sollte im Hintergrund, und hier habe ich noch gar keinen Lösungsansatz bei einem Online Wetterdienst die Wettervorhersage der kommenden 3-5 Tage abgerufen und zwischengespeichert werden. Dazu wäre dann ein neuer Displaybutton sinnvoll, über den man dann zu diesen Daten gelangt.
    Dann noch diese Funktion, was wahrscheinlich eine RTC, oder diesen Zeitfunkempfänger , bzw ein GPS Modul notwendig macht, soll nach 48 Stunden im Falle der permanenten Nichterreichbarkeit des Netzwerks in der temporären WLAN Liste gelöscht werden, und weitere Scans nach diesen eingestellt werden.

    Das ist jetzt erst einmal der gesamte Funktionsumfang mit den angedachten Erweiterungen, so wie ich mir den Umgang damit konzeptionell vorstelle.
    Ich möchte an dieser Stelle noch einmal darauf hinweisen, dass ist jetzt noch die Findungsphase, welche Hardware man überhaupt benötigen würde, wer welche Aufgaben übernehmen würde, falls mehrere dieser Mikrokontroller zum Einsatz kommen.
    Und dann natürlich noch die Frage wie setzte ich das überhaupt auf der Hardware Ebene um, dazu schon die Fragen aus #22 bezüglich der Anzahl der benötigten GPIOs zur Ansteuerung des Displays mit CardReader, des Gewitterwarners als Sensoreinheit mit min. zwei GPIOs für die Sensoreinheit, den GPIOs für die optische und akkustische Signalisierung, sowie für mögliche Zusatzmodule wie Funkuhr-Empfänger oder GPS Modul.

    Daher noch einmal die Frage direkt gestellt, wer kenn ein relativ günstiges GPS Modul, mit einem moderaten Stromverbrauch ? Und welche Erfahrunsgwerte habt ihr damit.

    Bernd666 & @DeaD_EyE ich hoffe ich konnte euch eure Nachfragen entsprechend umfangreich beantworten.

    Danke noch einmal für die bisherige Unterstützung

    Steffen

    Steffen.

  • Moin SteffenMurks,

    danke für deine Zusammenfassung.

    Ich bin der Meinung das du dich nun mal an die Arbeit machen solltest. Einfach einen µC nehmen, der das entsprechende Python kann, und anfangen. Am Besten mit der Kernfunktion Gewitterwarner und den gewünschten optischen und akustischen Signalen.

    Dann hast du schon mal einen Überblick wie groß der Speicherbedarf wird und wieviel GPIO-Pins benötigt werden.

    Nun sollte der Umweltsensor und das Display dazu kommen usw.

    Viel Spaß dabei. Nicht ironisch gemeint!!!

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Hallo, und morgen Bernd666,

    bezogen auf deine letzte Antwort, nochmals danle dafür habe ich nun di ersten 2 Probleme, wo ich jetzt schon in der ersten Umsetzungskriese feststecke.
    Aber erst einmal ein Zwischenbericht. Den Sensor auszulesen udn 3 Zeilig auf diesem Touch-Display für Quer aber ohne die Touchfunkztion zu nutzen hab eich mir aus den schon genannten Bibliotheken zurechtgefrimelt. Es ist vielleicht nicht der schönste oder optimale Code aber das Problem will mal noch hinten anstellen. Es funktioniert erst einmal.
    Jetzt habe ich schon angefangen mit der PWM herumzu probieren, aber hier stoße sowohl Mangels der Kenntniss dieser BASCOm Programmiersprache, wie auch bei der Protierung der Angaben auf erste Probleme.
    Wenn ich die PWm Taktfrequenz auf 1000 Hz setze und über einen Counter in einer While-Schliefe diesen hochzählen lasse, bis am Eingang ein HIGH Signal getriggert wird, entspricht das etwa dem u16-Value Wert von 930. also 930/65535 !?
    Wenn ich dann den Eingangswert habe aber diese Schwelle um 50 reduzieren soll, wie es bei der AGC gemacht wird, dann reagiert das Teil auf alles.
    Irgendwie komme ich das Programm für ATTiny13 in Basom

    nicht passend nach Python übersetzt. Daher hatte ich hier schon danach gefragt, wer mir dieses Programm ggf nach Python, µPython übersetzen könnte.

    Danke

    Steffen

    Steffen.

  • ich denke das sollte deinen Wünschen fast entsprechen,

    ESP32

    TFT für Daten (den gibts auch etwas größer und + oder mit touch, ich hatte da mal einen für den Arduino)

  • Moin SteffenMurks,

    nun wäre noch ein Schaltplan interessant. Link reicht.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Hallo Bernd666

    Da es auf der Seite - ja auf der gleichen Webseite - mehrere Schaltplanvarianten gibt, habe ich dir gleich mal die herausgezogen, die ich aufgebaut habe.
    Was hier PB0 entspricht, wäre mein PWM Ausgang, sowie PB1 der Eingang.
    Ich betreibe die Schaltung über einen separaten 3,3 V Stromkreis, was nach Aussage von Hern Kainka jedoch keinen Funktionseinfluß hätte weil diese automatische Regulierung zum Programmstart eine variable oder schwanlkende Eingangsspannung kompensieren würde.

    Nochmal Danke für deine tolle Unterstützung.

    PS: Ich bin jetzt ( heute ) wieder bis Sonntag Mittag außer Haus. Also nicht wundern, wenn ich nicht gleich antworten werde.

    Steffen

    Steffen.

  • Moin SteffenMurks,

    es wäre mir ganz lieb, wenn du den Link zu den Schaltplan mal posten würdest. Dann hat man alle Informationen.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Moin SteffenMurks,

    danke für den Link. Da sich noch niemand gemeldet hat, gehe ich davon aus, das niemand Lust/Zeit oder Kenntnis hat um ein Bascomcode in xyz-Python zu übersetzen.

    Bei Gelegenheit werde ich aus den Informationen versuchen den Programmablauf zu beschreiben.

    Den Code entwickeln musst aber du!!

    Bis dahin...

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Okay, folgendes ist mit Vorsicht zu geniessen, da ich weder wirklich Ahnung von dem Tiny13 habe für den das BASCOM-Programm ist, noch von BASCOM selbst. Hier wäre meine Interpretation von dem Programm in Python mit `gpiozero`:

    “Dawn, n.: The time when men of reason go to bed.” — Ambrose Bierce, “The Devil's Dictionary”

  • Hallo __blackjack__,

    Entschuldigung, für meine verpätete Rückmeldung. Ich war mal wieder im verlängerten Wochenende ;)

    Danke für diese Interpretation. Dann werde ich mich mal an die Übersetzung in µPython machen, und zum nachfolgenden Test auf die nächste Schlechtwetterfront hoffen.

    Wenn ich zu einem Ergebnis gekommen bin, werde ich berichten. Vielleicht ist diese Schaltung von B.Kainka auch für andere User interessant !? Bezüglich der Empfindlichkeit hat diese Schaltung entscheidende Vorteile gegenüber den Fertig-Lighting-Sensor.
    Herzu sei nur so viel gesagt, bzw. erwähnt, das Gewitter, bzw. die Blitzentstehung in Höhen von 8 bis 12 km Statfindet.

    Steffen.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!