Der USB-Stick USB9097 mit zwei One-Wire Klinkenstecker Anschlüssen (3,5mm – 5v – Data – GND).
Der USB-Stick ist ein kostengünstiger Busmaster (DS2480B) mit USB-Serial-Adapter (CH341) für USB Bus (2.0) mit Konverter Chip CH341 im syncronen seriellen (SCL, SDA) Modus.
Er wird vollständig von OWFS unterstützt (… aber als serieller Busmaster S9097U-Type mit USB Port!).
Was muss getan werden um einen One-Wire Temperatursensor DS18B20 anzuschließen und die Temperatur auszugeben?
Folgende Package installieren und reboot.
opkg update
opkg install kmod-usb-serial-ch341 kmod-usb-serial
opkg install owfs owhttpd owshell owserver
OWFS wird dann in der Version 2.8p13-1 installiert, es gibt aber schon 2.9.p1 wer die haben will, muss das Package selbst compilieren und installieren.
Ein Verzeichnis erstellen:
mkdir /mnt/1wire
USB-Stick anstecken und Kernel-Meldungen checken mit dmesg ob er erkannt wurde:
dmesg
Ausgabe ua:
...
[ 36.330000] USB Serial support registered for ch341-uart
[ 36.330000] ch341 1-1.2:1.0: ch341-uart converter detected
[ 36.350000] usb 1-1.2: ch341-uart converter now attached to ttyUSB0
...
Oder mit lsusb
Ausgabe ua:
...
Bus 001 Device 005: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
...
Jetzt können wir den USB-Stick an das erstellte Verzeichnis binden mit:
owfs -d /dev/ttyUSB0 -m /mnt/1wire/
Jetzt werden alle Eigenschaften und Daten als Dateisystem unter dem gemounteten Verzeichnis abgebildet.
Wenn wir dann in das /mnt/1wire Verzeichnis gehen, können wir uns von dort mit cat die Temperatur ausgeben lassen.
cd /mnt/1wire
ls
Ausgabe der Verzeichnisse:
28.A29D8A040000 bus.0 simultaneous structure uncached
alarm settings statistics system
Die Verzeichnis Nr. die mit 28…. startet ist das Verzeichnis des Temperatur Sensors.
cat 28.A29D8A040000/temperature
Ausgabe nach ca. 1 Sekunde mit 12-Bit Genauigkeit in Grad Celsius:
24.375
Oder der Type des Sensors
cat 28.A29D8A040000/type
Ausgabe:
DS18B20
Oder die einmalige ID:
cat r_address
Ausgabe z.B.
2B0000048A9DA228
Oder…
Habt ihr noch Fragen oder Anregungen?