Acionar um LED pelo Twitter
Hoje irei demonstrar pra vocês uma brincadeira que fiz usando o Raspberry.
Estava em casa, sábado de madrugada sem sono, resolvi brincar com o Raspberry até pegar no sono. Resultado disso foi que além de não ter pego no sono, fiquei cada vez mais entusiasmado.
Mas enfim vamos ao que interessa!!!
Iremos utilizar o diagrama e a conexão do LED do primeiro posto sobre como ligar o LED aqui.
Primeiro passo é ir no site do Twitter (https://twitter.com/apps). Se já estiver logado irá abrir igual abaixo, caso não, faça o login no seu Twitter (clique nas imagens para abrir maior)
Clicando no “Create New App”, irá abrir uma tela que você irá digitar o nome do seu aplicativo, descrição e um site (esse site é obrigatório, mas para o nosso caso não é importante, pode digitar igual a imagem abaixo.

Após a confirmação dos termos, clique no botão para criar o APP. Se tudo der certo ele irá entrar em uma tela com 4 abas, clique na “Keys and Access Tokens”
Clique em “Create my access token”
Se tudo deu certo você terá as informações do seu token corretamente:

Feito tudo isso, iremos em nosso Raspberry. e a primeira coisa que iremos fazer é a instalação do Tweepy, que é a biblioteca que utilizaremos para a comunicação com o Twitter no Python.
Faremos o seguinte:
Abra o lxterminal:
sudo apt-get update && sudo apt-get install python-setuptools sudo easy_install tweepy
No meu Raspberry a instalação do tweetpy pelo easy_install não funcionou. Caso no seu não funcione faça o seguinte comando:
sudo easy_install pip sudo pip install tweepy
Assim que terminar a instalação você já poderá utilizar a biblioteca Tweetpy no seu Python.
Como disse acima, utilizaremos o nosso LED no GPIO18 para piscar.
Fiz um script que a hashtag que será pesquisada é passada por parâmetro, para ficar mais simples o uso:
Irei gravar um arquivo texto contendo a data do último Tweet, pois assim não entrará em um loop infinito com somente uma hashtag, então gravamos e comparamos se o Tweet atual tem data diferente da que temos conosco:
import RPi.GPIO as GPIO
import sys, time, tweepy , os
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
GPIO.setup(18, GPIO.OUT)
if not (os.path.isfile('tweets.txt')):
f = open('tweets.txt','w');
f.write('0');
f.close();
# == Informações para autenticar no OAUTH ==
consumer_key= 'MINHACHAVECUSTOMER_TWITTER'
consumer_secret= 'SENHA SECRET'
access_token= 'TOKEN DE ACESSO'
access_token_secret= 'SENHA'
print "Procurando por: "+sys.argv[1]
while True:
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
for x in range(1,6):
api = tweepy.API(auth)
searchValue = '%23'+sys.argv[1];
public_tweets = api.search(searchValue)
if (public_tweets):
tweet = public_tweets[0]
ultimaPublicacao = str(tweet.created_at);
print "Ultima Publicacao em : " + ultimaPublicacao
f = open('tweets.txt','r');
data = f.read()
f.close();
if(ultimaPublicacao != data):
print ultimaPublicacao+ " -- " + data
print "NOVO TWEEETTTT!!!!!!!!!!!!!"
GPIO.output(18, GPIO.HIGH)
time.sleep(0.2);
GPIO.output(18, GPIO.LOW)
time.sleep(0.2);
GPIO.output(18, GPIO.HIGH)
time.sleep(0.2);
GPIO.output(18, GPIO.LOW)
time.sleep(0.2);
GPIO.output(18, GPIO.HIGH)
time.sleep(0.2);
GPIO.output(18, GPIO.LOW)
time.sleep(0.2);
GPIO.output(18, GPIO.HIGH)
time.sleep(0.2);
GPIO.output(18, GPIO.LOW)
time.sleep(0.2);
f = open('tweets.txt','w');
f.write(ultimaPublicacao);
f.close();
time.sleep(60);
else:
print "Nada novo encontrado";
time.sleep(60);
Coloquei um sleep de 60 segundos pois o Twitter tem uma série de restrições com relação a várias buscas com curto espaço de tempo então o comando será testado a cada 1 minuto. Também coloquei um for x in range dentro do While True, pois também o Twitter expira a chave de conexão a cada X minutos, então a cada 5 pesquisas eu refaço a autenticação, assim evita que a conexão seja espirada.
Salvamos o arquivo em alguma pasta da nossa escolha e colocamos permissão de escrita nela (eu costumo fazer chmod 777 NOMEDAPASTA)
feito isso podemos executar :
sudo python seuarquivo.py SUAHASHTAG , porém a SUAHASHTAG será sem o #.
Feito isso pode postar no seu Twitter ou qualquer pessoa qualquer mensagem com a hashtag escolhida que o LED irá piscar.
Espero que tenham gostado.

