Zusammenfassung
e-Paper Foto-Anzeige
Siehe bitte die vollständigen Details unterDie GitHub-Seite
Einführung
Dieses Projekt verwandelt einen Raspberry Pi Zero 2 W mit einem Waveshare 7,5-Zoll-e-Paper-Display in einen dynamischen Foto-Viewer, der Bilder aus Firebase Storage abruft und sie mit einer überlagerten Uhr anzeigt. Ich habe dieses Projekt für meine Großeltern als Geschenk für Weihnachten 2024 erstellt. Sie haben es absolut geliebt! Es ist ein wunderbares Geschenk für jeden, der von seinen Lieben getrennt ist und eine bede
Komponenten
Benötigte Teile
-
Waveshare 7,5-Zoll e-Paper HAT
-
Raspberry Pi Zero 2 W
-
PLA-Filament
- Jedes Standard-PLA-Filament für den 3D-Druck.
- Schrauben und Muttern
- 4x M2,5-Schrauben
- 4x M2.5 Muttern
3D-gedruckte Teile
STL-Dateien
Das Projekt enthält 3D-druckbare Dateien für den Rahmen des e-Paper-Displays. Sie finden sie im STL-Ordner:
- Frame_Base.stl
- Frame_Lid.stl
Verwenden Sie Ihre bevorzugte 3D-Drucksoftware, um diese Teile zu drucken. Stellen Sie sicher, dass Ihre Druckereinstellungen den für Ihren PLA-Filament erforderlichen Spezifikationen entsprechen.
Versammlung
-
Drucke den Rahmen:
- Verwenden Sie die bereitgestellten STL-Dateien, um Frame_Base.stl und Frame_Lid.stl zu drucken.
-
Bauen Sie das Display zusammen:
- Befestigen Sie den Waveshare e-Paper HAT am Raspberry Pi Zero 2 W mit den M2.5-Schrauben und -Muttern.
- Sichern Sie den Raspberry Pi und das e-Paper-Display innerhalb des 3D-gedruckten Rahmens.
- Connect Power:
- Stellen Sie sicher, dass der Raspberry Pi an eine zuverlässige Stromquelle angeschlossen ist.
Software-Einrichtung
1. Bereiten Sie Ihren Raspberry Pi vor.
Bevor Sie fortfahren, stellen Sie sicher, dass Ihr Raspberry Pi Zero 2 W ist:
-
Konfiguriert mit dem neuesten Betriebssystem:
- Installiere Raspberry Pi OS Lite für eine minimale Einrichtung.
-
Verbunden mit dem Netzwerk:
- Editieren Sie die Datei wpa_supplicant.conf, um Ihre Wi-Fi-Anmeldedaten einzufügen.
- SSH aktiviert:
- Platziere eine leere Datei namens ssh (ohne Erweiterung) in der Boot-Partition der SD-Karte, um SSH zu aktivieren.
Beispiel wpa_supplicant.conf:
country=USctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1network={ ssid="YOUR_WIFI_SSID" psk="YOUR_WIFI_PASSWORD"}2. Installieren Sie Abhängigkeiten.
Verbinden Sie sich über SSH mit Ihrem Raspberry Pi und installieren Sie die erforderlichen Pakete:
sudo apt updatesudo apt install -y python3-pip gitpip3 install firebase-admin Pillow schedule requestspip3 install waveshare-epdHinweise:
-
Python 3:Stellen Sie sicher, dass Python 3 auf Ihrem Raspberry Pi installiert ist. Sie können die Version überprüfen, indem Sie Folgendes verwenden:
python3 --version -
pip3:Der Python-Paket-Installer sollte verfügbar sein. Falls nicht, installieren Sie ihn mit:
sudo apt install -y python3-pip - Waveshare e-Paper-Bibliothek:Die Waveshare-epd-Bibliothek ist für die Anbindung an das e-Paper-Display erforderlich. Stellen Sie sicher, dass sie mit Ihrem spezifischen e-Paper-Modell kompatibel ist.
3. Konfigurieren Sie das Skript.
-
Klone das Repository:
Ersetze deinen Benutzernamen und deinen Repository-Namen durch deinen tatsächlichen GitHub-Benutzernamen und den Namen des Repositorys.
git clone https://github.com/yourusername/your-repo-name.gitcd your-repo-name -
Editieren Sie die Konfiguration:
Öffne das eink.py-Skript und ersetze die Platzhalter-Pfade und -Einstellungen durch deine eigenen.
nano eink.pyKonfigurationsabschnitt:
# ============================# Konfiguration (ersetzen Sie das Folgende durch Ihre eigenen Einstellungen)# ============================CACHE_DIR = '/path/to/your/eink_cache' # ERSETZEN SIE durch Ihren Cache-VerzeichnispfadFONT_PATH = "/path/to/your/fonts/DejaVuSans.ttf" # ERSETZEN SIE durch Ihren Schriftart-DateipfadDISPLAY_WIDTH = 800 # ERSETZEN SIE durch die Breite Ih- CACHE_DIR: Verzeichnis zum Speichern von zwischengespeicherten Bildern.
- FONT_PATH: Pfad zu Ihrer TrueType-Schriftartendatei.
- DISPLAY_WIDTH & DISPLAY_HEIGHT: Auflösung Ihres e-Paper-Displays.
- Bildanzeigedauer: Zeit, in der jedes Bild angezeigt wird (in Sekunden).
- CLOCK_UPDATE_INTERVAL: Intervall für Uhr-Updates (in Sekunden).
- FIREBASE_CREDENTIALS_PATH: Pfad zu Ihrer Firebase-Service-Konto-JSON-Datei.
- FIREBASE_BUCKET_NAME: Dein Firebase Storage-Bucket-Name.
- MAPPENNAME: Ordner in Firebase Storage, in dem Bilder gespeichert werden.
- EINSTELLUNGEN_SAMMLUNG & EINSTELLUNGEN_DOKUMENT: Firestore-Sammlung und Dokumentnamen für Anzeigeeinstellungen.
Speichern und beenden:
Drücke CTRL + X, dann Y, und Enter, um die Änderungen zu speichern und den Editor zu verlassen.
4. Firebase-Konfiguration hochladen
Übertragen Sie Ihre Firebase-Service-Konto-JSON-Datei sicher auf den Raspberry Pi. Sie können scp von Ihrem lokalen Computer verwenden:
scp /path/to/your/firebase-service-account.json pi@your_pi_ip:/path/to/your/firebase-service-account.jsonErsetzen Sie /path/to/your/firebase-service-account.json durch den tatsächlichen Pfad auf Ihrem lokalen Computer und /path/to/your/firebase-service-account.json durch den gewünschten Pfad auf dem Raspberry Pi.
Beispiel:
scp ~/Downloads/firebase-service-account.json pi@192.168.1.100:/home/pi/your-repo-name/firebase-service-account.jsonBerechtigungen sicherstellen:
Auf dem Raspberry Pi, setzen Sie geeignete Berechtigungen für die Firebase-Anmeldeinformationen-Datei:
chmod 600 /home/pi/your-repo-name/firebase-service-account.json5. Richten Sie ein Skript ein, das beim Start ausgeführt wird.
Um sicherzustellen, dass das Skript automatisch ausgeführt wird, nachdem der Raspberry Pi hochfährt und sich mit dem Netzwerk verbindet, richten Sie es als Systemd-Dienst ein.
-
Erstellen Sie eine Service-Datei:
sudo nano /etc/systemd/system/eink.service -
Fügen Sie den folgenden Inhalt hinzu:
[Unit]Beschreibung=e-Paper Foto-Display-ServiceNach=network-online.targetWünscht=network-online.target[Service]ExecStart=/usr/bin/python3 /home/pi/your-repo-name/eink.pyArbeitsverzeichnis=/home/pi/your-repo-nameStandardausgabe=erbenStandardfehler=erbenNeustart=immerBenutzer=pi[Install]WantedBy=multi-user.target- ExecStart: Pfad zum Python-Interpreter und zu Ihrem Skript.
- Arbeitsverzeichnis: Verzeichnis, in dem sich Ihr Skript befindet.
- BenutzerDer Benutzer, der das Skript ausführen soll (pi ist standardmäßig).
-
Lade systemd neu und aktiviere den Dienst:
sudo systemctl daemon-reloadsudo systemctl enable eink.servicesudo systemctl start eink.service -
Überprüfen Sie den Service-Status:
sudo systemctl status eink.serviceStellen Sie sicher, dass der Dienst aktiv ist und ohne Fehler läuft.
Das Projekt ausführen
Sobald es montiert und konfiguriert ist, beginnt das e-Paper-Display automatisch, Bilder aus Firebase Storage anzuzeigen und die Uhr basierend auf Ihren Einstellungen zu aktualisieren.
Bilder hinzufügen
-
Bilder in Firebase Storage hochladen:
- Navigieren Sie zu Ihrer Firebase-Konsole.
- Gehe zuSpeicherungund lade Bilder in den angegebenen FOLDER_NAME hoch.
- Unterstützte Bildformate:
- Stellen Sie sicher, dass die Bilder in einem unterstützten Format sind (z. B. JPEG, PNG).
Einstellungen aktualisieren
-
Firestore-Konfiguration:
- Navigieren Sie zuFirestoreIn deiner Firebase-Konsole.
- Lokalisieren Sie die SETTINGS_COLLECTION und SETTINGS_DOCUMENT.
-
Verfügbare Einstellungen:
{"show_clock": true,"show_photos": true,"timezone": "America/New_York"}- Show_clock(Boolean): Ob die Uhr angezeigt werden soll.
- Fotos zeigen(Boolean): Ob Fotos angezeigt werden sollen.
- Zeitzone(String): Zeitzone für die Uhr (z. B. "America/New_York").
- Einstellungen ändern:
- Sie können diese Einstellungen jederzeit aktualisieren, und das Skript wird die neuesten Einstellungen basierend auf den konfigurierten Intervallen abrufen.
Fehlerbehebung
-
Schriftart nicht gefunden:
- Stellen Sie sicher, dass der FONT_PATH im Skript auf eine gültige TrueType-Schriftartdatei verweist.
-
Firebase-Initialisierungsfehler:
- Überprüfen Sie, ob die Firebase-Anmeldedaten-Datei am angegebenen Pfad existiert und über die erforderlichen Berechtigungen verfügt.
-
Anzeigeprobleme:
- Überprüfen Sie die Verbindungen zwischen dem Raspberry Pi und dem e-Paper-Display.
- Stellen Sie sicher, dass die richtige e-Paper-Bibliothek (waveshare-epd) installiert ist.
-
Dienst startet nicht:
- Überprüfen Sie den Status des Systemd-Dienstes mit:
- Überprüfen Sie die Protokolle auf Fehler und stellen Sie sicher, dass alle Pfade in der Service-Datei korrekt sind.
-
Netzwerkprobleme:
- Bestätigen Sie, dass der Raspberry Pi mit dem Internet verbunden ist.
- Stellen Sie sicher, dass die Wi-Fi-Anmeldedaten in wpa_supplicant.conf korrekt konfiguriert sind.
- Bild-Download-Fehler:
- Stellen Sie sicher, dass die Bilder in Firebase Storage öffentlich zugänglich sind oder dass das Dienstkonto die erforderlichen Berechtigungen hat.
- Überprüfen Sie die Internetverbindung.
Теги
Источник модели
