Innholdsfortegnelse:

Timer for Arduino Dusk/dawn Clock: 15 trinn
Timer for Arduino Dusk/dawn Clock: 15 trinn

Video: Timer for Arduino Dusk/dawn Clock: 15 trinn

Video: Timer for Arduino Dusk/dawn Clock: 15 trinn
Video: Arduino Based Home Automation Dusk To Dawn Lighting Timer Based On Vintage Sangamo Suntracker 2024, Juli
Anonim
Arduino Dusk/dawn Clock Timer
Arduino Dusk/dawn Clock Timer

Sammendrag:

Denne Arduino -baserte timeren kan bytte ett 220V lys i skumring, daggry eller angitt tidspunkt.

Introduksjon:

Noen av lysene i huset mitt slås automatisk på i skumringen, til enten en forhåndsinnstilt tid eller til daggry (hele natten).

Plasseringen av lysene tillater ikke bruk av en lyssensor. De vanlige tilgjengelige tidsurene slår seg på på et bestemt tidspunkt. For å slå på rundt skumringen krever det derfor regelmessig justering av timerprograminnstillingen.

Som en hyggelig utfordring bestemte jeg meg for å bygge en tilpasset Arduino -basert frittstående timer i stedet. Den bruker en sanntidsklokke og Dusk2Dawn -biblioteket for å bestemme når lysene må slås på eller av. Kapslingen til denne timeren er 3D -trykt og finnes på Thingiverse. Arduino -koden for dette prosjektet finner du på GitHub.

I opprettelsen av denne timeren fikk jeg inspirasjon fra mange design og kretser på internett. Jeg vil takke alle bidragsyterne som ikke er nevnt eksplisitt.

For lesbarhet er delvise diagrammer vist i trinnene der det er nødvendig, i stedet for et komplett kretsdiagram.

Alternative løsninger:

I stedet for en frittstående timer er det mange løsninger der et smart hjemmeautomatiseringssystem styrer lysene. Målet mitt var å ha en uavhengig løsning, som ikke er avhengig av WIFI (eller annen) tilkobling.

Begrensninger:

Koden som fulgte med dette prosjektet inkluderte implementering av sommertid endringer basert på europeisk sommertidssystem.

Trinn 1: Deleliste og verktøy

Deleliste og verktøy
Deleliste og verktøy

Deler:

Totale delekostnader (unntatt 3d -print) ca € 30, -.

  • Arduino Nano V3 (kompatibel) uten overskrifter
  • Strømforsyning 5V 0.6A (34 x 20 x 15mm)
  • Solid state relé 5V - Aktiv lav - 2A 230VAC
  • Sanntidsklokke DS3231 (liten)
  • 0,96”OLED -skjerm SPI 128*64 piksler
  • Roterende encoder - EC11 - 20mm
  • Knott 6mm aksel 15mm * 17mm
  • Breadboard kretskort,
  • 4* M3x25mm skruer
  • 3D -trykt kabinett
  • Krympeslange
  • Ledninger
  • Skru rekkeklemme (for å koble til nøytrale ledninger)

Nødvendige verktøy:

  • Loddejern
  • Loddetråd
  • Desoldering pumpe
  • Wire strippere
  • Kuttere
  • 3D -skriver (for å skrive ut kabinett)
  • Assorterte små verktøy

ADVARSEL

Denne kretsen fungerer på 230v vekselstrøm, og hvis du ikke er vant til å jobbe med nettspenning eller ikke har god erfaring med å arbeide med 230v vekselstrømnett, må du holde deg unna dette prosjektet

Jeg påtar meg intet ansvar for tap eller skade som oppstår direkte eller som følge av å følge dette prosjektet

Det anbefales alltid å være forsiktig og forsiktig når du arbeider med AC -nett

Trinn 2: Forbered OLED -skjerm og sanntidsklokke

Forbered OLED -skjerm og sanntidsklokke
Forbered OLED -skjerm og sanntidsklokke

3D -trykt kabinett er designet for minimal størrelse. Som et resultat må toppene til OLED -skjermen og sanntidsklokken fjernes.

Som forberedelse til neste trinn, fjern eventuelt gjenværende loddetinn fra hullene med avlodingspumpen.

Trinn 3: Forbered Rotary Encoder

Forbered Rotary Encoder
Forbered Rotary Encoder

Den roterende omkoderen har spinkle kontakter. For å forhindre skade må du montere et kretskort på koderen.

På bildet er jordforbindelsen (øverst til høyre og midt nederst) allerede klargjort.

Merk: Sørg for at den roterende encoderen med kretskort passer inn i kabinettet uten å berøre Arduino. Det kan være nødvendig å male kretskortet for å få en god passform.

Trinn 4: Vedlegg

Innhegning
Innhegning
Innhegning
Innhegning

Skriv ut de tre delene av kabinettet med en 3d -skriver. Se instruksjonene på Thingiverse.

Trinn 5: Deaktiver Arduino Power LED (valgfritt)

Deaktiver Arduino Power LED (valgfritt)
Deaktiver Arduino Power LED (valgfritt)

For å unngå å ha en grønn glød i timeren, kan strømlampen på Arduino deaktiveres.

Vær oppmerksom på at denne endringen er valgfri.

Modifikasjonen av Arduino Nano består i å fjerne motstanden ved siden av strømledningen (se rød sirkel på bildet).

Trinn 6: Strømforsyning + Solid State -relé

Strømforsyning + Solid State -relé
Strømforsyning + Solid State -relé

I dette trinnet kombineres strømforsyningen og solid-state-reléet i den nedre delen av kabinettet.

Tilkoblinger mellom strømforsyningen og reléet er gjort på bunnen av disse komponentene. Skrueklemmen på reléet vil bli brukt til å koble til Arduino.

Merk: Når du kobler til, må du sørge for at monteringshullene på solid-state-reléet holdes frie.

  • Lodd en tilkoblingskabel mellom solid state relé A1 til en av AC -tilkoblingene til strømforsyningen
  • Lod en ledning til den andre AC -tilkoblingen til strømforsyningen (denne kobles til den nøytrale skrueklemmen i trinn 7)
  • Lodd en ledning mellom strømforsyningen -Vo til relé DC-
  • Lodd en ledning for å koble til strømforsyning +Vo til relé DC +

Merk: Det kan være nødvendig å forkorte ledningene på strømforsyningen og reléet for å kunne passe inn i skapet.

Trinn 7: Arduino Nano + strømforsyning + solid-state-relé

Arduino Nano + strømforsyning + solid-state-relé
Arduino Nano + strømforsyning + solid-state-relé

I dette trinnet er Arduino Nano koblet til strømforsyningen og solid-state-reléet.

  • Klipp to ledninger på omtrent 70 mm lengde. Strip 30 mm isolasjon på den ene siden og 4 mm på den andre siden.
  • Lodd siden med 30 mm avisolert isolasjon til Arduino +5V og GND, med ledningen stikkende gjennom
  • Skjær to varmekrympeslanger med en lengde på 20 mm og fest dem over den 25 mm avskårne delen. Dette isolerer ledningene opp til forbindelsen med festeskrueklemmen DC+ og DC- til solid-state-reléet.
  • Vær oppmerksom på at ledningene for GND og +5V må krysses for å koble til reléskrueklemmen.
  • Klipp en ledning på omtrent 40 mm lengde og stripe 4 mm isolasjon av begge ender. Lodd den ene siden til A2-tilkoblingen på baksiden av Arduino, og koble den andre siden til CH1-tilkoblingen til solid-state-monteringsskruen.

ADVARSEL

Arduino får strøm direkte fra den stabile +5V strømforsyningen i stedet for å bruke Arduino interne effektregulator. Derfor er det ikke trygt å koble til USB når Arduino mottar strøm fra strømforsyningen.

Koble alltid fra 230VAC -strømnettet før du bruker Arduino USB -tilkoblingen.

Trinn 8: Arduino Nano + sanntidsklokke

Arduino Nano + sanntidsklokke
Arduino Nano + sanntidsklokke

I dette trinnet er sanntidsklokken koblet til Arduino, delvis ved å bruke kablene forberedt i forrige trinn.

  • Lodd ledningen som kommer fra Arduino GND (også koblet til reléets DC) til "-" av sanntidsklokken.
  • Lodd ledningen som kommer fra Arduino+5V (også koblet til DC+på reléet) til ‘+’ på sanntidsklokken.
  • Klipp to ledninger med en lengde på omtrent 40 mm og fjern 4 mm isolasjon av begge ender.
  • Lodd en ledning mellom Arduino A4 og sanntidsklokke D (SDA).
  • Lodd en ledning mellom Arduino A5 og sanntidsklokke C (SCL).
  • Form ledningene til sanntidsklokken for å sikre at de ikke forstyrrer den roterende omkoderen. For dette må ledningene være i bunnen av kabinettet.

Trinn 9: Koble til OLED -skjermen

