Cuprins:

Raspberry Pi Slack Scroll Bot !: 10 pași
Raspberry Pi Slack Scroll Bot !: 10 pași

Video: Raspberry Pi Slack Scroll Bot !: 10 pași

Video: Raspberry Pi Slack Scroll Bot !: 10 pași
Video: Slack Pi Bot 2024, Noiembrie
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!

Acest proiect combină un Raspberry Pi cu un kit Pimoroni Scroll Bot (modificat cu butoane), Slack și IFTT pentru notificări vizuale și sonore atunci când videoclipurile de pe YouTube sunt postate la un abonament!

Modificările butoanelor la kit sunt opționale, precum și difuzorul pentru a anunța sosirea unui nou videoclip.

Puteți utiliza, de asemenea, acest lucru pentru a trimite orice mesaj către bot prin slăbire, înaintând „bot” partea din față a mesajului, cum ar fi „bot hello world”. „bot clear” va șterge ecranul.

Pasul 1: derulați ansamblul bot

Completați instrucțiunile pentru asamblarea Pimoroni Scroll Bot:

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

Pasul 2: Instalați pachete și Codebase

Instalați pachete audio:

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

sudo apt-get install mpg123

Instalați pachete Python:

pip instala balon

pip install psutil pip install slackclient

Urmați tutorialul de la Pimoroni pentru Noțiuni introductive despre Scroll Hat:

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

care include descărcarea eșantionului de cod sursă și resurse:

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

Deoarece ecranul este montat cu capul în jos în kitul robotului, trebuie să decomentați codul pentru a roti ecranul la 180:

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

Pasul 3: Configurarea instanței Slack

Configurarea instanței Slack
Configurarea instanței Slack
Configurarea instanței Slack
Configurarea instanței Slack

Pentru ca scriptul să comunice cu Slack, veți avea nevoie de o cheie API bot.

Începeți conectându-vă la pagina web a echipei Slack (https://my.slack.com/services/new/bot) și alegeți un nume de utilizator pentru botul dvs., apoi copiați simbolul API furnizat.

Pasul 4: Creați un canal Slack și invitați robotul la canal

Creați un canal Slack și invitați-vă robotul la canal
Creați un canal Slack și invitați-vă robotul la canal

Puteți utiliza canalul general de slack sau, dacă preferați, puteți crea un canal de slack separat.

În cazul meu am folosit # robot-claire-control

Trebuie să-ți inviți robotul în canal sau nu va vedea mesajele trimise.

Pasul 5: Descărcați codul sursă SlackPiBot și configurați

Descărcați codul sursă slackPiBot din git:

git clone

Actualizați linia 29 cu cheia API:

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

Actualizați linia 34 cu numele robotului dvs.:

dacă user.get ('nume') == "robot-claire":

Pasul 6: Configurați Crontabs pentru a porni automat la pornire:

Configurarea crontabs pentru a porni automat la pornire:

crontab -e

Adăugați următoarele în partea de jos a crontab-ului:

@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

Pasul 7: Opțional: adăugați o ieșire de difuzor USB

Pentru acest proiect, folosesc un difuzor USB de la US Robotics - disponibil pe Amazon sau eBay.

Dacă utilizați ceva similar, va trebui să schimbați dispozitivul implicit de sunet al sistemului, editând configurația alsa (/usr/share/alsa/alsa.conf). Schimbați următoarele rânduri:

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

1 fiind indexul dispozitivului dvs. Pentru a găsi ID-ul dispozitivului dispozitivului USB, rulați aplay -l și căutați ID-ul cardului.

Pasul 8: Opțional: adăugați butoane cu fir la robot pentru a șterge mesajele

Opțional: adăugați butoane cu fir la robot pentru a șterge mesajele
Opțional: adăugați butoane cu fir la robot pentru a șterge mesajele
Opțional: adăugați butoane cu fir la robot pentru a șterge mesajele
Opțional: adăugați butoane cu fir la robot pentru a șterge mesajele

Acest pas este opțional, dar foarte recomandat pentru a șterge mesajele de pe ecran.

Am adăugat două butoane la robotul meu, dar în acest proiect folosesc doar GPIO17.

Scriptul check_button.py care rulează la boot interogă GPIO17 la fiecare câteva milisecunde și, dacă este apăsat, trimite un HTTP POST la scriptul ecranului de eșantionare pentru a goli ecranul.

Pasul 9: Trageți totul împreună și trimiteți ieșirea către Pi

Există 4 scripturi care funcționează împreună pentru acest proiect:

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

Scriptul web-api este furnizat de Pimoroni și este o aplicație web simplă pentru a controla ecranul cu comenzi POST.

Scriptul python check_button sondează pinii GPIO și când butonul este apăsat, trimite un HTTP POST către scriptul web-api.py.

Scriptul forever.py dă startul scriptului slackPiBot.py pentru a se asigura că, dacă există erori neacoperite sau se deconectează de la slack, scriptul este repornit pentru a evita lipsa mesajelor.

Scriptul slackPiBot.py se conectează la slack și monitorizează canalul pentru mesajele care încep cu „bot” sau postări din IFTT. Dacă există o potrivire, acesta va trimite un HTTP POST către scriptul web-api.py și va fi afișat pe ecran.

Pasul 10: Opțional: integrare IFTT

Opțional: integrare IFTT
Opțional: integrare IFTT
Opțional: integrare IFTT
Opțional: integrare IFTT
Opțional: integrare IFTT
Opțional: integrare IFTT

Acest proiect a fost conceput pentru a-mi alerta copiii cu privire la videoclipurile postate de persoanele pe care le urmăresc pe youtube, deoarece sunt prea tineri pentru a avea propriul iPhone sau iPad. Am realizat acest lucru prin crearea de rețete IFTT care trimit o notificare către canalul de control slack după ce a fost postat un videoclip.

Wiki instructabile face acest lucru complicat de văzut într-un singur pas, dar capturile de ecran de mai sus arată rezultatul final.

Recomandat: