dilluns, 14 d’octubre de 2013

Previsió del temps

Mentre no arriben alguns components que he demanat, m'he posat a fer probes.

Per començar he fet funcionar el wifi, he utilitzat un dongle que tenia vell ja que el que havia comprat per aquesta finalitat no tenia el driver integrat i sembla que el compilat no li ha fet massa profit.

Els que he fet servir són:

TP-LINK TL-WN721N (aquest si que ha funcionat)
TP-LINK TL-WN725N (el que no ha funcionat)

la diferència principal és que el 725 és en format micro, per tant no ocupa massa i és ideal si es vol posar tot dintre una carcassa, però mentre faig probes, el 721 ja em servirà.

Això si, he tingut que fer la configuració a mà ja que el GUI del raspbian no detecta el dongle (tot i que inicialment si ho feia i funcionava, coses rares...)

Per fer-ho he utilitzar el codi trobat a Adafruit (setting-up-wifi-with-occidentalis) i afegint aquest codi al /etc/network/interfaces
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
   wpa-scan-ssid 1
   wpa-ap-scan 1
   wpa-key-mgmt WPA-PSK
   wpa-proto RSN WPA
   wpa-pairwise CCMP TKIP
   wpa-group CCMP TKIP
   wpa-ssid "My Secret SSID"
   wpa-psk "My SSID PSK"
 
iface default inet dhcp

El que també he estat provant, és rebre previsió del temps i dades actualitzades, per aquest fi he volgut fer servir el servei de yahoo! que és molt utilitzat, he trobat dues vies per fer-lo servir.

1. python-weather-api

Aquesta api que podem instal·lar i per tant importar en les nostres feinetes en python permet agafar dades del temps amb yahoo!, weather.com i NOAA.
Les probes han estat una mica confuses, per començar en torna la informació en json i que no controlo gens ni mica i ls segons i mes important és que el buscador de IDs per identificar el lloc que volem que ens agafi les dades, no retornava correctament el codi de Sils, si de Girona per exemple, però en canvi el de Sils m'el retornava malament i em donava error al fer la crida. Un cop l'he trobat no hi ha hagut cap problema i tot perfecte.

2. adafruit forecast.py for pi thermal printer

Buscant buscant he trobat aquest codi, el que m'ha interessat d'aquest codi és que per agafar les dades no utilitzar llibreries externes, yahoo! posa a disposició dels usuaris un servei RSS que podem obtenir mitjançant una URL com la següent:


On w= és l'ID que assigna yahoo al poble que volem i que simplement l'hem de copiar de la URL qual el busquem per http://weather.yahoo.com/spain/.

El valor u=c ens retorna les dades en graus Celsius (c) o Farenheit (f) i així evitar tenir qeu fer nosaltres la conversió.

Per capturar la URL es fa servir urllib i despres es parseja amb parseString que xml.dom.minidom, molt senzill de poder accedir a les dades en un moment.

Aquests sistema també m'agrada perquè et retorna una versió en text del temps com per exemple "partly cloudy (day)", aquest text també esta associat a un codi, per tant podem generar una traducció senzilla a partir d'un vector, o en interficies gràfiques associar a una imatge.

Aquest és el mètode que faré servir.

M'he trobat un problema però, al voler fer-la servir en python3, que és a ón faig funcionat les llibreries per connectar amb la LCD. No és problema greu, ja que el sistema de urllib a python3 ha migrat cap a urllib.request i ha estat tant senzill com canviar l'import a urllib.request i urllib.urlopen(...) a urllib.request.urlopen(...) i tot funciona a la perfecció!

En la pròxima entrada molt segurament parli de com obtenir les IPs d'eth0, wlan0 i la nostra IP d'internet, necessàries per poder connectar a la nostre raspberry i que les poguem mostrar per pantalla.

Cap comentari:

Publica un comentari