Como construir um Raspberry Pi Twitter Bot

O Twitter é o maior repositório mundial de mensagens curtas de pessoas sem nada a dizer - e agora você também pode contribuir para esse projeto épico com um bot automatizado, alimentado por seu Raspberry Pi. Estou brincando, é claro - algumas pessoas realmente twittam coisas interessantes. Eu não sou um deles - eu uso minha mina para promoção de produto desavergonhada em troca de coisas grátis, inscrições em competições, e postando novos episódios do nosso Podcast de Tecnofilia.

O Twitter é o maior repositório mundial de mensagens curtas de pessoas sem nada a dizer - e agora você também pode contribuir para esse projeto épico com um bot automatizado, alimentado por seu Raspberry Pi.  Estou brincando, é claro - algumas pessoas realmente twittam coisas interessantes.  Eu não sou um deles - eu uso minha mina para promoção de produto desavergonhada em troca de coisas grátis, inscrições em competições, e postando novos episódios do nosso Podcast de Tecnofilia.
Propaganda

O Twitter é o maior repositório mundial de mensagens curtas de pessoas sem nada a dizer - e agora você também pode contribuir para esse projeto épico com um bot automatizado, alimentado por seu Raspberry Pi. Estou brincando, é claro - algumas pessoas realmente twittar coisas interessantes Como usar o Twitter para procurar mentores em sua área de interesse Como usar o Twitter para procurar mentores em sua área de interesse No mundo real, um mentor é um sábio professor que apóia e orienta alguém e ajuda-o a maximizar seu potencial. No mundo online, você teria muita sorte em encontrar alguém que ... Leia Mais. Eu não sou um deles - eu uso minha mina para promoção de produto desavergonhada em troca de coisas grátis, inscrições em competições, e postando novos episódios do nosso Podcast de Tecnofilia. Seja o que for - meus seguidores me amam!

@ w0lfiesmith Eu odeio sua conta no Twitter. Muito.

- Justin Pot (@jhpot) 21 de agosto de 2013

Agora vou acrescentar à utilidade do meu fluxo pessoal do Twitter, fazendo com que um Raspberry Pi automaticamente tuite sua temperatura atual do processador a cada hora, e uma imagem de webcam!

Começando

Este projeto usa o Python; uma linguagem de programação simples ideal para projetos DIY. Começaremos instalando o Twython no módulo Pi - a Python para fazer interface com o Twitter; configurar um “aplicativo” do Twitter para obter uma chave de API; em seguida, vá para fazer o Pi tweet coisas em nosso nome. Vai ser muito divertido!

Eu estou fazendo isso em Raspian - mas deve, em teoria, trabalhar em qualquer sistema operacional baseado em Linux que você tem no Pi 10 Sistemas operacionais que você pode executar com Raspberry Pi 10 Sistemas operacionais que você pode executar com Raspberry Pi O hardware do Raspberry Pi sozinho é apenas um lado da história: hoje eu exploro 10 sistemas operacionais diferentes que você pode instalar. Consulte Mais informação . Se ainda não o fez, certifique-se de configurar o SSH para que possamos efetuar login remotamente e executar comandos do console.

Instalando o Twython

É uma boa ideia executar as atualizações primeiro. Copie e cole os seguintes comandos, um de cada vez - a maioria exigirá confirmação.

sudo apt-get update sudo apt-get upgrade sudo apt-get install python-setuptools sudo easy_install pip sudo pip install twython 

Registrando um aplicativo do Twitter

Para usar a API do Twitter - ou seja, a interface REST que usaremos para postar novos Tweets e geralmente interagir com o Twitter do site twitter - precisaremos registrar um novo aplicativo. Faça isso a partir deste link - você não precisa especificar um URL de retorno de chamada e apenas crie um site se quiser.

novo-twitter-app

Você verá algo parecido com isso quando terminar - essas chaves são exclusivas para você.

twitter-app

Por padrão, o aplicativo é definido como somente leitura, portanto, não poderemos publicar tweets sem alterá-lo para leitura e gravação . Vá para a guia Configurações e altere o tipo de aplicativo .

readwrite-access

Depois de salvar, volte para a guia Detalhes e clique no botão na parte inferior para criar um token de acesso OAuth . Isso dá ao seu aplicativo acesso à sua própria conta do Twitter. Atualize e deixe a página aberta para mais tarde - precisaremos copiar e colar algumas dessas chaves em um minuto.

token de acesso

Crie seu projeto em Python

Comece criando um novo diretório para hospedar seu projeto do Tweet e crie um novo arquivo.

 mkdir SillyTweeter cd SillyTweeter sudo nano SillyTweeter.py 

Você pode chamá-lo como quiser, obviamente.

No editor de texto que aparece, copie e cole o seguinte, substituindo a chave do consumidor pela chave relevante da página do aplicativo do Twitter que deixamos aberta anteriormente. Cada chave é cercada por aspas simples, então não deixe de as perder. Observe que ACCESS_KEY é referido como token de acesso na página do aplicativo do Twitter.

 #!/usr/bin/env python import sys from twython import Twython CONSUMER_KEY = '***************YOUR DATA*****************' CONSUMER_SECRET = '***************YOUR DATA*****************' ACCESS_KEY = '***************YOUR DATA*****************' ACCESS_SECRET = '***************YOUR DATA*****************' api = Twython(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_KEY, ACCESS_SECRET) api.update_status(status=sys.argv[1]) 

Pressione Ctrl-X e pressione Y para sair e salvar o arquivo. Torne-o executável com o seguinte comando (substituindo o nome do arquivo Python, se você tiver escolhido outra coisa)

 sudo chmod +x SillyTweeter.py 

Agora você deve ser capaz de testar sua capacidade de postar tweets da seguinte forma:

 python SillyTweeter.py 'Hello Everyone, this is my Raspberry Pi tweeting you more nonsense' 

Olá a todos, este é o meu Raspberry Pi tweeting você mais um disparate

- James Bruce (@ w0lfiesmith) 29 de agosto de 2013

Tweetando sua CPU Temp

Agora que você pode postar qualquer bobagem que quiser, vamos ajustar o aplicativo para pegar a temperatura atual da CPU, porque serei amaldiçoado se o mundo não precisar saber disso a cada hora.

Comece adicionando outra importação para a biblioteca do sistema operacional:

 import os 

Em seguida, adicione as seguintes linhas, substituindo o api.update_status anterior do exemplo acima.

 cmd = '/opt/vc/bin/vcgencmd measure_temp' line = os.popen(cmd).readline().strip() temp = line.split('=')[1].split("'")[0] api.update_status(status='My current CPU temperature is '+temp+' C') 

Não vou explicar muito esse código, porque isso realmente não importa - ele executa um comando que captura a temperatura, divide a saída para extrair o número e envia um tweet com uma mensagem personalizada. Você pode encontrar o código de exemplo completo aqui.

Tweeting Webcam Pics

Agora vamos fazer algo realmente útil; nós estamos indo twittar fotos de webcam. Felizmente, o Twython suporta a função da API update_status_with_media, o que torna as coisas bastante simples.

Conecte uma webcam USB ao seu dispositivo e verifique se ele foi reconhecido com o comando:

 ls /dev/video* 

se você ver video0, você está com sorte. Eu usei uma câmera PlayStation 3 PSEye e funcionou muito bem sem qualquer legwork adicional.

Também vamos usar as bibliotecas pygame para tirar uma foto; adicione as seguintes linhas logo após as instruções de importação existentes:

 import pygame import pygame.camera from pygame.locals import * pygame.init() pygame.camera.init() cam = pygame.camera.Camera("/dev/video0", (640, 480)) cam.start() image = cam.get_image() pygame.image.save(image, 'webcam.jpg"') 

Resumindo, você inicializou a webcam em uma resolução específica (talvez seja necessário ajustar essa é uma câmera realmente antiga), tirou uma foto e a salvou como um jpg. Vamos sobrescrever a mesma webcam.jpg" toda vez que o aplicativo for executado.

Finalmente, ajuste a linha update_status para ler:

 photo = open('webcam.jpg"', 'rb') api.update_status_with_media(media=photo, status='My RPi be tweeting images now =>') 

Claro, você pode alterar o texto do status para a temperatura atual da CPU novamente, se quiser. O código completo para este exemplo está aqui.

Meu RPi tuitando imagens agora => pic.twitter.com/NfUgLnWQtm

- James Bruce (@ w0lfiesmith) 29 de agosto de 2013

Você pode repetir isso?

Um bot do Twitter só é útil se for executado várias vezes automaticamente; você não quer estar sentado lá executando o comando a cada hora. Para conseguir isso, vamos usar o recurso de agendamento CRON do Pi (O que é um trabalho CRON? Automatizar seu backup WordPress Com Simple Shell Scripting e CRON Automatizar seu backup WordPress Com Simple Shell Scripting & CRON Última vez que falamos sobre backups Wordpress, eu mostrei como incrivelmente fácil foi fazer o backup de todo o seu banco de dados e arquivos através de SSH com apenas alguns comandos. Desta vez, eu vou mostrar ... Read More)

 sudo crontab -e 

Cole nesta linha, para executar a cada hora.

 */60 * * * * python /home/pi/SillyTweeter/SillyTweeter.py 

Mude isso para * * * * * se quiser que ele seja executado a cada minuto e esteja preparado para perder seguidores mais rapidamente do que uma conta do Twitter que perde seguidores rapidamente.

Isso é por hoje. Estou feliz por ter contribuído mais para a imensa riqueza de bytes inúteis na Internet, e espero que você também o faça! Mostre seu apreço por este tutorial, twittando-o e, em seguida, deixe-nos saber o que seu próprio Twitter bot vai twittar nos comentários.

Crédito da imagem: adafruit / flickr

In this article