El clima en la pantalla de nuestra Raspberry PI 3

Uno de las cosas que quería poner en la pantalla de mi Raspberry PI 3 era la hora y el clima.

Estuve revisando varios proyectos que no demanden demasiado tiempo tenerlos en marcha sin demasiado éxito.

Cuando ya esta a punto de abandonar la empresa me encontré con el desarrollo rpiWSi  de krokus57 que tenía prácticamente todo lo que buscaba.

Este desarrollo utiliza la información que provee wunderground y es necesario tener una llave para poder consumir el servicio.  Una api de desarrollo es suficiente para el uso doméstico o pruebas tecnológicas.

Dependencias:

Para que rpiWSi pueda mostrarnos el clima, tenemos que satisfacer sus dependencias.  Instalando el paquete python-pygame satisfacemos los requisitos de ejecución:

sudo apt-get install python-pygame

Descarga:

El primer paso a realizar el descargar el zip que contiene al proyecto a nuestra Raspberry.

Para eso hay que ejecutar el siguiente comando desde el Raspbian.

cd /tmp/
wget https://github.com/krokus57/rpiWSi/archive/master.zip

El siguiente paso es descomprimir el zip que descargamos y mover el directorio

unzip master.zip
cd /tmp/rpiWSi-master
sudo mv ./rpiWSi /opt

Ya teniendo el desarrollo en la ubicación final, se debe proceder a modificar la parametría para que nos muestre el clima de nuestra ciudad y en nuestro idioma.

Configuración:

El archivo de configuración es /opt/rpiWSi/settings.py donde marco las líneas que se deberían modificar en negrita.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

#interface language
#from lang_ru import *
from lang_en import *

#weather underground api key NEED TO CHANGE
wu_api_key = 'b12345abcd9ffda0a51f'

#gps coordinates NEED TO CHANGE
wu_gps_coordinates = '55.6890593,37.2906527'
#weather underground api language
#wu_language = 'RU'
wu_language = 'EN'

#do not change!
wu_icon_set = 'k'

#choose you temperature units (C/F)
temperature_inits="celsius"
#temperature_inits="fahrenheit"

debug=False
#debug=True

#web server port
web_server_port=8080

#screen resolution
screen_width,screen_height = 240,320


#do not change anything below

if __name__=="__main__":
 import rpiWSi,os
 if os.uname()[0]=="Linux":
 rpiWSi.ws_start(90)
 else:
 rpiWSi.ws_start(0)

Listo los cambios realicé en mi Raspbian

  1. from lang_sp import * 
  2. wu_api_key = ‘supersecretito’
  3. wu_gps_coordinates = ‘-34.603673,-58.381629’
  4. wu_language = ‘SP’
  5. screen_width,screen_height = 320,480

para editar ejecuto el comando

sudo vi  /opt/rpiWSi/settings.py

En el punto 1 hago referencia a un archivo de locales en español que creé para tener la pantalla en español.

Lo instalo ejecutando los siguientes comandos:

cd /tmp
wget http://www.sismonda.com.ar/files/2017/04/lang_sp.zip
unzip lang_sp.zip
mv /tmp/lang_sp.py /opt/rpiWSi

El punto 2 es la llave de la API que se obtiene en wunderground

La información para completar el punto 3 la obtuve desde Google Maps, busque el nombre de la ciudad y desde un punto de referencia hice click derecho y click sobre la opción “Qué hay aquí?” / “What’s here?”

El punto 4 es la regionalización de la API de wunderground.

Y por último, el punto 5 es la resolución de pantalla que vino con el kit Raspberry PI 3 que compré.

El siguiente paso es ejecutar el script y comprobar el funcionamiento.

cd /opt/rpiWSi
sudo python rpiWSi.py

Raspberry / Raspbian mostrando el clima en la pantalla LCD

Una vez que comprobé que funciona correctamente y obtuve el clima y el pronostico en la pantalla, voy a agregar las instrucciones para que se ejecute cuando prenda el Raspbian.

sudo vi /etc/rc.local

E incorporar la siguiente línea en forma inmediata superior a la ultima instrucción “exit 0”

cd /opt/rpiWSi/ && nohup python rpiWSi.py >/dev/null 2>&1 &

Deja un comentario