Innholdsfortegnelse:

DIY Light Alarm Clock: 7 trinn
DIY Light Alarm Clock: 7 trinn

Video: DIY Light Alarm Clock: 7 trinn

Video: DIY Light Alarm Clock: 7 trinn
Video: Lesson 99: Building Arduino Digital Clock using DS3231 LCD and Seven Segment Display 2024, Juli
Anonim
DIY lys vekkerklokke
DIY lys vekkerklokke
DIY lys vekkerklokke
DIY lys vekkerklokke
DIY lys vekkerklokke
DIY lys vekkerklokke

Har du noen gang ønsket å prøve en av de flotte vekkerklokkene som etterligner soloppgangen for å vekke deg? Vil du legge til noen fargede lys på rommet ditt? Vil du kontrollere alt fra en hvilken som helst enhet med en nettleser? Sjekk deretter denne vekkerklokken jeg lagde ved å bruke det jeg lærte å bygge min automatiske fiskefôr.

Lysalarmens hovedformål er å sørge for at det er lys i rommet mitt når jeg våkner, spesielt om vinteren når det vanligvis fortsatt er mørkt ute. Lyset forsvinner i en forhåndsbestemt tid som ender med full lysstyrke på den angitte alarmtiden. Men det er bare den første modusen, det er 7 andre belysningsmoduser å leke med!

Lysalarmen styres via en HTML-side som er plassert på ESP-8266-12e-kortet. Den kan nås fra hjemmenettverket eller konfigureres for å få tilgang fra hvor som helst på internett med portvideresending.

Trinn 1: Materialer:

  • ESP-8266-12e (NodeMCU) -kort
  • Siste Arduino IDE
  • Nødvendige biblioteker for installert kode
  • Notisblokk ++ (for redigering av HTML hvis du vil)
  • Nettleser (jeg brukte krom, men noen burde fungere, spesielt hvis du kan se HTML -koden fungere)
  • 3D -skriver med minst 150 mm x 150 mm byggeområde
  • Hvitt eller klart plastfilament (for skyggen kan festet ha hvilken som helst farge du har)
  • 4-sifret 7-segmenters skjerm med TM1637-brikke, jeg brukte en av disse
  • 1 meter adresserbar RGBW LED -stripe, sk6812. Stripen min har 60 LED/meter, men selges ikke lenger. Arduino -koden er konfigurert for RGBW, så du må skrive den om hvis du vil bruke en RGB -stripe. Jeg vil anbefale en stripe med minst 60 lysdioder.
  • HVIS stripen ikke har klebende bakside: tape og superlim
  • Protoboard for å montere brettet
  • 24AWG wire (jeg anbefaler flere farger)
  • Minst 6 fot ledning for strøm. Jeg anbefaler at du bruker den lokale maskinvarebutikken din til bordlamper.
  • 5V strømforsyning, jeg brukte denne
  • Ikke glem adaptere for strømforsyningen
  • Loddejern
  • USB -kabel for å programmere kortet
  • varmt lim
  • Toppstifter (mann og kvinne)
  • Tålmodighet

Trinn 2: Programmering av styret

Styret vil ha to sett med kode, den vanlige arduino -koden som kjører og HTML -koden som den sender til nettleseren din. Du laster opp arduino -koden som med alle andre tavler. HTML-koden krever imidlertid en plug-in for å laste opp til SPIFF-minnet på kortet.

For en opplæring om hvordan du bruker SPIFF-er, se

For å laste opp HTML -koden, se https://www.esp8266.com/viewtopic.php?f=32&t=10081, du må installere et plugin til arduino for å gjøre dette.

HTML -koden må lagres i en mappe i arduino -prosjektmappen, ganske enkelt kalt 'data'.

Å laste opp HTML -koden tar et par minutter, jeg klarte å spille et eller to online løp i Mario Kart 8 mens jeg ventet. På grunn av dette, hvis du gjør endringer i HTML, bruker du notisblokk ++ til å redigere og slippe filen til en nettleser som krom for å teste den.

Trinn 3: Hvordan koden fungerer

Hvordan koden fungerer
Hvordan koden fungerer
Hvordan koden fungerer
Hvordan koden fungerer

Koden i dette prosjektet er delt inn i to filer: Koden som styret driver, og HTML -koden som er lagret i brettets minne som den sender til nettleseren når du navigerer til nettsiden.

Når du kobler brettet til strøm, starter brettets kode, som enhver arduino. Den kobles til hjemmets WiFi og kontakter deretter en NIST -server for å få gjeldende tid for å stille den interne klokken. Etter at klokken er stilt, starter webserveren, og du kan koble til via din favorittleser.

Du må koble til med IP -adressen til kortet, så sørg for å reservere en statisk IP på ruteren din. Jeg byttet også porten på lampen min, så for å koble til navigerer jeg til 192.168.0.170:301/. Hvis du vil koble til lampen din hvor som helst i verden, må du konfigurere portvideresending på ruteren. Du må deretter koble til IP -adressen du ser når du kobler til https://www.whatsmyip.org/ og porten du konfigurerte lampens lokale IP for å være på.

Når du har koblet deg til, sender styret HTML -filen til nettleseren din, som dekoderer den og viser siden. Endringene du gjør påvirker ikke brettet før du trykker på en av knappene. på nettsiden. Når du trykker på en knapp, sender nettleseren et html -skjema til brettet med gjeldende innstillinger, og brettet vedtar disse innstillingene og angir skjermene.

Innstillingene er ganske rett frem. Siden skaleres til bredden på nettleseren din og ser litt bedre ut på mobilen. For å endre utseendet på innstillingssiden må du redigere HTML -koden, og det er mange andre opplæringsprogrammer på nettet for det. Siden dette var første gang jeg brukte HTML, lærte jeg mest å bruke

Når siden lastes inn vil du se fire knapper, en glidebryter og en rullegardinmeny. Den øverste knappen er hoved "enter" eller "engasjere" knappen. De to neste knappene veksler mellom den digitale tidsvisningen og om den viser tiden i 12 eller 24 timers format. Glidebryteren styrer lysstyrken til den digitale klokken, og den oppdateres hver gang du bytter visningsmodus eller slår på klokken. Den siste knappen skal slå av alle lysene, men av en eller annen grunn fungerer det ikke med denne versjonen av koden. I stedet vil lyset slås av ved å trykke på "Engasj" -knappen uten at noen innstillinger er valgt.

Nedtrekksmenyen inneholder 7 systemmoduser. Hvis du velger en, vises de nødvendige innstillingene nedenfor.

  • Modus 1: Alarm. Angi tiden du vil at lyset skal oppnå full lysstyrke og hvor lenge du vil at fadesen skal være i heltall minutter. Standard er 6:00:00 og 15 minutter. Lyset vil forbli i full lysstyrke i like lang tid som det forsvinner før det slås av automatisk. Standard kan endres i HTML -kode.
  • Modus 2: Analog klokke. Velg tre farger for å representere timen, minuttet og sekundviseren på en analog klokke. En glidebryter over de tre fargeplukkerne vil automatisk sette inn forhåndsinnstilte kule eller varme farger hvis de er satt til henholdsvis venstre eller høyre. Hvis glidebryteren er satt til venstre eller høyre, og deretter returnert til midten, så er fargeplukkerne satt til svart (0, 0, 0, 0) [R, G, B, W]. Når en farge som er helt null blir sendt til brettet, blir den randomisert. * Dette kan føre til at lysene blinker for mye.* Hvis du vil at et lys skal forbli slukket, vil en hvilken som helst verdi til 1 resultere i 'svart' (alle verdier er standard til 1 (01, 01, 01, 01) når fargevelgeren er initialisert). Fargevelgeren og RGB -glidebryterne er koblet sammen, mens W -glidebryteren er uavhengig.
  • Modus 3: Farge. Velg en farge å sette lysene til. Dette vil forbli til det endres av brukeren.
  • Modus 4: Fargesyklus. Velg tre farger for å bla gjennom og angi tiden for hver farge. De samme metodene gjelder for valg av farger som i modus 2. Tilfeldige farger fungerer best med denne modusen.
  • Modus 5: Fargesylinder. Velg tre farger (samme som forrige) og turtallet på sylinderen. Lysene vil vises som et mønster av striper som roterer rundt aksen. ved RPM du valgte. Standard turtall er 60 eller 1 omdreininger/sek. Tilfeldige farger kan resultere i blinkende lys!
  • Modus 6: Color Vortex. Sett tre farger og RPM. Denne modusen er ikke perfekt, men tanken er at lysene virvler døgnet rundt. Det er innebygd tilfeldighet, så det er best å bare bruke temperaturglidebryteren til å velge om virvelen starter varm eller kul.
  • Modus 7: Rainbow. Still inn syklushastigheten, RPM er ganske ubrukelig her. Dette var et forhåndsdefinert eksempel fra Neopixel-biblioteket med noen redigeringer slik at styret fortsatt kan svare på brukerinnganger.

Når innstillingene er valgt, vil et trykk på en hvilken som helst knapp sende et HTML -skjema til tavlen, som bruker verdiene i skjemaet for å endre skjerminnstillingene. "Engasjere" -knappen sender alle innstillingene, mens de to klokkeknappene bare sender klokkens lysstyrke. "Av" -knappen skal bare slå av LED -stripen, men det er en feil som forhindrer at den fungerer. Det ser ut til å fungere i stedet ved å trykke "Engasj" uten å endre noen innstillinger. Når brettet har analysert innstillingene, omdirigerer det nettleseren din til den opprinnelige HTML -siden.

Merk: Ved å stille alarmtiden endres systemmodusen til 1, som stopper enhver modus som kjørte før og tilbakestiller alle innstillinger. Når du starter en annen modus etter at alarmtiden er angitt, endres imidlertid ikke tiden du har angitt, slik at du kan stille inn alarmen og deretter starte en ny modus. Hvis den nye modusen ikke er slått av før alarmen begynner å falme i det hvite lyset, kan dette føre til at det blinker. For å forhindre dette, er tavlen hardkodet for å slå av alle lys og sette systemmodus til 1 (alarm) klokken 02.00 uten å endre innstilt alarmtid. Denne harde cutoff -tiden kan endres i arduino -koden.

Trinn 4: Konfigurere nettverket og koble til

Konfigurere nettverket og koble til
Konfigurere nettverket og koble til

Dette trinnet er litt vagt siden hver ruter er forskjellig. Google din bestemte rutermodell for å finne innstillingene du trenger å endre.

Du må logge deg på ruteren og sannsynligvis slå på avansert modus. På ruteren min må jeg gå til DHCP Server for å reservere en IP -adresse. Finn din MAC -adresse til ESP8266; det vil være den på DHCP -klientlisten (eller ruteren din tilsvarende) som forsvinner når du kobler fra ESP.

Bruk MAC -adressen til å reservere lampens IP -adresse. Sørg for at oppføringen er aktivert hvis ruteren din har den innstillingen.

Hvis du vil koble til utenfor ditt personlige nettverk, må du google ruteren din for å finne ut hvordan du konfigurerer portvideresending.

Trinn 5: 3D-trykte deler

De trykte delene skal passe på de fleste skrivere. Det er to deler: Feste og skygge.

Festen er det LED-stripen er pakket rundt, i et spiralmønster, og dens diameter er slik at en 60-LED, 1-meter stripe skal vikle rundt 3 ganger og alle LED-ene skal justere aksialt. Hvis du bruker en stripe der lysdiodene er annerledes plassert og ikke er justert på festet som de burde, må du endre diameteren med modellene som følger med. Diameteren er C/pi, hvor C er omkretsen og er 1/3 av stripens lengde. De halvcirkelformede åpningene på veggens side gjør at strømkabelen og luftstrømmen kan passere. Kryssbøylene gir stivhet og en overflate å påføre kommandobånd på for montering.

Skyggen har en friksjonspasning med festet, og det er et hakk for å justere skyggen med festet. Hakk skal være i 12- eller 6-posisjon når det er montert på veggen, og 7-segmenters klokkevisning skal justeres med hakket. Skyggen fungerer som en diffuser for lysene og er veldig tynn som et resultat. Jeg skrev den ut med en.5 mm dyse, og de fleste kommersielle skrivere kommer med.4 mm dyser, så det bør være få problemer, men sørg for å sjekke skiven din for å sikre at skyggen skrives ut riktig. Sørg også for å bruke en hvit eller på annen måte gjennomsiktig plast til skyggen. Andre farger vil forvride fargene på lysene eller blokkere for mye lys.

Sørg for å sjekke at den digitale klokkevisningen du bruker passer i skyggen. Den er designet for å passe på friksjonen med nok klaring til klokkens ledninger. Bruk modellene til å bytte klokkefeste. Når du endrer modellens skygge, må du sørge for å holde tykkelsen på forsiden under 1 mm, slik at klokken er synlig gjennom den med liten spredning.

Trinn 6: Kabling og styremøte

Kabling og styremøte
Kabling og styremøte
Kabling og styremøte
Kabling og styremøte
Kabling og styremøte
Kabling og styremøte

Brettet og ledningene er langt mindre kompliserte enn min fiskefôr. Bare lodd et par rader med kvinnelige toppstifter til et protoboard for ESP-8266-12e å sitte i, samt to rader med mannlige hodepinner for å feste strøm. Jeg loddet de to klokkedatatrådene og LED -stripedatatråden til sine respektive pinner på protoboardet, og alle strøm- og jordledninger ble loddet til de respektive strømskinnene jeg laget på baksiden av brettet.

Den andre siden av disse ledningene skal være hunnhoder for klokken og LED -stripekontakten for LED -stripen. Du må kanskje lodde hannpinner til klokken, og jeg anbefaler vinklede pinner for det. LED -stripetrådene og strømledningene skal føres til veggsiden av brettet (siden med ESP) og klokkeledningene skal føres til forsiden (der alle loddeskjøtene er).

For en kraftledning brukte jeg 6 fot 16-26 strenget kobbertråd. Det var litt tykt, så jeg delte hver ledning mellom tre hunpinner for å koble til strøm- og jordskinnene. Den andre siden bør være hvilken som helst kontakt du har for strømforsyningen.

Varm lim alle de eksponerte loddeskjøtene (spesielt på strømkabelen, og SPESIELT hvis det er eksponert kobber som mitt) for å isolere alt fra utilsiktede shorts. Du kan også varme lime klokken til brettet (bak på klokken til loddesiden av brettet), men jeg fant ut at dette var en svak ledd og ikke var så nødvendig når alt var montert.

Spol LED -stripen rundt utsiden av festet. Sørg for å teste stripen i modus 2 for å kontrollere at den analoge klokken går i riktig retning. Sørg for å ha et gap på ~ 5 mm fra frontkanten for skyggen. Den første lysdioden på stripen (lysdioden sekunders farge vises på toppen av hvert minutt, i den ene enden av stripen) går i posisjonen 12. når lampen er montert på veggen. Når du har en LED -stripe på plass, bruker du den selvklebende baksiden (hvis den har en) eller limer den til festet. Superlim vil fungere best hvis stripen ikke har en klebende bakside. Bruk tape for å holde stripen på plass mens du tester og mens limet tørker.

Tre LED -ledningene gjennom de halvsirkelformede hullene i festet for å koble til brettet. Strømkabelen er også gjenget gjennom her. Sørg for å velge et hull som kabelen ikke trekker på grunn av tyngdekraften eller utilsiktede trekk.

Trinn 7: Montering

For å montere på veggen bruker du bare 3-4 3M kommandostrimler, eller så mange du vil. Bruk hakket i festet for å kontrollere at det er plant. Etter at festet er montert, kobler du strømkabelen og LED -ledningene til kortet, og setter klokken i skyggen. Deretter er det bare å sette skyggen på holderen og koble strømkabelen til strømforsyningen!

Anbefalt: