Talaan ng mga Nilalaman:

DIY Light Alarm Clock: 7 Mga Hakbang
DIY Light Alarm Clock: 7 Mga Hakbang

Video: DIY Light Alarm Clock: 7 Mga Hakbang

Video: DIY Light Alarm Clock: 7 Mga Hakbang
Video: 7 projects Build LED LCD Alarm Clock using DS1307 with Arduino | Lesson 105 2024, Hulyo
Anonim
DIY Light Alarm Clock
DIY Light Alarm Clock
DIY Light Alarm Clock
DIY Light Alarm Clock
DIY Light Alarm Clock
DIY Light Alarm Clock

Nais mo bang subukan ang isa sa mga magarbong orasan ng alarma na gumagaya sa pagsikat ng araw upang gisingin ka? Nais mo bang magdagdag ng ilang mga kulay na ilaw sa iyong silid? Nais mo bang makontrol ang lahat mula sa anumang aparato gamit ang isang internet browser? Pagkatapos suriin ang alarm clock na ito na ginawa ko gamit ang natutunan ko sa pagbuo ng aking awtomatikong feeder ng isda.

Pangunahing layunin ng Light Alarm ay tiyakin na mayroong ilaw sa aking silid kapag gumising ako, lalo na sa oras ng taglamig kung kailan ito madilim pa. Ang ilaw ay kumukupas para sa isang paunang natukoy na haba ng oras na nagtatapos sa buong ningning sa itinakdang oras ng alarma. Ngunit iyon lamang ang unang mode, mayroong 7 iba pang mga mode ng pag-iilaw upang maglaro!

Ang Light Alarm ay kinokontrol sa pamamagitan ng isang pahina ng HTML na naka-host sa lupon ng ESP-8266-12e. Maaari itong ma-access mula sa iyong home network o mai-configure upang ma-access mula sa kahit saan sa internet na may port forwarding.

Hakbang 1: Mga Kagamitan:

  • Board ng ESP-8266-12e (NodeMCU)
  • Pinakabagong Arduino IDE
  • Kailangan ng mga aklatan para sa naka-install na code
  • Notepad ++ (para sa pag-edit ng HTML kung nais mo)
  • Browser (Gumamit ako ng chrome, ngunit dapat gumana ang anumang, lalo na kung hahayaan kang makita ang html code na gumagana)
  • 3D printer na may hindi bababa sa 150mm x 150mm na lugar ng pagbuo
  • Puti o malinaw na plastic filament (para sa lilim, ang bundok ay maaaring maging anumang kulay na mayroon ka)
  • 4 na digit na 7-segment na display na may TM1637 chip, ginamit ko ang isa sa mga ito
  • 1 metro na maaaring tugunan ng RGBW LED strip, sk6812. Ang aking strip ay may 60LEDs / meter, ngunit hindi na nabili. Ang arduino code ay naka-set up para sa RGBW, kaya kailangan mong isulat muli ito kung nais mong gumamit ng isang RGB strip. Inirerekumenda ko ang isang strip na may hindi bababa sa 60LEDs.
  • KUNG ang strip ay walang isang malagkit na pag-back: scotch tape at sobrang pandikit
  • Protoboard upang mai-mount ang board
  • 24AWG wire (Inirerekumenda ko ang maraming kulay)
  • Hindi bababa sa 6ft ng kawad para sa lakas. Inirerekumenda ko ang paggamit ng anumang ibinebenta ng iyong lokal na tindahan ng hardware para sa mga nangungunang lampara sa lamesa.
  • 5V power supply, ginamit ko ang isang ito
  • Huwag kalimutan ang mga adaptor para sa power supply
  • Panghinang
  • USB cable upang mai-program ang board
  • mainit na pandikit
  • Mga pin ng header (Lalaki at Babae)
  • Pasensya

Hakbang 2: Programming ang Lupon

Ang Lupon ay magkakaroon ng dalawang hanay ng code dito, ang regular na arduino code na tumatakbo at ang HTML code na ipinapadala nito sa iyong browser. Ina-upload mo ang arduino code tulad ng gagawin mo sa anumang iba pang board. Gayunpaman, ang HTML ay nangangailangan ng isang plug-in upang mai-upload sa memorya ng SPIFFs sa board.

Para sa isang tutorial sa kung paano gamitin ang mga SPIFF, tingnan ang

Para sa kung paano i-upload ang HTML code, tingnan ang https://www.esp8266.com/viewtopic.php?f=32&t=10081, kakailanganin mong mag-install ng isang plugin upang arduino upang magawa ito.

Ang HTML ay kailangang mai-save sa isang folder sa folder ng proyekto ng arduino na simpleng tinatawag na 'data'.

Ang pag-upload ng HTML ay tumatagal ng ilang minuto, nakapaglaro ako ng isang online na karera o dalawa sa Mario Kart 8 habang naghihintay ako. Dahil dito, kung gumagawa ka ng mga pagbabago sa HTML, gumamit ng notepad ++ upang mai-edit at mai-drop ang file sa isang browser tulad ng chrome upang subukan ito.

Hakbang 3: Paano Gumagana ang Code

Paano Gumagana ang Code
Paano Gumagana ang Code
Paano Gumagana ang Code
Paano Gumagana ang Code

Ang code sa proyektong ito ay pinaghiwalay sa dalawang mga file: Ang code na pinapatakbo ng board, at ang HTML na nakaimbak sa memorya ng board na ipinapadala nito sa browser kapag nag-navigate ka sa web page.

Kapag ikinonekta mo ang board sa kapangyarihan, nagsisimula ang code ng board, tulad ng anumang arduino. Kumokonekta ito sa iyong WiFi sa bahay at pagkatapos ay nakikipag-ugnay sa isang NIST server upang makuha ang kasalukuyang oras upang maitakda ang panloob na orasan. Matapos maitakda ang orasan, magsisimula ang web server at maaari kang kumonekta sa pamamagitan ng iyong paboritong browser.

Kailangan mong kumonekta sa pamamagitan ng IP address ng board, kaya tiyaking magreserba ng isang static IP sa iyong router. Pinalitan ko rin ang port sa aking lampara, kaya upang kumonekta mag-navigate ako sa 192.168.0.170:301/. Kung nais mong kumonekta sa iyong lampara mula sa kahit saan sa mundo, kakailanganin mong i-set up ang pagpapasa ng port sa iyong router. Pagkatapos ay kakailanganin mong kumonekta sa IP address na nakikita mo kapag kumonekta ka sa https://www.whatsmyip.org/ at ang port na iyong na-set up ang lokal na IP ng lampara upang ma-on.

Sa sandaling kumonekta ka, ipinapadala ng board ang HTML file sa iyong browser, na kung saan nai-decode ito at ipinapakita ang pahina. Ang mga pagbabagong gagawin mo ay hindi makakaapekto sa board hanggang sa ma-hit ang isa sa mga pindutan. sa web page. Kapag na-hit mo ang isang pindutan, ang iyong browser ay nagpapadala ng isang form na html sa board na may kasalukuyang mga setting at pinagtibay ng board ang mga setting na iyon at itinatakda ang mga ipinapakita.

Ang mga setting ay medyo tuwid pasulong. Sinusukat ang pahina sa lapad ng iyong browser at mukhang mas mahusay sa mobile. Upang baguhin ang hitsura ng pahina ng mga setting kailangan mong i-edit ang HTML, at maraming iba pang mga tutorial sa online para doon. Dahil ito ang aking unang pagkakataon sa paggamit ng HTML, natutunan ko ang karamihan gamit ang

Kapag naglo-load ang pahina makikita mo ang apat na mga pindutan, isang slider, at isang drop down na menu. Ang tuktok na pindutan ay ang pangunahing pindutang "ipasok" o "makisali". Ang susunod na dalawang mga pindutan ay i-toggle ang pagpapakita ng oras sa digital at kung nagpapakita ito ng oras sa format na 12 oras o 24 na oras. Kinokontrol ng slider ang ningning ng digital na orasan, at na-update tuwing na-toggle mo ang display mode o binuksan ang orasan. Ang huling pindutan ay dapat na patayin ang lahat ng mga ilaw, ngunit sa ilang kadahilanan na hindi ito gumagana sa bersyon ng code na ito. Sa halip, ang pagpindot sa pindutang "Makipag-ugnay" nang walang napiling mga setting ay papatayin ang mga ilaw.

Naglalaman ang drop-down na menu ng 7 mga mode ng system, ang pagpili ng isa ay ipapakita ang mga kinakailangang setting sa ibaba.

  • Mode 1: Alarm. Ipasok ang oras na nais mong maabot ng ilaw ang buong ningning at kung gaano mo katagal ang fade in na nasa integer minuto. Ang default ay 6:00:00 AM at 15 minuto. Mananatili ang ilaw sa buong ningning para sa parehong oras na kumukupas bago awtomatikong patayin. Maaaring baguhin ang default sa HTML code.
  • Mode 2: Analog Clock. Pumili ng tatlong mga kulay upang kumatawan sa oras, minuto, at pangalawang mga kamay sa isang analog na orasan. Ang isang slider sa itaas ng tatlong mga tagapili ng kulay ay awtomatikong maglalagay sa mga preset na cool o mainit-init na mga kulay kung itinakda pakaliwa o pakanan, ayon sa pagkakabanggit. Kung ang slider ay itinakda pakaliwa o pakanan, pagkatapos ay ibalik sa gitna, pagkatapos ang mga tagapili ng kulay ay nakatakda sa itim (0, 0, 0, 0) [R, G, B, W]. Kapag ang isang all-zero na kulay ay ipinadala sa board, ito ay na-random. * Maaari itong maging sanhi ng labis na pag-flash ng mga ilaw. * Kung nais mong manatili ang isang ilaw, ang pagtatakda ng anumang halaga sa 1 ay magreresulta sa 'itim' (lahat ng mga halaga na default sa 1 (01, 01, 01, 01) kapag ang mga pumili ng kulay ay pinasimulan). Ang color picker at RGB slider ay naka-link, habang ang W slider ay malaya.
  • Mode 3: Kulay. Pumili ng isang kulay upang maitakda ang mga ilaw. Mananatili ito hanggang mabago ito ng gumagamit.
  • Mode 4: Ikot ng Kulay. Pumili ng tatlong mga kulay upang umikot at ipasok ang oras upang hawakan ang bawat kulay. Nalalapat ang mga parehong pamamaraan sa pagpili ng mga kulay tulad ng sa Mode 2. Ang mga random na kulay ay pinakamahusay na gumagana sa mode na ito.
  • Mode 5: Kulay ng Silindro. Pumili ng tatlong mga kulay (pareho sa naunang) at ang RPM ng silindro. Ang mga ilaw ay ipapakita bilang isang pattern ng guhitan na paikutin sa paligid ng axis. sa RPM na pinili mo. Ang default na RPM ay 60, o 1 rev / sec. Ang mga random na kulay ay maaaring magresulta sa mga kumikislap na ilaw!
  • Mode 6: Kulay Vortex. Magtakda ng tatlong kulay at ang RPM. Ang mode na ito ay hindi perpekto, ngunit ang ideya ay ang pag-ikot ng mga ilaw sa paligid ng orasan. Mayroong built in randomness kaya't pinakamahusay na gamitin lamang ang slider ng temperatura upang piliin kung ang vortex ay nagsisimula mainit o cool.
  • Mode 7: Rainbow. Itakda ang bilis ng Ikot, ang RPM ay medyo walang silbi dito. Ito ay isang paunang ginawa na halimbawa mula sa Neopixel Library na may ilang mga pag-edit upang payagan ang board na tumugon pa rin sa mga input ng gumagamit.

Kapag napili ang mga setting, ang pagpindot sa anumang pindutan ay magpapadala ng isang form na HTML sa board, na gumagamit ng mga halaga sa form upang baguhin ang mga setting ng display. Ang pindutang "Makisangkot" ay nagpapadala ng lahat ng mga setting, habang ang dalawang mga pindutan ng orasan ay nagpapadala lamang sa ningning na orasan. Ang "off" na pindutan ay dapat na patayin lamang ang LED strip, subalit mayroong isang bug na pumipigil sa iyon sa paggana. Ang pagpindot sa "Makisali" nang hindi binabago ang anumang mga setting ay tila gagana sa halip. Kapag na-parse na ng board ang mga setting, ire-redirect nito ang iyong browser sa paunang pahina ng HTML.

Tandaan: Ang pagtatakda ng oras ng alarma ay binabago ang mode ng system sa 1, na hihinto sa anumang mode na tumatakbo dati at i-reset ang lahat ng mga setting. Gayunpaman, ang pagsisimula ng ibang mode pagkatapos ng pagtatakda ng oras ng alarma ay hindi binabago ang oras na itinakda mo, upang maitakda mo ang iyong alarma at pagkatapos ay magsimula ng isang bagong mode. Kung ang bagong mode ay hindi naka-patay bago magsimulang lumabo ang alarma sa puting ilaw, maaari itong maging sanhi ng pag-flashing. Upang maiwasan ito, ang board ay hard-code upang patayin ang lahat ng mga ilaw at itakda ang mode ng system sa 1 (alarma) sa 2:00 nang hindi binabago ang itinakdang oras ng alarma. Ang mahirap na oras ng cutoff na ito ay maaaring mabago sa arduino code.

Hakbang 4: Pag-set up ng Iyong Network at Pagkonekta

Pagse-set up ng iyong Network at Pagkonekta
Pagse-set up ng iyong Network at Pagkonekta

Medyo malabo ang hakbang na ito dahil magkakaiba ang bawat router. Google ang iyong partikular na modelo ng router upang mahanap ang mga setting na kailangan mong baguhin.

Kailangan mong mag-log in sa iyong router at marahil ay i-on ang advanced mode. Sa aking router, kailangan kong pumunta sa DHCP Server upang magreserba ng isang IP address. Hanapin ang MAC address ng iyong ESP8266; ito ang magiging nasa listahan ng kliyente ng DHCP (o katumbas ng iyong router) na mawawala tuwing na-unplug mo ang ESP.

Gamitin ang MAC address upang maipareserba ang IP address ng ilawan. Tiyaking pinagana ang entry kung mayroong setting na iyon ang iyong router.

Kung nais mong kumonekta mula sa labas ng iyong personal na network, kakailanganin mong i-google ang iyong router upang malaman kung paano i-set up ang pagpapasa ng port.

Hakbang 5: Mga Bahaging Naka-print sa 3D

Ang mga naka-print na bahagi ay dapat magkasya sa karamihan ng mga printer. Mayroong dalawang bahagi: Ang bundok at ang lilim.

Ang bundok ay kung saan ang LED strip ay nakabalot sa paligid, sa isang pattern ng spiral, at ang diameter nito ay tulad ng isang 60-LED, 1-meter strip na dapat balutin ng 3 beses at ang lahat ng mga LEDs ay dapat na ihanay nang aksidente. Kung gumagamit ka ng isang strip kung saan ang mga LED ay may spaced na iba at hindi nakahanay sa bundok tulad ng nararapat, baguhin ang diameter sa mga ibinigay na modelo. Ang diameter ay C / pi, kung saan ang C ay ang bilog at 1/3 ang haba ng strip. Ang mga kalahating bilog na bukana sa pader-gilid ng bundok ay nagbibigay-daan para dumaan ang power cable at airflow. Ang mga cross-brace ay nagbibigay ng tigas at isang ibabaw upang mailapat ang mga command-strips para sa pag-mount.

Ang lilim ay may alitan na umaangkop sa bundok, at mayroong isang bingaw upang ihanay ang lilim sa bundok. Ang bingaw ay dapat na nasa posisyon na 12 o 6 ng oras kapag naka-mount sa dingding, at ang pagpapakita ng 7-segment na orasan ay dapat na nakahanay sa bingaw. Ang lilim ay gumaganap bilang isang diffuser para sa mga ilaw at napaka payat bilang isang resulta. Inilimbag ko ito sa isang.5mm na nguso ng gripo, at ang karamihan sa mga komersyal na printer ay mayroong mga.4mm na nozel kaya dapat may kaunting mga isyu, ngunit tiyaking suriin ang iyong slicer upang matiyak na ang lilim ay mai-print nang maayos. Tiyaking gumamit din ng puti o kung hindi man ay translucent na plastik para sa lilim. Ang iba pang mga kulay ay magpapangit ng mga kulay ng ilaw o magba-block ng labis na ilaw.

Tiyaking suriin na ang display ng digital na orasan na iyong ginagamit ay umaangkop sa lilim. Dinisenyo ito upang maiangkop ang alitan sa lugar na may sapat na clearance para sa mga wire ng orasan. Gamitin ang mga modelo upang baguhin ang mount mount. Kapag binabago ang modelo ng lilim, siguraduhing panatilihin ang kapal ng harap na mukha sa ilalim ng 1mm, upang ang orasan ay makikita sa pamamagitan nito na may kaunting pagsasabog.

Hakbang 6: Kable at Assembly Assembly

Mga Kable at Assembly ng Board
Mga Kable at Assembly ng Board
Mga Kable at Assembly ng Board
Mga Kable at Assembly ng Board
Mga Kable at Assembly ng Board
Mga Kable at Assembly ng Board

Ang board at mga kable ay higit na mas kumplikado kaysa sa aking feeder ng isda. Maghinang lamang ng pares ng mga hilera ng mga babaeng pin ng header sa isang protoboard para makaupo ang ESP-8266-12e, pati na rin ang dalawang hilera ng mga male pin na pang-ulo upang maglakip ng lakas. Inilagay ko ang dalawang wires ng data ng orasan at ang LED strip data wire sa kani-kanilang mga pin sa protoboard, at lahat ng mga power at ground wires ay na-solder sa kani-kanilang mga riles ng kuryente na ginawa ko sa likuran ng board.

Ang kabilang panig ng mga wires na ito ay dapat na mga header ng babae para sa orasan at ang LED strip konektor para sa LED strip. Maaaring kailanganin mong maghinang ng mga lalaking pin sa oras at inirerekumenda ko ang mga anggulo na pin para dito. Ang mga LED strip wires at power wires ay dapat na ilipat sa gilid ng dingding ng board (sa gilid na may ESP) at ang mga wires ng orasan ay dapat na ilipat sa harap na bahagi (kung saan ang lahat ng mga solder joint ay).

Para sa isang linya ng kuryente, gumamit ako ng 6ft na 16-26 na straced na wire na tanso. Medyo makapal ito kaya hinati ko ang bawat kawad sa pagitan ng tatlong mga babaeng pin upang kumonekta sa mga riles ng kuryente at lupa. Ang kabilang panig ay dapat na maging anumang konektor na nakuha mo para sa iyong suplay ng kuryente.

Mainit na pandikit ang lahat ng mga nakalantad na magkasanib na solder (lalo na sa power cable, at Lalo na kung may nakalantad na tanso tulad ng minahan) upang maipula ang lahat mula sa hindi sinasadyang shorts. Maaari mo ring maiinit na pandikit ang orasan sa board (likod ng orasan hanggang sa solder na bahagi ng board), ngunit nalaman ko na ito ay isang mahina na magkasanib at hindi lahat iyon kinakailangan kapag na-mount na ang lahat.

Coil ang LED strip sa paligid ng labas ng bundok. Siguraduhin na subukan ang strip sa mode 2 upang suriin na ang analog na orasan ay pupunta sa tamang direksyon. Tiyaking mag-iiwan ng isang ~ 5 mm na puwang mula sa harap na gilid para sa lilim. Ang unang LED ng strip (ang LED ang segundo kulay ay lilitaw sa tuktok ng bawat minuto, sa isang dulo ng strip) napupunta sa posisyon ng 12:00. kapag ang lampara ay naka-mount sa dingding. Kapag mayroon kang LED strip sa lugar, gamitin ang malagkit na pag-back nito (kung mayroon ito) o pandikit upang idikit ito sa bundok. Labis na gagana ang sobrang pandikit kung ang strip ay walang isang malagkit na pag-back. Gumamit ng scotch tape upang i-hold ang strip sa lugar habang sinusubukan at habang ang drue dries.

I-thread ang mga LED wire sa pamamagitan ng mga kalahating bilog na butas sa bundok upang kumonekta sa board. Ang power cable ay naka-thread din dito, siguraduhing pumili ng isang butas na hindi huhugot ng cable dahil sa gravity o hindi sinasadyang paghila.

Hakbang 7: Pag-mount

Upang mai-mount sa pader, gamitin lamang ang 3-4 3M na mga strip ng command, o hangga't gusto mo. Gamitin ang bingaw sa bundok upang suriin na ito ay antas. Matapos mai-mount ang mount, ikonekta ang cable ng kuryente at mga LED wire sa board, at ipasok ang orasan sa lilim. Pagkatapos, i-pop lang ang lilim papunta sa bundok at isaksak ang power cable sa power supply!

Inirerekumendang: