Sommario:

ESP32 WordClock a scorrimento su matrice LED: 5 passaggi (con immagini)
ESP32 WordClock a scorrimento su matrice LED: 5 passaggi (con immagini)

Video: ESP32 WordClock a scorrimento su matrice LED: 5 passaggi (con immagini)

Video: ESP32 WordClock a scorrimento su matrice LED: 5 passaggi (con immagini)
Video: LED musical alarm clock on a breadboard - Arduino like circuit, custom electronics project 2024, Dicembre
Anonim
Image
Image

In questo progetto creo un WordClock a scorrimento con ESP32, LED Matrix e una scatola di sigari.

Un WordClock è un orologio che scandisce l'ora anziché limitarsi a stamparla sullo schermo o avere le mani che puoi leggere. Questo orologio ti dirà che sono le 3 e 10 del pomeriggio o mezzogiorno. L'ho persino programmato per usare Prevening (da Big Bang Theory) il nome per l'ambiguo periodo di tempo tra il pomeriggio e la sera. Inizia alle 16:00.

L'ESP32 è fantastico, sono così divertenti e così poco costosi, se ami programmare Arduino rimarrai davvero stupito da ciò che un ESP32 può fare per meno di $ 10. Usano l'IDE Arduino e sono facili da programmare. Dimostrerò come farlo in questo istruibile.

Forniture

  • ESP32 - circa $ 10 su Amazon
  • LED Matrix (max7219) (e cavi) - $ 9 amazon
  • Scatola di sigari
  • Cavo di alimentazione USB
  • Stampante 3D opzionale per supporto esp32

Passaggio 1: configura il tuo IDE Arduino per supportare ESP32

Ottieni l'IDE Arduino:

  • In un browser vai su
  • Fare clic su Software, quindi su Download per ottenere ARDUINO 1.8.12
Immagine
Immagine

Aggiungi il supporto ESP32 al tuo IDE Arduino:

  • Avvia l'IDE Arduino
  • Fare clic sul menu File, quindi su Preferenze.

Una volta in "Preferenze" aggiungi il supporto del produttore aggiungendo la seguente riga al "Gestione schede aggiuntive"

Immagine
Immagine

dl.espressif.com/dl/package_esp32_index.js

Questo ci darà l'accesso per aggiungere la scheda all'IDE

Vai al menu Strumenti e poi Schede e vai al gestore della scheda

Immagine
Immagine

Quindi cerca "ESP" e aggiungi il pacchetto di Expressif.

Immagine
Immagine

Infine vogliamo tornare al menu "Strumenti", quindi di nuovo "Scheda" e scorrere verso il basso per trovare il tuo dispositivo ESP32.

Il mio è un "Modulo Wrover ESP32"

Immagine
Immagine

Passaggio 2: collegare la matrice LED all'ESP32

Immagine
Immagine

La matrice LED è composta da quattro blocchi di LED 8x8 e utilizza un chip MAX7219. Questo ci dà 8x32 LED nella Matrix o 256 LED!!!.

L'esp32 è seduto su una presa che ho creato in TinkerCad. Il mio supporto tiene i perni rivolti verso l'alto in modo da poter collegare i fili.

La matrice LED si collega all'ESP32 tramite SPI (interfaccia periferica seriale).

Utilizzare cavi femmina/femmina e collegare i pin come segue:

  • ESP32 - 5v a VCC su Matrix
  • ESP32 - GND a GND su Matrix
  • ESP32 - PIN5 (G5) a CS su Matrix
  • ESP32 - PIN23 (G23) a Din su Matrix
  • ESP32 - Pin 18 (G18) su CLK su Matrix

È possibile utilizzare altri pin o se il tuo ESP32 ha un pinout diverso.

Passaggio 3: metterlo insieme

Metterlo insieme
Metterlo insieme

Quindi ho tagliato la scatola dei sigari per darmi un posto dove mettere il display a LED. La scatola è morbida e ho potuto usare un rasoio. Poi ho levigato per levigarlo.

Ho anche tagliato un intero nella parte posteriore per il cavo di alimentazione. Ho appena usato l'alimentazione USB. Avrei potuto anche aggiungere una batteria del caricatore del telefono USB all'interno della scatola dei sigari se avessi voluto che fosse wireless.

Passaggio 4: l'IDE Arduino e il file INO

L'IDE Arduino e il file INO
L'IDE Arduino e il file INO

La parte migliore è il codice. Ma prima dobbiamo aggiungere una libreria per consentire al programma di utilizzare il display in modo più semplice. Ho aggiunto la libreria MD_MAX72xx.

Per aggiungere la libreria, fai clic sul menu "Schizzo", quindi "Includi libreria" e "Gestisci librerie" verranno caricati e ti consentirà di cercare la libreria MD_MAX72xx. Basta fare clic su Installa e il gioco è fatto.

Quindi prendi il mio file INO Arduino:

github.com/aapicella/wordClock/blob/master/Word_Clock_LED_NTP_final_.ino

Carica il file ino nel tuo IDE Arduino, Collega l'USB da ESP32 al tuo computer.

Fai clic su "Schizzo", quindi su Carica

A questo punto l'orologio non funzionerà, l'ESP32 non visualizzerà nulla. Come mai? abbiamo bisogno di aggiungere il tuo WIFI al codice perché il WordClock si connette a Internet per ottenere l'ora. Esatto… passaggio successivo ->.

Passaggio 5: il codice

Finalmente siamo arrivati alla mia parte preferita. Il programma. Lo coprirò dall'alto verso il basso se sei interessato, per far funzionare il programma con la tua Internet di casa devi solo cambiare queste righe.

// Aggiungi le tue informazioni di rete

const char *ssid = "xxxxxx";

const char *password = "xxxxxx";

Il programma è un po' complesso, ma molto divertente.

Per disabilitare "Prevening" basta cambiare il valore in false:

const booleano PREVENING=true; //Teoria del Big Bang.

Per disabilitare la visualizzazione dell'ora digitale dopo lo scorrimento, modificarla in false.

const booleano DISPLAY_DIGITAL=true; //attiva la visualizzazione dell'ora digitale dopo lo scorrimento.

Scorrimento dell'ora:

Ottengo l'ora da un time server su Internet utilizzando NTP (Network Time Protocol). L'ora è contenuta in una variabile chiamata timeinfo e da essa ricaviamo l'ora e i minuti

int ora = timeinfo.tm_hour; ///0-23

int minuto = timeinfo.tm_min; //0-59

Prossimo controllo AM o PM

È AM se ora < 12

Creo una stringa chiamata "theTime" e la inizio con:

theTime="È ";

Per ottenere il numero come parole, ho creato un array di parole per numeri fino a 30

const char *numeri = {

"0", "Uno", "Due", "Tre", "Quattro", "Cinque", "Sei", "Sette", "Otto", "Nove", "Dieci", "Undici", "Dodici ", "Tredici", "Quattordici", "Trimestre", "Sedici", "Diciassette", "Diciotto", "Diciannove", "Venti", "Ventuno", "Ventidue", "Ventitre ", "Ventiquattro", "Venticinque", "Ventisei", "Ventisette", "Ventotto", "Ventinove", "Passato e mezzo"};

Quindi quando sono le 12:05 o le dodici e cinque è davvero per Arduino

numeri[5] minuti passati numeri[12]

Per determinare se è "Minutes Past" o "Minuti To" basta guardare i minuti. Se i minuti sono < 31 è "Minuti passati" se i minuti sono maggiori di 31 usiamo "Minuti fino a" ma usiamo numeri[60-minuti] quindi 12:50 sarebbero 60-50 minuti o numeri[10] che sarebbero dacci 10 minuti alle 12 in punto.

Naturalmente ci sono altre regole come il 15, 30, 45 non usiamo i minuti, è solo la metà o un quarto, e se il minuto è 0, l'ora è solo "dieci" o mezzogiorno.

Quindi, per metterlo insieme, aggiungo tutti gli elementi a String theTime, quindi lo visualizzo sulla matrice di LED. Uso un sacco di istruzioni If. Probabilmente avrei dovuto usare il caso, ma è stato più semplice continuare ad aggiungerli.

Per il nostro esempio 12:05

theTime="È"

se minuto < 31 usa "Minuti passati" altrimenti è "Minuti a"

theTime+= numeri[5] + "Minuti passati" + numero [12] + "O'Clock" //Nota: la notazione += è append.

Quindi esaminiamo l'ora per determinare se è mattina, pomeriggio o sera.

theTime+= "La sera"

La stringa finale che va alla matrice è:

"Sono le dodici e cinque di sera"

Questo progetto è stato molto divertente da scrivere. Se ti piace clicca sul Cuore e votami per favore.

Consigliato: