Spisu treści:
- Krok 1: Części
- Krok 2: Konfiguracja Raspberry Pi
- Krok 3: Instalacja taśmy LED
- Krok 4: Sterowanie paskiem LED
- Krok 5: Tworzenie tarczy zegara
- Krok 6: Zasilanie Pi
- Krok 7: Uzupełnij obwód i opakowanie
- Krok 8: Prześlij kod + Zakończ
Wideo: Inteligentne światło z recyklingu budzika: 8 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
W tym projekcie poddaję recyklingowi kompletnie zepsuty nakręcany budzik. Tarczę zegara zastąpiono 12 diodami LED, podświetlanymi przez pasek LED wokół krawędzi zegara. 12 diod LED informuje o czasie, a pasek LED jest zaprogramowany tak, aby działał jako alarm, włączając się do pełnej jasności o ustawionej godzinie. Wszystko jest kontrolowane przez Raspberry Pi Zero, co pozwala na niezliczone możliwości integracji i rozbudowy, takie jak automatyczna synchronizacja alarmu świetlnego z alarmem telefonu lub miganie diod LED po otrzymaniu wiadomości e-mail.
W projekcie zastosowano stosunkowo tanie lub ponownie używane komponenty - jedyne, co kupiłem, to regulator napięcia. Wszystko inne, co zdarzyło mi się leżeć wokół, takie jak odcięty pasek LED. Ten Instruktaż poprowadzi Cię przez to, jak dałem nowe życie mojemu zepsutemu zegarowi i mam nadzieję, że zainspiruje Cię do przerobienia czegoś własnego.
Krok 1: Części
Aby kontrolować wszystko, użyjemy Raspberry Pi Zero, ponieważ jest mały, kosztuje bardzo niewiele i może być podłączony do Wi-Fi, co oznacza, że nie potrzebujemy zegara czasu rzeczywistego i dlatego możemy łatwo aktualizować kod zdalnie z laptopa. Jeśli nie masz Pi Zero W, połączymy się z siecią Wi-Fi za pomocą klucza USB Wi-Fi.
Oto lista części, których użyłem, ale większość rzeczy można wymienić na odpowiednie alternatywy. Na przykład zamiast Raspberry Pi można użyć Arduino z zegarem czasu rzeczywistego do sterowania projektem.
Używane części
- Stary budzik
- 30 cm ciepłej białej taśmy LED
- 1x Raspberry Pi Zero + karta micro SD
- 1x klucz USB WiFi + konwerter micro USB na USB
- 12x diody LED
- Rezystory 12x 330ohm (użyj wyższych, jeśli chcesz ściemniać diody LED)
- 1x TIP31a (lub inny tranzystor mocy npn lub MOSFET)
- 1x rezystor 1k
- 1x regulowany konwerter buck LM2596 DC-DC (obniżenie 12V dla 5V dla Raspberry Pi)
- 1x zasilacz 12v (+ sposób na dostanie się do projektu)
- 10 cm x 10 cm drewna na tarczę zegara (powinno być odpowiednio cienkie, aby można było w nim zamontować diody LED)
- Różne kawałki drutu o różnych kolorach
Przydatne rzeczy do posiadania
- Lutownica + lut
- Gorący klej
- Multimetr
- Deska do krojenia chleba
- Żeńskie szpilki nagłówka
- Czytnik lub konwerter kart Micro SD
- Komputer
- Adapter mini HDMI + ekran HDMI, jeśli chcesz korzystać ze środowiska pulpitu Pi
Krok 2: Konfiguracja Raspberry Pi
System operacyjny
Ponieważ Raspberry Pi nie będzie połączone z ekranem, zdecydowałem się na użycie Raspbian Buster Lite, który nie jest dostarczany ze środowiskiem graficznym. Jeśli jesteś nowszy w Raspberry Pi, możesz trzymać się standardowego Raspbian Buster, który jest dostarczany z komputerem stacjonarnym. Jeśli nie masz pewności, jak zainstalować system operacyjny, jest to świetne źródło. Oba systemy operacyjne można pobrać ze strony Raspberry Pi.
Na razie zasilaj Pi przez wejście zasilania Micro USB. Podłącz również klucz USB WiFi.
Rozmowa z Raspberry Pi
Gdy wszystko jest spakowane, dość trudno jest uzyskać dostęp do Pi, jeśli chcesz zmienić kod itp. Korzystanie z SSH pozwala połączyć się z Pi i kontrolować go z innego komputera. Nie jest to domyślnie włączone, ale możemy to zrobić, po prostu tworząc folder o nazwie ssh na partycji rozruchowej karty SD. Jeśli już zalogowałeś się do swojego Pi, możesz to również zrobić, wpisując sudo raspi-config w Terminalu i przechodząc do Opcje interfejsu> SSH i wybierając Tak, aby go włączyć.
Teraz możesz połączyć się ze swoim Pi na innym komputerze. W systemie Mac lub Linux możesz korzystać z aplikacji terminalowej, ale w większości wersji systemu Windows musisz zainstalować klienta SSH, takiego jak PuTTY. Połącz się z Pi, wpisując ssh pi@, gdzie nazwa hosta jest zastępowana nazwą hosta adresu IP twojego Pi. Domyślna nazwa hosta to raspberrypi.local. Poprosi Cię o hasło, które, jeśli jeszcze go nie zmieniłeś, jest malinowe.
Potrzebne rzeczy do zainstalowania
Najpierw upewnij się, że wszystko jest aktualne, uruchamiając sudo apt update, a następnie sudo apt full-upgrade.
Aby upewnić się, czego potrzebujemy, aby kontrolować piny GPIO na typie Pi sudo apt-get install python-rpi.gpio i sudo apt-get install python3-rpi.gpio. Powinny być już zainstalowane w pełnej wersji Raspbian.
Kod
Oto kod do pobrania, aby wszystko działało. Jeśli używasz środowiska graficznego, wklej je w folderze Dokumenty.
Jeśli używasz wiersza poleceń SSH, przejdź do swojego folderu domowego, wpisując cd ~/Documents i naciskając enter. Utwórz nowy plik o nazwie test1.py za pomocą nano test1.py. Spowoduje to otwarcie edytora tekstu nano, w którym możesz wkleić kod pobranego pliku test1.py. CTRL-O i naciśnij enter, aby zapisać plik i CTRL-X, aby wyjść z edytora. Powtórz ten proces dla pozostałych plików.
Krok 3: Instalacja taśmy LED
Najpierw umieść pasek LED w zegarze, aby zobaczyć, ile potrzebujesz, zaznacz tę długość i odetnij pasek w następnym punkcie cięcia, jak pokazano. Dużo łatwiej jest przylutować przewody do paska, zanim pasek utknie na swoim miejscu. To całkiem dobry przewodnik, jak to zrobić, ale jeśli nie masz pewności, poćwiczę po prostu połączenie lutowane na kawałku, z którego właśnie wyciąłeś pasek. Przylutuj jeden przewód do dodatniego punktu lutowniczego, a jeden przewód do ujemnego. Upewnij się, że przetestowałeś działanie paska LED, zanim włożysz go do zegara.
Ponieważ pasek LED, którego użyłem, był używany, zanim stracił samoprzylepny podkład, więc musiałem użyć gorącego kleju, aby przymocować pasek wokół krawędzi obręczy zegara. Jeśli masz nadmierną długość, zakryj miejsce, w którym są przymocowane przewody. Możesz chcieć zainstalować pasek później, ale łatwiej było mi go schować w zegarze.
Krok 4: Sterowanie paskiem LED
Podłączanie taśmy LED
Taśma LED działa na 12V, więc nie może być zasilana bezpośrednio z Pi. Aby je kontrolować, użyjemy tranzystora mocy (np. TIP31a) podłączonego do Pi, jak pokazano powyżej. Polecam najpierw sprawdzić, czy wszystko działa na płytce prototypowej.
- Podłącz GPIO 19 do bazy przez rezystor 1k
- Emiter powinien być podłączony do GND
- Podłącz kolektor do ujemnego zacisku taśmy LED
- Podłącz dodatni zacisk paska LED do +12V
Testowanie
W wierszu poleceń przejdź do folderu dokumentów (cd ~/Documents) i wpisz python test1.py i wprowadź. Powinieneś zobaczyć wzrost i spadek jasności paska LED. Aby wyjść z programu naciśnij CTRL-C. Możesz edytować plik (nano test1.py), aby zmienić prędkość i jasność w programie.
import RPi. GPIO jako GPIOimport time GPIO.setmode(GPIO. BCM) # Użyj pinout BCM GPIO.setwarnings(False) # Ignoruj ostrzeżenia o pinach używanych do innych rzeczy ledStripPin = 19 # Pasek LED jest napędzany z tego pinu GPIO.setup (ledStripPin, GPIO. OUT) # Ustaw ledStripPin jako wyjście pwm = GPIO. PWM(ledStripPin, 100) # PWM na ledStripPin o częstotliwości 100Hz dutyCycle = 0 # Początkowa jasność w procentach pwm.start(dutyCycle) try: while True: for dutyCycle in range (0, 101, 1): # Fade up pwm. ChangeDutyCycle(dutyCycle) time.sleep(0,05) dla dc in range(95, -1, -1): # Fade down pwm. ChangeDutyCycle(dc) time.sleep(0.05) z wyjątkiem KeyboardInterrupt: # Naciśnij CTRL-C, aby wyjść, a następnie: pwm.stop() # Zatrzymaj pwm GPIO.cleanup() # Oczyść piny GPIO
Krok 5: Tworzenie tarczy zegara
Wytnij kawałek drewna na tarczę zegara, aby zmieścił się w zegarze. Mój odpoczął około 3 cm od przodu. Wywierć 12 otworów o średnicy Twoich diod LED (zwykle 3 mm lub 5 mm) rozmieszczonych co 30 stopni od siebie. Zeszlifuj przód i nałóż wybrane przez siebie wykończenie. Z tyłu umieść diody LED tak, aby były skierowane do przodu. Użyłem gorącego kleju, aby utrzymać diody LED na miejscu z dodatnim zaciskiem (dłuższy przewód) skierowanym do wewnątrz. Rozmiar mojej tarczy zegara oznaczał, że mogłem przylutować wszystkie ujemne zaciski razem (patrz powyżej), więc do podłączenia wszystkich 12 diod LED do GND potrzebny był tylko jeden przewód. Następnie przylutuj przewód do każdej diody LED.
Jeśli chcesz przetestować to na płytce stykowej, najpierw pamiętaj, aby użyć rezystora (330ohm jest dość standardowe) szeregowo z każdą diodą LED, zanim podłączysz go do jednego z pinów Pi GPIO. Pobaw się wartością rezystora, którego używasz, aby uzyskać poziom jasności, z którego jesteś zadowolony. Szewc typu t jest naprawdę przydatny do wyłamywania pinów Pi na płytkę stykową, chociaż w tym celu musisz przylutować szpilki nagłówka. Użyj test2.py (uruchom przy użyciu pythona test2.py), ale upewnij się, że najpierw edytujesz program i wprowadzasz piny GPIO Pi, których użyłeś dla każdej diody LED.
importuj RPi. GPIO jako GPIO
import time GPIO.setmode(GPIO. BCM) # Użyj pinout BCM GPIO.setwarnings(False) # Ignoruj ostrzeżenia o pinach używanych do innych rzeczy # Zastąp jeden, dwa, … odpowiednim numerem pinu hourPin = [jeden, dwa, trzy, cztery, pięć, sześć, siedem, osiem, dziewięć, dziesięć, jedenaście, dwanaście] # Piny do których podłączone są diody LED od 1-12 dla i w zakresie (0, 12): GPIO.setup(hourPin, GPIO. OUT) # Ustaw wszystkie hourPins jako wyjścia GPIO.output(hourPin, 0) # Upewnij się, że wszystkie diody LED są wyłączone spróbuj: while True: for i in range (0, 12) GPIO.output(hourPin, 1): time.sleep(0.05) for i in range(0, 12) GPIO.output(hourPin, 0): time.sleep(0.05) z wyjątkiem KeyboardInterrupt: # Naciśnij CTRL-C, aby wyjść, i następnie: GPIO.cleanup() # Wyczyść piny GPIO
Krok 6: Zasilanie Pi
Potrzebujemy łatwego sposobu na doprowadzenie 5V do Pi Zero, abyśmy mogli pozbyć się kabla micro USB, którego do tej pory używaliśmy do zasilania. Istnieje wiele rozwiązań, które obniżają napięcie 12 V do 5 V, takie jak liniowy regulator napięcia LM7805, ale nie są one zbyt wydajne, więc zamiast tego zdecydowałem się na użycie bardziej wydajnego regulowanego konwertera buck za pomocą układu LM2596. Uwaga: będziesz musiał przekręcać potencjometr, aż napięcie wyjściowe zostanie zredukowane do 5 V zgodnie z wymaganiami, więc będziesz potrzebować jakiegoś sposobu pomiaru napięcia.
Korzystanie z LM2596 jest proste: podłącz +12V do IN+, uziemienie do IN-. Pi można podłączyć bezpośrednio do 5 V, podłączając OUT + do jednego z pinów 5 V Pi, ale upewnij się, że zmieniłeś napięcie wyjściowe na 5 V, zanim to zrobisz, albo usmażysz swoje Pi!
Krok 7: Uzupełnij obwód i opakowanie
Omówiliśmy teraz wszystkie trzy elementy obwodu, które są pokazane razem w ogólnym obwodzie powyżej. Aby zaoszczędzić miejsce i uporządkować obwód, umieść obwód na płytce z paskiem lub płytce prototypowej. Najpierw przylutuj najmniejsze elementy, rezystory, potem tranzystor mocy, ewentualne złącza i na końcu przewody. Zaplanuj obwód przed lutowaniem, aby upewnić się, że masz miejsce na wszystko.
Połączyłem wszystko na prototypowej płytce drukowanej i użyłem żeńskich pinów nagłówka, aby Pi można było zamontować bezpośrednio na płytce drukowanej. Diody LED na tarczy zegara są połączone przez rezystory po jednej stronie płytki, a po drugiej stronie płytki zostało miejsce na tranzystor mocy i wolne miejsce na wszelkie inne obwody, które mógłbym chcieć dodać później.
Przymocuj tarczę zegara do zegara i upewnij się, że cała elektronika pasuje. Wszystko było dla mnie dość ciasno dopasowane, więc być może trzeba będzie trochę przearanżować. Podłącz zasilanie i uruchom test1.py i test2.py z SSH, aby sprawdzić, czy wszystko działa przed podłączeniem z tyłu.
Krok 8: Prześlij kod + Zakończ
Kod
Na koniec, jeśli jeszcze tego nie zrobiłeś, prześlij kod i dostosuj go, jak chcesz (używając nano nazwapliku.py). Zaletą połączenia z Pi przez SSH jest to, że możesz zaktualizować kod bez otwierania zegara.
Te programy Pythona z kroku 2 wykonują następujące czynności:
- light_clock_simple.py po prostu wyświetla godzinę na diodach LED i zanika w górę iw dół paska LED o określonych porach
- light_clock_pwm.py jest taki sam jak powyżej, ale pozwala również na zmniejszenie jasności diod LED i wyświetla minuty z inną jasnością niż godziny. Musisz pobawić się poziomami jasności obu, aby kontrast między nimi był zauważalny
Powinny one stanowić solidną podstawę do dodania do kodu, na przykład możesz chcieć dodać przycisk do drzemki alarmu świetlnego.
Aby uruchomić program podczas uruchamiania Pi, musimy dodać ' @reboot nohup python light_clock_pwm.py & 'na końcu pliku crontab, który można otworzyć z terminala za pomocą crontab -e. Uruchom ponownie Raspberry Pi, aby sprawdzić, czy działa z sudo shutdown -r teraz.
Potencjalne dodatki
Oto kilka pomysłów na dodatkowe funkcje, które można dodać
- Dodawanie przycisku drzemki
- Dodawanie trybu lampy
- Łączenie się z IFTTT (np. światło może się włączyć, gdy alarm telefonu wyłączy się/miga po otrzymaniu wiadomości e-mail)
- Zwiększenie pojemności dotykowej, tj. Spraw, aby zegar stał się lampą dotykową;
Podczas korzystania z PWM możesz zauważyć, że czasami, szczególnie przy niższej jasności, dioda LED nieco migocze. Dzieje się tak, ponieważ Pi używa oprogramowania PWM, więc procesy procesora mogą wpływać na cykl pracy. Mając mniej procesów działających w tym zakresie, użyłem zredukowanego systemu operacyjnego Raspbian Lite. Sprzętowa PWM jest również dostępna na kilku pinach, więc jeśli migotanie świadczy o problemie, może to być coś, na co warto zwrócić uwagę.
Mam nadzieję, że znalazłeś tę instruktażową informację i albo poczujesz inspirację do przerobienia starego budzika, albo użyj elementów kodu do własnego projektu.
Druga nagroda w konkursie LED Strip Speed Challenge
Zalecana:
Inteligentne oświetlenie biurkowe LED - Inteligentne oświetlenie z Arduino - Obszar roboczy Neopixels: 10 kroków (ze zdjęciami)
Inteligentne oświetlenie biurkowe LED | Inteligentne oświetlenie z Arduino | Przestrzeń robocza Neopixels: Obecnie spędzamy dużo czasu w domu, ucząc się i pracując wirtualnie, więc dlaczego nie ulepszyć naszej przestrzeni roboczej dzięki niestandardowemu i inteligentnemu systemowi oświetlenia opartemu na Arduino i diodach LED Ws2812b. Tutaj pokażę Ci, jak zbudować Smart Biurkowe oświetlenie LED, które
Animowane światło nastrojowe i światło nocne: 6 kroków (ze zdjęciami)
Animated Mood Light & Night Light: Fascynacja, która graniczy z obsesją na punkcie światła, postanowiłem stworzyć wybór małych modułowych płytek drukowanych, które można wykorzystać do tworzenia wyświetlaczy świetlnych RGB o dowolnym rozmiarze. Po stworzeniu modułowej płytki PCB wpadłem na pomysł ułożenia ich w
Robotyczna głowa skierowana na światło. Z materiałów pochodzących z recyklingu i ponownie wykorzystanych: 11 kroków
Robotyczna głowa skierowana na światło. Z materiałów pochodzących z recyklingu i ponownie wykorzystanych: Jeśli ktoś zastanawia się, czy robotyka może mieć pustą kieszeń, może ta instrukcja może dać odpowiedź. Recyklingowe silniki krokowe ze starej drukarki, zużyte piłki do ping-ponga, świece, zużyta balsa, drut ze starego wieszaka, zużyty drut emaliowany
Inteligentne światło: 7 kroków (ze zdjęciami)
Intelligent-Light: Cześć Twórcy, Chcesz wiedzieć, dlaczego Twoje miesięczne rachunki za prąd są „tak wysokie”? Dzieje się tak dlatego, że gdy osoba znajdująca się w pomieszczeniu pospiesznie opuszcza pomieszczenie, nieświadomie zostawia włączone światła i wentylatory. Jest wiele rozwiązań do rozwiązania
Przekaźnik budzika Arduino: 6 kroków (ze zdjęciami)
Przekaźnik budzika Arduino: Mam wiele problemów z wstawaniem wcześnie rano, zwłaszcza jeśli ostatniej nocy nie spałem. Zasadniczo ten projekt pozwala na otwarcie przekaźnika w ustawionym czasie za pomocą klawiatury i lcd. Ten przekaźnik może sterować wieloma urządzeniami z włączania