Obsah:

Hodiny předpovědi počasí využívající starý alarm a Arduino: 13 kroků (s obrázky)
Hodiny předpovědi počasí využívající starý alarm a Arduino: 13 kroků (s obrázky)

Video: Hodiny předpovědi počasí využívající starý alarm a Arduino: 13 kroků (s obrázky)

Video: Hodiny předpovědi počasí využívající starý alarm a Arduino: 13 kroků (s obrázky)
Video: Štěpán Bechyňský: Kinect / .NET Gadgeteer 2024, Listopad
Anonim
Hodiny předpovědi počasí využívající starý alarm a Arduino
Hodiny předpovědi počasí využívající starý alarm a Arduino
Hodiny předpovědi počasí využívající starý alarm a Arduino
Hodiny předpovědi počasí využívající starý alarm a Arduino

Ležel jsem rozbitý budík a přišel jsem s nápadem převést jej na hodiny a stanici pro předpověď počasí.

Pro tento projekt budete potřebovat:

  • Starý kruhový budík
  • Arduino Nano
  • Modul senzoru BME280 (teplota, vlhkost, tlak)
  • Modul LCD displeje od Nokia 5110
  • Hodiny RTC DS1307
  • Nabíječka lithiových baterií TP4056
  • Stará Li-ion baterie zachráněna z mobilního telefonu
  • Malý posilovací modul 3,7 až 5 V.
  • Light Dependent Resistor (LDR - light meter)
  • Bzučák (použitý zachráněný ze starého PC)
  • 3 tlačítka
  • Spousta rezistorů (2x10k, 270 ohmů) a tranzistor (2N2222A nebo podobný)
  • Nějaká široká smršťovací trubka
  • šrot PCB k použití jako ozdoba čelní desky
  • Prodlužovací kabel Micro-USB (samice i samec jsou Micro-USB)
  • Prototypová deska 2x8 cm a několik vodičů

Krok 1: Vše rozeberte

Vše rozebrat
Vše rozebrat

Nejprve jsem rozbil staré hodiny. Zvony, motor, rozbitý hodinový mechanismus …

Krok 2: Tlačítka pro digitální nastavení

Tlačítka pro digitální nastavení
Tlačítka pro digitální nastavení
Tlačítka pro digitální nastavení
Tlačítka pro digitální nastavení
Tlačítka pro digitální nastavení
Tlačítka pro digitální nastavení
Tlačítka pro digitální nastavení
Tlačítka pro digitální nastavení

Vzhledem k tomu, že nové hodiny budou plně digitální a uvnitř bude minipočítač, přidal jsem na boku 3 jednoduchá pěkně vypadající tlačítka.

Pomocí kousku hliníku jsem vyřízl překrytí a vytvořil štítek. Písmena pro štítky byla vytvořena pomocí děrovaček a černé značky.

Krok 3: Kondenzátor pro motor

Kondenzátor pro motor
Kondenzátor pro motor

Ponechám staré zvony pro napájení alarmu motorem. Starý rozbitý hodinový mechanismus měl keramický kondenzátor se štítkem 104. Odstranil jsem ho z desky s obvody a připájel přímo k motoru - to pomůže zabránit špičkám napájení při zapnutí motoru během alarmu. Je také důležité si uvědomit, že motor bude řízen tranzistorem, ale o tom později.

Krok 4: Nová tvář pro hodiny

Nová tvář pro hodiny
Nová tvář pro hodiny
Nová tvář pro hodiny
Nová tvář pro hodiny

Vzhledem k tomu, že jsem se rozhodl vytvořit novou tvář hodin - vzal jsem desku s obvody z hromady popelnice a pomocí stavěcí tepelné zbraně rychle odstranil všechny součásti. Otvor uprostřed je vytvořen pro digitální obrazovku nových hodin.

Krok 5: Digitální displej ze starého mobilního telefonu

Digitální displej ze starého mobilního telefonu
Digitální displej ze starého mobilního telefonu
Digitální displej ze starého mobilního telefonu
Digitální displej ze starého mobilního telefonu

Pro tento projekt jsem se rozhodl použít LCD obrazovku ze starého mobilního telefonu Nokia 5110. Tyto obrazovky jsou široce dostupné k prodeji jako modul, odebírají velmi málo energie a pro Arduino existují dobré knihovny. Pokud kupujete nový modul s obrazovkou 5110 - zachraňujete planetu, protože všechny nové moduly jsou vytvořeny ze zachráněných telefonů 5110, 3110 a 3210!

Krok 6: Připojení obvodů

Připojení obvodů
Připojení obvodů
Připojení obvodů
Připojení obvodů
Připojení obvodů
Připojení obvodů

Možná jste již hádali, že jsem plánoval použít desku Arduino k ovládání těchto hodin. Projekt je snadno opakovatelný i pro začínající fanoušky Arduina, protože jsem nevytvořil vlastní desky plošných spojů. Je to deska Arduino Nano s moduly, které jsou k ní připojeny - snímač teploty, tlaku a vlhkosti BME280, hodiny DS1307 RTC, nabíječka lithiové baterie TP4056, malý posilovací modul 3,7 až 5 V, odpor závislý na světle (LDR - měřič světla) a bzučák (převzato ze starého počítače).

Podívejte se také na náčrty - ukazují všechna spojení. Myslím, že je vše velmi snadno čitelné a srozumitelné, ale pokud máte nějaké otázky, zeptejte se v níže uvedených komentářích.

Několik poznámek k nastavení:

  • Motor je připojen přímo z baterie přes tranzistor. Arduino ovládá tranzistor přes odpor a PWM pin D5.
  • Piny D7-12 se používají pro konektor LCD. Uzemnění a VCC jsou připojeny k kolejnici na spojovací desce.
  • Na ciferník byl nainstalován LDR a rezistor + 3 odchozí vodiče byly připájeny přímo na zadní stranu ciferníku.
  • Pro připojení tlačítkem jsem použil interní funkci PULLUP uvnitř Arduina. K přerušení je připojeno tlačítko Nabídka a až později jsem si uvědomil, že pro přerušení můžete použít také interní PULLUP. Přerušení pro tlačítko Menu je vyžadováno, aby kód neustále skenoval stav tlačítek.
  • Hodiny budou sledovat a zobrazovat také stav baterie, takže je baterie přímo připojena na pin A0. Napětí baterie není nikdy vyšší než 4,2 V, takže je bezpečné připojit baterii přímo k analogovému pinu Arduino.
  • Bzučák je přímo připojen k PWM pinu D6. Ačkoli to není dobrá praxe, vyvázl jsem s tím, protože Arduino Nano zvládne vyšší specifikace, než bylo uvedeno, a také proto, že bzučák nebude nepřetržitě fungovat. Stejné nastavení by snadno vypálilo piny na deskách ESP, takže v těchto případech doporučuji použít ovládání tranzistorem.
  • Hodiny již měly vypínač, tak jsem se rozhodl je použít. Na zádech to vypadá přirozeně.

Krok 7: Spojovací deska pro snadné připojení

Spojovací deska pro snadné připojení
Spojovací deska pro snadné připojení
Spojovací deska pro snadné připojení
Spojovací deska pro snadné připojení

Všechny moduly vyžadují kladné a uzemnění, proto jsem se rozhodl použít prototypovou desku 2x8 cm a připájet k ní 5V a zemnící lišty. Také jsem tam vytvořil malou I2C lištu, protože jsem měl několik modulů využívajících rozhraní I2C.

Na druhou stranu jsem připájel standardní piny, abych mohl v případě potřeby moduly připojit a odpojit.

Byly tam také pájeny některé další komponenty, jako je tranzistor a odpor pro ovládání motoru a odpor pro tlačítko Menu, které používá Přerušení. Schémata jsem ukázal v předchozí části.

btw Vidíte snímač LDR již nainstalovaný na ciferníku na prvním obrázku?

Krok 8: Nastavení napájení

Nastavení napájení
Nastavení napájení

K napájení těchto hodin jsem použil starou lithium-iontovou baterii z mobilu. Vyměněné baterie mobilních telefonů mají obvykle stále dobrou kapacitu (alespoň polovinu toho, co bylo při nové). Jejich výhodou je, že mají integrovaný obvod ochrany proti vybití a jsou také velmi tenké, takže je lze použít v malých vesmírných scénářích.

Chcete -li připojit baterii, jednoduše připájejte vodiče k pólům + a - na baterii. Nebojte se, buňku nepoškodíte, protože mezi kolíky a chemikáliemi článku je ovladač a prázdné místo.

Na tomto obrázku můžete vidět baterii a také regulátor nabíjení TP4056 a také 5V posilovač propojený dohromady a k baterii. Použil jsem smršťovací hadičku, aby bylo vše izolované a kompaktní.

Krok 9: Micro USB pro nabíjení a aktualizaci firmwaru

Micro USB pro nabíjení a aktualizaci firmwaru
Micro USB pro nabíjení a aktualizaci firmwaru

Jakmile jsem vše připájel, nalepil jsem na zadní panel bzučák a snímač teploty/tlaku/vlhkosti. Všichni krásně zapadli do stávajících slotů ze starých ovládacích prvků ciferníku hodin.

Nyní bylo načase nainstalovat port Micro USB na zadní stranu. Proč Micro USB, když Nano používá Mini USB? Jednoduše proto, že v domácnosti je většina kabelů USB od mobilních telefonů a bylo by vhodné, kdyby to zvládly i hodiny.

Protože jsem jej chtěl použít jak k nabíjení, tak k aktualizaci funkcí hodin a meteorologické stanice - odizoloval jsem USB kabel, vedl napájecí kabely přes nabíječku TP4056 a datové/datové vodiče přímo do USB zásuvky Arduino Nano. Můžete to vidět na schématu, které jsem ukázal v předchozích částech.

Krok 10: Konečná montáž

Konečné shromáždění
Konečné shromáždění
Konečné shromáždění
Konečné shromáždění
Konečné shromáždění
Konečné shromáždění

Nyní bylo načase zabalit vše zpět do původních hodin. K izolaci součástí a modulů jsem použil smršťovací bužírku. Dokonce i Arduino bylo zabaleno do smršťovací trubice.

Umístěním ukazatele myši na první fotografii zobrazíte umístění jednotlivých komponent.

Krok 11: Kód

Jak vidíte, hodiny jsou uvnitř úplně zabalené. To umožnilo vytvořit něco sofistikovanějšího než staré hodiny, které jsem měl - vzhledem k tomu, že samozřejmě existují určité programovací schopnosti. Napsal jsem počáteční kód, ale požádal jsem svého přítele, aby zakročil a pomohl mi.

Kromě samotných hodin jsou to zatím funkce, které tento projekt již podporuje:

  • Zobrazení času a data (stejně jako čas a aktivace alarmu na stejné obrazovce)
  • Obrazovka se rozsvítí ve tmě nebo při detekci pohybu (na základě změn světla)
  • Předpověď počasí (slunečno, zataženo, deštivo)
  • Zobrazení teploty, tlaku a vlhkosti (u vlhkosti indikuje, zda není příliš suchá)
  • Nabídka pro nastavení: alarm, změna času, povolení/zakázání zobrazení data, povolení/zakázání zvukových upozornění na změnu počasí a přepínání mezi imperiálními a metrickými jednotkami
  • Nastavení alarmu - zapnutí/vypnutí, nastavení času, nastavení melodie a/nebo zvonků pro upozornění

Nejnovější kód:

Kód bude v budoucnu aktualizován o nové funkce, takže nezapomeňte zkontrolovat aktualizace firmwaru:-)

Pokud jste ve světě Arduino noví, doporučuji provést tyto kroky:

  • Nainstalujte si na desku ovladač USB (např. CH340)
  • Nainstalujte Arduino IDE
  • Nainstalujte knihovny použité v tomto projektu
  • Stáhněte si z GitHubu a nahrajte nejnovější kód projektu do hodin pomocí kabelu Micro USB (můžete jej použít z mobilního telefonu)

Algoritmus prognózování je následující:

Arduino Nano získává nová data ze senzoru BME280 každých 12 minut. Cyklus měření je 3 hodiny. Po 3 hodinách se rozsah monitorování tlaku (maximální a minimální hodnota během 3 hodin) posune vzhledem k průměrným hodnotám v aktuálním rozsahu a aktuální hodnotě tlaku. Každou hodinu se uloží směr změny tlaku s aktuální hodnotou tlaku. Pro výpočet prognózy se používají jednotky kPa.

Kvůli paměťovým omezením Nano musel být algoritmus předpovědí zjednodušen. Ale i přes zjednodušení je schopen předpovědět srážky v příštích 12–24 hodinách, i když předpovědi jsou nyní pesimističtější - výchozí hodnota je „Zataženo“.

"Slunečné počasí" - aktuální hodnota tlaku je vyšší než normálně o 7 bodů, tlak neklesá a rozdíl mezi minimální a maximální hodnotou za poslední 3 hodiny není větší než 2 body.

Možné srážky „Deštivé počasí“- aktuální tlak je o 15 bodů nižší než normál a rozdíl mezi minimální a maximální hodnotou je více než 2 body NEBO Tlak klesá a rozdíl mezi aktuální hodnotou a normou je 3 - 30 bodů.

Pro zlepšení kvality předpovědí se doporučuje změnit "nadmořskou výšku" v hlavním souboru kódu. Nadmořskou výšku můžete získat například zde:

Krok 12: Video krok za krokem

Image
Image

Pokud bylo obtížné sledovat to, co jsem udělal výše, zde je také video verze se všemi zobrazenými kroky.

Krok 13: Závěrečná slova

Celkově z mého pohledu není obtížnost tohoto projektu vysoká a zvládl by to každý. Pokud nemáte staré hodiny, můžete je najít levně na místním bleším trhu.

Všechny komponenty mají nízkou cenu a jsou k dispozici na Sparkfun/Aliexpress/eBay/Amazon.

Doufám, že vás tento návod zaujal a byl bych vděčný, kdybyste mohli podpořit můj první soutěž Instructable in the Clock.

Hodinová soutěž
Hodinová soutěž
Hodinová soutěž
Hodinová soutěž

Runner Up in the Clocks Contest

Doporučuje: