Inhaltsverzeichnis:

Upcycled Wecker Smart Light - Gunook
Upcycled Wecker Smart Light - Gunook

Video: Upcycled Wecker Smart Light - Gunook

Video: Upcycled Wecker Smart Light - Gunook
Video: Настольные часы Xiaomi с проекцией времени на стену 2024, November
Anonim
Upcycled Wecker Smart Light
Upcycled Wecker Smart Light
Upcycled Wecker Smart Light
Upcycled Wecker Smart Light
Upcycled Wecker Smart Light
Upcycled Wecker Smart Light

In diesem Projekt upcycle ich einen komplett kaputten Aufziehwecker. Das Zifferblatt wird durch 12 LEDs ersetzt, die von einem LED-Streifen um den Rand der Uhr beleuchtet werden. Die 12 LEDs zeigen die Uhrzeit an und der LED-Streifen ist so programmiert, dass er als Alarm fungiert und zur eingestellten Zeit die volle Helligkeit erreicht. Alles wird von einem Raspberry Pi Zero gesteuert, der unzählige Integrations- und Erweiterungsmöglichkeiten bietet, wie die automatische Synchronisierung des Lichtalarms mit Ihrem Telefonalarm oder das Blinken der LEDs, wenn Sie eine E-Mail erhalten.

Das Projekt verwendet relativ billige oder wiederverwendete Komponenten - das einzige, was ich am Ende gekauft habe, war der Spannungsregler. Alles andere hatte ich zufällig herumliegen, wie zum Beispiel ein abgeschnittener LED-Streifen. Dieses Instructable führt Sie durch, wie ich meiner kaputten Uhr ein neues Leben gab und Sie hoffentlich dazu inspirieren könnte, etwas Eigenes aufzuwerten.

Schritt 1: Teile

Teile
Teile
Teile
Teile
Teile
Teile

Um alles zu steuern, verwenden wir einen Raspberry Pi Zero, da er klein ist, sehr wenig kostet und mit WiFi verbunden werden kann, was bedeutet, dass wir keine Echtzeituhr benötigen und den Code daher einfach von einem Laptop aus aktualisieren können. Sofern Sie keinen Pi Zero W haben, stellen wir über einen USB-WLAN-Dongle eine Verbindung zu einem WLAN-Netzwerk her.

Hier ist eine Liste der Teile, die ich verwendet habe, aber die meisten Dinge können gegen geeignete Alternativen ausgetauscht werden. Anstelle eines Raspberry Pi könnten Sie beispielsweise ein Arduino mit einer Echtzeituhr verwenden, um das Projekt zu steuern.

Verwendete Teile

  • Ein alter Wecker
  • 30cm warmweißer LED-Streifen
  • 1x Raspberry Pi Zero + Micro-SD-Karte
  • 1x USB-WLAN-Dongle + Micro-USB-zu-USB-Konverter
  • 12x LEDs
  • 12x 330 Ohm Widerstände (höher verwenden, wenn Sie Dimmer-LEDs wünschen)
  • 1x TIP31a (oder anderer npn-Leistungstransistor oder MOSFET)
  • 1x 1k Widerstand
  • 1x LM2596 DC-DC einstellbarer Abwärtswandler (untersetzt 12V für 5V für den Raspberry Pi)
  • 1x 12V Netzteil (+ Einstieg in Ihr Projekt)
  • 10cm x 10cm Holz für das Zifferblatt (sollte entsprechend dünn sein, um Ihre LEDs zu montieren)
  • Verschiedene Stücke unterschiedlicher Farbdraht

Nützliche Dinge zu haben

  • Lötkolben + Lötzinn
  • Heißkleber
  • Multimeter
  • Steckbrett
  • Buchsenleistenstifte
  • Micro-SD-Kartenleser oder Konverter
  • Ein Computer
  • Mini-HDMI-Adapter + HDMI-Bildschirm, wenn Sie die Desktop-Umgebung des Pi verwenden möchten

Schritt 2: Einrichten des Raspberry Pi

Einrichten des Raspberry Pi
Einrichten des Raspberry Pi
Einrichten des Raspberry Pi
Einrichten des Raspberry Pi

Betriebssystem

Da der Raspberry Pi nicht mit einem Bildschirm verbunden ist, habe ich mich für Raspbian Buster Lite entschieden, das keine Desktop-Umgebung enthält. Wenn Sie neuer bei Raspberry Pi sind, möchten Sie vielleicht beim Standard-Raspbian Buster bleiben, der mit einem Desktop geliefert wird. Wenn Sie sich nicht sicher sind, wie Sie Ihr Betriebssystem installieren sollen, ist dies eine großartige Ressource. Beide Betriebssysteme können von der Raspberry-Pi-Website heruntergeladen werden.

Versorgen Sie den Pi vorerst über seinen Micro-USB-Stromeingang. Schließen Sie auch den USB-WLAN-Dongle an.

Im Gespräch mit dem Raspberry Pi

Sobald alles verpackt ist, ist es ziemlich schwierig, auf den Pi zuzugreifen, wenn Sie den Code usw. ändern möchten. Mit SSH können Sie eine Verbindung zum Pi herstellen und ihn von einem anderen Computer aus steuern. Dies ist standardmäßig nicht aktiviert, aber wir können dies tun, indem Sie einfach einen Ordner namens ssh in der Bootpartition Ihrer SD-Karte erstellen. Wenn Sie sich bereits bei Ihrem Pi angemeldet haben, können Sie dies auch tun, indem Sie im Terminal sudo raspi-config eingeben und zu Schnittstellenoptionen> SSH navigieren und Ja auswählen, um es zu aktivieren.

Jetzt können Sie sich auf einem anderen Computer mit Ihrem Pi verbinden. Auf Mac oder Linux können Sie Ihre Terminalanwendung verwenden, aber auf den meisten Windows-Versionen müssen Sie einen SSH-Client wie PuTTY installieren. Verbinden Sie sich mit dem Pi, indem Sie ssh pi@ eingeben, wobei Hostname durch den Hostnamen der IP-Adresse Ihres Pi ersetzt wird. Der Standard-Hostname ist raspberrypi.local. Es wird Sie nach einem Passwort fragen, das, falls Sie es noch nicht geändert haben, raspberry ist.

Benötigte Dinge installieren

Stellen Sie zunächst sicher, dass alles auf dem neuesten Stand ist, indem Sie sudo apt update und dann sudo apt full-upgrade ausführen.

Um sicherzustellen, was wir brauchen, um die GPIO-Pins auf dem Pi zu steuern, geben Sie sudo apt-get install python-rpi.gpio und sudo apt-get install python3-rpi.gpio ein. Diese sollten bereits auf der Vollversion von Raspbian installiert sein.

Der Code

Hier ist der Code zum Herunterladen, damit alles funktioniert. Wenn Sie eine Desktop-Umgebung verwenden, fügen Sie diese in Ihren Dokumentenordner ein.

Wenn Sie die Befehlszeile von SSH verwenden, navigieren Sie zu Ihrem Home-Ordner, indem Sie cd ~/Documents eingeben und die Eingabetaste drücken. Erstellen Sie mit nano test1.py eine neue Datei namens test1.py. Dadurch wird der Nano-Texteditor geöffnet, in den Sie den Code der heruntergeladenen Datei test1.py einfügen können. STRG-O und drücken Sie die Eingabetaste, um die Datei zu speichern und STRG-X, um den Editor zu verlassen. Wiederholen Sie den Vorgang für die restlichen Dateien.

Schritt 3: Installation des LED-Streifens

Installation des LED-Streifens
Installation des LED-Streifens
Installation des LED-Streifens
Installation des LED-Streifens

Stecken Sie zuerst den LED-Streifen in die Uhr, um zu sehen, wie viel Sie benötigen, markieren Sie diese Länge und schneiden Sie den Streifen am nächsten Schnittpunkt wie abgebildet ab. Es ist viel einfacher, Drähte an den Streifen zu löten, bevor der Streifen festsitzt. Dies ist eine ziemlich gute Anleitung dazu, aber wenn Sie sich nicht sicher sind, würde ich nur an der Lötverbindung an dem Stück üben, von dem Sie gerade Ihren Streifen abgeschnitten haben. Löten Sie einen Draht an den positiven Lötpunkt und einen Draht an den negativen. Stellen Sie sicher, dass Sie Ihren LED-Streifen auf Funktion testen, bevor Sie ihn in Ihre Uhr stecken.

Da der von mir verwendete LED-Streifen verwendet wurde, bevor er seine selbstklebende Rückseite verloren hatte, musste ich Heißkleber verwenden, um den Streifen um den Rand des Uhrenrandes zu befestigen. Wenn Sie eine Überlänge haben, decken Sie die Stelle ab, an der die Drähte befestigt sind. Vielleicht möchten Sie den Streifen später installieren, aber ich fand es einfacher, ihn in der Uhr zu verstauen.

Schritt 4: Steuerung des LED-Streifens

Steuerung des LED-Streifens
Steuerung des LED-Streifens

Anschließen des LED-Streifens

Der LED-Streifen läuft mit 12V, kann also nicht direkt vom Pi mit Strom versorgt werden. Um sie zu steuern, verwenden wir einen Leistungstransistor (zB TIP31a), der wie oben gezeigt an den Pi angeschlossen ist. Ich würde empfehlen, zuerst zu überprüfen, ob dies alles auf einem Steckbrett funktioniert.

  • Verbinden Sie GPIO 19 über einen 1k-Widerstand mit der Basis
  • Der Emitter sollte an GND angeschlossen werden
  • Verbinden Sie den Kollektor mit dem Minuspol des LED-Streifens
  • Verbinden Sie den positiven LED-Streifenanschluss mit +12V

Testen

Navigieren Sie in der Befehlszeile zu Ihrem Dokumentenordner (cd ~/Documents) und geben Sie python test1.py ein und geben Sie ein. Sie sollten sehen, dass die Helligkeit des LED-Streifens zu- und abnimmt. Um das Programm zu beenden, drücken Sie STRG-C. Sie können die Datei (nano test1.py) bearbeiten, um die Geschwindigkeit und Helligkeit im Programm zu ändern.

import RPi. GPIO als GPIOimport time GPIO.setmode(GPIO. BCM) # Verwenden Sie die BCM-Pinbelegung GPIO.setwarnings(False) # Ignorieren Sie Warnungen über Pins, die für andere Dinge verwendet werden ledStripPin = 19 # LED-Streifen wird von diesem Pin angesteuert GPIO.setup (ledStripPin, GPIO. OUT) # setze ledStripPin als Ausgang pwm = GPIO. PWM(ledStripPin, 100) # PWM auf ledStripPin mit Frequenz 100Hz dutyCycle = 0 # Anfangshelligkeit in Prozent pwm.start(dutyCycle) try: while True: for DutyCycle im Bereich (0, 101, 1): # Ausblenden pwm. ChangeDutyCycle(dutyCycle) time.sleep(0.05) für Gleichstrom im Bereich (95, -1, -1): # Ausblenden pwm. ChangeDutyCycle(dc) time.sleep(0.05) außer KeyboardInterrupt: # Zum Beenden STRG-C drücken und dann: pwm.stop() # pwm stoppen GPIO.cleanup() # Bereinigen der GPIO-Pins

Schritt 5: Das Zifferblatt erstellen

Das Zifferblatt herstellen
Das Zifferblatt herstellen
Das Zifferblatt herstellen
Das Zifferblatt herstellen
Das Zifferblatt herstellen
Das Zifferblatt herstellen

Schneiden Sie das Holzstück für Ihre Uhr so zu, dass es in Ihre Uhr passt. Ich machte meine, um etwa 3 cm von der Vorderseite entfernt zu ruhen. Bohren Sie 12 Löcher mit dem Durchmesser Ihrer LEDs (normalerweise 3 mm oder 5 mm) im Abstand von 30 Grad voneinander. Schleifen Sie die Vorderseite nach unten und tragen Sie ein Finish Ihrer Wahl auf. Setzen Sie die LEDs von der Rückseite so ein, dass sie nach vorne zeigen. Ich benutzte Heißkleber, um die LEDs mit dem Pluspol (längerer Draht) nach innen zu halten. Die Größe meines Zifferblatts bedeutete, dass ich alle negativen Anschlüsse zusammenlöten konnte (siehe oben), sodass nur ein Draht benötigt wurde, um alle 12 LEDs mit GND zu verbinden. Als nächstes löten Sie einen Draht an jede LED.

Wenn Sie dies auf einem Steckbrett testen möchten, denken Sie zuerst daran, einen Widerstand (330 Ohm ist ziemlich Standard) in Reihe mit jeder LED zu verwenden, bevor Sie ihn an einen der Pi GPIO-Pins anschließen. Spielen Sie mit dem Widerstandswert, den Sie verwenden, um eine Helligkeitsstufe zu erhalten, mit der Sie zufrieden sind. Ein T-Schusser ist wirklich nützlich, um die Pins des Pi zu einem Steckbrett auszubrechen, obwohl Sie dafür die Header-Pins anlöten müssen. Verwenden Sie test2.py (führen Sie mit Python test2.py aus), aber stellen Sie sicher, dass Sie zuerst das Programm bearbeiten und die GPIO-Pins des Pi eingeben, die Sie für jede LED verwendet haben.

RPi. GPIO als GPIO importieren

Importzeit GPIO.setmode(GPIO. BCM) # Verwenden Sie die BCM-Pinbelegung GPIO.setwarnings(False) # Ignorieren Sie Warnungen über Pins, die für andere Dinge verwendet werden # Ersetzen Sie eins, zwei, … durch die entsprechende Pinnummer hourPin = [eins, zwei, drei, vier, fünf, sechs, sieben, acht, neun, zehn, elf, zwölf] # Die Pins, mit denen die LEDs verbunden sind, von 1-12 für i im Bereich (0, 12): GPIO.setup(hourPin, GPIO. OUT) # Alle StundenPins als Ausgänge setzen GPIO.output(hourPin, 0) # Sicherstellen, dass alle LEDs aus sind try: while True: for i in range(0, 12) GPIO.output(hourPin, 1): time.sleep(0.05) für i im Bereich (0, 12) GPIO.output(hourPin, 0): time.sleep(0.05) außer KeyboardInterrupt: # Drücken Sie STRG-C zum Beenden, und dann: GPIO.cleanup() # Säubere die GPIO-Pins

Schritt 6: Stromversorgung des Pi

Stromversorgung des Pi
Stromversorgung des Pi

Wir brauchen eine einfache Möglichkeit, den Pi Zero mit 5 V zu versorgen, damit wir das Micro-USB-Kabel loswerden können, mit dem wir es bisher mit Strom versorgt haben. Es gibt eine Reihe von Lösungen, die 12 V auf 5 V absenken, wie z. B. einen linearen Spannungsregler LM7805, aber diese sind nicht sehr effizient, daher habe ich mich für den effizienteren einstellbaren Abwärtswandler mit dem LM2596-Chip entschieden. Hinweis: Damit müssen Sie das Potentiometer drehen, bis die Ausgangsspannung wie erforderlich auf 5 V reduziert ist, sodass Sie eine Möglichkeit zur Spannungsmessung benötigen.

Die Verwendung des LM2596 ist einfach: Verbinden Sie +12V mit IN+, Masse mit IN-. Der Pi kann direkt an 5 V angeschlossen werden, indem Sie OUT + an einen der 5 V-Pins des Pi anschließen, aber stellen Sie sicher, dass Sie die Ausgangsspannung auf 5 V geändert haben, bevor Sie dies tun, oder Sie werden Ihren Pi braten!

Schritt 7: Vervollständigen Sie die Schaltung und Verpackung

Vervollständigen Sie den Kreislauf und die Verpackung
Vervollständigen Sie den Kreislauf und die Verpackung
Vervollständigen Sie den Kreislauf und die Verpackung
Vervollständigen Sie den Kreislauf und die Verpackung
Vervollständigen Sie den Kreislauf und die Verpackung
Vervollständigen Sie den Kreislauf und die Verpackung
Vervollständigen Sie den Kreislauf und die Verpackung
Vervollständigen Sie den Kreislauf und die Verpackung

Wir haben jetzt alle drei Elemente der Schaltung behandelt, die in der obigen Gesamtschaltung zusammen dargestellt sind. Um Platz zu sparen und die Schaltung sauberer zu machen, legen Sie Ihre Schaltung auf eine Streifenplatine oder eine Prototypenplatine. Löten Sie zuerst die kleinsten Bauteile, die Widerstände, dann den Leistungstransistor, eventuelle Anschlüsse und zuletzt die Drähte. Planen Sie Ihre Schaltung, bevor Sie löten, um sicherzustellen, dass Sie Platz für alles haben.

Ich habe alles auf einer Prototyping-Platine angeschlossen und weibliche Header-Pins verwendet, damit der Pi direkt auf der Platine montiert werden konnte. Die LEDs auf dem Zifferblatt sind über Widerstände auf einer Seite der Platine verbunden und ich habe auf der anderen Seite der Platine Platz für den Leistungstransistor und frei für alle anderen Schaltungen, die ich später hinzufügen möchte.

Bringen Sie das Zifferblatt an der Uhr an und stellen Sie sicher, dass die Elektronik ganz hineinpasst. Für mich war alles ziemlich eng, sodass Sie möglicherweise etwas neu anordnen müssen. Schließen Sie das Netzteil an und führen Sie test1.py und test2.py von SSH aus, um zu überprüfen, ob alles funktioniert, bevor Sie die Rückseite anbringen.

Schritt 8: Laden Sie den Code hoch + Fertig stellen

Code hochladen + Fertig stellen
Code hochladen + Fertig stellen
Code hochladen + Fertig stellen
Code hochladen + Fertig stellen
Code hochladen + Fertig stellen
Code hochladen + Fertig stellen

Der Code

Schließlich, falls noch nicht geschehen, laden Sie den Code hoch und passen Sie ihn nach Belieben an (mit nano filename.py). Der Vorteil der Verbindung mit dem Pi über SSH besteht darin, dass Sie den Code aktualisieren können, ohne die Uhr zu öffnen.

Diese Python-Programme aus Schritt 2 tun Folgendes:

  • light_clock_simple.py zeigt einfach die Stunde auf den LEDs an und blendet den LED-Streifen zu bestimmten Zeiten auf und ab
  • light_clock_pwm.py ist das gleiche wie oben, ermöglicht aber auch eine Reduzierung der Helligkeit der LEDs und zeigt die Minuten anders als die Stunden an. Sie müssen mit den Helligkeitsstufen von beiden herumspielen, damit der Kontrast zwischen den beiden wahrnehmbar ist

Diese sollten eine solide Grundlage für das Hinzufügen zum Code bieten, beispielsweise möchten Sie möglicherweise eine Schaltfläche zum Schlummern des Lichtalarms hinzufügen.

Um das Programm zu starten, wenn der Pi bootet, müssen wir ' @reboot nohup python light_clock_pwm.py & 'am Ende der crontab-Datei hinzufügen, die vom Terminal aus mit crontab -e geöffnet werden kann. Starten Sie Ihren Raspberry Pi neu, um zu überprüfen, ob er mit sudo shutdown -r now funktioniert.

Potenzielle Ergänzungen

Hier sind einige Ideen für zusätzliche Funktionen, die hinzugefügt werden könnten

  • Hinzufügen einer Schlummertaste
  • Hinzufügen eines Lampenmodus
  • Verbindung mit IFTTT (z. B. könnte das Licht eingeschaltet werden, wenn der Telefonalarm ausgeht / blinkt, wenn eine E-Mail empfangen wird)
  • Hinzufügen von Kapazitäts-Touch-Fähigkeit, dh machen Sie die Uhr zu einer Touch-Lampe

Bei der Verwendung von PWM kann man feststellen, dass die LED zeitweise, insbesondere bei geringerer Helligkeit, etwas flackert. Dies liegt daran, dass der Pi Software-PWM verwendet, sodass CPU-Prozesse den Arbeitszyklus beeinflussen können. Dadurch, dass weniger Prozesse ausgeführt werden, habe ich das reduzierte Betriebssystem Raspbian Lite verwendet. Hardware-PWM ist auch an einigen Pins verfügbar. Wenn sich also ein Flimmern als Problem erweist, sollten Sie dies möglicherweise überprüfen.

Ich hoffe, Sie haben dieses Instructable informativ gefunden und fühlen sich entweder inspiriert, einen alten Wecker aufzurüsten oder Elemente des Codes für Ihr eigenes Projekt zu verwenden.

LED-Streifen-Geschwindigkeits-Herausforderung
LED-Streifen-Geschwindigkeits-Herausforderung
LED-Streifen-Geschwindigkeits-Herausforderung
LED-Streifen-Geschwindigkeits-Herausforderung

Zweiter Preis bei der LED Strip Speed Challenge

Empfohlen: