Spisu treści:

Zegar prognozy pogody przy użyciu starego alarmu i Arduino: 13 kroków (ze zdjęciami)
Zegar prognozy pogody przy użyciu starego alarmu i Arduino: 13 kroków (ze zdjęciami)

Wideo: Zegar prognozy pogody przy użyciu starego alarmu i Arduino: 13 kroków (ze zdjęciami)

Wideo: Zegar prognozy pogody przy użyciu starego alarmu i Arduino: 13 kroków (ze zdjęciami)
Wideo: ELF/EMBARC Bronchiectasis conference 2023 with subtitles 2024, Listopad
Anonim
Prognoza pogody Zegar wykorzystujący stary alarm i Arduino
Prognoza pogody Zegar wykorzystujący stary alarm i Arduino
Prognoza pogody Zegar wykorzystujący stary alarm i Arduino
Prognoza pogody Zegar wykorzystujący stary alarm i Arduino

Miałem w pobliżu zepsuty budzik i wpadłem na pomysł przerobienia go na zegar i stację prognozowania pogody.

Do tego projektu będziesz potrzebować:

  • Stary okrągły budzik
  • Arduino Nano
  • Moduł czujnika BME280 (temperatura, wilgotność, ciśnienie)
  • Moduł wyświetlacza LCD z Nokii 5110
  • DS1307 zegar RTC
  • Ładowarka baterii litowej TP4056
  • Stara bateria litowo-jonowa uratowana z telefonu komórkowego
  • Mały moduł wzmacniający od 3,7 V do 5 V
  • Rezystor światłozależny (LDR - światłomierz)
  • Buzzer (używany uratowany ze starego komputera)
  • 3 przyciski
  • Pęczek rezystorów (2x10k, 270 omów) i tranzystor (2N2222A lub podobny)
  • Niektóre szerokie rurki termokurczliwe
  • złom PCB do wykorzystania jako dekoracja płyty przedniej;
  • Przedłużacz Micro-USB (zarówno żeńska, jak i męska strona to Micro-USB)
  • Płytka prototypowa 2x8cm i trochę przewodów

Krok 1: Zdemontuj wszystko

Zdemontuj wszystko
Zdemontuj wszystko

Najpierw zdemontowałem stary zegar. Dzwonki, silnik, zepsuty mechanizm zegara…

Krok 2: Przyciski ustawień cyfrowych

Przyciski ustawień cyfrowych
Przyciski ustawień cyfrowych
Przyciski ustawień cyfrowych
Przyciski ustawień cyfrowych
Przyciski ustawień cyfrowych
Przyciski ustawień cyfrowych
Przyciski ustawień cyfrowych
Przyciski ustawień cyfrowych

Ponieważ nowy zegar będzie w pełni cyfrowy z minikomputerem w środku, dodałem 3 proste, ładnie wyglądające przyciski z boku.

Używając kawałka kawałka aluminium wyciąłem nakładkę, aby stworzyć etykietę. Litery do etykiet zostały stworzone za pomocą dziurkaczy i czarnego markera.

Krok 3: Kondensator silnika

Kondensator do silnika
Kondensator do silnika

Zatrzymam stare dzwonki, żeby zasilić alarm silnikiem. Stary zepsuty mechanizm zegara miał kondensator ceramiczny z etykietą 104. Wyjąłem go z płytki drukowanej i przylutowałem bezpośrednio do silnika - pomoże to zapobiec skokom mocy podczas włączania silnika podczas alarmu. Należy również pamiętać, że silnik będzie sterowany przez tranzystor, ale o tym później.

Krok 4: Nowa twarz zegara

Nowa tarcza zegara
Nowa tarcza zegara
Nowa tarcza zegara
Nowa tarcza zegara

Odkąd zdecydowałem się zrobić nową tarczę zegara - wziąłem płytkę drukowaną ze stosu śmietnika i użyłem opalarki budowlanej, aby szybko usunąć wszystkie elementy. Otwór w środku przeznaczony jest na cyfrowy ekran nowego zegara.

Krok 5: Cyfrowy wyświetlacz ze starego telefonu komórkowego

Cyfrowy wyświetlacz ze starego telefonu komórkowego
Cyfrowy wyświetlacz ze starego telefonu komórkowego
Cyfrowy wyświetlacz ze starego telefonu komórkowego
Cyfrowy wyświetlacz ze starego telefonu komórkowego

Do tego projektu zdecydowałem się wykorzystać ekran LCD ze starego telefonu komórkowego Nokia 5110. Te ekrany są powszechnie dostępne w sprzedaży jako moduły, pobierają bardzo mało energii i są dobre biblioteki dla Arduino. Jeśli kupujesz nowy moduł z ekranem 5110 - ratujesz planetę, ponieważ wszystkie nowe moduły powstają z uratowanych telefonów 5110, 3110 i 3210!

Krok 6: Podłączanie obwodów

Podłączanie obwodów
Podłączanie obwodów
Podłączanie obwodów
Podłączanie obwodów
Podłączanie obwodów
Podłączanie obwodów

Być może już się domyślałeś, że planowałem użyć płytki Arduino do sterowania tym zegarem. Projekt jest łatwo powtarzalny nawet dla początkujących fanów Arduino, ponieważ nie stworzyłem własnych płytek drukowanych. Jest to płytka Arduino Nano z podłączonymi do niej modułami - czujnik temperatury, ciśnienia i wilgotności BME280, zegar RTC DS1307, ładowarka baterii litowej TP4056, mały moduł booster 3.7v do 5v, Light Dependent Resistor (LDR - światłomierz) oraz brzęczyk (pobrane ze starego komputera).

Zerknij też na szkice - pokazują wszystkie połączenia. Myślę, że wszystko jest bardzo łatwe do odczytania i zrozumienia, ale jeśli masz jakieś pytania, po prostu zapytaj w komentarzach poniżej.

Kilka uwag na temat konfiguracji:

  • Silnik jest podłączony bezpośrednio z akumulatora poprzez tranzystor. Arduino steruje tranzystorem poprzez rezystor i pin D5 PWM.
  • Piny D7-12 służą do złącza LCD. Uziemienie i VCC są połączone z szyną na płycie przyłączeniowej.
  • LDR został zainstalowany na tarczy zegara, a rezystor + 3 wychodzące przewody zostały przylutowane bezpośrednio z tyłu tarczy zegara.
  • Do podłączenia przycisków użyłem wewnętrznej funkcji PULLUP wewnątrz Arduino. Przycisk Menu jest dołączony do przerwania i dopiero później zdałem sobie sprawę, że możesz również użyć wewnętrznego PULLUP dla przerwania. Przerwanie dla przycisku Menu jest wymagane, aby kod nie skanował cały czas stanu przycisków.
  • Zegar będzie monitorował i wyświetlał również stan baterii, więc bateria jest podłączona bezpośrednio do pinu A0. Napięcie baterii nigdy nie jest wyższe niż 4,2 V, więc można bezpiecznie podłączyć baterię bezpośrednio do pinu analogowego Arduino.
  • Buzzer jest bezpośrednio podłączony do pinu D6 PWM. Chociaż nie jest to dobra praktyka, uszło mi to na sucho, ponieważ Arduino Nano może obsługiwać wyższą specyfikację niż podano, a także dlatego, że brzęczyk nie będzie działał w sposób ciągły. Ta sama konfiguracja z łatwością spaliłaby piny na płytkach ESP, więc w takich przypadkach polecam użycie sterowania tranzystorowego.
  • Zegar miał już przełącznik, więc postanowiłem go użyć. Z tyłu wygląda naturalnie.

Krok 7: Tablica przyłączeniowa do łatwych połączeń

Płytka połączeniowa do łatwych połączeń
Płytka połączeniowa do łatwych połączeń
Płytka połączeniowa do łatwych połączeń
Płytka połączeniowa do łatwych połączeń

Wszystkie moduły wymagają połączenia dodatniego i uziemiającego, więc zdecydowałem się na użycie płytki prototypowej 2x8cm i przylutowałem do niej szyny 5V i uziemienia. Tam też zrobiłem małą szynę I2C, ponieważ miałem kilka modułów korzystających z interfejsu I2C.

Z drugiej strony przylutowałem standardowe piny, aby móc w razie potrzeby podłączać i odłączać moduły.

Wlutowano tam również niektóre dodatkowe elementy, takie jak tranzystor i rezystor do sterowania silnikiem oraz rezystor do przycisku Menu, który wykorzystuje przerwanie. Schematy pokazałem w poprzednim rozdziale.

btw Czy widzisz czujnik LDR już zainstalowany na tarczy zegara na pierwszym zdjęciu?

Krok 8: Konfiguracja zasilania

Konfiguracja zasilania
Konfiguracja zasilania

Do zasilania tego zegara użyłem starej baterii litowo-jonowej z mojego telefonu komórkowego. Zwykle baterie telefonów komórkowych, które są wymieniane, nadal mają dobrą pojemność (co najmniej połowę tego, co były nowe). Ich zaletą jest to, że mają wbudowany obwód zabezpieczający przed rozładowaniem, a także są bardzo cienkie, dzięki czemu mogą być używane w scenariuszach o małej przestrzeni.

Aby podłączyć akumulator wystarczy przylutować przewody do pinów + i - na akumulatorze. Nie martw się, nie uszkodzisz ogniwa, ponieważ jest kontroler i trochę pustej przestrzeni między pinami a chemikaliami ogniwa.

Na tym zdjęciu widać akumulator, a także kontroler ładowania TP4056 oraz wzmacniacz 5V połączone razem i do akumulatora. Użyłem kilku rurek termokurczliwych, aby wszystko było izolowane i zwarte.

Krok 9: Micro USB do ładowania i aktualizacji oprogramowania układowego

Micro USB do ładowania i aktualizacji oprogramowania sprzętowego
Micro USB do ładowania i aktualizacji oprogramowania sprzętowego

Kiedy już wszystko zlutowałem, przykleiłem brzęczyk i czujnik temp/ciśnienia/wilgotności na tylnym panelu. Wszystkie ładnie pasowały do istniejących gniazd ze starych elementów sterujących tarczą zegara.

Teraz nadszedł czas na zainstalowanie portu Micro USB z tyłu. Dlaczego Micro USB, jeśli Nano używa Mini USB? Po prostu dlatego, że w gospodarstwie domowym większość kabli USB pochodzi z telefonów komórkowych i byłoby wygodnie, gdyby zegar też to wytrzymał.

Ponieważ chciałem używać go zarówno do ładowania, jak i aktualizacji funkcji zegara i stacji pogodowej - rozebrałem kabel USB, poprowadziłem przewody zasilające przez ładowarkę TP4056, a przewody Data+/Data- bezpośrednio do gniazda USB Arduino Nano. Możesz to zobaczyć na schemacie, który pokazałem w poprzednich sekcjach.

Krok 10: Montaż końcowy

Montaż końcowy
Montaż końcowy
Montaż końcowy
Montaż końcowy
Montaż końcowy
Montaż końcowy

Nadszedł czas, aby spakować wszystko z powrotem do oryginalnego zegara. Użyłem rurki termokurczliwej do izolacji komponentów i modułów. Nawet Arduino było owinięte w rurkę termokurczliwą.

Najedź na pierwsze zdjęcie, aby zobaczyć, gdzie został umieszczony każdy komponent.

Krok 11: Kodeks

Jak widać, zegar jest w całości zapakowany w środku. Pozwoliło to stworzyć coś bardziej wyrafinowanego niż stary zegar, który miałem - biorąc pod uwagę oczywiście pewne umiejętności programistyczne. Napisałem początkowy kod, ale poprosiłem mojego przyjaciela, aby wkroczył i pomógł mi.

Do tej pory oprócz samego zegara są to funkcje, które ten projekt już obsługuje:

  • Wyświetlanie czasu i daty (a także godziny i aktywacji alarmu na tym samym ekranie)
  • Ekran podświetla się w ciemności lub po wykryciu ruchu (na podstawie zmian światła)
  • Prognoza pogody (słonecznie, pochmurno, deszczowo)
  • Wyświetlanie temperatury, ciśnienia i wilgotności (dla wilgotności wskaże, czy jest za sucho)
  • Menu ustawień: alarm, zmiana czasu, włączanie/wyłączanie wyświetlania daty, włączanie/wyłączanie powiadomień dźwiękowych o zmianie pogody i przełączanie między jednostkami imperialnymi i metrycznymi
  • Ustawienia alarmu - włącz/wyłącz, ustawianie godziny, ustawianie melodii i/lub dzwonków dla powiadomień

Najnowszy kod:

Kod zostanie w przyszłości zaktualizowany o nowe funkcje, więc koniecznie sprawdź aktualizacje oprogramowania układowego:-)

Jeśli jesteś nowy w świecie Arduino, zalecam następujące kroki:

  • Zainstaluj sterownik USB dla swojej płyty (np. CH340)
  • Zainstaluj Arduino IDE
  • Zainstaluj biblioteki używane w tym projekcie
  • Pobierz z GitHub i prześlij najnowszy kod projektu do zegara za pomocą kabla Micro USB (możesz użyć jednego z telefonu komórkowego)

Algorytm prognozowania jest następujący:

Arduino Nano pobiera nowe dane z czujnika BME280 co 12 minut. Cykl pomiarowy wynosi 3 godziny. Po 3 godzinach zakres monitorowania ciśnienia (wartość maksymalna i minimalna w ciągu 3 godzin) przesuwa się w stosunku do wartości średnich w bieżącym zakresie i aktualnej wartości ciśnienia. Co godzinę zapisywany jest kierunek zmian ciśnienia z aktualną wartością ciśnienia. Do obliczania prognozy wykorzystywane są jednostki kPa.

Ze względu na ograniczenia pamięci Nano algorytm prognozowania musiał zostać uproszczony. Ale pomimo uproszczeń jest w stanie prognozować opady w ciągu najbliższych 12-24 godzin, mimo że prognozy są teraz bardziej pesymistyczne – domyślna wartość to „Pochmurna pogoda”.

"Słoneczna pogoda" - aktualna wartość ciśnienia jest wyższa od normy o 7 punktów, ciśnienie nie spada, a różnica między wartościami min i max z ostatnich 3 godzin nie przekracza 2 punktów.

Możliwe opady "Deszczowa pogoda" - bieżące ciśnienie jest o 15 punktów niższe niż norma, a różnica między wartościami min i max wynosi ponad 2 punkty LUB Ciśnienie spada, a różnica między wartością bieżącą a normą wynosi 3 - 30 punktów.

Aby poprawić jakość prognozowania zaleca się zmianę "wysokości" w głównym pliku kodu. Swoją wysokość możesz uzyskać na przykład tutaj:

Krok 12: Wideo krok po kroku

Image
Image

Jeśli trudno było śledzić to, co zrobiłem powyżej, tutaj jest również wersja wideo ze wszystkimi pokazanymi krokami.

Krok 13: Ostatnie słowa

Ogólnie rzecz biorąc, z mojego punktu widzenia, poziom trudności tego projektu nie jest wysoki i każdy może to zrobić. Jeśli nie masz starego zegara, możesz go znaleźć tanio na lokalnym pchlim targu.

Wszystkie komponenty są tanie i dostępne na Sparkfun/Aliexpress/eBay/Amazon.

Mam nadzieję, że ten samouczek był dla Ciebie interesujący i byłbym wdzięczny za wsparcie mojego pierwszego konkursu Instructable in the Clock.

Konkurs na zegary
Konkurs na zegary
Konkurs na zegary
Konkurs na zegary

Drugie miejsce w konkursie Zegary

Zalecana: