Raspberry Pi – OneWire Sensor funktioniert nicht mehr nach Raspbian Update (DS18B20, DS18S20, DS18x20)

Nach dem Kernel Update auf 3.18.3 (oder neuer) funktionierten die 1-Wire Sensoren plötzlich nicht mehr.
Das es im Linux Kernel eine Umstellung bzgl. behandlung der Kernel Module gab.
Ich hab hier die Quick and Dirty Lösung für euch dokumentiert.

Schritt für Schritt Anleitung:

-Mit Putty am Raspberry Pi anmelden.
-optional: sudo apt-get update
-optional: sudo apt-get upgrade
-optional: sudo rpi-update

-Mit Nano die Boot-Config öffnen
sudo nano /boot/config.txt

pi_nano_boot_config.txt
(Screenshot)

-In diesem File ganz unten folgende Zeile hinzufügen:
#disable device tree function
device_tree=

pi_nano_boot_config.disable device tree
(Screenshot)

-Mit der Tastenkombination Strg+O wird das File wieder gespeichert und mit Strg+O schließt Ihr Nano.
-Nun nur noch ein Reboot und anschließend sind die Sensoren wieder wie gewohnt verfügbar.
Dieser wird mit sudo reboot eingeleitet.

Somit ist die Fehlerbehebung abgeschlossen und unter /sys/bus/w1/devices/ sieht man die generierten Ordner wieder.

pi_device_1-wire

Viel Erfolg!

Arduino – Temperatur messen mit 1Wire Sensor DS18S20/DS18B20/DS1820

Der OneWire Sensor DS18x20 ist günstig und einfach in der Anwendung.
Hier meine Anleitung wie Ihr den Sensor am Arduino in Betrieb nehmt.

Was wir benötigen:

-OneWire Sensor – Wasserdicht oder eine einfache Variante
Arduino IDE
OneWire Library
4,7 kOhm Widerstand zB. von eBay

Falls noch nicht vorhanden, die Arduino IDE downloaden und entpacken.
Das gleiche machen wir mit der OneWire Library und kopieren diese anschließend in den Arduino IDE Ordner unter den Pfad \arduino-1.0.6\libraries .

Der Sensor muss auch noch am Arduino verkabelt werden dies ist recht einfach, wie Ihr im Bild sehen könnt.
Wenn Ihr die flache Seite anseht, ist der linke Kontakt Ground (GND), der Rechte für +5V (würde auch mit 3,3V funktionieren) und in der Mitte ist er Kontakt für die Daten/Kommunikation in unserem Fall ist das PIN 2.
Arduino OneWire

Solltet Ihr einen Wasserdichten Sensor haben (wie im Bild) schließt Ihn so an:

Schwarz = GND
Gelb bzw. Weiß = Daten
Rot = +5V
DS18B20 Waterproof

Zwischen dem Plus und dem Daten Kontakt benötigen wir nun noch den 4,7 kOhm Widerstand wie oben im Bild eingezeichnet, in der Praxis hab ich es auf meinem Breadboard so gelöst wie im Bild unterhalb.

DS18B20 Resistor

Die Hardware ist somit fertig, weiter geht es mit dem Code.

Der Code is sehr einfach und sparsam gehalten (sollte das Projekt größer werden),
getestet wurde er in der Arduino IDE 1.0.4 und 1.0.6.

Uploaden und im Serial Monitor die Messdaten betrachten.

Falls in der Ausgabe -1000 oder CRC is not valid steht habt ihr ein Problem mit der Verkabelung.

 

 

Viel Spaß beim Messen 😉

 

Die beliebtesten Artikel im Jahr 2014

Seit Ende 2012 schreiben wir nun unseren eigenen Blog und wir sind selbst oft überrascht wie gut manche Themen bei euch ankommen.
Auch 2015 werden wir wieder interessante Beiträge bloggen und damit versuchen unser Wissen und Erfahrungen an euch weiter zu geben.

Hier die beliebtesten Artikel des vergangen Jahres 2014:

1. Autostart bei Windows 8 und Server 2012
2. Datenträgerbereinigung cleanmgr.exe auf Windows Servern
3. Raspberry PI spielt Proxy
4. iSCSI Target Server mit Windows Server 2012
5. ASUS N900 – RT-N66U mit DD-WRT flashen
6. Arduino – Temperatur messen und mit Webserver ausgeben – DHT22 DHT11 AM2302
7. Raspberry PI – apt-get über Proxy
8. pyLoad – automatisch starten nach Neustart (Debian/Raspbian)
9. Arduino: 7 Segmentanzeige ansteuern
10. Python 3 – HTML Seite auslesen
11. Raspberry Pi – Keyboard-Layout auf deutsch ändern – Logitech K400r
12. ORF tvthek Sendungen herunterladen
13. Arduino: Temperatur messen mit einem LM35
14. Unterordner Größen per Powershell auslesen und speichern
15. 0x8020002e – Windows Store Apps Installationsfehler

Ein Gutes neues Jahr wünscht euch das silvertech.at Team!