Pplware

Tutorial Raspberry Pi – Sistema de notificação do twitter com LED

Por Bruno Santos da Comunidade Linux Pplware

O Raspberry Pi é um dos mini PCs mais populares e potentes, que tem servido de base a muitos projectos interessantes (pode consultar os projectos na página do projecto aqui). Este mini equipamento, do tamanho de um cartão de crédito é capaz de reproduzir vídeo com qualidade Blu-ray e renderizar gráficos 3D, entre outras tarefas.

No seguimento dos nosso artigos sobre o Raspberry Pi, , hoje vamos aprender um pouco a utilizar o GPIO (General purpose Input/Output) para termos um LED como sistema de notificação do twitter.

Para criar então um sistema de notificações do Twitter, com base num LED do Raspberry PI basta que acompanhem este tutorial.

Preparar o Raspberry PI

Primeiro, vamos efetuar o download de uma distribuição Linux para o Raspberry PI . Para iniciantes, o Raspbian é uma excelente escolha.  Para isso basta ir aqui e escolham a vossa distribuição.

Para a instação, basta um cartão SD de pelo menos 4GB. Para começar, num terminal, descompactem o ficheiro que descarregaram:

unzip 2013-05-25-wheezy-raspbian.zip
 Archive: 2013-05-25-wheezy-raspbian.zip
 inflating: 2013-05-25-wheezy-raspbian.img

Assim, que tiverem a imagem, coloquem o cartão SD no vosso leitor. Certifiquem-se que ele não está montado. Conforme o ambiente de trabalho usado, deverá (ou não ) aparecer uma nova janela do vosso explorador de ficheiros com o conteúdo do cartão (se algum).

Os comandos seguintes devem ser executados como root ou usando o comando sudo.

Executem o comando df -h e vejam se ele está montado ou não. Deverá ser listado como “/dev/sdb1” ou “/dev/sdc1”, conforme o numero de dispositivos que tenham. Recordem-se que, consoante as partições que tenham no cartão, o dispositivo pode aparecer várias vezes.

Se aparecer listado, desmontem o cartão (se aparecer várias vezes, desmontem todas as partições). Neste tutorial vamos usar o dispositivo sdb.

Agora, vamos colocar a imagem que descarregamos no cartão:

dd if=2013-05-25-wheezy-raspbian.img of=/dev/sdb bs=4M
462+1 records in
462+1 records out
1939865600 bytes (1.9 GB) copied, 183.326 s, 10.6 MB/s

Nota: Relativamente ao tamanho dos blocos de copia do dd,  4M (ou seja, copia 4 MB de cada vez) deverá funcionar a maioria das vezes. Se não, podem experimentar 1M – mas será mais demorado. Podem também experimentar com valores superiores a 4M.

Explicação do comando:

Se virem que está a demorar muito tempo, podem terminar o processo (noutro terminal).

Se tudo correr bem, executem sync (ou sudo sync) e retirem o cartão SD e coloquem no vosso PI !

Criar aplicação no Twitter

Para criar uma aplicação no twitter, deve seguir os seguintes passos:

Passo 1) Ir a https://dev.twitter.com/

Passo 2) Autentiquem-se com o vosso utilizador

Eu tive bastante dificuldade em encontrar depois a página certa, mas para mais rapidamente irem ao local para registar a vossa aplicação acedam aqui

Pressionem em “Create a new application

Preencham os campos necessários:

Assim que avançarem, irão ver uma tabela com as vossas definições de autenticação.

Na mesma página, necessitam de criar tokens de acesso. Para isso, basta pressionar o  botão “Create my access token”.

Posteriormente, podem verificar na opção de “OAuth tool” os tokens de acesso.

Raspberry PI

Ligações hardware

Para acender um LED, temos que o ligar ao Raspberry PI.

O Raspberry PI tem aquilo que se chama um GPIO (General purpose Input/Output). Os PINs podem ser ligados ou desligados (HIGH/LOW) para controlar dispositivos externos. É através do GPIO que vamos acender o LED.

Nota: Os números mostrados nas duas colunas do meio mostram qual a posição do PIN internamente ao Raspberry PI, não a posição física no GPIO – A ordem apresentada na tabela é a posição física no GPIO.

Aqui ficam mapas do GPIO do Raspberry PI, das duas versões:

Imagens da hobbytronics.co.uk

Para o nosso pequeno projecto, vamos usar o GPIO4 – PIN 7 internamente ao Raspberry PI – 4º PIN físico no GPIO.

O LED usado é um LED 3mm Luz Azul de alto brilho. Para ser correto, para ligar o LED ao GPIO4 de 3.3v, devemos ligar uma resistência de 270 Ohms pelo meio. No meu caso não liguei e funcionou perfeitamente – mas pelo sim pelo não, liguem.

Aqui fica um esquema da ligação do LED (com resistência):

Após tudo ligado (sem resistência), este é o aspecto do PI:

Uma imagem mais próxima da ligação do LED:

Software

Agora que já temos o hardware preparado, vamos tratar do software. Liguem o vosso PI e deixem-no arrancar para a vossa distribuição escolhida.

Existe um pacote oficial do Twitter para Python, que temos que instalar.

Se tiverem algum problema com a instalação, pode faltar a instalação do pacote python-setuptools. Instalem o pacote e experimentem novamente.

sudo apt-get install python-setuptools
Escrever a aplicação

Estamos prontos para começar a diversão. Abram um novo ficheiro, usando o vosso editor preferido.

Nota: Conforme o site onde foi retirado este pequeno script (compu2learn.co.uk), no final “adormecemos 1 minuto” porque o Twitter adicionou restrições ao número de chamadas à API num determinado momento. Podem colocar menos tempo, mas arriscam-se a um bloqueio de 15m.

Escrever a aplicação

Estamos prontos para começar a diversão. Abram um novo ficheiro, usando o vosso editor preferido.

vi TwettRaspberryPI.py

Nota: Conforme o site onde foi retirado este pequeno script (compu2learn.co.uk), no final “adormecemos 1 minuto” porque o Twitter adicionou restrições ao número de chamadas à API num determinado momento. Podem colocar menos tempo, mas arriscam-se a um bloqueio de 15m.

Importar as bibliotecas necessárias

Criar uma variável que irá guardar o URL para as chamadas à API

Criar quatro variáveis que irão guardar os nossos dados de autenticação (definidos no inicio)

Criar um objeto que será usado para interagir com a API do Twitter

Preparar os objectos para o GPIO e certificar-mo-nos que os PINs são os corretos

A parte interessante vem agora – Iremos procurar por atualizações ao Twitter que possam indicar que o LED deva ser ligado ou desligado.

Finalmente, guardem o programa e executem-no. Experimentem enviar tweets pelo vosso utilizador e ver o LED a acender ou a apagar.

Nota: Caso vos dê algum erro ao executar o programa porque não encontra a biblioteca simplejson, basta instalar e executar novamente:

sudo apt-get install python-simplejson

 

Este pequeno tutorial é apenas uma amostra do que se pode fazer com um RaspberryPI e a manipulação do GPIO. Com um pouco de electrónica e imaginação conseguem fazer projetos excelentes. Obtenha aqui o script usado no projecto deste artigo

Referências

Exit mobile version