INHOUDSOPGAWE:
- Stap 1: Onderdele lys en gereedskap
- Stap 2: Berei OLED -skerm en real -time klok voor
- Stap 3: Berei die roterende enkodeerder voor
- Stap 4: Omhulsel
- Stap 5: Skakel Arduino Power LED uit (opsioneel)
- Stap 6: Kragtoevoer + Solid State Relay
- Stap 7: Arduino Nano + kragtoevoer + vaste-relais
- Stap 8: Arduino Nano + Real Time Clock
- Stap 9: Koppel OLED -skerm
- Stap 10: Rotary Encoder
- Stap 11: Installasie in die omhulsel
- Stap 12: Koppel aan die net / lig wat oorgeskakel moet word
- Stap 13: Voltooi die omhulsel
- Stap 14: Programmering van die Arduino
- Stap 15: Stel die tyd in en verander die tye
Video: Arduino -skemer/dagbreekkloktimer: 15 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
Opsomming:
Hierdie op Arduino gebaseerde timer kan een teen 220V lig skemer, dagbreek of gespesifiseerde tyd skakel.
Inleiding:
Sommige van die ligte in my huis word outomaties aangeskakel tydens skemer, tot 'n vooraf ingestelde tyd of tot dagbreek (die hele nag).
Die ligging van die ligte laat die gebruik van 'n ligsensor nie toe nie. Die gewone horlosietellers word op 'n spesifieke tyd aangeskakel. Om teen skemer in te skakel, moet u dus die tydprograminstelling gereeld aanpas.
As 'n aangename uitdaging het ek besluit om eerder 'n persoonlike, selfstandige timer op Arduino te bou. Dit gebruik 'n intydse klok en die Dusk2Dawn -biblioteek om te bepaal op watter tydstip die ligte moet aan- of uitgeskakel word. Die omhulsel vir hierdie timer is 3D -gedruk en kan op Thingiverse gevind word. Die Arduino -kode vir hierdie projek kan op GitHub gevind word.
By die skepping van hierdie timer het ek inspirasie gekry uit baie ontwerpe en stroombane op die internet. My dank aan al die bydraers wat nie eksplisiet genoem word nie.
Vir leesbaarheid word gedeeltelike diagramme waar nodig in die stappe getoon, in plaas van 'n volledige stroombaan -diagram.
Alternatiewe oplossings:
In plaas van 'n selfstandige timer, is daar baie oplossings waar 'n slim outomatiseringstelsel die ligte stuur. My doel was om 'n onafhanklike oplossing te hê wat nie afhang van WIFI (of ander) verbinding nie.
Beperkings:
Die kode wat by hierdie projek voorsien is, bevat 'n implementering van dagligbesparings wat gebaseer is op die Europese dagligbesparingstelsel.
Stap 1: Onderdele lys en gereedskap
Dele:
Totale onderdeelkoste (uitgesluit 3D -druk) ongeveer € 30, -.
- Arduino Nano V3 (versoenbaar) sonder kopstukke
- Kragtoevoer 5V 0.6A (34 x 20 x 15mm)
- Solid -state relais 5V - aktief laag - 2A 230VAC
- Real time klok DS3231 (klein)
- 0,96”OLED -skerm SPI 128*64 pixels
- Roterende encoder - EC11 - 20 mm
- Knop 6mm as 15mm * 17mm
- Broodbord gedrukte kringbord,
- 4* M3x25mm skroewe
- 3D -gedrukte omhulsel
- Krimpbuis
- Drade
- Skroefklemmenblok (om neutrale drade aan te sluit)
Gereedskap benodig:
- Soldeerbout
- Soldeerdraad
- Desoldeerpomp
- Draadstroppers
- Snyers
- 3D -drukker (om die omhulsel te druk)
- Verskeie klein gereedskap
WAARSKUWING
Hierdie stroombaan werk op 230v wisselstroom, en as u nie gewoond is om met netspanning te werk nie, of nie genoeg ervaring het om met 230v wisselspanning te werk nie, moet u wegbly van hierdie projek
Ek aanvaar geen verantwoordelikheid vir enige verlies of skade wat direk voortspruit uit of as gevolg van die gevolg van hierdie projek nie
Dit word altyd aangeraai om behoorlik versigtig te wees terwyl u met AC Mains werk
Stap 2: Berei OLED -skerm en real -time klok voor
Die 3D -gedrukte omhulsel is ontwerp vir 'n minimale grootte. As gevolg hiervan moet die opskrifte van die OLED -skerm en die real -time klok verwyder word.
Ter voorbereiding vir die volgende stap, verwyder die oorblywende soldeersel uit die gate met die ontsoldeerpomp.
Stap 3: Berei die roterende enkodeerder voor
Die roterende encoder het dun verbindings. Om skade te voorkom, monteer 'n stuk printplaat op die encoder.
Op die foto is die grondaansluiting (regs bo en middel onder) ook reeds voorberei.
Let wel: Maak seker dat die draaikodeerder met drukplaat in die omhulsel pas sonder om aan die Arduino te raak. Dit kan nodig wees om die printplaat te maal om 'n goeie pasmaat te kry.
Stap 4: Omhulsel
Druk die drie dele van die omhulsel af met 'n 3D -drukker. Raadpleeg die instruksies op Thingiverse.
Stap 5: Skakel Arduino Power LED uit (opsioneel)
Om te voorkom dat die timer 'n groen gloed het, kan die krag -LED van die Arduino gedeaktiveer word.
Let daarop dat hierdie wysiging opsioneel is.
Die verandering van die Arduino Nano bestaan uit die verwydering van die weerstand langs die kragleiding (sien rooi sirkel in die prentjie).
Stap 6: Kragtoevoer + Solid State Relay
In hierdie stap word die kragtoevoer en solid-state relais gekombineer en gemonteer in die onderste deel van die omhulsel.
Verbindings tussen die kragtoevoer en die relais word onderaan hierdie komponente gemaak. Die skroefaansluitblok van die relais word gebruik om aan te sluit op die Arduino.
Opmerking: as u verbindings maak, moet u verseker dat die bevestigingsgate van die solid-state relais vry gehou word.
- Soldeer 'n verbindingsdraad tussen vaste toestand -relais A1 aan een van die wisselstroomaansluitings van die kragtoevoer
- Soldeer 'n draad aan die ander wisselstroomaansluiting van die kragtoevoer (dit word in stap 7 aan die neutrale skroefklemmenblok gekoppel)
- Soldeer 'n draad tussen kragtoevoer -Vo na relais DC-
- Soldeer 'n draad om die kragtoevoer +Vo aan relais DC +aan te sluit
Opmerking: dit kan nodig wees om die leidings op die kragtoevoer en relais te verkort om in die omhulsel te kan pas.
Stap 7: Arduino Nano + kragtoevoer + vaste-relais
In hierdie stap is die Arduino Nano gekoppel aan die kragtoevoer en solid-state relais.
- Sny twee drade van ongeveer 70 mm lank. Stroop 30 mm isolasie aan die een kant en 4 mm aan die ander kant.
- Soldeer die sy met 'n 30 mm gestripte isolasie aan die Arduino +5V en GND, terwyl die draad daardeur steek
- Sny twee krimpbuise van 20 mm lank en monteer dit oor die 25 mm gestroopte deel. Dit isoleer die drade tot by die aansluiting met die skroefklemblok DC+ en DC- van die vaste-toestand-relais.
- Let daarop dat die drade vir GND en +5V moet kruis om korrek aan te sluit op die relaisskroefklem.
- Sny 'n draad van ongeveer 40 mm lank en strook 4 mm isolasie van albei kante. Soldeer die een kant aan die A2-verbinding aan die agterkant van die Arduino, en verbind die ander kant met die CH1-aansluiting van die soliede skroefklemblok.
WAARSKUWING
Die Arduino word direk van die stabiele +5V -kragtoevoer aangedryf in plaas van die Arduino -interne kragreguleerder te gebruik. Daarom is dit nie veilig om USB aan te sluit as die Arduino krag van die kragtoevoer ontvang nie.
Ontkoppel altyd die 230VAC -net voordat u die Arduino USB -verbinding gebruik.
Stap 8: Arduino Nano + Real Time Clock
In hierdie stap word die real -time klok aan die Arduino gekoppel, deels deur gebruik te maak van die kabels wat in die vorige stap voorberei is.
- Soldeer die draad van Arduino GND (ook gekoppel aan DC- van die relais) aan '-' van die real-time klok.
- Soldeer die draad van Arduino+5V (ook gekoppel aan DC+van die relais) aan '+' van die real -time klok.
- Sny twee drade van ongeveer 40 mm lank en verwyder 4 mm isolasie van albei kante.
- Soldeer 'n draad tussen Arduino A4 en real -time klok D (SDA).
- Soldeer 'n draad tussen Arduino A5 en real -time klok C (SCL).
- Vorm die drade van die real -time horlosie om te verseker dat dit nie die roterende enkodeerder belemmer nie. Hiervoor moet die drade onderaan die omhulsel wees.
Stap 9: Koppel OLED -skerm
In hierdie stap word die OLED SPI -skerm by die Arduino gevoeg.
- Sny 2 drade van 65 mm lank en strook 4 mm isolasie van albei kante.
- Soldeer 'n draad aan die GND -verbinding van die OLED -skerm. Soldeer hierdie draad aan die geïsoleerde draad van die hitte-krimpslang wat van die Arduino GND afkomstig is (verwys na stap 4) en verbind albei drade met die DC-gemonteerde skroefklemmenblok van die solid-state relais.
- Soldeer 'n draad aan die VCC -verbinding van die OLED -skerm. Soldeer hierdie draad aan die geïsoleerde draad van die hitte-krimpbuis wat van die Arduino + 5V kom (verwys na stap 4) en verbind albei drade met die DC + -skroefklemblok van die solid-state relais.
- Sny 5 drade van 65 mm lank en strook 4 mm isolasie van albei kante.
- Soldeer 'n draad om D0 (CLK) aan Arduino D10 te koppel
- Soldeer 'n draad om D1 (MOSI / DATA) aan Arduino D9 te koppel
- Soldeer 'n draad om RES (RT) aan Arduino D8 te koppel
- Soldeer 'n draad om DC aan Arduino D11 te koppel
- Soldeer 'n draad om CS aan Arduino D12 te koppel
Let wel: die volgorde van die vertoondrade is nie logies nie. Dit is die gevolg daarvan dat u eers die voorbeeld van Adafruit gebruik het en dan die verbindings verander het, omdat die gebruik van D13 altyd 'n rooi LED op die Arduino tot gevolg het.
Alternatief
Dit is moontlik om 'n 'normale' bestelling vir die SPI -verbindings te gebruik. Hiervoor moet die definisie van die digitale uitvoer van Arduino -program in oledcontrol.cpp dienooreenkomstig aangepas word:
// Gebruik sagteware SPI
// pen definisies
#definieer CS_PIN 12
#definieer RST_PIN 8
#definieer DC_PIN 11
#definieer MOSI_PIN 9
#definieer CLK_PIN 10
Stap 10: Rotary Encoder
Die diagram toon die verbindings van die Arduino met die roterende encoder (encoder van bo gesien).
- Sny 4 drade van 45 mm en strook 4 mm isolasie van albei kante.
- Koppel Arduino GND aan die regter- en onderkant van die middelste verbindings van die encoder
- Koppel Arduino D2 links onder in die encoder
- Koppel Arduino D3 regs onder op die encoder
- Verbind Arduino D4 links bo in die encoder
Stap 11: Installasie in die omhulsel
Installeer al die elektronika in die onderste deel van die omhulsel:
- Skuif die Arduino op die vertikale gleuf
- Skuif die intydse horlosie in die onderste kompartement
- Skuif die kragtoevoer en die relais in die boonste kompartement en maak seker dat die relais op sy houers sit.
Stap 12: Koppel aan die net / lig wat oorgeskakel moet word
WAARSKUWING
Sorg dat u die nodige sorg en voorsorg tref terwyl u met AC -netwerke werk
Ek aanvaar geen verantwoordelikheid vir enige verlies of skade wat direk voortspruit uit of as gevolg van die gevolg van hierdie projek nie
- Koppel die wisselstroomfase aan die A1 (links) skroefklemmenblok van die aflos.
- Koppel die fase van die lig wat oorgeskakel moet word aan die B1 (regs) skroefklemmenblok van die aflos.
- Gebruik 'n aparte skroefklemmenblok om die neutrale draad van die netstroom, die ligte neutrale draad en die neutrale draad van die kragtoevoer aan te sluit.
- Om spanning te verlig, moet u 'n band om elke kragkabel monteer.
Stap 13: Voltooi die omhulsel
In hierdie stap is die montering in die omhulsel voltooi
- Skuif die OLED -skerm deur die montagegat in die middelste deel van die omhulsel.
- Skuif die draaikodeerder deur die gat in die middelste deel, en sorg dat die anti-rotasie in lyn is. Monteer die draaikodeerder met die meegeleverde ring en moer.
- Monteer die boonste gedeelte van die omhulsel en maak die omhulsel toe deur die vier M3x25mm -skroewe aan die onderkant te monteer.
Stap 14: Programmering van die Arduino
WAARSKUWING
Die Arduino word direk van die stabiele +5V -kragtoevoer aangedryf in plaas van die Arduino -interne kragreguleerder te gebruik. Daarom is dit nie veilig om USB aan te sluit as die Arduino krag van die kragtoevoer ontvang nie.
Ontkoppel altyd die 230VAC -net voordat u die Arduino USB -verbinding gebruik.
Haal die Arduino -timerprogram van GitHub op.
Hierdie program gebruik die Arduino IDE, wat u hier kan kry.
Die program gebruik die volgende bykomende biblioteke:
SSD1303Ascii
Arduino Wire -biblioteek
Let daarop dat die dusk2dawn -biblioteek ook gebruik word, maar as kode ingesluit word as gevolg van 'n verandering in die koppelvlak.
Om die korrekte skemer- / dagbreekberekening te verseker, moet lengte- en breedtegraad en tydsone gestel word.
Soos beskryf in die dusk2dawn -voorbeeld, is die plek in Google Maps 'n maklike manier om die lengte- en breedtegraad vir enige plek te vind, met die rechtermuisknop op die plek op die kaart en kies "Wat is hier?". Onderaan sien u 'n kaart met die koördinate.
Lengtegraad en breedtegraad is hardkodeer in die program, in Dusk2Dawn.cpp reël 19 en 20:
/* Breedtegraad en lengtegraad van u ligging moet hier gestel word.
* * WENK: 'n Maklike manier om die lengte- en breedtegraad vir enige plek te vind, is * om die plek in Google Maps te vind, met die rechtermuisknop op die plek op die kaart en * kies "Wat is hier?". Onderaan sien u 'n kaart met die * koördinate. */ #define LATITUDE 52.097105; // Utrecht #define LONGTITUDE 5.068294; // Utrecht
Die tydsone is ook hardcoded in Dusk2Dawn.cpp reël 24. Standaard is dit ingestel op Nederland (GMT + 1):
/* Voer hier u tydsone in (teen GMT verreken).
*/ #definieer TYDSONE 1
As u die Arduino vir die eerste keer programmeer, moet die EEPROM -geheue geïnisialiseer word. Hiervoor verander timer.cpp reël 11 om EEPROM -inisialisering te doen:
// verander na waar vir die eerste keer programmeer
#define INITIALIZE_EEPROM_MEMORY vals
Laai die program op na die Arduino en laai die Arduino op.
Skakel die inisialisering van EEPROM uit en laai die program weer op na die Arduino. Die timer sal nou die instellings van die skakelertyd onthou wanneer dit herlaai word.
Stap 15: Stel die tyd in en verander die tye
Gebruikersinteraksie konsepte:
- Kort druk word gebruik om keuses te bevestig. Boonop skakel die lig in of uit op die hoof -tydskerm.
- Lang druk word gebruik om die spyskaart in te gaan vanaf die hoofskerm. Oral in die spyskaart keer 'n lang druk terug na die hoofskerm.
- '>' Seleksie -cursus. Hierdie wyser dui die gekose opsie in 'n spyskaart aan.
Hoof timer skerm
Die hoof timer skerm toon:
Dag van die week Su
Huidige tyd 16:00
Huidige timerstatus en volgende skakelertyd Timer UIT tot 17:12
Dagbreek en skemer tyd Dawn 08:05 Skemer 17:10
Stel die regte tyd in
Druk lank om die spyskaart te betree. Die volgende opsies word gewys:
Terug Stel tyd in Weekdagprogram Weekendprogram Opsies
Kies die ingestelde tyd om die datum en tyd van die reële tydklok in te stel. Voer die korrekte waardes in vir:
YearMonthDayTime
Die timer bepaal outomaties die weekdag. Dit word ook outomaties oorgeskakel om die somertyd te verander. Somer besparing word slegs vir die Europese tydsone geïmplementeer.
Stel die timerprogram in
Die timer het 2 programme, een vir weeksdae, een vir naweke. Let daarop dat Vrydag as 'n deel van die naweek beskou word; die ligte kan nog 'n bietjie brand.
Elke timer het 'n aan- en afskakel -oomblik. Die oomblik kan óf wees:
- Tyd: Presiese tyd
- Dagbreek: Skakel gebaseer op berekende dagbreek
- Skemer: Skakel gebaseer op berekende skemertyd
Vir skemer en dagbreek is dit moontlik om 'n regstellingswaarde van 59 minute voor of na in te voer.
Voorbeelde:
Om die hele nag 'n lig aan te skakel, kies skakel aan (skemer + 10min), skakel af (dagbreek - 10min)
Om in die aand 'n lig aan te skakel, kies die aanskakel teen skemer, skakel af: 22:30.
Opsies
In die opsieskerm kan 'n tydsduur ingestel word vir die omskakeling van die skerm.
As die skerm afgeskakel is, sal die druk op die draaiknopknop terugkeer na die hoofskerm.
Aanbeveel:
Arduino Halloween Edition - Zombies pop -out skerm (stappe met foto's): 6 stappe
Arduino Halloween Edition - Zombies pop -out skerm (stappe met foto's): wil u u vriende skrik en 'n skreeu geraas maak tydens Halloween? Of wil u net 'n goeie grap maak? Hierdie pop-up skerm van Zombies kan dit doen! In hierdie instruksies sal ek u leer hoe u maklik Zombies kan spring deur Arduino te gebruik. Die HC-SR0
Arduino Uno visvoerder in 6 goedkoop en maklike stappe !: 6 stappe
Arduino Uno Fish Feeder in 6 goedkoop en maklike stappe !: 'n Bietjie agtergrond kan dus nodig wees vir hierdie projek. Mense met troeteldiervisse het waarskynlik dieselfde probleem as ek gehad: vakansies en vergeetagtigheid. Ek het voortdurend vergeet om my vis te voer, en ek het altyd probeer om dit te doen voordat dit gebeur het
Akoestiese opheffing met Arduino Uno stap-vir-stap (8-stappe): 8 stappe
Akoestiese levitasie met Arduino Uno Stap-vir-stap (8-stappe): ultrasoniese klankomvormers L298N Dc vroulike adapter kragbron met 'n manlike DC-pen Arduino UNOBreadboard Hoe werk dit: Eerstens laai u kode op na Arduino Uno (dit is 'n mikrobeheerder toegerus met digitale en analoog poorte om kode (C ++) om te skakel
Brandalarmstelsel met Arduino [in 'n paar maklike stappe]: 3 stappe
Brandalarmstelsel met Arduino [in 'n paar maklike stappe]: wil u 'n eenvoudige en interessante projek maak met Arduino wat terselfdertyd baie nuttig en moontlik lewensreddend kan wees? Indien wel, het u op die regte plek gekom om te leer iets nuuts en vernuwend. In hierdie pos gaan ons
Goedkoopste Arduino -- Kleinste Arduino -- Arduino Pro Mini -- Programmering -- Arduino Neno: 6 stappe (met foto's)
Goedkoopste Arduino || Kleinste Arduino || Arduino Pro Mini || Programmering || Arduino Neno: …………………………. Teken asseblief in op my YouTube -kanaal vir meer video's ……. .Die projek handel oor hoe om 'n kleinste en goedkoopste arduino ooit te koppel. Die kleinste en goedkoopste arduino is arduino pro mini. Dit is soortgelyk aan arduino