Koble til OLED -skjerm
Koble til OLED -skjerm

I dette trinnet legges OLED SPI -skjermen til Arduino.

  • Klipp 2 ledninger med en lengde på 65 mm og fjern 4 mm isolasjon av begge ender.
  • Lod en ledning til GND -tilkoblingen til OLED -skjermen. Lodd denne ledningen til den isolerte ledningen for krympeslange som kommer fra Arduino GND (se trinn 4) og koble begge ledningene til DC-montert skrueklemme på solid-state-reléet.
  • Lodd en ledning til VCC -tilkoblingen til OLED -skjermen. Lodd denne ledningen til den isolerte ledningen til krympeslangen som kommer fra Arduino + 5V (se trinn 4) og koble begge ledningene til DC + -monteringsskrueklemmen på solid-state-reléet.
  • Klipp 5 ledninger med en lengde på 65 mm og fjern 4 mm isolasjon av begge ender.
  • Lodd en ledning for å koble D0 (CLK) til Arduino D10
  • Lodd en ledning for å koble D1 (MOSI / DATA) til Arduino D9
  • Lodd en ledning for å koble RES (RT) til Arduino D8
  • Lodd en ledning for å koble DC til Arduino D11
  • Lodd en ledning for å koble CS til Arduino D12

Merk: Rekkefølgen på skjermtrådene er ikke logisk. Dette er resultatet av først å bruke Adafruit -eksemplet, og deretter endre tilkoblingene fordi bruk av D13 resulterer i en rød LED på Arduino hele tiden.

Alternativ

Det er mulig å bruke en "normal" ordre for SPI -tilkoblingene. For dette må Arduino -programmets digitale utgangsdefinisjon i oledcontrol.cpp justeres deretter:

// Bruke programvare SPI

// pin definisjoner

#define CS_PIN 12

#define RST_PIN 8

#define DC_PIN 11

#define MOSI_PIN 9

#define CLK_PIN 10

Trinn 10: Rotary Encoder

Rotary Encoder
Rotary Encoder

Diagrammet viser tilkoblingene til Arduino til den roterende encoderen (encoder sett ovenfra).

  • Klipp 4 ledninger på 45 mm og stripe 4 mm isolasjon av begge ender.
  • Koble Arduino GND til øverste høyre og nedre midtre kontakt på koderen
  • Koble Arduino D2 nederst til venstre på koderen
  • Koble Arduino D3 nederst til høyre på koderen
  • Koble Arduino D4 øverst til venstre på koderen

Trinn 11: Installasjon i vedlegg

Installasjon i vedlegg
Installasjon i vedlegg

Installer all elektronikken i den nedre delen av kabinettet:

  • Skyv Arduino på det vertikale sporet
  • Skyv sanntidsklokken i det nederste rommet
  • Skyv strømforsyningen og reléet i det øverste rommet, og kontroller at reléet sitter på festene.

Trinn 12: Koble til strømnettet / lyset som skal byttes

Koble til strømnettet / lyset som skal byttes
Koble til strømnettet / lyset som skal byttes
Koble til strømnettet / lyset som skal byttes
Koble til strømnettet / lyset som skal byttes

ADVARSEL

Sørg for å ta riktig forsiktighet og forsiktighet når du arbeider med vekselstrømnettet, og sørg for at strømnettet er frakoblet

Jeg påtar meg intet ansvar for tap eller skade som oppstår direkte eller som følge av å følge dette prosjektet

  • Koble vekselstrømnettet til A1 (venstre) skrueklemme på reléet.
  • Koble fasen til lyset som skal byttes til B1 (høyre) skrueklemme på reléet.
  • Bruk en separat skrueklemme for å koble AC -nøytralledningen, den lette nøytrale ledningen og den nøytrale ledningen til strømforsyningen.
  • For strekkavlastning, monter en slips rundt hver av strømkablene.

Trinn 13: Fullfør kabinettet

Gjør ferdig kabinettet
Gjør ferdig kabinettet

I dette trinnet er monteringen i kabinettet fullført

  • Skyv OLED -skjermen gjennom skjermens monteringshull i den midterste delen av kabinettet.
  • Skyv den roterende encoderen gjennom hullet i den midterste delen, og sørg for at antirotasjonen er på linje. Monter den roterende encoderen med den medfølgende skiven og mutteren.
  • Monter den øvre delen av kabinettet og lukk kabinettet ved å montere de fire M3x25mm skruene fra bunnen.

Trinn 14: Programmering av Arduino

ADVARSEL

Arduino får strøm direkte fra den stabile +5V strømforsyningen i stedet for å bruke Arduino interne effektregulator. Derfor er det ikke trygt å koble til USB når Arduino mottar strøm fra strømforsyningen.

Koble alltid fra 230VAC -strømnettet før du bruker Arduino USB -tilkoblingen.

Hent Arduino -timerprogrammet fra GitHub.

Dette programmet bruker Arduino IDE, som du kan få her.

Programmet bruker følgende tilleggsbiblioteker:

SSD1303Ascii

Arduino Wire -bibliotek

Vær oppmerksom på at dusk2dawn -biblioteket også brukes, men er inkludert som kode på grunn av en endring i grensesnittet.

For å sikre riktig skumring / daggryberegning må lengdegrad og breddegrad og tidssone være angitt.

Som beskrevet i dusk2dawn -eksemplet, er en enkel måte å finne lengdegrad og breddegrad for et hvilket som helst sted å finne stedet i Google Maps, høyreklikk på stedet på kartet og velg "Hva er her?". Nederst ser du et kort med koordinatene.

Lengdegrad og breddegrad er hardkodet i programmet, i Dusk2Dawn.cpp linje 19 og 20:

/* Breddegrad og lengdegrad for posisjonen din må angis her.

* * TIPS: En enkel måte å finne lengdegrad og breddegrad for et hvilket som helst sted er * å finne stedet i Google Maps, høyreklikk på stedet på kartet og * velg "Hva er her?". Nederst ser du et kort med * koordinatene. */ #define LATITUDE 52.097105; // Utrecht #define LONGTITUDE 5.068294; // Utrecht

Tidssonen er også hardkodet i Dusk2Dawn.cpp linje 24. Som standard er den satt til Nederland (GMT + 1):

/* Skriv inn tidssonen din (offset til GMT) her.

*/ #define TIMEZONE 1

Når du programmerer Arduino for første gang, må EEPROM -minnet initialiseres. For dette, endre timer.cpp linje 11 for å gjøre EEPROM initialisering:

// endre til true for første gangs programmering

#define INITIALIZE_EEPROM_MEMORY false

Last opp programmet til Arduino og start Arduino.

Deaktiver EEPROM -initialisering og last opp programmet til Arduino igjen. Timeren vil nå huske innstillingene for bytte tid når den startes på nytt.

Trinn 15: Konfigurere tiden og bytte tider

Brukerinteraksjonskonsepter:

  • Kort trykk brukes for å bekrefte valg. Videre i hovedtimerskjermen slår et kort trykk på eller av lyset.
  • Langt trykk brukes for å gå til menyen fra hovedtimerskjermen. Hvor som helst i menyen, vil et langt trykk gå tilbake til hovedtimerskjermen.
  • '>' Markeringsmarkør. Denne markøren indikerer det valgte alternativet i en meny.

Hovedtidsskjerm

Hovedtidsskjermen viser:

Ukens dag Su

Nåværende tid 16:00

Gjeldende timer -tilstand og neste brytertid Timer AV til 17:12

Daggry og skumringstid Dawn 08:05 Dusk 17:10

Angi riktig tid

Trykk lenge for å gå til menyen. Følgende alternativer vises:

Tilbake Angi tid Ukedagsprogram Weekendprogram Valg

Velg angitt klokkeslett for å angi dato og klokkeslett for sanntidsklokken. Skriv inn riktige verdier for:

YearMonthDayTime

Timeren bestemmer automatisk ukedagen. Bytte sommertid utføres også automatisk. Sommertid er bare implementert for europeisk tidssone.

Stille inn timerprogrammet

Timeren har 2 programmer, ett for ukedager, ett for helg. Vær oppmerksom på at fredagen regnes som en del av helgen, og lysene kan lyse litt lenger.

Hver timer har en bryter på og av. Øyeblikket kan enten være:

  • Tid: Nøyaktig angitt tid
  • Dawn: Switch basert på beregnet daggry
  • Dusk: Switch basert på beregnet skumringstid

For skumring og daggry er det mulig å angi en korreksjonsverdi på 59 minutter før eller etter.

Eksempler:

For å slå på lyset hele natten, velg slå på ved (skumring + 10 min), slå av ved (daggry - 10 min)

For å slå på et lys om kvelden, velg slå på i skumringen, slå av klokken 22:30.

Alternativer

I alternativskjermbildet kan det settes en timeout for å bytte skjerm.

Når skjermen er slått av, kommer du tilbake til hovedtimerskjermen ved å trykke på dreieknappen.

Anbefalt: