LINKDUINO: Twitter

.



Primero, poner el link de mi fuente de inspiración http://www.themagicclock.com/

Veamos un sencillo ejemplo de cómo sacarle más partido a éste hardware. (Asumimos que tienes instalado DD-WRT,  con el hack del puerto serie e interfaz apropiada para cambiar niveles 3v3 a 5 voltios y tu router tiene conexión a internet).

Crearemos un script sencillo en el bash del router, el cual se conecta a la página xml de una cuenta Twitter y obtiene el "status" actual de dicho usuario. Una vez obtenido, enviará dicho status a nuestro Arduino por puerto serie.
Para ello, nuestro Arduino contendrá el programa de ejemplo explicado anteriormente aqui (mini protocolo serie).

En este caso concreto, según el status del usuario:
  • Si status = S1F, entonces activará el pin 13.
  • Si status = S0F, entonces desactivará el pin 13.
En el ejemplo, uso la cuenta Twitter de éste blog => http://twitter.com/users/show/real2electronic.xml
Podemos ver, que el status actual se encuentra entre las etiquetas text.

El código de nuestro script es:

#!/bin/sh
while true
do
 ping www.google.es -c 4
 URL="http://twitter.com/users/show/real2electronic.xml"

 contenido=`wget -q -O - $URL|grep \<text|sed -e s/\<text\>//g -e s:\</text\>::g`

 echo $contenido
 echo $contenido > /dev/cua/1
 for i in 1 2 3 4 5
 do
  gpio disable 7
  sleep 1
  gpio enable 7
  sleep 1
 done
done




1) Es script realiza un ping para forzar conexión con internet.
2) Obtiene la página, y extrae la linea que se encuentra entre <text> y </text>
3) Muestra y envia por puerto serie dicha cadena
4) Realiza un bucle de encendido/apagado del led de DMZ del router.

Para escribir dicho script, puedes hacerlo mediante vi (conectandote por telnet al router), o bien enviarlo usando WinSCP. Para usar este último,sigue instrucciones de http://www.dd-wrt.com/wiki/index.php/WinSCP




Algo curioso que he descubierto haciendo el script, es que no se pueden realizar más de 150 peticiones a la hora a la página xml de Twitter, asi que se debe modificar dicho script con un sleep de mayor duración. No lo he modificado, para que no sea pesado a la hora de probarlo.


Copia ó crealo con vi dicho script en el directorio /tmp/, el cual tiene permisos de escritura.
Dale permisos de ejecución al archivo: chmod 755 script_name, por ejemplo chmod 755 twitter.sh.
Para ejecutar en segundo plano: root@DD-WRT:/tmp# ./twitter.sh &
 
Recuerda, que dicha estructura de carpetas es RAM y perderás el script cuando reinicie el router.
Si quieres que permanezca en memoria => http://www.dd-wrt.com/wiki/index.php/Startup_Scripts#NVRAM_Method



A continuación, un video tutorial de todo el proceso:







Ahora ya puedes abrir/cerrar una puerta, encender/apagar una caldera, activar una bocina para asustar a tu pareja ... lo que se te ocurra desde Twitter !!!









.

No hay comentarios:

Publicar un comentario en la entrada