Innholdsfortegnelse:
- Trinn 1: Deleliste og verktøy
- Trinn 2: Forbered OLED -skjerm og sanntidsklokke
- Trinn 3: Forbered Rotary Encoder
- Trinn 4: Vedlegg
- Trinn 5: Deaktiver Arduino Power LED (valgfritt)
- Trinn 6: Strømforsyning + Solid State -relé
- Trinn 7: Arduino Nano + strømforsyning + solid-state-relé
- Trinn 8: Arduino Nano + sanntidsklokke
- Trinn 9: Koble til OLED -skjermen
- Trinn 10: Rotary Encoder
- Trinn 11: Installasjon i vedlegg
- Trinn 12: Koble til strømnettet / lyset som skal byttes
- Trinn 13: Fullfør kabinettet
- Trinn 14: Programmering av Arduino
- Trinn 15: Konfigurere tiden og bytte tider
Video: Timer for Arduino Dusk/dawn Clock: 15 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
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
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
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
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
Skriv ut de tre delene av kabinettet med en 3d -skriver. Se instruksjonene på Thingiverse.
Trinn 5: 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é
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é
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
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
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
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
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
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
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:
Timer med Arduino og Rotary Encoder: 5 trinn
Timer med Arduino og Rotary Encoder: Timeren er et verktøy som ofte brukes i både industrielle og husholdningsaktiviteter. Denne monteringen er billig og enkel å lage. Den er også veldig allsidig og kan laste inn et program valgt etter behov. Det er flere programmer skrevet av meg, for Ardui
Power Timer Med Arduino og Rotary Encoder: 7 trinn (med bilder)
Power Timer With Arduino and Rotary Encoder: Denne Power Timer er basert på timeren som presenteres på: https: //www.instructables.com/id/Timer-With-Arduin…En strømforsyningsmodul og et SSR (solid state relé) ) .Last på opptil 1KW kan betjenes og med minimale endringer
The Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 trinn
The Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: Hei alle, Det skjer med oss alle. Du bygger et prosjekt, kobler entusiastisk alle sensorene, og plutselig henger Arduino og ingen input blir behandlet. "Hva skjer?", Spør du og begynner å grave gjennom koden din, bare for å gjenta
Gixie Clock: Vakreste Glow Tube Clock: 4 trinn
Gixie Clock: Vakreste Glow Tube Clock: Jeg liker Nixie Tube veldig godt, men det er for dyrt, jeg har ikke råd til det. Så jeg brukte et halvt år på å lage denne Gixie Clock. Gixie Clock oppnås ved å bruke ws2812 belysning for å lage akryllyset. Jeg gjør mitt beste for å gjøre RGB -røret tynnere
M-Clock Miniature Multimode Clock: 11 trinn
M-Clock Miniature Multimode Clock: Minimalist's Clock? Flermodus klokke? Matrix Clock? Dette er et flermodus klokkeprosjekt basert på MSP430G2432. Den kan monteres uten lodding og minimal bruk av verktøy. Med begrenset 8x8 piksler skjermoppløsning viser denne 12 -timers klokken tid