dijous, 17 d’octubre del 2013

Wifi, compilar driver per TL-WN725N

Tal i com vareu poder veure en un altre entrada, ja he fet funcionar el wifi, el millor de tot és que amb el mètode de configuració manual puc utilitzar els 2 dongles wifi sense problemes, el TL-WN721 i el TN-WN725.

Per el TL-WN725 vaig seguir els passos de les següents pàgines, ja que el controlador de la v2 (que és la que tinc, la v1 no cal fer res)

Compile and install driver for TP-Link TL-WN725N version 2 in Raspbian

git clone https://github.com/liwei/rpi-rtl8188eu.git
git clone --depth 1 git://github.com/raspberrypi/linux.git rpi-linux
git clone --depth 1 git://github.com/raspberrypi/firmware.git rpi-firmware
cd rpi-linux
make mrproper
zcat /proc/config.gz > .config
make modules_prepare
cp ../rpi-firmware/extra/Module.symvers .
cd ../rpi-rtl8188eu
CONFIG_RTL8188EU=m make -C ../rpi-linux M=`pwd`
sudo rmmod 8188eu
sudo install -p -m 644 8188eu.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless
sudo depmod -a
sudo modprobe 8188eu

Triga una estona a compilar, però un cop fet no hi ha cap problema, després sols cal configurar l'arxiu /etc/interfaces com comento en una entrada anterior: Previsió del temps

dimarts, 15 d’octubre del 2013

Problemes de corrent

Doncs això sembla, els 5V del port I2C i els que agafa el wifi són massa per la RPI, no puc tenir les dues coses connectades, de fet, a vegades fins i tot tinc problemes si ho faig per ethernet, tindré que alimentar a part el wifi o l'I2C.

Ja veurem com ho fem.

PD: Ja tinc les resistències!

dilluns, 14 d’octubre del 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.