Posts by c-st


    DFH; zur Info:

    Bei mir hängen aktuell 8 Sensoren an einem chaotischen Kabelbaum von locker 30 Metern an EINEM GPIO -> Funzt schon zwei Jahre (deswegen wird auch nix an den verzwirbelten Drähten angerührt :D

    Genau, 1-wire läuft am Pi über GPIO 4 und ist ein Bus, da können einige DS1820 ran. Allerdings ist das bei dem Pi nur Software-emuliertes 1-wire, deshalb gibt es dort eine relativ niedrige maximale Anzahl an Sensoren (10 oder 16 glaube ich). Mehr geht nur mit echtem 1-wire, zB über einen Adapter der über I2C angeschlossen wird.

    Hast du denn eine Elektroik, die die Brushless Motoren ansteuert? Einfach Strom an zwei Kabel anlegen funktioniert da ja nicht. Evtl ist es einfacher einen Drehzahlsteller aus dem Modellbaubereich zu kaufen und den anzusteuern?

    Lieber Jar,
    Für parasitäre Versorgung brauchst du eine Art Treiber (Hardware) die dir den Pullup kurzfristig überbrückt, da dort sonst eine zu hohe Spannung abfällt (R=U/I etc...) und der Sensor nicht ausreichend versorgt wird. Die Ansteuerung dieses Treibers (man könnte wohl einen Transistor nehmen) ist im Kernel (essentieller Bestandteils des Betriebssystems deines RaspberryPi) nicht implementiert. 1wire wird (wenn ich mich jetzt nicht grob täusche) beim RPi über GPIO Pin 4 "simuliert". Das einfachste für dich wäre einen I2C to 1wire Baustein zu verwenden, zB den DS2482.

    Die Begrenzung auf 10 Sensoren läßt sich durch eine Erhöhung der max-Sensor-Anzahl im Treiber problemlos erhöhen. Strong-Pullup unterstützt der Treiber im Pi nicht und ohne den sind Messungen mit parasitärer Versorgung eher Schätzwerte.

    Ja, auf den nicht integrierten Strong Pullup wollte ich hinaus. Ich habe bei mir überlegt den zu basteln oder ... ich habe dann 3adriges Kabel genommen ;)

    Aber danke für die Info mit der Möglichkeit der Änderung der Sensoranzahl im Treiber.

    der läuft seit 1 Jahr bei mir absolut sicher :thumbs1:

    Ja, aber nicht auf den Raspberry Pi. Der Pi hat keinen 1wire Controller sondern macht das mit Software, deswegen gehen auch max 10 Sensoren am Bus und die parasitäre Versorgung macht manchmal Probleme. Für die parasitäre Versorgung soll man wohl einen Strong-Pullup integrieren oder einen I2C-1wire Controller verwenden.

    Dann füge ich hier den Code ein. Folgende PHP-Datei liegt als index in /var/www/, die lädt automatisch die erzeugten Bilder und aktualisiert sich nach fünf Minuten.

    Im Unterordner /var/www/temperature/ liegt das Script, welches alle fünf Minuten als Cronjob ausgeführt wird. Das Script ist für Python3 und stellt meinen ersten Versuch mit Python dar, Verbesserungsvorschläge sind willkommen! Ich habe meine Kommentare, auch was ich irgendwann noch hinzufügen will, mal drin gelassen. Ich hoffe es hilft.
    - Es wird, sofern noch nicht vorhanden, eine Datenbank für die angegebene Anzahl Sensoren erstellt.
    - Da ich manchmal Probleme beim Auslesen der Sensoren hatte (trat immer bei Last auf dem USB-Bus auf, zB wenn ein Paket heruntergeladen wird), werden diese bei Lesefehlern bis zu drei Mal ausgelesen, bis der CRC ok ist oder der Wert "U"nknown an die Datenbank gegeben wird.
    - Die RRD erwartet alle fünf Minuten neue Daten.
    - Das Intervall gibt den Zeitraum in Stunden an, für den die Grafiken erstellt werden.
    - Bei mehr oder weniger als vier Sensoren müssen die Zeilen bei rrd_graph angepasst werden.

    Ich habe mir ein Python Script gebastelt, welches bis zu 10 Sensoren abfragt, die Werte mit RRDTool speichert und Grafiken erstellt. Dieses Script lasse ich per Cronjob alle fünf Minuten laufen. Dazu habe ich mir ein PHP-Script zusammengeklaubt, welches die erzeugten Bilder nach Namen sortiert anzeigt und die geladene Seite alle fünf Minuten aktualisiert. Die Intervalle kannst du natürlich auch kürzer einstellen.
    Meine Programmierfähigkeiten sind sicher nur rudimentär, aber es funktioniert und wenn du interesse hast schicke ich es gerne zu!