Índice:

Raspberry Pi Slack Scroll Bot !: 10 etapas
Raspberry Pi Slack Scroll Bot !: 10 etapas

Vídeo: Raspberry Pi Slack Scroll Bot !: 10 etapas

Vídeo: Raspberry Pi Slack Scroll Bot !: 10 etapas
Vídeo: Raspberry Pi FluxNode Setup Guide 2024, Novembro
Anonim
Raspberry Pi Slack Scroll Bot!
Raspberry Pi Slack Scroll Bot!
Raspberry Pi Slack Scroll Bot!
Raspberry Pi Slack Scroll Bot!
Raspberry Pi Slack Scroll Bot!
Raspberry Pi Slack Scroll Bot!

Este projeto combina um Raspberry Pi com um kit Pimoroni Scroll Bot (modificado com botões), Slack e IFTT para notificações visuais e sonoras quando vídeos do YouTube são postados em uma assinatura!

As modificações do botão no kit são opcionais, assim como o alto-falante para anunciar a chegada de um novo vídeo.

Você também pode usar isso para enviar qualquer mensagem ao bot por meio do slack, acrescentando "bot" no início da mensagem, como "bot hello world". "bot clear" irá limpar a tela.

Etapa 1: montagem do bot de rolagem

Conclua as instruções para montar o Pimoroni Scroll Bot:

learn.pimoroni.com/tutorial/sandyj/assembl…

Etapa 2: instalar pacotes e base de código

Instale pacotes de áudio:

sudo apt-get update & sudo apt-get upgrade -y

sudo apt-get install mpg123

Instale os pacotes python:

frasco de instalação pip

pip install psutil pip install slackclient

Siga o tutorial na Pimoroni's para começar a usar o Scroll Hat:

learn.pimoroni.com/tutorial/sandyj/getting…

que inclui o download do código-fonte de amostra e recursos:

curl https://get.pimoroni.com/scrollphathd | bash

Como a tela é montada de cabeça para baixo no kit do robô, você precisa descomentar o código para girar a tela 180:

$ sed -i 's / # scrollphathd.rotate (degrees = 180) /scrollphathd.rotate (degrees = 180) / g' /home/pi/Pimoroni/scrollphathd/examples/web-api.py

Etapa 3: configurar a instância do Slack

Configurando a instância do Slack
Configurando a instância do Slack
Configurando a instância do Slack
Configurando a instância do Slack

Para que o script se comunique com o Slack, você precisará de uma chave de API de bot.

Comece fazendo login na página da sua equipe do Slack (https://my.slack.com/services/new/bot) e escolha um nome de usuário para o seu bot, em seguida, copie o token de API fornecido.

Etapa 4: crie um canal do Slack e convide seu robô para o canal

Crie um canal do Slack e convide seu robô para o canal
Crie um canal do Slack e convide seu robô para o canal

Você pode usar o canal Slack geral ou, se preferir, pode criar um canal Slack separado.

No meu caso, usei # robot-claire-control

Você deve convidar seu robô para o canal, ou ele não verá as mensagens enviadas.

Etapa 5: Baixe o código-fonte do SlackPiBot e configure

Baixe o código fonte slackPiBot do git:

git clone

Atualize a linha 29 com sua chave API:

slack_client = SlackClient ("xoxb-YOUR-API-KEY-HERE")

Atualize a linha 34 com o nome do seu robô:

if user.get ('name') == "robot-claire":

Etapa 6: configurar o Crontabs para iniciar automaticamente na inicialização:

Configurando crontabs para iniciar automaticamente na inicialização:

crontab -e

Adicione o seguinte na parte inferior do seu crontab:

@reboot python /home/pi/Pimoroni/scrollphathd/examples/web-api.py@reboot python /home/pi/slackPiBot/check_button.py @reboot python /home/pi/slackPiBot/forever.py / home / pi / slackPiBot / slackPiBot.py >> /home/pi/slackPiBot/outputLog.txt 2> & 1

Etapa 7: Opcional: adicione uma saída de alto-falante USB

Para este projeto, estou usando um viva-voz USB da US Robotics - disponível na Amazon ou ebay.

Se estiver usando algo semelhante, você precisará alterar o dispositivo de som do sistema padrão editando a configuração do alsa (/usr/share/alsa/alsa.conf). Altere as seguintes linhas:

defaults.ctl.card 1defaults.pcm.card 1

1 sendo o índice do seu dispositivo. Para encontrar o ID do dispositivo do seu dispositivo USB, execute aplay -l e procure o ID do cartão.

Etapa 8: Opcional: adicione botões com fio ao robô para limpar mensagens

Opcional: Adicione botões com fio ao robô para limpar mensagens
Opcional: Adicione botões com fio ao robô para limpar mensagens
Opcional: Adicione botões com fio ao robô para limpar mensagens
Opcional: Adicione botões com fio ao robô para limpar mensagens

Esta etapa é opcional, mas altamente recomendada para limpar mensagens na tela.

Eu adicionei dois botões de ação ao meu robô, mas neste projeto estou usando apenas GPIO17.

O script check_button.py que é executado na inicialização pesquisa o GPIO17 a cada poucos milissegundos e, se pressionado, envia um HTTP POST para o script de tela de amostra para limpar a tela.

Etapa 9: Juntando tudo e enviando a saída para o Pi

Existem 4 scripts que funcionam juntos para este projeto:

/home/pi/Pimoroni/scrollphathd/examples/web-api.py/home/pi/slackPiBot/check_button.py/home/pi/slackPiBot/forever.py /home/pi/slackPiBot/slackPiBot.py

O script web-api é fornecido pela Pimoroni e é um aplicativo simples da web para controlar a tela com comandos POST.

O script check_button python pesquisa os pinos GPIO e quando o botão é pressionado envia um HTTP POST para o script web-api.py.

O script forever.py inicia o script slackPiBot.py para garantir que, se houver algum erro não detectado ou desconectado do slack, o script seja reiniciado para evitar a perda de mensagens.

O script slackPiBot.py se conecta ao slack e monitora o canal para mensagens começando com "bot" ou postagens do IFTT. Se houver uma correspondência, ele enviará um HTTP POST para o script web-api.py e será exibido na tela.

Etapa 10: Opcional: Integração IFTT

Opcional: Integração IFTT
Opcional: Integração IFTT
Opcional: Integração IFTT
Opcional: Integração IFTT
Opcional: Integração IFTT
Opcional: Integração IFTT

Este projeto foi pensado para alertar meus filhos sobre vídeos postados por pessoas que eles seguem no youtube, já que são muito jovens para ter seu próprio iPhone ou iPad. Consegui isso criando receitas IFTT que enviam uma notificação ao canal de controle do Slack assim que um vídeo é postado.

O wiki instructables torna isso complicado de ver em uma etapa, mas as imagens acima mostram o resultado final.

Recomendado: