Innehållsförteckning:
- Steg 1: Dellista och verktyg
- Steg 2: Förbered OLED -skärm och realtidsklocka
- Steg 3: Förbered Rotary Encoder
- Steg 4: Kapsling
- Steg 5: Inaktivera Arduino Power LED (tillval)
- Steg 6: Strömförsörjning + halvledarrelä
- Steg 7: Arduino Nano + strömförsörjning + halvledarrelä
- Steg 8: Arduino Nano + Realtidsklocka
- Steg 9: Anslut OLED -skärm
- Steg 10: Rotary Encoder
- Steg 11: Installation i höljet
- Steg 12: Anslutning till elnät / ljus som ska bytas
- Steg 13: Avsluta kapslingen
- Steg 14: Programmering av Arduino
- Steg 15: Ställa in tiden och växla tider
Video: Arduino Dusk/dawn Clock Timer: 15 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
Sammanfattning:
Denna Arduino -baserade timer kan växla ett 220V ljus i skymningen, gryningen eller angiven tid.
Introduktion:
Några av lamporna i mitt hus tänds automatiskt i skymningen, tills antingen en förinställd tid eller till gryningen (hela natten).
Placeringen av lamporna tillåter inte användning av en ljussensor. De vanliga klockurstimern slås på vid en viss tidpunkt. För att slå på i skymningen krävs därför att regelbundet justera timerprograminställningen.
Som en trevlig utmaning bestämde jag mig för att bygga en anpassad Arduino -baserad fristående timer istället. Den använder en realtidsklocka och Dusk2Dawn -biblioteket för att bestämma när lamporna måste slås på eller av. Höljet för den här timern är 3D -tryckt och finns på Thingiverse. Arduino -koden för detta projekt finns på GitHub.
I skapandet av denna timer fick jag inspiration från många mönster och kretsar på internet. Jag tackar alla bidragsgivare som inte uttryckligen nämns.
För läsbarhet visas deldiagram i stegen där det behövs, istället för ett komplett kretsschema.
Alternativa lösningar:
Istället för en fristående timer finns det många lösningar där ett smart hemautomatiseringssystem styr lamporna. Mitt mål var att ha en oberoende lösning, som inte beror på WIFI (eller annan) anslutning.
Begränsningar:
Koden som medföljde detta projekt inkluderade en implementering av sommartidsförändringar baserat på det europeiska sommartidssystemet.
Steg 1: Dellista och verktyg
Delar:
Totalkostnader för delar (exklusive 3D -tryck) cirka € 30, -.
- Arduino Nano V3 (kompatibel) utan rubriker
- Strömförsörjning 5V 0.6A (34 x 20 x 15mm)
- Halvledarrelä 5V - Aktiv låg - 2A 230VAC
- Realtidsklocka DS3231 (liten)
- 0,96”OLED -skärm SPI 128*64 pixlar
- Roterande pulsgivare - EC11 - 20 mm
- Knopp 6mm axel 15mm * 17mm
- Brödbräda kretskort,
- 4* M3x25mm skruvar
- 3D -tryckt hölje
- Krympslang
- Trådar
- Skruvplint (för anslutning av neutrala ledningar)
Nödvändiga verktyg:
- Lödkolv
- Lödtråd
- Avlödningspump
- Wire Strippers
- Fräsar
- 3D -skrivare (för att skriva ut hölje)
- Blandade små verktyg
VARNING
Denna krets fungerar på 230v AC och om du inte är van vid att arbeta med nätspänning eller inte har god erfarenhet av att arbeta med 230v AC nätspänning, håll dig borta från detta projekt
Jag tar inget ansvar för förlust eller skada som uppstår direkt eller som en följd av att följa detta projekt
Det rekommenderas alltid att vara noggrann och försiktig när du arbetar med AC -nät
Steg 2: Förbered OLED -skärm och realtidsklocka
Det 3D -tryckta höljet är utformat för minimal storlek. Som ett resultat måste rubrikerna på OLED -skärmen och realtidsklockan tas bort.
Förbered för nästa steg, rensa eventuellt kvarvarande löd från hålen med avlödningspumpen.
Steg 3: Förbered Rotary Encoder
Den roterande givaren har tunna kontakter. För att förhindra skador, montera en bit kretskort på pulsgivaren.
På bilden är jordanslutningen (upptill till höger och mitten nedtill) redan förberedd.
Obs: Se till att den roterande givaren med kretskort passar in i höljet utan att röra Arduino. Det kan krävas att slipa kretskortet för att få en passform.
Steg 4: Kapsling
Skriv ut de tre delarna av höljet med en 3d -skrivare. Se instruktionerna om Thingiverse.
Steg 5: Inaktivera Arduino Power LED (tillval)
För att förhindra att du får ett grönt sken i timern kan strömlampan på Arduino inaktiveras.
Observera att denna ändring är valfri.
Modifieringen av Arduino Nano består i att ta bort motståndet bredvid strömledningen (se röd cirkel på bilden).
Steg 6: Strömförsörjning + halvledarrelä
I detta steg kombineras strömförsörjningen och halvledarreläet och monteras i den nedre delen av höljet.
Anslutningar mellan strömförsörjningen och reläet görs längst ner på dessa komponenter. Reläets skruvplint kommer att användas för att ansluta till Arduino.
Obs: Se till att anslutningshålen på solid-state-reläet hålls fria vid anslutningar.
- Löd en anslutningskabel mellan halvledarrelä A1 till en av nätaggregatets AC -anslutningar
- Löd en kabel till strömförsörjningens andra AC -anslutning (denna kommer att anslutas till den neutrala skruvplinten i steg 7)
- Löd en kabel mellan strömförsörjningen -Vo till relä DC-
- Löd en kabel för att ansluta strömförsörjning +Vo till relä DC +
Obs! Det kan vara nödvändigt att korta av ledningarna på strömförsörjningen och reläet för att kunna passa in i höljet.
Steg 7: Arduino Nano + strömförsörjning + halvledarrelä
I detta steg är Arduino Nano ansluten till strömförsörjning och solid-state relä.
- Klipp två trådar med ungefär 70 mm längd. Ta bort 30 mm isolering på ena sidan och 4 mm på andra sidan.
- Löd sidan med 30 mm avisolerad isolering till Arduino +5V och GND, med tråden som sticker ut
- Skär två värmekrymprör med en längd på 20 mm och montera dem över den 25 mm avskalade delen. Detta isolerar ledningarna upp till anslutningen med monteringsskruvplinten DC+ och DC- för halvledarreläet.
- Observera att ledningarna för GND och +5V måste korsas för att anslutas korrekt till reläskruvplinten.
- Klipp en tråd på cirka 40 mm längd och ta bort 4 mm isolering av båda ändarna. Löd ena sidan till A2-anslutningen på BAKSIDAN av Arduino, och anslut den andra sidan till CH1-anslutningen på skruvplinten för solid state-montering.
VARNING
Arduino drivs direkt från den stabila +5V strömförsörjningen istället för att använda Arduino interna effektregulator. Därför är det inte säkert att ansluta USB när Arduino tar emot ström från strömförsörjningen.
Koppla alltid från 230VAC -nätet innan du använder Arduino USB -anslutning.
Steg 8: Arduino Nano + Realtidsklocka
I detta steg är realtidsklockan ansluten till Arduino, delvis med hjälp av kablarna som förberetts i föregående steg.
- Löd ledningen från Arduino GND (även ansluten till reläets DC-) till "-" för realtidsklockan.
- Löd ledningen från Arduino+5V (även ansluten till reläets DC+) till "+" på realtidsklockan.
- Klipp två trådar med ungefär 40 mm längd och ta bort 4 mm isolering av båda ändarna.
- Löd en tråd mellan Arduino A4 och realtidsklocka D (SDA).
- Löd en tråd mellan Arduino A5 och realtidsklocka C (SCL).
- Forma trådarna till realtidsklockan så att de inte stör den roterande givaren. För detta måste ledningarna vara i botten av höljet.
Steg 9: Anslut OLED -skärm
I detta steg läggs OLED SPI -skärmen till Arduino.
- Klipp 2 trådar med en längd på 65 mm och ta bort 4 mm isolering av båda ändarna.
- Löd en kabel till GND -anslutningen på OLED -skärmen. Löd denna tråd till den isolerade värmekrympslangen som kommer från Arduino GND (se steg 4) och anslut båda ledningarna till DC-monterad skruvplint på solid-state-reläet.
- Löd en kabel till VCC -anslutningen på OLED -skärmen. Löd denna tråd till den värmekrympande slangisolerade tråden som kommer från Arduino + 5V (se steg 4) och anslut båda ledningarna till DC + -monterad skruvplint på solid-state-reläet.
- Klipp 5 trådar med 65 mm längd och ta bort 4 mm isolering av båda ändarna.
- Löd en tråd för att ansluta D0 (CLK) till Arduino D10
- Löd en tråd för att ansluta D1 (MOSI / DATA) till Arduino D9
- Löd en tråd för att ansluta RES (RT) till Arduino D8
- Löd en tråd för att ansluta DC till Arduino D11
- Löd en tråd för att ansluta CS till Arduino D12
Obs! Ordningen på displaytrådarna är inte logisk. Detta är resultatet av att först använda Adafruit -exemplet och sedan ändra anslutningarna eftersom användning av D13 resulterar i en röd lysdiod på Arduino hela tiden.
Alternativ
Det är möjligt att använda en "normal" ordning för SPI -anslutningarna. För detta måste Arduino -programmets digitala utgångsdefinition i oledcontrol.cpp justeras i enlighet med detta:
// Med programvara SPI
// stiftdefinitioner
#define CS_PIN 12
#define RST_PIN 8
#define DC_PIN 11
#define MOSI_PIN 9
#define CLK_PIN 10
Steg 10: Rotary Encoder
Diagrammet visar anslutningarna mellan Arduino och den roterande givaren (kodaren sett uppifrån).
- Klipp 4 trådar på 45 mm och ta bort 4 mm isolering av båda ändarna.
- Anslut Arduino GND till översta högra och nedre mittkontakterna på pulsgivaren
- Anslut Arduino D2 till nedre vänstra delen av pulsgivaren
- Anslut Arduino D3 till nedre högra delen av pulsgivaren
- Anslut Arduino D4 uppe till vänster på pulsgivaren
Steg 11: Installation i höljet
Installera all elektronik i nedre delen av höljet:
- Skjut Arduino på den vertikala luckan
- Skjut realtidsklockan i det nedre facket
- Skjut in strömförsörjningen och reläet i det övre facket, se till att reläet sitter på sina fästen.
Steg 12: Anslutning till elnät / ljus som ska bytas
VARNING
Se till att du är noggrann och försiktig när du arbetar med AC -nät, se till att AC -nätet är frånkopplat
Jag tar inget ansvar för förlust eller skada som uppstår direkt eller som en följd av att följa detta projekt
- Anslut AC -nätfasen till reläets A1 (vänster) skruvplint.
- Anslut lampans fas till reläets B1 (höger) skruvplint.
- Använd en separat skruvplint för att ansluta AC -nätets neutralkabel, den ljusa neutrala tråden och strömkabelns neutrala kabel.
- För dragavlastning, montera ett band runt varje strömkabel.
Steg 13: Avsluta kapslingen
I detta steg är monteringen i skåpet klar
- Skjut OLED -skärmen genom bildskärmens monteringshål i mitten av höljet.
- Skjut den roterande givaren genom hålet i mitten, se till att antirotationen ligger i linje. Montera rotationsgivaren med den medföljande brickan och muttern.
- Montera den övre delen av höljet och stäng höljet genom att montera de fyra M3x25mm skruvarna från botten.
Steg 14: Programmering av Arduino
VARNING
Arduino drivs direkt från den stabila +5V strömförsörjningen istället för att använda Arduino interna effektregulator. Därför är det inte säkert att ansluta USB när Arduino tar emot ström från strömförsörjningen.
Koppla alltid från 230VAC -nätet innan du använder Arduino USB -anslutning.
Hämta Arduino -timerprogrammet från GitHub.
Detta program använder Arduino IDE, som kan erhållas här.
Programmet använder följande ytterligare bibliotek:
SSD1303Ascii
Arduino Wire -bibliotek
Observera att dusk2dawn -biblioteket också används, men ingår som kod på grund av en ändring av gränssnittet.
För att säkerställa korrekt skymning / gryningsberäkning måste longitud och latitud och tidszon ställas in.
Som beskrivs i dusk2dawn -exemplet är ett enkelt sätt att hitta longitud och latitud för valfri plats att hitta platsen i Google Maps, högerklicka på platsen på kartan och välj "Vad är här?". Längst ner ser du ett kort med koordinaterna.
Longitud och latitud är hårdkodade i programmet, i Dusk2Dawn.cpp rad 19 och 20:
/* Latitud och longitud för din plats måste anges här.
* * TIPS: Ett enkelt sätt att hitta longitud och latitud för valfri plats är * att hitta platsen i Google Maps, högerklicka på platsen på kartan och * välj "Vad är här?". Längst ner ser du ett kort med * koordinaterna. */ #define LATITUDE 52.097105; // Utrecht #define LONGTITUDE 5.068294; // Utrecht
Tidszonen är också hårdkodad på Dusk2Dawn.cpp rad 24. Som standard är den inställd på Nederländerna (GMT + 1):
/* Ange din tidszon (offset till GMT) här.
*/ #define TIMEZONE 1
När du programmerar Arduino för första gången måste EEPROM -minnet initialiseras. För detta ändrar du timer.cpp rad 11 för att göra EEPROM -initialisering:
// ändra till true för första gången programmering
#define INITIALIZE_EEPROM_MEMORY false
Ladda upp programmet till Arduino och starta Arduino.
Inaktivera EEPROM -initialisering och ladda upp programmet till Arduino igen. Timern kommer nu att komma ihåg inställningarna för omkopplingstid vid omstart.
Steg 15: Ställa in tiden och växla tider
Användarinteraktionskoncept:
- Kort tryckning används för att bekräfta val. På huvudtimerskärmen tänds eller stängs ljuset av med en kort tryckning.
- Långt tryck används för att öppna menyn från huvudtimerskärmen. Var som helst i menyn kommer ett långt tryck tillbaka till huvudtimerskärmen.
- ‘>’ Urvalsmarkör. Denna markör indikerar det valda alternativet i en meny.
Huvudtimerskärm
Huvudtimerskärmen visar:
Veckans dag Su
Nuvarande tid 16:00
Aktuellt timerläge och nästa omkopplingstid Timer AV till 17:12
Gryning och skymningstid Gryning 08:05 Skymning 17:10
Ställ in rätt tid
Tryck länge för att komma till menyn. Följande alternativ visas:
Tillbaka Ställ in tid Veckodagsprogram Weekendprogram Val
Välj inställd tid för att ställa in datum och tid för realtidsklockan. Ange rätt värden för:
YearMonthDayTime
Timern bestämmer automatiskt veckodagen. Att byta sommartid görs också automatiskt. Sommartid implementeras endast för europeisk tidszon.
Ställa in timerprogrammet
Timern har 2 program, ett för veckodagar, ett för helg. Observera att fredagen anses vara en del av helgen, lamporna kan lysa lite längre.
Varje timer har en på- och avstängningsmoment. Momentet kan antingen vara:
- Tid: Exakt angiven tid
- Gryning: Växla baserat på beräknad gryningstid
- Dusk: Switch baserat på beräknad skymningstid
För skymning och gryning är det möjligt att ange ett korrigeringsvärde på 59 minuter före eller efter.
Exempel:
För att tända ett ljus hela natten, välj slå på vid (skymning + 10min), stäng av vid (gryning - 10min)
För att tända ett ljus på kvällen, välj slå på i skymningen, stäng av vid tidpunkten: 22:30.
alternativ
På alternativskärmen kan en timeout ställas in för att byta skärm.
När skärmen är avstängd kommer du tillbaka till huvudtimerskärmen genom att trycka på vridknappen.
Rekommenderad:
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)
Arduino Hang Guardian - Arduino Watchdog Timer Handledning: 6 steg
Arduino Hang Guardian - Arduino Watchdog Timer Handledning: Hej alla, det händer oss alla. Du bygger ett projekt, ansluter entusiastiskt alla sensorer, och helt plötsligt hänger Arduino och ingen ingång bearbetas. "Vad händer?", Frågar du och börjar gräva igenom din kod, bara för att
AVR -mikrokontroller. Lysdioder blinkar med timer. Timers avbryter. Timer CTC -läge: 6 steg
AVR -mikrokontroller. Lysdioder blinkar med timer. Timers avbryter. Timer CTC -läge: Hej alla! Timers är ett viktigt koncept inom elektronik. Varje elektronisk komponent fungerar på en tidsbas. Denna tidsbas hjälper till att hålla allt arbete synkroniserat. Alla mikrokontroller fungerar med någon fördefinierad klockfrekvens,
Gixie Clock: vackraste Glow Tube Clock: 4 steg
Gixie Clock: vackraste Glow Tube Clock: Jag gillar Nixie Tube väldigt mycket, men det är för dyrt, jag har inte råd. Så jag tillbringade ett halvt år med att skapa denna Gixie Clock. Gixie Clock uppnås genom att använda ws2812 -belysningen för att göra akrylljuset. Jag gör mitt bästa för att göra RGB -röret tunnare
M-Clock Miniature Multimode Clock: 11 steg
M-Clock Miniature Multimode Clock: Minimalist's Clock? Klocka med flera lägen? Matrix Clock? Detta är ett klockprojekt med flera lägen baserat på MSP430G2432. Den kan monteras utan lödning och minimal användning av verktyg. Med begränsad upplösning på 8x8 pixlar visar denna 12 -timmars klocka tid