RPI2 I2C to 1-Wire Host Adapter

Habe mir mal einen 1-Wire Adapter für meine FHEM Pi auf Sheepwalkelectronics gekauft.
Die Lieferung kommt aus UK und dauert ca. 2 Wochen auf jeden Fall schneller als
aus China da dauert es unter Umständen 4-8Wochen! So ausgepackt und auf
meinen Raspberry Pi Modell B+ gesteckt. Ich musste leider die Abdeckplatte entfernen

da die Buchse etwas übersteht. Auserdem habe ich am Gehäuse die Buchse ausgesägt.

Aber warum nicht den GPIO4 nutzen?

Ganz einfach der GPIO4 ist kein Hardware
Busmaster. Es muss alles per Software realisiert werden. Das kostet Rechenzeit und belastet den Raspberry Pi zusätzlich. Ein weiterer Vorteil ist das die Volle Busspannung von 5V genutzt wird.
Außerdem ist ein ESD Schutz vorhanden der den I2C zu 1-Wire Busmaster schützt. Alles in allem eine sinvolle Erweiterung ohne Bussteilnehmer begenzung.  So jetzt geht es an die Software. Als Erstes fügen wir folgende Module hinzu:
sudo nano /ect/modules

Und fügen folgendes hinzu:

i2c-bcm2708
i2c-dev

Dann machen wir noch ein Update und starten den Raspberry Pi anschließend neu:

sudo apt-get update && sudo apt-get upgrade && sudo reboot

Es Nächstes schauen wir, ob das Modul richtig erkannt wird:

sudo i2cdetect -y 1

Jetzt müsste die Antwort wie folgt aussehen:

pi@RPI-FHEM-Server ~ $ sudo i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: — — — — — — — — — — — — —
10: — — — — — — — — 18 — — — — — — —
20: — — — — — — — — — — — — — — — —
30: — — — — — — — — — — — UU — — — —
40: — — — — — — — — — — — — — — — —
50: — — — — — — — — — — — — — — — —
60: — — — — — — — — — — — — — — — —
70: — — — — — — — –

Die Ausgabe gibt uns die Adresse zurück. Funktioniert allso alles.

Als Nächstes müssen wir den OWFS Server installieren:

sudo apt-get install owfs ow-shell

Jetzt müssen wir die Config noch Anpassen um Unteranderem den FakeSensor zu entfernen:

sudo nano /etc/owfs.conf

Allso diesen Wert:

FAKE = DS18S20,DS2405

Auskomentieren in:

#FAKE = DS18S20,DS2405

Dann fügen wir folgende Zeile hinzu:

server: device=/dev/i2c-1

Jetzt Starten den Server Dienst neu:

sudo service owserver restart

Jetzt können wir z.B einen DS18B20 Temperatursensor mit einem 4,7kOhm-Widerstand zwischen Data und
+5V anschließen und wir dann bekommen wir die Sensor-ID angezeigt:

owdir

Die Ausgabe sollte so z.B Ausehen:

pi@RPI-FHEM-Server:~$ owdir
/28.FC6711040000
/bus.0
/uncached
/settings
/system
/statistics
/structure
/simultaneous
/alarm
pi@RPI-FHEM-Server:~$

Der obere Wert ist der Temperatursensor, dem wir auch die aktuelle Temperatur anzeigen können:

owread /28.FC6711040000/temperature; echo

Wir können uns diese Werte auch über einen Webbrowseranschauen einfach IP:2121 eigeben so kann es

dann aussehen:

Screenshot-15

Um das ganze in FHEM einzubinden geben wir die Sensor ID wie folgt in die fhem.cfg ein:

#Temperatursensoren 1-Wire Bus
define myOWServer OWServer localhost:4304
define temp1 OWDevice 28.4B7714050000 30
attr temp1 icon icoKLIMA
attr temp1 model DS18B20
attr temp1 room Beispielraum
define FileLog_temp1 FileLog ./log/temp1-%Y.log temp9
attr FileLog_temp1 Beispielraum

So sieht das Fertige Ergebnis aus:

Screenshot-17

 

~ lg. Mathias ~

3 Kommentare

  • Michael sagt:

    Hi,
    erstmal danke für die Anleitung zum RPI2-Adapter. Es sollte allerdings erwähnt werden, dass

    sudo apt-get update && sudo apt-get upgrade && sudo reboot

    einen neuen Kernel installiert, was in der aktuellen Version dazu führt, dass

    i2cdetect -y 1

    die Fehlermeldung bringt:

    Error: Could not open file /dev/i2c-1′ or /dev/i2c/1′: No such file or directory

    Und dann sucht man erstmal eine ganze Weile, warum da nix geht. Zauberwort „device tree“!
    Gruß
    Michael

  • Christoph sagt:

    Danke für den Beitrag. Es ist aber nicht notwendig den Widerstand zu verbauen.
    Gruß
    Christoph

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.