Inhaltsverzeichnis:
- Schritt 1: Was Sie brauchen
- Schritt 2: Raspberry Pi-Setup
- Schritt 3: Die Skripte
- Schritt 4: Die Schaltung
- Schritt 5: Zusammenbauen
- Schritt 6: Und jetzt?
Video: O-R-A RGB-LED-Matrix-Wanduhr und mehr **aktualisiert Juli 2019** - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
Hallo. Hier bin ich mit einem neuen Projekt namens O-R-A
Es ist eine RGB-LED-Matrix-Wanduhr, die Folgendes anzeigt:
- Stunde:Minute
- Temperatur
- Feuchtigkeit
- Symbol für aktuelle Wetterbedingungen
- Google Kalender-Ereignisse und 1-Stunden-Erinnerungsbenachrichtigungen
zu einem bestimmten Zeitpunkt wird angezeigt:
- Google Kalender heute und morgen Terminliste
- Wettervorhersage
- aktuelle Nachrichten
Zusätzliche Funktionen:
- aktuelles Datum
- Magie 8 Kugel
- Küchenuhr
Für jede Funktion spielt das Gerät einen anderen Audioalarm ab. Für alle Wetterbedingungen gibt es eine entsprechende Audiodatei, die beim Aufruf der Funktionalität abgespielt wird.
Die Funktionalitäten wie Google Kalenderliste, Wettervorhersage, RSS Eilmeldungen starten zu einer vorgewählten Uhrzeit, wenn sich das Gerät im "Uhrmodus" befindet, diese können auch direkt über die Schalter aufgerufen werden. Eine weitere Funktionalität während des "Uhrmodus" zeigt den aktuellen Tag/Monat/Jahr an. Es kann durch Drücken der ENTER-Taste ausgeführt werden. Durch Drücken der CHANGE STATE-Taste und dann der ENTER-Taste innerhalb von 3 Sekunden im "Uhrmodus" gelangen Sie in das Optionsmenü. Die Taste CHANGE STATE dient zum Scrollen im Menü, die Taste ENTER dient zur Bestätigung der ausgewählten Option.
Dieses Projekt ist eine Weiterentwicklung meiner vorherigen LEGOLED und TEMPO. Das RGB-LED-Matrix-Panel hat jetzt eine Auflösung von 32x64, so dass es möglich ist, gleichzeitig verständlichere Grafiken, festen und Lauftext anzuzeigen. Mit den TEMPO-Funktionen schaltet sich das Gerät automatisch ein und aus, ohne eine Taste oder einen externen Timer. Ein PIR-Modul erkennt die Anwesenheit von Personen und schaltet daher das Display ein / aus.
Wettervorhersage- und Kalenderdaten werden jede Minute gesammelt, die von Google Kalender und Open Weather Map bereitgestellt werden.
Dieses Projekt ist vollständig anpassbar, beginnend mit einem Raspberry PI B +, 2 Modulen 16x64 RGB-LED-Matrix und Netzteil. Es kann, wie ich es getan habe, erweitert werden, indem USB-Soundkarten, Lautsprecher, Ein- / Aus-Stromkreis hinzugefügt werden.
Schritt 1: Was Sie brauchen
- Raspberry Pi B+ (mit integriertem WLAN oder Dongle)
- 2 x 16x64 RGB-LED-Matrix oder 2 x 32x32
- generischer Rahmen (ca. 40x50 cm & 3 cm Tiefe)
- mattierte Plastikfolie
- Fenster Solarfolie
- PS 5V 10A
- Kabel
- Duroplastischer Mantel (*)
- Relaismodul (*)
- zusätzliche PS für Audioverstärker (*)
- 3W Audioverstärkermodul (*)
- Lautsprecher (*)
- USB-Soundkarte (*)
- 2 x Mikroschalter (*)
- PIR (*)
- Attiny85 (*)
- DS3231 (*)
- Mosfet IRF540 (*)
- Widerstände: 3x1K, 2x10K, 1x2K (*)
- Klemmleiste (*)
- Kopfleisten weiblich (*)
- Kopfleisten männlich (*)
(*) Optional
Schritt 2: Raspberry Pi-Setup
Diese Anleitung basiert im Wesentlichen auf Raspbian Jessie Lite, Python 2.7 und der RGB LED MATRIX-Bibliothek des Hzeller Github-Benutzers.
Zuerst RPI aktualisieren und aktualisieren
git installieren
~ $ sudo apt-get install git
Laden Sie die RGB LED MATRIX-Bibliothek von Github herunter
~ $git-Klon
~ $ cd rpi-rgb-led-matrix
~ $ sudo machen
Blacklist RPI interne Soundkarte
~ $ Katze <<EOF | sudo tee /etc/modprobe.d/blacklist-rgb-matrix.conf
schwarze Liste snd_bcm2835
EOF
~ $ sudo update-initramfs -u
Legen Sie externe Soundkartenparameter fest, wenn Audiofunktionen erforderlich sind:
~ $ sudo nano /usr/share/alsa/alsa.conf
Veränderung:
defaults.ctl.card 0
defaults.pcm.card 0
zu
defaults.ctl.card 1
defaults.pcm.card 1
dann neu starten.
Jetzt Matrixbibliothek installieren
~ $ cd /home/pi/rpi-rgb-led-matrix
~ $ sudo apt-get update && sudo apt-get install python2.7-dev python-pillow -y
~ $ build-python erstellen
~ $ sudo make install-python
und installieren Sie andere benötigte Bibliotheken:
~ $ sudo easy_install pip
~ $ sudo pip install
Kopieren Sie das Skript samplebase.py von ~/rpi-rgb-led-matrix/bindings/python/samples/ in das Home-Verzeichnis
Erhalten Sie eine kostenlose API-Schlüsselregistrierung für Open Weather Map
Jetzt OWM Python-Wrapper für PYthon 2.7 installieren (Danke an CSPARPAGithub-Benutzer)
~ $ sudo pip install git+https://github.com/csarpa/[email protected]
Rufen Sie die Anmeldeinformationen für Google Kalender ab, indem Sie den Anweisungen unter der Google Kalender-API folgen
Für Audiowiedergabe installieren Sie Pygame
~ $ sudo apt-get install python-pygame
RSS-Feeds benötigen einen installierten Feedparser
~ $ sudo pip install feedparser
kopiere mein Skript ORAeng_131.py (englische Version) oder ORAita_131.py (italienische Version) ins Home-Verzeichnis
Ordner für Töne und Bilder erstellen:
mkdir dbsounds
mkdir owm
Laden Sie alle PNG-Dateien herunter und kopieren Sie sie in den owm-Ordner und die MP3-Dateien in den dbsounds-Ordner über den folgenden Link:
www.dropbox.com/sh/nemyfcj1a1i18ic/AAB1W7I6lg5EgqL1gJZPWVTxa?dl=0
fügen Sie Ihre OWM-Anmeldeinformationen zu Zeile 69 hinzu (API_key)
Stellen Sie die Stadt für die Wettervorhersage ein (überprüfen Sie, ob sie von OWM abgedeckt wird und der richtige Name akzeptiert wird) in den Linien 213, 215
obs =owm.weather_at_place('Napoli, IT')
fc = owm.three_hours_forecast('Napoli, IT')
********************************* AKTUALISIERUNG 28.07.2019*********** ******************
Die neue Google Kalender-API schafft Probleme. Ich habe das Entfernen einiger Module gelöst:
~ $ sudo apt-get remove --purge python-setuptools
~ $ sudo apt-get autoremove python-pyasn1
versuche das Skript auszuführen
~ $ sudo python ORAeng_150.py # oder ORAita_150.py für die italienische Version
Beim ersten Mal fragt das Skript nach der GCAL-Autorisierung. Klicken Sie auf den Link zu den Google-API-Anmeldeinformationen. Geben Sie dann die Erlaubnis, wenn alles in Ordnung ist, sehen Sie die Uhr beginnt.
Aufgrund der übermäßigen RAM-Auslastung nach mehreren Stunden habe ich ein Skript geschrieben, das das Python-Skript einfach neu startet, wenn die RAM-Auslastung einen Schwellenwert überschreitet. Kopieren Sie dann das Skript mit dem Namen memcheck umbenennen in memcheck.sh in das Home-Verzeichnis und fügen Sie es zu crontab -e together main script. hinzu
*/5 * * * * bash /home/pi/memcheck.sh@reboot sudo python /home/pi/ORAeng_150.py
Schritt 3: Die Skripte
Das Hauptskript muss entsprechend Ihren Bedürfnissen angepasst werden. Unter der Annahme, dass OWM- und Goggle-Kalender-Anmeldeinformationen als ihre jeweiligen API-Anweisungen festgelegt sind, sind die wichtigsten Parameter:
Kalenderereignisliste, die jede Stunde zu Minute 2, 32 ausgeführt wird (siehe Skriptzeile 65)
Wetterbedingungen und Vorhersage werden jede Stunde zu Minute 7, 37 ausgeführt (siehe Skriptzeile 66)
Breaking News stündlich bei Minute 11 (siehe Skriptzeile 67)
Breaking News-RSS-Kanal. Inside-Skript ist Instructable RSS eingestellt, kann aber geändert werden. (siehe Skriptzeile 366)
Offensichtlich räumt das Skript eingehenden Kalenderereignissen oder Erinnerungsbenachrichtigungen Priorität ein. Manchmal führt die Uhr ihre Funktionen nicht aus, um ein Überkreuzen von Funktionalitäten zu vermeiden.
Attiny85 Ein/Aus-Timer muss programmiert werden, um die Skizze Tempo_V1_9_1Mhz_bugfix.ino hochzuladen.
Dadurch kann das Gerät um 8 Uhr morgens eingeschaltet und um 23 Uhr ausgeschaltet werden. Weitere Informationen finden Sie im Tutorial.
Schritt 4: Die Schaltung
Die Schaltung besteht im Wesentlichen aus 3 Abschnitten
- Ein-/Ausschalttimer, der vom DS3231-Modul, Attiny85 und Mosfet verarbeitet wird
- Schalter zur manuellen Steuerung der Uhrfunktionen
- Anschlussabschnitt, wo die Verkabelung für RGB-LED-Matrix-Daten und -Strom, Audioverstärker und Raspberry Pi. erfolgt
Nicht erwähnt ein ohmscher Spannungsteiler, der es RPI ermöglicht, ein HIGH / LOW 5V-Signal von Attiny85. zu lesen
Schalter sind über interne Widerstände direkt mit dem RPI-Pin und GND verbunden
Der Attiny85-Timer stammt aus meinem vorherigen Projekt namens TEMPO. Grundsätzlich sendet DS3231 ein LOW-Signal an den Attiny85-Interrupt-Pin, der ihn aus dem Schlafmodus aufweckt. Beim Aufwachen sendet Attiny85 ein HIGH-Signal an den Mosfet-Transistor und aktiviert die Stromversorgungsschaltung für RPI, LED-Matrix und Audioverstärker (wenn nicht über ein Relais an eine zusätzliche PS angeschlossen, wie in meiner letzten Konfiguration).
Um RPI herunterzufahren, erwägt mein Skript, dass RPI das digitale Signal an Pin 14 abhört, wenn es HIGH ist, wird als Shutdown-Befehl bezeichnet. Dann führt RPI einen korrekten Shutdown-Prozess durch, dann geht Attiny85 nach einer Minute wieder in den Schlafmodus und Mosfet empfängt ein LOW-Signal, das das gesamte Gerät ausschaltet. Dieser Prozess ist grob, aber effektiv.
Das PIR-Modul ist optional und wird direkt an RPI GPIO angeschlossen.
Meine Konfiguration erfordert, dass die folgenden RPI-GPIO-Pins angeschlossen sind:
15 bis PIR
14 zu Attiny85 Pin 3 durch Spannungsteiler
21 zum Relaismodul
2 zum Umschalten (ENTER-TASTE)
3 zum Wechseln (TASTE ÄNDERN)
Themen:
- Rauschen durch LED-Matrix-Netzteil, gelöst mit kleinem PS nur für den Audioverstärker. Ein optionales Relais ermöglicht das Einschalten des Verstärkers nur bei Bedarf. Dies kann beim Ein- und Ausschalten ein Stoßgeräusch verursachen.
Die Schaltung wurde mit Kupferplatte, 3D-Drucker, Marker und Eisenchlorid geätzt.
Schritt 5: Zusammenbauen
Ich habe einen generischen 40x50cm Rahmen für dieses Projekt zusammen mit 3D-gedruckten Teilen und einigen optionalen Extras angepasst.
Das Glas wird durch Fenstersolarfolie und mattierte Plastikfolie abgeschirmt. Die LED-Matrix muss etwa 1 cm zum Glas gehalten werden, um zu vermeiden, dass die weißen inneren LEDs zu sehen sind. Es sind kleine Schrauben wie M3-Muttern und -Schrauben erforderlich. Obligatorisch sind Kabel und Duroplastmantel.
LED-Matrizen sind auf der Rückseite des Rahmens verschraubt.
Schritt 6: Und jetzt?
Der nächste Schritt besteht darin, einen Temperatursensor, die Aktivierung von Bluetooth-Funktionen und, warum nicht, einen Internetradio-Player hinzuzufügen, bis das Raspberry Pi-Potenzial maximal ist.
Wiedersehen
Zweiter im Uhrenwettbewerb