AM2315: Github und google code archiv- Verzweiflung

  • Hi zusammen,
    ich versuche momentan einen AM2315 -Sensor zum laufen zu kriegen und halte mich hierfür am folgendes Tutorial:
    http://sopwith.ismellsmoke.net/wp-content/upl…w-To-AM2315.pdf

    Das Problem ist Punkt 20 in dem ich über den clone-befehl den folgenden teil importieren soll:
    git clone https://code.google.com/p/am2315-python-api/
    Es funtkioniert einfach nicht:
    fatal:https:.../refs not valid: is this a git repository?

    ich weiss beim besten Willen nicht was ich hiebei tun kann :( Wieso klappt das nicht?

    wenn ich den link direkt besuche komm ich zwar auf ne Seite mit vielen Codes unter sources, weiss aber überhautpt nicht was ich hier tun soll... :@
    https://code.google.com/archive/p/am2315-python-api/

    Ich hab mit git Null Erfahrung und Durchblick leider...

  • AM2315: Github und google code archiv- Verzweiflung? Schau mal ob du hier fündig wirst!

  • Probier einfach einmal, den Source manuell herunter zu laden (die Adresse von git... mit einem Browser aufrufen -> source -> source -> Download the code for this repo).

    Ausserdem solltest Du aufpassen, die Anleitung ist aus dem Jahr 2014 und muss nicht unbedingt noch immer richtig sein.

    Anfragen ausserhalb des Forums (Mail o.ä.) werden ignoriert!

  • Hallo,

    ich bekomme es leider nicht zum laufen

    Code
    root@rpi3:/usr/local/lib/python3.4/dist-packages# python3 AM2315.py
    Traceback (most recent call last):
      File "AM2315.py", line 2, in <module>
        import quick2wire.i2c as i2c
    ImportError: No module named 'quick2wire'
    root@rpi3:/usr/local/lib/python3.4/dist-packages#

    Hab jetzt schon alles Mögliche ausprobiert um quick2wire zu installieren, aber es will einfach nicht.

    Kann mir bitte jemand helfen?

    Irgendwo habe ich gelesen das man in der /etc/profile

    Code
    export QUICK2WIRE_API_HOME=/home/pi/quick2wire-python-api
    export PYTHONPATH=$PYTHONPATH:$QUICK2WIRE_API_HOME

    eintragen soll damit es gefunden wird. Das brachte aber leider auch nichts.

    EDIT:

    Jetzt hat's doch irgendwie geklappt mit der Installation.

    Nur wenn ich jetzt "python3 AM2315.py" eingebe passiert nichts :(

    Einmal editiert, zuletzt von Sylvia (14. März 2018 um 16:56)

  • Hallo Franzel,

    Code
    pi@rpi3:/usr/local/lib/python3.4/dist-packages $ sudo python AM2315.py
    Traceback (most recent call last):
      File "AM2315.py", line 2, in <module>
        import quick2wire.i2c as i2c
    ImportError: No module named quick2wire.i2c
    pi@rpi3:/usr/local/lib/python3.4/dist-packages $
    Code
    pi@rpi3:/usr/local/lib/python3.4/dist-packages $ sudo python3 AM2315.py
    pi@rpi3:/usr/local/lib/python3.4/dist-packages $

    das kommt dabei raus.

    Gruß

    Sylvia

  • In der AM2315.py steht

    hoffe ich habe alles richtig kopiert

    Das mit dem Fehler ...äh ...kapier grad nix ...sorry

  • hoffe ich habe alles richtig kopiert

    Klar passiert da nix, ist ja nur die Definition einer Klasse und ein paar Konstanten drin... wo ist der Code denn her? Da müsste es doch ne Doku zu geben.

    Das mit dem Fehler ...äh ...kapier grad nix ...sorry

    Du kannst dich zum besseren Verständnis mal zum Importsystem von Python schlau machen... da gibts nämlich ein paar Fallstricke.

  • Nichts für ungut, vielleicht fängst du mal mit ein paar Python-Basics an.

    Das gezeigte Beispiel ist aus einer Python Shell. Das in ein lauffähiges Script zu verwandeln sollte keine Schwierigkeit sein!

    Alle Zeilen, die mit >>> (der Vollständigkeit halber: und mit ...) anfangen sind Eingaben des Users. Alle anderen Ausgabe. Gibt eine Funktion None zurück, erfolgt keine Ausgabe, sondern es geht direkt zum Prompt (>>>).

    Also: Eine Datei, z.B. script.py öffnen:

    Code
    import AM2315
    
    sensor = AM2315()
    print('Temperatur: {0} °C\nLuftfeuchtigkeit: {1} %'.format(sensor.temperature(), sensor.humidity()))

    Dann ausführen:

    Code
    $ python3 script.py
    Temperatur: XX.X °C
    Luftfeuchtigkeit: XX.X %
    $

    Das wäre ein absolutes Minimalbeispiel.

    Aber wie gesagt, ich weiß nicht, bei welchem Wissensstand du dich befindest, aber je nach Vorhaben wäre eine Einarbeitung IMHO nötig.

  • Danke linusg

    Code
    pi@rpi3:/usr/local/lib/python3.4/dist-packages $ sudo nano AM2315-Abfrage.py
    pi@rpi3:/usr/local/lib/python3.4/dist-packages $ sudo python3 AM2315-Abfrage.py
    Traceback (most recent call last):
      File "AM2315-Abfrage.py", line 2, in <module>
        sensor = AM2315()
    TypeError: 'module' object is not callable
    pi@rpi3:/usr/local/lib/python3.4/dist-packages $

    Ich habe noch nie was in Python gemacht. Ich verstehe ein kleines bischen einfaches HTML und noch weniger Php ...das ist alles. Ob ich mit knapp 46 Jahren noch eine Programmiersprache lernen soll/kann ...ich weiß nicht.

  • Ach Mist, da ist das Beispiel aus dem Readme falsch. Ich hab das blind übernommen und erweitert. Muss natürlich sensor = AM2315.AM2315() heißen. Das erste ist das Modul (was eigentlich klein geschrieben werden sollte), das nach dem Punkt die Klasse.

    Ob ich mit knapp 46 Jahren noch eine Programmiersprache lernen soll/kann ...ich weiß nicht.

    Klar, wenn du Lust und Zeit hast und glaubst, du hast Spaß dran :)

  • Mit klein schreiben funktioniert nicht

    Code
    pi@rpi3:/usr/local/lib/python3.4/dist-packages $ sudo python3 AM2315-Abfrage.py
    Traceback (most recent call last):
      File "AM2315-Abfrage.py", line 2, in <module>
        sensor = am2315.AM2315()
    NameError: name 'am2315' is not defined
    pi@rpi3:/usr/local/lib/python3.4/dist-packages $

    Bei Großschreibung passiert folgendes

    Aber der Sensor 5c ist da

    hmmm ...ich habe schon den Amateurfunk und ein bischen Elektronik basteln als Hobby

  • Mit klein schreiben funktioniert nicht

    Das ist hier theoretischer Natur ;)

    Es gibt eine Konvention, dass Klassen Groß geschrieben werden, damit man sie schnell unterscheiden kann. Per Konvention hätten die entwickler den Namen der Datei klein schreiben müssen, dann hätte das so geklappt. Ist hier aber technisch gesehen egal.

    Bei Großschreibung passiert folgendes

    Vermutlich gibt es bei dir nur /dev/i2c-1? (ls -l /dev/i2c-*)

    Die Klasse ist diesbezüglich schlecht programmiert. Es wird wohl das der I2C-Bus mit der Nummer 0 als default-Wert genommen, aber keine Möglichkeit gegeben, das zu ändern. Stammt wohl aus frühen Pi-Tagen, ich meine mich zu erinnern, dass da i2c-0 hieß...

    Wenn man mal in den Sourcecode der verwendeten Bibliothek schaut: https://github.com/quick2wire/qui…wire/i2c.py#L13

    ...sieht man, dass durchaus auch eine 1 in Betracht gezogen wird.

    Ich würde das so abändern:

    Die ganzen stilistischen Änderungen, die eigentlich dringend notwendig wären, spare ich mir mal :shy:

    Dann sensor = AM2315.AM2315(1)

    PS: den Bindestrich im Dateinamen würde ich durch einen Unterstrich ersetzen. So wie du es jetzt verwendest geht das zwar, aber als Modulname ist der Dateiname ungültig.

  • Code
    pi@rpi3:/usr/local/lib/python3.4/dist-packages $ ls -l /dev/i2c-*
    crw-rw---- 1 root i2c 89, 1 Mär 14 16:22 /dev/i2c-1
    pi@rpi3:/usr/local/lib/python3.4/dist-packages $

    Da ist irgendwo noch ein Fehler mit dem falschen Device drinn

Jetzt mitmachen!

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