Samstag, 31. Januar 2015

Raspberry Pi - Temperatursensor DS18B20

An dem Raspberry Pi kann man relativ simpel einen Temperatursensor ansteuern.
Ich habe dafür bei ebay einen Digitaler Temperatursensor DS18B20 Wasserdicht gekauft (Kosten ca. 2 €).

Der DS18B20 Sensor besitzt drei Kabel:
  • Rot (VCC / 3,0V bis 5,5V)
  • Weiß (DATA / 1-Wire)
  • Schwarz (GND)
Der Messbereich liegt bei -55°C und +125°C und  die Messgenauigkeit bei ca. ± 0,5°C.

Durch einen eindeutigen Code (ID) können mehrere Temperatursensoren parallel angeschlossen werden.

 
Der Sensor muss via GPIO angeschlossen werden (General Purpose Input/Output)).
  • Rot (VCC) an Pin 1 3,3V
  • Weiß (DATA) an den GPIO 4 (Pin 7)
  • Schwarz GND Pin 6
  • Zwischen VCC 3,3V und DATA GPIO 4 muss ein 4,7k Ohm Widerstand verwendet werden.

Um den Sensor ansprechen zu können, müssen folgende Module geladen werden
sudo modprobe w1-gpio
sudo modprobe w1-therm
Update (03.05.2015)
Raspbian Betriebssystems ab Kernel 3.18 erfordert jetzt die Aktivierung des Device Tree Overlay für 1-wire:
sudo vi /boot/config.txt 
Und folgendes hinzufügen
dtoverlay=w1-gpio,gpiopin=4,pullup=on 
Diese Module sollte am Besten auch direkt beim Start des Pi immer geladen werden
sudo vi /etc/modules
Und folgendes hinzufügen
w1-gpio
w1-therm
Nach dem erfolgreichen Anschließen und Laden der Module sollte der Sensor jetzt zur Verfügung stehen. Zu finden unter
/sys/bus/w1/devices/xx-xxxxxxxxxxxx/w1_slave

t=21437 / 1000 = 21,437 ° C

Bash-Script zum Auslesen der Temperatur (sudo apt-get install bc):

#!/bin/sh
# Temperatur von Sensor auslesen
# (c) Sebastian Hemel


temp=$(cat /sys/bus/w1/devices/28-00000511590a/w1_slave | sed -n "s/.*t=\(.*\)/\1/p")
temp=`echo "scale=3; $temp / 1000" | bc`
printf "Aktuelle Temperatur: %05.2f°C\n" $temp



Bash-Script zum Auslesen der Temperatur, Temperatur und Tagdesdatum + Uhrzeit in Datei schreiben und auf einen FTP-Server hochladen:

#!/bin/sh
# Temperatur von Sensor auslesen und per FTP hochladen
# (c) Sebastian Hemel


temp=$(cat /sys/bus/w1/devices/28-00000511590a/w1_slave | sed -n "s/.*t=\(.*\)/\1/p")
temp=`echo "scale=3; $temp / 1000" | bc`
#printf "Aktuelle Temperatur: %05.2f°C\n" $temp >> temp.txt

rm temp.txt
printf "" >> temp.txt
printf "%05.2f" $temp >> temp.txt
printf " Grad Celsius - " >> temp.txt
date +%d.%m.%Y' '%H:%M >> temp.txt
printf "" >> temp.txt

sleep 1
ncftpput -f /home/pi/ftp.cfg /temp /home/pi/temp.txt


Samstag, 3. Januar 2015

Raspberry Pi - WLAN per Konsole (putty) einrichten

Mit dem Befehl ifconfig erhält man eine Auflistung aller verfügbaren Netzwerkschnittstellen:


Für die richtigen Netzwerkeinstellungen (statische oder dynamische IP), siehe Datei /etc/network/interfaces => http://sebastianhemel.blogspot.de/2014/08/raspberry-pi-statische-ip-zuweisen.html

Je nach dem welche Verschlüsselung das Netzwerk hat, muss diese noch in der Datei /etc/wpa_supplicant/wpa_supplicant.conf gepflegt werden:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={  
    ssid="DEINE_SSID"
    psk="DEIN_KEY"
    scan_ssid=1
    id_str="home"
    key_mgmt=WPA-PSK
    proto=RSN
    pairwise=CCMP
    group=CCMP
    priority=5
}


Nach den erforderlichen Einstellungen sollte die WLAN Schnittstelle deaktiviert werden:

sudo wpa_action wlan0 stop

Danach muss die neue WPA Konfig wieder geladen werden:

sudo ifup wlan0

Nach dem erfolgreichen Starten (es gab keine Fehlermeldung), kann die Verbindung getestet werden:

sudo wpa_cli status



Freitag, 2. Januar 2015

Raspberry Pi - Deutsches Tastaturlayout einstellen

Per default steht die Tastatur des Raspberry Pi auf Englisch.
Dies merkt man z.B. sehr schnell daran, dass die Tasten [Z] und [Y] vertauscht sind :-)

Dies lässt sich aber zum Glück relativ einfach durch RasPi Konfig Tool beheben:

sudo raspi-config


Anschließend wählt man in dem folgenden Menü den Eintrag "4 Internationalisation Options" aus.



Danach den Eintrag "I3 Change Keypoard Layout" auswählen und im nächsten Dialog die Einstellung "Generic 105-key (Intl) PC" bestätigen.


Jetzt muss man den Eintrag "Other" auswählen um zu der deutschen Belegung zu gelangen.

Im nächsten Schritt muss aus der Liste "German" ausgewählt werden. Die anderen Dialoge können je nach Nachfrage mit "OK" bestätigt werden.