Ребятушки всем Привет. Решил запилить хардварный счетчик подписчиков для 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

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.