Innehållsförteckning:

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

Video: Raspberry Pi Slack Scroll Bot !: 10 steg

Video: Raspberry Pi Slack Scroll Bot !: 10 steg
Video: Curious Beginnings | Critical Role: THE MIGHTY NEIN | Episode 1 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!

Detta projekt kombinerar en Raspberry Pi med ett Pimoroni Scroll Bot -kit (modifierat med knappar), Slack och IFTT för visuella och hörbara aviseringar när YouTube -videor läggs upp i en prenumeration!

Knappändringarna i satsen är valfria, liksom högtalaren för att meddela ankomsten av en ny video.

Du kan också använda detta för att skicka ett meddelande till boten genom slack genom att förbereda "bot" på framsidan av meddelandet, till exempel "bot hello world". "bot clear" rensar skärmen.

Steg 1: Scroll Bot Assembly

Fyll i instruktionerna för montering av Pimoroni Scroll Bot:

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

Steg 2: Installera paket och kodbas

Installera ljudpaket:

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

sudo apt-get install mpg123

Installera python -paket:

pip installera kolv

pip installera psutil pip install slackclient

Följ handledningen hos Pimoroni för att komma igång med rullhatt:

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

som inkluderar nedladdning av provkällkoden och resurserna:

curl https://get.pimoroni.com/scrollphathd | våldsamt slag

Eftersom skärmen är monterad upp och ner i robotpaketet måste du ta bort en kod för att rotera skärmen 180:

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

Steg 3: Konfigurera Slack Instance

Konfigurera Slack Instance
Konfigurera Slack Instance
Konfigurera Slack Instance
Konfigurera Slack Instance

För att manuset ska kunna kommunicera med Slack behöver du en bot -API -nyckel.

Börja med att logga in på din Slack -teams webbsida (https://my.slack.com/services/new/bot) och välj ett användarnamn för din bot och kopiera sedan den medföljande API -token.

Steg 4: Skapa en Slack -kanal och bjud in din robot till kanalen

Skapa en Slack -kanal och bjud in din robot till kanalen
Skapa en Slack -kanal och bjud in din robot till kanalen

Du kan använda den allmänna slack -kanalen, eller om du föredrar kan du skapa en separat slack -kanal.

I mitt fall använde jag #robot-claire-control

Du måste bjuda in din robot till kanalen, annars ser den inte meddelanden som skickas.

Steg 5: Ladda ner SlackPiBot -källkod och konfigurera

Ladda ner källkoden slackPiBot från git:

git -klon

Uppdatera rad 29 med din API -nyckel:

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

Uppdatera rad 34 med ditt robotnamn:

om user.get ('namn') == "robot-claire":

Steg 6: Konfigurera Crontabs för att starta automatiskt vid start:

Konfigurera crontabs för att starta automatiskt vid start:

crontab -e

Lägg till följande längst ner på din 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

Steg 7: Valfritt: Lägg till en USB -högtalarutgång

För detta projekt använder jag en USB -högtalartelefon från US Robotics - tillgänglig på Amazon eller eBay.

Om du använder något liknande måste du ändra standard systemljudenhet genom att redigera alsa config (/usr/share/alsa/alsa.conf). Ändra följande rader:

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

1 är indexet för din enhet. För att hitta enhets -ID för din USB -enhet, kör aplay -l och leta efter kort -ID.

Steg 8: Valfritt: Lägg till trådbundna knappar i roboten för att rensa meddelanden

Valfritt: Lägg till trådbundna knappar i roboten för att rensa meddelanden
Valfritt: Lägg till trådbundna knappar i roboten för att rensa meddelanden
Valfritt: Lägg till trådbundna knappar i roboten för att rensa meddelanden
Valfritt: Lägg till trådbundna knappar i roboten för att rensa meddelanden

Detta steg är valfritt men rekommenderas starkt för att rensa meddelanden på skärmen.

Jag har lagt till två tryckknappar på min robot, men i det här projektet använder jag bara GPIO17.

Skriptet check_button.py som körs på startfrågor undersöker GPIO17 med några millisekunder och om den är nedtryckt skickar en HTTP POST till provskärmskriptet för att rensa skärmen.

Steg 9: Dra ihop det hela och skicka utmatningen till Pi

Det finns fyra skript som fungerar tillsammans för detta projekt:

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

Web-api-skriptet tillhandahålls av Pimoroni och är ett enkelt webbprogram för att styra skärmen med POST-kommandon.

Check_button python-skriptet undersöker GPIO-stiften och när knappen är nedtryckt skickas ett HTTP-POST till skriptet web-api.py.

Skriptet forever.py drar igång slackPiBot.py -skriptet för att säkerställa att om det uppstår felaktiga fel eller kopplas från slack startas skriptet om för att undvika att missa några meddelanden.

SlackPiBot.py -skriptet ansluter till slack och övervakar kanalen för meddelanden som börjar med "bot" eller inlägg från IFTT. Om det finns en matchning skickar den ett HTTP-POST till skriptet web-api.py och visas på skärmen.

Steg 10: Valfritt: IFTT -integration

Valfritt: IFTT -integration
Valfritt: IFTT -integration
Valfritt: IFTT -integration
Valfritt: IFTT -integration
Valfritt: IFTT -integration
Valfritt: IFTT -integration

Detta projekt var utformat för att varna mina barn om videor som publicerats av människor de följer på youtube, eftersom de är för unga för att ha en egen iPhone eller iPad. Jag uppnådde detta genom att skapa IFTT -recept som skickar ett meddelande till den släta kontrollkanalen när en video har publicerats.

Den instruerbara wikin gör detta komplicerat att se i ett steg, men skärmdumparna ovan visar slutresultatet.

Rekommenderad: