2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Cześć chłopaki, wstawanie wcześnie rano bywa trudne. Zwłaszcza, gdy na dworze jest pochmurno, pada deszcz lub zima. Ponieważ sam zrobiłem sobie zegar z budzikiem, wstawanie jest dla mnie o wiele przyjemniejsze.:)
Do kontroli czasu i alarmu użyłem precyzyjnego modułu RTC. Dwa pierścienie NeoPixel wyświetlają czas (swoją drogą, czy jesteś też zafascynowany diodami LED?). Moduł MP3 steruje wyjściem audio. A ustawienie odbywa się przez bluetooth.
W tym instruktażowym trochę zainspirował mnie projekt NeoClock.
Krok 1: Komponenty
Moduł RTC
Jak pisałem użyłem precyzyjnego modułu RTC firmy Sparkfun - DeadOn RTC. Moduł doskonale nadaje się do zegarów, kalendarzy lub każdego innego projektu pomiaru czasu. Komunikacja między mikrokontrolerem a modułem RTC odbywa się za pomocą czteroprzewodowego interfejsu SPI. Gdy nie jest zasilany z podstawowego źródła, chip można ustawić tak, aby działał na baterii zapasowej. Sparkfun napisał dla modułu bibliotekę Arduino, która zajmuje się całą komunikacją SPI. Sparkfun napisał także poradnik dotyczący podłączania DeadOn RTC Breakout.
Szeregowy odtwarzacz MP3
Na rynku dostępnych jest kilka modułów. Użyłem modułu Open-smart Serial MP3 z wyjściem głośnikowym. Na biurku znajduje się wzmacniacz 3W.
Na pokładzie znajduje się również gniazdo karty TF, dzięki czemu można podłączyć kartę micro SD, która przechowuje pliki audio w formacie MP3 lub WAV. Użyłem karty microSD Kingston o pojemności 8 GB.
Użyłem wbudowanego interfejsu głośnikowego do podłączenia zewnętrznego głośnika 8 omów. Możesz sterować modułem, wysyłając polecenia przez port szeregowy UART TTL, takie jak przełączanie utworów, zmiana głośności i trybu odtwarzania i tak dalej.
Napisałem własną, bardzo prostą bibliotekę do kontrolowania uruchamiania i zatrzymywania utworów.
Moduł Bluetooth HC-06
Użyłem tego modułu bluetooth HC-06 do przesyłania danych z mojego telefonu do zegara. Przyjmuje standard Bluetooth 2.0. Wykorzystałem moduł bluetooth do ustawiania godziny, alarmu, piosenki, jasności,… Działa idealnie! Przesłanie danych na odległość kilku metrów od zegara nie stanowi problemu. Na zegarze nie ma przycisków i przełączników.
Zainstalowałem kontroler Arduino bluetooth na moim telefonie z Androidem. Łączę się z modułem i wprowadzam komendy przez terminal.
Na przykład:
- sa0600 - ustaw alarm na 6:00
- st1845 - ustawiona godzina na 18:45
- sb80 - ustaw jasność na 80
- ps3 - odtwórz utwór numer 3
Kontroler
Użyłem modelu Arduino Nano, ponieważ jest mały i współpracuje z kablem USB Mini-B. Użyłem terminala do dopasowania kontrolera i regulatora napięcia LM7805, ale nie jest to konieczne.
Pierścienie NeoPixel
Użyłem dwóch pierścieni NeoPixel. Większy pierścień z 60 diodami LED do wyświetlania minut i sekund. I mniejszy pierścień z 24 diodami LED do wyświetlania godzin. Oba pierścionki kupiłem na Aliexpress.
Większy pierścień otrzymałem uszkodzony, ponieważ był kruchy i prawdopodobnie pękł podczas szorstkiego transportu.:(Istnieje bardzo przydatna biblioteka NeoPixel do sterowania pierścieniem LED firmy Adafruit.
Krok 2: Pudełko
Pudełko stworzyłem na mojej maszynie CNC. Na froncie wyfrezowałem precyzyjne rowki na dwa pierścienie. Oba rowki wypełniłem żywicą epoksydową. Po utwardzeniu żywica epoksydowa nadaje się do szlifowania i polerowania.
Do dekoracji użyłem głowy chrząszcza, którego latem znalazłem martwego w lesie. Wlałem go również do żywicy epoksydowej.
Z tyłu wyfrezowałem lwa i pomalowałem go złotem.
Krok 3: Okablowanie
Okablowanie jest bardzo proste iw zasadzie wystarczy podłączyć moduł do sterownika. Podłączyłem wyłącznik zasilania i gniazdo DC Jack.
Użyłem małych śrubek i pistoletu do klejenia na gorąco, aby utrzymać moduły w pudełku.
Krok 4: Kodowanie
Cały kod wraz ze wszystkimi niezbędnymi bibliotekami i dokumentacją modułu umieściłem na Github.