Gleich gehts los...

owTools unter Windows

Download und Installation

Die "Installation" unter Windows ist nicht schwer. Einfach die Datei owTools.zip herunterladen und an einen beliebigen Ort entpacken.

Nun muss die Eingabeaufforderung geöffnet werden. Das geht z.B. mit Windowstaste + R und der Eingabe von cmd:

wenn owTools z.B. auf dem Desktop kopiert wurde kann man nun mit

cd Desktop\owTools

in das entsprechende Verzeichnis gelangen.

Bei der Eingabe von

dir

sollte es dann so

aussehen. Bzw. kann nun das Programm mit

owTools

gestartet werden und zeigt einen Hilfetext:

Wenn die Sonderzeichen wie das ° bei °C nicht richtig angezeigt werden hilft der Befehl:
chcp 65001

Selber Kompilieren

Natürlich kann auch der Quelltext von owTools heruntergeladen werden. Im Verzeichnis windows/owTools gibt es die Projekt-Daten für Visual Studio 2015.


Verschiedene Adapter

Serielle Adapter und LinkUSB

Mit diesem Adapter ist der Zugriff auf den 1-Wire Bus relativ unkompliziert. Nach dem Anstecken wird der Treiber für den FT232 in der Regel automatisch heruntergeladen und installiert. Alternativ gibt es ihn auch auf http://www.ftdichip.com.

Dannach muss der COM-Port herausgefunden werden, welcher dem LinkUSB-Adapter zugewiesen wurde. Dies geht z.B. mit dem Befehl chgport. Dieser listet z.B. folgende Ports auf:

C:\Users\Nutzer\Desktop\owTools>chgport
COM3 = \Device\VCP0
COM40 = \Device\porte40
COM6 = \Device\porte6
COM7 = \Device\porte7

Dabei ist COM3 mit \Device\VCP0 der Port vom LinkUSB-Adapter. Wenn mehrere FT232-Chips über USB am Computer angeschlossen sind ist die Auswahl schwieriger. Am besten ist dann vorher mal nachzuschauen welche Ports schon vorhanden sind.

wenn all ok ist sieht die Ausgabe von owTools z.B. so aus:


DS9490 - DS2490

Für diesen Adapter habe ich den Treiber mit in die owTools.zip gepackt. Es gibt, wenn alles entpackt wurde, unter owTools ein Verzeichnis Driver. Für 64-Bit Systeme muss die Datei

install_1_wire_drivers_x64_v405.msi

installiert werden. Bei 32-Bit Systemen

install_1_wire_drivers_x32_v405.msi

Der Befehl für owTools mit diesem Adapter lautet dann:

owTools -a USB1

Sind mehrere solche Adapter am Computer angeschlossen kann dann entsprechend mit USB2 oder USB3... anstelle von USB1 darauf zugegriffen werden.


ARDUINO

Ein Arduino ist schon extrem günstig zu haben. Somit ist diese Variante wahrscheinlich der günstigste 1-Wire Adapter für den PC. Mein Arduino Nano hat eine serielle Schnittstelle von QinHeng Electronics. Die Treiber habe ich mal mit in die owTools.zip gepackt. Andere Arduino Nanos haben aber auch andere Chips verbaut.

Zum Arduino selbst will ich hier nicht viel sagen. Dazu gibt es sehr viele Informationen im Internet. Die passende Firmware für den Arduino gibt es hier:

owTools_arduino_master.zip

zum Übersetzen wird die 1-Wire Bibliothek für Arduino benötigt:

OneWire.zip

In der aktuellen Arduino IDE gibt es die Möglichkeit, die ZIP-Datei gleich unter dem Menüpunkt Sketch -> Bibliothek einbinden -> .ZIP Bibliothek hinzufügen ... zu installieren

Der 1-Wire Master ist mit dem Port D10 verbunden. Zum korrekten Betrieb muss noch ein Pullup-Widerstand (1 kOhm - 10 kOhm) zwischen D10 und +5V angebracht werden:

Mit dem Befehl chgport wird der Arduino (mit CH340G USB zu Serial) als

COM4 = \Device\Serial2

erkannt. Die Kommandozeile für owTools muss dann so aussehen:

owTools -a ARDUINO4

wobei die 4 hinter ARDUINO die Nummer des COM-Ports ist.

Folgendes Bild zeigt ein Beispiel für den erfolgreichen Anschluss:

owTools unter Linux

Erstellen des Programms aus dem aktuellen Quellcode

Die Vorgehensweise ist bei allen Debian-Basierten Linux-System (Raspbian, Ubuntu, Mint...) gleich. Bei anderen Systemen muss der Befehl zum Installieren der benötigen Programme und Bibliotheken angepasst werden.

1. Installieren der benötigten Programme und Bibliotheken:

sudo apt install automake autoconf g++ libmysqlclient-dev libusb-dev

Bei bei neueren Linux-Distributionen muss eventuell stehen:

sudo apt install automake autoconf g++ default-libmysqlclient-dev libusb-dev

2. Quellcode herunterladen und entpacken (Achtung! Wenn schon eine Datei owTools im aktuellen Verzeichnis existiert, funktioniert die Verzeichniserstellung nicht):

mkdir owTools
cd owTools
wget -O owTools.tar.gz "https://git.smho.de/gw/?p=owTools.git;a=snapshot;h=HEAD;sf=tgz"
tar --strip=1 -xzf owTools.tar.gz

3. Übersetzen des Programms:

aclocal
autoconf
automake
./configure
make

Download Binary

Wem das Übersetzten des Quellcodes, wie gerade beschrieben, zu kompliziert ist, der kann es mit einem fertig übersetzten Programm versuchen.
Raspberry PI

wget https://www.tm3d.de/downloads/owTools/owTools_PI_bin.tar.gz
tar -xzf owTools_PI_bin.tar.gz
./owTools

Kommt die Fehlermeldung:

./owTools: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory

Muss die Bibliothek libmysqlclient.so.18 noch installiert werden mit:

sudo apt-get install libmysqlclient18

Die Zahl .18 kann in der Fehlermeldung auch anders sein, entsprechend muss auch die Kommandozeile geändert werden.

Funktioniert owTools korrekt, so gibt das Programm folgende Informationen aus:


Verschiedene Adapter

Übersicht

1-Wire MasterBeispiel
LinkUSB(i)./owTools -a COM0
DS9490 / DS2490sudo ./owTools -a USB1
1-Wire Kernel Modulesudo ./owTools -a W1
Raspberry PI - beliebiges GPIOsudo ./owTools -a GPIO17
Arduino (Nano)./owTools -a ARDUINO0

Serielle Adapter und LinkUSB

Mit diesem Adapter ist der Zugriff auf den 1-Wire Bus relativ unkompliziert. Der passende Treiber ist im Linux-Kernel enthalten.

Um den entsprechende Port herauszufinden hilft die Eingabe von dmesg nach dem Anstecken des Adapters.

In der letzten Zeile steht ttyUSB0. Somit ist der Adapter mit der virtuellen seriellen USB-Schnittstelle 0 verbunden. Die Kommandozeile muss dann lauten:

./owTools -a COM0

Wenn Fehlermeldungen kommen, kann es sein, dass der Linux-Benutzer noch ein die Gruppe dialout eingetragen werden muss. Dies kann mit dem Befehl:

sudo usermod -a -G dialout $USER

geschehen.


DS9490 - DS2490

Auch für diesen Adapter ist der Treiber im Linux-Kernel enthalten und es muss nichts zusätzlich installiert werden.

Allerdings wird der Master bei neueren Kernel-Versionen automatisch in das 1-Wire-System des Kernels eingebunden und ist somit schon belegt. Das kann man z.B. mit dem Befehl lsmod |grep ds2490 herausfinden:

In diesem Falle muss das Modul erst durch den Befehl:

sudo rmmod ds2490

entladen werden.

Der Befehl zum Starten von owTools mit dem ersten angeschlossen DS9490-Adapter lautet dann:

sudo ./owTools -a USB1

Funktioniert alles richtig sieht die Ausgabe dann ungefähr so aus:


1-Wire Kernel Funktion

Auch die im Linux-Kernel integrierte 1-Wire Funktion lässt sich mit owTools verwenden. Dies ist besonders praktisch, wenn beim RaspberryPI das GPIO4-Port als 1-Wire Master verwendet werden soll. Allerdings läuft das 1-Wire-Kernelmodul auf Intel-kompatiblen PCs mit DS9490 nicht besonders stabil. Dort sollte lieber der direkte Weg, wie oben beschrieben, verwendet werden.

Der Befehl lautet:

sudo ./owTools -a W1

Wichtig ist die Ausführung mit Administratorrechten (sudo).

Bei der Verwendung des GPIO4 muss ein Pullup-Widerstand zwischen GPIO4 und 3.3V angebracht werden.

Beliebiger GPIO vom RaspberryPI ohne Kernel

owTools erlaubt auch die Verwendung jedes freien GPIO-Ports als 1-Wire Master. Auch dazu ist jeweils ein Pullup-Widerstand notwendig.

Leider funktioniert die Funktion nicht ganz fehlerfrei. Aber mit CRC und Prüfung der gesendeten Daten ist eine stabile Kommunikation möglich. Wenn zufällig jemand weiß, wie man es anstellt, dass der Kernel ein Programm 15µs lang nicht unterbricht, dann bitte unbedingt melden!! Dann wäre das Problem der sporadischen Fehler gelöst.

Der Befehl z.B. für GPIO17 lautet:

sudo ./owTools -a GPIO17

Wichtig ist die Ausführung mit Administratorrechten (sudo).


ARDUINO

Ein Arduino ist schon extrem günstig zu haben. Somit ist diese Variante wahrscheinlich der günstigste 1-Wire Adapter für den PC. Mein Arduino Nano hat eine serielle Schnittstelle von QinHeng Electronics. Die Treiber habe ich mal mit in die owTools.zip gepackt. Andere Arduino Nanos haben aber auch andere Chips verbaut.

Zum Arduino selbst will ich hier nicht viel sagen. Dazu gibt es sehr viele Informationen im Internet. Die passende Firmware für den Arduino gibt es hier:

owTools_arduino_master.zip

zum Übersetzen wird die 1-Wire Bibliothek für Arduino benötigt:

OneWire.zip

In der aktuellen Arduino IDE gibt es die Möglichkeit, die ZIP-Datei gleich unter dem Menüpunkt Sketch -> Bibliothek einbinden -> .ZIP Bibliothek hinzufügen ... zu installieren

Der 1-Wire Master ist mit dem Port D10 verbunden. Zum korrekten Betrieb muss noch ein Pullup-Widerstand (1 kOhm - 10 kOhm) zwischen D10 und +5V angebracht werden:

Die Nummer des USB-Serial-Ports kann, wie bei dem LinkUSB-Adapter, mit dem Befehl dmesg herausgefunden werden. Für ttyUSB0 muss z.B. folgender Befehl eingegeben werden:

owTools -a ARDUINO0

Bei erfolgreicher Ausführung zeigt das Programm die Werte der angeschlossenen Sensoren an:

owTools Funktionen new Firmware
owTools Funktionen Change ID

Neu Schutzlack

Für einen Aufpreis von 3 € können alle Module mit Schutzlack versiegelt werden. (abgesehen von den Sensoröffnungen 😉)

Option Schutzlack

Neue Artikel im Shop

Zum Seitenanfang