Satura rādītājs:

Arduino krēslas/rītausmas pulksteņa taimeris: 15 soļi
Arduino krēslas/rītausmas pulksteņa taimeris: 15 soļi

Video: Arduino krēslas/rītausmas pulksteņa taimeris: 15 soļi

Video: Arduino krēslas/rītausmas pulksteņa taimeris: 15 soļi
Video: Уроки Ардуино #0 - что такое Arduino, куда подключаются датчики и как питать Ардуино 2024, Novembris
Anonim
Arduino krēslas/rītausmas pulksteņa taimeris
Arduino krēslas/rītausmas pulksteņa taimeris

Kopsavilkums:

Šis uz Arduino balstītais taimeris var pārslēgt vienu 220V gaismu krēslā, rītausmā vai noteiktā laikā.

Ievads:

Dažas manas mājas gaismas automātiski tiek ieslēgtas krēslas laikā līdz iepriekš noteiktam laikam vai līdz rītausmai (visu nakti).

Lukturu atrašanās vieta neļauj izmantot gaismas sensoru. Parastie pieejamie pulksteņa taimeri ieslēdzas noteiktā laikā. Tāpēc, lai ieslēgtos krēslas laikā, ir regulāri jāpielāgo taimera programmas iestatījumi.

Kā jauku izaicinājumu es nolēmu tā vietā izveidot pielāgotu taimeri, kura pamatā ir Arduino. Tas izmanto reālā laika pulksteni un Dusk2Dawn bibliotēku, lai noteiktu laiku, kurā gaismas jāieslēdz vai jāizslēdz. Šī taimera korpuss ir izdrukāts 3D formātā, un to var atrast vietnē Thingiverse. Šī projekta Arduino kodu var atrast vietnē GitHub.

Šī taimera izveidē es iedvesmojos no daudziem dizainparaugiem un shēmām internetā. Es pateicos visiem dalībniekiem, kuri nav skaidri minēti.

Lasāmības labad daļējās diagrammas tiek parādītas nepieciešamās darbības, nevis pilnīga shēma.

Alternatīvi risinājumi:

Atsevišķa taimera vietā ir daudz risinājumu, kuros viedās mājas automatizācijas sistēma vada gaismas. Mans mērķis bija iegūt neatkarīgu risinājumu, kas nav atkarīgs no WIFI (vai cita) savienojuma.

Ierobežojumi:

Šim projektam pievienotais kods ietvēra vasaras laika izmaiņu ieviešanu, pamatojoties uz Eiropas vasaras laiku.

1. darbība: detaļu saraksts un rīki

Detaļu saraksts un rīki
Detaļu saraksts un rīki

Daļas:

Kopējās detaļu izmaksas (izņemot 3D izdruku) aptuveni EUR 30, -.

  • Arduino Nano V3 (saderīgs) bez galvenēm
  • Barošanas avots 5V 0.6A (34 x 20 x 15mm)
  • Cietvielu relejs 5V - aktīvs zems - 2A 230VAC
  • Reālā laika pulkstenis DS3231 (mazs)
  • 0,96 collu OLED displejs SPI 128*64 pikseļi
  • Rotējošais kodētājs - EC11 - 20 mm
  • Poga 6mm vārpsta 15mm * 17mm
  • Maizes dēļa iespiedshēmas plate,
  • 4* M3x25mm skrūves
  • 3D drukāts korpuss
  • Termiski saraušanās caurules
  • Vadi
  • Skrūves spaiļu bloks (lai savienotu neitrālos vadus)

Nepieciešamie rīki:

  • Lodāmurs
  • Lodēšanas stieple
  • Atkausēšanas sūknis
  • Stiepļu noņēmēji
  • Griezēji
  • 3D printeris (lai drukātu korpusu)
  • Dažādi mazi instrumenti

BRĪDINĀJUMS

Šī ķēde darbojas ar 230 V maiņstrāvu, un, ja neesat pieradis strādāt ar tīkla spriegumu vai jums nav pietiekami daudz pieredzes darbā ar 230 V maiņstrāvas spriegumu, lūdzu, turieties tālāk no šī projekta

Es neuzņemos nekādu atbildību par jebkādiem zaudējumiem vai bojājumiem, kas radušies tieši no šī projekta vai tā rezultātā

Strādājot ar maiņstrāvas tīklu, vienmēr ieteicams ievērot pienācīgu piesardzību un piesardzību

2. darbība. Sagatavojiet OLED displeju un reāllaika pulksteni

Sagatavojiet OLED displeju un reālā laika pulksteni
Sagatavojiet OLED displeju un reālā laika pulksteni

3D drukātais korpuss ir paredzēts minimālam izmēram. Tā rezultātā ir jānoņem OLED displeja galvenes un reālā laika pulkstenis.

Gatavojoties nākamajam solim, ar atkausēšanas sūkni notīriet atlikušos lodētus no caurumiem.

3. darbība: sagatavojiet rotējošo kodētāju

Sagatavojiet rotējošo kodētāju
Sagatavojiet rotējošo kodētāju

Rotācijas kodētājam ir vāji savienotāji. Lai izvairītos no bojājumiem, piestipriniet drukātās shēmas plates gabalu pie kodētāja.

Attēlā jau ir sagatavots arī zemes savienojums (augšējā labajā pusē un vidējā apakšā).

Piezīme: Pārliecinieties, vai rotējošais kodētājs ar iespiedshēmas plati ietilpst korpusā, nepieskaroties Arduino. Var būt nepieciešams sasmalcināt iespiedshēmas plati, lai tas būtu cieši pieguļošs.

4. solis: iežogojums

Korpuss
Korpuss
Korpuss
Korpuss

Izdrukājiet trīs korpusa daļas ar 3D printeri. Skatiet Thingiverse instrukcijas.

5. darbība: atspējojiet Arduino Power LED (pēc izvēles)

Atspējot Arduino Power LED (pēc izvēles)
Atspējot Arduino Power LED (pēc izvēles)

Lai taimeris nedeg zaļā krāsā, Arduino barošanas gaismas diode var tikt atspējota.

Ņemiet vērā, ka šī modifikācija nav obligāta.

Arduino Nano modifikācija sastāv no rezistora noņemšanas blakus strāvas vadam (skatiet sarkano apli attēlā).

6. solis: barošanas avots + cietvielu relejs

Barošanas avots + cietvielu relejs
Barošanas avots + cietvielu relejs

Šajā posmā barošanas avots un cietvielu relejs tiek apvienoti un uzstādīti korpusa apakšējā daļā.

Savienojumi starp barošanas avotu un releju tiek veikti šo komponentu apakšā. Lai izveidotu savienojumu ar Arduino, tiks izmantots releja skrūvju spaiļu bloks.

Piezīme: Veicot savienojumus, pārliecinieties, ka cietvielu releja stiprinājuma caurumi ir brīvi.

  • Lodējiet savienojuma vadu starp cietvielu releju A1 un vienu no barošanas avota maiņstrāvas savienojumiem
  • Lodējiet vadu pie cita barošanas avota maiņstrāvas savienojuma (tas tiks pievienots nulles skrūves spaiļu blokam 7. darbībā)
  • Lodējiet vadu starp barošanas avotu -Vo līdz relejam DC-
  • Lodējiet vadu, lai savienotu barošanas avotu +Vo ar releju DC +

Piezīme: Lai varētu ievietot korpusā, var būt nepieciešams saīsināt barošanas avota un releja vadus.

7. solis: Arduino Nano + barošanas avots + cietvielu relejs

Arduino Nano + barošanas avots + cietvielu relejs
Arduino Nano + barošanas avots + cietvielu relejs

Šajā solī Arduino Nano ir pievienots barošanas avotam un cietvielu relejam.

  • Izgrieziet divus vadus, kuru garums ir aptuveni 70 mm. No vienas puses noņemiet izolāciju 30 mm un otrā pusē 4 mm.
  • Lodējiet sānu ar 30 mm atdalītu izolāciju pie Arduino +5V un GND, vadam uzlīmējot cauri
  • Izgrieziet divas termiski saraucošās caurules ar 20 mm garumu un uzstādiet tās virs 25 mm noņemtas daļas. Tas izolē vadus līdz savienojumam ar stiprinājuma skrūves spaiļu bloku DC+ un DC- no cietvielu releja.
  • Ņemiet vērā, ka GND un +5 V vadi ir jāšķērso, lai pareizi pievienotos releja skrūves spaiļu blokam.
  • Izgrieziet aptuveni 40 mm garu vadu un noņemiet 4 mm izolāciju no abiem galiem. Lodējiet vienu pusi pie A2 savienojuma Arduino BACKSIDE, un pievienojiet otru pusi ar cietvielu stiprinājuma skrūves spaiļu bloka CH1 savienojumu.

BRĪDINĀJUMS

Arduino tiek darbināts tieši no stabila +5 V barošanas avota, nevis izmantojot Arduino iekšējo jaudas regulatoru. Tāpēc nav droši savienot USB, kad Arduino saņem strāvu no barošanas avota.

Pirms Arduino USB savienojuma izmantošanas vienmēr atvienojiet 230VAC tīklu.

8. solis: Arduino Nano + reālā laika pulkstenis

Arduino Nano + reālā laika pulkstenis
Arduino Nano + reālā laika pulkstenis

Šajā solī reālā laika pulkstenis ir savienots ar Arduino, daļēji izmantojot iepriekšējā solī sagatavotos kabeļus.

  • Lodējiet vadu, kas nāk no Arduino GND (arī savienots ar releja līdzstrāvu) līdz reālā laika pulksteņa “-”.
  • Lodējiet vadu, kas nāk no Arduino+5V (arī savienots ar releja DC+) līdz reālā laika pulksteņa “+”.
  • Izgrieziet divus vadus, kuru garums ir aptuveni 40 mm, un noņemiet 4 mm no abu galu izolācijas.
  • Lodējiet vadu starp Arduino A4 un reālā laika pulksteni D (SDA).
  • Lodējiet vadu starp Arduino A5 un reālā laika pulksteni C (SCL).
  • Veidojiet reālā laika pulksteņa vadus, lai pārliecinātos, ka tie netraucē rotējošo kodētāju. Šim nolūkam vadiem jāatrodas korpusa apakšā.

9. darbība: pievienojiet OLED displeju

Pievienojiet OLED displeju
Pievienojiet OLED displeju

Šajā solī OLED SPI displejs tiek pievienots Arduino.

  • Izgrieziet 2 vadus 65 mm garumā un noņemiet 4 mm no abu galu izolācijas.
  • Lodējiet vadu pie OLED displeja GND savienojuma. Lodējiet šo vadu pie termiski saraušanās caurules izolētā stieples, kas nāk no Arduino GND (skatiet 4. soli), un savienojiet abus vadus ar cietvielu releja līdzstrāvas stiprinājuma skrūvju bloku.
  • Lodējiet vadu OLED displeja VCC savienojumam. Lodējiet šo vadu pie termiski saraušanās caurules izolētā stieples, kas nāk no Arduino + 5V (skatiet 4. darbību), un pievienojiet abus vadus cietā releja DC + stiprinājuma skrūves spaiļu blokam.
  • Izgrieziet 5 vadus ar 65 mm garumu un noņemiet 4 mm no abu galu izolācijas.
  • Lodējiet vadu, lai savienotu D0 (CLK) ar Arduino D10
  • Lodējiet vadu, lai savienotu D1 (MOSI / DATA) ar Arduino D9
  • Lodējiet vadu, lai savienotu RES (RT) ar Arduino D8
  • Lodējiet vadu, lai savienotu līdzstrāvu ar Arduino D11
  • Lodējiet vadu, lai savienotu CS ar Arduino D12

Piezīme. Displeja vadu secība nav loģiska. Tas ir rezultāts, vispirms izmantojot Adafruit piemēru un pēc tam mainot savienojumus, jo, izmantojot D13, Arduino nepārtraukti parādās sarkana gaismas diode.

Alternatīva

SPI savienojumiem ir iespējams izmantot “parasto” pasūtījumu. Šim nolūkam Arduino programmas digitālās izvades definīcija vietnē oledcontrol.cpp ir attiecīgi jāpielāgo:

// Izmantojot programmatūras SPI

// pin definīcijas

#define CS_PIN 12

#define RST_PIN 8

#define DC_PIN 11

#define MOSI_PIN 9

#define CLK_PIN 10

10. solis: Rotācijas kodētājs

Rotācijas kodētājs
Rotācijas kodētājs

Diagrammā parādīti Arduino savienojumi ar rotējošo kodētāju (kodētājs redzams no augšas).

  • Izgrieziet 4 vadus pa 45 mm un noņemiet 4 mm no abu galu izolācijas.
  • Savienojiet Arduino GND ar kodētāja augšējo labo un apakšējo vidējo savienotāju
  • Pievienojiet Arduino D2 kodētāja apakšējā kreisajā stūrī
  • Pievienojiet Arduino D3 kodētāja apakšējā labajā stūrī
  • Pievienojiet Arduino D4 kodētāja augšējā kreisajā stūrī

11. darbība: uzstādīšana korpusā

Uzstādīšana korpusā
Uzstādīšana korpusā

Uzstādiet visu elektroniku korpusa apakšējā daļā:

  • Bīdiet Arduino uz vertikālā slota
  • Bīdiet reālā laika pulksteni apakšējā nodalījumā
  • Bīdiet barošanas avotu un releju augšējā nodalījumā, pārliecinieties, ka relejs atrodas uz stiprinājumiem.

12. darbība. Savienojuma izveide ar elektrotīklu / gaismu jāpārslēdz

Savienojuma izveide ar elektrotīklu / gaismu jāpārslēdz
Savienojuma izveide ar elektrotīklu / gaismu jāpārslēdz
Savienojuma izveide ar elektrotīklu / gaismu jāpārslēdz
Savienojuma izveide ar elektrotīklu / gaismu jāpārslēdz

BRĪDINĀJUMS

Strādājot ar maiņstrāvas tīklu, ievērojiet pienācīgu piesardzību un piesardzību, pārliecinieties, ka maiņstrāvas tīkls ir atvienots

Es neuzņemos nekādu atbildību par jebkādiem zaudējumiem vai bojājumiem, kas radušies tieši no šī projekta vai tā rezultātā

  • Pievienojiet maiņstrāvas tīkla fāzi releja A1 (kreisajam) skrūves spaiļu blokam.
  • Pievienojiet pārslēdzamās gaismas fāzi releja B1 (labajā) skrūvju spaiļu blokam.
  • Izmantojiet atsevišķu skrūvju spaiļu bloku, lai pievienotu maiņstrāvas tīkla neitrālo vadu, gaismas neitrālo vadu un barošanas avota neitrālo vadu.
  • Lai samazinātu spriedzi, ap katru strāvas kabeli piestipriniet kaklasaiti.

13. darbība: korpusa apdare

Korpusa apdare
Korpusa apdare

Šajā posmā montāža korpusā ir pabeigta

  • Izbīdiet OLED displeju caur displeja stiprinājuma atveri korpusa vidusdaļā.
  • Izbīdiet rotējošo kodētāju caur caurumu vidējā daļā, pārliecinieties, ka pretgriešanās līnijas ir uz augšu. Uzstādiet rotējošo kodētāju, izmantojot komplektā iekļauto paplāksni un uzgriezni.
  • Uzstādiet korpusa augšējo daļu un aizveriet korpusu, no apakšas piestiprinot četras M3x25mm skrūves.

14. solis: Arduino programmēšana

BRĪDINĀJUMS

Arduino tiek darbināts tieši no stabila +5 V barošanas avota, nevis izmantojot Arduino iekšējo jaudas regulatoru. Tāpēc nav droši savienot USB, ja Arduino saņem strāvu no barošanas avota.

Pirms Arduino USB savienojuma izmantošanas vienmēr atvienojiet 230VAC tīklu.

Iegūstiet Arduino taimera programmu no GitHub.

Šī programma izmanto Arduino IDE, kuru var iegūt šeit.

Programma izmanto šādas papildu bibliotēkas:

SSD1303 Ascii

Arduino Wire bibliotēka

Ņemiet vērā, ka tiek izmantota arī bibliotēka dusk2dawn, taču tās saskarnes izmaiņu dēļ tā ir iekļauta kā kods.

Lai nodrošinātu pareizu krēslas / rītausmas aprēķinu, ir jāiestata garums un platums un laika josla.

Kā aprakstīts dusk2dawn piemērā, vienkāršs veids, kā atrast garumu un platumu jebkurai atrašanās vietai, ir atrast vietu pakalpojumā Google Maps, ar peles labo pogu noklikšķiniet uz vietas kartē un atlasiet “Kas šeit ir?”. Apakšā redzēsit kartīti ar koordinātām.

Garums un platums programmā ir kodēti programmā Dusk2Dawn.cpp 19. un 20. rindā:

/* Šeit ir jāiestata jūsu atrašanās vietas platums un garums.

* * PADOMS: Vienkāršs veids, kā atrast garumu un platumu jebkurai atrašanās vietai, ir * atrast vietu pakalpojumā Google Maps, ar peles labo pogu noklikšķiniet uz vietas kartē un * atlasiet “Kas šeit ir?”. Apakšā redzēsit kartīti ar * koordinātām. */ #define LATITUDE 52.097105; // Utrehta #define LONGTITUDE 5.068294; // Utrehta

Laika josla ir arī kodēta Dusk2Dawn.cpp 24. rindā. Pēc noklusējuma tā ir iestatīta uz Nīderlandi (GMT + 1):

/* Šeit ievadiet savu laika joslu (nobīde uz GMT).

*/ #definējiet TIMEZONE 1

Programmējot Arduino pirmo reizi, ir jāinicializē EEPROM atmiņa. Lai to izdarītu, nomainiet timer.cpp 11. rindu, lai inicializētu EEPROM:

// mainīt uz patiesu pirmo reizi programmēšanai

#define INITIALIZE_EEPROM_MEMORY nepatiesa

Augšupielādējiet programmu Arduino un ielādējiet Arduino.

Atspējojiet EEPROM inicializāciju un vēlreiz augšupielādējiet programmu Arduino. Taimeris tagad atcerēsies pārslēgšanās laika iestatījumus, kad tas tiks restartēts.

15. darbība. Laika un pārslēgšanās laika iestatīšana

Lietotāju mijiedarbības jēdzieni:

  • Īsā nospiešana tiek izmantota, lai apstiprinātu izvēli. Turklāt taimera galvenajā ekrānā īsa nospiešana ieslēdz vai izslēdz gaismu.
  • Ilgu nospiešanu izmanto, lai galvenajā taimera ekrānā ieietu izvēlnē. Jebkurā izvēlnes vietā, ilgi nospiežot, atgriezīsies galvenā taimera ekrāns.
  • “>” Atlases kursors. Šis kursors norāda izvēlnē izvēlēto opciju.

Taimera galvenais ekrāns

Taimera galvenajā ekrānā tiek parādīts:

Nedēļas diena Su

Pašreizējais laiks 16:00

Pašreizējais taimera stāvoklis un nākamā pārslēgšanās laiks Taimeris OFF līdz 17:12

Rītausmas un krēslas laiks Rītausma 08:05 Krēsla 17:10

Pareiza laika iestatīšana

Ilgi nospiediet, lai atvērtu izvēlni. Tiek parādītas šādas iespējas:

AtpakaļSet timeWeek day programWeekend programOptions

Izvēlieties iestatīt laiku, lai iestatītu reālā laika pulksteņa datumu un laiku. Ievadiet pareizās vērtības:

YearMonthDayTime

Taimeris automātiski nosaka nedēļas dienu. Vasaras laika pārslēgšana tiek veikta arī automātiski. Vasaras laiks tiek ieviests tikai Eiropas laika joslā.

Taimera programmas iestatīšana

Taimerim ir 2 programmas, viena nedēļas dienām, viena nedēļas nogalei. Ņemiet vērā, ka piektdiena tiek uzskatīta par nedēļas nogales sastāvdaļu, gaismas var palikt ieslēgtas nedaudz ilgāk.

Katram taimerim ir ieslēgšanas un izslēgšanas brīdis. Šis brīdis var būt:

  • Laiks: precīzs norādītais laiks
  • Rītausma: pārslēdzieties, pamatojoties uz aprēķināto rītausmas laiku
  • Krēsla: pārslēdzieties, pamatojoties uz aprēķināto krēslas laiku

Krēslas un rītausmas laikā ir iespējams ievadīt korekcijas vērtību 59 minūtes pirms vai pēc.

Piemēri:

Lai visu nakti ieslēgtu gaismu, izvēlieties ieslēgt plkst (krēsla + 10 min), izslēdziet pulksten (rītausma - 10 min)

Lai vakarā ieslēgtu gaismu, izvēlieties ieslēgt krēslas laikā, izslēdziet laikā: 22:30.

Iespējas

Opciju ekrānā var iestatīt taimautu ekrāna pārslēgšanai.

Kad ekrāns ir izslēgts, nospiežot rotējošo kodētāja pogu, tiks atvērts galvenais taimera ekrāns.

Ieteicams: