Spisu treści:

Raspberry Pi Slack Scroll Bot!: 10 kroków
Raspberry Pi Slack Scroll Bot!: 10 kroków

Wideo: Raspberry Pi Slack Scroll Bot!: 10 kroków

Wideo: Raspberry Pi Slack Scroll Bot!: 10 kroków
Wideo: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Lipiec
Anonim
Slack Bot do przewijania Raspberry Pi!
Slack Bot do przewijania Raspberry Pi!
Slack Bot do przewijania Raspberry Pi!
Slack Bot do przewijania Raspberry Pi!
Slack Bot do przewijania Raspberry Pi!
Slack Bot do przewijania Raspberry Pi!

Ten projekt łączy Raspberry Pi z zestawem Pimoroni Scroll Bot (zmodyfikowany przyciskami), Slack i IFTT dla powiadomień wizualnych i dźwiękowych, gdy filmy z YouTube są publikowane w subskrypcji!

Modyfikacje przycisków zestawu są opcjonalne, podobnie jak głośnik informujący o pojawieniu się nowego filmu.

Możesz również użyć tego do wysłania dowolnej wiadomości do bota przez luz, dodając „bot” na początku wiadomości, na przykład „bot hello world”. "bot clear" wyczyści ekran.

Krok 1: Montaż bota przewijania

Wykonaj instrukcje montażu Pimoroni Scroll Bot:

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

Krok 2: Zainstaluj pakiety i bazę kodu

Zainstaluj pakiety audio:

aktualizacja sudo apt-get i aktualizacja sudo apt-get -y

sudo apt-get zainstaluj mpg123

Zainstaluj pakiety Pythona:

kolba instalacyjna pip

pip install psutil pip install slackclient

Postępuj zgodnie z samouczkiem w Pimoroni, aby zacząć korzystać ze Scroll Hat:

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

co obejmuje pobranie przykładowego kodu źródłowego i zasobów:

curl https://get.pimoroni.com/scrollphathd | grzmotnąć

Ponieważ ekran jest zamontowany do góry nogami w zestawie robota, musisz odkomentować kod, aby obrócić ekran o 180:

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

Krok 3: Konfiguracja instancji Slack

Konfigurowanie instancji Slack
Konfigurowanie instancji Slack
Konfigurowanie instancji Slack
Konfigurowanie instancji Slack

Aby skrypt mógł komunikować się ze Slackiem, potrzebujesz klucza API bota.

Zacznij od zalogowania się na stronie swojego zespołu Slack (https://my.slack.com/services/new/bot) i wybierz nazwę użytkownika dla swojego bota, a następnie skopiuj dostarczony token API.

Krok 4: Utwórz kanał Slack i zaproś swojego robota do kanału

Utwórz kanał Slack i zaproś swojego robota do kanału
Utwórz kanał Slack i zaproś swojego robota do kanału

Możesz użyć kanału ogólnego zapasu czasu lub, jeśli wolisz, możesz utworzyć osobny kanał zapasu czasu.

W moim przypadku użyłem #robot-claire-control

Musisz zaprosić swojego robota do kanału, w przeciwnym razie nie zobaczy on wysyłanych wiadomości.

Krok 5: Pobierz i skonfiguruj kod źródłowy SlackPiBot

Pobierz kod źródłowy slackPiBot z git:

klon git

Zaktualizuj wiersz 29 swoim kluczem API:

slack_client = SlackClient("xoxb-TWÓJ-KLUCZ-API-TUTAJ")

Zaktualizuj wiersz 34 nazwą swojego robota:

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

Krok 6: Skonfiguruj Crontabs, aby uruchamiał się automatycznie podczas rozruchu:

Konfigurowanie crontabs, aby uruchamiały się automatycznie przy starcie:

crontab -e

Dodaj następujące elementy na dole twojego 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

Krok 7: Opcjonalnie: Dodaj wyjście głośnika USB

Do tego projektu używam zestawu głośnomówiącego USB firmy US Robotics - dostępnego na amazon lub ebay.

Jeśli używasz czegoś podobnego, będziesz musiał zmienić domyślne urządzenie dźwiękowe systemu, edytując konfigurację alsa (/usr/share/alsa/alsa.conf). Zmień następujące wiersze:

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

1 to indeks Twojego urządzenia. Aby znaleźć identyfikator urządzenia USB, uruchom aplay -l i poszukaj identyfikatora karty.

Krok 8: Opcjonalnie: Dodaj przyciski przewodowe do robota, aby wyczyścić wiadomości

Opcjonalnie: dodaj przyciski przewodowe do robota, aby wyczyścić wiadomości
Opcjonalnie: dodaj przyciski przewodowe do robota, aby wyczyścić wiadomości
Opcjonalnie: dodaj przyciski przewodowe do robota, aby wyczyścić wiadomości
Opcjonalnie: dodaj przyciski przewodowe do robota, aby wyczyścić wiadomości

Ten krok jest opcjonalny, ale wysoce zalecany, aby wyczyścić komunikaty na ekranie.

Dodałem do robota dwa przyciski, ale w tym projekcie używam tylko GPIO17.

Skrypt check_button.py, który uruchamia się podczas rozruchu, odpytuje GPIO17 co kilka milisekund i jeśli jest wciśnięty, wysyła HTTP POST do przykładowego skryptu ekranu, aby wyczyścić ekran.

Krok 9: Pociągnij wszystko razem i wyślij dane wyjściowe do Pi

W tym projekcie współpracują ze sobą 4 skrypty:

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

Skrypt web-api jest dostarczany przez Pimoroni i jest prostą aplikacją internetową do sterowania ekranem za pomocą poleceń POST.

Skrypt check_button python odpytuje piny GPIO i gdy przycisk jest wciśnięty, wysyła HTTP POST do skryptu web-api.py.

Skrypt forever.py uruchamia skrypt slackPiBot.py, aby zapewnić, że jeśli wystąpią jakieś niewykryte błędy lub rozłączenia ze luzem, skrypt zostanie ponownie uruchomiony, aby uniknąć pominięcia jakichkolwiek wiadomości.

Skrypt slackPiBot.py łączy się ze slack i monitoruje kanał pod kątem wiadomości zaczynających się od „bota” lub postów z IFTT. Jeśli znajdzie dopasowanie, wyśle HTTP POST do skryptu web-api.py i wyświetli się na ekranie.

Krok 10: Opcjonalnie: Integracja IFTT

Opcjonalnie: Integracja IFTT
Opcjonalnie: Integracja IFTT
Opcjonalnie: Integracja IFTT
Opcjonalnie: Integracja IFTT
Opcjonalnie: Integracja IFTT
Opcjonalnie: Integracja IFTT

Ten projekt miał na celu ostrzeganie moich dzieci o filmach opublikowanych przez osoby, które śledzą na youtube, ponieważ są zbyt młode, aby mieć własnego iPhone'a lub iPada. Osiągnąłem to, tworząc przepisy IFTT, które wysyłają powiadomienie do kanału kontrolnego luzu po opublikowaniu wideo.

Instruktażowa wiki sprawia, że jest to skomplikowane w jednym kroku, ale powyższe zrzuty ekranu pokazują wynik końcowy.

Zalecana: