![]() |
USB-Datenlogger TFD 128 am Linux-Rechnervon Prof. Jürgen Plate |
Der Temperatur-Feuchte-Datenlogger 128 von ELV (erhältlich auch bei Conrad)
dient der elektronischen Überwachung von Temperatur und Feuchtigkeit.
Das Gerät speichert dabei regelmäßig die Daten. Falls Batterien eingebaut sind,
geschiet das auch unabhängig vom Computer. Anschließend können die gesammelten
Daten am PC abgerufen und weiterverarbeitet werden.
Messbereich Temperatur: | -20 °C bis + 80 °C |
Auflösung/Toleranz: | 0,1 °C/± 0,8 °C |
Messbereich Luftfeuchte: | 0 bis 99 % |
Auflösung/Toleranz: | 1 %/± 5 % |
Aufzeichnungsdauer nur Temperatur: | 5-Minuten-Intervall 227 Tage 1-Minuten-Intervall 45 Tage |
Aufzeichnungsdauer Temperatur und Feuchte: | 5-Minuten-Intervall 151 Tage 1-Minuten-Intervall 30 Tage |
Spannungsversorgung: | Batterie 3 x LR44; USB: 5 V/max. 50 mA |
Masse (B x H x T): | 58 x 24 x 46,5 mm |
Im Mai 2013 schreibt ein ELV-Kunde im Forum
auf der Webseite von ELV:
Auslesen der Daten unter Linux
von steffu » 13.05.2013, 14:19
Guten Tag
ich arbeite seit Jahren nur noch mit Linux. Ist das Auslesen der Daten damit auch möglich?
Gibt es irgendwo eine Dokumentation der Kommunikation über USB? Protkoll?
Danke für die Antwort und freundliche Grüsse.
Die Antwort von ELV darauf:
AW: Auslesen der Daten unter Linux
von Michael Sandhorst (Technik) » 13.05.2013, 19:42
Hallo steffu,
für den TFD128 USB-Temperatur-Feuchte-Datenlogger steht ausschließlich eine
Windows-Software zur Verfügung. Eine Schnittstellendokumentation können wir
Ihnen leider nicht anbieten.
Wir bedauern Ihnen keine andere Mitteilung machen zu können.
Dem Fragenden kann hier geholfen werden. Immerhin gibt es das Gerät schon über 10 Jahre.
Der Logger besteht aus einem Mikrocontroller, der die Sensordaten des Temperatur-Feuchtesensors
vom Typ SHT abfragt und speichert sowie über die serielle Schnittstelle mit einem seriell-zu-USB-Wandler
von FTDI die Verbindung zum PC herstellt. Was bedeutet, dass die Linux-Software nur
auf eine pseudo-seriellen Schnittstelle (/dev/ttyUSBxx zugreifen muss.
Das geht in C, Perl, Python und fast jeder anderen Programmiersprache.
Unter Linux kann daher der Standard-FTDI-Treiber (ftdi_sio.ko) eingesetzt werden. Um das Gerät ansprechen zu können müssen noch folgende Einträge vorgenommen werden:
alias usb:v0403pE0ECd*dc*dsc*dp*ic*isc*ip* ftdi_sio options ftdi_sio vendor=0x0403 product=0xe0ec
SUBSYSTEM=="usb_device", ACTION=="add", ATTRS{product}=="ELV TFD 128", RUN+="/sbin/modprobe ftdi_sio" KERNEL=="ttyUSB*", ATTRS{product}=="ELV TFD 128", SYMLINK+="tfd128"
Als Betriebsanzeige besitzt der Datenlogger eine LED, die folgende Zustände signalisieren kann:
LED | Betriebszustand |
---|---|
blinkt alle 4 s 1x | Messung (bei Batterie- und USB-Betrieb) |
blinkt alle 4 s 2x | keine Messung - Batteriespannung in Ordnung |
blinkt alle 4 s 3x | keine Messung - Batteriespannung zu niedrig |
leuchtet dauerhaft | Gerät am USB angeschlossen, keine Messung |
leuchtet nach dem Einschalten 0,5 s | normale Funktion |
blinkt nach dem Einschalten für 2,5 s | Sensor-Fehler |
Das verwendete Protokoll ist relativ einfach gehalten. Der PC sendet eine Kommandofolge an den Logger, worauf dieser mit den gewünschten Daten antwortet. Dabei werden folgende ASCII-Steuerzeichen verwendet:
STX => 0x02 /* Start Uebertragung */ ETX => 0x03 /* Ende Uebertragung */ ENQ => 0x05 /* Kommando-Anforderung */ ACK => 0x06 /* Kommando erfolgreich */ NAK => 0x15 /* Fehler */
Da alle Daten binär übertragen werden, ist gegebenenfalls eine Umcodierung der Zeichen STX, ETX oder ENQ vor dem Senden (bzw. in umgekehrter Richtung nach dem Empfang) nötig. Das entsprechende Zeichen c wird durch eine 2-Byte-Sequenz der Form <ENQ> <c+0x80> ersetzt.
Alle Kommandos haben den folgenden Aufbau:
Es werden folgende Kommandos vom Gerät unterstützt:
Andreas Engel (Link siehe unten) hat eine Kommandozeilen-Software für den TFD 128 in Python geschrieben. Die Software ist ideal für die automatische Auswertung per Script. Für die grafische Aufbereitung können dann Tools wie rrdtool oder gnuplot dienen. Aktuell wird an dieser Stelle die Version 2.1.1 beschrieben, die neueste Version finden Sie auf der Webseite von Andreas Engel.
Die Bedienung ist sehr einfach. Um beispielsweise das Logging zu starten, z. B. mit einem 5-Minuten-Intervall, gibt man folgendes Kommando:
./tfd128_cli.py --start --interval 1 --mode thDas Logging wird angehalten mit:
./tfd128_cli.py --stopDie Daten lassen sich dann mit dem folgenden Kommando auf eine Datei namens data ausgeben:
./tfd128_cli.py --dump-values --output dataMan kann sich auch gleich die Daten schön formatieren lassen, etwa:
./tfd128_cli.py --dump-values --output data --data-fmt 'Temp. %t °, rel. Feuchte %h %'Noch ein Tipp: Damit das Programm nicht möglicherweise hängt, wenn der TFD 128 gar nicht angesteckt ist, kann man vorher die Existenz des Device-Files abfragen. Die folgende Befehlssequenz macht genau eine Messung und gibt das Ergebnis aus, wobei hier die Kurzformen der Parameter verwendet wurden:
if [ -c /dev/tfd128 ] # device bereit then ./tfd128_cli.py -S -m th -i 1 # Messung starten sleep 5 ./tfd128_cli.py -E # Messung benden # Daten ausgeben ./tfd128_cli.py -r -o - --data-fmt 'Temp. %t °, rel. Feuchte %h %p' else echo "" fiDer sleep-Befehl dient eher der Beruhigung des Programmierers. Man sieht auch, dass bei der Angabe von "-" als Ausgabedatei auf die Standardausgabe geschrieben wird.
Im Folgenden werden alle Optionen der Version 2.1.1 kurz beschrieben. Sie werden auch aufgelistet, wenn man das Programm mit dem Parameter "--help" aufruft.
%c | Laufende Nummer des Datensatzes, beginnend bei 0 |
%d | Datum und Uhrzeit (Format siehe --time-fmt) |
%t | Temperaturwert |
%h | Feuchtewert |
%p | wird durch ein %-Zeichen ersetzt |
Der Einbau der Knopfzellen ist etwas trickreich - nein, eigentlich eher das Öffen des Loggers.
Wenn man herausbekommen hat, wie der Schiebeverschluß funktioniert (siehe Bild), kann man den Logger
öffnen und dann die die Platine herausnehmen. Nun lassen sich die Knopfzellen vom Typ LR44 einsetzen.
Dann die Platine wieder in den oberen Gehäuseteil einsetzen und das Gehäuse in umgekehrter Reihenfolge
zusammenbauen. Die Batterien werden nur gebraucht, wenn der Logger autark - also ohne angeschlossenen
Computer - betrieben werden soll. Hängt das Gerät an der USB-Schnittstelle, wird es komplett vom
PC aus versorgt.