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
- from lang_sp import *
- wu_api_key = ‘supersecretito’
- wu_gps_coordinates = ‘-34.603673,-58.381629’
- wu_language = ‘SP’
- 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/wp-content/uploads/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
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 &
4 respuestas a «El clima en la pantalla de nuestra Raspberry PI 3»
Buenos días… tengo problemas con los números… no los muestra correctamente
Fijate que la api este viva y que hayas configurado bien los datos de usuario. Los valores los muestra desalineados o ves todo en 0. Yo estuve con problemas con la API. Estoy armando un tutorial de un script que hice yo que funciona en bash y usa la api de openwheader. https://openweathermap.org/. Fijate mañana 12/07 lo termino y lo subo.
como puedo hacer para enviarte una foto ….
asi lo configure… tampoco me salen los dibujos… y me salen los titulos como escritos en ruso… (tipo simbolos ) #!/usr/bin/env python
# -*- coding: utf-8 -*-
#interface language
#from lang_ru import *
from lang_sp import *
#weather underground api key NEED TO CHANGE
wu_api_key = ‘supersecretito’
#gps coordinates NEED TO CHANGE
wu_gps_coordinates = ‘-34.61,-58.38’
#weather underground api language
#wu_language = ‘RU’
wu_language = ‘SP’
#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
screen_width,screen_height = 320,480
#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)