Obsah:

Hodiny s predpoveďou počasia pomocou starého alarmu a Arduina: 13 krokov (s obrázkami)
Hodiny s predpoveďou počasia pomocou starého alarmu a Arduina: 13 krokov (s obrázkami)

Video: Hodiny s predpoveďou počasia pomocou starého alarmu a Arduina: 13 krokov (s obrázkami)

Video: Hodiny s predpoveďou počasia pomocou starého alarmu a Arduina: 13 krokov (s obrázkami)
Video: Part 5 - The House of the Seven Gables Audiobook by Nathaniel Hawthorne (Chs 15-18) 2024, November
Anonim
Hodiny s predpoveďou počasia pomocou starého alarmu a Arduina
Hodiny s predpoveďou počasia pomocou starého alarmu a Arduina
Hodiny s predpoveďou počasia pomocou starého alarmu a Arduina
Hodiny s predpoveďou počasia pomocou starého alarmu a Arduina

Ležal mi pokazený budík a prišiel som s nápadom prerobiť ho na hodiny a predpovednú stanicu počasia.

Na tento projekt budete potrebovať:

  • Starý kruhový budík
  • Arduino Nano
  • Modul snímača BME280 (teplota, vlhkosť, tlak)
  • Modul LCD displeja od Nokia 5110
  • Hodiny RTC DS1307
  • Nabíjačka lítiových batérií TP4056
  • Stará lítium-iónová batéria zachránená z mobilného telefónu
  • Malý posilňovací modul 3,7 až 5 voltov
  • Svetlo závislý odpor (LDR - merač svetla)
  • Bzučiak (použitý zachránený zo starého počítača)
  • 3 tlačidlá
  • Veľa rezistorov (2x10k, 270 ohm) a tranzistor (2N2222A alebo podobný)
  • Nejaká široká zmršťovacia trubica
  • šrot DPS použiť ako ozdobu prednej dosky
  • Predlžovací kábel Micro-USB (zásuvka aj zásuvka sú micro-USB)
  • 2 x 8 cm prototypová doska a niekoľko drôtov

Krok 1: Všetko rozoberte

Všetko rozobrať
Všetko rozobrať

Najprv som rozobral staré hodiny. Zvony, motor, pokazený hodinový mechanizmus …

Krok 2: Tlačidlá pre digitálne nastavenia

Tlačidlá pre digitálne nastavenia
Tlačidlá pre digitálne nastavenia
Tlačidlá pre digitálne nastavenia
Tlačidlá pre digitálne nastavenia
Tlačidlá pre digitálne nastavenia
Tlačidlá pre digitálne nastavenia
Tlačidlá pre digitálne nastavenia
Tlačidlá pre digitálne nastavenia

Keďže nové hodiny budú plne digitálne a vo vnútri bude mini počítač, pridal som na boku 3 jednoduché pekne vyzerajúce tlačidlá.

Pomocou kúska hliníka som vystrihol prekrytie a vytvoril štítok. Písmená pre štítky boli vytvorené pomocou dierkovačov a čiernej značky.

Krok 3: Kondenzátor pre motor

Kondenzátor pre motor
Kondenzátor pre motor

Ponechám staré zvony na napájanie alarmu motorom. Starý zlomený hodinový mechanizmus mal keramický kondenzátor so štítkom 104. Odstránil som ho z dosky s plošnými spojmi a spájkoval som ho priamo s motorom - to pomôže zabrániť špičkám napájania pri zapnutí motora počas poplachu. Je tiež dôležité poznamenať, že motor bude riadený tranzistorom, ale o tom neskôr.

Krok 4: Nová tvár pre hodiny

Nová tvár pre hodiny
Nová tvár pre hodiny
Nová tvár pre hodiny
Nová tvár pre hodiny

Keďže som sa rozhodol vytvoriť novú tvár pre hodiny - zobral som z hromady smetiaka obvodovú dosku a pomocou stavebnej tepelnej pištole rýchlo odstránim všetky súčasti. Otvor v strede je vyrobený pre digitálnu obrazovku nových hodín.

Krok 5: Digitálny displej zo starého mobilného telefónu

Digitálny displej zo starého mobilného telefónu
Digitálny displej zo starého mobilného telefónu
Digitálny displej zo starého mobilného telefónu
Digitálny displej zo starého mobilného telefónu

Pre tento projekt som sa rozhodol použiť LCD obrazovku zo starého mobilného telefónu Nokia 5110. Tieto obrazovky sú široko dostupné na predaj ako modul, spotrebúvajú veľmi málo energie a pre Arduino existujú dobré knižnice. Ak kupujete nový modul s obrazovkou 5110 - zachraňujete planétu, pretože všetky nové moduly sú vytvorené zo zachránených telefónov 5110, 3110 a 3210!

Krok 6: Pripojenie obvodov

Pripojenie obvodov
Pripojenie obvodov
Pripojenie obvodov
Pripojenie obvodov
Pripojenie obvodov
Pripojenie obvodov

Možno ste už uhádli, že mám v pláne použiť dosku Arduino na ovládanie týchto hodín. Projekt je ľahko opakovateľný aj pre začínajúcich fanúšikov Arduina, pretože som nevytvoril svoje vlastné obvody. Je to doska Arduino Nano s modulmi k nej pripojenými - snímač teploty, tlaku a vlhkosti BME280, hodiny DS1307 RTC, nabíjačka lítiových batérií TP4056, malý posilňovací modul 3,7 až 5 V, odpor závislý od svetla (LDR - merač svetla) a bzučiak (prevzaté zo starého počítača).

Pozrite sa aj na náčrty - ukazujú všetky súvislosti. Myslím, že je všetko veľmi ľahko čitateľné a zrozumiteľné, ale ak máte akékoľvek otázky, opýtajte sa ich v nižšie uvedených komentároch.

Niekoľko poznámok k nastaveniu:

  • Motor je pripojený priamo z batérie cez tranzistor. Arduino riadi tranzistor pomocou rezistora a PWM pinu D5.
  • Piny D7-12 sa používajú pre konektor LCD. Uzemnenie a VCC sú spojené s koľajnicou na spojovacej doske.
  • Na ciferník bol nainštalovaný LDR a rezistor + 3 odchádzajúce vodiče boli spájkované priamo na zadnú stranu ciferníka.
  • Na tlačidlové pripojenie som použil vnútornú funkciu PULLUP vo vnútri Arduina. K prerušeniu je pripojené tlačidlo Menu a až neskôr som si uvedomil, že na prerušenie môžete použiť aj interný PULLUP. Prerušenie pre tlačidlo Menu je potrebné, aby kód neustále skenoval stav tlačidiel.
  • Hodiny budú monitorovať a zobrazovať aj stav batérie, takže je batéria priamo pripojená na pin A0. Napätie batérie nikdy nie je vyššie ako 4,2 V, takže je bezpečné pripojiť batériu priamo k analógovému kolíku Arduino.
  • Bzučiak je priamo pripojený k kolíku PWM D6. Aj keď to nie je dobrá prax, vyviazol som s tým, pretože Arduino Nano zvládol vyššie špecifikácie, ako je uvedené, a tiež preto, že bzučiak nebude fungovať nepretržite. Rovnaké nastavenie by ľahko vypálilo kolíky na doskách ESP, takže v týchto prípadoch odporúčam použiť tranzistorový ovládač.
  • Hodiny už mali vypínač, tak som sa ich rozhodol použiť. Na zadnej strane to vyzerá prirodzene.

Krok 7: Spojovacia doska pre jednoduché pripojenia

Spojovacia doska pre jednoduché pripojenie
Spojovacia doska pre jednoduché pripojenie
Spojovacia doska pre jednoduché pripojenie
Spojovacia doska pre jednoduché pripojenie

Všetky moduly vyžadujú kladné a uzemňovacie spojenia, preto som sa rozhodol použiť prototypovú dosku 2x8 cm a k nej spájkovať 5 V a uzemňovacie koľajnice. Tiež som tam vyrobil malú I2C lištu, pretože som mal niekoľko modulov používajúcich rozhranie I2C.

Na druhej strane som spájkoval štandardné kolíky, aby som v prípade potreby mohol moduly pripojiť a odpojiť.

Tam boli tiež spájkované niektoré z ďalších komponentov, ako napríklad tranzistor a odpor pre ovládanie motora a odpor pre tlačidlo Menu, ktoré používa prerušenie. Schémy som ukázal v predchádzajúcej časti.

btw Vidíte snímač LDR už nainštalovaný na ciferníku na prvom obrázku?

Krok 8: Nastavenie napájania

Nastavenie napájania
Nastavenie napájania

Na napájanie týchto hodín som použil starú lítium-iónovú batériu z mobilného telefónu. Batérie do mobilného telefónu, ktoré sa vymieňajú, majú obvykle stále dobrú kapacitu (najmenej polovicu toho, čo bolo pri novom). Ich výhodou je, že majú vstavaný obvod ochrany proti vybitiu a sú tiež veľmi tenké, takže sa dajú použiť v malých vesmírnych scenároch.

Na pripojenie batérie jednoducho spájkujte vodiče k pólom + a - na batérii. Nebojte sa, bunku nepoškodíte, pretože medzi kolíkmi a chemikáliou článku je ovládač a prázdne miesto.

Na tomto obrázku môžete vidieť batériu a tiež regulátor nabíjania TP4056, ako aj 5 V zosilňovač prepojený spolu s batériou. Použil som zmršťovaciu hadičku, aby bolo všetko izolované a kompaktné.

Krok 9: Micro USB na nabíjanie a aktualizáciu firmvéru

Micro USB na nabíjanie a aktualizáciu firmvéru
Micro USB na nabíjanie a aktualizáciu firmvéru

Keď som všetko spájkoval, nalepil som na zadný panel bzučiak a snímač teploty/tlaku/vlhkosti. Všetci dobre zapadli do existujúcich slotov zo starých ovládačov ciferníka hodín.

Teraz bolo načase nainštalovať port Micro USB na zadnú stranu. Prečo Micro USB, ak Nano používa Mini USB? Jednoducho preto, že v domácnosti je väčšina káblov USB od mobilných telefónov a bolo by vhodné, keby to zvládli aj hodiny.

Keďže som ho chcel použiť na nabíjanie aj aktualizáciu funkcií hodín a meteorologickej stanice - odizoloval som USB kábel, napájacie vodiče som viedol cez nabíjačku TP4056 a dátové+/dátové vodiče priamo do USB zásuvky Arduino Nano. Môžete to vidieť na schéme, ktorú som ukázal v predchádzajúcich častiach.

Krok 10: Konečná montáž

Konečné zhromaždenie
Konečné zhromaždenie
Konečné zhromaždenie
Konečné zhromaždenie
Konečné zhromaždenie
Konečné zhromaždenie

Teraz bolo načase zabaliť všetko späť do pôvodných hodín. Na izoláciu komponentov a modulov som použil zmršťovaciu trubicu. Dokonca aj Arduino bolo zabalené do zmršťovacej trubice.

Umiestnením kurzora myši na prvú fotografiu zistíte, kde boli jednotlivé komponenty umiestnené.

Krok 11: Kód

Ako vidíte, hodiny sú vo vnútri úplne zabalené. To umožnilo vytvoriť niečo sofistikovanejšie ako staré hodiny, ktoré som mal - vzhľadom na to, že samozrejme existujú určité programovacie schopnosti. Napísal som pôvodný kód, ale požiadal som svojho priateľa, aby vstúpil a pomohol mi.

Okrem samotných hodín sú to zatiaľ funkcie, ktoré tento projekt už podporuje:

  • Zobrazenie času a dátumu (ako aj času a aktivácie alarmu na tej istej obrazovke)
  • Obrazovka sa rozsvieti v tmavých podmienkach alebo pri detekcii pohybu (na základe zmien svetla)
  • Predpoveď počasia (slnečno, oblačno, daždivo)
  • Zobrazenie teploty, tlaku a vlhkosti (pre vlhkosť to indikuje, či je príliš sucho)
  • Ponuka nastavení: alarm, zmena času, zapnutie/vypnutie zobrazovania dátumu, zapnutie/vypnutie zvukových upozornení na zmenu počasia a prepínanie medzi imperiálnymi a metrickými jednotkami
  • Nastavenia alarmu - zapnutie/vypnutie, nastavenie času, nastavenie melódie a/alebo zvončekov pre upozornenia

Najnovší kód:

Kód bude v budúcnosti aktualizovaný o nové funkcie, preto si overte dostupnosť aktualizácií firmvéru:-)

Ak ste vo svete Arduino noví, odporúčam vám urobiť tieto kroky:

  • Nainštalujte na svoju dosku ovládač USB (napr. CH340)
  • Nainštalujte Arduino IDE
  • Nainštalujte knižnice použité v tomto projekte
  • Stiahnite si z GitHub a nahrajte najnovší kód projektu do hodín pomocou kábla Micro USB (môžete ho použiť z mobilného telefónu)

Algoritmus predpovedí je nasledujúci:

Arduino Nano získava nové údaje zo senzora BME280 každých 12 minút. Cyklus merania je 3 hodiny. Po 3 hodinách sa rozsah monitorovania tlaku (max. A min. Hodnota počas 3 hodín) posúva vzhľadom na priemerné hodnoty v rámci aktuálneho rozsahu a aktuálnej hodnoty tlaku. Každú hodinu sa uloží smer zmeny tlaku s aktuálnou hodnotou tlaku. Na výpočet predpovedí sa používajú jednotky kPa.

Vzhľadom na pamäťové obmedzenia Nano musel byť algoritmus predpovedí zjednodušený. Napriek zjednodušeniam je však schopný predpovedať zrážky na nasledujúcich 12 - 24 hodín, aj keď predpovede sú teraz pesimistickejšie - predvolená hodnota je „Oblačné počasie“.

„Slnečné počasie“- aktuálna hodnota tlaku je o 7 bodov vyššia ako norma, tlak neklesá a rozdiel medzi minimálnymi a maximálnymi hodnotami za posledné 3 hodiny nie je väčší ako 2 body.

Možné zrážky „Daždivé počasie“- aktuálny tlak je o 15 bodov nižší ako norma a rozdiel medzi minimálnymi a maximálnymi hodnotami je viac ako 2 body ALEBO tlak klesá a rozdiel medzi aktuálnou hodnotou a normou je 3 - 30 bodov.

Na zlepšenie kvality predpovedí sa odporúča zmeniť „nadmorskú výšku“v hlavnom súbore kódu. Nadmorskú výšku môžete získať napríklad tu:

Krok 12: Video krok za krokom

Image
Image

Ak bolo ťažké sledovať to, čo som urobil vyššie, tu je aj video verzia so všetkými zobrazenými krokmi.

Krok 13: Záverečné slová

Celkovo z môjho pohľadu nie je náročnosť tohto projektu vysoká a zvládol by ho ktokoľvek. Ak nemáte staré hodiny, nájdete ich lacné na miestnom blšom trhu.

Všetky komponenty sú za nízku cenu a sú k dispozícii na Sparkfun/Aliexpress/eBay/Amazon.

Dúfam, že vás tento návod zaujal a bol by som vďačný, keby ste mohli podporiť moju prvú súťaž Instructable in the Clock.

Hodinová súťaž
Hodinová súťaž
Hodinová súťaž
Hodinová súťaž

Runner Up in the Clocks Contest

Odporúča: