Heute komme ich mal mit der Neuauflage des Artikels „Die RasPiCam„. Hintergrund der Geschichte ist die Temperaturerfassung mit dem Sensor Dallas DS18B20, welcher aus meiner Sicht zuverlässiger arbeitet als der zuvor von mir eingesetzte TEMPer1. Den DS18B20 inkl. des benötigten 4700 Ohm Widerstands bekommt man inkl. Versand für unter 4€. Um die gewünschte Temperatur ins Bild zu bekommen, habe ich das ganze mal schnell zusammen gesteckt bzw. geschraubt. Das Ganze ist natürlich noch richtig zu verlöten und mit Schrumpfschläuchen zu versehen.
den Aufbau versuche ich nun vom Anfang zu erklären. Zuerst wird die Cam wie auf den Abbildungen via
1 |
sudo raspi-config |
aktiviert.
Nun richtet man einen Cron-Job ein. In dem Fall wird alle 10 Minuten ein Foto gemacht. Der Eintrag sollte hierbei ganz ans Ende gestellt werden.
1 |
sudo nano /etc/crontab |
1 |
*/10 * * * * pi raspistill -w 800 -h 600 -o /var/www/cam.jpg |
1 |
sudo /etc/init.d/cron restart |
Zwei Einträge werden in die /boot/config.txt eingefügt. Damit wird die Cam-LED deaktiviert. Die zweite Zeile ist für die Tempereaturmessung ab Kernel 3.18.8 nötig. Dazu ist der Editor zu öffnen.
1 |
sudo nano /boot/config.txt |
Am Ende der config.txt werden nun folgende Einträge gesetzt.
1 2 |
disable_camera_led=1 dtoverlay=w1-gpio |
Damit der Sensor nach dem Neustart seine Arbeit aufnehmen kann muss noch folgender Eintrag in die /etc/module vorgenommen werden.
1 |
sudo bash |
1 |
echo >> /etc/modules w1-gpio && sudo echo >> /etc/modules w1_therm |
1 |
exit |
Nach einem ersten
1 |
sudo reboot |
sollte man schauen, ob der Sensor erkannt wurde. Das macht man mit
1 |
cd /sys/bus/w1/devices/ |
und schaut mit
1 |
ls |
nach. Hier sollte nun das Sensor-Verzeichnis erscheinen, welches i.d.R. bei einem DS18B20 mit 28- anfängt (DS18S20 mit 10-). In meinem Fall sieht das so aus:
/sys/bus/w1/devices/28-0000067c28ce/
Und wieder zurück ins Home-Verzeichnis.
1 |
cd /home/pi |
Über die Abfrage
1 |
cat /sys/bus/w1/devices/"Sensor-Verzeichnis"/w1_slave |
kann man nun sehen, ob der Temperaturfühler auch arbeitet. Hier ist der Befehl natürlich an den eigenen Sensor -Verzeichnis anzupassen. Dies muss auch im nachfolgendem Script entsprechend umsetzen!
Das Script /home/pi/branding.sh erledigt dann alles weitere. Es erzeugt eine PNG mit transparentem Hintergrund und dem einzublendendem Schriftzug. Diese wird dann anschließend über das Bild der Cam gelegt. Das neue Bild mit dem Branding wird unter dem Namen cam_watermark.jpg abgespeichert. Hierzu muss noch ImageMagick installiert werden.
1 |
sudo apt-get install imagemagick |
Das Script branding.sh sieht dann so aus und wird unter /home/pi/ abgelegt.
1 |
sudo nano /home/pi/branding.sh |
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/bin/sh #Systemzeit ausgeben date=`date --rfc-2822` date2=`date -d "$date" +%e.' '%B' '%Y' | '%H:%M' Uhr'` #Temperatur auslesen temp=`cat /sys/bus/w1/devices/28-0000067c28ce/w1_slave | sed -n "s/.*t=\(.*\)/\1/p"` temp2=`echo "scale=2; $temp / 1000" | bc` #Schriftzug erstellen als PNG convert -size 800x600 xc:transparent -font Courier-bold -pointsize 25 -fill white -draw \ "text 20,575 'intux.de | $date2 | $temp2°C '" /var/www/watermark.png #Cam-Bild und Schriftzug zusammenbringen composite -dissolve 50% -quality 100 /var/www/watermark.png /var/www/cam.jpg /var/www/cam_watermark2.jpg |
Die Datei branding.sh muss nach der Erstellung noch ausführbar gemacht werden.
1 |
sudo chmod +x /home/pi/branding.sh |
Damit Das Script auch richtig rechnen kann wird der Basic Calculator installiert.
1 |
sudo apt-get install bc |
Jetzt wird noch ein weiterer Cron-Job (am Ende einfügen) für das Script branding.sh angelegt.
1 |
sudo nano /etc/crontab |
1 |
*/10 * * * * pi /home/pi/branding.sh |
1 |
sudo /etc/init.d/cron restart |
Ganz zum Schluss erfolgt sicherheitshalber noch ein Neustart und dann sollte die Cam wie gewünscht Bilder mit Temperaturanzeige machen.
1 |
sudo reboot |
Die Idee das mit dem DS18B20 zu realisieren entstand beim Lesen des Buches “Raspberry Pi für Kids” des mitp-Verlags.
Viel Spaß!
Wie kommt es denn, dass in dem Bild von 4,7 kΩ die Rede ist, du in deinem Artikel aber 470 Ω schreibst?
Danke, Tippfehler. Es muss natürlich 4700 Ω heißen. Ich ändere es gleich! 😉
[…] Siehe dazu: Temperaturanzeige in der Webcam des RasPi […]
[…] man die Temperatur mit einem Sensor Dallas DS18B20 messen kann, hatte ich im Artikel “Temperaturanzeige in der Webcam des RasPi” kurz erklärt. Um diese Temperatur in einem Diagramm darzustellen, habe ich mich ein […]
[…] man die Temperatur mit einem Sensor Dallas DS18B20 messen kann, hatte ich im Artikel “Temperaturanzeige in der Webcam des RasPi” kurz erklärt. Um diese Temperatur in einem Diagramm darzustellen, habe ich mich ein […]
[…] Ich verkaufe eine gebrauchte Raspberry Pi Cam, ein passendes Gehäuse für den Raspberry Pi 2 und einen schon verkabelten Temperatursensor (siehe „Temperaturanzeige in der Webcam des RasPi„) […]
Statt „cat /sys/bus/w1/devices/“Sensor-Verzeichnis“/w1_slave“ geht auch „cat /sys/bus/w1/devices/28-*/w1_slave“
Frank Lüttig !
Eine tolle nachvollziehbare Anleitung die du erstellt und
uns zur Verfügung gestellt hast. … Danke
Wie stelle ich es an das bei einer Temperatur von z.B. -0.75 °C
nicht -.75°C sonder -0.75°C ins watermark.png eingearbeitet wird.
Also eine Null vor den Punkt dargestellt wird.
Tschüss Frank
Da kann ich dir leider im Moment auch nicht helfen. Ich versuche das aber mal zu reproduzieren und melde mich dann.
Leider kann ich das alles nicht mehr testen, da ich die Hardware hierfür nicht mehr vorrätig habe. Ich würde aber vorschlagen, dir folgende Links mal genauer anzusehen:
https://willy-tech.de/temperatursensor-an-raspberry-pi/
http://www.netzmafia.de/skripten/hardware/RasPi/Projekt-Onewire/index.html
Vlt. findest du dort den entscheidenden Tipp.
[…] die Temperatur mit einem Sensor Dallas DS18B20 messen kann, hatte ich im Artikel „Temperaturanzeige in der Webcam des RasPi“ kurz erklärt. Um diese Temperatur in einem Diagramm darzustellen, habe ich mich ein […]
[…] Siehe hierzu Artikel „Temperaturanzeige in der Webcam des RasPi„. […]