Turinys:

Raspberry Pi Slack Scroll Bot!: 10 žingsnių
Raspberry Pi Slack Scroll Bot!: 10 žingsnių

Video: Raspberry Pi Slack Scroll Bot!: 10 žingsnių

Video: Raspberry Pi Slack Scroll Bot!: 10 žingsnių
Video: Leap Motion SDK 2024, Lapkritis
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!

Šis projektas sujungia „Raspberry Pi“su „Pimoroni Scroll Bot“rinkiniu (modifikuotu mygtukais), „Slack“ir IFTT, kad gautumėte vaizdinius ir garsinius pranešimus, kai „YouTube“vaizdo įrašai yra paskelbti prenumeratoje!

Rinkinio mygtukų pakeitimai yra neprivalomi, taip pat garsiakalbis, skirtas pranešti apie naujo vaizdo įrašo atvykimą.

Taip pat galite tai naudoti norėdami nusiųsti bet kokį pranešimą robotui, pridedant „bot“pranešimo priekyje, pvz., „Bot hello world“. „bot clear“išvalys ekraną.

1 žingsnis: slinkite roboto surinkimą

Vykdykite „Pimoroni Scroll Bot“surinkimo instrukcijas:

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

2 veiksmas: įdiekite paketus ir „Codebase“

Įdiekite garso paketus:

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

sudo apt-get install mpg123

Įdiekite „Python“paketus:

pip montavimo kolba

pip install psutil pip install slackclient

Vadovaukitės „Pimoroni's“pamoka, kaip pradėti naudotis slinkties skrybėlę:

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

kuris apima pavyzdinio šaltinio kodo ir išteklių atsisiuntimą:

garbanoti https://get.pimoroni.com/scrollphathd | mušti

Kadangi ekranas roboto komplekte sumontuotas aukštyn kojomis, jums reikia atšaukti kodą, kad ekraną pasuktumėte 180:

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

3 veiksmas: „Slack“egzemplioriaus konfigūravimas

„Slack“egzemplioriaus konfigūravimas
„Slack“egzemplioriaus konfigūravimas
„Slack“egzemplioriaus konfigūravimas
„Slack“egzemplioriaus konfigūravimas

Kad scenarijus galėtų bendrauti su „Slack“, jums reikės „bot“API rakto.

Pradėkite prisijungdami prie savo „Slack“komandos tinklalapio (https://my.slack.com/services/new/bot) ir pasirinkę savo roboto naudotojo vardą, tada nukopijuokite pateiktą API prieigos raktą.

4 žingsnis: sukurkite silpną kanalą ir pakvieskite savo robotą į kanalą

Sukurkite „Slack“kanalą ir pakvieskite savo robotą į kanalą
Sukurkite „Slack“kanalą ir pakvieskite savo robotą į kanalą

Galite naudoti bendrą silpną kanalą arba, jei norite, galite sukurti atskirą silpną kanalą.

Mano atveju naudojau #robot-claire-control

Turite pakviesti savo robotą į kanalą, kitaip jis nematys siunčiamų pranešimų.

5 veiksmas: atsisiųskite „SlackPiBot“šaltinio kodą ir sukonfigūruokite

Atsisiųskite slackPiBot šaltinio kodą iš „git“:

git klonas

Atnaujinkite 29 eilutę naudodami savo API raktą:

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

Atnaujinkite 34 eilutę savo roboto pavadinimu:

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

6 veiksmas: sukonfigūruokite „Crontabs“automatiškai paleisti paleidžiant:

„Crontabs“nustatymas automatiškai paleisti paleidžiant:

crontab -e

Crontab apačioje pridėkite:

@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

7 veiksmas: pasirinktinai: pridėkite USB garsiakalbio išvestį

Šiam projektui naudoju „US Robotics“USB garsiakalbį - galima įsigyti „Amazon“arba „ebay“.

Jei naudojate kažką panašaus, turėsite pakeisti numatytąjį sistemos garso įrenginį, redaguodami „alsa“konfigūraciją (/usr/share/alsa/alsa.conf). Pakeiskite šias eilutes:

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

1 yra jūsų prietaiso rodyklė. Norėdami rasti USB įrenginio ID, paleiskite „aplay -l“ir ieškokite kortelės ID.

8 veiksmas: pasirinktinai: pridėkite laidinius mygtukus prie roboto, kad išvalytumėte pranešimus

Neprivaloma: pridėkite laidinius mygtukus prie roboto, kad išvalytumėte pranešimus
Neprivaloma: pridėkite laidinius mygtukus prie roboto, kad išvalytumėte pranešimus
Neprivaloma: pridėkite laidinius mygtukus prie roboto, kad išvalytumėte pranešimus
Neprivaloma: pridėkite laidinius mygtukus prie roboto, kad išvalytumėte pranešimus

Šis veiksmas yra neprivalomas, tačiau labai rekomenduojama išvalyti pranešimus ekrane.

Prie savo roboto pridėjau du mygtukus, tačiau šiame projekte naudoju tik GPIO17.

Scenarijus check_button.py, kuris veikia įkrovos metu, apklausia GPIO17 kas kelias milisekundes, o nuspaudus siunčia HTTP POST į pavyzdinį ekrano scenarijų, kad išvalytų ekraną.

9 veiksmas: ištraukite viską ir išsiųskite išvestį į „Pi“

Yra 4 scenarijai, kurie veikia kartu su šiuo projektu:

/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“scenarijų teikia „Pimoroni“ir tai yra paprasta žiniatinklio programa, skirta valdyti ekraną naudojant POST komandas.

„Check_button python“scenarijus apklausia GPIO kaiščius ir nuspaudus mygtuką siunčia HTTP POST į scenarijų web-api.py.

Scenarijus forever.py pradeda slackPiBot.py scenarijų, kad būtų užtikrinta, jog jei yra kokių nors nepagautų klaidų arba atsijungiama nuo nusilpimo, scenarijus paleidžiamas iš naujo, kad neprarastumėte jokių pranešimų.

Scenarijus slackPiBot.py prisijungia prie „slack“ir stebi kanalą, ar nėra pranešimų, prasidedančių „bot“ar IFTT pranešimų. Jei bus sutapimas, jis atsiųs HTTP POST į scenarijų web-api.py ir bus rodomas ekrane.

10 veiksmas: pasirinktinai: IFTT integracija

Neprivaloma: IFTT integracija
Neprivaloma: IFTT integracija
Neprivaloma: IFTT integracija
Neprivaloma: IFTT integracija
Neprivaloma: IFTT integracija
Neprivaloma: IFTT integracija

Šis projektas buvo skirtas įspėti mano vaikus apie vaizdo įrašus, kuriuos paskelbė žmonės, kuriuos jie seka „YouTube“, nes jie yra per maži, kad galėtų turėti savo „iPhone“ar „iPad“. Aš tai padariau sukūręs IFTT receptus, kurie siunčia pranešimą į silpną valdymo kanalą, kai vaizdo įrašas yra paskelbtas.

Instrukcinių dalykų wiki sudėtinga tai pamatyti vienu žingsniu, tačiau aukščiau esančiose ekrano kopijose parodytas galutinis rezultatas.

Rekomenduojamas: