Sommario:
- Forniture
- Passaggio 1: configurazione del Raspberry Pi
- Passaggio 2: collegamento dell'elettronica
- Passaggio 3: progettazione del database
- Passaggio 4: configurazione di Arduino
- Passaggio 5: backend Raspberry Pi
- Passaggio 6: caso
Video: Wake Me Up - una sveglia intelligente: 6 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Wake me up è una sveglia intelligente che può essere utilizzata anche come luce intelligente.
La striscia led integrata simula la luce naturale che entra nella tua stanza. Ciò consente un modo calmo e naturale per iniziare la giornata.
La sveglia è inoltre dotata di un display 4*7 segmenti per la lettura dell'ora, altoparlanti per svegliarsi con la tua musica preferita, un pulsante touch, un ldr per adattare la luminosità della ledstrip e un sensore di temperatura che puoi utilizzare per visualizzare il temperatura della tua stanza.
Forniture
Un elenco dei prezzi esatti che ho pagato può essere trovato qui:
Microcontrollori e computer:
Raspberry Pi 4Ho usato il Raspberry Pi 4 4GB, tuttavia, qualsiasi modello Raspberry Pi 3+ dovrebbe andare bene
Arduino Uno
L'arduino viene utilizzato per controllare il display dell'orologio a 4*7 segmenti.
Sensori:
- TMP36: sensore di temperatura
- LDR: resistore dipendente dalla luce
Attuatori:
- WS2801: ledstrip indirizzabile individualmente
- Display LCD: un display LCD 16*2.
- Display dell'orologio a 4*7 segmenti
CI:
- 74HC595: Shiftregister per il display lcd
- MCP3008: convertitore da analogico a digitale a 8 bit
- Convertitore di livello logico: utilizzato per comunicare tra raspi e arduino
Altre cose:
- Un amplificatore adafruit MAX9744 per alimentare gli altoparlanti
- Qualsiasi altoparlante, ho usato un altoparlante full range Visaton 4Ohm 8Watt (Art. No. 2240)
- Un alimentatore da 9 volt per alimentare l'amplificatore
- Un alimentatore da 5 volt per alimentare la striscia led e altri componenti. Tieni presente che ogni led nella striscia led può assorbire 60 mA, quindi assicurati che l'alimentazione sia sufficiente.
- Qualche resistore da 220Ohm
- Una piccola breadboard da mettere nel tuo caso.
Utensili:
- Un saldatore.
- Qualcosa per realizzare la custodia (ho usato una stampante 3D con PLA e PETG e alcuni adesivi in vinile per ottenere l'effetto legno.)
Passaggio 1: configurazione del Raspberry Pi
Il Raspberry Pi è il nostro micro controller principale.
Il raspberry pi esegue il nostro server web locale, database, controlla il ledstrip, altoparlanti, …
Parte 1: installazione di Raspbian
Usa questo tutorial per installare raspbian:
Assicurati che SSH sia abilitato
Parte 2: Connettersi
Per connetterti a Internet, devi accedere al terminale del tuo raspberry pi. Consiglio di usare lo stucco. Nel tipo di terminale:
wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
"YourNetwork" è il nome della tua rete wifi e "YourSSID" è la password della rete.
Una volta aggiunta la rete, prova a riavviare il Raspberry Pi.
Digita il comando 'ping 8.8.8.8' questo invierà un pacchetto ai server di Google se ricevi risposta che la tua rete è configurata e funzionante!
Parte 3: installa i programmi necessari
Avremo bisogno di installare alcuni programmi extra per far funzionare questo progetto.
Prima di iniziare, esegui questi 2 comandi per assicurarti che tutto sia aggiornato.
sudo apt update
sudo apt upgrade
Potrebbe volerci un po' di tempo.
Apache
sudo apt install apache2 -y
sudo apt install php libapache2-mod-php -y
Maria DB
sudo apt install mariadb-server mariadb-client -y
sudo apt install php-mysql -y
PHPMyAdmin
sudo apt install phpmyadmin -y
pitone pitone
Dobbiamo installare pip per abilitare alcune librerie Python
pip3 installa mysql-connector-python
pip3 install flask-socketio
pip3 install flask-cors
pip3 installa gevent
pip3 installa gevent-websocket
Passaggio 2: collegamento dell'elettronica
Ho aggiunto 2 schemi, 1 è uno schema breadboard a scopo di test. Consiglio di creare il primo schema e di provare a far funzionare il codice.
Ho aggiunto i file fritzing di seguito.
Passaggio 3: progettazione del database
Questo è lo schema del database che ho creato. Le parole sono in olandese, ma spiegherò ogni tabella in dettaglio.
Tabella 1: tblMuziek
Questa è una tabella piuttosto semplice. Salva il nome dell'artista, il nome del brano e il nome del file di un brano.
Tabella 2: tblLedstrip
Questa tabella tiene traccia dello stato corrente della ledstrip salva lo stato della ledstrip. Ne abbiamo bisogno per la funzione smartlight.
Tabella 3: tblSensoren
Questa tabella tiene traccia dei sensori nel nostro allarme. Memorizziamo il nome del sensore e il canale dell'MCP3008
Tabella 4: tblMeting
Questa tabella memorizza i valori dei nostri sensori insieme al loro tempo.
Tabella 5: tblWekker
Questa tabella memorizza la password e il nome della tua sveglia (es. Camera da letto) Questa tabella non è obbligatoria ma l'ho aggiunta perché presumo che avrai più di 1 sveglia in casa.
Tabella 6: tblAllarme
Questa è probabilmente la tabella più importante. Tiene traccia della sveglia che hai impostato e di cosa deve fare l'orologio (quale canzone suonare, quale sequenza di led, in quali giorni dovrebbe suonare, …). È molto importante tenere traccia di 2 date. 1 data viene utilizzata per memorizzare a che ora deve suonare la sveglia. L'altro tiene traccia dell'ultima volta che è suonato l'allarme. Per sapere quale giorno della settimana dovrebbe suonare ho usato un varchar che contiene un numero di 7 cifre. La prima cifra è lunedì, la seconda martedì… Se è 1 allora dovrebbe spegnersi, se è 0 no. Esempio: 1111100 significa che questo allarme dovrebbe suonare lunedì, martedì, mercoledì, giovedì e venerdì.
Passaggio 4: configurazione di Arduino
Questo passaggio è molto semplice. Ci sarà un collegamento al mio github nel passaggio successivo in cui è possibile scaricare il file arduino.
Cosa fa il programma?
Il programma attende che i dati seriali arrivino dal pi.
Non appena i dati vengono ricevuti, analizza la stringa e restituisce una conferma al pi.
La stringa sarà qualcosa del genere: '1201' questo significa che sono le 12:01. Ho usato un display a 7 segmenti ad anodo comune, questo significa che le cifre dovrebbero essere alte e A, B, C, D, E, F, G e DP dovrebbero essere basse per accenderle. Se usi un catodo comune dovresti semplicemente cambiare HIGH in LOW e LOW in HIGH.
Ecco un link con ulteriori informazioni su come funzionano i display a 7 segmenti. (con l'uso della biblioteca):
www.instructables.com/id/Using-a-4-digit-7…
Ecco un link sui display a 7 segmenti senza l'uso di una libreria:
create.arduino.cc/projecthub/SAnwandter1/p…
Passaggio 5: backend Raspberry Pi
Puoi scaricare il mio codice usando Github. (https://github.com/VanHevelNico/WakeMeUp)
Come installare il programma:
Il backend è scritto in Python usando flask. Puoi creare un servizio che avvii questo programma (app.py) automaticamente.
Dovresti inserire il codice del frontend nel file html del server Apache che abbiamo scaricato in precedenza. (/var/html)
Come funziona il programma?
Quando la sveglia è accesa vai all'indirizzo IP del tuo orologio (verrà visualizzato sul lcd)
Non appena vai a quell'indirizzo IP nel tuo browser, il tuo computer invierà una richiesta socket.io al backend dicendo che un client si è connesso. Quando il backend lo riceverà, inizieranno alcuni thread che spiegherò di seguito.
Impostare
Questo inizializza tutti gli oggetti necessari.
OttieniTemp
Questo legge il canale 0 del mcp3008 e converte i dati binari nella temperatura effettiva e li inserisce nel database con la data e l'ora correnti.
OttieniTempGrafiek
Questo ottiene gli ultimi 20 valori del sensore di temperatura e li emette al frontend.
tijd_sturen
Questo metodo ottiene l'ora corrente e controlla se il minuto è cambiato. Se è cambiato il programma invia la nuova ora all'arduino utilizzando la comunicazione seriale
checkAllarmi
Questo è il metodo più importante. Ottiene tutti gli allarmi attivati e controlla se uno di questi allarmi deve essere attivato tra ora e 5 minuti fa (questo è un buffer per assicurarsi che ogni allarme scada quando necessario). Se l'allarme deve suonare avviamo la musica, il ledstrip, … Leggiamo il resistore sensibile alla forza continuamente e quando il valore scende sotto 1000 (leggi il fsr è premuto) Spegniamo l'allarme e aggiorniamo l'allarme nel Banca dati. Abbiamo impostato la data in cui l'allarme è suonato per l'ultima volta alla data corrente.
statoLuce
Questo metodo emette il valore della ledstrip e accende la ledstrip se necessario.
lichtAanpassen
Questo è un metodo extra per assicurarsi che la striscia led e la luce di allarme non siano in conflitto.
Passaggio 6: caso
Il collegamento ai miei file può essere trovato qui:
Ho usato una stampante 3D per stampare l'involucro. È stampato in 4 parti diverse:
- La piastra frontale con i fori per l'altoparlante e alcune pareti per il display a 7 segmenti
- L'anello esterno per il ledstrip in PETG trasparente.
- La parte centrale
- La piastra posteriore con un foro per lcd e un foro per i cavi.
Nel modello originale non c'era il foro per il display a 7 segmenti, tuttavia questo è necessario perché altrimenti la luce del display a 7 segmenti non risplenderà.
Come puoi vedere dopo aver inserito tutti i componenti ho usato adesivi in vinile con un aspetto legno per rendere il risultato finale migliore. Il display dell'orologio brilla attraverso l'adesivo che crea un effetto molto gradevole.
Consigliato:
Sveglia intelligente con Magicbit (Arduino): 10 passaggi
Sveglia intelligente utilizzando Magicbit (Arduino): questo tutorial mostra come creare una sveglia intelligente utilizzando il display OLED nella scheda di sviluppo Magicbit senza utilizzare alcun modulo RTC
Sveglia intelligente - Intel Edison - Iot RoadShow - San Paolo: 4 passaggi
Sveglia intelligente - Intel Edison - Iot RoadShow - San Paolo: una delle grandi virtù di chiunque viva o lavori in una grande città è la gestione del tempo. Al giorno d'oggi i viaggi sono costanti e, essendo il traffico uno dei fattori principali. Pensandoci, ho realizzato una piccola applicazione che sfrutta l'integrazione con Google M
WakeupNow – Sveglia intelligente: 8 passaggi
WakeupNow – Sveglia intelligente: come tutti sanno, la vita degli studenti è molto dura, hanno una lunga giornata con lezioni, molti compiti e, in generale, hanno una vita pazzesca. Non hanno tempo per niente, e se suggerisci loro di aggiungere qualche ora alla giornata saranno contenti. Informazioni
Sveglia da comodino MP3 con lettera sveglia: 6 passaggi (con immagini)
Sveglia da comodino MP3 con sveglia: per questo progetto ho voluto creare una sveglia da comodino comoda e completamente funzionale. I miei prerequisiti personali per una sveglia da comodino sono: Leggibile a qualsiasi luce, ma non accecante di notte Brani della sveglia MP3 Attira
Sveglia LED Sunrise con sveglia con canzone personalizzabile: 7 passaggi (con immagini)
Sveglia a LED all'alba con sveglia personalizzabile: la mia motivazione Quest'inverno la mia ragazza ha avuto molti problemi a svegliarsi al mattino e sembrava soffrire di SAD (disturbo affettivo stagionale). Mi accorgo anche di quanto sia più difficile svegliarsi d'inverno visto che il sole non è ancora arrivato