Hilfe bei Thonny Python datetime aufrufen

  • Hallo, vorweg bin Anfänger aber alt (71 Jahre) also bitte meine Frage nicht übel nehmen!

    folgendes Problem:

    from datetime import date

    today = date.today()

    print(today)

    Wenn ich Programm starte, kommt dies Fehlermeldung:

    Traceback (most recent call last):

    File "<stdin>", line 3, in <module>

    ImportError: no module named 'date'

    Meiner Meinung nach habe ich das Modul installiert: (siehe Anlage)

    Habe als Interpreter unter Optionen MicroPython(Raspberry Pico) eingestellt

    Sicherlich mal wieder ein Denkfehler bei mir.

    Gruß Kalus

  • Hallo und danke für die Antwort.

    Muß ich mal sehen wie ich klar komme.

    Will zu bestimmten, vorgegeben Zeiten meine Bewässerungsanlage aktivieren.

    Mit normale Pi kein Problem.

    Gruß Kalus

  • Guten Morgen,

    Will zu bestimmten, vorgegeben Zeiten meine Bewässerungsanlage aktivieren.

    ist das alles oder hat der Pico über den Tag verteilt noch mehrere Aufgaben?

    So wie ich das verstehe, kannst du auf dem Pico nicht das aktuelle Datum plus Uhrzeit auslesen. Wo soll er die auch hernehmen. Ein Auszug aus der MicroPython-Doku:

    Maintaining actual calendar date/time: This requires a Real Time Clock (RTC).

    Du könntest den Pico an eine Zeitschaltuhr hängen und zur einer bestimmten Uhrzeit wird er gestartet. Von da an kannst du ihn Aufgaben in definierten Zeit-Intervallen ausführen lassen und Abends nimmt die Zeitschaltuhr im wieder den Strom.

    Das ist natürlich abhängig von den Aufgaben die der Pico übernehmen soll. Vielleicht kannst du dein ganzes Projekt kurz beschreiben?

    Alternativ müsstest du dich nach einer Real-Time-Clock umschauen und die informieren, wie man die auf dem Pico zum laufen bekommt.

    Grüße

    Dennis

    🎧 With the music execution and the talk of revolution, it bleeds in me and it goes 🎧

  • Ich habe ein ähnliches Problem. Ich möchte folgendes Programm verwenden:

    https://github.com/GianniDPC/HTU21D_MicroPython

    Es geht in diesem Beispiel darum einen Temperatur / Luftfeuchtesensor an den Pico anzubinden. Ich habe lediglich in der htu21d.py die Ports für SDL und SCL an den Pico angepasst. Danach sowohl die htu21d.py als auch die main.py über Thony auf den Pico gespeichert. Auch bei mir werden die eigenen Module nicht erkannt. Im Internet gibt es noch mehr Projekte, bei denen eigene Module aufgerufen werden. Auch für den Pico.

    zum Beispiel:

    Instructables.com

    gibt es noch irgend eine Einstellung die noch ausfüren muss, damit eigene Module laufen?

  • Datei: htu21d.py

    in Zeile 105:

    scl=9, sda=8,

    Fehlermeldung beim Start von main.py:

    Traceback (most recent call last):

    File "<stdin>", line 1, in <module>

    ImportError: no module named 'htu21d'

    Das sieht für mich so aus, als ob er die Datei htu21d.py nicht als Modul einbindet.

  • Hallo,

    8 ist Ground https://datasheets.raspberrypi.com/pico/Pico-R3-A4-Pinout.pdf :conf:

    Sollte aber mit deiner Fehlermeldung nichts zu tun haben. Also wenn du die Datei als htu21d.py gespeichert hast, sehe ich keinen Grund warum es nicht geht. Ich hatte damit noch nie Probleme.

    Du kannst nach dem speichern den Pico nochmal abstecken und dann erneut versuchen die 'main.py' laufen zu lassen.

    Ansonsten kann ich das gerade leider nicht nachstellen. Sorry.

    Grüße

    Dennis

    🎧 With the music execution and the talk of revolution, it bleeds in me and it goes 🎧

  • Ich nutze seit ca. 12 Jahren Python und muss bei MicroPython regelmäßig im Code nachsehen, da die Dokumentation teilweise falsch ist.

    Alles, was sich z.B. im Modul machine befindet, kann sich von Board zu Board unterscheiden.


    Andere bekannte Python-Module wie z.B. datetime gibt es auch als MicroPython-Version:

    Das nächste Problem ist, dass machine.RTC kein alarm unterstützt. Sonst könnte man den Alarm setzen und den Mikrocontroller dann in den deepsleep (geringster Stromverbrauch) versetzen. In der Doku steht die Methode aber beschrieben :-/

    Man könnte sich dann aus einer Kombination von datetime und deepsleep sich diese Funktionalität programmieren.

    Mittels Thonny kann man die Bibliotheken übertragen: Menu Extras -> Verwalte Pakete -> (oben steht das Zielgerät + Port) -> Suche: micropython-datatetime -> auswählen und dann installieren. Wenn ich das mit meinem ESP32 ohne SPIRAM mache, bekomme ich einen MemoryError. Wenn ich das Modul mit in die Firmware packe, geht es aber.

    Hier der Code zum Schlafen mit deutscher Zeitzone. Möglicherweise ist noch die Berechnung nicht ganz richtig.

    Den Wechsel von Winterzeit -> Sommerzeit ist nicht ganz einfach, da die Uhr dann um eine Stunde zurückgestellt wird und der Zeitpunkt dann zweimal vorkommt. Einmal in der Winterzeit und einmal in der Sommerzeit.

    Wenn der RP Pico seine Uhrzeit noch behalten soll, wäre ein eigener RTC recht nützlich: https://www.amazon.de/gp/product/B01M2B7HQB?tag=psblog-21 [Anzeige]

    Das gleiche Modell habe ich am ESP32 getestet.

    Bezüglich des HTU21D-Sensors:

    Das Modul kann z.B. in /lib gespeichert werden. Dann kann man es auch importieren. Der RPi Pico (RP2040) hat 2 I2C Kanäle, die auf den GPIO-Pins beliebig zugewiesen werden können. Nicht alle Boards können das und ohne die Angabe der Pins sollte die Standard-Konfiguration für das entsprechende Board verwendet werden. Beim ESP32 sind die Standardbelegung anders als bei einem RP2040 oder STM32.

  • Erst einmal Danke für Eure Antworten.

    Das Modul kann z.B. in /lib gespeichert werden. Dann kann man es auch importieren. Der RPi Pico (RP2040) hat 2 I2C Kanäle, die auf den GPIO-Pins beliebig zugewiesen werden können. Nicht alle Boards können das und ohne die Angabe der Pins sollte die Standard-Konfiguration für das entsprechende Board verwendet werden. Beim ESP32 sind die Standardbelegung anders als bei einem RP2040 oder STM32.

    habe ich eben versucht:

    • mit Thonny speichern unter und ein Verzeichnis lib erzeugt
    • die htu21d.py in das Verzeichnis auf den Pico geschrieben
    • main.py auf dem pico gestartet
    • Fehlermeldung beim Start von main.py:
      Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: no module named 'htu21d'
  • Hallo,

    du gehst in Thonny auf File -> Open wählst dann den 'MicroPython Device' aus und dort solltest du die gewünschte Datei mit einem Rechtsklick löschen können.

    Schau dir mal die Anleitung an, den Anfang mit Thonny installieren kannst du ja überspringen:

    https://microcontrollerslab.com/getting-starte…-esp32-esp8266/

    Grüße

    Dennis

    🎧 With the music execution and the talk of revolution, it bleeds in me and it goes 🎧

  • Hallo Dennis

    Danke,

    dann werde ich den ganzen Kram noch einmal löschen und dann die Firmware neu aufspielen.

    wenn andere Module einbinden können, sollte das doch bei mir auch gehen.

    Gruß Hendrik

  • Fehlermeldung beim Start von main.py:
    Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: no module named 'htu21d'

    Die Datei ist wirklich in /lib und heißt htu21d.py? Groß-/Kleinschreibung wird auch unterschieden.

    Sie kann/darf sich auch im Hauptverzeichnis befinden, aber besser ist /lib, um die Übersicht zu behalten.

    Auf der linken unteren Seite kannst du den Inhalt des Flash-Speichers sehen. Falls dort nichts angezeigt wird, einmal das Modul mit dem Knopf neu starten.

    Wichtig ist aber auch, dass du den richtigen seriellen Port einstellst und natürlich auch die Art des Mikrocontrollers. Der Link den Dennis gepostet hat, verweist darauf.

  • Tja, ich hab den Sensor nicht...

    Ich habe mal für den RP Pico ein aktuelles Image aus dem Master erstellt und die Module datetime und htu21d hinzugefügt (frozen).

    Jedenfalls ist das Image nicht für den Produktiveinsatz geeignet.

    Die Datei muss vorher mit bzip2 dekomprimiert werden.

  • Wichtig ist aber auch, dass du den richtigen seriellen Port einstellst und natürlich auch die Art des Mikrocontrollers. Der Link den Dennis gepostet hat, verweist darauf.

    ja. Sonst würde ich nicht auf den Pico zugreifen können. Thony fragt beim speichern der Datei ob in auf den Pico oder PC speichern möchte. Auch erscheind im Meldungsfenster unten das Micro Python des Pico als Interpreter

  • Ich habe mal ein kleines Programm zum scan des Pico I2C Buses geschrieben

    #-----------------------------------------------------------------------------------------
    # I2C Bus scannen
    #
    #
    #verwendete Hardware:
    #Pico und Grove Module
    #I2C(0) mit SDA an GP 8 und SCL an GP 9
    #
    #hw@soft 2022/05
    #-----------------------------------------------------------------------------------------
    from machine import Pin,I2C
    import utime

    i2c = machine.I2C(0, scl=Pin(9), sda=Pin(8), freq=100000)

    print("i2c Adresse: ", i2c.scan())

  • läuft mit der org Firmware.

    1. alle Dateien auf dem Pico gelöscht
    2. Firmware noch einmal von der Hompage geladen
    3. Taster auf dem Pico gedrückt und an den Raspberry angeschlossen
    4. Firmware neu hochgeladen
    5. Thony gestartet und ein Verzeichnis /lib erstellt
    6. darin die htu21d.py über Thony abgespeichert
    7. das main.py Programm in das Hauptverzeichnis des Pico gespeichert
    8. anschließend main in Thony gestartet

    Nachdem dieses Programm im ersten Versuch nicht eingebunden hatte, habe ich das Programm von Instructables.com über thonny auf den Pico geladen. Auch hier bekam ich die Fehlermeldung, dass die Module nicht vorhanden sind.

    Nun können diese Module auch eingebunden werden.

    Danke an alle für Eure Hilfe

Jetzt mitmachen!

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