Tabla de contenido:
- Suministros
- Paso 1: configuración
- Paso 2: instalación del espejo
- Paso 3: configuración
- Paso 4: API
- Paso 5: el calendario
- Paso 6: API de Google
- Paso 7: el diseño del espejo
- Paso 8: cableado
- Paso 9: Iniciar el código
- Paso 10: Ejecutar el espejo
Video: Espejo inteligente multiusuario con Google Calendar: 10 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
En este instructivo, crearemos un espejo inteligente integrado con Google Calendar. Hice este proyecto porque encuentro los espejos inteligentes realmente geniales, son un regalo del cielo por la mañana. Pero decidí hacer uno yo mismo desde cero porque todos los demás tienen 1 defecto. Están demasiado avanzados y abarrotados. Decidí mantener esto simple.
Suministros
Antes
comenzaremos, estas son las cosas que definitivamente necesitarás para construir un espejo como el mío. Estos suministros costarán entre 250 y 350 euros dependiendo de su región y los precios actuales.
Hardware
Sensores
- Sensor de temperatura de un cable
- RWCL 0516 (sensor de movimiento de microondas)
- Potenciómetro suave (Touchstrip de Sparkfun)
Informática
y CI
- Altavoz (3,2 W a 4 Ω O 1,8 W a 8 Ω)
- MCP3008
- Adaptador de amplificador Adafruit I2S 3W Clase D - MAX98357A
- Frambuesa Pi 3 B +
- Tarjeta SD (8GB está bien)
- Resistencia 4.7K Ohm
Varios
- Cables de puente
- Tablero de circuitos
- Espejo acrílico bidireccional (15% de transmisión de luz)
- Monitor IPS (el tamaño depende del tamaño que desee)
- cable HDMI
- Madera
Software
- Masilla
- Editor de código (Notepad ++ es suficiente)
- Generador de imágenes de disco Win32
- Imagen del sistema operativo Raspbian
Paso 1: configuración
Para comenzar, primero necesitaremos configurar su Pi para el código que hice.
Necesitarás dos cosas:
- Win32 Disk Imager de
- Imagen del sistema operativo Raspbian de
Descarga el archivo ZIP y extráelo donde quieras.
La instalación
- Seleccione su imagen a través del icono de carpeta
- Seleccione su tarjeta SD a través del menú desplegable
- Haga clic en escribir
Ahora tendremos que hacer algunos ajustes adicionales con algunas configuraciones para poder acceder a la Pi.
- Vaya al directorio de inicio de la tarjeta SD
- Abra el archivo "cmdline.txt"
- Agregue ip = 169.254.10.1 al final de la línea larga de texto separada por un espacio (en la misma línea).
- Guarda el archivo.
- Cree un archivo llamado ssh sin extensión en el mismo directorio
Ahora puedes expulsar la tarjeta SD y ponerla en tu Pi.
Conectando
Ahora necesitaremos configurar el software.
Primero conecte un cable LAN, un extremo en su computadora de escritorio / computadora portátil y el otro en su Pi.
Ahora arranca la Raspberry Pi.
- Instale Putty desde
- Ingrese 169.254.10.1 en el cuadro IP.
- Asegúrese de que SSH esté seleccionado y el puerto 22 esté completo.
- Haga clic en abrir
- Complete el nombre de usuario: pi
- Complete la contraseña: frambuesa
Raspi-config
Abra la utilidad Raspi-config usando:
sudo raspi-config
Habilite las siguientes opciones en la categoría de interfaces
- 1 hilo
- SPI
Elija su país WiFi a través de la categoría de localización.
A continuación, desactive las siguientes opciones en la categoría de opciones de arranque
Pantalla de bienvenida
Por último, establezca la configuración de Escritorio / CLI en la categoría de opciones de arranque en Inicio de sesión automático de escritorio.
Wifi
Para el espejo, necesitamos tener una conexión wifi, así que asegúrese de tener sus credenciales wifi cerca.
Entrar en modo root
sudo -i
Pegue esta línea, pero asegúrese de que el SSID y la contraseña estén completos
wpa_passphrase "SSID" "CONTRASEÑA" >> /etc/wpa_supplicant/wpa_supplicant.conf
Ingrese al cliente WPA.
wpa_cli
Seleccione la interfaz
interfaz wlan0
Recargar la configuración
reconfigurar
Asegúrate de estar conectado correctamente escribiendo…
ip a
… Y ver si tienes una IP en las interfaces WLAN0.
Paquetes
Ahora que estamos conectados a Internet, tendremos que instalar algunos paquetes.
Primero, necesitaremos actualizar las listas de paquetes para obtener el último.
actualización de sudo apt
Pitón
Forzaremos a Raspbian a usar Python 3
alternativas de actualización --install / usr / bin / python python /usr/bin/python2.7 1
actualizar-alternativas --install / usr / bin / python python / usr / bin / python3 2
MariaDB
Pegue la siguiente línea para instalar la base de datos.
sudo apt install mariadb-server
Entonces necesitaremos asegurar nuestra instalación.
mysql_secure_installation
Nos pedirá la contraseña de root actual, ya que no tenemos una, solo presione enter.
A continuación, se pregunta si queremos una contraseña de root en y, ya que queremos una.
Para las siguientes preguntas, ingrese Y.
Por último, crearemos un usuario que podremos usar para el espejo.
Ingrese al shell mysql haciendo:
Elevarnos a la raíz
sudo -i
Ingrese al shell mysql
mysql
Reemplácelo con su propio nombre de usuario y lo mismo con
conceda todos los privilegios en el espejo. * a '' @ '%' identificado por '';
Ahora limpiamos la tabla de permisos.
PRIVILEGIOS DE FLUSH;
Servidor web Apache
Para instalar el servidor web, ejecute la línea siguiente.
sudo apt install apache2 -y
Paquetes de Python
Vamos a instalar estos paquetes.
- Matraz
- Matraz-Cors
- Frasco-MySQL
- Matraz-SocketIO
- PyMySQL
- Frasco-talismán
- Gevent
- Gevent-websocket
- Google-api-python-client
- Autenticación de Google
- Google-auth-httplib2
- Google-auth-oauthlib
- Httplib2
- Calendario
- Icalevents
- Oauthlib
- Python-socketio
- Peticiones
- Wsaccel
- Ujson
Haciendo
pip install Flask Flask-Cors Flask-MySQL Flask-SocketIO PyMySQL Flask-Talisman gevent gevent-websocket google-api-python-client google-auth google-auth-httplib2 google-auth-oauthlib httplib2 icalendar icalevents oauthlio python
Configuración de altavoces
curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | intento
Ahora tenemos que reiniciar, así que presione y.
Vuelva a ejecutar el guión
curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | intento
Ahora tenemos que reiniciar por segunda vez
sudo reiniciar
Monitor de pantalla)
Dependiendo de cómo desee la orientación de la pantalla, es posible que desee rotar la pantalla.
Para rotar la pantalla necesitamos acceder a las opciones de arranque haciendo:
sudo nano /boot/config.txt
Y luego pegar una de estas líneas en el archivo de configuración:
display_rotate = 0
display_rotate = 1
display_rotate = 2
display_rotate = 3
El primero, 0, es la configuración normal. 1 será 90 grados, 2 es 180 grados y el último será 270 grados.
Luego reinicia.
sudo reiniciar
Paso 2: instalación del espejo
Ahora configuraremos un lugar para descargar mi código.
cd / inicio / pi /
git clone https://github.com/nielsdewulf/Mirror MirrorProject cd MirrorProject
Ahora copiaremos algunas carpetas al destino correcto.
sudo cp -R frontend / mirror / / var / www / html / mirror /
sudo cp -R frontend / dashboard / / var / www / html / Sudo cp -R backend / / home / pi / Mirror /
La instalación de la base de datos es un paso necesario para realizar el proyecto.
sudo mysql -u root -p << CREATEDATABASE.sql
Paso 3: configuración
El archivo de configuración se encuentra en:
sudo nano /home/pi/Mirror/resources/config.ini
Ingrese el usuario y la contraseña de MYSQL.
Este debe ser el usuario de mysql que acabamos de crear.
Las otras configuraciones las repasaremos más adelante en este instructivo.
Paso 4: API
Ahora que hemos terminado la instalación de la Pi, cubriremos algunos temas que quizás desee hacer.
Cielo oscuro
Cree una clave API de Darsky a través de
Cuando se haya registrado, verá su clave API en el Panel de control.
Ingrese esta clave en el archivo de configuración del proyecto espejo que instaló antes.
El calendario
De forma predeterminada, solo podrá utilizar URL de ical para ver su calendario. Pero esta parte tratará de cómo vincular su espejo con el ecosistema de Google. Este es un proceso generalmente más largo y doloroso.
Cosas que definitivamente necesitarás
Un nombre de dominio
Estas son las cosas que configuraremos durante esta parte.
- Cuenta CloudFlare
- Cuenta de desarrollador de Google
- Proyecto de desarrollador de Google
- Configurar la API de calendario
Paso 5: el calendario
Cloudflare
Configure una cuenta de cloudflare desde https://cloudflare.com y siga el asistente para transferir su nombre de dominio al DNS de Cloudflare.
No es necesario que usted mismo cree un registro A que apunte al raspberry pi. Mi código Mirror lo hará por ti. Dado que en la mayoría de las redes Wi-Fi domésticas las IP no son estáticas, es posible que después de reiniciar ya no funcione. Para que mi código actualice automáticamente la IP, necesitará la clave API de su cuenta.
- Haga clic en el botón Obtenga su clave de API en el panel del lado derecho. [Foto 1]
- Desplácese hacia abajo y vea su clave API global. [Foto 2]
Ingrese esta clave en el archivo de configuración del proyecto espejo que instaló antes.
Creación de certificado SSL
Google requiere que tengamos una conexión SSL. Para comenzar esta sección, asegúrese de haber configurado correctamente el DNS de Cloudflare.
Primero agregue el repositorio.
sudo add-apt-repository ppa: certbot / certbot
Actualice la lista de paquetes.
sudo apt-get update
Instalar CertBot
sudo apt instalar python-certbot-apache
Inicie la creación del certificado. Nuevamente, deberá ingresar el nombre de dominio correcto.
sudo certbot --apache -d example.com -d www.example.com
Después de la creación, le preguntará si debe redirigir todas las conexiones a SSL. Elija redireccionar.
Ahora le dirá que ha creado con éxito un certificado para su dominio. Asegúrate de guardar las 2 rutas que te da.
- /etc/letsencrypt/live/example.com/cert.pem
- /etc/letsencrypt/live/example.com/privkey.pem
Ahora vaya a la carpeta con los certificados a través de:
Asegúrese de cambiar example.com al host correcto.
cd /etc/letsencrypt/live/example.com/
Ahora copiemos esos contenidos en la carpeta de nuestro proyecto.
cp cert.pem /home/pi/Mirror/resources/certs/cert.pem
Y
cp privkey.pem /home/pi/Mirror/resources/certs/privkey.pem
Conecte Apache con su dominio
Para configurar Apache correctamente con su dominio, tendremos que crear un archivo de configuración. Asegúrese de ingresar su nombre de dominio, por ejemplo, funergydev.com.
sudo nano /etc/apache2/sites-enabled/example.com.conf
Luego péguelo en el archivo. Reemplaza example.com con tu nombre de dominio.
Asegúrese de que su certificado y clave privada sean la ruta correcta. Configúrelos en la ruta que guardó anteriormente cuando creamos y luego a través de certbot.
DocumentRoot "/ var / www / html /" SSLEngine en SSLCertificateFile /home/pi/Mirror/resources/certs/cert.pem SSLCertificateKeyFile /home/pi/Mirror/resources/certs/privkey.pem # Otras directivas aquí Opciones Índices FollowSymLinks AllowOverride Todo requiere todo concedido
Ahora necesitamos habilitar algunas modificaciones y luego forzar a Apache a recargar la configuración haciendo:
sudo a2enmod ssl
sudo a2enmod reescribir
sudo systemctl recargar apache2
Ahora debería poder ir a través de su nombre de dominio a su pi y ver la página de apache predeterminada.
Paso 6: API de Google
Vaya a la consola del desarrollador a través de
Parte 1
Cree su primer proyecto haciendo clic junto al logotipo de la API de Google y haciendo clic en el botón NUEVO PROYECTO. Complete un nombre de proyecto apropiado y haga clic en el botón crear. [Foto1]
Parte 2
Ahora llegará a esta página. Haga clic en el botón de la biblioteca. [Foto2]
Esta es una gran lista de todas las API que podría usar, pero buscaremos la API de Google Calendar. Haga clic en él y presione ENABLE. [Foto3]
Luego, llegará a una descripción general de la API de calendario. Haga clic en el logotipo de las API de Google para volver a su proyecto. [Foto4]
Parte 3
Para configurar todo correctamente, haga clic en la categoría de credenciales y elija la pestaña Verificación de dominio.
Aquí tendrás que verificar tu nombre de dominio.
- Haga clic en AÑADIR DOMINIO.
- Complete su dominio
- Luego le pedirá que verifique su dominio. Haga clic en continuar.
- Elija su proveedor de nombre de dominio. [Foto5]
- Sigue el proceso
- Ahora podrá agregarlo a la Lista de verificación de dominio en la Consola API de Google de esta manera. Asegúrese de que su dominio esté marcado. [Foto6]
Parte 4
Ahora elija la pestaña de la pantalla de consentimiento de OAuth. [Foto7]
Complete el nombre de la aplicación
A continuación, agregaremos ámbitos a la pantalla de consentimiento. Esto significa que le preguntaremos al usuario en la pantalla de consentimiento si desea compartir la información de su calendario con el espejo.
- Haga clic en agregar alcance y busque calendario.
- Marque../auth/calendar.readonly y presione agregar. [Foto8]
Complete un dominio autorizado. Este debe ser el dominio que acaba de verificar. [Foto9]
Ahora haga clic en el gran botón Guardar debajo del formulario.
Parte 5
Por último, necesitamos crear las credenciales. Debido a que presionamos el botón Guardar, fuimos redirigidos a la pestaña de credenciales. Haga clic en crear credenciales y elija ID de cliente OAuth. [Foto10]
Elija Tipo de aplicación: Aplicación web y asígnele un nombre.
Ingrese el siguiente enlace en el URI de redireccionamiento autorizado y complete el dominio correcto.
example.com:5000/api/v1/setup/calendar/response
Haga clic en crear. Esto le mostrará una ventana emergente, simplemente haga clic en Aceptar. Ahora presione el botón de descarga en las credenciales que acaba de crear
Parte 6
Ahora abra el archivo JSON y copie el contenido.
sudo nano /home/pi/Mirror/resources/credentials/credentials.json
Pégalos aquí.
Parte 7
Ahora necesitamos definir nuestro dominio en la configuración haciendo:
sudo nano /home/pi/Mirror/resources/config.ini
Paso 7: el diseño del espejo
Diseñar tu espejo depende de cómo lo quieras. Realice mediciones precisas de la pantalla LCD y deje un espacio de 2 centímetros en un lado del espejo, ya que el sensor de movimiento de microondas estará allí. No puede estar detrás de ningún metal.
Conecté 4 tablas de madera juntas. Estos se fresaron para tener un frente limpio y agradable del espejo. En la parte superior también hice un par de agujeros para dejar pasar el sonido del altavoz. En el lado opuesto del espejo, la parte inferior, corté un pequeño rectángulo para poder hacer fácilmente el cableado eléctrico. [Foto1]
Se trata de 2 piezas de madera barata donde se apoyará el monitor. Como dije, necesitaríamos un espacio de 2 centímetros entre el espejo y la carcasa. También agregué 3 pequeños pedazos de madera y los atornillé en esos pedazos de descanso. Entonces el monitor permanecería en su lugar. [Foto2]
Al final se veía así. Tenía un espacio de aproximadamente 3 mm entre esas piezas de apoyo y el frente de la caja del espejo. Lo suficiente para poder colocar el espejo bidireccional de 3 mm de grosor. [Foto3]
Paso 8: cableado
Asegúrese de seguir correctamente uno de estos esquemas.
Una vez que hice el cableado, lo pegué en la parte posterior de la pantalla con cinta adhesiva de doble cara. Ya que si alguna vez quisiera desmontar el espejo y usarlo para otros proyectos, podría quitarlo fácilmente. Si está seguro, puede usar una pistola de pegamento caliente y pegarla a la parte posterior del espejo.
Paso 9: Iniciar el código
LXSession
Primero creemos un par de carpetas.
mkdir -p /home/pi/.config/lxsession/LXDE-pi/
Ahora crearemos un archivo donde especificaremos un par de parámetros / comandos de inicio.
sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
Pegue lo siguiente en el archivo.
@lxpanel --perfil LXDE-pi
@pcmanfm --desktop --profile LXDE-pi @xscreensaver -no-splash @ point-rpi @sh /home/pi/Mirror/init_mirror.sh @xset s noblank @xset s off @xset -dpms
Actualizaremos la secuencia de comandos de la pantalla espejo de inicio para que coincida con nuestro host.
sudo nano /home/pi/Mirror/init_mirror.sh
Elija localhost si no está utilizando el calendario de Google y un dominio.
#! / bin / bash
sleep 15 chromium-browser --incognito --kiosk https:// localhost / mirror
Si lo está utilizando, complete su host.
#! / bin / bash
sleep 15 chrome-browser --incognito --kiosk
Servicio
Ahora configuraremos que el código Mirror se ejecute automáticamente.
Crearemos un servicio que inicia automáticamente el código por nosotros.
Ir a:
sudo nano /etc/systemd/system/mirror.service
Y pega esto en el archivo.
[Unidad]
Descripción = Mirror Backend Después de = network.target mariadb.service [Servicio] Tipo = simple Usuario = root ExecStart = / bin / sh /home/pi/Mirror/init.sh [Instalar] WantedBy = multi-user.target
Ahora tendremos que volver a cargar el demonio systemd haciendo:
sudo systemctl daemon-reload
Y también habilitaremos el servicio para que se inicie automáticamente al arrancar.
sudo systemctl habilitar espejo
Ahora apagaremos.
sudo poweroff
La configuración final
Finalmente, necesitamos eliminar nuestra IP APIPA para que solo funcione en WiFi.
- Vaya al directorio de inicio de la tarjeta SD en su PC.
- Abra el archivo "cmdline.txt"
- Quite ip = 169.254.10.1 al final de la línea larga de texto.
Paso 10: Ejecutar el espejo
Visite la IP que está en la pantalla espejo o si ha configurado el calendario de Google, complete el nombre de dominio.
¡Ahora podrás configurar tu espejo!
Si recibe un error de SSL en su espejo, es posible que desee agregar sus certificados al almacén de certificados de Chromium.
Recomendado:
Cómo construir un espejo inteligente con Raspberry Pi 4:10 pasos
Cómo construir un espejo inteligente con Raspberry Pi 4: En esta guía veremos cómo construir un espejo inteligente usando piezas recicladas como un marco de imagen, un monitor viejo y un cristal de imagen. Para los componentes electrónicos que compré aquí www.lcsc .com
Cómo hacer un espejo inteligente de bricolaje: 12 pasos (con imágenes)
Cómo hacer un espejo inteligente de bricolaje: un " espejo inteligente " es un espejo bidireccional con una pantalla detrás que generalmente se usa para mostrar información útil como la hora y la fecha, el clima, su calendario y todo tipo de otras cosas. La gente los usa para todo tipo de propósitos
Espejo inteligente simple: 7 pasos (con imágenes)
Espejo inteligente simple: ¡Guau! Ha pasado bastante tiempo subí algo, estuve ocupado trabajando en tantas cosas y me di cuenta de que tenía que dejar algo para mis seguidores como dicen los refranes, 'siempre tengo un proyecto en el que trabajar' jaja, tal vez sea solo yo, de todos modos, volvamos a los negocios
Espejo mágico inteligente flotante de una computadora portátil vieja con reconocimiento de voz de Alexa: 6 pasos (con imágenes)
Espejo mágico inteligente flotante de una computadora portátil vieja con reconocimiento de voz de Alexa: Inscríbase en mi curso 'Electrónica en pocas palabras' aquí: https://www.udemy.com/electronics-in-a-nutshell/?couponCode=TINKERSPARK También consulte mi canal de youtube aquí para más proyectos y tutoriales de electrónica: https://www.youtube.com/channel/UCelOO
Espejo no tan inteligente pero muy saludable pero un poco espeluznante: 5 pasos (con imágenes)
Espejo no tan inteligente pero muy saludable pero un poco espeluznante: ¿Necesita un espejo pero no está dispuesto a agregar otro objeto inteligente a su hogar? ¡Entonces este espejo no tan inteligente pero muy saludable pero un poco espeluznante es perfecto para ti