Sommario:

Orologio delle previsioni del tempo con Old Alarm e Arduino: 13 passaggi (con immagini)
Orologio delle previsioni del tempo con Old Alarm e Arduino: 13 passaggi (con immagini)

Video: Orologio delle previsioni del tempo con Old Alarm e Arduino: 13 passaggi (con immagini)

Video: Orologio delle previsioni del tempo con Old Alarm e Arduino: 13 passaggi (con immagini)
Video: ELF/EMBARC Bronchiectasis conference 2023 with subtitles 2024, Luglio
Anonim
Orologio delle previsioni del tempo con Old Alarm e Arduino
Orologio delle previsioni del tempo con Old Alarm e Arduino
Orologio delle previsioni del tempo con Old Alarm e Arduino
Orologio delle previsioni del tempo con Old Alarm e Arduino

Avevo una sveglia rotta in giro e mi è venuta l'idea di convertirla in orologio e stazione di previsioni del tempo.

Per questo progetto avrai bisogno di:

  • Vecchia sveglia circolare
  • Arduino Nano
  • Modulo sensore BME280 (temperatura, umidità, pressione)
  • Modulo display LCD di Nokia 5110
  • DS1307 Orologio RTC
  • TP4056 Caricabatteria al litio
  • Vecchia batteria agli ioni di litio recuperata dal cellulare
  • Piccolo modulo booster da 3,7 V a 5 V
  • Resistenza dipendente dalla luce (LDR - esposimetro)
  • Buzzer (usato recuperato dal vecchio PC)
  • 3 pulsanti
  • Un mucchio di resistori (2x10k, 270 ohm) e un transistor (2N2222A o simili)
  • Qualche tubo termoretraibile largo
  • PCB di scarto da utilizzare come decorazione della piastra frontale
  • Cavo di prolunga Micro-USB (entrambi i lati femmina e maschio sono Micro-USB)
  • Scheda prototipo 2x8cm e alcuni fili

Passaggio 1: smontare tutto

Smonta tutto
Smonta tutto

Per prima cosa ho smontato il vecchio orologio. Campane, motore, meccanismo dell'orologio rotto…

Passaggio 2: pulsanti per le impostazioni digitali

Pulsanti per le impostazioni digitali
Pulsanti per le impostazioni digitali
Pulsanti per le impostazioni digitali
Pulsanti per le impostazioni digitali
Pulsanti per le impostazioni digitali
Pulsanti per le impostazioni digitali
Pulsanti per le impostazioni digitali
Pulsanti per le impostazioni digitali

Dato che il nuovo orologio sarà completamente digitale con un mini computer all'interno, ho aggiunto 3 semplici pulsanti di bell'aspetto sul lato.

Usando un pezzo di alluminio di scarto ho ritagliato la sovrapposizione per creare un'etichetta. Le lettere per le etichette sono state create utilizzando i punzoni per lettere e un pennarello nero.

Passaggio 3: condensatore per il motore

Condensatore per il motore
Condensatore per il motore

Terrò le vecchie campane per alimentare l'allarme con il motore. Il vecchio meccanismo dell'orologio rotto aveva un condensatore ceramico con l'etichetta 104. L'ho rimosso dal circuito stampato e l'ho saldato direttamente al motore: questo aiuterà a prevenire picchi di corrente quando si accende il motore durante l'allarme. È anche importante notare che il motore sarà controllato tramite transistor, ma ne parleremo più avanti.

Passaggio 4: nuovo volto per l'orologio

Nuova faccia per l'orologio
Nuova faccia per l'orologio
Nuova faccia per l'orologio
Nuova faccia per l'orologio

Dato che ho deciso di creare una nuova faccia per l'orologio, ho preso un circuito dalla mia pila di rifiuti e ho usato una pistola termica per rimuovere rapidamente tutti i componenti. Il foro al centro è realizzato per lo schermo digitale del nuovo orologio.

Passaggio 5: display digitale dal vecchio telefono cellulare

Display digitale dal vecchio telefono cellulare
Display digitale dal vecchio telefono cellulare
Display digitale dal vecchio telefono cellulare
Display digitale dal vecchio telefono cellulare

Per questo progetto ho deciso di utilizzare uno schermo LCD del vecchio telefono cellulare Nokia 5110. Questi schermi sono ampiamente disponibili per la vendita come modulo, assorbono pochissima energia e ci sono buone librerie per Arduino. Se stai acquistando un nuovo modulo con schermo 5110, stai salvando il pianeta perché tutti i nuovi moduli vengono creati da telefoni 5110, 3110 e 3210 recuperati!

Passaggio 6: collegamento dei circuiti

Collegamento dei circuiti
Collegamento dei circuiti
Collegamento dei circuiti
Collegamento dei circuiti
Collegamento dei circuiti
Collegamento dei circuiti

Potresti aver già intuito che stavo pianificando di utilizzare la scheda Arduino per controllare questo orologio. Il progetto è facilmente ripetibile anche per gli appassionati principianti di Arduino perché non ho creato i miei circuiti stampati. È una scheda Arduino Nano con moduli collegati: sensore di temperatura, pressione e umidità BME280, orologio RTC DS1307, caricabatterie al litio TP4056, piccolo modulo booster da 3,7 V a 5 V, resistenza dipendente dalla luce (LDR - misuratore di luce) e un cicalino (preso dal vecchio PC).

Dai un'occhiata anche agli schizzi: mostrano tutte le connessioni. Penso che tutto sia molto facile da leggere e da capire, ma se hai domande basta chiedere nei commenti qui sotto.

Qualche nota sulla configurazione:

  • Il motore è collegato direttamente dalla batteria tramite il transistor. Arduino controlla il transistor tramite resistore e pin PWM D5.
  • I pin D7-12 sono utilizzati per il connettore LCD. La terra e il VCC sono collegati alla guida sulla scheda di giunzione.
  • LDR è stato installato sul quadrante dell'orologio e il resistore + 3 fili in uscita sono stati saldati proprio sul retro del quadrante dell'orologio.
  • Per la connessione del pulsante ho usato la funzione PULLUP interna all'interno di Arduino. Il pulsante Menu è collegato all'interrupt e solo in seguito mi sono reso conto che è possibile utilizzare anche il PULLUP interno anche per l'interrupt. L'interruzione per il pulsante Menu è necessaria in modo che il codice non esegua continuamente la scansione dello stato dei pulsanti.
  • L'orologio monitorerà e visualizzerà anche lo stato della batteria in modo che la batteria sia collegata direttamente al pin A0. La tensione della batteria non è mai superiore a 4,2 V, quindi è sicuro collegare la batteria direttamente al pin analogico di Arduino.
  • Il cicalino è collegato direttamente al pin PWM D6. Sebbene questa non sia una buona pratica, l'ho fatta franca perché Arduino Nano potrebbe gestire specifiche più elevate di quelle dichiarate e anche perché il cicalino non funzionerà continuamente. La stessa configurazione brucerebbe facilmente i pin sulle schede ESP, quindi in questi casi consiglio di utilizzare il controllo del transistor.
  • L'orologio aveva già un interruttore quindi ho deciso di usarlo. Sembra naturale sul retro.

Passaggio 7: scheda di giunzione per collegamenti facili

Scheda di giunzione per collegamenti facili
Scheda di giunzione per collegamenti facili
Scheda di giunzione per collegamenti facili
Scheda di giunzione per collegamenti facili

Tutti i moduli richiedono connessioni positive e di terra, quindi ho deciso di utilizzare una scheda prototipo da 2x8 cm e delle rotaie 5V e Ground saldate. Ho anche realizzato un piccolo binario I2C anche lì poiché avevo diversi moduli che utilizzavano l'interfaccia I2C.

Dall'altro lato ho saldato dei pin standard in modo da poter collegare e scollegare i moduli quando richiesto.

Alcuni dei componenti aggiuntivi sono stati anche saldati lì come transistor e resistore per il controllo del motore e un resistore per il pulsante Menu che utilizza Interrupt. Ho mostrato gli schemi nella sezione precedente.

btw Riesci a vedere il sensore LDR già installato sul quadrante dell'orologio nella prima immagine?

Passaggio 8: impostazione dell'alimentazione

Impostazione dell'alimentazione
Impostazione dell'alimentazione

Ho usato una vecchia batteria agli ioni di litio del mio cellulare per alimentare questo orologio. Di solito le batterie del telefono cellulare che vengono sostituite hanno ancora una buona capacità (almeno la metà di quelle che erano nuove). Il loro vantaggio è che hanno un circuito di protezione contro le scariche integrato e sono anche molto sottili, quindi possono essere utilizzati in scenari di spazi ridotti.

Per collegare la batteria è sufficiente saldare i fili ai pin + e - della batteria. Non preoccuparti, non danneggerai la cella perché c'è un controller e uno spazio vuoto tra i pin e le sostanze chimiche della cella.

In questa immagine puoi vedere la batteria e anche il controller di carica TP4056 e il booster 5V collegati tra loro e alla batteria. Ho usato del tubo termoretraibile per rendere il tutto isolato e compatto.

Passaggio 9: Micro USB per la ricarica e l'aggiornamento del firmware

Micro USB per la ricarica e l'aggiornamento del firmware
Micro USB per la ricarica e l'aggiornamento del firmware

Una volta saldato il tutto, ho incollato il cicalino e il sensore di temperatura/pressione/umidità sul pannello posteriore. Si adattavano perfettamente agli slot esistenti dei vecchi controlli del quadrante dell'orologio.

Era giunto il momento di installare la porta Micro USB sul retro. Perché Micro USB se Nano utilizza Mini USB? Semplicemente perché in casa, la maggior parte dei cavi USB proviene dai cellulari e sarebbe conveniente se l'orologio fosse in grado di reggere anche quello.

Dato che volevo usarlo sia per caricare che per aggiornare le funzioni dell'orologio e della stazione meteorologica, ho rimosso il cavo USB, instradato i cavi di alimentazione attraverso il caricabatterie TP4056 e i cavi Data+/Data- direttamente alla presa USB di Arduino Nano. Puoi vederlo nello schema che ho mostrato nelle sezioni precedenti.

Passaggio 10: assemblaggio finale

Assemblea finale
Assemblea finale
Assemblea finale
Assemblea finale
Assemblea finale
Assemblea finale

Era giunto il momento di rimettere tutto nell'orologio originale. Ho usato un tubo termoretraibile per isolare componenti e moduli. Anche l'Arduino era avvolto in un tubo termoretraibile.

Passa il mouse sulla prima foto per vedere dove è stato posizionato ciascun componente.

Passaggio 11: il codice

Come puoi vedere, l'orologio è completamente imballato all'interno. Ciò ha permesso di creare qualcosa di più sofisticato del vecchio orologio che avevo, dato che ovviamente ci sono alcune abilità di programmazione. Ho scritto il codice iniziale ma ho chiesto al mio amico di intervenire e aiutarmi.

Finora, oltre all'orologio stesso, queste sono le funzioni che questo progetto sta già supportando:

  • Visualizzazione dell'ora e della data (oltre che dell'ora e dell'attivazione della sveglia nella stessa schermata)
  • Lo schermo si illumina in condizioni di oscurità o quando viene rilevato un movimento (in base ai cambiamenti di luce)
  • Previsioni del tempo (soleggiato, nuvoloso, piovoso)
  • Visualizzazione di temperatura, pressione e umidità (per l'umidità indicherà se è troppo secca)
  • Menu per le impostazioni: sveglia, modifica dell'ora, abilitazione/disabilitazione della visualizzazione della data, abilitazione/disabilitazione delle notifiche sonore di cambio meteo e passaggio tra unità imperiali e metriche
  • Impostazioni sveglia - on/off, impostazione dell'ora, impostazione della melodia e/o campane per le notifiche

Ultimo codice:

Il codice verrà aggiornato in futuro con nuove funzionalità, quindi assicurati di controllare gli aggiornamenti del firmware:-)

Se sei nuovo nel mondo Arduino, questi sono i passaggi che consiglierei di fare:

  • Installa il driver USB per la tua scheda (es. CH340)
  • Installa Arduino IDE
  • Installa le librerie utilizzate in questo progetto
  • Scarica da GitHub e carica l'ultimo codice del progetto sull'orologio utilizzando il cavo Micro USB (puoi usarne uno dal telefono cellulare)

L'algoritmo di previsione è il seguente:

Arduino Nano riceve nuovi dati dal sensore BME280 ogni 12 minuti. Il ciclo di misurazione è di 3 ore. Dopo 3 ore l'intervallo di monitoraggio della pressione (valore massimo e minimo durante 3 ore) si sposta rispetto ai valori medi durante l'intervallo attuale e al valore di pressione attuale. Ogni ora viene salvata la direzione della variazione di pressione con il valore di pressione attuale. Le unità kPa vengono utilizzate per il calcolo delle previsioni.

A causa delle limitazioni di memoria di Nano, l'algoritmo di previsione ha dovuto essere semplificato. Ma nonostante le semplificazioni, è in grado di prevedere le precipitazioni nelle prossime 12-24 ore anche se la previsione è ora più pessimistica: il valore predefinito è "Tempo nuvoloso".

"Sunny Weather" - il valore attuale della pressione è superiore alla norma di 7 punti, la pressione non sta diminuendo e la differenza tra i valori minimo e massimo durante le ultime 3 ore non è superiore a 2 punti.

Possibile precipitazione "Tempo piovoso" - la pressione attuale è 15 punti inferiore alla norma e la differenza tra i valori minimo e massimo è superiore a 2 punti OPPURE La pressione sta diminuendo e la differenza tra il valore attuale e la norma è 3 - 30 punti.

Per migliorare la qualità delle previsioni si consiglia di modificare la propria "altitudine" nel file di codice principale. Puoi ottenere la tua altitudine ad esempio qui:

Passaggio 12: video passo passo

Image
Image

Se è stato difficile seguire ciò che ho fatto sopra, ecco anche una versione video con tutti i passaggi mostrati.

Passaggio 13: parole finali

Nel complesso, dal mio punto di vista, il livello di difficoltà di questo progetto non è elevato e chiunque potrebbe farcela. Se non hai un vecchio orologio, puoi trovarne uno a buon mercato in un mercatino delle pulci locale.

Tutti i componenti sono a basso prezzo e sono disponibili su Sparkfun/Aliexpress/eBay/Amazon.

Spero che questo tutorial sia stato interessante per te e ti sarei grato se potessi supportare il mio primo concorso Instructable in the Clock.

Concorso di orologi
Concorso di orologi
Concorso di orologi
Concorso di orologi

Secondo classificato al concorso degli orologi

Consigliato: