Thermographie mit dem Raspberry Pi
1. Thermographie-Kamera mit dem Raspberry Pi (dieser Teil) 2. Ansteuerung des Sensors mit Perl 3. Ansteuerung der Servos / Auswertung 4. Zusammenfassung, WLAN und Batteriebetrieb |
|
Kontaktlose Thermometer und entsprechende Sensoren sind sehr günstig erhältlich. Diese Sensoren messen pyroelektrisch die Temperatur an einem Punkt in ihrem Gesichtsfeld.
Die Idee ist es, einen solchen Sensor an einen Raspberry Pi anzuschließen, und von ihm die Daten weiterverarbeiten und anzeigen zu lassen um damit eine preiswerte Thermographie-Kamera zu bauen.
Die Bilder, die dabei rauskommen sind erstaunlich gut.
Scanmechanismus
Ein solcher einfacher Sensor misst die Temperatur nur in einen Punkt - Sensoren mit vielen Pixeln sind extrem teuer. Um ein komplettes Bild zu erhalten, muß der einpixelige Sensor das Sichtfeld mechanisch abscannen.Für den Scan-Mechanismus lassen sich preiswerte RC-Servos einsetzen, die direkt vom Raspberry Pi angesteuert werden können. Mit zwei Servos lässt sich dann bequem die Gegend in X- und Y-Achse abscannen.
Für eine hohe Auflösung ist ein möglichst kleines Sichtfeld ("Field of View", POV) des Sensors wichtig. Zusätzlich muß der Sensor eine Schnittstelle haben, die über den Raspberry Pi bedient werden kann. Der MLX90614 erfüllt diese Bedingungen.
Da der Raspberry Pi ein vollwertiges Linux-System ist, stehen dort auch alle möglichen Scriptsprachen und Libraries zur Nachbearbeitung und Darstellung der Daten zur Verfügung.
Bedient wird das System über einen Browser, auf dem RasPi läuft ein Webserver. Es ist also keine weitere Hardware nötig. Der Raspberry Pi kann auch batteriebetrieben als WiFi-Accesspoint konfiguriert werden. Damit kann dann ein Smartphone mit Browser als Benutzerinterface dienen.
Übersicht
Diagramm TBDHardware
Raspberry Pi Model B
Als Plattfrom dient der Raspberry Pi, Model B. Der hat 512 MB RAM und zusätzlich zur USB-Schnittstelle noch einen Ethernet-Anschluß. Das ist sehr praktisch zum Entwickeln, man kann sich direkt per SSH einloggen (von Windows z.B. über putty) und zusätzlich noch einen WLAN-Dongle anschließen, falls man das Gerät standalone benutzen will.Sensor
Als Sensor wurde der MLX90614 gewählt. Er hat eine I2C-Schnittstelle, über die man ihn an den Raspberry Pi anschließen kann. Den Sensor gibt es in verschiedenen Ausführungen, die sich in der Betriebsspannung und dem Gesichtsfeld (FOV) unterscheiden.Ich habe die Variante MLX90614ESF-DCI genommen. Der hat eine nominale Betriebsspannung von 3,6 Volt und arbeitet gut mit den 3,3V, die der Raspberry Pi bereitstellt. Das ist der MLX90614 mit dem kleinsten FOV: 5 Grad! Es gibt auch billigere Ausführungen mit 10 oder gar 35 Grad FOV, aber die sind nicht gut für diese Anwendung geeignet - das Gesichtsfeld ist einfach zu groß!
Der Sensor wird über einen Perl-Daemon abgefragt und ist per HTTP erreichbar. Grund dafür: momentan gibt es nur für Perl eine Library, mit der der Sensor über I2C angesteuert werden kann. Näheres dazu im Teil 2.
Webserver
Das Hauptprogramm ist ein Webserver, der in Python geschrieben ist. Er steuert die Servos und holt sich die Daten des Sensors per HTTP. Ist der Scan fertig werden die gewonnen Daten per python-matplotlib als Image visualisiert und an den Browser geliefert (und im Filesystem gespeichert). Nähere dazu in Teil 3 und Teil 4.Schaltung
Software
Repository auf GitHub
Die Software wird laufend verbessert und kann auf GitHub unterhttps://github.com/hermann-kurz/thermography-raspberrypi
geholt werden. Sie steht unter einer Open-Source-Lizenz
1. Thermographie-Kamera mit dem Raspberry Pi (dieser Teil) 2. Ansteuerung des Sensors mit Perl 3. Ansteuerung der Servos / Auswertung 4. Zusammenfassung, WLAN und Batteriebetrieb |
|