Cuprins:
- Pasul 1: Lista pieselor și instrumentele
- Pasul 2: Pregătiți afișajul OLED și ceasul în timp real
- Pasul 3: Pregătiți codificatorul rotativ
- Pasul 4: incintă
- Pasul 5: Dezactivați LED-ul de alimentare Arduino (opțional)
- Pasul 6: sursă de alimentare + releu de stare solidă
- Pasul 7: Arduino Nano + Sursa de alimentare + Releu în stare solidă
- Pasul 8: Arduino Nano + Ceas în timp real
- Pasul 9: Conectați ecranul OLED
- Pasul 10: Codificator rotativ
- Pasul 11: Instalare în incintă
- Pasul 12: Conectarea la rețea / lumină pentru a fi comutată
- Pasul 13: Finalizarea incintei
- Pasul 14: Programarea Arduino
- Pasul 15: Configurarea orei și a orelor de comutare
Video: Temporizator de ceas Arduino Dusk / dawn: 15 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Rezumat:
Acest temporizator bazat pe Arduino poate comuta o lumină de 220V la amurg, în zori sau la ora specificată.
Introducere:
Unele dintre luminile din casa mea se aprind automat la amurg, până la o oră prestabilită sau până în zori (toată noaptea).
Amplasarea luminilor nu permite utilizarea unui senzor de lumină. Temporizatoarele normale de ceas disponibile se pornesc la o anumită oră. Pentru a porni în jurul amurgului, este necesară ajustarea regulată a setării programului temporizatorului.
Ca o provocare frumoasă, am decis să construiesc în schimb un temporizator personalizat bazat pe Arduino. Folosește un ceas în timp real și biblioteca Dusk2Dawn pentru a determina ora la care trebuie aprinse sau oprite luminile. Carcasa acestui timer este imprimată 3D și poate fi găsită pe Thingiverse. Codul Arduino pentru acest proiect poate fi găsit pe GitHub.
La crearea acestui cronometru m-am inspirat din multe modele și circuite de pe internet. Mulțumesc tuturor contribuabililor care nu sunt menționați în mod explicit.
Pentru lizibilitate, diagramele parțiale sunt prezentate în pașii în care este necesar, în loc de o diagramă completă a circuitului.
Soluții alternative:
În loc de un cronometru autonom, există multe soluții în care un sistem inteligent de automatizare a casei conduce lumina. Scopul meu a fost să am o soluție independentă, care să nu depindă de conectivitatea WIFI (sau alta).
Restricții:
Codul furnizat împreună cu acest proiect a inclus o implementare a modificărilor de vară bazate pe sistemul european de vară.
Pasul 1: Lista pieselor și instrumentele
Părți:
Costuri totale ale pieselor (cu excepția tipăririi 3D) aproximativ 30 EUR, -.
- Arduino Nano V3 (compatibil) fără anteturi
- Alimentare 5V 0.6A (34 x 20 x 15mm)
- Releu în stare solidă 5V - Activ scăzut - 2A 230VAC
- Ceas DS3231 în timp real (mic)
- Afișaj OLED de 0,96”SPI 128 * 64 pixeli
- Codificator rotativ - EC11 - 20mm
- Buton ax 6mm 15mm * 17mm
- Placă cu circuite imprimate,
- 4 * șuruburi M3x25mm
- Carcasă tipărită 3D
- Tuburi termocontractabile
- Fire
- Bloc terminal cu șurub (pentru conectarea firelor neutre)
Instrumente necesare:
- Ciocan de lipit
- Sârmă de lipit
- Pompa de dezlipire
- Dispozitive de decupare a firelor
- Freze
- Imprimantă 3D (pentru imprimarea carcasei)
- Unelte mici asortate
AVERTIZARE
Acest circuit funcționează pe 230V AC și dacă nu sunteți obișnuiți să lucrați cu tensiunea de rețea sau nu aveți o experiență amplă în lucrul cu tensiunea de alimentare 230V AC, vă rugăm să stați departe de acest proiect
Nu-mi asum nici o responsabilitate pentru orice pierdere sau daună care rezultă direct din sau ca urmare a urmării acestui proiect
Este întotdeauna recomandat să aveți grijă și precauție în timp ce lucrați cu rețeaua de curent alternativ
Pasul 2: Pregătiți afișajul OLED și ceasul în timp real
Carcasa imprimată 3D este concepută pentru dimensiuni minime. Ca urmare, antetele afișajului OLED și ceasul în timp real trebuie eliminate.
În pregătirea pentru pasul următor, îndepărtați orice lipire rămasă din găuri cu ajutorul pompei de sudare.
Pasul 3: Pregătiți codificatorul rotativ
Codificatorul rotativ are conectori slabi. Pentru a preveni deteriorarea, montați o bucată de placă de circuite imprimate pe codificator.
Pe imagine, conexiunea la masă (în partea dreaptă sus și mijloc jos) este deja pregătită.
Notă: Asigurați-vă că codificatorul rotativ cu placă de circuite imprimate se potrivește în carcasă fără a atinge Arduino. Poate fi necesar să măcinați placa de circuit imprimat pentru a vă potrivi perfect.
Pasul 4: incintă
Imprimați cele trei părți ale carcasei cu o imprimantă 3D. Consultați instrucțiunile de pe Thingiverse.
Pasul 5: Dezactivați LED-ul de alimentare Arduino (opțional)
Pentru a preveni o strălucire verde în cronometru, LED-ul de alimentare al Arduino poate fi dezactivat.
Rețineți că această modificare este opțională.
Modificarea Arduino Nano constă în îndepărtarea rezistorului de lângă ledul de alimentare (vezi cercul roșu din imagine).
Pasul 6: sursă de alimentare + releu de stare solidă
În acest pas, sursa de alimentare și releul în stare solidă sunt combinate și montate în partea inferioară a carcasei.
Conexiunile dintre sursa de alimentare și releul se fac în partea de jos a acestor componente. Blocul de borne cu șurub al releului va fi utilizat pentru conectarea la Arduino.
Notă: Când faceți conexiuni, asigurați-vă că orificiile de montare ale releului în stare solidă sunt menținute libere.
- Lipiți un fir de conectare între releul de stare solidă A1 la una dintre conexiunile de curent alternativ ale sursei de alimentare
- Lipiți un fir la cealaltă conexiune de curent alternativ a sursei de alimentare (aceasta va fi conectată la borna cu șurub neutru la pasul 7)
- Lipiți un fir între sursa de alimentare -Vo pentru releu DC-
- Lipiți un fir pentru a conecta sursa de alimentare + Vo la releu DC +
Notă: S-ar putea să fie necesar să scurtați cablurile de la sursa de alimentare și de la releu pentru a vă putea încadra în carcasă.
Pasul 7: Arduino Nano + Sursa de alimentare + Releu în stare solidă
În acest pas, Arduino Nano este conectat la sursa de alimentare și la releul în stare solidă.
- Tăiați două fire de aproximativ 70 mm lungime. Îndepărtați 30 mm de izolare pe o parte și 4 mm pe cealaltă parte.
- Lipiți partea cu o izolație de 30 mm pe Arduino + 5V și GND, cu firul care se lipeste prin
- Tăiați două tuburi termocontractibile cu lungimea de 20 mm și montați-le peste partea decupată de 25 mm. Acest lucru izolează firele până la conexiunea cu bornele cu șurub de montare DC + și DC- ale releului în stare solidă.
- Rețineți că firele pentru GND și + 5V trebuie să se încrucișeze pentru a se conecta corect la blocul de borne cu șurubul releului.
- Tăiați un fir de aproximativ 40 mm lungime și curățați 4 mm de izolare a ambelor capete. Lipiți o parte la conexiunea A2 de pe partea din spate a Arduino și conectați cealaltă parte la conexiunea CH1 a blocului de borne cu șurub de montare în stare solidă.
AVERTIZARE
Arduino este alimentat direct de la sursa de alimentare stabilă + 5V în loc să utilizeze regulatorul de putere intern Arduino. Prin urmare, nu este sigur să conectați USB atunci când Arduino primește energie de la sursa de alimentare.
Deconectați întotdeauna rețeaua de 230VAC înainte de a utiliza conexiunea USB Arduino.
Pasul 8: Arduino Nano + Ceas în timp real
În acest pas, ceasul în timp real este conectat la Arduino, parțial utilizând cablurile pregătite în pasul anterior.
- Lipiți firul care vine de la Arduino GND (conectat și la DC- al releului) la „-” al ceasului în timp real.
- Lipiți firul care vine de la Arduino + 5V (conectat și la DC + al releului) la „+” al ceasului în timp real.
- Tăiați două fire de aproximativ 40 mm lungime și curățați 4 mm de izolare a ambelor capete.
- Lipiți un fir între Arduino A4 și ceasul în timp real D (SDA).
- Lipiți un fir între Arduino A5 și ceasul în timp real C (SCL).
- Formați firele ceasului în timp real pentru a vă asigura că nu interferează cu codificatorul rotativ. Pentru aceasta, firele trebuie să fie în partea inferioară a incintei.
Pasul 9: Conectați ecranul OLED
În acest pas, afișajul OLED SPI este adăugat la Arduino.
- Tăiați 2 fire de 65 mm lungime și curățați 4 mm de izolare a ambelor capete.
- Lipiți un fir la conexiunea GND a afișajului OLED. Lipiți acest fir la firul izolat al tubului termocontractabil provenit de la Arduino GND (consultați pasul 4) și conectați ambele fire la blocul de borne cu șurub montat în CC al releului de stare solidă.
- Lipiți un fir la conexiunea VCC a afișajului OLED. Lipiți acest fir la firul izolat al tubului termocontractabil care vine de la Arduino + 5V (consultați pasul 4) și conectați ambele fire la blocul de borne cu șurub de montare DC + al releului de stare solidă.
- Tăiați 5 fire de 65 mm lungime și curățați 4 mm de izolare a ambelor capete.
- Lipiți un fir pentru a conecta D0 (CLK) la Arduino D10
- Lipiți un fir pentru a conecta D1 (MOSI / DATA) la Arduino D9
- Lipiți un fir pentru a conecta RES (RT) la Arduino D8
- Lipiți un fir pentru a conecta DC la Arduino D11
- Lipiți un fir pentru a conecta CS la Arduino D12
Notă: Ordinea firelor de afișare nu este logică. Acesta este rezultatul utilizării mai întâi a exemplului Adafruit și apoi a schimbării conexiunilor, deoarece utilizarea D13 are ca rezultat un LED roșu pe Arduino tot timpul.
Alternativă
Este posibil să se utilizeze o ordine „normală” pentru conexiunile SPI. Pentru aceasta, definiția ieșirii digitale a programului Arduino din oledcontrol.cpp trebuie ajustată în consecință:
// Utilizarea software-ului SPI
// definiții pin
#define CS_PIN 12
#define RST_PIN 8
#define DC_PIN 11
#define MOSI_PIN 9
#define CLK_PIN 10
Pasul 10: Codificator rotativ
Diagrama arată conexiunile Arduino la codificatorul rotativ (codificatorul văzut de sus).
- Tăiați 4 fire de 45 mm și curățați 4 mm de izolare a ambelor capete.
- Conectați Arduino GND la conectorii din dreapta sus și din partea de jos a codificatorului
- Conectați Arduino D2 în partea stângă jos a codificatorului
- Conectați Arduino D3 în dreapta jos a codificatorului
- Conectați Arduino D4 în partea stângă sus a codificatorului
Pasul 11: Instalare în incintă
Instalați toate componentele electronice în partea de jos a carcasei:
- Glisați Arduino pe fanta verticală
- Glisați ceasul în timp real în compartimentul inferior
- Glisați sursa de alimentare și releul în compartimentul superior, asigurați-vă că releul se află pe suporturile sale.
Pasul 12: Conectarea la rețea / lumină pentru a fi comutată
AVERTIZARE
Asigurați-vă că aveți grijă și precauție în timp ce lucrați cu rețeaua de curent alternativ, asigurați-vă că rețeaua de curent alternativ este deconectată
Nu-mi asum nici o responsabilitate pentru orice pierdere sau daună care rezultă direct din sau ca urmare a urmării acestui proiect
- Conectați faza de rețea AC la blocul de borne cu șurub A1 (stânga) al releului.
- Conectați faza luminii de comutat la blocul de borne cu șurub B1 (dreapta) al releului.
- Utilizați un bloc terminal cu șurub separat pentru a conecta firul neutru de rețea de curent alternativ, firul neutru ușor și firul neutru al sursei de alimentare.
- Pentru ameliorarea tensiunii, montați o învelitoare de cravată în jurul fiecărui cablu de alimentare.
Pasul 13: Finalizarea incintei
În acest pas se finalizează montarea în carcasă
- Glisați afișajul OLED prin orificiul de montare a afișajului în partea de mijloc a carcasei.
- Glisați codificatorul rotativ prin orificiul din partea din mijloc, asigurați-vă că linia anti-rotație se ridică. Montați codificatorul rotativ folosind șaiba și piulița incluse.
- Montați partea superioară a carcasei și închideți carcasa montând cele patru șuruburi M3x25mm de jos.
Pasul 14: Programarea Arduino
AVERTIZARE
Arduino este alimentat direct de la sursa de alimentare stabilă + 5V în loc să utilizeze regulatorul de putere intern Arduino. Prin urmare, nu este sigur să conectați USB atunci când Arduino primește energie de la sursa de alimentare.
Deconectați întotdeauna rețeaua de alimentare de 230VAC înainte de a utiliza conexiunea USB Arduino.
Recuperați programul de temporizare Arduino de pe GitHub.
Acest program folosește Arduino IDE, care poate fi obținut aici.
Programul folosește următoarele biblioteci suplimentare:
SSD1303Ascii
Biblioteca Arduino Wire
Rețineți că biblioteca dusk2dawn este de asemenea utilizată, dar inclusă ca cod din cauza unei modificări a interfeței sale.
Pentru a asigura calculul corect de amurg / zori, trebuie setate longitudinea și latitudinea și fusul orar.
După cum este descris în exemplul dusk2dawn, o modalitate ușoară de a găsi longitudinea și latitudinea pentru orice locație este de a găsi locul în Google Maps, faceți clic dreapta pe locul de pe hartă și selectați „Ce este aici?”. În partea de jos, veți vedea un card cu coordonatele.
Longitudinea și latitudinea sunt codificate în program, în linia 19 și 20 Dusk2Dawn.cpp:
/ * Latitudinea și longitudinea locației dvs. trebuie setate aici.
* * SFAT: O modalitate ușoară de a găsi longitudinea și latitudinea pentru orice locație este * de a găsi locul în Google Maps, faceți clic dreapta pe locul de pe hartă și * selectați „Ce este aici?”. În partea de jos, veți vedea un card cu coordonatele *. * / #define LATITUDE 52.097105; // Utrecht #define LONGTITUDE 5.068294; // Utrecht
Fusul orar este, de asemenea, codificat în linia Dusk2Dawn.cpp 24. În mod implicit, este setat la Olanda (GMT + 1):
/ * Introduceți fusul orar (decalat la GMT) aici.
* / #define TIMEZONE 1
Când programați Arduino pentru prima dată, memoria EEPROM trebuie inițializată. Pentru aceasta, schimbați linia 11 timer.cpp pentru a efectua inițializarea EEPROM:
// treceți la adevărat pentru prima dată de programare
#define INITIALIZE_EEPROM_MEMORY false
Încărcați programul pe Arduino și porniți Arduino.
Dezactivați inițializarea EEPROM și încărcați din nou programul pe Arduino. Cronometrul își va aminti acum setările de timp de comutare la repornire.
Pasul 15: Configurarea orei și a orelor de comutare
Concepte de interacțiune cu utilizatorul:
- Apăsarea scurtă este utilizată pentru a confirma selecțiile. În plus, în ecranul principal al temporizatorului, o apăsare scurtă pornește sau oprește lumina.
- Apăsați lung pentru a accesa meniul din ecranul principal al temporizatorului. Oriunde în meniu, o apăsare lungă va reveni la ecranul principal al temporizatorului.
- ‘>’ Cursus de selecție. Acest cursor indică opțiunea selectată într-un meniu.
Ecranul temporizatorului principal
Ecranul principal al temporizatorului afișează:
Ziua săptămânii Su
Ora curentă 16:00
Starea actuală a temporizatorului și următorul timp de comutare Timer OFF până la 17:12
Zori și amurg Amurg 08:05 Amurg 17:10
Setarea orei corecte
Apăsați lung pentru a intra în meniu. Sunt afișate următoarele opțiuni:
Înapoi Setează ora Programul zilei săptămânii Programul weekendului Opțiuni
Selectați ora setată pentru a seta data și ora ceasului în timp real. Introduceți valorile corecte pentru:
YearMonthDayTime
Cronometrul determină automat ziua săptămânii. Comutarea orei de vară se face, de asemenea, automat. Ora de vară este implementată numai pentru fusul orar european.
Setarea programului temporizator
Temporizatorul are 2 programe, unul pentru zilele săptămânale, unul pentru weekend. Rețineți că vinerea este considerată parte a weekendului, luminile pot rămâne aprinse puțin mai mult.
Fiecare temporizator are un moment de pornire și oprire. Momentul poate fi:
- Ora: ora specificată exact
- Zori: comută în funcție de ora calculată a zorilor
- Amurg: comută în funcție de ora calculată a amurgului
Pentru amurg și zori este posibil să introduceți o valoare de corecție de 59 de minute înainte sau după.
Exemple:
Pentru a aprinde o lumină toată noaptea, selectați porniți la (amurg + 10min), opriți la (zori - 10min)
Pentru a aprinde o lumină seara, selectați pornirea la amurg, opriți la ora 22:30.
Opțiuni
În ecranul de opțiuni poate fi setat un timeout pentru comutarea ecranului.
Când ecranul este oprit, apăsarea butonului codificatorului rotativ va reveni la ecranul principal al temporizatorului.
Recomandat:
Primul ceas al copilului - cu temporizator luminos: 16 pași (cu imagini)
Primul ceas al copilului - cu temporizator luminos: Acest ghid vă arată cum să faceți „fețe” de ceas interschimbabile - care pot conține imagini ale copilului dvs., fotografii de familie / animale de companie - sau orice altceva - pe care ați crezut că ar fi frumos să le schimbați periodic. Pur și simplu fixați perspexul clar peste ar
Ceas WiFi, temporizator și stație meteo, controlat de Blynk: 5 pași (cu imagini)
Ceas WiFi, temporizator și stație meteo, controlat de Blynk: Acesta este un ceas digital Morphing (datorită lui Hari Wiguna pentru conceptul și codul morphing), este, de asemenea, un ceas analogic, o stație de raportare a vremii și un temporizator de bucătărie. Este controlat în întregime de un Aplicația Blynk pe smartphone-ul dvs. prin WiFi. Aplicația vă permite
Cronometru digital all in one (ceas, temporizator, alarmă, temperatură): 10 pași (cu imagini)
Chronometer digital All in One (Ceas, Cronometru, Alarmă, Temperatură): Plănuiam să facem un Cronometru pentru o altă competiție, dar ulterior am implementat și un ceas (fără RTC). Pe măsură ce am intrat în programare, ne-am interesat să aplicăm mai multe funcționalități dispozitivului și am ajuns să adăugăm DS3231 RTC, ca
Ceas / temporizator / termometru Nixie cu 6 cifre: 4 pași
Ceas / Temporizator / Termometru Nixie cu 6 cifre: Acest proiect este de aproximativ un ceas precis cu 6 cifre, cu tuburi NIXIE. Cu un selector pe care îl puteți alege între modul TIME (și data), modul TIMER (cu precizie de 0,01 sec) și modul TERMOMETRU .Un modul RTC deține data și ora printr-un ba intern
Microcontroler AVR. LED-uri clipește folosind temporizator. Temporizatoare se întrerupe. Mod CTC temporizator: 6 pași
Microcontroler AVR. LED-uri clipește folosind temporizator. Temporizatoare se întrerupe. Timer CTC Mode: Bună ziua tuturor! Timers este un concept important în domeniul electronicii. Fiecare componentă electronică funcționează pe o bază de timp. Această bază de timp ajută la menținerea tuturor lucrărilor sincronizate. Toate microcontrolerele funcționează la o anumită frecvență de ceas predefinită