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.

dilluns, 16 de setembre del 2013

Recopilatòri (software)

Bé, el que vull fer aquí és un petit recopilatòri del programari utilitzat, per si passa alguna desgràcia poder recuperar feina feta ben ràpid.

Per començar he requerit instalar quick2wire, la base sobre la que treballa la llibreria que interactua amb la LCD, aquesta informació l'he tret dels següents links:

Installing the Think Bowl I2C Libraries for Python
I2C Python Library - LCD with the Raspberry Pi

Però primer hem d'instal·lar algo, crec que eren les setuptools per poder instal·lar quick2wire (deixo aquesta dada com a confirmació), quan volguem instal·lar mitjançant:

sudo python3 setup.py install

Ja ens donarà l'error si ens falta alguna cosa per instal·lar.

Molt important és que executem el setup.py amb python3 i no amb python, ja que quick2wire funciona sobre python3.

Aquests passos són suficients per al correcte funcionament amb la LCD, la comanda declarar i per poder treballar amb la capa I2C de mjkdz i perquè treballi correctament amb els pins és:

lcd = i2c_lcd.i2c_lcd(0x20, 1, 4, 5, 6, 0, 1, 2, 3, 7)

Si s'ha canviat el port 0x20 s'ha de tenir en compte.

Amb això ja tindrem la LCD funcionant.

diumenge, 15 de setembre del 2013

Ja funciona la LCD!

He aconseguit fer funcionar la LCD! Per fí!

Els problemes han estat dos, el primer que la "faixa" de cables que feia servir estava mal puntejada, el pin de contrast estava girant amb el RS. El segon, és que per algun motiu no es podia regular el contrast.

El primer problema ha tingut fàcil solució, i ja he pogut connectar i enviar comandes a la LCD, tot OK, però no sortia res a pantalla, quan toquetejava el pin de contrast aconseguia veure els caràcters escrits, per tant sabia que el problema estava en que el contrast tenia un problema!?

Després de cercar alguna possible solució per un munt de foros he trobat algú que havia posat una resistència de 3,9Kohms puntejada amb el pin de terra (o això he entès), per tant, he buscar totes les resistències que he pogut, al final un aparell de 1K, posades en sèrie, puntejat al pin terra de la LCD i... ZAS! Ja tenim test!

Pantalla LCD 16x02 amb I2C a dx.com: Meeeno IIC LCD-1602 Blue Screen LCD Module Shield for Arduino
Pantalla LCD 16x02 sense I2C a dx.com: 1602A 16 x 2 Lines White Character LCD Module w/ Blue Backlight (DC 5V)

dimecres, 11 de setembre del 2013

Tornem-hi!

Doncs això, m'he demanat una altre RBP i mentre acabo de mirar quin problema pot tenir la vella o l'envio a reparar, podré continuar amb el projecte, ara tinc que reprendre una mica el punt en el que estava, no vaig guardar còpia de res, per pràcticament no tenir res fet, tot sigui dit.

Intentar trobar què era el que creia haver solucionat en el moment que va petar tot i creuar els dits perquè no torni a petar altre cop.

Potser per facilitar la feina acabo demanant algun estri més, com un cable per connectar directament a la RBP a la protoboard.

Ja que crec que el problema de l'antiga va ser algun creuament amb algun cable connectat a una sortida del GPIO.... no surt molt del pressupost, uns 10€ i ja tindria tant el cable com la peça que va connectada a la protoboard.

Ja veurem, potser de cara al mes que ve!

dissabte, 1 de juny del 2013

Primera baixa

Doncs bé, sembla que ja hi ha la primera baixa entre els components (que ja tinc tots) i aquest no és mes que la propia Raspberry... alguna cosa ha passat, de fet ja feia uns dies que feia coses rarres i acaba de deixar de donar qualsevol tipus de senyal... aixi que tocarà esperar a reparar-la.

Què hi farem!

En tot cas us poso una mica al dia del que he anat mirant.

Primer és que l'adatador I2C per utilitzar en les LC 16x2 sembla ser que no té un piout 1-1 i que s'ha de remapejar fent servir les llibreries que hi ha per LCDs en python, ha estat en aquest moment (mentre estava en la consola de python) que ha deixat de responde, així que no sé si anava per bon camí.

Els links que he trobat documentació al respecte són els següents:

[SOLVED] MJKDZ brand I2C Controller working with 1602 LCD
I2C Python Library - LCD with the Raspberry Pi

Tindrem que esperar una mica a poder saber si els problemes que havia tingut eren per això!