Taula de continguts:

Wake Me Up: un despertador intel·ligent: 6 passos
Wake Me Up: un despertador intel·ligent: 6 passos

Vídeo: Wake Me Up: un despertador intel·ligent: 6 passos

Vídeo: Wake Me Up: un despertador intel·ligent: 6 passos
Vídeo: Hosen-Probleme | Knallerfrauen mit Martina Hill 2024, De novembre
Anonim
Wake Me Up: un despertador intel·ligent
Wake Me Up: un despertador intel·ligent

Wake me up és un despertador intel·ligent que també es pot utilitzar com a llum intel·ligent.

La tira led incorporada simula la llum natural que entra a la vostra habitació. Això permet una manera tranquil·la i natural d’iniciar el dia.

El despertador també està equipat amb una pantalla de 4 * 7 segments per llegir l’hora, altaveus per despertar amb la vostra música preferida, un botó tàctil, un ldr per adaptar la brillantor de la tira led i un sensor de temperatura que podeu utilitzar per temperatura de la vostra habitació.

Subministraments

Podeu trobar una llista dels preus exactes que he pagat aquí:

Microcontroladors i ordinadors:

Raspberry Pi 4 He utilitzat el raspberry pi 4 4GB, però, qualsevol model de raspberry pi 3+ hauria d’estar bé

Arduino Uno

L’arduino s’utilitza per controlar la visualització del rellotge de 4 * 7 segments.

Sensors:

  • TMP36: sensor de temperatura
  • LDR: resistència dependent de la llum

Actuadors:

  • WS2801: tira LED dirigible individualment
  • Pantalla LCD: pantalla LCD de 16 * 2.
  • Visualització de rellotge de 4 * 7 segments

IC:

  • 74HC595: Shiftregister per a la pantalla LCD
  • MCP3008: convertidor analògic a digital de 8 bits
  • Convertidor de nivell lògic: s’utilitza per comunicar-se entre raspi i arduino

Altres coses:

  • Un amplificador MAX9744 adafruit per alimentar els altaveus
  • Qualsevol altaveu, he utilitzat un altaveu Visaton 4Ohm 8Watt de gamma completa (art. Núm. 2240)
  • Una font d'alimentació de 9 volts per alimentar l'amplificador
  • Una font d'alimentació de 5 volts per subministrar la tira de leds i altres components. Tingueu en compte que cada led de la tira de leds pot alimentar 60 mA, així que assegureu-vos que la vostra font d'alimentació és suficient.
  • Algunes resistències de 220 Ohm
  • Una petita tauleta per posar al vostre cas.

Eines:

  • Un soldador.
  • Alguna cosa per fer el cas (he utilitzat una impressora 3D amb PLA i PETG i alguns adhesius de vinil per obtenir l'efecte fusta).

Pas 1: Configuració del Raspberry Pi

El raspberry pi és el nostre micro controlador principal.

El raspberry pi executa el nostre servidor web local, la nostra base de dades, controla el ledstrip, els altaveus, …

Part 1: Instal·lació de Raspbian

Utilitzeu aquest tutorial per instal·lar raspbian:

Assegureu-vos que SSH estigui activat

Part 2: Connectar-se

Per connectar-vos a Internet, heu d’accedir al terminal del vostre raspberry pi. Recomano utilitzar massilla. Al tipus de terminal:

wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf

"YourNetwork" és el nom de la vostra xarxa wifi i "YourSSID" és la contrasenya de la xarxa.

Un cop afegida la xarxa, intenteu reiniciar el Raspberry Pi.

Escriviu l'ordre 'ping 8.8.8.8', aquest enviarà un paquet als servidors de google si obteniu resposta, la vostra xarxa està configurada i funciona.

Part 3: Instal·leu els programes necessaris

Necessitarem instal·lar alguns programes addicionals per posar en marxa aquest projecte.

Abans de començar, executeu aquestes 2 ordres per assegurar-vos que tot estigui actualitzat.

actualització sudo apt

actualització sudo apt

Això pot trigar una estona.

Apatxe

sudo apt install apache2 -y

sudo apt install php libapache2-mod-php -y

MariaDB

sudo apt install mariadb-server mariadb-client -y

sudo apt install php-mysql -y

PHPMyAdmin

sudo apt install phpmyadmin -y

Python pip

Hem d’instal·lar pip per habilitar algunes biblioteques python

pip3 instal·la mysql-connector-python

pip3 instal·la flask-socketio

pip3 instal·lar flask-cors

pip3 install gevent

pip3 instal·la gevent-websocket

Pas 2: connectar l'electrònica

Connexió de l'electrònica
Connexió de l'electrònica
Connexió de l'electrònica
Connexió de l'electrònica

He afegit 2 esquemes, 1 és un esquema de taulers de proves amb finalitats de prova. Recomano construir el primer esquema i intentar que el codi funcioni.

A continuació he afegit els fitxers divertits.

Pas 3: disseny de bases de dades

Disseny de bases de dades
Disseny de bases de dades

Aquest és l'esquema de base de dades que he creat. Les paraules estan en neerlandès, però explicaré cada taula amb detall.

Taula 1: tblMuziek

Aquesta és una taula bastant bàsica. Desa el nom de l’artista, el nom de la cançó i el nom del fitxer d’una cançó.

Taula 2: tblLedstrip

Aquesta taula fa un seguiment de l’estat actual de la ledstrip i guarda l’estat de la ledstrip. Ho necessitem per a la funció smartlight.

Taula 3: tblSensoren

Aquesta taula fa un seguiment dels sensors de la nostra alarma. Emmagatzemem el nom del sensor i el canal del MCP3008

Taula 4: tblMeting

Aquesta taula emmagatzema els valors dels nostres sensors juntament amb el seu temps.

Taula 5: tblWekker

Aquesta taula emmagatzema la contrasenya i el nom del despertador (per exemple, Dormitori). Aquesta taula no és obligatòria, però l’he afegit perquè suposo que tindreu més d’un despertador a casa vostra.

Taula 6: tblAlarm

Aquesta és probablement la taula més important. Realitza un seguiment de l’alarma que heu configurat i del que ha de fer el rellotge (quina cançó cal reproduir, quina seqüència de leds, en quins dies s’ha de disparar, …). És molt important fer un seguiment de 2 dates. 1 data s'utilitza per emmagatzemar a quina hora ha de saltar l'alarma. L'altre fa un seguiment de l'última vegada que va saltar l'alarma. Per saber quin dia de la setmana hauria de sortir, he utilitzat un varchar que conté un nombre de 7 dígits. El primer dígit és dilluns, el segon dimarts, … Si és un 1, hauria d'apagar-se, si és un 0, no hauria de ser. Exemple: 1111100 això significa que aquesta alarma ha de disparar dilluns, dimarts, dimecres, dijous i divendres.

Pas 4: Configuració d'Arduino

Aquest pas és molt fàcil. Hi haurà un enllaç al meu github al següent pas on podreu descarregar el fitxer arduino.

Què fa el programa?

El programa espera que les dades de sèrie entrin des del pi.

Tan bon punt es reben les dades, analitza tota la cadena i envia una confirmació al pi.

La cadena serà així: '1201', això significa que són les 12:01. He utilitzat una pantalla ànode comuna de 7 segments, això vol dir que els dígits haurien de ser alts i que A, B, C, D, E, F, G i DP haurien de ser baixos per activar-los. Si utilitzeu un càtode comú, haureu de canviar ALTA a BAIX i BAIX a ALTA.

Aquí teniu un enllaç amb més informació sobre com funcionen les pantalles de 7 segments. (amb l'ús de la biblioteca):

www.instructables.com/id/Using-a-4-digit-7…

A continuació, es mostra un enllaç sobre pantalles de 7 segments sense l'ús d'una biblioteca:

create.arduino.cc/projecthub/SAnwandter1/p…

Pas 5: Raspberry Pi Backend

Raspberry Pi Backend
Raspberry Pi Backend

Podeu descarregar el meu codi mitjançant Github. (https://github.com/VanHevelNico/WakeMeUp)

Com instal·lar el programa:

El dorsal s’escriu en pitó amb un matràs. Podeu fer un servei que engegui aquest programa (app.py) automàticament.

Hauríeu de posar el codi frontal al fitxer html del servidor apache que hem descarregat anteriorment. (/ var / html)

Com funciona el programa?

Quan el despertador estigui activat, aneu a l'adreça IP del rellotge (es mostrarà a la pantalla LCD)

Tan bon punt aneu a aquesta adreça IP del navegador, l'ordinador enviarà una sol·licitud de socket.io al dorsal indicant que s'ha connectat un client. Quan el backend rebi això, s'iniciaran uns quants fils que explicaré a continuació.

Configuració

Això intialitza tots els objectes necessaris.

GetTemp

Això llegeix el canal 0 mcp3008 i converteix les dades binàries a la temperatura real i les posa a la base de dades amb la data i hora actuals.

GetTempGrafiek

Això obté els últims 20 valors del sensor de temperatura i l’emet al frontal.

tijd_sturen

Aquest mètode obté l'hora actual i comprova si el minut ha canviat. Si ha canviat, el programa envia la nova hora a l'arduino mitjançant la comunicació en sèrie

checkAlarmen

Aquest és el mètode més important. Obté totes les alarmes que s’encenen i comprova si alguna d’aquestes alarmes ha de passar des d’ara fins fa 5 minuts (és un buffer per assegurar-se que cada alarma s’activa quan ho necessita). Si l'alarma ha de disparar, començarem la música, el ledstrip, … Llegim la resistència sensible a la força contínuament i quan el valor cau per sota de 1000 (es llegeix la fsr) Girem l'alarma i actualitzem l'alarma al base de dades. Establim la data en què va saltar l'alarma per última vegada a la data actual.

statusLight

Aquest mètode emet el valor de la ledstrip i activa la ledstrip si és necessari.

lichtAanpassen

Aquest és un mètode addicional per assegurar-vos que el ledstrip i la llum d'alarma no entren en conflicte.

Pas 6: cas

Caixa
Caixa
Caixa
Caixa
Caixa
Caixa

L’enllaç als meus fitxers es pot trobar aquí:

Vaig utilitzar una impressora 3D per imprimir la carcassa. S'imprimeix en 4 parts diferents:

  1. La placa frontal amb forats per a l’altaveu i algunes parets per a la pantalla de 7 segments
  2. L'anell exterior de la tira led en PETG transparent.
  3. La part central
  4. La placa posterior amb un forat per al lcd i un forat per als cables.

En el model original no hi havia cap forat per a la pantalla de 7 segments, però això és necessari perquè, en cas contrari, la llum de la pantalla de 7 segments no brillarà.

Com es pot veure després de posar-hi tots els components, he utilitzat adhesius de vinil amb un aspecte de fusta per fer que el resultat final sigui millor. La pantalla del rellotge brilla a través de l’adhesiu, cosa que crea un aspecte molt agradable.

Recomanat: