Raspberry Pi Zero es un nuevo dispositivo que entra fuerte en el terreno de los dispositivos conectados y a la Internet de las Cosas. Gracias a su reducido tamaño y consumo podemos darle un montón de posibilidades en casa, como por ejemplo la automatización de determinadas tareas o simplemente mostrar información en un espacio ínfimo. Especialmente si la complementamos con unpequeño display OLED como éste, comercializado por Adafruit.
Frederic Vandenbosch ha creado un interesante proyecto con la Raspberry Pi Zero, usando un display de Adafruit anteriormente mencionado y un par de pulsadores soldados en los terminales GPIO de la Raspberry Pi.
Para conectar la Zero a internet, Frederic ha utilizado una extensión wifi de la que ya hablamos en este blog y que permite agregar conectividad Wi-Fi a la menor de las Raspberry Pi soldándolo directamente a la placa. Como podéis ver en el vídeo que acompaña la imagen, los dos pulsadores son programables y en los ejemplos propuestos permiten navegar por una serie de opciones, como por ejemplo mostrar la dirección IP o forzar la reconexión de la Raspberry Pi Zero a internet.
Hardware
El hardware consiste en los siguientes componentes:
Raspberry Pi Cero
Adafruit 128 × 64 SSD1306 OLED
Edimax wifi dongle
2 grandes pulsadores
El cableado del OLED y botones es bastante sencillo, como se ilustra a continuación:
El dongle wifi se conecta de la misma manera como lo hice anteriormente con el hub USB:
Pi Zero PP1 a dongle 5V
Pi Cero PP6 al dongle GND
Pi Cero PP22 para dongle D +
Pi Cero PP23 para dongle D-
Por último, para mantener todo en su lugar, he diseñado una caja sencilla lo suficientemente grande para encajar todo. Un panel trasero se atornilla en el lugar para mantener todos los componentes en el interior, dejando al descubierto el puerto microUSB entrada de energía en el lado.
Un poco de cinta kapton evita contactos expuesto a tocarse y mantiene el cableado en su lugar.El dongle wifi se coloca en la parte superior para una mejor conectividad.Su LED azul brillante brilla a través del recinto, dando una clara indicación de su estado y la actividad.
Por el lado del software del proyecto, se necesita la creación de la tarjeta microSD con la última imagen Raspbian Jessie disponible.Arrancando desde el combo hub Pi Cero / USB con el teclado y wifi dongle conectado porque el puerto USB de este proyecto Pi Cero se ha cableado a un dongle wifi y un teclado ya no se puede conectar .
Se configura el wifi añadiendo el SSID y la frase de contraseña correcta en el archivo / etc / network / interfaces.Después de probar la conectividad wifi, poner la tarjeta microSD de vuelta en el Pi correcta.Con la conectividad de red, es posible iniciar sesión con SSH y trabajar en el guión para mostrar la información deseada.
Uso de la Biblioteca de Python Adafruit OLED SSD1306 y algo de código Python personalizada, en el ejemplo se programan tres pantallas diferentes:
Hora y fecha
Configuración de la red
Los medios sociales suscriptores / seguidores
El botón izquierdo a través de las diferentes pantallas, mientras que el botón derecho desencadena una acción personalizada por pantalla.
En el caso de la visualización de la hora y la fecha, el botón, cambia entre las 12h y las 24h representación.Para la configuración de red, obliga al wifi de volver a conectar mediante un descenso de la interfaz y obligando de nuevo.Por último, para evitar el tráfico excesivo, información de medios sociales solamente se recupera cada cinco minutos, al pulsar el botón de fuerza a la recuperación de la información.
Por supuesto, esto es sólo un subconjunto de lo que podría ser mostrado.Podría recuperar la información del tiempo, el correo electrónico, últimos tweets, etc … Usted también podría tener que desplazarse por pantallas diferentes sin necesidad de pulsar un botón.Todo es posible.
El código actual se puede encontrar a continuación.Está lejos de ser perfecto, pero hace el trabajo.
Por último, para conseguir que se inicie automáticamente al arrancar el sistema, cree un script lanzador (por ejemplo, «launcher.sh«) que contiene la ruta de acceso a la secuencia de comandos, así:
#! / bin / sh cd / home / pi sudo python info_display.py y
Y por último, añadir el cronjob con el comando «sudo crontab -e«:
reboot sh /home/pi/launcher.sh
Cada vez que el Pi se inicia, se pondrá en marcha el script.
#!/usr/bin/env python
import time
import Adafruit_SSD1306
import RPi.GPIO as GPIO
import Image
import ImageFont
import ImageDraw
import os
defdisplay_time():
# Collect current time and date
if(time_format):
current_time = time.strftime(«%I:%M«)
else:
current_time = time.strftime(«%H:%M«)
current_date = time.strftime(«%d/%m/%Y«)
# Clear image buffer by drawing a black filled box
# Only fetch social media data every 5 minutes when active
if((millis – prev_social) >300000):
display_custom(«fetching data …«)
display_social()
prev_social = millis
time.sleep(0.1)
El uso de una pantalla OLED Adafruit, dos pulsadores, un dongle wifi y un pi Cero, permite como vemos una pantalla de información conectada a internet.La información podría ser cualquier cosa: fecha y hora, el clima, el estado de las redes sociales, etc … Los dos botones se utilizan para desplazarse por los datos y desencadenar ciertas acciones.
Gracias a un Arduino, un escudo Ethernet de Arduino, unos botones tipo arcade , unos LEDs , una aplicación web de despliegue y el código de Arduino, SmugSmuh ha creado un proceso de implementación de un curioso botón que tiene el aspecto que parece sacado de la ciencia ficción al puro estilo James Bond:
Puede parecer muy raro , pero SmugMug, que es desarrollador de software en Amazon , cade vez desplegaba con mayor frecuencia mediante la fusión manualmente de ramas, etiquetas, haciendo dobles comprobaciones y a continuación, ejecutando un grupo de comandos que finalmente hacian el trabajo (algunos a través de sudo y otros no). Este proceso podia llevar hasta once pasos , y para empeorar las cosas, no todos los desarrolladores tenían acceso a dicho proceso sintiendose generalmente muy incómodos debido a la complejidad que implicaba.
Finalmente todo se automatizó y el proceso se consolidó en un script de shell, que todavía tenía que ser ejecutado a través de sudo en un servidor designado. Más recientemente, el script de shell estaba envuelto en una aplicación web que hizo las cosas mucho más fácil con el siguinte aspecto :
Mientras que la aplicación web es bastante impresionante y fácil de usar, un desarrollador soñaba con un botón físico real que al pulsarlo reamente lanzara el proceso de implementar código y creó el «SmugMug Deployinator 5000″, cuyas fotos podemos ver a continuación:
Frente
Interior
Obviamente han dejado los fusibles y los cables para «impresionar» pues es un cuadro electrico reciclado del que han aprovechado la caja y los botones ( y «sólo » le han añadido una placa Arduino con un sheld para darle conectividad)
Botones
Arduino Shield Ethernet
El Deployinator 5000 consta de los siguientes componentes:
Kit Arduino arranque
Arduino Ethernet Shield
Verdes, rojos y amarillos LED 5v
Un montón de cables
2-botón interruptor momentáneo con la estación de bloqueo de teclas de eBay
Interruptor de palanca Protegida
Recinto estación de monitoreo del clima usados de cosas raras
La instalación es relativamente simple. El interruptor de palanca, bloqueo del teclado, y dos interruptores momentáneos están conectados en secuencia para que el Arduino los vea como un botón. Cuando se presionan los cuatro a la vez ,entonces, y sólo entonces, el Arduino hace una petición HTTP POST a un servidor de implementación, que a su vez empuja cualquier código pendiente en vivo. Mientras que el Arduino está a la espera para el despliegue a fin, parpadea el LED amarillo. Cuando se despliega el empuje, el LED verde se ilumina. Si algo sale terriblemente mal, el LED rojo indica que ha habido un error (provocando temor en el corazón del implementador)
Las ideas a largo plazo para el Deployinator incluyen la adición de luces más grandes, una bola de discoteca, y la reproducción de música cuando se produce un deploy,etc. Esta idea se puede extrapolar para muchas otras cosas que se puedan controlar con energía de 220V ,por ejemplo usando un dispositivo PowerSwitch o en su defecto simplemente un rele
PowerSwitch II está diseñado para permitirle controlar con seguridad un dispositivo de salida sin exponer ningún voltajes de 120/220 VCA. Puede conectar cualquier salida de 120 VCA 3 clavijas estándar para ser controlado por la mayoría de cualquier microcontrolador.Esto funciona muy bien con Arduino!La cola PowerSwitch II mejora en la cola original de PowerSwitch por lo que le permite cambiar una carga grande (ahora hasta 15A) con una gama más amplia de señales de control (3-12VDC).
!La implementación de código no tiene por qué ser aburrido!
Debe estar conectado para enviar un comentario.