Sommario:
- Passaggio 1: elenco delle parti e strumenti
- Passaggio 2: preparare il display OLED e l'orologio in tempo reale
- Passaggio 3: preparare l'encoder rotativo
- Passaggio 4: allegato
- Passaggio 5: disabilita il LED di alimentazione di Arduino (opzionale)
- Passaggio 6: alimentatore + relè a stato solido
- Passaggio 7: Arduino Nano + alimentatore + relè a stato solido
- Passaggio 8: Arduino Nano + Orologio in tempo reale
- Passaggio 9: collegare il display OLED
- Passaggio 10: codificatore rotante
- Passaggio 11: installazione nell'armadio
- Passaggio 12: collegamento alla rete / luce da accendere
- Passaggio 13: finitura dell'involucro
- Passaggio 14: programmazione di Arduino
- Passaggio 15: impostazione dell'ora e dei tempi di commutazione
Video: Arduino Dusk/Dawn Clock Timer: 15 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
Riepilogo:
Questo timer basato su Arduino può accendere una luce da 220 V al tramonto, all'alba o all'ora specificata.
Introduzione:
Alcune luci di casa mia si accendono automaticamente al tramonto, fino a un'ora prestabilita o fino all'alba (tutta la notte).
La posizione delle luci non consente l'uso di un sensore di luce. I normali timer dell'orologio disponibili si accendono a un'ora specifica. Per accendersi al tramonto è quindi necessario regolare regolarmente l'impostazione del programma orario.
Come bella sfida, ho deciso di costruire invece un timer autonomo basato su Arduino personalizzato. Utilizza un orologio in tempo reale e la libreria Dusk2Dawn per determinare l'ora in cui le luci devono essere accese o spente. La custodia per questo timer è stampata in 3D e può essere trovata su Thingiverse. Il codice Arduino per questo progetto può essere trovato su GitHub.
Nella creazione di questo timer ho tratto ispirazione da molti progetti e circuiti su Internet. Ringrazio tutti i contributori non espressamente citati.
Per motivi di leggibilità, nei passaggi sono mostrati schemi parziali, dove necessario, invece di uno schema elettrico completo.
Soluzioni alternative:
Invece di un timer autonomo, ci sono molte soluzioni in cui un sistema di automazione domestica intelligente guida le luci. Il mio obiettivo era avere una soluzione indipendente, che non dipendesse dalla connettività WIFI (o altro).
Restrizioni:
Il codice fornito con questo progetto includeva un'implementazione delle modifiche all'ora legale basata sul sistema europeo di ora legale.
Passaggio 1: elenco delle parti e strumenti
Parti:
Costo totale delle parti (esclusa la stampa 3d) circa € 30, -.
- Arduino Nano V3 (compatibile) senza header
- Alimentazione 5V 0,6A (34 x 20 x 15 mm)
- Relè allo stato solido 5V - Attivo basso - 2A 230VAC
- Orologio in tempo reale DS3231 (piccolo)
- Display OLED da 0,96" SPI 128*64 pixel
- Encoder rotativo - EC11 - 20mm
- Manopola 6mm albero 15mm * 17mm
- Circuito stampato breadboard,
- 4* viti M3x25mm
- Custodia stampata in 3D
- Guaina termoretraibile
- fili
- Morsettiera a vite (per collegare i fili neutri)
Strumenti richiesti:
- Saldatore
- Filo di saldatura
- Pompa dissaldante
- Spelafili
- Taglierine
- Stampante 3D (per stampare la custodia)
- Piccoli attrezzi assortiti
AVVERTIMENTO
Questo circuito funziona a 230 V CA e se non sei abituato a lavorare con la tensione di rete o non hai ampia esperienza nel lavorare con la tensione di rete da 230 V CA, stai lontano da questo progetto
Non mi assumo alcuna responsabilità per eventuali perdite o danni derivanti direttamente o come conseguenza del seguire questo progetto
Si consiglia sempre di prestare la dovuta attenzione e precauzione mentre si lavora con la rete CA
Passaggio 2: preparare il display OLED e l'orologio in tempo reale
La custodia stampata in 3D è progettata per dimensioni minime. Di conseguenza, le intestazioni del display OLED e dell'orologio in tempo reale devono essere rimosse.
In preparazione per il passaggio successivo, eliminare ogni residuo di saldatura dai fori con la pompa dissaldante.
Passaggio 3: preparare l'encoder rotativo
L'encoder rotativo ha connettori fragili. Per evitare danni, montare un pezzo di circuito stampato sull'encoder.
Nella foto è già predisposto anche il collegamento a terra (in alto a destra e al centro in basso).
Nota: assicurarsi che l'encoder rotativo con circuito stampato si inserisca nella custodia senza toccare Arduino. Potrebbe essere necessario molare il circuito stampato per ottenere una perfetta aderenza.
Passaggio 4: allegato
Stampa le tre parti della custodia con una stampante 3D. Fare riferimento alle istruzioni su Thingiverse.
Passaggio 5: disabilita il LED di alimentazione di Arduino (opzionale)
Per evitare di avere un bagliore verde nel timer, il LED di alimentazione dell'Arduino può essere disabilitato.
Si noti che questa modifica è facoltativa.
La modifica all'Arduino Nano consiste nel rimuovere la resistenza accanto al led di alimentazione (vedi cerchio rosso in figura).
Passaggio 6: alimentatore + relè a stato solido
In questa fase l'alimentatore e il relè a stato solido vengono combinati e montati nella parte inferiore della custodia.
I collegamenti tra l'alimentatore e il relè sono realizzati nella parte inferiore di questi componenti. La morsettiera a vite del relè verrà utilizzata per il collegamento ad Arduino.
Nota: quando si effettuano i collegamenti, assicurarsi che i fori di montaggio del relè a stato solido siano mantenuti liberi.
- Saldare un cavo di collegamento tra il relè a stato solido A1 a una delle connessioni CA dell'alimentatore
- Saldare un filo all'altra connessione CA dell'alimentatore (questo sarà collegato alla morsettiera a vite neutra al punto 7)
- Saldare un filo tra l'alimentatore -Vo al relè DC-
- Saldare un filo per collegare l'alimentatore +Vo al relè DC+
Nota: potrebbe essere necessario accorciare i cavi dell'alimentatore e del relè per poterlo inserire nella custodia.
Passaggio 7: Arduino Nano + alimentatore + relè a stato solido
In questo passaggio, Arduino Nano è collegato all'alimentatore e al relè a stato solido.
- Tagliare due fili di circa 70 mm di lunghezza. Striscia 30 mm di isolamento da un lato e 4 mm dall'altro.
- Saldare il lato con isolamento spelato di 30 mm all'Arduino +5 V e GND, con il filo che si attacca
- Tagliare due tubi termoretraibili di 20 mm di lunghezza e montarli sulla parte spelata di 25 mm. Questo isola i fili fino al collegamento con la morsettiera a vite di montaggio DC+ e DC- del relè a stato solido.
- Notare che i fili per GND e +5V devono incrociarsi per collegarsi correttamente alla morsettiera a vite del relè.
- Tagliare un filo di circa 40 mm di lunghezza e spelare 4 mm di isolamento di entrambe le estremità. Saldare un lato alla connessione A2 sul RETRO dell'Arduino e collegare l'altro lato alla connessione CH1 della morsettiera a vite per montaggio a stato solido.
AVVERTIMENTO
L'Arduino è alimentato direttamente dall'alimentatore stabile +5V invece di utilizzare il regolatore di alimentazione interno di Arduino. Pertanto, non è sicuro collegare l'USB quando Arduino riceve alimentazione dall'alimentatore.
Scollegare sempre la rete 230VAC prima di utilizzare la connessione USB Arduino.
Passaggio 8: Arduino Nano + Orologio in tempo reale
In questo passaggio l'orologio in tempo reale è collegato ad Arduino, in parte utilizzando i cavi preparati nel passaggio precedente.
- Saldare il filo proveniente da Arduino GND (collegato anche a DC- del relè) a '–' dell'orologio in tempo reale.
- Saldare il filo proveniente da Arduino +5V (collegato anche a DC+ del relè) al '+' dell'orologio in tempo reale.
- Tagliare due fili di circa 40 mm di lunghezza e spelare 4 mm di isolamento di entrambe le estremità.
- Saldare un filo tra Arduino A4 e l'orologio in tempo reale D (SDA).
- Saldare un filo tra Arduino A5 e l'orologio in tempo reale C (SCL).
- Modellare i fili dell'orologio in tempo reale per assicurarsi che non interferiscano con l'encoder rotante. Per questo, i fili devono essere nella parte inferiore del contenitore.
Passaggio 9: collegare il display OLED
In questo passaggio il display OLED SPI viene aggiunto ad Arduino.
- Tagliare 2 fili di 65 mm di lunghezza e spelare 4 mm di isolamento di entrambe le estremità.
- Saldare un filo alla connessione GND del display OLED. Saldare questo filo al filo isolato del tubo termoretraibile proveniente da Arduino GND (fare riferimento al passaggio 4) e collegare entrambi i fili alla morsettiera a vite con montaggio in CC del relè a stato solido.
- Saldare un filo alla connessione VCC del display OLED. Saldare questo filo al filo isolato del tubo termoretraibile proveniente da Arduino +5V (fare riferimento al passaggio 4) e collegare entrambi i fili alla morsettiera a vite di montaggio DC+ del relè a stato solido.
- Tagliare 5 fili di 65 mm di lunghezza e spellare 4 mm di isolamento di entrambe le estremità.
- Saldare un filo per collegare D0 (CLK) ad Arduino D10
- Saldare un filo per collegare D1 (MOSI / DATA) ad Arduino D9
- Saldare un filo per collegare RES (RT) ad Arduino D8
- Saldare un filo per collegare DC ad Arduino D11
- Saldare un filo per collegare CS ad Arduino D12
Nota: l'ordine dei cavi del display non è logico. Questo è il risultato del primo utilizzo dell'esempio Adafruit e quindi della modifica delle connessioni perché l'utilizzo di D13 provoca sempre un LED rosso sull'Arduino.
Alternativa
È possibile utilizzare un ordine "normale" per le connessioni SPI. Per questo, la definizione dell'uscita digitale del programma Arduino in oledcontrol.cpp deve essere regolata di conseguenza:
// Utilizzo del software SPI
// definizioni dei pin
#define CS_PIN 12
#define RST_PIN 8
#define DC_PIN 11
#define MOSI_PIN 9
#define CLK_PIN 10
Passaggio 10: codificatore rotante
Lo schema mostra le connessioni dell'Arduino all'encoder rotativo (encoder visto dall'alto).
- Tagliare 4 fili di 45 mm e spellare 4 mm di isolamento di entrambe le estremità.
- Collega Arduino GND ai connettori in alto a destra e in basso al centro dell'encoder
- Collega Arduino D2 in basso a sinistra dell'encoder
- Collega Arduino D3 in basso a destra dell'encoder
- Collega Arduino D4 in alto a sinistra dell'encoder
Passaggio 11: installazione nell'armadio
Installare tutta l'elettronica nella parte inferiore della custodia:
- Fai scorrere Arduino sullo slot verticale
- Fai scorrere l'orologio in tempo reale nello scomparto inferiore
- Far scorrere l'alimentatore e il relè nel vano superiore, assicurarsi che il relè si trovi sui suoi supporti.
Passaggio 12: collegamento alla rete / luce da accendere
AVVERTIMENTO
Assicurarsi di prestare la dovuta attenzione e precauzione mentre si lavora con la rete CA, assicurarsi che la rete CA sia scollegata
Non mi assumo alcuna responsabilità per eventuali perdite o danni derivanti direttamente o come conseguenza del seguire questo progetto
- Collegare la fase di rete CA alla morsettiera a vite A1 (sinistra) del relè.
- Collegare la fase della luce da commutare alla morsettiera a vite B1 (destra) del relè.
- Utilizzare una morsettiera a vite separata per collegare il filo neutro della rete CA, il filo neutro della luce e il filo neutro dell'alimentatore.
- Per fissare la trazione, montare una fascetta avvolgente attorno a ciascuno dei cavi di alimentazione.
Passaggio 13: finitura dell'involucro
A questo punto il montaggio nell'armadio è completato
- Fai scorrere il display OLED attraverso il foro di montaggio del display nella parte centrale della custodia.
- Far scorrere il codificatore rotante attraverso il foro nella parte centrale, assicurarsi che l'antirotazione sia allineato. Montare l'encoder rotativo utilizzando la rondella e il dado inclusi.
- Montare la parte superiore della custodia e chiudere la custodia montando le quattro viti M3x25 mm dal basso.
Passaggio 14: programmazione di Arduino
AVVERTIMENTO
L'Arduino è alimentato direttamente dall'alimentatore stabile +5V invece di utilizzare il regolatore di alimentazione interno di Arduino. Pertanto, non è sicuro collegare l'USB quando Arduino riceve alimentazione dall'alimentatore.
Scollegare sempre la rete 230VAC prima di utilizzare la connessione USB Arduino.
Recupera il programma timer Arduino da GitHub.
Questo programma utilizza l'IDE Arduino, che può essere ottenuto qui.
Il programma utilizza le seguenti librerie aggiuntive:
SSD1303Ascii
Libreria Arduino Wire
Nota che viene utilizzata anche la libreria crepuscolo2dawn, ma inclusa come codice a causa di un cambiamento nella sua interfaccia.
Per garantire un calcolo corretto del crepuscolo/alba, è necessario impostare la longitudine, la latitudine e il fuso orario.
Come descritto nell'esempio crepuscolo2dawn, un modo semplice per trovare la longitudine e la latitudine di qualsiasi posizione è trovare il punto in Google Maps, fare clic con il pulsante destro del mouse sul luogo sulla mappa e selezionare "Cosa c'è qui?". In basso vedrai una scheda con le coordinate.
Longitudine e latitudine sono hardcoded nel programma, nelle righe 19 e 20 di Dusk2Dawn.cpp:
/* La latitudine e la longitudine della tua posizione devono essere impostate qui.
* * SUGGERIMENTO: un modo semplice per trovare la longitudine e la latitudine di qualsiasi località è * trovare il punto in Google Maps, fare clic con il pulsante destro del mouse sul luogo sulla mappa e * selezionare "Cosa c'è qui?". In fondo, vedrai una scheda con le * coordinate. */ #define LATITUDE 52.097105; // Utrecht #define LONGTITUDE 5.068294; // Utrecht
Il fuso orario è anche hardcoded nella riga 24 di Dusk2Dawn.cpp. Per impostazione predefinita è impostato su Paesi Bassi (GMT + 1):
/* Inserisci qui il tuo fuso orario (offset rispetto a GMT).
*/ #define FUSO ORARIO 1
Quando si programma Arduino per la prima volta, è necessario inizializzare la memoria EEPROM. Per questo, cambia la riga 11 di timer.cpp per eseguire l'inizializzazione della EEPROM:
// cambia in true per la prima programmazione
#define INITIALIZE_EEPROM_MEMORY false
Carica il programma su Arduino e avvia Arduino.
Disabilita l'inizializzazione della EEPROM e carica nuovamente il programma su Arduino. Il timer ora ricorderà le impostazioni del tempo di commutazione al riavvio.
Passaggio 15: impostazione dell'ora e dei tempi di commutazione
Concetti di interazione dell'utente:
- La pressione breve viene utilizzata per confermare le selezioni. Inoltre, nella schermata principale del timer, una breve pressione accende o spegne la luce.
- La pressione lunga viene utilizzata per accedere al menu dalla schermata principale del timer. In qualsiasi punto del menu, una pressione prolungata tornerà alla schermata principale del timer.
- '>' Cursus di selezione. Questo cursore indica l'opzione selezionata in un menu.
Schermata principale del timer
La schermata principale del timer mostra:
Giorno della settimana Su
Ora attuale 16:00
Stato attuale del timer e ora di commutazione successiva Timer OFF fino alle 17:12
Ora dell'alba e del tramonto Alba 08:05 Tramonto 17:10
Impostazione dell'ora corretta
Premere a lungo per accedere al menu. Vengono visualizzate le seguenti opzioni:
IndietroImposta oraProgramma settimanaleProgramma week-endOpzioni
Selezionare Imposta ora per impostare la data e l'ora dell'orologio in tempo reale. Inserisci i valori corretti per:
AnnoMeseGiornoOra
Il timer determina automaticamente il giorno della settimana. Anche il passaggio all'ora legale viene eseguito automaticamente. L'ora legale è implementata solo per il fuso orario europeo.
Impostazione del programma orario
Il timer ha 2 programmi, uno per i giorni della settimana, uno per il fine settimana. Nota che il venerdì è considerato parte del fine settimana, le luci possono rimanere accese un po' più a lungo.
Ogni timer ha un momento di accensione e spegnimento. Il momento può essere:
- Ora: ora esatta specificata
- Alba: cambia in base all'ora calcolata dell'alba
- Crepuscolo: cambia in base all'ora calcolata del crepuscolo
Per il tramonto e l'alba è possibile inserire un valore di correzione di 59 minuti prima o dopo.
Esempi:
Per accendere una luce tutta la notte, selezionare accensione alle (tramonto + 10min), spegnimento alle (alba - 10min)
Per accendere una luce la sera, seleziona accendi al tramonto, spegni alle ore: 22:30.
Opzioni
Nella schermata delle opzioni è possibile impostare un timeout per la commutazione della schermata.
Quando lo schermo è spento, premendo la manopola del codificatore rotante si tornerà alla schermata principale del timer.
Consigliato:
Timer con Arduino e codificatore rotativo: 5 passaggi
Timer Con Arduino e Rotary Encoder: Il timer è uno strumento spesso utilizzato sia nelle attività industriali che domestiche. Questo assemblaggio è economico e di facile realizzazione. Inoltre è molto versatile, potendo caricare un programma scelto in base alle esigenze. Ci sono diversi programmi scritti da me, per Ardui
Motore passo-passo con infradito D e timer 555; la prima parte del circuito il timer 555: 3 passaggi
Motore passo-passo con infradito D e timer 555; la prima parte del circuito il timer 555: il motore passo-passo è un motore a corrente continua che si muove a passi discreti. Viene spesso utilizzato nelle stampanti e persino nella robotica. Spiegherò questo circuito in passaggi. La prima parte del circuito è un 555 Timer. È la prima immagine (vedi sopra) con un chip 555 con
L'Arduino Hang Guardian - Tutorial Arduino Watchdog Timer: 6 passaggi
L'Arduino Hang Guardian - Tutorial Arduino Watchdog Timer: Ciao a tutti, succede a tutti noi. Costruisci un progetto, connetti con entusiasmo tutti i sensori e, all'improvviso, Arduino si blocca e nessun input viene elaborato. "Cosa sta succedendo?", chiederai e inizierai a scavare nel tuo codice, solo per ri
Microcontrollore AVR. LED lampeggiatore utilizzando il timer. Interruzioni timer. Modalità CTC timer: 6 passaggi
Microcontrollore AVR. LED lampeggiatore utilizzando il timer. Interruzioni timer. Timer CTC Mode: Ciao a tutti! I timer sono un concetto importante nel campo dell'elettronica. Ogni componente elettronico funziona in base ai tempi. Questa base dei tempi aiuta a mantenere tutto il lavoro sincronizzato. Tutti i microcontrollori funzionano a una frequenza di clock predefinita, il
NE555 Timer - Configurazione del timer NE555 in una configurazione astabile: 7 passaggi
NE555 Timer | Configurazione del timer NE555 in una configurazione astabile: il timer NE555 è uno dei circuiti integrati più comunemente utilizzati nel mondo dell'elettronica. È sotto forma di DIP 8, il che significa che dispone di 8 pin