![Создание библиотеки Arduino для YouTube Sight: 7 шагов Создание библиотеки Arduino для YouTube Sight: 7 шагов](https://i.howwhatproduce.com/images/009/image-25894-j.webp)
Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:04
![Image Image](https://i.howwhatproduce.com/images/009/image-25894-2-j.webp)
![](https://i.ytimg.com/vi/Gylh7SPpg0o/hqdefault.jpg)
![Что такое библиотека? Что такое библиотека?](https://i.howwhatproduce.com/images/009/image-25894-3-j.webp)
Всем привет, Недавно я создал сервис под названием YouTube Sight, который может извлекать данные о подписчиках из YouTube Analytics API и давать вам более точный подсчет подписчиков с тех пор, как YouTube начал агрегировать результаты. С его помощью я создал пример скетча, но я также хотел создать библиотеку Arduino, чтобы людям было проще ее использовать.
Шаг 1. Что такое библиотека?
![Что такое библиотека? Что такое библиотека?](https://i.howwhatproduce.com/images/009/image-25894-4-j.webp)
Библиотека - это фрагмент кода, который может обрабатывать конкретную операцию, обрабатывать тип данных или может знать, как взаимодействовать с конкретным элементом оборудования. Они позволяют нам легко расширять среду Arduino, и многие из них поставляются с предустановленной Arduino IDE.
В таких случаях, как мой, когда мы хотим добавить новые возможности для Arduino, мы можем создавать собственные библиотеки, чтобы другие люди могли их использовать. Все установленные библиотеки находятся в определенной папке на нашем компьютере. В моем случае для ПК с Windows библиотеки находятся в папке Documents / Arduino. Полный путь будет конкретным для вас в зависимости от вашего имени пользователя.
Шаг 2: структура библиотеки и файлы
![Структура и файлы библиотеки Структура и файлы библиотеки](https://i.howwhatproduce.com/images/009/image-25894-5-j.webp)
Чтобы начать создавать нашу библиотеку, нам сначала нужно создать здесь папку с ее названием, поэтому я создал папку под названием YouTube Sight. В самой минимальной версии библиотеки у нас должно быть как минимум два файла.
Первый - это так называемый «заголовочный» файл, который содержит все определения методов и свойств, предоставляемых нашей библиотекой, а второй - это исходный файл, который будет содержать весь исходный код.
Заголовочные файлы имеют расширение «.h», в то время как исходный файл имеет расширение «.cpp», и в качестве имени файла они обычно содержат имя библиотеки. В моем случае эти два файла называются «YouTubeSight.h» и «YouTubeSight.cpp».
Процесс написания кода библиотеки может быть немного утомительным и утомительным, особенно когда вы пишете библиотеку впервые, но с большим количеством проб и ошибок вы можете достичь желаемых результатов. Поэтому я проведу вас через законченный код двух файлов и объясню его.
Полный код и библиотека доступны для загрузки с GitHub по следующей ссылке:
Шаг 3: Заголовочный файл
![Заголовочный файл Заголовочный файл](https://i.howwhatproduce.com/images/009/image-25894-6-j.webp)
![Заголовочный файл Заголовочный файл](https://i.howwhatproduce.com/images/009/image-25894-7-j.webp)
![Заголовочный файл Заголовочный файл](https://i.howwhatproduce.com/images/009/image-25894-8-j.webp)
Внутри файла заголовка, в начале, весь файл заключен в оператор ifndef, который проверяет, определена ли указанная переменная или нет. Это предотвратит ошибки для всех, кто использует библиотеку, если они по ошибке дважды включат ее в один и тот же скетч.
Затем нам нужно включить базовую библиотеку Arduino, и поскольку мы будем работать с каким-либо HTTP-клиентом для отправки запроса в YouTube Sight, мы также включим базовую клиентскую библиотеку.
Прежде чем мы начнем писать содержимое нашего основного класса, нам нужно определить любые статические переменные и настройки, которые мы не хотим изменять. В моем случае таких переменных две. Основной URL-адрес службы YouTube Sight и переменная тайм-аута, которую мы будем использовать, чтобы проверить, как долго мы читаем значение.
Также в этом разделе мы можем определить любые настраиваемые типы, которые мы хотим использовать, например эту структуру channelStatistics, в которую мы будем сохранять результаты.
Определение структуры класса разделено на две части. Первая часть - это определение всех общедоступных функций и свойств, а вторая - определение всех частных функций и свойств. Разница между ними заключается в том, что конечные пользователи нашей библиотеки не смогут напрямую использовать что-либо из закрытого раздела, в то время как они смогут напрямую изменять и использовать любые свойства и функции из общедоступной части.
В публичном разделе мы определяем конструктор класса, переменную channelStats, в которой мы будем хранить результаты, функцию, которая будет получать данные, и свойство отладки, которое мы позже можем использовать для проверки случаев, когда мы не можем получить ожидаемые результаты.
Для частных свойств мы определим один для хранения GUID канала, указатель на HTTP-клиент, который мы будем использовать, и функцию, которая разделит возвращаемую строку из YouTube Sight.
Шаг 4: Исходный файл
![Исходный файл Исходный файл](https://i.howwhatproduce.com/images/009/image-25894-9-j.webp)
![Исходный файл Исходный файл](https://i.howwhatproduce.com/images/009/image-25894-10-j.webp)
Теперь давайте посмотрим на фактическую реализацию всего этого внутри исходного файла.
Первым шагом для нас является включение нашего собственного файла заголовка, который мы только что создали, а затем нам нужно определить конструктор библиотеки. В нем мы передаем две переменные. GUID сохраняется в частной переменной, которую мы определили ранее, а клиент передается по ссылке, поэтому мы можем затем вызвать тот же экземпляр, который мы получили.
Затем определяется основная функция библиотеки getData: сначала указывается тип возвращаемого значения, а затем имя библиотеки и имя функции. Я не буду вдаваться в подробности того, что делает каждая отдельная строка в этой функции, но в целом функция открывает соединение с сервером YouTube Sight, отправляет запрос на получение статистики, а затем анализирует возвращенные данные с помощью частная функция getValue.
Полученные результаты затем устанавливаются в переменную channelStats, и возвращается индикатор, если нам удалось получить результаты или нет, и на этом ядро нашей библиотеки завершено.
Шаг 5: предоставление примеров эскизов
![Предоставление примеров эскизов Предоставление примеров эскизов](https://i.howwhatproduce.com/images/009/image-25894-11-j.webp)
Обычно каждая библиотека предоставляет примеры, которые можно быстро загрузить и использовать, чтобы продемонстрировать, что может делать библиотека и как это делать. Чтобы предоставить такие примеры, нам нужно изменить структуру библиотеки, где теперь заголовок и исходный файл будут находиться в папке «src», а новая папка будет добавлена в корень библиотеки под названием «examples».
Любой эскиз Arduino, который вы помещаете в эту папку, будет использоваться из Arduino IDE в качестве примера для вашей библиотеки, и люди могут быстро изучить его и узнать, как работает библиотека.
Шаг 6. Публикация в диспетчере библиотек
![Публикация в Менеджере библиотеки Публикация в Менеджере библиотеки](https://i.howwhatproduce.com/images/009/image-25894-12-j.webp)
Чтобы использовать библиотеку, людям нужно будет просто включить файл заголовка вашей библиотеки в свой эскиз, и IDE Arduino создаст его вместе с ним. Но для этого им сначала нужно будет установить его на свои машины.
Распространенный способ - загрузить библиотеку с GitHub и установить ее с помощью установщика ZIP в среде IDE или просто поместить ее в папку библиотек, как мы это делали при ее создании. Однако IDE Arduino также включает инструмент, называемый диспетчером библиотек, который позволяет вам искать библиотеку прямо из IDE.
Чтобы включить в нее вашу библиотеку, нам сначала нужно создать дополнительный файл в корневой папке с именем «library.properties», и в нем нам нужно указать имя библиотеки, текущую версию и некоторую дополнительную информацию, которая поможет менеджеру библиотеки. чтобы лучше отображать информацию об этом.
При наличии файла на странице Arduino GitHub необходимо создать проблему, которая просто запрашивает включение вашей библиотеки в индекс со ссылкой на нее, и как только она будет одобрена и добавлена сотрудниками Arduino, менеджер библиотеки сделает это. начните предлагать свою библиотеку в результатах. Кроме того, менеджер будет искать любые теги версий в репозитории GitHub в будущем и предлагать обновления для людей, использующих его, как только появятся изменения.
Шаг 7. Дальнейшие действия
Я надеюсь, что после этого руководства вы лучше поймете, как работают библиотеки Arduino, как их создавать, и, что наиболее важно, я надеюсь, что вы вдохновитесь начать работу над своей следующей большой идеей.
Если у вас возникнут дополнительные вопросы или предложения, не стесняйтесь писать в комментариях, подписывайтесь на мой канал YouTube и подписывайтесь на меня здесь, в Instructables.
Рекомендуемые:
Программирование Arduino с использованием другого Arduino для отображения прокручиваемого текста без библиотеки: 5 шагов
![Программирование Arduino с использованием другого Arduino для отображения прокручиваемого текста без библиотеки: 5 шагов Программирование Arduino с использованием другого Arduino для отображения прокручиваемого текста без библиотеки: 5 шагов](https://i.howwhatproduce.com/images/007/image-20745-j.webp)
Программирование Arduino с использованием другого Arduino для отображения прокручиваемого текста без библиотеки: Sony Spresense или Arduino Uno не так дороги и не требуют большого количества энергии. Однако, если ваш проект имеет ограничения по мощности, пространству или даже бюджету, вы можете рассмотреть возможность использования Arduino Pro Mini. В отличие от Arduino Pro Micro, Arduino Pro Mi
Создание адаптера Bluetooth, часть 2 (создание совместимого динамика): 16 шагов
![Создание адаптера Bluetooth, часть 2 (создание совместимого динамика): 16 шагов Создание адаптера Bluetooth, часть 2 (создание совместимого динамика): 16 шагов](https://i.howwhatproduce.com/images/004/image-10452-9-j.webp)
Создание адаптера Bluetooth, часть 2 (Создание совместимого динамика): в этой инструкции я покажу вам, как использовать мой адаптер Bluetooth, чтобы сделать старый динамик совместимым с Bluetooth. * Если вы не читали мое первое руководство по " Изготовлению адаптер Bluetooth " Я предлагаю вам сделать это, прежде чем продолжить.C
C / C ++ En Arduino: Использование библиотеки Y Objetos: 4 шага
![C / C ++ En Arduino: Использование библиотеки Y Objetos: 4 шага C / C ++ En Arduino: Использование библиотеки Y Objetos: 4 шага](https://i.howwhatproduce.com/images/001/image-1918-71-j.webp)
C / C ++ En Arduino: Использование библиотеки Y Objetos: Las posibilidades de Arduino se puede extender usando librer í as. Las librer í как дополнительный функционал, особенно поучительный, для использования на OLED-экране. Ac á se utilizan 3 librer í as, una para conexi & oacute
Тональный генератор Arduino без библиотеки или последовательных функций (с прерываниями): 10 шагов
![Тональный генератор Arduino без библиотеки или последовательных функций (с прерываниями): 10 шагов Тональный генератор Arduino без библиотеки или последовательных функций (с прерываниями): 10 шагов](https://i.howwhatproduce.com/images/001/image-2689-38-j.webp)
Тональный генератор Arduino без библиотеки или последовательных функций (с прерываниями): я обычно не делаю инструкций по этому поводу, я предпочитаю свои металлоконструкции, но поскольку я студент-электротехник и должен пройти курс по микроконтроллерам ( Проектирование встроенных систем), я подумал, что сделаю инструктаж на одном из своих п
Создание маленьких роботов: создание роботов Micro-Sumo на один кубический дюйм и меньше: 5 шагов (с изображениями)
![Создание маленьких роботов: создание роботов Micro-Sumo на один кубический дюйм и меньше: 5 шагов (с изображениями) Создание маленьких роботов: создание роботов Micro-Sumo на один кубический дюйм и меньше: 5 шагов (с изображениями)](https://i.howwhatproduce.com/images/005/image-12597-19-j.webp)
Создание маленьких роботов: создание роботов Micro-Sumo на один кубический дюйм и меньше: вот некоторые подробности о создании крошечных роботов и схем. В этом руководстве также будут рассмотрены некоторые основные советы и методы, которые могут быть полезны при создании роботов любого размера. Для меня одна из самых сложных задач в электронике - это увидеть, насколько малы