В этой статье мастер расскажет нам, как сделать свой собственный счетчик подписчиков Youtube, используя дисплей электронной книги и Raspberry Pi. Такие дисплеи отлично подходят для такого типа проектов, поскольку они отлично читаются даже при ярком солнечном свете и могут просматриваться практически под любым углом, как бумага.
Дисплей должен обновляться не реже одного раза в день, чтобы предотвратить выгорание дисплея, но мастер установил обновление каждые три часа.
Устройство потребляет очень мало энергии, так как дисплей получает питание только при обновлении, в остальное время он практически выключен. Raspberry Pi Zero W работает постоянно и потребляет около 0,6 Вт в режиме ожидания.
Инструменты и материалы:
-Raspberry Pi Zero W;
-Карта Micro SD;
-Дисплей Waveshare для электронной бумаги HD 7,5 дюймов с контроллером;
-Фоторамка 6x8 " (152 Х 203 мм);
-Паяльные принадлежности;
Шаг первый: подготовка электроники
К Raspberry Pi припаивает штыревые разъемы и устанавливает радиатор.
В проекте мастер использует дисплей Waveshare 7.5 "HD 3 Color E-Paper (модель B). Есть еще двухцветная версию и трехцветную с желтым цветом вместо красного, но красный цвет лучше подходит для кнопки воспроизведения YouTube. Дисплей действительно тонкий, идеально подходит для установки в фоторамку без значительного изменения задней панели.
В упаковке находится контроллер дисплея, который подключается к дисплею шлейфом.
Перед установкой SD-карты нужно загрузить на нее ОС Raspberry Pi. Raspberry подсоединяется к контроллеру напрямую.
Шаг второй: рамка
Рамку нужно немного переделать. Внутри рамки установлен картон с окном под фотографию. Мастер вытаскивает его из рамки и обрезает окно по размеру дисплея. Затем вырезает в картонке, которая будет закрывать заднюю часть, отверстие для кабеля.
Теперь можно собрать рамку.
С дисплея нужно снять защитную пленку. Затем приклеить к нему белую картонную рамку. Устанавливает дисплей в фоторамку и фиксирует картонным листом. К листу крепит электронику.
Шаг третий: программирование и настройка
С помощью утилиты Raspberry Pi нужно установить на SD-карту ОС Raspberry Pi.
При первой загрузке Pi потребуется некоторое время, чтобы настроить операционную систему, подключиться к сети Wi-Fi и установить обновления. Большая часть этих операций выполняется автоматически, и интуитивно понятно.
Перед загрузкой скриптов, нужно будет установить несколько библиотек и выполнить шаги настройки.
Включите интерфейс SPI.
Откройте окно терминала и введите следующую команду:
sudo raspi-config
Выберите: Options -> SPI -> Yes
Возможно потребуется перезагрузить Pi, чтобы изменения вступили в силу.
sudo reboot
После перезапуска Pi снова откройте окно терминала.
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.60.tar.gz
tar zxvf bcm2835-1.60.tar.gz
cd bcm2835-1.60/
sudo ./configure
sudo make
sudo make check
sudo make install
Установите библиотеки WiringPi:
sudo apt-get install wiringpi
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v
Установите библиотеки Python2:
sudo apt-get update
sudo apt-get install python-pip
sudo apt-get install python-pil
sudo apt-get install python-numpy
sudo pip install RPi.GPIO
sudo pip install spidev
Установите библиотеки Python3:
sudo apt-get update
sudo apt-get install python3-pip
sudo apt-get install python3-pil
sudo apt-get install python3-numpy
sudo pip3 install RPi.GPIO
sudo pip3 install spidev
Чтобы скрипт Python мог получить текущее количество подписчиков и количество просмотров он-лайн, необходимо добавить идентификатор канала и ключ API YouTube.
Вот как сгенерировать свой ключ API:
Перейдите на веб-страницу Google API, войдя в свою учетную запись Google, связанную с вашим каналом YouTube - https://console.developers.google.com
Перейдите на панель инструментов и нажмите «Создать проект», выберите имя для своего проекта и нажмите «Создать».
Затем нажмите «Включить API и службы» и введите - Youtube Data API v3 - в поле поиска. Включите его и нажмите «Создать учетные данные».
На следующей странице вы должны увидеть ссылку для создания ключа API, нажмите на эту ссылку.
Затем нажмите «Ограничения API» и выберите «API данных YouTube v3».
Нажмите «Создать», после чего вам будет предоставлен ключ API, который вам нужно будет скопировать в основной скрипт Python ниже.
Также понадобится ваш идентификатор канала. Его можно найти в разделе «Расширенные настройки» вашей учетной записи канала. Щелкните изображение своего профиля в правом верхнем углу, затем перейдите в «Настройки», дождитесь загрузки страницы и затем нажмите «Дополнительные настройки» в меню слева.
Вы можете проверить свой ключ API и идентификатор канала, перейдя по следующему адресу в своем браузере, заменив YourChannelID и YourAPIKey только что полученными:
https://www.googleapis.com/youtube/v3/channels?part=statistics&id=YourChannelID&key=YourAPIKey
Дальше переходим к скрипту Python
Этот скрипт во многом основан на примере скрипта Waveshare с парой дополнений и изменений для получения информации с Youtube:
Скопируйте корневую папку в домашний каталог / pi /, чтобы ваш скрипт находился в /home/pi/SubCount/SubCount/subCount.py
Вам также может потребоваться включить шрифт, использованный в примере Waveshare , вставить этот шрифт в папку pic вместе с youtubeIcon.bmp.
Затем мы используем Youtube API, чтобы запросить количество подписчиков и количество просмотров. Не забудьте обновить их в своем скрипте перед его запуском, просто замените ****** своим собственным идентификатором и ключом.
Затем подключаемся к дисплею, чтобы обновить его. Дальше нужно заменить название канала «Michael Klements» на свое собственное название канала в этой части кода.
Затем сценарий снова переводит дисплей в режим сна с низким энергопотреблением до следующего обновления.
Также нужно будет запустить сценарий setup.py, входящий в состав вышеупомянутой загрузки кода, один раз перед запуском фактического сценария:
Дальше пробуем запустить сценарий, и через несколько секунд дисплей начинает обновляться. Полное обновление дисплея занимает довольно много времени, примерно 30 секунд на Raspberry Pi Zero.
Мерцание является нормальным для этих контроллеров и сделано для предотвращения выгорания дисплея. Сначала он будет мигать черным и белым, затем загрузит черно-белую версию изображения и, наконец, заменит часть черного на красный в соответствии с настройками.
После того, как скрипт заработал нужно запланировать его автоматический запуск с помощью crontab. Waveshare рекомендует обновлять дисплей не реже одного раза в 24 часа, чтобы предотвратить выгорание. Мастер решил обновлять его каждые 8 часов.
При настройки он следовал этому руководству scottkildall, чтобы crontab автоматически запускал скрипт в 6, 14 и 22 часа.
По сути, нужно создать сценарий launcher.sh в той же папке, что и сценарий Python:
#!/bin/sh
# launcher.sh
# navigate to home, then script directory, then execute, then back home
cd /
cd home/pi/SubCount/SubCount/
sudo python3 subCount.py
cd /
Этот сценарий дает команду Raspberry Pi сменить каталог на домашний каталог, затем перейти к своему сценарию, затем запустить сценарий с помощью python3 и снова вернуться в домашний каталог.
Создав сценарий запуска, откройте crontab, открыв окно терминала и введя команду:
crontab -e
Затем отредактируете crontab для запуска сценария launcher.sh, добавив строки:
0 22 * * * /home/pi/SubCount/SubCount/launcher.sh
0 6 * * * /home/pi/SubCount/SubCount/launcher.sh
0 14 * * * /home/pi/SubCount/SubCount/launcher.sh
Сохраните изменения, и теперь ваш Raspberry Pi должен быть настроен на автоматическое обновление в 06:00, 14:00 и 22:00. Вы можете изменить минуты и часы в строках выше, на нужное вам.
Устройство готово к использованию. Просто нужно подключить его к источнику питания USB и установить в нужное место.
Весь процесс по его сборке и настройке можно посмотреть на видео.
Источник (Source)
Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.