1. Thermographie-Kamera mit dem Raspberry Pi 2. Ansteuerung des Sensors mit Perl 3. Ansteuerung der Servos / Auswertung 4. Zusammenfassung, WLAN und Batteriebetrieb |
|
Zur Motivation ein Video mit dem ersten Prototypen.
Das fertige Gerät kann folgendes:
- Smartphones können sich mit dem System per WLAN verbinden
- Das System lässt sich per Smartphone bedienen
- arbeitet auch ohne Netzteil völlig autonom (mit Akku)
Daemonen
Damit das Perl-Script für den Sensor, das Python-Script für die Servo-Steuerung und das UI automatisch im Hintergrund (als Daemon) gestartet werden wird je ein Script im /etc/init.d-Verzeichnis benötigt. Das sind die Files mlx90614 und thermopi aus dem github-Repository:https://github.com/hermann-kurz/thermography-raspberrypi/tree/master/init.d
Diese Files werden ins Verzeichnis /etc/init.d kopiert und (als Benutzer root) mit
update-rc.d mlx90614 defaults
update-rc.d thermopi defaults
aktiviert.
Nach einem Neustart des Raspberry Pi müssen beide Daemons laufen und sind mit einem Browser erreichbar:
unter
http://[ADRESSE DES RASPI]
sieht man die aktuelle Temperatur (das ist der Daemon für den Sensor), unter
http://[ADRESSE DES RASPI]
erreicht man das UI der Thermographie-Kamera.
WLAN
Für autonomen Betrieb kann der Raspberry Pi als WLAN-Accesspoint betrieben werden. Mit einem Smartphone, das damit verbunden ist, wird die Thermographie-Kamera dann bedient.
Für Accesspoint-Betrieb braucht man einen WLAN-USB-Dongle, der Master-fähig ist. Ich verwende einen TP-LINK TL-WN721N, der ohne zusätzliche Treiber erkannt wird, aber auch andere Dongles sind möglich.
hostapd
Die Accesspoint-Verwaltung übernimmt ein weiterer Daemon, hostapd.Konfiguration WLAN-Interface
Die statische IP-Adresse kommt über einen Eintrag in /etc/network/interfaces, bei mir sieht das so aus:auto wlan0
iface wlan0 inet static
address 192.168.1.1
netmask 255.255.255.0
Wichtig ist hier, daß das WLAN-Interface eine statische Adresse erhält.
hostapd-Installation/Konfiguration
weiter geht es mit
aptitude install hostapd hostap-utils iw isc-dhcp-server
damit wird die hostapd-Software für den Accesspointbetrieb und ein DHCP-Server (für das zugreifende Smartphone) installiert.In
/etc/default/hostapd
wird die Zeile
#DAEMON_CONF=""nach:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
geändert. Danach wird der Accesspoint über
/etc/hostapd/hostapd.conf
konfiguriert. Bei mir sieht sie die Datei so aus:
interface=wlan0
###############################
# Basic Config
###############################
macaddr_acl=0 auth_algs=1
# Most modern wireless drivers in the kernel need driver=nl80211
driver=nl80211
##########################
# Local configuration...
##########################
interface=wlan0
ssid=ThermoPI
hw_mode=g
ieee80211n=1
channel=1
auth_algs=1
wmm_enabled=0
own_ip_addr=192.168.1.1
Mit dieser Konfiguration wird ein WLAN namens "ThermoPi" aufgespannt. Ein Passwort ist nicht nötig, was im Standalone-Betrieb auch nicht weiter schlimm ist.
DHCP
Geräte (Smartphones), die sich mit dem WLAN verbinden, brauchen ebenfalls eine IP-Adresse. Die wird von einem DHCP-Server geliefert, der auf dem RasPi läuft.Konfiguration über die Datei
/etc/dhcp/dhcpd.conf
Dieser Eintrag
#
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.2 192.168.1.254;
}
sagt dem DHCP-Server, daß er IP-Adressen im Bereich 192.168.178.2 bis 192.168.178.254 an die WLAN-Teilnehmer ausgeben soll.
Akkubetrieb
Wenn man das Gerät ohne Stromanschluß betreiben will, kann man eine "USB-Powerbank", einen Akku mit USB-Anschluß benutzen.Betrieb
Nach Reboot des Raspberry Pi sieht man das WLAN "ThermoPi".Nachdem man sich mit einem Smartphone verbunden hat, erhält man mit dem Browser über die URL http://192.168.178.1 die Benutzeroberfläche der Thermographie-Kamera!
Die URL kann man sich als Shortcut im Smartphone speichern und kommt dann direkt auf die Thermographie-Kamera
Über den Browser startet man am besten erstmal eine Aufnahme mit grober Auflösung, das geht schneller. Hat man den richtigen Bildausschnitt, erhöht man die Auflösung. Wenn das Bild fertig ist, gibt es einen Reload, das neueste Bild ist sichtbar. Man kann es nun auf dem Smartphone speichern.
Verbesserungsmöglichkeiten
Bei jedem Projekt gibt es Verbesserungsmöglichkeiten. Hier ein paar Vprschläge- Der MLX90614 ist relativ träge, d.h. nach jedem Messen muß etwas gewartet werden. Damit braucht ein komplettes Thermographiebild mit höherer Auflösung recht lange, etwa 5 Minuten für ein 48x48 Pixel grosses Bild. Die Meßzeit kann aber verändert werden, Einzelheiten im Datenblatt des Sensors.
- Höhere Auflösung: Script erweitern. Nachteil: längere Scan-Zeit
- Bilder freigeben über Samba
- erfasste Bilder browsen über Smartphone
https://github.com/hermann-kurz/thermography-raspberrypi
jede Rückmeldung ist willkommen!
Links:
- hostapd
- Making scripts run at boot time with Debian
- Datenblatt MLX90614
- https://github.com/hermann-kurz/thermography-raspberrypi
1. Thermographie-Kamera mit dem Raspberry Pi 2. Ansteuerung des Sensors mit Perl 3. Ansteuerung der Servos / Auswertung 4. Zusammenfassung, WLAN und Batteriebetrieb |