Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung

Projekt: Mini-Thermo-Cam MTheCam

Einfache Thermocam zur Lokalisierung von Hot- und Cold-Spots

Dies ist ein beispielhaftes Basis-Projekt

Sie haben ein Real-Projekt oder wollen selbst experimentieren?

Erfahren Sie mehr…

  • über das MTC-Board zum Experimentieren…
  • …und über das M5StickC CPU-Modul ‚orange‘
  • …oder erzählen Sie uns von Ihrer Aufgabenstellung für das MTC-System

Wir finden für Ihr Projekt sicher eine interessante Lösung.

Die menschliche visuelle Wahrnehmung beschränkt sich nun mal auf den Bereich des – na klar: sichtbaren - Lichtes. Andere Strahlung bemerken wir eher gar nicht – bis auf Infrarotstrahlung: Wärme.

Um einen gegenüber der Umgebung wärmeren oder kälteren Punkt – das nennt man Hot- bzw. Coldspot -, z. B. ein überhitztes Bauteil oder eine undichte Stelle als Kältebrücke, komfortabel aufspüren zu können, erweitern wir unsere Sinne um die Infrarotsicht. Damit werden diese Spots mit dem Auge sichtbar, und damit Techniker was zu erfassen haben, auch gleich als Temperaturwerte messbar.

Schon haben wir eine Grundlage für eine Alarmierung. Wenn die vergessene Herdplatte weiter unnütz heizt und die Kerze ungewollt weiterbrennt, lassen wir uns benachrichtigen und können passend reagieren. Gut für die vorausschauende Wartung, weil eine Maschine durch Überlastung – damit meist auch Überhitzung – einzelner Bauteile frühzeitig selbständig nach Beachtung rufen kann.

Wie schön, dass wir das mit einem coolen (!) Sensor erfassen und auf einem Display anzeigen können. Wir haben uns in diesem Projekt für einen AMG88xx Grideye-Thermo-Sensor von Panasonic entschieden, der preisgünstig unsere Aufgabe erfüllen kann. Der kommt mit ein paar anderen Bauteilen auf eine kleine Platine (Break Out Board-BOB), die je nach Ausführung als ‚Rucksack‘ oder ‚Inliner‘ angesteckt wird. Dazu kommt ein Prozessorboard mit dem genialen ESP32-Chip, ein Mikro-OLED-Display und ein Gehäuse. Da viel uns das orangefarbene M5StickC-Kistchen auf, was alles draufhat, was wir hier brauchen. Dann fehlt nur noch ganz viel geniale Kreativität, die die Software dazu entwickelt. Jetzt haben wir eine Mini-Thermocam für ein paar 10 Euro.

Dieses Grideye-Bauteil erfasst über eine Linse laufend Infrarotbilder in einer Auflösung von 8x8 Pixeln. Nun, eine 4k-Auflösung moderner Sichtgeräte ist damit wohl nicht drin, aber das genügt dennoch, um sich schnell ein Bild der Lage machen zu können. Per Software kann man auch noch die Auflösung aus dem Nichts vierfach höher zaubern: Interpolation! Ist zwar eigentlich gelogen, aber die Bilder sind dadurch viel besser zu beurteilen.

Jedes Bild hat also 64 Messwerte in Grad Celsius, 0-80° C, 2,5K genau, mit einer Rate von bis zu 10 Bildern pro Sekunde. Jeden diese Messwerte stellen wir als kleines Quadrat (‚Pixel‘) dar, dessen Fläche mit einer Farbe getönt wird, die wir aus einer Skala je nach Temperaturwert entnehmen. Wir sagen mal: Tiefblau ist eisig kalt, über grün und gelb als mollig geht’s zu dunkelrot als heiß. Dieses Schema ist wohl akzeptiert und gelernt. Hübscher wird es, wenn wir die 8x8 Werte als 32x32 darstellen über die bikubische Interpolation.

Diese Skala muss aber irgendwoher kommen. Die Alternative, für jede Messwertstufe eine eigene Farbe als Mischwert aus RGB-Parametern (rot-grün-blau Helligkeitswerte) über Zahlenwerte für jede Komponente festzulegen, scheitert an der Faulheit des Entwicklers. Es muss doch was Fertiges geben, womit man die vielen Werte ausrechnen kann: Ein Farbverlauf!

In der Tat gibt es einen Farbkreis, bei dem jeder Winkel einen eigenen Farbton hat. Nach innen wird die Farbe dunkel, nach außen hell. Das nennt sich HSL-Farbmodell.

Jeder Farbwert wird hier mit den drei Werten ‚H‘ (Hue) als Farbton, ‚‘S‘ (Saturation) und ‚L‘ (Luminance) bestimmt. ‚H‘ ist ein Wert für den Farbton zwischen 0 und 359, ist also als Kreis gut darstellbar. ‚S‘ zeigt die Sättigung an, also die Verwässerung durch weiß, und ‚L‘ die Strahlkraft, also die Helligkeit – beide jeweils von 0-100%. Schauen wir uns den Kreis an, sehen wir, dass die gewünschte Verlaufsfolge von kalt über warm nach heiß dort eingebaut ist. Wir müssen nur bei 255°-tiefblau ‚linksrum‘ über 0°-rot bis zu 315°-magenta gehen, um unserem Anspruch an ansprechende Benutzererfahrung gerecht zu werden. Den Bereich mit den violetten Tönen lassen wir aus, da ‚fühlt‘ man nicht eindeutig kalt oder warm.

Mathematisch lassen wir also Werte von 255 bis -45 hinunterlaufen, bei den negativen addieren wir 360. Das gibt die gewünschten Winkelwerte für den vollen möglichen Farbverlauf. Im Programmcode wird ein jeweils eingeschränkter Bereich dieses Verlaufes entsprechend dem Wertedurchschnitt eines Bildes und etwas Luft nach oben und unten (die Parameter dafür sind änderbar) genommen. Die MAP() Funktion transformiert (quetscht) dann den Temperaturbereich auf den Farbbereich. Das stellt das Bild sanft abgestimmt und nicht so schreiend bunt dar, was viel besser auswertbar ist.

Nach diesen Ausführungen haben wir also für jeden Temperaturwert – ob echt gemessen oder interpoliert gelogen – einen Wert aus den Farbkreis-Winkelgraden für ‚H‘, den Farbton. Wir setzen für ‚S‘ = 100% und für ‚L‘ = 50% fest, weil das so ganz gut aussieht.

Das Anzeigen haben wir hiermit beschrieben. MTheCam ist per WLAN eingebunden, wenn ein solches zugänglich ist, und montiert einen Webserver für den Zugang zu den Messwerten. So werden der Live-Temperaturfilm und die Messdaten jedes Bildes auch auf Smartphone & Co abrufbar.

Man kann sich wohl auch gut vorstellen, dass man Strategien festlegen kann, die irgendeine Meldung absetzen, wenn ein paar Pixel eines Bildes gegenüber dem Rest deutlich anders erscheinen oder das Bild sich insgesamt von den Vorgängern entfernt. Dafür haben wir auch eine API (Schnittstelle) vorgesehen, die über einen JSON-Datensatz pro Bild anderen Netzwerkklienten Speicherung und Auswertung ermöglicht.

Ruft man die IP-Adresse (im Router oder in der Consolenausgabe nachschauen) der MTheCam im lokalen Netz auf, wird eine Webseite mit dem aktuellen Falschfarb-Film angezeigt, über das die Temperaturwerte jedes Pixels sowie die Minimal-, Maximal- und Durchschnittswerte dargestellt werden. Über den Aufruf /frame kommt jedes Bild als JSON-Datensatz mit Messwerten, Farbwerten und den weiteren Werten zur weiteren Verarbeitung.

Das Projekt ist eine gute Basis für weitere Experimente, mit denen man reale Einsatzzwecke und Produktentwürfe ausloten kann. Clevere Ideen sind gefragt! Wir sind die Guten, die die Ideen real umsetzen.

In der Januar Ausgabe 2021 ist das Projekt auch im Elektor-Magazin erschienen. Im Elektor-Shop kann man den M5StickC und das lesenswerte Magazinheft bestellen.

Links:
Interpolation in Fotos
HSV-Farbraum
VisualStudio
Arduino-Entwicklungsumgebung
Arduino-JSON
M5StickC-Bibliothek
Projektseite des Autors
Source auf Github

MTheCam MTheCam MTheCam