Table des matières:

Raspberry Pi Slack Scroll Bot ! : 10 étapes
Raspberry Pi Slack Scroll Bot ! : 10 étapes

Vidéo: Raspberry Pi Slack Scroll Bot ! : 10 étapes

Vidéo: Raspberry Pi Slack Scroll Bot ! : 10 étapes
Vidéo: Raspberry Pi FluxNode Setup Guide 2024, Juillet
Anonim
Bot de défilement Slack Raspberry Pi !
Bot de défilement Slack Raspberry Pi !
Bot de défilement Slack Raspberry Pi !
Bot de défilement Slack Raspberry Pi !
Bot de défilement Raspberry Pi Slack !
Bot de défilement Raspberry Pi Slack !

Ce projet combine un Raspberry Pi avec un kit Pimoroni Scroll Bot (modifié avec des boutons), Slack et IFTT pour des notifications visuelles et sonores lorsque des vidéos YouTube sont publiées sur un abonnement !

Les modifications du bouton du kit sont optionnelles, ainsi que le haut-parleur pour annoncer l'arrivée d'une nouvelle vidéo.

Vous pouvez également l'utiliser pour envoyer n'importe quel message au bot via Slack en ajoutant "bot" au début du message, comme "bot hello world". "bot clear" effacera l'écran.

Étape 1: Assemblage du robot de défilement

Suivez les instructions pour assembler le Pimoroni Scroll Bot:

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

Étape 2: Installer les packages et la base de code

Installer les packages audio:

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

sudo apt-get installer mpg123

Installez les packages python:

flacon d'installation de pip

pip installer psutil pip installer slackclient

Suivez le tutoriel de Pimoroni pour Premiers pas avec Scroll Hat:

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

qui comprend le téléchargement de l'exemple de code source et des ressources:

boucle https://get.pimoroni.com/scrollphathd | frapper

Étant donné que l'écran est monté à l'envers dans le kit du robot, vous devez décommenter le code pour faire pivoter l'écran de 180:

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

Étape 3: Configuration de l'instance Slack

Configuration de l'instance Slack
Configuration de l'instance Slack
Configuration de l'instance Slack
Configuration de l'instance Slack

Pour que le script communique avec Slack, vous aurez besoin d'une clé API de bot.

Commencez par vous connecter à la page Web de votre équipe Slack (https://my.slack.com/services/new/bot) et choisissez un nom d'utilisateur pour votre bot, puis copiez le jeton API fourni.

Étape 4: créez une chaîne Slack et invitez votre robot à la chaîne

Créez une chaîne Slack et invitez votre robot sur la chaîne
Créez une chaîne Slack et invitez votre robot sur la chaîne

Vous pouvez utiliser le canal Slack général, ou si vous préférez, vous pouvez créer un canal Slack séparé.

Dans mon cas j'ai utilisé #robot-claire-control

Vous devez inviter votre robot dans le canal, ou il ne verra pas les messages qui sont envoyés.

Étape 5: Téléchargez le code source de SlackPiBot et configurez-le

Téléchargez le code source de slackPiBot depuis git:

git clone

Mettez à jour la ligne 29 avec votre clé API:

slack_client = SlackClient("xoxb-VOTRE-API-KEY-ICI")

Mettez à jour la ligne 34 avec le nom de votre robot:

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

Étape 6: Configurez Crontabs pour démarrer automatiquement au démarrage:

Configuration des crontabs pour qu'elles démarrent automatiquement au démarrage:

crontab -e

Ajoutez ce qui suit au bas de votre 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

Étape 7: Facultatif: ajoutez une sortie haut-parleur USB

Pour ce projet, j'utilise un haut-parleur USB de US Robotics - disponible sur amazon ou ebay.

Si vous utilisez quelque chose de similaire, vous devrez changer le périphérique audio par défaut du système en éditant la configuration alsa (/usr/share/alsa/alsa.conf). Modifiez les lignes suivantes:

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

1 étant l'indice de votre appareil. Pour trouver l'ID de périphérique de votre périphérique USB, exécutez aplay -l et recherchez l'ID de la carte.

Étape 8: Facultatif: ajoutez des boutons filaires au robot pour effacer les messages

Facultatif: ajoutez des boutons filaires au robot pour effacer les messages
Facultatif: ajoutez des boutons filaires au robot pour effacer les messages
Facultatif: ajoutez des boutons filaires au robot pour effacer les messages
Facultatif: ajoutez des boutons filaires au robot pour effacer les messages

Cette étape est facultative mais fortement recommandée pour effacer les messages à l'écran.

J'ai ajouté deux boutons poussoirs à mon robot, mais dans ce projet, j'utilise uniquement GPIO17.

Le script check_button.py qui s'exécute au démarrage interroge le GPIO17 toutes les quelques millisecondes et, s'il est enfoncé, envoie un HTTP POST à l'exemple de script d'écran pour effacer l'écran.

Étape 9: Rassembler le tout et envoyer la sortie au Pi

Il y a 4 scripts qui fonctionnent ensemble pour ce projet:

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

Le script web-api est fourni par Pimoroni et est une application Web simple pour contrôler l'écran avec des commandes POST.

Le script python check_button interroge les broches GPIO et lorsque le bouton est enfoncé, envoie un HTTP POST au script web-api.py.

Le script forever.py lance le script slackPiBot.py pour s'assurer que s'il y a des erreurs non détectées ou des déconnexions de slack, le script est redémarré pour éviter de manquer des messages.

Le script slackPiBot.py se connecte à slack et surveille le canal pour les messages commençant par "bot" ou les publications d'IFTT. S'il y a une correspondance, il enverra un HTTP POST au script web-api.py et s'affichera à l'écran.

Étape 10: Facultatif: Intégration IFTT

Facultatif: intégration IFTT
Facultatif: intégration IFTT
Facultatif: intégration IFTT
Facultatif: intégration IFTT
Facultatif: intégration IFTT
Facultatif: intégration IFTT

Ce projet a été conçu pour alerter mes enfants des vidéos publiées par des personnes qu'ils suivent sur youtube, car ils sont trop jeunes pour avoir leur propre iPhone ou iPad. J'ai accompli cela en créant des recettes IFTT qui envoient une notification au canal de contrôle de la marge une fois qu'une vidéo a été publiée.

Le wiki instructables rend cela compliqué à voir en une seule étape, mais les captures d'écran ci-dessus montrent le résultat final.

Conseillé: