Satura rādītājs:
- 1. darbība: detaļu saraksts un rīki
- 2. darbība. Sagatavojiet OLED displeju un reāllaika pulksteni
- 3. darbība: sagatavojiet rotējošo kodētāju
- 4. solis: iežogojums
- 5. darbība: atspējojiet Arduino Power LED (pēc izvēles)
- 6. solis: barošanas avots + cietvielu relejs
- 7. solis: Arduino Nano + barošanas avots + cietvielu relejs
- 8. solis: Arduino Nano + reālā laika pulkstenis
- 9. darbība: pievienojiet OLED displeju
- 10. solis: Rotācijas kodētājs
- 11. darbība: uzstādīšana korpusā
- 12. darbība. Savienojuma izveide ar elektrotīklu / gaismu jāpārslēdz
- 13. darbība: korpusa apdare
- 14. solis: Arduino programmēšana
- 15. darbība. Laika un pārslēgšanās laika iestatīšana
Video: Arduino krēslas/rītausmas pulksteņa taimeris: 15 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
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
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
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
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
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)
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
Š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
Š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
Š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
Š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
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ā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
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
Š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:
Arduino OLED gredzena pulksteņa izgatavošana: 5 soļi
Arduino OLED gredzena pulksteņa izgatavošana: Esmu nopircis nelielu OLED displeju, tā tīrība un skaidrība pievērš manu uzmanību. Bet ko es varu ar to darīt? Patiesībā jautājums ir par to, kā es varu to parādīt … Lol. Kad paskatījos Gredzenu pavēlnieka plakātu, kas ir mana mīļākā filmu sērija
Unikāls pulksteņa modelis, ko nodrošina Arduino Servo Motors: 5 soļi
Unikāls pulksteņa modelis, ko nodrošina Arduino Servo Motors: Ar šo pamācību es jums parādīšu, kā izveidot pulksteni, izmantojot Arduino Nano un Servo motorus. Lai to izdarītu, jums būs nepieciešami šādi priekšmeti:
Izmantojot DS1307 un DS3231 reāllaika pulksteņa moduļus ar Arduino: 3 soļi
DS1307 un DS3231 reāllaika pulksteņa moduļu izmantošana ar Arduino: Mēs pastāvīgi saņemam pieprasījumus par DS1307 un DS3231 reāllaika pulksteņa moduļu izmantošanu kopā ar Arduino no dažādiem avotiem-tāpēc šī ir pirmā no divu daļu apmācības par to izmantošanu. Šai Arduino apmācībai mums ir divi reālā laika pulksteņa moduļi
Pulksteņa izveide no pulksteņa: 11 soļi (ar attēliem)
Pulksteņa izveide no pulksteņa: Šajā instrukcijā es ņemu esošo pulksteni un izveidoju, manuprāt, labāku pulksteni. Mēs pāriesim no attēla pa kreisi uz attēlu labajā pusē. Pirms sākat savu pulksteni, lūdzu, ņemiet vērā, ka salikšana var būt sarežģīta kā pagrieziena punkts
Pulksteņa zonas pulksteņa treniņa pulkstenis: 19 soļi (ar attēliem)
Sirdsdarbības zonas monitora pulksteņa apmācība: koledža ir drudžains un haotisks laiks dzīvē, tāpēc ir ļoti svarīgi saglabāt zemu stresa līmeni. Viens veids, kā mums patīk to darīt, ir trenēties, tas palīdz saglabāt jūsu prātu skaidru un ķermeni justies veselīgi. Tāpēc mēs izveidojām portatīvu