Tabla de contenido:

1984 WeatherMan Pi: 7 pasos (con imágenes)
1984 WeatherMan Pi: 7 pasos (con imágenes)

Video: 1984 WeatherMan Pi: 7 pasos (con imágenes)

Video: 1984 WeatherMan Pi: 7 pasos (con imágenes)
Video: Grumpy Old Men (1/4) Movie CLIP - Not-So-Friendly Neighbors (1993) HD 2024, Noviembre
Anonim
Image
Image
1984 WeatherMan Pi
1984 WeatherMan Pi
1984 WeatherMan Pi
1984 WeatherMan Pi

Este reproductor de casetes portátil es ahora una pantalla meteorológica de IoT ambiental con un estilo de principios de los 80, que muestra una animación de "condiciones actuales", un gráfico de temperatura de desplazamiento y probabilidad de lluvia a través de la ventana de la cinta. Cuando las condiciones climáticas cambian, los auriculares servocontrolados en la parte superior se mueven hacia adelante y hacia atrás como una alerta sutil.

Abriendo la puerta de la cinta funcional podemos ver que los polvorientos componentes originales han sido sustituidos por una Raspberry Pi Zero W, un Pimoroni Unicorn Hat HD (LED Matrix) y un pequeño servo. Los datos meteorológicos se obtienen mediante un script de Python que consulta la API de Dark Sky Weather ultraprecisa, adaptada a mi ubicación específica.

Es una construcción de IoT simple pero hermosa y funcional que se coloca en el altavoz de escritorio opuesto a mi mostrador de YouTube, manteniéndome al tanto del clima en silencio.

Suministros

Raspberry Pi Zero

Pimoroni Unicorn HAT HD

Servo pequeño

1984 Estéreo personal y auriculares Hitachi SP-1

Adaptador WiFi USB

Varilla roscada de 2 mm

Sugru (negro y gris)

Imán GeoMag

Paso 1: Desmontaje de la cinta

Desmontaje de cinta
Desmontaje de cinta
Desmontaje de cinta
Desmontaje de cinta
Desmontaje de cinta
Desmontaje de cinta

Mi suegra me regaló este viejo y encantador reproductor de casetes en septiembre y al instante me enamoré de su aspecto icónico y sus botones gruesos. Sin embargo, el verdadero atractivo fue esa gran ventana de cinta: después de poseerla durante unos 15 segundos, saqué una regla y me sorprendió descubrir que, en mm, es del mismo tamaño que un Raspberry Pi HAT estándar (hardware adjunto en la parte superior).

Ese descubrimiento por sí solo fue suficiente para empujar mi proyecto del reloj de cuco más abajo en la lista de "cosas por hacer" y comencé a trabajar de inmediato, desmantelando el reproductor.

El desmontaje fue bastante bien y terminé con tres piezas distintas con las que trabajar; logré romper un par de piezas de plástico, pero nada que no pudiera volver a pegarse.

Paso 2: Dark Sky Pi

Cielo oscuro pi
Cielo oscuro pi
Cielo oscuro pi
Cielo oscuro pi
Cielo oscuro pi
Cielo oscuro pi

He estado usando Dark Sky en mi teléfono durante un tiempo y me ha impresionado mucho la precisión de los pronósticos, así que me encantó ver que ofrecen una API completa que podría usar en este proyecto. Es agradable y sencillo de configurar. ¡arriba también!

En primer lugar, diríjase a https://darksky.net/dev y regístrese para obtener una cuenta gratuita; una cuenta de "prueba" le permite realizar 1000 solicitudes de API al día, lo que es suficiente para una actualización cada 1,5 minutos, con la frecuencia suficiente incluso para mi Nivel británico de obsesión por el clima.

Una vez que se haya registrado, obtendrá una "Clave secreta": esto es lo que necesita para acceder a los datos y se usa en el script de Python, así que téngala a mano (y, ya sabe, en secreto).

Comencé adaptando un script que usé en la compilación del Contador de suscriptores de YouTube, que usa el módulo Solicitudes en Python para recuperar datos de la API. El script que utilicé está en GitHub, solo deberá agregar su clave de API Dark Sky y, por supuesto, sustituir sus propios valores de latitud y longitud.

Fue bastante sencillo extraer datos sobre las condiciones climáticas actuales, y decidí hacer uso de los elementos "Icono", "Probabilidad de precipitación" y "Temperatura".

Paso 3: el código

El código
El código

Si desea reutilizar o saltar el código que usé, está en el repositorio WeatherMan en GitHub - clone o descargue la carpeta "weather" en la carpeta "pi" en su Raspberry Pi.

Las principales funciones del script son las siguientes:

weatherman.py

Este es el script principal que extrae los datos meteorológicos de Dark Sky. Deberá configurar una cuenta de Dark Sky en https://darksky.net/dev y poner su clave secreta en el script donde se indica. También deberá ingresar la latitud y la longitud de la ubicación meteorológica que le interesa; esto se puede encontrar en Google Maps, simplemente haga clic con el botón derecho y seleccione "¿Qué hay aquí?" y aparecerá una ventana emergente que muestra la latitud / longitud de la ubicación.

Después de recuperar los datos de la API, weatherman.py pasa parámetros a varios scripts más pequeños para iniciar las animaciones y los movimientos de los auriculares.

La secuencia de comandos está configurada para ejecutarse en el inicio mediante la edición del archivo de inicio …

sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart

… Y agregando:

@ python3 /home/pi/weather/weatherman.py &

al final del archivo.

icon.py

Esta secuencia de comandos toma un parámetro de "condiciones actuales" de la secuencia de comandos weatherman.py y lo usa para mostrar una animación meteorológica de 16x16; todos están almacenados en la carpeta "iconos" y forman parte de la documentación estándar de Unicorn HAT HD. Puede editar los archivos de animación-p.webp

teléfonos.py

Si las condiciones meteorológicas han cambiado desde la última solicitud de API (o es una bota nueva y no está nevando), este script se llama desde weatherman.py e indica al servo que "se mueva" hacia adelante y hacia atrás para avisarle de que las condiciones han cambiado. cambió.

precip.py

Este script acepta un parámetro de "probabilidad de precipitación" de weatherman.py y muestra líneas en azul en el Unicorn HAT relacionadas con el% de probabilidad. Si el 100%, las 16 filas se iluminarán en azul, si el 50% solo 8 filas, etc.

temp.py

Otro script estándar de Pimoroni, éste toma un parámetro "temp" de weatherman.py y lo muestra con texto en movimiento. Está configurado para usar la fuente truetype Herkules (en la carpeta "fuentes") pero podría usar una fuente estándar si lo prefiere. ¡Incluso podría mejorarla para que el texto mostrado cambie de color dependiendo del valor de temperatura!

Paso 4: Unicorn HAT & Servo

Unicornio SOMBRERO y Servo
Unicornio SOMBRERO y Servo
Unicornio SOMBRERO y Servo
Unicornio SOMBRERO y Servo
Unicornio SOMBRERO y Servo
Unicornio SOMBRERO y Servo

Poder obtener los datos meteorológicos fue genial, pero ahora necesitaba mostrarlos en el Unicorn HAT. Miré varios conjuntos de iconos meteorológicos en Internet y estaba a medio camino de adaptarlos cuando me di cuenta de que había un ejemplo meteorológico incluido con la documentación de Pimoroni, ¡y esto incluía animaciones meteorológicas!

Esto me ahorró una gran cantidad de trabajo, y estaba listo y funcionando en poco tiempo, con un ícono animado para las condiciones actuales, algo de texto desplazable para la temperatura y un gráfico para el% de precipitación (que involucró algunas matemáticas ligeras). Mantuve los scripts separados y usé el módulo Subprocess de Python para pasar parámetros de un lado a otro.

Agregar el servo fue el vehículo ideal para estas alertas, ya que haría un poco de ruido y llamaría la atención sin ser demasiado molesto. Con el HAT ya ocupando muchos de los pines del Pi, soldé los cables del servo a la parte inferior de la placa, usando el pin 17 para controlar el movimiento del servo usando la modulación de ancho de pulso.

Alimentar el servo desde el Pi no era ideal, pero solo se usaría para un movimiento momentáneo, por lo que la precisión no era un gran problema aquí. Se conectó como se muestra en el diagrama, con cable marrón a GND, rojo a 5v y naranja (el cable de control) a GPIO17.

Por último, edité algunos de los archivos de animación del clima en GIMP para agregar mis propios toques personales, como murciélagos en la luna y una carita sonriente en el sol. También agregué una animación de rueda de casete personalizada "Old Tech New Spec" para que se reproduzca al inicio, solo por diversión.

Paso 5: Jiggle de auriculares

Jiggle de auriculares
Jiggle de auriculares
Jiggle de auriculares
Jiggle de auriculares
Jiggle de auriculares
Jiggle de auriculares
Jiggle de auriculares
Jiggle de auriculares

La idea del WeatherMan era que se sentaría pasivamente en el altavoz de mi escritorio, mostrando ocasionalmente el clima, ¡pero quería que hiciera un poco más! Los auriculares que venían con él eran tostados pero clásicos de los 80, así que decidí hacer algo con ellos. Después de quitar todo el cable y pegar en caliente el roto, me quedé con tres partes, el enchufe de 3,5 mm, el botón en forma de diamante y los propios teléfonos en su banda de metal flexible.

Se me ocurrió la idea de que si pudiera encontrar alguna forma de montar los teléfonos en la parte superior de la unidad, podría hacerlos girar hacia adelante y hacia atrás con un servo, y usar esto como una notificación adicional.

En primer lugar, perforé el tapón de 3,5 mm y desmonté el interruptor de diamante, luego los deslicé en un trozo de varilla roscada. A continuación, pegué una tuerca a un conector de plástico, para que la varilla pudiera asentarse de forma segura (y recta) sobre el servo. En el otro extremo de la varilla agregué otra tuerca. Finalmente utilicé Sugru gris para unir la parte superior de la varilla a la banda de los auriculares y también para cubrir la tuerca en la parte inferior del ensamblaje. Si no ha oído hablar de Sugru, es un pegamento moldeable que viene en pequeñas bolsitas de colores: se moldea como Play-Doh pero se pega como superglue y se endurece como el plástico.

Con el reciente clima frío, Sugru tardó unos días en endurecerse por completo, pero los auriculares y su soporte pronto estuvieron listos para el ensamblaje final.

Paso 6: Montaje

Montaje
Montaje
Montaje
Montaje
Montaje
Montaje
Montaje
Montaje

El Pi, HAT y Servo funcionaban bien en el banco, por lo que el siguiente trabajo era meterlos en el estuche. Antes de comenzar con los componentes grandes, utilicé un poco de Sugru gris sobrante para fijar en el dial de volumen, la toma de auriculares y el interruptor de "cinta de metal", clasificando los cosméticos. También pegué los botones Play, Stop, FF & Rew originales a un conducto de plástico para que permanecieran en el lugar correcto. Fue una pena no reutilizar ninguno de los botones esta vez, ¡pero realmente no había nada que controlar!

Usé lo último del Sugru gris para mantener el servo en posición, con su eje asomando a través de la toma de auriculares agrandada. Pasando a la otra mitad de la caja, usé un poco de Sugru negro para asegurar el conjunto HAT y Pi a la puerta de la cinta, de modo que se abrieran con ella. Realmente disfruté el pequeño toque final: fijarlo en un imán GeoMag para que la puerta se mantuviera cerrada firmemente.

Poner las dos mitades juntas fue un asunto nervioso, ya que temía que Pi y Servo chocaran entre sí, pero al final había alrededor de un milímetro de sobra, mucho en mi libro. Como la puerta de apertura original daría acceso completo al interior para futuras reparaciones, simplemente pegué las dos mitades con pegamento caliente y, después de limpiar mis huellas dactilares grasientas, coloqué el conjunto de auriculares en la parte superior, ¡listo!

Paso 7: Obsesión tranquila

Obsesión tranquila
Obsesión tranquila
Obsesión tranquila
Obsesión tranquila

Segundo premio en el Concurso de Reutilización

Recomendado: