Índice:
- Etapa 1: montagem do bot de rolagem
- Etapa 2: instalar pacotes e base de código
- Etapa 3: configurar a instância do Slack
- Etapa 4: crie um canal do Slack e convide seu robô para o canal
- Etapa 5: Baixe o código-fonte do SlackPiBot e configure
- Etapa 6: configurar o Crontabs para iniciar automaticamente na inicialização:
- Etapa 7: Opcional: adicione uma saída de alto-falante USB
- Etapa 8: Opcional: adicione botões com fio ao robô para limpar mensagens
- Etapa 9: Juntando tudo e enviando a saída para o Pi
- Etapa 10: Opcional: Integração IFTT
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
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
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
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
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
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.