1Aug

Construye un indicador LED con una Raspberry Pi( para correo electrónico, clima o cualquier cosa)

click fraud protection

Raspberry Pi es una bonita plataforma compacta para conectar una luz indicadora a todo tipo de proyectos: notificación meteorológica, nuevos correos electrónicos, etc. Siga leyendo mientras le mostramos cómo conectar un módulo LED a su Pi y configurar algunos básicosnotificaciones

¿Por qué quiero hacer esto?

Porque es divertido. A diferencia de muchos de nuestros tutoriales, donde incluimos una pequeña propaganda en la parte superior que describe exactamente qué beneficio obtendrá del proyecto, la propaganda es bastante corta en este caso porque el beneficio es simplemente divertirse.

El Raspberry Pi es un dispositivo perfecto para jugar, experimentar con la electrónica y aprender algo de programación. Nadie necesita como indicador de lluvia ambiental en su cocina, por ejemplo, pero construir uno es un ejercicio divertido y un gran recordatorio para llevar su paraguas en días potencialmente tormentosos.

¿Qué necesito?

Para seguir con tu tutorial, necesitarás algunas cosas. En primer lugar, suponemos que ya ha seguido nuestro tutorial anterior: la Guía de HTG para comenzar con Raspberry Pi( y por lo tanto, tiene los aspectos básicos cubiertos para instalar Rasbian en nuestra Raspberry Pi).

instagram viewer

Si está buscando hacer este proyecto dentro de un presupuesto, podemos decirle con confianza que el modelo más nuevo de Raspberry Pi es una exageración significativa para el trabajo y le recomendamos que elimine el polvo de una Raspberry Pi vieja que tienemetido en el armario o recoger uno usado barato de eBay o similar. En cuanto al presupuesto, el modelo A o Raspberry Pi 1 Modelo A o Modelo B enganchado a eBay por $ 10-15 es una opción perfecta para este proyecto en comparación con la compra de una nueva generación Pi actual de $ 35.

Además de tener una unidad Pi funcional con Raspbian instalado, necesitará las siguientes cosas: módulo

  • 1 LedBorg( ~ $ 5.00 con envío de $ 4 desde el Reino Unido a EE. UU., Funciona con todos los modelos Raspberry Pi).
  • 1 Funda Clear Raspberry Pi compatible con su modelo Pi particular como este caso Raspberry Pi 1 Modelo B.

Nota: La carcasa transparente / mate de Pi es totalmente opcional, pero si actualmente está utilizando una caja opaca, su indicador LED estará oculto en el interior. Necesitarás hacer un agujero en tu maleta para dejar salir la luz o usar un cable de extensión GPIO con un kit de arranque, como este de Adafruit Industries, para atar el LedBorg a tu Raspberry Pi. Si bien el uso del cable de arranque agrega alrededor de $ 8 a expensas del proyecto, ofrece más posibilidades para personalizar el producto final, ya que puede colocar el LED más fácilmente dentro de las cosas o debajo de algo que desea iluminar.

Instalar el

de LedBorg Si bien podría construirse un indicador LED completo desde cero( y una investigación en el motor de búsqueda atraerá a muchas personas que lo han hecho), la organización de Piborg produce un módulo LED tan compacto y económico, el LedBorg, que no pudimos resistirnos a usarlo como base para nuestro proyecto de indicadores LED Raspberry Pi.

La instalación del módulo es muy fácil ya que está diseñada para encajar directamente sobre los pines GPIO en el Pi. Primero, apaga tu Pi y abre la carcasa.

La parte más importante del proceso de instalación es que orienta el módulo para que el ícono de LedBorg esté más cerca del módulo RCA en la placa Raspberry Pi( y así el borde del LedBorg esté alineado con los bordes de la placa Pi con elparte sobresaliente del LedBorg colgando sobre el tablero Pi y no fuera del borde).Vea la fotografía de arriba.

Mientras tenga abierta la placa Pi, ahora sería un excelente momento para cubrir los indicadores LED integrados( al lado de los puertos USB), especialmente si está utilizando una carcasa transparente. No quiere que sea confuso leer su indicador LedBorg porque las luces indicadoras de alimentación y red son tan brillantes.

Cubrimos el nuestro con una capa de cinta aislante blanca. Esto los atenuaba lo suficiente como para que aún pudiéramos hacer referencia a ellos, pero eran mucho más tenues que el LedBorg, ya no era una distracción.

Una vez que tenga el LedBorg instalado y, opcionalmente, haya cubierto los indicadores LED del Pi con cinta aislante, es hora de volver a cerrar el estuche. Arranque su Pi antes de pasar a la siguiente fase del tutorial.

Instalación del software LedBorg

PiBorg proporciona un excelente paquete de software para LedBorg que incluye tanto un controlador GUI como controladores para acceder a LedBorg desde la línea de comandos.

Antes de comenzar, debe asegurarse de obtener el paquete correcto para su versión de Rasbian y el número de revisión de su placa Raspberry Pi.

Si su placa Raspberry Pi no tiene orificios de montaje, es la Revisión 1. Si su Raspberry Pi tiene orificios de montaje( ubicados en los puertos USB y entre la alimentación y el puerto HDMI) entonces es la Revisión 2. También necesita saber el núcleoversión de su instalación Rasbian. Abra el terminal e ingrese el siguiente comando para verificar:

uname -r

Una vez que tenga el número de revisión y el número del kernel, puede visitar la sección de Paquetes aquí para obtener el enlace de su paquete. En nuestro caso, estamos usando una placa de Revisión 1 con el kernel 3.6.11, así que tomaríamos el archivo raspbian-2013-02-09-rev1.zip.

Para instalar todos los accesorios, necesitamos abrir la terminal en el Pi.y luego ingrese los siguientes comandos para instalar el paquete LedBorg.

Nota: Debe reemplazar la URL en el tercer comando con la URL del paquete para su combinación de placa / kernel.

mkdir ~ / ledborg-setup
cd ~ / ledborg-setup
wget -O setup.zip http: //www.piborg.org/downloads/ledborg/ raspbian-2013-02-09-rev1.zip
descomprimir setup.zip
chmod + x install.sh
. /install.sh

En este punto, ahora tiene el contenedor GUI para los controladores LedBorg y los controladores instalados. En su escritorio Raspbian verá un ícono para el envoltorio de la GUI:

Continúe y haga clic en el ícono de LedBorg para iniciar el envoltorio de la GUI.Se le tratará con la interfaz del selector de color de la siguiente manera:

Ahora es el momento perfecto para asegurarse de que su módulo sea funcional. Elija cualquier color, excepto negro, para probarlo. Vamos a probarlo seleccionando algunos colores:

¡Se ve bien! Es brillante y el plástico esmerilado de la caja que pedimos para el proyecto ofrece una difusión moderada. Si quiere jugar más con el módulo LED antes de seguir adelante, haga clic en Demo Mode:

En el modo demostración, puede recorrer todos los colores a diferentes velocidades, comprobar la salida alta / baja y poner el módulo LED a prueba.

Es aquí en la sección Modo de demostración que también puede convertir su LedBorg en el primero de muchos indicadores. Al seleccionar CPU en la sección Colores, el LED comenzará a cambiar de verde a amarillo a rojo para indicar carga en el procesador ARM de la Raspberry Pi. Sugerimos cambiar la velocidad a lenta mientras lo hace: Fast actualiza el LED demasiado rápido y hace que el indicador de la CPU sea una distracción en lugar de útil.

Además de utilizar la interfaz de la GUI para seleccionar colores, puede seleccionar colores del terminal utilizando valores RGB.Abra el terminal e ingrese el siguiente comando para apagar el LED:

echo "000" & gt;/dev/ ledborg

La forma en que LedBorg maneja los valores RGB es que 0 significa que el canal está apagado, 1 significa que el canal tiene la mitad de la potencia, y 2 significa que el canal está a plena potencia. Entonces, por ejemplo, 001 establecería el canal rojo al 0%, el canal verde al 0% y el canal azul al 50% de potencia.

Cambie el valor a 002 y la salida del LED permanece en azul, pero se vuelve más brillante porque el canal azul está ahora al 100% de salida. Cambia el valor a 202 y el rojo y el azul a máxima potencia se combinan para crear un color magenta.

Ahora que sabemos cómo manipular manualmente el LED, veamos el uso de scripts para convertir nuestro LED de una luz simple a un indicador real.

Configurando su LedBorg como indicador de lluvia

Para esta parte del tutorial combinaremos varias cosas para convertir nuestro módulo LED LedBorg en un indicador de lluvia basado en el pronóstico del tiempo para nuestra ubicación. Usaremos una secuencia de comandos de Python para llamar a una API de clima que a su vez leerá la posibilidad de que llueva durante el día, y luego alternar el LED de apagado a azul brillante para indicar la lluvia pronosticada.

Primero, necesitamos obtener una clave de acceso API para Weather Underground. Para uso personal y pequeños proyectos de desarrollo, la API es gratuita. Visite la página de registro de Weather API aquí y regístrese para obtener una clave de API.

Una vez que tenga su clave de API, visite el Weather Underground y busque la ciudad que desea supervisar. En nuestro caso, vamos a monitorear San Francisco, CA.La URL de la página de pronóstico de San Fransisco es:

http: //www.wunderground.com/US/CA/ San_Francisco.html

La parte más importante para nuestros propósitos es la última parte de la URL: /CA/ San_Francisco.html. Vamos a usar eso para editar la URL pronosticada para la herramienta API.La URL base es:

http: //api.wunderground.com/api/ SU CLAVE DE API /forecast/q/STATE/ CITY.json

Puede generar el pronóstico para cualquier ciudad de los EE. UU. Ingresando su clave API, el código de estado de dos letras y el nombre de la ciudad de la URL que extrajo de su ClimaResultados de búsqueda subterráneos.

Una vez que tiene la URL de la API con su clave API y estado / ciudad insertados, puede editar la siguiente secuencia de comandos de Python creando un nuevo documento de texto en su Pi usando Leafpad y pegando el siguiente código en ella:

de urllib2 import urlopen
import json

req = urlopen( 'http: //api.wunderground.com/api/ YOUR API KEY /forecast/q/STATE/ CITY.json')
parsed_json = json.load( req)
pop = int( parsed_json ['forecast'] ['txt_forecast'] ['forecastday'][0] ['pop'])

# El siguiente es un valor de depuración.
# Edite el hash y cambie
# el entero a 0-100 para probar
# la respuesta del LED.

# pop = 0

print 'La probabilidad actual de precipitación es{ }.'. Format( pop)

# La configuración predeterminada es encender el LED
# para cualquier probabilidad de lluvia superior al 20%.Puede ajustar
# el valor en "if pop & gt; 20:" como desee.

si pop & gt;20:
LedBorg = abrir( '/dev/ ledborg', 'w')
LedBorg.write( '002')
del LedBorg
imprimir( 'Rain!')
más:
LedBorg = abrir( '/dev/ ledborg', 'w ')
LedBorg.write( ' 000 ')
del LedBorg
print( ' ¡No llueve! ')

Guarde el archivo como wunderground.py en el directorio /home/pi/.Abra el terminal e ingrese el siguiente comando:

python wunderground.py

Si ha ingresado correctamente su clave API y sus códigos de estado / ciudad, debería devolver una respuesta que se parece a:

Si se pronostica precipitación para su áreasu salida de LedBorg debería verse así:

Ahora, esperar un día lluvioso para probar adecuadamente el script sería tedioso. Si hoy no hay posibilidad de que llueva en su área y desea que el LED se ilumine, edite el script wunderground.py y reemplace el valor de paso "pop = pop" en la línea 13 con un valor mayor a 20, como el 60que nuestro pronóstico regresóSolo recuerda cambiar la línea a "pop = pop" cuando hayas terminado.

El paso final es configurar un trabajo cron para ejecutar automáticamente el script que acabamos de guardar en un intervalo regular a fin de mantener el indicador LED al día. Dado que esta tarea es necesaria tanto para este script como para el indicador de correo electrónico que sigue, vamos a cubrir la configuración de un trabajo cron después de que le hayamos mostrado cómo configurar el otro script.

Configurando su LedBorg como indicador de Gmail

¿A quién no le gusta la corrección de dopamina que implica ver nuevos correos electrónicos en su bandeja de entrada? En esta parte del tutorial le mostraremos cómo usar LedBorg como un nuevo indicador de Gmail. Al igual que la última vez, vamos a combinar una entrada externa( en este caso, un feed Atom en lugar de una API) y un script simple para controlar nuestro LED.

Necesitamos ampliar un poco la funcionalidad de nuestra instalación de Python instalando FeedParser, una herramienta de lectura de fuentes RSS / Atom de Python. Abra el terminal e ingrese el siguiente comando:

sudo easy_install feedparser

Una vez que la instalación esté completa, podemos comenzar a trabajar creando nuestro script de comprobación de Gmail. De nuevo, usando Leafpad, pegue el siguiente texto en el editor. Cambie el nombre de usuario y la contraseña para que coincida con el nombre de usuario y la contraseña de la cuenta de Gmail que desea verificar.

import feedparser

# Ingrese su nombre de usuario de Gmail
# y contraseña. No incluya
# the @ gmail.com parte de
# su nombre de usuario.

username = "username"
password = "password"

mail = int( feedparser.parse( "https: //" + username + ":" + password + "@ mail.google.com /gmail/feed/ atom") ["feed"] [" fullcount "])

# El siguiente es un valor de depuración.
# Edite el hash y cambie
# el entero a 0 o 1 para probar
# la respuesta del LED.

# mail = 0

si correo & gt;0:
LedBorg = abrir( '/dev/ ledborg', 'w')
LedBorg.write( '020')
del LedBorg
imprimir( 'Mail!')
más:
LedBorg = abrir( '/dev/ ledborg', 'w ')
LedBorg.write( ' 000 ')
del LedBorg
print( ' ¡Sin correo! ')

Guarde el script como gmailcheck.py. Abra la terminal y escriba el siguiente comando:

python gmailcheck.py

Si tiene un correo electrónico en su bandeja de entrada de Gmail, el LED se pondrá verde y obtendrá una respuesta como esta:

Si tiene correo en su bandeja de entrada de Gmail, su LedBorgse verá así:

Al igual que el script de comprobación de lluvia, hemos incluido un valor de depuración. Si no tiene ningún correo electrónico nuevo, puede enviarse un correo electrónico para aumentar el conteo de la bandeja de entrada a 1 o puede editar el hash de comentarios y cambiar la línea de depuración a "mail = 1" para probar el script. Recuerde revertir la línea cuando termine la prueba.

Pase a la siguiente sección del tutorial para configurar su secuencia de comandos de Gmail para que se ejecute según un cronograma.

Configuración de un trabajo cron para ejecutar su secuencia de comandos

Ahora que tenemos dos scripts para jugar, debemos configurar un trabajo cron para ejecutarlos durante el día para mantener el indicador LED actualizado.

Lo primero que queremos hacer es apagar el LED si está actualmente encendido de nuestros experimentos previos. En el tipo de terminal:

echo "000" & gt;/dev/ ledborg

Mientras todavía estás en la línea de comandos, puedes abrir el editor cron. Si nunca antes ha configurado un trabajo cron, le recomendamos revisar nuestra guía para usarlo aquí.Dicho esto, lo guiaremos a través de la configuración de un horario básico aquí.

En el tipo de terminal:

sudo crontab -e

Esto abrirá la tabla cron de Raspbian en el editor de texto Nano. Use las teclas de flecha para desplazarse hacia abajo hasta la parte inferior. Aquí es donde vamos a configurar el trabajo cron recurrente para nuestros scripts de Python.

Si desea configurar el script de lluvia, ingrese la siguiente línea en la tabla cron:

* / 5 * * * * python /home/pi/ wunderground.py

Presione CTRL + X para salir;seleccione sí para guardar y sobrescribir la tabla cron existente. El valor que ingresamos en la tabla cron "* / 5 * * * *" establece que la secuencia de comandos se ejecute cada 5 minutos, para siempre.

Cada 5 minutos es un lapso de tiempo excelente para un script que verifica la lluvia pronosticada, incluso podría argumentarse que es un poco agresivo, pero si intenta mantener su correo electrónico es un lapso demasiado largo paranotificación. Si está configurando el cronograma para el guión de notificación de Gmail, ingrese la siguiente línea en la tabla cron:

* / 1 * * * * python /home/pi/ wunderground.py

Esta entrada ejecuta el script gmailcheck.py cada minuto para un proceso mucho más rápidonotificación de actualización.

¡Eso es todo! Puedes experimentar con tus propios scripts de Python al levantar las declaraciones if / else de las nuestras y probarlas con nuevas variables. Si puede encontrar una fuente de entrada para los datos, puede convertirla en una variable en su secuencia de comandos Python: promedios del mercado accionario, recuentos de polen, menciones de Twitter, si hay una API puede convertirlo en un indicador LED ambiental.

Finalmente, quiero agradecer a todos los excelentes recursos que utilicé para trabajar en este proyecto. Han pasado más de una década desde que escribí programas activamente y me costó algunos golpes quitar el polvo y el óxido. Los colaboradores de /r/ LearnPython me ayudaron a repasar la salida API de Weather Underground, estudiando cómo Michael en Mitch Tech se ocupó de Gmail Atom feed lo analizó para el LedBorg fácil, y estudiar los módulos de aprendizaje de Python en Code Academy fue un granforma de recoger la sintaxis básica y la estructura de un lenguaje que nunca había usado antes.