Orodha ya maudhui:

Jioni ya Arduino / alfajiri Saa ya Saa: Hatua 15
Jioni ya Arduino / alfajiri Saa ya Saa: Hatua 15

Video: Jioni ya Arduino / alfajiri Saa ya Saa: Hatua 15

Video: Jioni ya Arduino / alfajiri Saa ya Saa: Hatua 15
Video: Функция Arduino Millis поясняется 3 примерами 2024, Julai
Anonim
Jioni ya Arduino / alfajiri ya Saa ya Saa
Jioni ya Arduino / alfajiri ya Saa ya Saa

Muhtasari:

Kipima muda hiki cha Arduino kinaweza kubadili taa moja ya 220V wakati wa jioni, alfajiri au wakati maalum.

Utangulizi:

Taa zingine ndani ya nyumba yangu zinawashwa moja kwa moja wakati wa jioni, mpaka wakati uliowekwa kabla au mpaka alfajiri (usiku kucha).

Mahali pa taa hairuhusu utumiaji wa sensa ya mwanga. Vipima muda vya saa vinavyopatikana huwasha wakati maalum. Ili kuwasha karibu na jioni kwa hiyo inahitaji mara kwa mara kurekebisha mpangilio wa programu ya saa.

Kama changamoto nzuri, niliamua kujenga desturi ya Arduino ya kusimama peke yake wakati badala yake. Inatumia saa halisi na maktaba ya Dusk2Dawn kuamua wakati ambapo taa lazima ziwashwe au kuzimwa. Ufungaji wa kipima muda huu umechapishwa kwa 3D na unaweza kupatikana kwenye Thingiverse. Nambari ya Arduino ya mradi huu inaweza kupatikana kwenye GitHub.

Katika uundaji wa kipima muda hiki nilipata msukumo kutoka kwa miundo na nyaya nyingi kwenye wavuti. Shukrani zangu kwa wachangiaji wote ambao hawajatajwa wazi.

Kwa michoro inayoweza kusomeka sehemu zinaonyeshwa katika hatua ambazo zinahitajika, badala ya mchoro kamili wa mzunguko.

Suluhisho mbadala:

Badala ya kipima muda cha kusimama peke yake, kuna suluhisho nyingi ambapo mfumo wa kiotomatiki wa nyumbani hutawala taa. Lengo langu lilikuwa kuwa na suluhisho la kujitegemea, ambalo halitegemei muunganisho wa WIFI (au nyingine).

Vizuizi:

Nambari iliyotolewa na mradi huu ni pamoja na utekelezaji wa mabadiliko ya kuokoa mchana kulingana na mfumo wa kuokoa mchana wa Uropa.

Hatua ya 1: Orodha ya Sehemu na Zana

Orodha ya Sehemu na Zana
Orodha ya Sehemu na Zana

Sehemu:

Jumla ya gharama za sehemu (bila kuchapisha 3d) takriban € 30, -.

  • Arduino Nano V3 (inaoana) bila vichwa
  • Ugavi wa umeme 5V 0.6A (34 x 20 x 15mm)
  • Relay-state solid 5V - Active chini - 2A 230VAC
  • Saa ya saa halisi DS3231 (ndogo)
  • Onyesho la saizi 0.96”OLED SPI 128 * 64
  • Usimbuaji Rotary - EC11 - 20mm
  • Knob 6mm shimoni 15mm * 17mm
  • Bodi ya mkate iliyochapishwa bodi ya mzunguko,
  • 4 * M3x25mm screws
  • Kiambatisho kilichochapishwa cha 3d
  • Tubing ya kupungua kwa joto
  • Waya
  • Screw terminal block (kuunganisha waya zisizo na waya)

Zana zinahitajika:

  • Chuma cha kulehemu
  • Waya ya Solder
  • Pampu ya kupungua
  • Vipande vya waya
  • Wakataji
  • Printa ya 3D (kuchapa kiambata)
  • Zana ndogo za Assorted

ONYO

Mzunguko huu unafanya kazi kwa 230v AC na ikiwa haujazoea kufanya kazi na umeme wa umeme au hauna uzoefu wa kutosha katika kufanya kazi na Voltage 230 M AC Voltage tafadhali kaa mbali na mradi huu

Sidhani kuwajibika kwa upotezaji wowote au uharibifu unaotokea moja kwa moja au kama matokeo ya kufuata mradi huu

Daima inashauriwa kuchukua uangalifu na tahadhari wakati wa kufanya kazi na AC Mains

Hatua ya 2: Andaa OLED Onyesho na Saa Saa Saa

Andaa OLED Onyesho na Saa Saa Saa
Andaa OLED Onyesho na Saa Saa Saa

Kiambatisho kilichochapishwa cha 3D kimeundwa kwa saizi ndogo. Kama matokeo, vichwa vya onyesho la OLED na saa halisi zinahitajika kuondolewa.

Katika kujiandaa kwa hatua inayofuata, futa solder yoyote iliyobaki kutoka kwenye mashimo na pampu inayoshuka.

Hatua ya 3: Andaa Encoder ya Rotary

Andaa Kisimbuaji cha Rotary
Andaa Kisimbuaji cha Rotary

Encoder ya rotary ina viunganisho hafifu. Ili kuzuia uharibifu, weka kipande cha bodi ya mzunguko iliyochapishwa kwa kificho.

Kwenye picha unganisho la ardhi (juu kulia na chini katikati) tayari tayari.

Kumbuka: Hakikisha kwamba encoder ya rotary na bodi ya mzunguko iliyochapishwa inafaa kwenye kiambatisho bila kugusa Arduino. Inaweza kuhitajika kusaga bodi ya mzunguko iliyochapishwa ili kupata kifafa.

Hatua ya 4: Ufungaji

Ufungaji
Ufungaji
Ufungaji
Ufungaji

Chapisha sehemu tatu za ua na printa ya 3d. Rejea maagizo kwenye Thingiverse.

Hatua ya 5: Lemaza Arduino Power LED (hiari)

Lemaza Arduino Power LED (hiari)
Lemaza Arduino Power LED (hiari)

Ili kuzuia kuwa na mwanga wa kijani kwenye kipima muda, taa ya nguvu ya Arduino inaweza kuzimwa.

Kumbuka kuwa mabadiliko haya ni ya hiari.

Marekebisho ya Arduino Nano yanajumuisha kuondoa kontena karibu na nguvu iliyoongozwa (angalia duara nyekundu kwenye picha).

Hatua ya 6: Usambazaji wa Nguvu + Relay State Solid

Ugavi wa Power + Relay State Solid
Ugavi wa Power + Relay State Solid

Katika hatua hii usambazaji wa umeme na upeanaji wa hali thabiti umeunganishwa na kuwekwa kwenye sehemu ya chini ya ua.

Uunganisho kati ya usambazaji wa umeme na relay hufanywa chini ya vifaa hivi. Kizuizi cha terminal cha relay kitatumika kuungana na Arduino.

Kumbuka: Wakati wa kufanya unganisho, hakikisha kuwa mashimo yanayopanda ya relay-state imara yamehifadhiwa bure.

  • Solder waya ya unganisho kati ya hali thabiti ya kupeleka A1 kwa moja ya unganisho la AC ya usambazaji wa umeme
  • Solder waya kwenye unganisho lingine la AC la usambazaji wa umeme (hii itaunganishwa na kizuizi cha terminal cha screw katika hatua ya 7)
  • Solder waya kati ya usambazaji wa umeme -Vo kupeleka DC-
  • Solder waya kuunganisha usambazaji wa umeme + Vo kupeleka DC +

Kumbuka: Inaweza kuhitajika kufupisha risasi kwenye usambazaji wa umeme na kupeleka tena ili kuweza kutoshea kwenye kiambata.

Hatua ya 7: Arduino Nano + Power Supply + Solid-state Relay

Arduino Nano + Ugavi wa Umeme + Relay-solid State
Arduino Nano + Ugavi wa Umeme + Relay-solid State

Katika hatua hii, Arduino Nano imeunganishwa na usambazaji wa umeme na relay-state solid.

  • Kata waya mbili za urefu wa takriban 70mm. Ukanda wa 30mm wa kutengwa kwa upande mmoja, na 4mm kwa upande mwingine.
  • Solder kando na kutengwa kwa 30mm kwa Arduino + 5V na GND, na waya ikishika
  • Kata mirija miwili ya kupunguza joto ya urefu wa 20mm na uiweke juu ya sehemu iliyovuliwa ya 25mm. Hii hutenganisha waya hadi unganisho na kizuizi cha safu ya mlima DC + na DC- ya relay-state solid.
  • Kumbuka kuwa waya za GND na + 5V zinahitaji kuvuka ili kuungana kwa usahihi kwenye kizuizi cha terminal cha screw.
  • Kata waya wa urefu wa takriban 40mm na ukate 4mm ya kutengwa kwa ncha zote mbili. Solder upande mmoja kwa unganisho la A2 upande wa nyuma wa Arduino, na unganisha upande mwingine kwenye unganisho la CH1 la kizuizi cha safu ya milimani ya hali-thabiti.

ONYO

Arduino inaendeshwa moja kwa moja kutoka kwa umeme thabiti + 5V badala ya kutumia mdhibiti wa nguvu wa ndani wa Arduino. Kwa hivyo, sio salama kuunganisha USB wakati Arduino inapokea nguvu kutoka kwa usambazaji wa umeme.

Futa kila wakati maajenti 230VAC kabla ya kutumia unganisho la USB la Arduino.

Hatua ya 8: Arduino Nano + Saa Saa Saa

Arduino Nano + Saa Saa Halisi
Arduino Nano + Saa Saa Halisi

Katika hatua hii saa halisi imeunganishwa na Arduino, kwa sehemu kwa kutumia nyaya zilizotayarishwa katika hatua ya awali.

  • Solder waya inayotoka Arduino GND (pia imeunganishwa na DC- ya relay) hadi ‘-’ ya saa halisi.
  • Solder waya inayotoka Arduino + 5V (pia imeunganishwa na DC + ya relay) hadi '+’ya saa halisi.
  • Kata waya mbili za takriban urefu wa 40mm na ukate 4mm ya kutengwa kwa ncha zote mbili.
  • Solder waya kati ya Arduino A4 na saa halisi D (SDA).
  • Solder waya kati ya Arduino A5 na saa halisi C (SCL).
  • Tengeneza waya wa saa halisi ili kuhakikisha kuwa haziingiliani na kisimbuzi cha rotary. Kwa hili, waya zinahitaji kuwa chini ya kiambatisho.

Hatua ya 9: Unganisha OLED Onyesho

Unganisha OLED Onyesho
Unganisha OLED Onyesho

Katika hatua hii onyesho la OLED SPI linaongezwa kwenye Arduino.

  • Kata waya 2 wa urefu wa 65mm na ukate 4mm ya kutengwa kwa ncha zote mbili.
  • Solder waya kwenye unganisho la GND la onyesho la OLED. Solder waya huu kwa waya inayotengana na joto inayotokana na Arduino GND (rejea hatua ya 4) na unganisha waya zote mbili kwenye kituo cha DC-mount screw terminal ya relay solid-state.
  • Solder waya kwa muunganisho wa VCC wa onyesho la OLED. Weka waya huu kwa waya uliotengwa kwa joto unaotokana na Arduino + 5V (rejelea hatua ya 4) na unganisha waya zote mbili kwa kituo cha DC + mount screw terminal ya relay solid-state.
  • Kata waya 5 wa urefu wa 65mm na ukate 4mm ya kutengwa kwa ncha zote mbili.
  • Solder waya kuunganisha D0 (CLK) kwa Arduino D10
  • Solder waya kuunganisha D1 (MOSI / DATA) kwa Arduino D9
  • Solder waya kuunganisha RES (RT) kwa Arduino D8
  • Solder waya kuunganisha DC kwa Arduino D11
  • Solder waya kuunganisha CS kwa Arduino D12

Kumbuka: Mpangilio wa waya za kuonyesha sio mantiki. Hii ni matokeo ya kwanza kutumia mfano wa Adafruit, na kisha kubadilisha unganisho kwa sababu kutumia matokeo ya D13 katika LED nyekundu kwenye Arduino kila wakati.

Mbadala

Inawezekana kutumia agizo la 'kawaida' kwa miunganisho ya SPI. Kwa hili, ufafanuzi wa programu ya dijiti ya mpango wa Arduino katika oledcontrol.cpp lazima ibadilishwe ipasavyo:

// Kutumia programu SPI

// ufafanuzi wa pini

#fafanua CS_PIN 12

#fafanua RST_PIN 8

#fafanua DC_PIN 11

#fafanua MOSI_PIN 9

#fafanua CLK_PIN 10

Hatua ya 10: Encoder ya Rotary

Encoder ya Rotary
Encoder ya Rotary

Mchoro unaonyesha unganisho la Arduino na encoder ya rotary (encoder inayoonekana kutoka juu).

  • Kata waya 4 za 45mm na ukate 4mm ya kutengwa kwa ncha zote mbili.
  • Unganisha Arduino GND kwa viungio vya juu kulia na chini katikati ya kisimbuzi
  • Unganisha Arduino D2 chini kushoto mwa kisimbuzi
  • Unganisha Arduino D3 chini kulia kwa kisimbuzi
  • Unganisha Arduino D4 juu kushoto kwa kisimbuzi

Hatua ya 11: Usakinishaji kwenye Hifadhi

Ufungaji katika Kifungo
Ufungaji katika Kifungo

Sakinisha umeme wote katika sehemu ya chini ya ua:

  • Telezesha Arduino kwenye mpangilio wa wima
  • Telezesha saa halisi katika sehemu ya chini
  • Slide usambazaji wa umeme na upelee kwenye sehemu ya juu, hakikisha upitishaji umekaa kwenye milima yake.

Hatua ya 12: Kuunganisha na Mains / Nuru ili Kubadilishwa

Kuunganisha na Mains / Nuru ya Kubadilishwa
Kuunganisha na Mains / Nuru ya Kubadilishwa
Kuunganisha na Mains / Nuru ya Kubadilishwa
Kuunganisha na Mains / Nuru ya Kubadilishwa

ONYO

Hakikisha utunzaji mzuri na tahadhari wakati unafanya kazi na AC Mains, hakikisha kwamba Mains AC imetenganishwa

Sidhani kuwajibika kwa upotezaji wowote au uharibifu unaotokea moja kwa moja au kama matokeo ya kufuata mradi huu

  • Unganisha awamu ya Akili ya AC kwa kizuizi cha relay ya A1 (kushoto).
  • Unganisha awamu ya taa itakayobadilishwa kwa B1 (kulia) kizuizi cha terminal cha relay.
  • Tumia kitalu tofauti cha wigo wa waya kuunganisha waya kuu za waya zisizo na waya, waya nyepesi nyepesi na waya wa upande wowote wa usambazaji wa umeme.
  • Kwa usaidizi wa shida, weka tie karibu na kila nyaya za umeme.

Hatua ya 13: Kumaliza Ufungaji

Kumaliza Ufungaji
Kumaliza Ufungaji

Katika hatua hii ya kufunga ndani ya ua imekamilika

  • Telezesha onyesho la OLED kupitia shimo linalopandisha onyesho katikati ya ua.
  • Telezesha kisimbuzi cha rotary kupitia shimo katikati, hakikisha kuwa mistari ya kupambana na mzunguko inazidi. Weka encoder ya rotary ukitumia washer iliyojumuishwa na karanga.
  • Panda sehemu ya juu ya kiambatisho na funga kiambatisho kwa kuweka visu nne za M3x25mm kutoka chini.

Hatua ya 14: Kupanga Arduino

ONYO

Arduino inaendeshwa moja kwa moja kutoka kwa umeme thabiti + 5V badala ya kutumia mdhibiti wa nguvu wa ndani wa Arduino. Kwa hivyo, sio salama kuunganisha USB wakati Arduino inapokea nguvu kutoka kwa usambazaji wa umeme.

Futa kila wakati maajenti 230VAC kabla ya kutumia unganisho la USB la Arduino.

Pata programu ya kipima muda ya Arduino kutoka GitHub.

Programu hii inatumia Arduino IDE, ambayo inaweza kupatikana hapa.

Programu hutumia maktaba zifuatazo za ziada:

SSD1303Ascii

Maktaba ya waya ya Arduino

Kumbuka kuwa maktaba ya dusk2dawn pia hutumiwa, lakini imejumuishwa kama nambari kwa sababu ya mabadiliko katika kiolesura chake.

Ili kuhakikisha hesabu sahihi ya jioni / alfajiri, longitudo na latitudo na eneo la wakati lazima ziwekwe.

Kama ilivyoelezewa katika mfano wa jioni, njia rahisi ya kupata longitudo na latitudo kwa eneo lolote ni kupata mahali kwenye Ramani za Google, bonyeza kulia mahali kwenye ramani, na uchague "Kuna nini hapa?". Chini, utaona kadi iliyo na kuratibu.

Urefu na latitudo zimeorodheshwa kwenye programu, katika Dusk2Dawn.cpp laini ya 19 na 20:

/ * Latitudo na urefu wa eneo lako lazima iwekwe hapa.

* * DOKEZO: Njia rahisi ya kupata longitudo na latitudo kwa eneo lolote ni * kupata mahali kwenye Ramani za Google, bonyeza kulia mahali kwenye ramani, na * chagua "Kuna nini hapa?". Chini, utaona kadi iliyo na * kuratibu. * / #fafanua LATITUDE 52.097105; // Utrecht #fafanua LONGTITUDE 5.068294; // Utrecht

Ukanda wa saa pia umewekwa alama ngumu katika Dusk2Dawn.cpp laini ya 24. Kwa msingi imewekwa kwa Uholanzi (GMT + 1):

/ * Ingiza saa yako ya eneo (kukabiliana na GMT) hapa.

* / #fafanua TIMEZONE 1

Wakati wa kupanga Arduino kwa mara ya kwanza, kumbukumbu ya EEPROM inahitaji kuanza. Kwa hili, badilisha timer.cpp mstari wa 11 kufanya uanzishaji wa EEPROM:

// badili kuwa kweli kwa programu ya kwanza

#fasili INITIALIZE_EEPROM_MEMORY uwongo

Pakia programu hiyo kwa Arduino na uanzishe Arduino.

Lemaza uanzishaji wa EEPROM na upakie programu hiyo kwa Arduino tena. Kipima muda sasa kitakumbuka mipangilio ya wakati wa kubadili wakati itafunguliwa upya.

Hatua ya 15: Kuweka Wakati na Kugeuza Nyakati

Dhana za mwingiliano wa mtumiaji:

  • Vyombo vya habari fupi hutumiwa kuthibitisha uchaguzi. Kwa kuongezea, kwenye skrini kuu ya kipima muda, vyombo vya habari vifupi huwasha au kuzima taa.
  • Bonyeza kwa muda mrefu hutumiwa kuingiza menyu kutoka skrini kuu ya kipima muda. Mahali popote kwenye menyu, vyombo vya habari virefu vitarudi kwenye skrini kuu ya kipima muda.
  • ‘>’ Chaguzi ya uteuzi. Mshale huu unaonyesha chaguo lililochaguliwa kwenye menyu.

Skrini kuu ya kipima muda

Skrini kuu ya kipima muda inaonyesha:

Siku ya wiki Su

Wakati wa sasa 16:00

Hali ya saa ya sasa na saa inayofuata ya kubadili kipima muda hadi saa 17:12

Wakati wa alfajiri na jioni Alfajiri 08:05 Jioni 17:10

Kuweka wakati sahihi

Bonyeza kwa muda mrefu kuingia kwenye menyu. Chaguzi zifuatazo zinaonyeshwa:

Wakati wa Kuweka Sura Mpango wa siku ya Wiki Programu ya wikiendi Chaguo

Chagua muda uliowekwa wa kuweka tarehe na saa ya saa halisi. Ingiza maadili sahihi ya:

MwakaMwezi wa Mwezi

Kipima muda huamua moja kwa moja siku ya wiki. Kubadilisha wakati wa kuokoa mchana pia hufanywa kiatomati. Uokoaji wa mchana unatekelezwa kwa saa za Ulaya pekee.

Kuweka programu ya kipima muda

Kipima muda kina programu 2, moja kwa siku za wiki, moja ya wikendi. Kumbuka kuwa Ijumaa inachukuliwa kuwa sehemu ya wikendi, taa zinaweza kukaa kwa muda mrefu.

Kila kipima muda kinawasha na kuzima wakati. Wakati unaweza kuwa:

  • Wakati: Sahihi muda uliowekwa
  • Alfajiri: Badilisha kulingana na wakati uliohesabiwa wa alfajiri
  • Jioni: Badilisha kulingana na wakati uliohesabiwa wa jioni

Kwa jioni na alfajiri inawezekana kuingia thamani ya marekebisho ya dakika 59 kabla au baada.

Mifano:

Ili kuwasha taa usiku kucha, chagua kuwasha saa (jioni + 10min), zima saa (alfajiri - 10min)

Kuwasha taa jioni, chagua kuwasha wakati wa jioni, zima kwa wakati: 22:30.

Chaguzi

Katika skrini ya chaguzi muda unaweza kuwekwa kwa kubadili skrini.

Wakati skrini imezimwa, kubonyeza kitufe cha kusimba cha rotary kitarudi kwenye skrini kuu ya kipima muda.

Ilipendekeza: