[Перевод] Оповещатель о выходе видео на YouTube
Незатейливый и забавный проект базового уровня по сборке оповещателя о выходе новых видео на выбранном канале YouTube. Для реализации потребуется минимум технических навыков, так что он может стать отличной практикой для тех, кто только начинает свое знакомство с микроконтроллерами или просто интересуется DIY-поделками.
Предыстория
Когда я имел удовольствие побывать в мастерской у моего товарища — блогера Джимми DiResta — прошлой осенью, то прихватил оттуда один из множества трафаретов его логотипов. Честно сказать, ума не приложу, почему мне это взбрело в голову — эта штуковина оказалась в моем рюкзаке каким-то загадочным образом. Даже не знаю, как она туда попала.
Поначалу я призадумался, как этот трафарет вообще применить. Но, оказавшись у себя в мастерской, решил собрать до нелепости раздражительную WiFi-систему оповещения, которая при каждой загрузке Джимми нового видео на YouTube будет мигать красной надписью DIRESTA и издавать ушераздирающий сигнал. Получившая название DiRestAlarm, эта система стала одной из глупейших вещей, когда-либо мной собранных. Я был очень горд.
Здесь же я приведу для вас инструкцию по сборке упрощенной версии. Обладая базовыми знаниями по работе с Raspberry Pi и имея такой с подключением к интернету, вы сможете собрать собственный оповещатель, который будет уведомлять вас о загрузке любимым блогером нового видео на YouTube.
Что потребуется
- одноплатник Raspberry Pi с записанной на MicroSD системой Raspbian и настроенным выходом в интернет;
- светодиоды: 1 красный и 1 зеленый;
- кнопка с возвратом;
- резисторы, 2 по 330Ω;
- беспаечная макетная плата для тестирования;
- провода-перемычки;
- коммутационная плата GPIO (необязательно) вроде Adafruit Pi Cobbler — удобна для прототипирования, а при желании и для финальной пайки схемы.
- корпус на ваш выбор (необязательно);
Инструменты
- клавиатура, мышь и монитор для настройки Pi; далее для работы оповещателя не потребуются;
- паяльник и припой (необязательно) для окончательной пайки схемы.
Сборка
1. Подключение схемы
Рис. A
Схема для упрощенной версии оповещателя откровенно проста (Рис. А). Красный светодиод вместе с его резистором подключается к вводу-выводу Raspberry Pi через контакт 18, а зеленый светодиод через контакт 23. Кнопка, которая будет служить для сброса оповещения, подключается к контакту 17.
Рис. В
Рис. С
Готовая схема, показанная на рис. В и С, представляет всю необходимую основу.
2. Создание для Pi аккаунта Google
Чтобы подготовить Pi к получению уведомлений с YouTube нужно настроить для него собственный аккаунт Google. Назвать можете его на свое усмотрение. В результате у вас появится и уникальная учетная запись Gmail, и логин для YouTube.
3. Включение уведомлений YouTube
Авторизуйтесь на YouTube с помощью созданной учетной записи Google и подпишитесь на интересующий вас канал. Проверьте, чтобы колокольчик рядом с кнопкой «Подписаться» был установлен на «Все» уведомления.
Затем перейдите в Настройки — Уведомления — Уведомления по электронной почте и включите «Уведомления о последних действиях на моем канале». Также убедитесь, что в пункте «Ваши настройки» включена опция «Подписки».
Теперь вы будете получать email-уведомления на новый аккаунт Gmail о каждой публикации видео на выбранном канале.
4. Установка библиотеки IMAPClient
Для упрощения парсинга электронной почты мы задействуем библиотеку IMAPClient, которую нужно будет установить на ваш Raspberry Pi с Raspbian. Для установки будет достаточно ввести в терминале:
pip install imapclient
Если что, документация по IMAPClient тут.
5. Программирование Pi
Самое же сердце оповещателя — это Python скрипт MakerAlarm.py
, который потребуется загрузить на Raspberry Pi. Весь код бесплатно доступен для скачивания в виде архива по адресу makezine.com/go/ytmakeralarm.
В этом скрипте вам нужно обратить внимание на несколько переменных.
FROM
и SUBJECT
— это атрибуты, по которым скрипт будет производить поиск при проверке вашей почты. Все прочие сообщения будут игнорироваться. MAIL_CHECK_FREQ
определяет частоту проверки писем. По умолчанию это будет происходить раз в 600 секунд.
В целях тестирования можете изменить переменные FROM
и SUBJECT
, если хотите отправлять на Pi тестовые письма с личного почтового ящика. Только не забудьте поменять их обратно, когда нужно будет переключаться на проверку реальных уведомлений YouTube.
Помимо этого, нужно будет настроить USERNAME
и PASSWORD
. USERNAME
будет просто представлять адрес созданной в начале почты. А вот PASSWORD
будет не паролем для аккаунта Google, а уникальным паролем, который вы создадите на следующем шаге.
6. Организация доступа Pi к Gmail
Прежде, чем ваш Pi сможет проверять созданный аккаунт Gmail, ему потребуется специальный пароль, который Google называет «паролем приложения». Для его настройки авторизуйтесь в созданном аккаунте Google, выберите «Управление аккаунтом Google» и перейдите в меню «Безопасность».
В разделе «Вход в аккаунт Google» выберите «Двухэтапная аутентификация». Это нужно сделать, чтобы получить возможность создавать пароли приложений. Просто следуйте инструкциям и введите код для подтверждения, что это вы.
Возвращайтесь на страницу «Безопасность», где теперь у вас появится возможность выбрать «Пароли приложений». В опции «Выберите приложение» укажите «Почта», в опции «Выберите устройство» укажите «Другое» и введите нужное имя, например «YouTube-оповещатель». В завершении кликните «Сгенерировать». Google создаст 16-символьный пароль, который можно использовать исключительно для оповещателя. Скопируйте пароль, прежде чем продолжать, так как сервис больше его не покажет.
Теперь вставьте пароль в переменную PASSWORD
файла MakerAlarm.py
и сохраните изменения. Вот, собственно, и все.
Можно следить за выбранным каналом!
Для использования оповещателя необходимо, чтобы Pi был подключен к интернету. Если все нормально, откройте терминал, перейдите в каталог с загруженным скриптом и введите:
python3 MakerAlarm.py
Рис. D
Рис. E
Когда программа запустится, произойдет две вещи: загорится красный светодиод, и Pi проверит свой аккаунт Gmail. Если он не найдет непрочитанные уведомления от YouTube, то светодиод продолжит гореть (Рис. D), а скрипт отобразит в терминале таймер, отсчитывающий время до следующей проверки (Рис. Е).
Рис. F
Рис. G
Рис. H
Если же уведомление будет обнаружено (Рис. F), тогда несколько раз промигает зеленый светодиод, после чего продолжит гореть (Рис. G) в качестве напоминания о новом видео на канале. Когда вы это видео посмотрите, просто нажмите кнопку сброса, чтобы вернуть оповещатель обратно в красное состояние (Рис. H). До этого момента скрипт фоново продолжит проверять поступление новых уведомлений, и в случае обнаружения непрочитанных будет активировать оповещение.
Кастомизация
Теперь, когда вы наладили основу будущего оповещателя, вам наверняка захочется его полноценно доработать — возможно, напечатать красивый корпус на 3D-принтере или выпилить его из дерева. Вы также можете усилить эффект оповещения, добавив больше световых элементов или пьезодинамик.
Конечно, если вы захотите сделать нечто радикально привлекающее внимание, то можете последовать моему примеру и подцепить оповещатель к громкому мотоциклетному гудку. (Для этого потребуется источник питания на 12В и реле).
Но я не рекомендую вам делать это, если устройство будет использоваться у вас в мастерской, где вы работаете с опасным оборудованием!