Оглавление:

Raspberry Pi Slack Scroll Bot !: 10 шагов
Raspberry Pi Slack Scroll Bot !: 10 шагов

Видео: Raspberry Pi Slack Scroll Bot !: 10 шагов

Видео: Raspberry Pi Slack Scroll Bot !: 10 шагов
Видео: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Июль
Anonim
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 на Raspberry Pi!

Этот проект сочетает в себе Raspberry Pi с комплектом Pimoroni Scroll Bot (модифицированным кнопками), Slack и IFTT для визуальных и звуковых уведомлений при публикации видео на YouTube по подписке!

Кнопки модификации комплекта не являются обязательными, как и динамик для объявления о прибытии нового видео.

Вы также можете использовать это для отправки любого сообщения боту через Slack, добавив «бот» в начало сообщения, например «бот, привет, мир». «бот очистить» очистит экран.

Шаг 1: сборка скролл-бота

Выполните инструкции по сборке Pimoroni Scroll Bot:

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

Шаг 2. Установите пакеты и кодовую базу

Установите аудиопакеты:

sudo apt-get update и sudo apt-get upgrade -y

sudo apt-get install mpg123

Установите пакеты python:

pip install flask

pip install psutil pip install slackclient

Следуйте инструкциям по началу работы с Scroll Hat в Pimoroni's:

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

который включает загрузку образца исходного кода и ресурсов:

curl https://get.pimoroni.com/scrollphathd | трепать

Поскольку в комплекте робота экран установлен в перевернутом виде, необходимо раскомментировать код для поворота экрана на 180:

$ sed -i 's / # scrollphathd.rotate (градусов = 180) /scrollphathd.rotate (градусов = 180) / g' /home/pi/Pimoroni/scrollphathd/examples/web-api.py

Шаг 3. Настройка экземпляра Slack

Настройка экземпляра Slack
Настройка экземпляра Slack
Настройка экземпляра Slack
Настройка экземпляра Slack

Чтобы скрипт мог взаимодействовать со Slack, вам понадобится ключ API бота.

Начните с входа на веб-страницу своей команды Slack (https://my.slack.com/services/new/bot) и выберите имя пользователя для своего бота, а затем скопируйте предоставленный токен API.

Шаг 4. Создайте Slack-канал и пригласите своего робота в этот канал

Создайте Slack-канал и пригласите своего робота в этот канал
Создайте Slack-канал и пригласите своего робота в этот канал

Вы можете использовать общий резервный канал или, если хотите, можете создать отдельный резервный канал.

В моем случае я использовал # robot-claire-control

Вы должны пригласить своего робота в канал, иначе он не увидит отправляемые сообщения.

Шаг 5: Загрузите исходный код SlackPiBot и настройте

Загрузите исходный код slackPiBot с git:

git clone

Обновите строку 29 своим ключом API:

slack_client = SlackClient ("xoxb-ВАШ-API-КЛЮЧ-ЗДЕСЬ")

Обновите строку 34, указав имя вашего робота:

если user.get ('name') == "робот-Клэр":

Шаг 6: Настройте Crontabs для автоматического запуска при загрузке:

Настройка автоматического запуска crontab при загрузке:

crontab -e

Добавьте следующее в конец вашего 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

Шаг 7. Необязательно: добавьте выход на USB-динамик

Для этого проекта я использую USB-спикерфон от US Robotics, доступный на Amazon или ebay.

Если вы используете что-то подобное, вам нужно будет изменить системное звуковое устройство по умолчанию, отредактировав конфигурацию alsa (/usr/share/alsa/alsa.conf). Измените следующие строки:

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

1 - это индекс вашего устройства. Чтобы узнать идентификатор вашего USB-устройства, запустите aplay -l и найдите идентификатор карты.

Шаг 8: Необязательно: добавьте к роботу проводные кнопки для удаления сообщений

Необязательно: добавьте к роботу проводные кнопки для удаления сообщений
Необязательно: добавьте к роботу проводные кнопки для удаления сообщений
Необязательно: добавьте к роботу проводные кнопки для удаления сообщений
Необязательно: добавьте к роботу проводные кнопки для удаления сообщений

Этот шаг не является обязательным, но настоятельно рекомендуется для удаления сообщений с экрана.

Я добавил к своему роботу две кнопки, но в этом проекте я использую только GPIO17.

Сценарий check_button.py, который запускается при загрузке, опрашивает GPIO17 каждые несколько миллисекунд и, если он нажат, отправляет HTTP POST в образец сценария экрана, чтобы очистить экран.

Шаг 9: Собираем все вместе и отправляем вывод на Pi

В этом проекте работают 4 сценария:

/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 предоставляется Pimoroni и представляет собой простое веб-приложение для управления экраном с помощью команд POST.

Скрипт python check_button опрашивает контакты GPIO, и когда кнопка нажата, отправляет HTTP POST скрипту web-api.py.

Сценарий forever.py запускает сценарий slackPiBot.py, чтобы гарантировать, что в случае каких-либо неперехваченных ошибок или отключения от slack сценарий будет перезапущен, чтобы не пропустить какие-либо сообщения.

Скрипт slackPiBot.py подключается к slack и отслеживает канал на предмет сообщений, начинающихся с «бота», или сообщений от IFTT. Если есть совпадение, он отправит HTTP POST скрипту web-api.py и отобразит его на экране.

Шаг 10: Необязательно: интеграция IFTT

Необязательно: интеграция IFTT
Необязательно: интеграция IFTT
Необязательно: интеграция IFTT
Необязательно: интеграция IFTT
Необязательно: интеграция IFTT
Необязательно: интеграция IFTT

Этот проект был разработан, чтобы предупредить моих детей о видео, размещенных людьми, на которых они подписаны на YouTube, поскольку они слишком молоды, чтобы иметь собственный iPhone или iPad. Я добился этого, создав рецепты IFTT, которые отправляют уведомление в канал управления резервом после публикации видео.

Вики-страницы с инструкциями усложняют просмотр за один шаг, но приведенные выше скриншоты показывают конечный результат.

Рекомендуемые: