Eigentlich ist Sonntag mein Basteltag, nur habe ich meine Aufgabe nicht geschafft. Ich wollte einen preisgünstigen BMP085-Sensor an meinem Raspberry Pi anschließen. Der Sensor kann Temperatur und Luftdruck messen und ist für unter 5 Euro zu kaufen. Er wird direkt am i2c-Bus des Raspberry Pi gehangen. Ich hebe ich mal kurz meinen Finger zur Vorsicht: Ein Kurzschluss oder falsche Spannung befördert Euren Raspberry Pi endgültig in den Silizium-Himmel. Der BMP085-Sensor verträgt nur Spannungen bis 3,3 V. Ideal, denn am GPIO vom Raspberry-Pi liegen genau 3.3V am ersten Pin an. Es werden nur noch 3 zusätzliche Pins am Raspberry Pi benötigt: 3,5,6. 3 ist der SDA-Pin, 5 der SCL und 6 die Masse. XCLR und EOC werden nicht benötigt.Eine gute Installations-Doku findet ihr wie immer im fhem-Forum.
Bei mir unterscheidet sich die Dokumentation nur davon, das bei mir der Kanal 1 des i2c-Bus verwendet wird. Wenn alles gut geht sieht es in der Konsole so aus.
Last login: Tue Oct 15 16:45:23 2013 from compaqnc6320.local
i2croot@raspberrypi:~# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- 77
Wichtig ist hier die 77 am Ende.
Nach einem Reboot kann man auch das ganze auch unter fhem final scripten
[sourcecode language=“text“ gutter=“false“]
attr global altitude 60
define BMP180 I2C_BMP180 /dev/i2c-1
attr BMP180 oversampling_settings 1
attr BMP180 poll_interval 5
attr BMP180 room Temperaturen
[/sourcecode]
Wenn der Sensor erkannt wurde, bekommt man sofort die aktuelle Temperatur und den Luftdruck angezeigt, welcher alle 5 Minuten neu gemessen wird.
Hier nochmal der BMP085 – Sensor mit einem Arduino-Uno Board verknüpft. Den nehme ich ab und zu zum testen.
Die Zutatenliste:
- Einen Raspberry Pi (- siehe meinen Blog-Beitrag)
- oder einen Arduino Uno – Amazon.de: Arduino UNO R3 – Schaltplan hier
- Breadboard (Steckbrett) – Unheimlich praktisch (Steckbrett Breadboard Experimentierboard Steckplatine 830 Kontakte)
- passende Steck-Kabel (aus China) – Lieferzeit ungefähr eine Woche: 65St. wiederverwendbare Steckbrett Drahtbrücke Kabel für Bot Schaltung Schaffen – Farbe sortiert
- Sensor BMP085 (bei amazon: BMP085-Sensor)
Wenn ihr so weit gekommen seid, dann steht Euch eine professionelle Auswertung mit fhem nichts mehr im Wege. Beispielsweise eine grafische Darstellung der Temperatur oder auch Anzeige des Luftdrucks als Graph. Ebenso könnt ihr dann bei Temperaturänderungen Aktionen vornehmen, beispielsweise e-Mails versenden usw.
Den Temperatur- / Luftdrucksensor habe ich übrigens mit in das Gehäuse des Raspberry Pi eingebaut. Er mißt die Gehäusetemperatur und natürlich den Luftdruck. Die Platine ist so klein, das sie ohne Probleme dort hineinpasst.
Viel Spaß beim Nachbau.
Das könnte Euch auch noch interessieren:
- Hausautomation: Fhem mit Raspberry Pi und Möglichkeiten zur Realisierung
- USB-Stick: Voltcraft CO 20 Luftqualitäts-Sensor – ein Erfahrungsbericht
übereinandergelegt
Ist die schicke dreifarbige Luftqualität manuell 3x übereinandergelegt oder gibts da eine spezielle Erweiterung?
VG Holger
ja klappt! Das war einer meiner ersten Sachen, die ich mit Fhem gemacht habe!
LG
/robin
im Forum schauen, habe ich auch irgendwo im blog mal aufgeschrieben.
ach und noch ein Frage: Wie hast du den schicken farbigen Graphen erzeugt? Gefällt mir sehr, sehr gut 😉
Ahhhh, hier (auch bei Dir) finde ich eine Lösung 😉 😉 🙂
Nur eine Frage dazu: Im FHEM Forum verwendet Betateilchen ein neues Image. Geht das nicht auch mit einer bestehenden FHEM Installation auf dem Raspberry – meine damit: Einfach den Sensor auf dem Breadboard an den Raspberry Pi verbinden, den Sensor in fhem definieren – fertig?
Oder doch nicht?
Schritt 19: Sensor in fhem definieren
define test I2C_BMP180 /dev/i2c-0
Hallo Stefan,
danke für die Rückinfo. Du nutzt auch ein anderes Modul. Mein Blog-Beitrag ist schon etwas älter. Möglicherweise wurde da was geändert.
Ich werde Deinen Code-Snippet bei mir im blog mal einbauen.
LG
/robin
Deine Anleitung hat so bei mir nicht funktioniert. Der Sensor wurde zwar erkannt, aber es kamen keine Daten.
Die Lösung für mich war:
#I2C Schnittstelle
define I2CBus RPII2C 1
#Luftdrucksensor 0x77 Adresse
define Luftdruck I2C_BMP180
attr Luftdruck IODev I2CBus
attr Luftdruck oversampling_settings 3
attr Luftdruck poll_interval 5