Posts by bruzilla

    Bist du dir sicher, dass das Display auch richtig angeschlossen ist und SDA/SCL nicht vertauscht sind?

    Ziemlich sicher, es hat ja erst funktioniert und dann auf einmal nicht mehr ;(

    Am Anfang hatte ich die SDA/SCL vertauscht und dann noch dem falschen I2C zugeordnet, aber das hab ich mit Try and error herausbekommen.


    Code
    Found DS devices:  []
    I2C Addresses    : 
    I2C Configuration: I2C(1, freq=200000, scl=15, sda=14)
    Kein Display gefunden. Mache ohne Display weiter.
    Traceback (most recent call last):
      File "<stdin>", line 36, in <module>
      File "ds18x20.py", line 20, in convert_temp
      File "onewire.py", line 23, in reset
    OneWireError: 

    naja, da hab ich wohl ein größeres Problem <X

    display weg, one wire weg


    Hab jetzt auch andere Pins ausprobiert für den DS18B20, für das Display und für GND. Ich tippe auf die Spannung 8|

    Hallo liebe freunde der Sonne :)


    Ich hab zwar nur nen Temperatursensor an meinem Pico hängen, aber ich hoffe das der thread trotzdem passt. Nach längerem bsteln und probieren zeigte sich das gleiche Problem wie mit dem Zero, das kurze Kabel klappt, das lange nicht. Nun kam gestern ein neues Problem hinzu, ohne das ich was am Code geändert hatte. Erst der Code, dann die Fehlermeldung.

    Code
    Found DS devices:  []
    Traceback (most recent call last):
      File "<stdin>", line 20, in <module>
    IndexError: list index out of range

    Hat erst funktioniert, jetzt will es nicht mehr :denker:

    Jemand eine Idee??


    VG, bruzilla

    Na, die Variante sieht ja mal gut aus, aber morgen wird erstmal mit dem kurzen Kabel und nur 3,3V Bier gebraut, wahrscheinlich wird Montag mal die andere Variante ausprobiert. Ich halte euch auf dem laufenden!

    Auf dem Steckbrett hat nur die kurze Variante funktioniert, deswegen hatte ich jetzt alles fein schick als Stecker zusamengefriemelt und es will trotzdem nicht. Also, nur langes kabel nicht, kurzes (ca. 40cm) läuft ohne Probleme.

    Bernd666 : Das ist natürlich klar, irgendwie bin ich in meinem Kopf davon ausgegangen, das die Spannung über den Fühler und dann erst zum GPIO, aber der Wiederstand ganz unten macht da natürlich einen Strich durch die Rechnung. Mit dem Levelshifter hab ich mcih noch nciht beschäftigt, sieht aber an sich nach ner guten Variante aus, danke für den Tipp! Hast du damit schon Erfahrung??

    Habe bei mir DS18 mit Cat Kabel bis 12 m am laufen.

    Versuche doch mal dieses.

    Code
    sudo nano /boot/config.txt
    und
    dtoverlay=w1-gpio
    eingefügt.
    nach einem reboot, finde ich meinen Sensor.

    Cat kabel ist vielleicht ne Idee zum Verlängern. Ich hab das Produkt weiter vorn schonmal verlinkt, ist ein Wasserdichter Sensor, schon mit Kabel, knap 1m, 24awg, also 0,25mm², aber wie es scheint kein Kupfer, wahrschienlich Alu?

    Welche Leitung nimmst Du?


    Lutz

    sollte mit oben beantwortet sein, falls nicht, gibts mehr infos (würde dann einfach den Kommpletten Text auf dem Kabel präsentieren :daumendreh2: )


    5V hab ich mir auch schon überlegt, aber hab nur nen Raspi, also eigentlich mehrere 8o Hab in einem anderen Forum schon die Idee gefunden, bei längren Kabeln einfach von den 3,3V auf den 5V zu gehen, aber ich hab Angst, den Pi zu grillen. Wobei ich noch nen 1B habe, da wäre es schade, aber verkraftbar, da er eh nur herumliegt. Frage ist ja auch, ob der Pico das verträgt und man es da versucht, der soll ja eigentlich irgendwann die Aufgabe übernehmen.

    So, alle Klarheiten beseitigt :gk1:


    LG, bruzilla

    So, nach vielen Versuchen hab ich den Fühler mit dem noch langen Kabel immer nicht zum laufen gebracht. Mit unterschiedlichen Widerständen von 1K bis 5K und auch ohne bekomme ich den nicht dazu, mit dem Pi zu kommunizieren. Hab aber hier im Forum schon gelesen, dass das zum Teil an sehr langen Kabeln laufen soll. Irgendetwas mach ich falsch :-/

    else: update_display(display, "Lesefehler")

    Hallo Dennis :)

    Danke für die Mühen, ich hab leider jetzt erst Zeit gehabt, den Code zu Testen, schwangere Freundin und so :lol:

    Nicht erschrecken, aus irgendwelchen Gründen hat mein Zero erst den Lesefehler ausgespuckt, jetzt kommt die richtige T. Hab jetzt bei dem Code von Hyle noch an der Formatierung gefeilt, die Zeit udn die T kommen jetzt auf zwei Zeilen, Ziel ist es ja, unter Umständen ncoh einen zweiten Fühlen anzubauen. Das werde ich die Woche mal in Angriff nehmen und dann den Erfolg hier zeigen. UN din zwei Wochen erfolgt das Debut, da wird das erste mal mit dem Temperatursensor und dem Display gebraut. Ich werde berichten :cool:

    :danke_ATDE: an alle die hier geholfen haben!!!

    Änder bei dem Code in Zeile 5 mal das [tpos+2] in [tpos+5] und berichte dann nochmal.

    Ausgabe auf dem Display 6°C .


    das hab ich aus dem zweiten Vorschlag von ramageralf gemacht. Fehlercode:

    Code
    Traceback (most recent calls):
    File "/home/pi/Desktop/ramoled.py", line 45 in <module> 
        main()
    File "/home/pi/Desktop/ramoled.py", line 45 in in main
        update_display(display, temperature)
    File "/home/pi/Desktop/ramoled.py", line 45 in update_display
        draw.text((10, 20),f'{datetime.now().strftime("%H:%M:%S")} - {int(temperature)/1000}°C' ,fill="white",)
    TypeError: int() argument must be a string, a bytes-like object or a number, not NoneType'

    ayay, musste gerade alles von hand abtipen, weil ich den Fehlercode nicht über VNC kopieren konnte :/

    Es erfolgt eine Ausgabe auf dem OLED, die Zeit wird aktualisiert und es wird eine Temperatur angezeigt ...aber als 0,002°C. Wenn ich das /1000 rausnehme kommt +2. Wenn ich das [tpos+2] auf [tpos+3] änder, bekomme ich 3°C. Durch Handwärme erfolgt keine Änderung der t.


    ramageralf : dein Code gibt mir wunderschön einmal die T aus, als ordentlichen Wert. Ich versuch das mal in den Code zur Ausgabe auf dem OLED zu integrieren, im ersten Anlauf hab ich Mist gebaut.

    So, jetzt bin ich 'erst' dazu gekommen


    Traceback (most recent call last):

    File "/home/pi/Desktop/TtoOled.py", line 37, in <module>

    main()

    File "/home/pi/Desktop/TtoOled.py", line 32, in main

    update_display(display, temperature)

    File "/home/pi/Desktop/TtoOled.py", line 20, in update_display

    draw.text((10, 20),f'{datetime.now().strftime("%H:%M:%S")} - {int(temperature) / 1000}°C',fill="white",)

    ValueError: invalid literal for int() with base 10: '41 01 4b 46 7f ff 0c 10 ff : crc=ff YES\n'