Ich war schon länger auf der Suche nach einem Temperatursensor den ich an einem Raspberry Pi anschließen kann. Der Raspberry Pi hat zwar selber einen eingebauten Temperatur Sensor für seine Recheneinheit aber keinen Sensor mit dem ich genau die Temperatur messen kann. Ich möchte gerne die Termperatur im Inneren meiner Roboter-Autos überwachen und brauche daher einen Sensor den ich leicht in meinen Robotern verbauen kann. So bin ich bei meiner Suche auf den MCP9808 Sensor gestoßen der sehr einfach über den I²C am Raspberry Pi angeschlossen werden kann.
Das folgende Bild zeigt den Sensor wie er von Adafruit geliefert wurde.
Anleitungen von Adafruit
Adafruit stellt für den Sensor auch passende Tutorials bereit die sehr ausführlich und verständlich beschreiben wie der Sensor von z. B. einem Raspberry Pi aus mit einer eigenen Python Bibliothek ausgelesen werden kann. So ist der Betrieb des Sensors ein Kinderspiel und langwierige Experimente und Probleme bis alles klappt trüben den Spaß am Basteln nicht.
Hier geht es zu den Anleitungen von Adafruit die es leider nur auf englisch gibt: Anleitung (EN)
Meine Anleitung ist mehr oder weniger eine Übersetzung der von Adafruit mit Bildern von mir. Sie beschreibt wie ich den Sensor angeschlossen und in betrieb genommen habe.
Die Verkabelung des MCP9808 Temperatursensor
Die Verkabelung des Sensors mit dem Raspberry Pi ist sehr einfach. Da der Sensor mit 2,7 V bis 5,5 V arbeitet kann er direkt am Raspberry Pi angeschlossen werden. Wer mehrere I²C Geräte mit unterschiedlichen Spannungen am I²C Bus betreibt muss sich je nach Bedarf z. B. einen I²C fähigen Levelschifter zulegen.
Als erstes habe ich die Stiftleiste mit ihren acht Pins auf die kleine Platine gelötet. So ist es möglich den Temperatursensor mit vier Female-To-Female Jumper-Kabel direkt an den Raspberry Pi anzuschließen.
Die vier Female-To-Female Jumper-Kabel stellen die Stromversorgung mit +/- sowie die Kommunikation über den I²C Bus zwischen Raspberry Pi und dem MCP9808 Sensor sicher. Die kleine Tabelle soll helfen einen Überblick zu bekommen wo welches Kabel angeschlossen werden muss.
Beschreibung | Raspberry Pi Pinbelegung | MCP9808 Pinbelegung | Beschreibung |
+ 3,3 V Spannung | 1 | VDD | + 3,3 V Spannung |
GND Erdung | 6 | GND | GND Erdung |
I²C Bus Datenleitung (SDA) | 3 | SDA | I²C Bus Takt |
I²C Bus Takt (SCL) | 5 | SCL | I²C Bus Datenleitung |
Die Verkabelung mit den vier Kabeln sieht wie folgt aus. Wichtig ist, dass die Verkabelung von +5 V und GND auch wirklich richtig ist. Ansonsten kann es zu einer Beschädigung des Sensors und eventuell des Raspberry Pi kommen. Genau dieser Fehler ist mir selber passiert wie das Bild zeigt! Allerdings hatte ich Glück und Raspberry Pi und Sensor funktionieren immer noch.
Die Softwareinstallation für den MCP9808 Temperatursensor
Damit der MCP9808 Sensor angesprochen und die Temperatur ausgelesen werden kann müssen ein paar Programme installiert werden. Ich habe mich hier an die Anleitung von Adafruit gehalten. Diese findet ihr hier allerdings nur auf englisch Anleitung (EN).
Als erstes müsst Ihr unter der Konsole den folgenden Befehl ausführen. Dieser installiert den ersten Teil der Bibliotheken die benötigt werden. Dazu gehört z. B. Python, die Python Bibliothek für den I²C Bus (smbus) sowie git. Git wird benötigt um später die Bibliotheken und das Testprogramm für den MCP9808 Sensor auf eurem Raspberry Pi zu installieren.
- sudo apt–get install build–essential python–dev python–pip python–smbus git
Wenn die Installation abgeschlossen ist prüft Ihr mit dem folgenden Befehl ob RPi.GPIO verfügbar ist. Diese Bibliothek wird benötigt um die GPIOs des Raspberry Pi ansprechen zu können.
- sudo pip install RPi.GPIO
Wenn Ihr soweit gekommen seit dann müssen jetzt die Bibliotheken für den Temperatursensor herunter laden. Die benötigten Dateien werden von dem Git Repository herunter geladen mit dem folgenden Befehl. Diese sollen in das Homeverzeichnis des User Pi gespeichert werden. Also achtet bitte darauf das Ihr im /home/pi Verzeichnis seit wenn Ihr den folgenden Befehl ausführt.
- git clone https://github.com/adafruit/Adafruit_Python_MCP9808.git
Wenn der Download abgeschlossen ist wechselt Ihr bitte in das Verzeichnis „/Adafruit_Python_MCP9808“ unter /home/pi/Adafruit_Python_MCP9808/. Als nächstes wird der Befehl zum installieren der MCP9808 Bibliothek ausgeführt.
- sudo python setup.py install
Die Installation dauert ein paar Sekunden und es läuft einiges an Text über den Bildschirm. Nach der Installation kam bei mir die folgende Meldung „Finished processing dependencies for Adafruit-MCP9808==1.5.3“. Anschließend ist alles fertig installiert und jetzt könnt Ihr die Temperatur auslesen.
[DE_BOOK_DETAIL DE_BOOK_DETAIL=“DE_BOOK_DETAIL“]
Auswertung der gemessenen Temperaturen
Ein kleines Testprogramm wird mit installiert wenn Ihr alle Befehle wie oben beschrieben ausgeführt habt. Dieses findet Ihr im Ordner /home/pi/Adafruit_Python_MCP9808/examples/. Es zeigt die Temperatur in Celsius und Fahrenheit an und aktualisiert die Anzeige jede Sekunde.
- sudo python simpletest.py
Mit Strg+C könnt Ihr das Programm wieder beenden.
Die Ausgabe sieht bei mir in meinem Büro unter Putty wie folgt aus.
Zusammenfassung
Der Sensor ist ideal um Temperaturen zu messen und ist meiner Meinung nach sehr einfach an den Raspberry Pi über den I²C Bus angeschlossen. Die von Adafruit angebotene Anleitung erklärt alles bis ins Detail und die mitgelieferten Programme funktionieren einwandfrei. Ich habe etwa eine Stunde benötigt von anlöten der Stiftleiste bis zur Installation der benötigten Programme.
Recent Comments