Obsah:

Časovač hodin soumraku/úsvitu Arduino: 15 kroků
Časovač hodin soumraku/úsvitu Arduino: 15 kroků

Video: Časovač hodin soumraku/úsvitu Arduino: 15 kroků

Video: Časovač hodin soumraku/úsvitu Arduino: 15 kroků
Video: Od soumraku do úsvitu abeb: Šestnáct hodin versus jeden ORK 2024, Listopad
Anonim
Časovač hodin soumraku/úsvitu Arduino
Časovač hodin soumraku/úsvitu Arduino

Souhrn:

Tento časovač založený na Arduinu může přepínat jedno světlo 220 V za soumraku, za úsvitu nebo v určený čas.

Úvod:

Některá světla v mém domě se automaticky zapínají za soumraku, a to buď do předem nastaveného času, nebo do úsvitu (celou noc).

Umístění světel neumožňuje použití světelného senzoru. Běžné dostupné časovače hodin se zapnou v určitý čas. Zapnutí za soumraku proto vyžaduje pravidelnou úpravu nastavení časového programu.

Jako příjemnou výzvu jsem se rozhodl místo toho postavit vlastní samostatný časovač založený na Arduinu. Pomocí hodin reálného času a knihovny Dusk2Dawn určuje čas, kdy se musí světla zapnout nebo vypnout. Příloha pro tento časovač je vytištěna 3D a najdete ji na Thingiverse. Kód Arduino pro tento projekt najdete na GitHubu.

Při tvorbě tohoto časovače jsem se inspiroval mnoha návrhy a obvody na internetu. Děkuji všem přispěvatelům, kteří nejsou výslovně uvedeni.

Pro čitelnost jsou v krocích podle potřeby zobrazeny dílčí diagramy, místo úplného schématu zapojení.

Alternativní řešení:

Namísto samostatného časovače existuje mnoho řešení, kde inteligentní domácí automatizační systém řídí světla. Mým cílem bylo mít nezávislé řešení, které nezávisí na připojení WIFI (nebo jiném).

Omezení:

Kód dodaný s tímto projektem zahrnoval implementaci změn letního času založenou na evropském systému letního času.

Krok 1: Seznam dílů a nástroje

Seznam dílů a nástroje
Seznam dílů a nástroje

Díly:

Celkové náklady na součásti (bez 3D tisku) přibližně 30 EUR -.

  • Arduino Nano V3 (kompatibilní) bez záhlaví
  • Napájení 5V 0,6A (34 x 20 x 15 mm)
  • Polovodičové relé 5V - aktivní nízké - 2A 230VAC
  • Hodiny reálného času DS3231 (malé)
  • 0,96”OLED displej SPI 128*64 pixelů
  • Rotační kodér - EC11 - 20 mm
  • Knoflík 6 mm hřídel 15 mm * 17 mm
  • Deska s plošnými spoji
  • 4* šrouby M3x25 mm
  • 3D tištěná příloha
  • Smršťovací bužírky
  • Dráty
  • Šroubová svorkovnice (pro připojení neutrálních vodičů)

Potřebné nástroje:

  • Páječka
  • Pájecí drát
  • Odpájecí čerpadlo
  • Odizolovače drátu
  • Řezačky
  • 3D tiskárna (pro tisk přílohy)
  • Různé malé nástroje

VAROVÁNÍ

Tento obvod pracuje na 230 V AC a pokud nejste zvyklí pracovat se síťovým napětím nebo nemáte dostatečné zkušenosti s prací se síťovým napětím 230 V AC, držte se od tohoto projektu stranou

Nepřijímám žádnou odpovědnost za jakoukoli ztrátu nebo škodu, která vznikne přímo v důsledku nebo v důsledku sledování tohoto projektu

Při práci se síťovým napájením se vždy doporučuje věnovat náležitou péči a preventivní opatření

Krok 2: Připravte si OLED displej a hodiny v reálném čase

Připravte si OLED displej a hodiny v reálném čase
Připravte si OLED displej a hodiny v reálném čase

Pouzdro s 3D tiskem je navrženo pro minimální velikost. V důsledku toho je třeba odstranit záhlaví OLED displeje a hodin reálného času.

Při přípravě na další krok odstraňte veškerou zbývající pájku z otvorů pomocí odpájecího čerpadla.

Krok 3: Připravte rotační kodér

Připravte rotační kodér
Připravte rotační kodér

Rotační kodér má tenké konektory. Abyste předešli poškození, namontujte na kodér kus desky s plošnými spoji.

Na obrázku je již připraveno také zemní spojení (vpravo nahoře a uprostřed dole).

Poznámka: Zajistěte, aby rotační kodér s deskou s plošnými spoji zapadl do skříně, aniž byste se dotkli Arduina. Může být vyžadováno vybroušení desky s plošnými spoji, aby dobře přiléhalo.

Krok 4: Příloha

Ohrada
Ohrada
Ohrada
Ohrada

Vytiskněte tři části krytu pomocí 3D tiskárny. Viz pokyny na Thingiverse.

Krok 5: Vypněte LED napájení Arduino (volitelně)

Zakázat Arduino LED napájení (volitelně)
Zakázat Arduino LED napájení (volitelně)

Aby se zabránilo tomu, že v časovači svítí zeleně, lze LED napájení Arduina deaktivovat.

Tato úprava je volitelná.

Modifikace Arduino Nano spočívá v odstranění odporu vedle napájecího LED (viz červený kruh na obrázku).

Krok 6: Napájení + polovodičové relé

Napájení + polovodičové relé
Napájení + polovodičové relé

V tomto kroku jsou napájecí zdroj a polovodičové relé kombinovány a namontovány ve spodní části skříně.

Připojení mezi napájecím zdrojem a relé je provedeno ve spodní části těchto komponent. K připojení k Arduinu bude použita šroubová svorkovnice relé.

Poznámka: Při připojování zajistěte, aby montážní otvory polovodičového relé zůstaly volné.

  • Pájejte propojovací vodič mezi polovodičovým relé A1 k jednomu ze střídavých připojení napájecího zdroje
  • Pájejte vodič k druhému střídavému připojení napájecího zdroje (bude připojeno k svorkovnici neutrálního šroubu v kroku 7)
  • Pájecí vodič mezi napájecím zdrojem -Vo k relé DC-
  • Pájením drátu připojte napájecí zdroj +Vo k relé DC +

Poznámka: Může být nutné zkrátit vodiče na napájecím zdroji a relé, aby se vešly do skříně.

Krok 7: Arduino Nano + napájecí zdroj + polovodičové relé

Arduino Nano + napájecí zdroj + polovodičové relé
Arduino Nano + napájecí zdroj + polovodičové relé

V tomto kroku je Arduino Nano připojeno k napájecímu zdroji a polovodičovému relé.

  • Odřízněte dva dráty o délce přibližně 70 mm. Odizolujte 30 mm izolace na jedné straně a 4 mm na druhé straně.
  • Stranu připájejte 30mm odizolovanou izolací k Arduinu +5V a GND, drát protáhněte
  • Odřízněte dvě smršťovací bužírky o délce 20 mm a namontujte je na 25 mm odizolovanou část. Tím se izolují vodiče až ke spojení s montážní šroubovou svorkovnicí DC+ a DC- polovodičového relé.
  • Pamatujte, že vodiče pro GND a +5V je třeba křížit, aby se správně připojily ke šroubové svorkovnici relé.
  • Odřízněte drát o délce přibližně 40 mm a odizolujte oba konce izolací o průměru 4 mm. Pájejte jednu stranu na připojení A2 na zadní straně Arduina a druhou stranu připojte na připojení CH1 šroubové svorkovnice pro montáž na polovodičovou montáž.

VAROVÁNÍ

Arduino je napájeno přímo ze stabilního napájecího zdroje +5V místo použití interního regulátoru napájení Arduino. Proto není bezpečné připojovat USB, když Arduino dostává energii z napájecího zdroje.

Před použitím připojení Arduino USB vždy odpojte síť 230VAC.

Krok 8: Hodiny Arduino Nano + v reálném čase

Hodiny v reálném čase Arduino Nano +
Hodiny v reálném čase Arduino Nano +

V tomto kroku jsou hodiny reálného času připojeny k Arduinu, částečně pomocí kabelů připravených v předchozím kroku.

  • Pájejte vodič přicházející z Arduino GND (také připojený k DC- relé) k „-“hodin reálného času.
  • Pájejte vodič přicházející z Arduina+5V (také připojený k DC+relé) k „+“hodin reálného času.
  • Odřízněte dva dráty o délce přibližně 40 mm a odizolujte 4 mm izolace obou konců.
  • Pájejte vodič mezi Arduino A4 a hodinami reálného času D (SDA).
  • Pájejte vodič mezi Arduino A5 a hodinami C v reálném čase (SCL).
  • Tvarujte vodiče hodin reálného času tak, aby nerušily rotační kodér. K tomu musí být vodiče ve spodní části skříně.

Krok 9: Připojte OLED displej

Připojte OLED displej
Připojte OLED displej

V tomto kroku se do Arduina přidá OLED SPI displej.

  • Odřízněte 2 dráty o délce 65 mm a odizolujte 4 mm izolace obou konců.
  • Pájejte vodič na GND připojení OLED displeje. Tento vodič připájejte na izolovaný vodič smršťovací bužírky pocházející z Arduino GND (viz krok 4) a oba vodiče připojte ke šroubové svorkovnici polovodičového relé pro montáž na stejnosměrný proud.
  • Pájejte vodič k připojení VCC OLED displeje. Tento vodič připájejte na izolovaný vodič smršťovací bužírky pocházející z Arduino + 5V (viz krok 4) a oba vodiče připojte ke šroubové svorkovnici polovodičového relé pro montáž na DC +.
  • Odřízněte 5 drátů o délce 65 mm a odizolujte 4 mm izolace obou konců.
  • Pájením drátu připojte D0 (CLK) k Arduino D10
  • Pájením drátu připojte D1 (MOSI / DATA) k Arduino D9
  • Pájením drátu připojte RES (RT) k Arduino D8
  • Pájením drátu připojte DC k Arduino D11
  • Pájením drátu připojte CS k Arduino D12

Poznámka: Pořadí vodičů displeje není logické. To je výsledek toho, že nejprve použijete příklad Adafruit a poté změníte připojení, protože použití D13 způsobí, že na Arduinu bude neustále svítit červená LED dioda.

Alternativní

Pro připojení SPI je možné použít „normální“objednávku. K tomu je třeba odpovídajícím způsobem upravit definici digitálního výstupu programu Arduino v oledcontrol.cpp:

// Pomocí softwaru SPI

// definice pinů

#define CS_PIN 12

#define RST_PIN 8

#define DC_PIN 11

#define MOSI_PIN 9

#define CLK_PIN 10

Krok 10: Rotační kodér

Rotační kodér
Rotační kodér

Diagram ukazuje připojení Arduina k rotačnímu kodéru (kodér při pohledu shora).

  • Odřízněte 4 dráty o délce 45 mm a odizolujte 4 mm izolace obou konců.
  • Připojte Arduino GND k pravému hornímu a dolnímu střednímu konektoru kodéru
  • Připojte Arduino D2 vlevo dole k kodéru
  • Připojte Arduino D3 v pravém dolním rohu kodéru
  • Připojte Arduino D4 vlevo nahoře na kodéru

Krok 11: Instalace do skříně

Instalace do skříně
Instalace do skříně

Nainstalujte veškerou elektroniku do spodní části skříně:

  • Nasuňte Arduino na svislý slot
  • Ve spodní přihrádce zasuňte hodiny reálného času
  • Zasuňte napájecí zdroj a relé do horního oddílu a ujistěte se, že relé sedí na držácích.

Krok 12: Připojení k síti / světlo, které chcete přepnout

Připojení k síti / světlo, které se má přepnout
Připojení k síti / světlo, které se má přepnout
Připojení k síti / světlo, které se má přepnout
Připojení k síti / světlo, které se má přepnout

VAROVÁNÍ

Při práci se síťovým adaptérem zajistěte náležitou péči a preventivní opatření, ujistěte se, že je napájecí kabel odpojen

Nepřijímám žádnou odpovědnost za jakoukoli ztrátu nebo škodu, která vznikne přímo v důsledku nebo v důsledku sledování tohoto projektu

  • Připojte fázi střídavého proudu k šroubové svorkovnici relé A1 (vlevo).
  • Připojte fázi spínaného světla k šroubové svorkovnici relé B1 (vpravo).
  • Použijte samostatnou šroubovou svorkovnici k připojení neutrálního vodiče střídavého proudu, neutrálního vodiče a nulového vodiče napájecího zdroje.
  • Pro odlehčení tahu připevněte kolem každého napájecího kabelu stahovací pásku.

Krok 13: Dokončení přílohy

Dokončení přílohy
Dokončení přílohy

V tomto kroku je montáž do skříně dokončena

  • Zasuňte OLED displej skrz montážní otvor displeje ve střední části skříně.
  • Protáhněte rotační kodér otvorem ve střední části a ujistěte se, že je zarovnání proti otočení zarovnáno. Namontujte rotační kodér pomocí přiložené podložky a matice.
  • Namontujte horní část skříně a uzavřete skříň upevněním čtyř šroubů M3x25 mm zespodu.

Krok 14: Programování Arduina

VAROVÁNÍ

Arduino je napájeno přímo ze stabilního napájecího zdroje +5V místo použití interního regulátoru napájení Arduino. Proto není bezpečné připojovat USB, když Arduino dostává energii z napájecího zdroje.

Před použitím připojení Arduino USB vždy odpojte síť 230VAC.

Načtěte program časovače Arduino z GitHubu.

Tento program používá Arduino IDE, které lze získat zde.

Program používá následující další knihovny:

SSD1303Ascii

Knihovna Arduino Wire

Všimněte si, že je také použita knihovna dusk2dawn, ale zahrnuta jako kód kvůli změně jejího rozhraní.

Aby byl zajištěn správný výpočet soumraku / úsvitu, musí být nastavena zeměpisná délka, zeměpisná šířka a časové pásmo.

Jak je popsáno v příkladu dusk2dawn, jednoduchým způsobem, jak zjistit zeměpisnou délku a šířku pro jakékoli místo, je najít místo v Mapách Google, kliknout pravým tlačítkem na místo na mapě a vybrat „Co je tady?“. V dolní části uvidíte kartu se souřadnicemi.

Zeměpisná délka a šířka jsou v programu napevno zakódovány na řádku 19 a 20 v Dusk2Dawn.cpp:

/* Zde je třeba nastavit zeměpisnou šířku a délku vaší polohy.

* * TIP: Jednoduchý způsob, jak zjistit zeměpisnou délku a šířku pro jakékoli místo, je * najít místo v Mapách Google, kliknout pravým tlačítkem na místo na mapě a * vybrat „Co je tady?“. V dolní části uvidíte kartu se souřadnicemi *. */ #define LATITUDE 52.097105; // Utrecht #define LONGTITUDE 5.068294; // Utrecht

Časové pásmo je také pevně zakódováno v řádku 24. Dusk2Dawn.cpp. Ve výchozím nastavení je nastaveno na Nizozemsko (GMT + 1):

/* Zde zadejte své časové pásmo (posun k GMT).

*/ #define TIMEZONE 1

Při prvním programování Arduina je třeba inicializovat paměť EEPROM. Za tímto účelem změňte časovač.cpp řádek 11 na inicializaci EEPROM:

// při prvním programování změňte na true

#define INITIALIZE_EEPROM_MEMORY false

Nahrajte program do Arduina a spusťte Arduino.

Zakažte inicializaci EEPROM a nahrajte program znovu do Arduina. Časovač si nyní pamatuje nastavení času přepnutí při restartu.

Krok 15: Nastavení času a spínacích časů

Koncepce interakce s uživatelem:

  • Krátké stisknutí slouží k potvrzení výběrů. Kromě toho na hlavní obrazovce časovače krátkým stisknutím zapnete nebo vypnete světlo.
  • Dlouhé stisknutí slouží k vstupu do nabídky z hlavní obrazovky časovače. Kdekoli v nabídce se dlouhým stisknutím vrátíte na hlavní obrazovku časovače.
  • ‘>‘Výběrové kurzory. Tento kurzor označuje vybranou možnost v nabídce.

Hlavní obrazovka časovače

Hlavní obrazovka časovače ukazuje:

Den v týdnu Su

Aktuální čas 16:00

Aktuální stav časovače a čas dalšího přepnutí Časovač VYP do 17:12

Úsvit a soumrak Dawn 08:05 Soumrak 17:10

Nastavení správného času

Dlouhým stisknutím vstoupíte do nabídky. Zobrazí se následující možnosti:

ZpětNastavit časTýdenní programVíkendový programMožnosti

Vyberte nastavit čas a nastavte datum a čas hodin reálného času. Zadejte správné hodnoty pro:

RokMěsícDenČas

Časovač automaticky určuje den v týdnu. Přepínání letního času probíhá také automaticky. Letní čas je implementován pouze pro evropské časové pásmo.

Nastavení programu časovače

Časovač má 2 programy, jeden pro týdenní dny, jeden pro víkend. Pátek je považován za součást víkendu, světla mohou svítit o něco déle.

Každý časovač má zapínací a vypínací moment. Okamžik může být buď:

  • Čas: Přesně zadaný čas
  • Dawn: Přepínání podle vypočítaného času úsvitu
  • Soumrak: Přepínač založený na vypočítané době soumraku

Pro soumrak a úsvit je možné zadat opravnou hodnotu 59 minut před nebo po.

Příklady:

Chcete -li rozsvítit celou noc, vyberte zapnutí (soumrak + 10 minut), vypnutí (úsvit - 10 minut)

Chcete -li večer rozsvítit, vyberte Zapnout za soumraku, Vypnout v čase: 22:30.

Možnosti

Na obrazovce možností lze nastavit časový limit pro přepnutí obrazovky.

Když je obrazovka vypnutá, stisknutím otočného ovladače kodéru se vrátíte na hlavní obrazovku časovače.

Doporučuje: