Em breve vamos lançar um artigo de como montar uma camera de segurança com Raspberry Pi. A camera terá a possibilidade de tirar fotografias e posteriormente consultá-las, em qualquer lugar bastando para isso ter acesso à internet. Isso será num artigo no futuro, hoje vamos falar de algo ainda mais interessante e complementar que será colocarmos o nosso Raspberry Pi a avisar-nos por WhatsApp que foi detetado um intruso na nossa casa ou local de trabalho… espetacular esta ideia, não é?
Yowsup é uma livraria que permite interagir com os servidores de WhatsApp para enviar e receber mensagens com o nosso Raspberry Pi. Vejamos como instalar e utilizar esta livraria.
Instalação de Yowsup
O primeiro passo será atualizar o sistema do Raspberry Pi com estes comandos:
sudo apt-get update sudo apt-get upgrade
Quando terminar, vamos instalar o Python Dateutil com este comando:
sudo apt-get install python-dateutil
Agora devemos descarregar a livraria Yowsup do GitHub, podemos fazê-lo descarregando o pacote AQUI e instalando o nosso Raspberry Pi ou com este comando na consola:
git clone git://github.com/tgalal/yowsup.git
Se optar por descarregar o ficheiro e instalá-lo manualmente, vai ter que descomprimir o .zip e instalar a pasta “yowsup-master” do Raspberry Pi.
Registando o número de telefone
Como já se sabe, o uso do WhatsApp requer um Número de telefone, pode-se usar qualquer número de telemóvel. Assim que tenha um número válido de onde possa receber chamadas ou SMS, introduzimos este comando em consola:
cd /home/pi/yowsup-master/src
Temos que editar o arquivo “config.example” para colocar o nosso número de telemóvel quando introduzirmos este comando:
sudo leafpad config.example
No cabeçalho do arquivo é explicado onde colocar estas informações, mas será semelhante a isto:
cc= 351 phone= 351910000000 id= password=
“CC” é o prefixo telefónico do país onde vives (Neste exemplo é o de Portugal)
“PHONE” é o prefixo CC + o número de telefone
“ID” deixamos vazio
“PASSWORD” também deixamos vazio .
Uma vez editado guardamos o arquivo. Agora vamos à consola e registamos o nosso número em WhatsApp com qualquer um destes comandos:
python yowsup-cli -c config.example --requestcode sms #Verificar mediante sms python yowsup-cli -c config.example --requestcode voice #verificar mediante chamada
Temos que esperar que nos chegue o código de registo que tenha um formato numérico XXX-XXX. Quando chegar deveremos executar este comando para que nos chegue a nossa password:
sudo python yowsup-cli -c config.example --register XXX-XXX
A consola vai-nos devolver alguns valores entre os quais está PW. Apontamos este valor e copiamos o arquivo “config.example” no parágrafo password e pronto, agora já podemos enviar e receber mensagens de WhatsApp com Raspbery Pi.
Enviar e receber mensagens
Yowsup-cli é uma pequena aplicação em Python que nos oferece a possibilidade de enviar e receber mensagens do WhatsApp da consola, também é muito fácil de usar, vejamos uns exemplos:
Mandar uma mensagem a um número:
sudo python yowsup-cli -c config.example -w -s 34645777888 "Olá como estás?"
Utilizamos -w para esperar que a mensagem se envie antes de sair y -s para indicar que o que queremos é enviar uma mensagem. Ao executar este comando, a consola devolve-nos:
Authed 34645777888 Sent message Got sent receipt #Isto equivale a 1 tick em WhatsApp (não confirma a receção)
Receber todas as mensagens pendentes:
sudo python yowsup-cli -c config.example -k -a -l
Utilizamos -k para manter a ligação com o servidor e -a para marcar como lidas as mensagens. Pode ver uma lista completa das funções da aplicação AQUI.
Chat interativo com um número :
sudo python yowsup-cli -c config.example -k -a -i 34645999777 #trocar isto pelo prefixo+numero de destino
Envio de mensagens com Python
Este é um pequeno script para o envio de mensagens com Python:
import base64 #Importa a Classe WhatsappEchoClient, dedicada ao envio de mensagens. from Examples.EchoClient import WhatsappEchoClient #................Chaves de Acesso a WhatsApp............................ password = "***********************" #Password dado ao registar o número de telefone. password = base64.b64decode(bytes(password.encode('utf-8'))) #Codificação de Password para envio aos servidores de whatsApp. username = '34645777888' #Numero de telefone para o inicio de sessão. keepAlive= False #Ligação persistente com o servidor de WhatsApp. #...................................................................... whats = WhatsappEchoClient("TelefoneDestino", "Aqui a tua mensagem", keepAlive) #Inicia o cliente para o envio de mensagens por WhatsApp. whats.login(username, password) #Autentifica o dispositivo con o cliente de WhatsApp.
Gostaram deste artigo ? Deixem o vosso comentário no formulário a baixo.
Não se esqueçam de fazer like na nossa página no facebook.
Todos os produtos utilizados neste artigo podem ser encontrados na loja de componentes eletrónicos ElectroFun.