Automatizacion del hogar con twitter


 En efecto es posible escribir  un ‘tuit’ y accionar cualquier dispositivo eléctrico por ejemplo una cafetera  y  ademas el sistema para conseguirlo es bastante sencillo

En  el caso del cafe , sólo necesita  una cafetera eléctrica , un interruptor electronico( basicamente un relé sólido ) , un ordenador  , una placa Arduino ,  un script en python  y convertir su cuenta de Twitter (como desarrollador) en una cuenta que accione lo que desee.

En el ejemplo qeu nos proponen desde Instructables,  vemos como es posible hacer que su cafetera  se encienda cuando esté en la cama o en el autobús solamente escribiendo un ‘tuit’. Además de ahorrar tiempo, podrá presumir de que su cuenta del pájaro azul es más inteligente que las demás.

Por supuesto esta idea es extrapolable a cualquier otro sistema que quiera acccionar o liberar de forma remota, como  puede ser un  calentador eléctrico,la calefacción de casas,o simplemente  una  lámpara para simular actividad en su vivienda.

Veamos un vídeo de la cafetera accionada por twitter:

 
Como vemos Tweet-a-pot es una sencilla aplicación  para el control de dispositivos a distancia que usa muy  poco de código y también muy poco  hardware, para tener su propia cafetera accionada  por twitter.

Para hacer su propio Tweet-a-pot  necesitará la siguiente:

  • 1 interrruptor electronico :esto es básicamente un relé que se utiliza para interactuar con el voltaje de corriente alterna mediante una pequeña señal de control de 5VDC
  • 1 placa Arduino (cualquiera sirve)
  • 1 Equipo que ejecute el IDE de Arduino y Python
  • 1 Cafetera goteo

 

Lo primero que necesitará será  configurar su ordenador como receptor.

Para interconectar entre el Arduino y Twitter, vamos a utilizar pyton. Hay una biblioteca que ya está elaborada, que nos permite utilizar la API de Twitter. Se llama pitón-twitter .

Después de haber instalado Python , instale la biblioteca de Python-twitter y todas sus dependencias. Si se encuentra con problemas consultela documentación en el sitio web de python-twitter.

A continuación, instalar el IDE de Arduino para que pueda programar el Arduino y comunicarse con él a través del puerto serie.

Una vez que ambos se configuran y  funcionan , es tiempo para ir a tomar sus credenciales de twitter.com

Interactuar con Twitter solía ser fácil, todo lo que tenía que hacer era poner su nombre y contraseña en su código  y ya funcionaba.  Ahora Twitter se lo ha tomado más en serio mediante OAuth, y  debiendo registrar su aplicación con twitter y obtener una clave de API.

En primer lugar, cree  una cuenta de twitter para este proyecto que edeberia estar separado de su cuenta principal de Twitter. En el ejemplo es , driptwit.

Luego, vaya a dev.twitter.com y registre su aplicación, esto le permitirá tomar 4 piezas importantes de información:

-Access Token
-Access Token Secret
-Consumer Key
-Consumer Secret

Se necesitarán estos tokens en el código python más tarde para interactuar con la API de Twitter. Una vez que tenga los 4 códigos, usted ya puede  continuar.

En primer lugar vamos a repasar nuestro código Python. El código python básicamente utiliza la biblioteca de python -twitter para pedir a Twitter los estados de usuario ” x ” , despues toma el último estado y busca el término ” #driptwit ” .
Si se encuentra ” #driptwit ”  envía el valor ASCII del 1 al puerto serie (  para Arduino ) , y  si se encuentra “#driptwitstop” , envía un valor ASCII de 0 .
Por último se realiza un bucle que comprueba la cuenta de twitter cada 15 segundos en busca de cambios .

Como se puede ver , también en el código  es donde se introducen las claves que obtuvo de Twitter en el último paso .

Aquí está el código real :

#******************************************#
# Tweet-a-Pot by Gregg Horton 2011 #
# Please email changes or #
# updates to [email protected] #
# *****************************************#

##Import Libraries

import twitter
import serial
import time

##authenticate yourself with twitter
api = twitter.Api(consumer_key=’consumerkeyhere’, consumer_secret=’consumersecrethere’, access_token_key=’accesskey’, access_token_secret=’accesssecret’)

##set to your serial port
ser = serial.Serial(‘/dev/ttyUSB0’, 19200)

## check serial port
def checkokay():
ser.flushInput()
time.sleep(3)
line=ser.readline()
time.sleep(3)

if line == ‘ ‘:
line=ser.readline()
print ‘here’
## Welcome message
print ‘Welcome To Drip Twit!’
print ‘Making Coffee..’
def driptwit():
status = [ ]
x = 0

status = api.GetUserTimeline(‘X’) ##grab latest statuses

checkIt = [s.text for s in status] ##put status in an array

drip = checkIt[0].split() ##split first tweet into words

## check for match and write to serial if match
if drip[0] == ‘#driptwit’:
print ‘Tweet Recieved, Making Coffee’
ser.write(‘1’)
elif drip[0] == ‘#driptwitstop’: ##break if done
ser.write(‘0’)
print ‘stopped, awaiting instructions.’
else:
ser.write(‘0’)
print ‘Awaiting Tweet’

while 1:
driptwit() ## call driptwit function
time.sleep(15) ## sleep for 15 seconds to avoid rate limiting

CODIGO ARDUINO

La única conexión entre el código python y Arduino es un valor único del puerto  serie. Python envía esto como un valor ASCII , por lo que Arduino interpreta esto como un número de bit , en nuestro caso 1 = 49 .

 

Aquí está el código:

/*
Tweet-a-pot Gregg Horton 2011
Please email changes to [email protected] so i
can improve this code!

Enables blinking/relay control over twitter, using python code
Based off of Blink and Serial demo code

*/

int relayPin = 13; // LED connected to digital pin 13
int incomingByte = 0; //declare incoming byte
// The setup() method runs once, when the sketch starts

void setup() {
// initialize the digital pin as an output:
pinMode(relayPin, OUTPUT);
Serial.begin(19200); // set up Serial library at 19200 bps

Serial.println(“Arduino is ready!”);
}

// the loop() method runs over and over again,
// as long as the Arduino has power

void loop()
{
if (Serial.available() > 0) {
// read the incoming byte:
incomingByte = Serial.read();
Serial.println(incomingByte);
if (incomingByte == 49){
digitalWrite(relayPin, HIGH);
} else {
digitalWrite(relayPin, LOW);
}

// say what you got:
Serial.print(“I received: “);
Serial.println(incomingByte, DEC);
}
}

El hardware requerido es bastante simple, ya que el control de voltaje de CA está siendo manejado por el interruptor electrónico.

El interruptor  electronico ( llamado tambien relé sólido) le permite conectando sólo 2 cables, uno a tierra y otro para la señal de control de Arduino, poder encender y apagar el relé  y como se ve en el código, todo lo que necesita es una simple señal de control  baja / alta.

Conecte el Arduino al ordenador y asegúrese de que el puerto serie está configurado,  y conecte al interruptor electrónico  el terminal 13 y tierra de Arduino

A continuación conecte la cafetera al interruptor  electrónico y conecte el interruptor electrónico a una toma de corriente normal. Lógicamente la  cafetera tiene que tener el café y el agua en ella,  antes de empezar.

Si el mensaje contiene la palabra #driptwit el café comenzará a hacerse ,pero  si recibe #driptwitstop,se detendrá.

A continuación, ya sólo le queda disfrutar de su taza de café bien caliente accionada por un tweet.

Esta  idea  tambien  puede emplearse   en  cualquier otro sistema que quiera acccionar o liberar de forma remota, como  puede ser un  calentador eléctrico, la calefacción de casa, un control de acceso ,la puerta  electrica del grage   o como deciamos al principio simplemente  una  lámpara para simular actividad en su vivienda.

 

 

Fuente  aqui,

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s