Tabla de contenido:
- Suministros
- Paso 1: Configurar la Raspberry Pi
- Paso 2: Conexión de la electrónica
- Paso 3: Diseño de la base de datos
- Paso 4: Configuración de Arduino
- Paso 5: Backend de Raspberry Pi
- Paso 6: Caso
Video: Wake Me Up: un reloj despertador inteligente: 6 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
Wake me up es un reloj despertador inteligente que también se puede utilizar como luz inteligente.
La tira de luces incorporada simula la entrada de luz natural en su habitación. Esto permite comenzar el día de una manera tranquila y natural.
El despertador también está equipado con una pantalla de 4 * 7 segmentos para leer la hora, parlantes para despertarse con su música favorita, un botón táctil, un ldr para adaptar el brillo de la tira de leds y un sensor de temperatura que puede usar para ver el temperatura de su habitación.
Suministros
Aquí puede encontrar una lista de los precios exactos que pagué:
Microcontroladores y ordenadores:
Raspberry Pi 4Utilicé el raspberry pi 4 4GB sin embargo, cualquier modelo 3+ de raspberry pi debería estar bien
Arduino Uno
El arduino se utiliza para controlar la pantalla del reloj de 4 * 7 segmentos.
Sensores:
- TMP36: sensor de temperatura
- LDR: resistencia dependiente de la luz
Actuadores:
- WS2801: Tira de leds direccionable individualmente
- Pantalla LCD: una pantalla LCD de 16 * 2.
- Pantalla de reloj de 4 * 7 segmentos
IC:
- 74HC595: Shiftregister para la pantalla lcd
- MCP3008: convertidor analógico a digital de 8 bits
- Convertidor de nivel lógico: se utiliza para comunicarse entre raspi y arduino
Otras cosas:
- Un amplificador adafruit MAX9744 para alimentar los altavoces
- Para cualquier altavoz, utilicé un altavoz de rango completo Visaton 4Ohm 8Watt (Art. No. 2240)
- Una fuente de alimentación de 9 voltios para alimentar el amplificador
- Una fuente de alimentación de 5 voltios para suministrar la tira de leds y otros componentes. Tenga en cuenta que cada led en la tira de leds puede sumergirse 60 mA, así que asegúrese de que su fuente de alimentación sea suficiente.
- Algunas resistencias de 220 ohmios
- Una pequeña placa de pruebas para poner en tu estuche.
Instrumentos:
- Un soldador.
- Algo para hacer el estuche (utilicé una impresora 3d con PLA y PETG y algunas pegatinas de vinilo para obtener el efecto de madera).
Paso 1: Configurar la Raspberry Pi
El raspberry pi es nuestro microcontrolador principal.
El raspberry pi ejecuta nuestro servidor web local, base de datos, controla la tira de leds, altavoces,…
Parte 1: Instalación de Raspbian
Utilice este tutorial para instalar raspbian:
Asegúrese de que SSH esté habilitado
Parte 2: Conectarse
Para conectarse a Internet, necesita acceder a la terminal de su raspberry pi. Recomiendo usar masilla. En el tipo de terminal:
wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
"YourNetwork" es el nombre de su red wifi y "YourSSID" es la contraseña de la red.
Una vez que haya agregado la red, intente reiniciar la Raspberry Pi.
Escriba el comando 'ping 8.8.8.8', esto enviará un paquete a los servidores de Google si obtiene una respuesta: ¡su red está configurada y funcionando!
Parte 3: Instale los programas necesarios
Necesitaremos instalar algunos programas adicionales para poner en marcha este proyecto.
Antes de comenzar, ejecute estos 2 comandos para asegurarse de que todo esté actualizado.
actualización de sudo apt
actualización de sudo apt
Esto podría tomar un tiempo.
apache
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
Pip de Python
Necesitamos instalar pip para habilitar algunas bibliotecas de Python
pip3 instalar mysql-connector-python
pip3 instalar flask-socketio
pip3 instalar flask-cors
pip3 instalar gevent
pip3 instalar gevent-websocket
Paso 2: Conexión de la electrónica
He agregado 2 esquemas, 1 es un esquema de tablero con fines de prueba. Recomiendo crear el primer esquema e intentar que el código funcione.
Agregué los archivos fritzing a continuación.
Paso 3: Diseño de la base de datos
Este es el esquema de base de datos que hice. Las palabras están en holandés, pero explicaré cada tabla en detalle.
Tabla 1: tblMuziek
Esta es una tabla bastante básica. Guarda el nombre del artista, el nombre de la canción y el nombre de archivo de una canción.
Tabla 2: tblLedstrip
Esta tabla realiza un seguimiento del estado actual del ledstrip y guarda el estado del ledstrip. Necesitamos esto para la función de luz inteligente.
Tabla 3: tblSensoren
Esta tabla realiza un seguimiento de los sensores en nuestra alarma. Almacenamos el nombre del sensor y el canal del MCP3008
Tabla 4: tblMeting
Esta tabla almacena los valores de nuestros sensores junto con su tiempo.
Tabla 5: tblWekker
Esta tabla almacena la contraseña y el nombre de su despertador (por ejemplo, dormitorio). Esta tabla no es obligatoria, pero la agregué porque supongo que tendrá más de 1 despertador en su casa.
Tabla 6: tblAlarm
Esta es probablemente la tabla más importante. Realiza un seguimiento de las alarmas que ha configurado y lo que tiene que hacer el reloj (qué canción reproducir, qué secuencia de led, en qué días debe sonar,…). Es muy importante realizar un seguimiento de 2 fechas. 1 fecha se usa para almacenar a qué hora debe sonar la alarma. El otro realiza un seguimiento de la última vez que se activó la alarma. Para saber qué día de la semana debería apagarse, utilicé un varchar que contiene un número de 7 dígitos. El primer dígito es el lunes, el segundo martes… Si es un 1, entonces debería apagarse, si es un 0 no debería. Ejemplo: 1111100 esto significa que esta alarma debe sonar los lunes, martes, miércoles, jueves y viernes.
Paso 4: Configuración de Arduino
Este paso es muy sencillo. Habrá un enlace a mi github en el siguiente paso donde puede descargar el archivo arduino.
¿Qué hace el programa?
El programa espera a que lleguen datos en serie del pi.
Tan pronto como se reciben los datos, analiza la cadena y envía una confirmación al pi.
La cadena será algo como esto: '1201' esto significa que son las 12:01. Usé una pantalla de 7 segmentos de ánodo común, esto significa que los dígitos deben ser altos y los dígitos A, B, C, D, E, F, G y DP deben estar bajos para encenderlos. Si usa un cátodo común, simplemente debe cambiar HIGH a LOW y LOW a HIGH.
Aquí hay un enlace con más información sobre cómo funcionan las pantallas de 7 segmentos. (con el uso de la biblioteca):
www.instructables.com/id/Using-a-4-digit-7…
Aquí hay un enlace sobre pantallas de 7 segmentos sin el uso de una biblioteca:
create.arduino.cc/projecthub/SAnwandter1/p…
Paso 5: Backend de Raspberry Pi
Puedes descargar mi código usando Github. (https://github.com/VanHevelNico/WakeMeUp)
Cómo instalar el programa:
El backend está escrito en Python usando flask. Puede crear un servicio que inicie este programa (app.py) automáticamente.
Debe colocar el código de la interfaz en el archivo html del servidor apache que descargamos anteriormente. (/ var / html)
Cómo funciona el programa?
Cuando la alarma esté encendida, vaya a la dirección IP de su reloj (se mostrará en la pantalla LCD)
Tan pronto como vaya a esa dirección IP en su navegador, su computadora enviará una solicitud socket.io al backend diciendo que un cliente se ha conectado. Cuando el backend reciba esto, comenzarán algunos hilos que explicaré a continuación.
Configuración
Esto inicializa todos los objetos necesarios.
GetTemp
Esto lee el canal 0 del mcp3008 y convierte los datos binarios a la temperatura real y los coloca en la base de datos con la fecha y hora actuales.
GetTempGrafiek
Esto obtiene los últimos 20 valores del sensor de temperatura y los emite a la interfaz.
tijd_sturen
Este método obtiene la hora actual y comprueba si el minuto ha cambiado. Si ha cambiado, el programa envía la nueva hora al arduino mediante comunicación en serie
checkAlarmen
Este es el método más importante. Obtiene todas las alarmas que están encendidas y verifica si alguna de estas alarmas tiene que irse entre ahora y hace 5 minutos (este es un búfer para asegurarse de que cada alarma suene cuando sea necesario). Si la alarma tiene que sonar comenzaremos la música, la tira de leds, … Leemos la resistencia sensible a la fuerza continuamente y cuando el valor cae por debajo de 1000 (leemos que se presiona el fsr) Apagamos la alarma y actualizamos la alarma en el base de datos. Establecimos la fecha en que se activó la alarma por última vez en la fecha actual.
statusLight
Este método emite el valor del ledstrip y enciende el ledstrip si es necesario.
lichtAanpassen
Este es un método adicional para asegurarse de que la tira de leds y la luz de alarma no entren en conflicto.
Paso 6: Caso
El enlace a mis archivos se puede encontrar aquí:
Usé una impresora 3d para imprimir la carcasa. Está impreso en 4 partes diferentes:
- La placa frontal con orificios para el altavoz y algunas paredes para la pantalla de 7 segmentos.
- El anillo exterior de la tira de leds en PETG transparente.
- La parte media
- La placa posterior con un orificio para la pantalla lcd y un orificio para los cables.
En el modelo original no había ningún agujero para la pantalla de 7 segmentos, sin embargo, esto es necesario porque, de lo contrario, la luz de la pantalla de 7 segmentos no brillará.
Como puede ver, después de colocar todos los componentes, utilicé adhesivos de vinilo con aspecto de madera para que el resultado final se viera mejor. La pantalla del reloj brilla a través de la pegatina, lo que crea un efecto de aspecto muy agradable.
Recomendado:
Reloj despertador inteligente con Magicbit (Arduino): 10 pasos
Reloj despertador inteligente usando Magicbit (Arduino): este tutorial muestra cómo hacer un reloj despertador inteligente usando una pantalla OLED en la placa de desarrollo Magicbit sin usar ningún módulo RTC
Reloj despertador inteligente - Intel Edison - Iot RoadShow - São Paulo: 4 pasos
Reloj despertador inteligente - Intel Edison - Iot RoadShow - São Paulo: Una de las grandes virtudes de cualquier persona que vive o trabaja en una gran ciudad es la gestión del tiempo. Hoy en día los viajes son constantes y, como el tráfico es uno de los principales factores, pensándolo bien, realicé una pequeña aplicación que utiliza la integración con Google M
WakeupNow - Reloj despertador inteligente: 8 pasos
WakeupNow - Smart Alarm Clock: Como todos saben, la vida de los estudiantes es muy dura, tienen un día largo con conferencias, mucha tarea y en general, tienen una vida loca. No tienen tiempo para nada, y si les sugieres que agreguen algunas horas al día se alegrarán. Unfo
Reloj despertador inteligente: un reloj despertador inteligente hecho con Raspberry Pi: 10 pasos (con imágenes)
Reloj despertador inteligente: un reloj despertador inteligente hecho con Raspberry Pi: ¿Alguna vez has querido un reloj inteligente? Si es así, ¡esta es la solución para usted! Hice Smart Alarm Clock, este es un reloj que puede cambiar la hora de la alarma de acuerdo con el sitio web. Cuando suene la alarma, habrá un sonido (zumbador) y 2 luces
Easy Wake-Up: una luz de despertador inteligente hecha con Raspberry Pi: 6 pasos
Easy Wake-Up: una luz de despertador inteligente hecha con Raspberry Pi: Introducción Para el plan de estudios Project1 tenía que hacer algo. Siempre me fascinó cómo una luz de despertador como las de Philips te beneficiaría al despertar, así que decidí hacer una luz de despertador. Hice la luz del despertador con un Raspberr