Ребятушки всем Привет. Решил запилить хардварный счетчик подписчиков для YouTube канала. А зачем это все нужно, спросите вы? Конечно можно зайти на страницу канала и посмотреть статистику. Есть куча виджетов, приложений для смартфона, сайтов для анализа посещаемости. Но все это не интересно. Хочется создать hardware решение из имеющихся железок под рукой. Прокачать знания в программировании ESP и Arduino. И поделиться интересным решением для начинающих разработчиков, ибо на сегодняшний момент, такого решения в сети я не видел. Ну что поехали…

Техническое задание

    • Разработать счетчик подписчиков YouTube канала на Arduino или ESP8266.
    • Выводить информацию на внешний дисплей и в консоль разработчика.
    • Устройство должно быть портативным и по возможности автономным.
  • Выводить как можно больше информации. Количество подписчиков, просмотров, комментариев и т.д.

Железо. ESP8266 Node MCU. Nextion HMI.

И так. Исходя из техзадания необходимо выбрать платформу для разработки. Raspberry Pi отбросил сразу, т.к. мощности ее избыточны. Основной выбор стал между Arduino и ESP8266. Т.к. всетаки необходимо обращаться за данными в интернет и исходя из того, что устройство должно быть автономным, выбор пал на ESP8266. При этом у ESP8266 работа с сетью доступна из «коробки», а к Arduino еще необходимы дополнительные шилды. Выводить информацию будем в консоль порта для отладки проекта и на дисплей Nextion HMI 7″  Разработку будем вести в Arduino IDE.

Софт. Среда разработки.

Разработку будем вести в среде Arduino IDE. Скачиваем и накатываем если еще этого не сделали. Далее добавляем ESP менеджер в  среду Arduino IDE. Те кто уже работали с ESP и знают с чем его едят – переходим к следующему пункту.

Прежде чем мы перейдем к написанию кода, мы должны подготовить среду  IDE Arduino с библиотеками, а также ядром для платформы разработки Node MCU. Чтобы установить Node MCU c ядром модуля ESP8266, необходимо:

  • Скопируйте и вставьте эту строку в URL-адреса менеджера дополнительных плат:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Откройте вкладку Файл – Настройка , в строке Дополнительный менеджер плат добавить ссылку как показано на скриншоте.Откройте вкладку Файл – Настройки , в строке Дополнительные ссылки для Менеджера плат добавить ссылку как показано на скриншоте.

Теперь заходим в Инструменты – вкладка Платы – Менеджер плат… => Прописываем в строке поиска ESP8266. Жмем установить.

После подключения платы к компьютеру устанавливаем драйвера для платы ch340. Выбираем в менеджере план Node MCU V1.0 => COM порт и скорость соединения.

YouTube API KEY. ID YouTube Канала.

Перед тем как приступить к написанию кода, необходимо получить API KEY YouTube. Для этого:

1. Переходим по этой ссылке. И если вы не авторизованы в сервисе – авторизуйтесь.

2. Далее на открывшейся странице в списке ищем «YouTube Data API v3» и кликаем по нему.

3. На открывшейся странице нажимаем «Включить».

4. Затем перед нами открывается новая страница, где в правом верхнем углу мы жмем «Создать». В форме выбираем «YouTube Data API v3», «Веб-сервер (например, node.js, Tomcat)» и «Общедоступные данные».

И жмем «Выбрать тип учетных данных».

После этого у вас появится ваш API KEY, который вы сохраняете к себе в удобное для вас место и жмете – «Готово».

На этом получение ключа доступа к сервису YouTube окончено. Теперь узнаем ID YouTube канала. Открываем YouTube в браузере и переходим на страницу канала. В адресной строке браузера копируем ID канала. Как показано на скриншоте.

Пишем код.

Друзья. Я надеюсь, что довольно детально прокомментировал код. Однако есть пару нюансов которые все таки стоит проговорить еще раз. Вводим свои полученные данные API KEY и ID канала. А также Имя и Пароль от WiFi сети.

Нажимаем кнопку Загрузка или сочетание клавиш Ctrl+U и прошиваем ESP. После завершения загрузки скетча в память ESP, открываем монитор порта и проверяем, что все работает правильно.

Nextion HMI.

С выводом в консоль Arduino IDE я думаю разобрались. Кстати по сути данные можно выводить в любую программу для мониторинга COM порта. Первое, что приходит на ум это Putty. Теперь приступим к выводу данных на дисплей Nextion HMI 7″ Описание работы со средой разработки Nextion Editor, выходит за рамки этой статьи, однако ознакомиться с интерфейсом и правилами разработки можно в этой статье. Еще один пример проекта разработанного в Nextion Editor для дисплея Nextion доступен по этой ссылке.

Для тех, кто не знаком с дисплеями от Nextion и поленился про них почитать выше по ссылке, вкратце опишу проект. К сожалению одной из больших проблем Nextion Editor, является отсутствие хороших, качественных шрифтов. Поэтому в любом удобном графическом редакторе создаем подложку с логотипом канала. Добавляем текстовые элементы в которые выводим информацию с ESP.

Этот кусок кода описывает три переменные в которые выводиться информация о подписчика, просмотрах и комментариях. Для Arduino и  ESP существует специальная библиотека по работе с дисплеями от Nextion, однако в таком простом проекте использовать ее не целесообразно. Последняя строчка, массив посылаемый в порт для инициализации работы с дисплеем.

Эта часть кода, отвечает непосредственно за отправку данных в дисплей. Я думаю все интуитивно понятно. Библиотека YouTube API поддерживает еще несколько команд для вывода информации. Поэтому в проект можно добавить еще поля для вывода информации.

А вот, что в итоге получилось.

Ну что друзья. Надеюсь данная статья была интересна и полезна для вас. Ниже прилагаю все файлы и исходники. Если вам понравилась статья, поделитесь ей в социальных сетях или поддержите проект монеткой на странице Donate.  И конечно подписывайтесь на YouTube канал.

Ссылка на все файлы на GitHub