Beiträge von Der Hobbyelektroniker

    Hallo Denis,


    da gibt es viele Möglichkeiten. Die millis() vom System solltest du nicht zurückstellen. Stattdessen kannst du eigene millis() programmieren. Hier ein Beispiel:



    timer.mils() gibt die Anzahl Millisekunden seit dem letzten Reset zurück.

    Ich hoffe, dass du das so ähnlich in deinem Projekt umsetzen kannst.


    Gruss

    René

    Hallo Jürgen,


    das ist leider nicht so einfach, wenn Du noch keine Erfahrung mit Python 3 und Pycharm hast. Ich kann die einzelnen Schritte nur kurz ansprechen.


    Es muss eine aktuelle Version von Python auf Deinem Computer installiert sein (python.org). Aktuell ist momentan 3.12.

    Dann erstellst Du in Pycharm ein neues Projekt mit einem virtuellen Environment (venv).

    In Pycharm kannst du in 'Python Packages' nach FastAPI suchen und dieses installieren. Zusätzlich brauchst Du noch das Package uvicorn.


    Dein FastAPI - Programm kannst Du dann direkt im Projektverzeichnis schreiben.

    Zum Ausführen musst Du das Terminal in Pycharm öffnen und dort 'uvicorn rpAPI:app --reload' eingeben.

    In diesem Fall müsste Deine Datei rpAPI.py heissen.


    FastAPI kann ganz schön kompliziert werden. Wenn Du Dich näher damit beschäftigen möchtest, findest Du auf Youtube viele Einsteigertutorials.



    Gruss

    René

    Hallo Daniel


    Die Videoreihe zur Micropython - Programmierung basiert auf dem Heltec - Board. Selbstverständlich funktionieren auch andere ESP32 - Boards. Erfahrene Arduino - Benutzer kommen damit wahrscheinlich klar. Ein Einsteiger wird aber Mühe haben, die Beispiele nachzuvollziehen.


    Gruss

    René

    Guten Morgen Felix,

    leider wird das schwierig sein. Bereits zwischen Version 1 und 2 gab es Differenzen. Diese verlangen aber nur wenige Anpassungen. Leider hat bei V3 auch die Version des ESP-Chips geändert, so dass weitere Probleme entstehen. Möglicherweise gibt es noch Händler auf ebay oder aliexpress, die Altbestände haben. Leider spezifizieren die Händler in den Beschreibungen das oft nicht genau und ob die Bilder der tatsächlich gelieferten Version entspechen, ist auch nicht sicher. Du musst auf jeden Fall aufpassen, dass du keine Lora - Version erwischt.


    Gruss

    René

    Hallo zusammen


    Für Osterwünsche bin ich wohl etwas zu spät. Ich hoffe aber, dass ihr alle schöne Tage erleben durftet.

    Bei dieser Gelegenheit möchte ich mich bei allen bedanken, die dieses Forum durch ihre Beiträge am Leben erhalten. Besonders freut mich der freundliche und respektvolle Umgangston.


    Die hier verwendete Forensoftware ist etwas veraltet und ich sollte dringend ein Update durchführen. Leider ist es ein grosser Sprung, so dass dabei auch etwas schief gehen könnte. Es wird sicher einen kleinen Unterbruch geben, da die Datenbankstruktur ändert und neue PHP und MySQL Versionen zum Einsatz kommen.. Ich werde das aber frühzeitig ankündigen.


    Gruss

    René

    Hallo Herbert,


    eigentlich müsste es so funktionieren. Gemäss Datenblatt von Heltec für die LoRa - Version sollte das mit dem WiFi - Kit übereinstimmen.

    Im angehängten ZIP-File findest du die Dateien OLEDTest.py und ssd1306.py, die ich verwende.


    ssd1306.py muss zwingend auf das Board kopiert werden. Bei OLEDTest.py ist es egal, ob Thonny die Datei vom Board oder vom Computer aus startet.


    Gruss

    René

    Dateien

    • V3Test.zip

      (3,42 kB, 4 Mal heruntergeladen, zuletzt: )

    Hallo Achim,

    inzwischen habe ich ein V3 - Board erhalten und gleich einen ersten Test gemacht. Heltec ist da etwas mühsam. Bereits beim Wechsel von V1 auf V2 hat es Probleme gegeben. In V3 hat es nochmals einige Änderungen gegeben. Immerhin konnte ich nach Anpassung von 3 Pinnummern etwas auf dem OLED darstellen.


    Oled Test


    Sehr mühsam ist auch das Flashen. Mit Thonny funktioniert es momentan nicht.

    Im Beitrag von Thomas siehst Du wie es geht.


    Flashen von V3


    Gruss

    René

    Hallo Thomas


    Das V3 - Board ist angekommen und ich habe gleich einen Test mit dem OLED gemacht. Es müssen nur die 3 Pins abgepasst werden.


    IMG_0577.jpg


    Viele Grüsse

    René

    Wenn mein vorheriger Vorschlag funktioniert, kannst du einen Schritt weiter gehen. Der Taster soll abwechslungsweise einschalten oder ausschalten. Mach dir im ersten Schritt keine grossen Gedanken über die Entprellung. Das kann auch noch später hinzugefügt werden. Du hast delay(500) in deiner neuen lauflicht() - Funktion bereits eliminiert. In der Tasterabfrage habe ich einen kleinen delay(30) eingebaut. Das sollte nicht stören, aber den Taster bereits recht gut entprellen.


    Das Ein- und Ausschalten sollte jetzt funktionieren. Allerdings nur, wenn ich keinen Fehler gemacht habe.


    In der Funktion lauflicht() kann ich keine Schleife finden. Du solltest da wieder rauskommen. Allerdings hast du eine Verzögerung von 500 ms. Du bleibst daher bei jedem Durchlauf für eine Sekunde in lauflicht() gefangen.


    Ich empfehle dir einen einfachen Test. Ändere loop() wie folgt ab:

    Code
    1. void loop() {
    2. if digitalRead(taster_pin) {
    3. lauflicht();
    4. }
    5. }

    Jetzt sollte das Lauflicht auf den Taster reagieren. Der Taster muss dabei dauernd gedrückt oder dauernd nicht gedrückt sein. Ob das Lauflicht läuft oder steht, hängt von der Beschaltung von Pin12 und dem Taster ab. Die Reaktion des Lauflichts erfolgt immer mit einer halben Sekunde Verzögerung.


    Gruss

    René

    Hallo Beduino


    So richtig begriffen habe ich nicht, wie dein Programm funktionieren soll.


    Die Funktion lauflicht() ist klar, sie führt jeweils den nächsten Schritt im Lauflicht durch. Das geschieht aber nur, wenn LED_state == HIGH ist.


    LED_state wird in der Funktion Taster1() gesetzt. Vermutlich soll bei jeder Betätigung des Tasters der Zustand von LED_state gewechselt werden. Die Verzögerung soll der Entprellung des Tasters dienen.


    Sehe ich das soweit richtig?


    Was macht das Programm momentan? Läuft das Lauflicht und lässt es sich nicht mehr abschalten oder läuft das Lauflicht gar nicht?


    Weiter habe ich noch eine Frage zur Verdrahtung. Der Taster ist an Pin 12 angeschlossen. Mit was ist Pin 12 verbunden, wenn der Taster gedrückt ist und wo mit, wenn er nicht gedrückt ist?


    Gruss

    René

    Hallo Konrad,

    vielen Dank für den Hinweis. Diesen Webservice kannte ich noch nicht. Damit ist dein Problem vermutlich gelöst. Du kannst zwar nicht direkt auf eine Webseite zugreifen, die auf dem Pico gespeichert ist. Da du aber damit direkt vom Pico Daten anfordern kannst, solltest du diese auch auf deiner Homepage anzeigen können.

    Ich habe den Service nur schnell ohne Pico getestet, er hat perfekt funktioniert. Den Zugriff auf den Pico werde ich in den nächsten Tagen testen.


    Gruss

    René

    Hallo Konrad,

    das lässt sich nicht so einfach beantworten, da es sehr stark davon abhängt, was du machen möchtest. Wenn deine Homepage aus normalem HTML und Javascript - Code besteht, kann die Homepage nicht selbst auf den Pico W zugreifen. Der Zugriff erfolgt dann durch den Browser des Betrachters.


    Wenn du für deine Homepage eine echte Webapplikation hast, dann sollte das Backend auch direkt auf den Pico W zugreifen können. Wie, hängt dann aber sehr stark von den Details deiner Applikation ab.


    Im Video habe ich nur dir Grundlagen gezeigt. Für eine echte Anwendung, die über lokale Kommunikation hinaus geht, brauchst du eine exakte Planung des Gesamtprojektes und solide Kenntnisse in Webprogrammierung.


    Gruss

    René