Inhoudsopgave:

Raspberry Pi Slack Scroll Bot! - Ajarnpa
Raspberry Pi Slack Scroll Bot! - Ajarnpa

Video: Raspberry Pi Slack Scroll Bot! - Ajarnpa

Video: Raspberry Pi Slack Scroll Bot! - Ajarnpa
Video: Slack Pi Bot 2024, November
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!

Dit project combineert een Raspberry Pi met een Pimoroni Scroll Bot-kit (aangepast met knoppen), Slack en IFTT voor visuele en hoorbare meldingen wanneer YouTube-video's op een abonnement worden geplaatst!

De knopaanpassingen aan de kit zijn optioneel, evenals de luidspreker om de komst van een nieuwe video aan te kondigen.

Je kunt dit ook gebruiken om elk bericht naar de bot te sturen door middel van speling door "bot" vooraan het bericht te plaatsen, zoals "bot hello world". "bot clear" zal het scherm wissen.

Stap 1: Scroll Bot-assemblage

Volg de instructies voor het monteren van de Pimoroni Scroll Bot:

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

Stap 2: Installeer pakketten en Codebase

Audiopakketten installeren:

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

sudo apt-get install mpg123

Installeer python-pakketten:

pip install flask

pip install psutil pip install slackclient

Volg de tutorial bij Pimoroni's voor Aan de slag met Scroll Hat:

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

inclusief het downloaden van de voorbeeldbroncode en bronnen:

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

Aangezien het scherm ondersteboven in de robotkit is gemonteerd, moet u de code verwijderen om het scherm 180 te draaien:

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

Stap 3: Slack-instantie configureren

Slack-instantie configureren
Slack-instantie configureren
Slack-instantie configureren
Slack-instantie configureren

Om het script met Slack te laten communiceren, heb je een bot-API-sleutel nodig.

Begin door in te loggen op de webpagina van uw Slack-team (https://my.slack.com/services/new/bot) en kies een gebruikersnaam voor uw bot en kopieer vervolgens het verstrekte API-token.

Stap 4: Maak een Slack-kanaal en nodig uw robot uit voor het kanaal

Maak een Slack-kanaal en nodig uw robot uit voor het kanaal
Maak een Slack-kanaal en nodig uw robot uit voor het kanaal

U kunt het algemene slack-kanaal gebruiken, of als u wilt, kunt u een apart slack-kanaal maken.

In mijn geval gebruikte ik #robot-claire-control

Je moet je robot uitnodigen voor het kanaal, anders ziet hij de verzonden berichten niet.

Stap 5: SlackPiBot-broncode downloaden en configureren

Download de slackPiBot-broncode van git:

git kloon

Update regel 29 met uw API-sleutel:

slack_client = SlackClient("xoxb-UW-API-KEY-HIER")

Update regel 34 met je robotnaam:

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

Stap 6: Crontabs configureren om automatisch te starten bij het opstarten:

Crontabs instellen om automatisch te starten bij het opstarten:

crontab -e

Voeg het volgende toe aan de onderkant van je 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

Stap 7: Optioneel: voeg een USB-luidsprekeruitgang toe

Voor dit project gebruik ik een USB-speakerphone van US Robotics - verkrijgbaar op Amazon of eBay.

Als u iets soortgelijks gebruikt, moet u het standaardsysteemgeluidsapparaat wijzigen door de alsa-configuratie (/usr/share/alsa/alsa.conf) te bewerken. Wijzig de volgende regels:

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

1 is de index van uw apparaat. Om de apparaat-ID van uw USB-apparaat te vinden, voert u aplay -l uit en zoekt u naar de kaart-ID.

Stap 8: Optioneel: bekabelde knoppen aan robot toevoegen om berichten te wissen

Optioneel: bekabelde knoppen toevoegen aan robot om berichten te wissen
Optioneel: bekabelde knoppen toevoegen aan robot om berichten te wissen
Optioneel: bekabelde knoppen toevoegen aan robot om berichten te wissen
Optioneel: bekabelde knoppen toevoegen aan robot om berichten te wissen

Deze stap is optioneel, maar wordt ten zeerste aanbevolen om berichten op het scherm te wissen.

Ik heb twee drukknoppen aan mijn robot toegevoegd, maar in dit project gebruik ik alleen GPIO17.

Het script check_button.py dat bij het opstarten wordt uitgevoerd, controleert de GPIO17 om de paar milliseconden en stuurt, indien ingedrukt, een HTTP POST naar het voorbeeldschermscript om het scherm leeg te maken.

Stap 9: Alles samentrekken en uitvoer naar de Pi. sturen

Er zijn 4 scripts die samenwerken voor dit project:

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

Het web-api-script wordt geleverd door Pimoroni en is een eenvoudige webtoepassing om het scherm te bedienen met POST-commando's.

Het check_button python-script peilt de GPIO-pinnen en wanneer de knop wordt ingedrukt, stuurt het een HTTP POST naar het web-api.py-script.

Het forever.py-script start het slackPiBot.py-script om ervoor te zorgen dat als er niet-afgevangen fouten zijn of de verbinding met de slack wordt verbroken, het script opnieuw wordt gestart om te voorkomen dat er berichten worden gemist.

Het slackPiBot.py-script maakt verbinding met slack en controleert het kanaal op berichten die beginnen met "bot" of berichten van IFTT. Als er een overeenkomst is, stuurt deze een HTTP POST naar het web-api.py-script en wordt deze op het scherm weergegeven.

Stap 10: Optioneel: IFTT-integratie

Optioneel: IFTT-integratie
Optioneel: IFTT-integratie
Optioneel: IFTT-integratie
Optioneel: IFTT-integratie
Optioneel: IFTT-integratie
Optioneel: IFTT-integratie

Dit project is ontworpen om mijn kinderen te waarschuwen voor video's die zijn gepost door mensen die ze op YouTube volgen, omdat ze te jong zijn om hun eigen iPhone of iPads te hebben. Ik heb dit bereikt door IFTT-recepten te maken die een melding naar het slappe controlekanaal sturen zodra een video is gepost.

De instructables-wiki maakt dit ingewikkeld om in één stap te zien, maar de bovenstaande schermafbeeldingen tonen het eindresultaat.

Aanbevolen: