Dieser Blogeintrag hat mich dazu gebracht, auch so einen Touchscreen in die Wand einzubauen. Hier zeige ich dir, wie ich das Hardware- und Softwaretechnisch gelöst habe.
Mit dem Display kann ich das Bild der Überwachungskamera ansehen, die Lüftungsanlage steuern, die Produktion der Solaranlage überwachen, Meine Mobile Alerts Sensoren auslesen und den Wetterbericht lesen.
Wenn der Touchscreen bei Bewegung an gehen soll, ein Bewegungsmelder
Ein paar Kabel
Einbau
Zum Einbau des Gehäuses gibt es nicht viel spannendes zu sagen. Ein Loch in die Wand machen, Gehäuse rein schieben und fixieren. Im Gehäuse habe ich dann noch Schrauben eingebaut, die später zur Befestigung mit den Magneten wichtig sind.
Im Keller direkt unter dem Display ist das Netzteil und eine LAN Buchse untergebracht. Von dem geht ein Kabel zu Stromversorgung und ein LAN Kabel nach oben. Zur Verkabelung habe ich im Gehäuse noch eine Lüsterklemme befestigt, um die Kabel, welche vom Bewegungsmelder und dem Netzteil kommen mit Jumperkabeln zu verbinden, die dann später auf die GPIO des Raspberry gesteckt werden können.
Um das Display mit Raspberry im Gehäuse zu befestigen, kann man dann einfach 4 Magnete auf den Schrauben platzieren, alle Kabel am Raspberry anstecken und das Display ins Gehäuse einsetzen. Es wird von den Magneten so fest gehalten, dass es nicht von selbst herausfällt, aber, dass man es mit etwas Kraft heraus holen kann.
Ich habe zusätzlich noch einen Bewegungsmelder eingebaut. Dieser ist in einer Blindabdeckung unter dem Display. Er ebenfalls mit einem Kabel mit dem Raspberry am Pin 10 angeschlossen.
Bilder vom Einbau
Software
Skript für Bewegungsmelder
Folgendes Python Skript nutze ich, damit ich mit dem Bewegungsmelder das Display an- und ausschalten kann:
In diesem Tutorial erkläre ich dir, wie du auf einem Raspberrypi das Betriebssystem „Rasberrypi OS“ (früher auch: Raspbian) installieren und eine ssh Verbindung aufbauen kannst. Das ist Grundlage für die meisten Tutorials im Netz.
Zunächst wird der RaspberryPi Imager heruntergeladen und installiert. Diesen gibt es für Windows, Mac und Linux. Nachdem man den Imager gestartet hat (Unter Windows musst du diesen evtl. als Administrator starten), wählt man das gewünschte Betriebssystem (in diesem Fall „RaspberryPi OS (32-Bit)“) und die SD-Karte, auf der man es installieren will.
ACHTUNG! Unbedingt die richtige Karte wählen. Es werden alle Daten auf der Karte gelöscht! Wenn man sich zu 100% sicher ist, dass man die richtige Karte gewählt hat, und dass auf der Karte keine wichtigen Daten mehr vorhanden sind, drückt man nun auf „Schreiben“. Das Betriebssystem wird dann auf die SD-Karte geschrieben.
Einrichten:
Nachdem der Imager das Betriebssystem installiert hat, geht’s jetzt ans Einrichten. Wenn man den RaspberryPi startet, wird man direkt von einem Einrichtungsfenster begrüßt. Hier muss natürlich jeder selbst entscheiden, wie er was einstellen möchte. Hier sihst du meine Konfiguration:
Über Himbeere -> Einstellungen -> RaspberryPi-Konfiguration können noch weitere Einstellungen, wie z.B. SSH, Kamera, die Auflösung oder das Passwort eingestellt werden.
SSH verbindung aufbauen
Wichtig ist, dass SSH aktiviert ist (siehe oben). Um eine SSH Verbindung aufzubauen wird im Terminal, in der Konsole, wie auch immer man es nennen will (Unter Linux, Mac und ab Windows 10) folgender Befehl eingegeben:
ssh pi@raspberrypi „raspberrypi“ ist hier der Hostname. Sollte man diesen geändert haben. Muss man ihn hier auch ändern. Alternativ kann man auch die IP Adresse verwenden. Sollten Fragen kommen, wie
The authenticity of host ‚raspberrypi.fritz.box (2003:e5:e74f:6650:d368:d6t8:271c:c330)‘ can’t be established. ECDSA key fingerprint is SHA256:5Bc5nLoAhjshu2jjau7JjWSKxSJUl+aYCqvhmNN/o. Are you sure you want to continue connecting (yes/no/[fingerprint])?
kann man diese mit „yes“ beantworten. Dann noch das Passwort eingeben (standard: „raspberry“) und schon ist man mit dem Pi Verbunden.
In diesem Tutorial erkläre ich dir, wie du auf einem Raspberrypi das Betriebssystem „Rasberrypi OS“ (früher auch: Raspbian) installieren und eine ssh Verbindung aufbauen kannst. Das ist Grundlage für die meisten Tutorials im Netz.
Wenn du einen Monitor hast, dann kannst du auch dieses Tutorial verwenden.
Installtion des Betriebssystems:
Zunächst wird der RaspberryPi Imager heruntergeladen und installiert. Diesen gibt es für Windows, Mac und Linux. Nachdem man den Imager gestartet hat (Unter Windows musst du diesen evtl. als Administrator starten), wählt man das gewünschte Betriebssystem (in diesem Fall „RaspberryPi Os (32-Bit)“) und die SD-Karte, auf der man es installieren will.
ACHTUNG! Unbedingt die richtige Karte wählen. Es werden alle Daten auf der Karte gelöscht!
Einrichten:
Im RaspberryPi Imager gibt es die Möglichkeit, ein paar Grundeinstellungen schon vor dem Schreiben des Betriebssystems auf die SD Karte einzustellen. So lässt sich der RaspberryPi auch ohne Monitor sehr einfach einrichten:
Drücke die Tastenkombination Strg+Shift+X. Sollte das nicht gehen, ist vielleicht eine ältere Version des Imagers installiert. Du kannst die veraltete Methode wählen, oder versuchen, deinen Imager zu updaten.
Es öffnet sich jetzt ein Fenster, in welchem man verschiedene Einstellungen vornehmen kann:
Sobald alle wichtigen Einstellungen vorgenommen wurden, klickt man auf speichern. Wenn man sich zu 100% sicher ist, dass man die richtige Karte gewählt hat, und dass auf der Karte keine wichtigen Daten mehr vorhanden sind, drückt man nun auf „Schreiben“. Das Betriebssystem wird dann auf die SD-Karte geschrieben.
Einrichten: (veraltete Methode)
Nachdem das Betriebssystem installiert wurde, geht’s jetzt ans Einrichten. Da du wahrscheinlich keinen Monitor hast, ist das etwas komplizierter, aber keine Sorge. Es ist trotzdem einfach :).
Wlan Verbindung aufbauen
Wenn du eine Verbindung über LAN hast, kannst du diesen Teil überspringen. Um eine Wlan Verbindung herzustellen, fügt man auf der „boot“ Partition der SD-Karte eine Datei mit dem Namen „wpa_supplicant.conf“ mit folgendem Inhalt ein:
Damit man sich auch per SSH später verbinden kann, muss dieses auch aktiviert werden. Dazu wird auf der „boot“ Partition der SD-Karte eine Datei mit dem Namen „ssh“ erstellt. Das war’s schon.
SSH Verbindung aufbauen
Nachdem man die SD-Karte in den Pi gesteckt und ihn angeschaltet hat kommen wir nun schließlich zum letzetn Teil. Um eine SSH Verbindung aufzubauen wird im Terminal, in der Konsole, wie auch immer man es nennen will (Unter Linux, Mac und ab Windows 10) folgender Befehl eingegeben:
ssh pi@raspberrypi „raspberrypi“ ist hier der Hostname. Sollte man diesen geändert haben. Muss man ihn hier auch ändern. Alternativ kann man auch die IP Adresse verwenden. Sollten Fragen kommen, wie
The authenticity of host ‚raspberrypi.fritz.box (2003:e5:e74f:6650:d368:d6t8:271c:c330)‘ can’t be established. ECDSA key fingerprint is SHA256:5Bc5nLoAhjshu2jjau7JjWSKxSJUl+aYCqvhmNN/o. Are you sure you want to continue connecting (yes/no/[fingerprint])?
kann man diese mit „yes“ beantworten. Dann noch das Passwort eingeben (standard: „raspberry“) und schon ist man mit dem Pi Verbunden.
Ein paar Einstellungen kann man mit „sudo raspi-config“ einstellen. Das Passwort sollte man dringend ändern!
Ein Gehäuse (Ich werde meines mit dem 3D Drucker ausdrucken)
etwas Lötmaterial
Für den Nistkasten
Ein Brett der Größe 27×190, 1,8cm Dick
30 Schrauben 3x35mm oder 3x40mm, Senkkopf
2Schrauben 3x20mm, Senkkopf
2Schraubenhaken 4x30mm für die Verriegelung an der Front
2Nägel
1 Scharnier
Bau des Nistkastens:
Zunächst wurde der Höhlenbrüternistkasten des NABU so umgebaut, dass der Raspberry Pi darin Platz hat. Folgendes wurde verändert:
Das Seitenteil gibt es 2 Mal
Der Boden ist durchgehend
Es kommt ein weiteres Teil mit den Maßen 5x25cm hinzu
Das Dach und die Rückwand sind 5cm länger
Das Gehäuse
Das Gehäuse habe ich mit dem 3D Drucker ausgedruckt. In dieses Gehäuse passt der Raspberry und der enc28j60. Ich musste es, weil der Ethernet Adapter nicht rein passte, noch etwas abändern. Wenn man gerade keinen 3D Drucker hat, kann man sich natürlich auch eines kaufen. Wichtig ist dabei nur, dass es nicht dicker als 4cm sein darf. Ansonsten muss der Nistkasten umgeplant werden. Da ich meine Infrarot LEDs gerne schalten möchte, habe ich diese extra an einen GPIO angeschlossen. Da diese aber nicht genug Strom lieferten, musst ich ein Relais einsetzen. Dieses und natürlich auch die Kamera und die IR LEDs selbst brauchen auch Gehäuse. Diese habe ich ebenfalls mit dem 3D-Drucker ausgedruckt. Gehäuse für Kamera und IR LEDs Halterung zum Einstellen der Kamera Gehäuse für das Relais
Nun geht‘s an die Software. Das LAN-Mudul habe ich aktiviert, indem ich in der raspi-config I2c aktiviert und in der /boot/config.txt die Zeile
1
dtoverlay=enc28j60
eingefügt habe.
Samba client einrichten
Alle meine Bilder, die ich mit der Kamera aufnehme, sollen auf einem Samba Server gespeichert werden. Dazu installiere ich einen Samba Client nach diesem Tutorial: 1. Updaten:
Ich orientiere mich hier an diesem Tutorial. Als Überwachungssoftware nutze ich motion. Diese kann ganz einfach installiert werden mit:
sudo apt-get install motion
Natürlich muss man in der raspi-config auch die Kamera noch aktivieren. Wenn das erledigt ist, muss man noch ein paar Einstellungen vornehmen. Als erstes braucht man ein paar Informationen über die Kamera:
v4l2-ctl -V
Hier sind die Informationen „Pixel Format“ und „Widht/Height“ wichtig. Diese werden wir später brauchen. Nun muss man in der Datei
sudo nano /etc/motion/motion.conf
ein paar Dinge bearbeiten: daemon on Dadurch startet motion im daemon Modus stream_localhost off Damit man auch von anderen Geräten, außer dem Pi selber auf den stream von motion zugreifen kann. target_dir /media/Bilder Der Ort, an dem die Aufnahmen gespeichert werden sollen v4l2_palette 17 Das Videoformat, das die Kamera hat. (siehe Befehl am Anfang) hier gilt: # V4L2_PIX_FMT_SN9C10X : 0 'S910' # V4L2_PIX_FMT_SBGGR16 : 1 'BYR2' # V4L2_PIX_FMT_SBGGR8 : 2 'BA81' # V4L2_PIX_FMT_SPCA561 : 3 'S561' # V4L2_PIX_FMT_SGBRG8 : 4 'GBRG' # V4L2_PIX_FMT_SGRBG8 : 5 'GRBG' # V4L2_PIX_FMT_PAC207 : 6 'P207' # V4L2_PIX_FMT_PJPG : 7 'PJPG' # V4L2_PIX_FMT_MJPEG : 8 'MJPEG' # V4L2_PIX_FMT_JPEG : 9 'JPEG' # V4L2_PIX_FMT_RGB24 : 10 'RGB3' # V4L2_PIX_FMT_SPCA501 : 11 'S501' # V4L2_PIX_FMT_SPCA505 : 12 'S505' # V4L2_PIX_FMT_SPCA508 : 13 'S508' # V4L2_PIX_FMT_UYVY : 14 'UYVY' # V4L2_PIX_FMT_YUYV : 15 'YUYV' # V4L2_PIX_FMT_YUV422P : 16 '422P' # V4L2_PIX_FMT_YUV420 : 17 'YU12' Da meine Kamera YU12 hat, nehme ich hier Nummer 17 widht 960 height 720 hier kann alles beliebige genutzt werden, was die Kamera maximal kann, nur das Seitenverhätnis muss stimmen. Ich empfehle aber dieses Format. threshold 1500 Das ist die Anzahl der Pixel, die sich verändern müssen, damit ein Bild aufgezeichnet wird. Sozusagen die Empfindlichkeit der Bewegungserkennung. Hier muss man selbst ausprobieren, was das beste ist. Als nächstes muss man noch die Datei sudo nano /etc/default/motion bearbeiten. Dort setzt man no auf yes. Damit motion auch automatisch gestartet wird, habe ich in der sudo nano /etc/rc.local noch die Zeile sudo motion hinzugefügt.
Email Versand
Bis ein Vogel eingezogen ist, muss motion nicht die ganze Zeit laufen. Deshalb hätte ich gerne, dass mir der Pi jeden Tag eine Email sendet, sodass ich sehen kann, ob bereits jemand eingezogen ist. Dazu verwende ich folgendes Skript:
print(" Beim E-Mail-Versand ist ein Fehler aufgetreten : ",
sys.exc_info())
GPIO.output(8,False)
GPIO.output(10,False)
Dieses Skript macht als erstes die IR LEDs an, dann macht es ein Bild, schickt es mir per Email und schaltet die LEDs anschließend wieder aus.
Bild auf Webserver
Diese Bilder, die auch per Email versendet werden, sollen auf einem Webserver gespeichert werden, sodass man immer das letzte Bild sehen kann. Dazu muss erstmal ein Webserver, in diesem Fall apache2 installiert werden: sudo apt-get install apache2 Dann muss die Zeile os.system("raspistill -o foto.jpg -w 960 -h 720") in os.system("raspistill -o /var/www/html/foto.jpg -w 960 -h 720") und fn= ‘/var/www/html/foto.jpg‘ abgeändert werden. Das war‘s auch schon. Das Bild kann man jetzt im Browser mit http://IP_DES_RPI/foto.jpg anschauen.
Zeitstempel im Bild
Dieser Teil ist nicht mehr aktuell.
Um sicherzustellen, dass auch wirklich ein neues Bild und nicht ein altes verschickt wird, hätte ich gerne, dass auf dem Bild ein Zeitstempel angezeigt wird. Das mache ich nach diesem Tutorial. Also eine neue Datei erstellen: /var/www/html/skript.sh Ausführbar machen: sudo chmod +x skript.sh Außerdem muss eine gewünschte Schriftart mit dem Namen „arial.ttf“ im Verzeichnis /var/ www/html liegen. Das einzige, was ich verändert habe, ist, dass die Datei immer den gleichen Namen bekommt und vorher gelöscht wird. Jetzt muss man noch die Zeile os.system(„sudo /var/www/html/skript.sh“) nach der Zeile os.system(„raspistill… in Datei mit dem Email Versandt schreiben. Dann kann man das Bild mit Zeitstempel im Browser unter http://IP_DES_RPI/time.jpg angeschaut werden. Soll das Bild auch per Email versendet werden, muss man die Zeile fn= ‘/var/www/html/foto.jpg‘ in fn= ‘/var/www/html/time.jpg‘ abgeändert werden.