Оглавление:

Создание библиотеки Arduino для YouTube Sight: 7 шагов
Создание библиотеки Arduino для YouTube Sight: 7 шагов

Видео: Создание библиотеки Arduino для YouTube Sight: 7 шагов

Видео: Создание библиотеки Arduino для YouTube Sight: 7 шагов
Видео: Уроки Arduino #13 - создаём свою функцию 2024, Ноябрь
Anonim
Image
Image
Что такое библиотека?
Что такое библиотека?

Всем привет, Недавно я создал сервис под названием YouTube Sight, который может извлекать данные о подписчиках из YouTube Analytics API и давать вам более точный подсчет подписчиков с тех пор, как YouTube начал агрегировать результаты. С его помощью я создал пример скетча, но я также хотел создать библиотеку Arduino, чтобы людям было проще ее использовать.

Шаг 1. Что такое библиотека?

Что такое библиотека?
Что такое библиотека?

Библиотека - это фрагмент кода, который может обрабатывать конкретную операцию, обрабатывать тип данных или может знать, как взаимодействовать с конкретным элементом оборудования. Они позволяют нам легко расширять среду Arduino, и многие из них поставляются с предустановленной Arduino IDE.

В таких случаях, как мой, когда мы хотим добавить новые возможности для Arduino, мы можем создавать собственные библиотеки, чтобы другие люди могли их использовать. Все установленные библиотеки находятся в определенной папке на нашем компьютере. В моем случае для ПК с Windows библиотеки находятся в папке Documents / Arduino. Полный путь будет конкретным для вас в зависимости от вашего имени пользователя.

Шаг 2: структура библиотеки и файлы

Структура и файлы библиотеки
Структура и файлы библиотеки

Чтобы начать создавать нашу библиотеку, нам сначала нужно создать здесь папку с ее названием, поэтому я создал папку под названием YouTube Sight. В самой минимальной версии библиотеки у нас должно быть как минимум два файла.

Первый - это так называемый «заголовочный» файл, который содержит все определения методов и свойств, предоставляемых нашей библиотекой, а второй - это исходный файл, который будет содержать весь исходный код.

Заголовочные файлы имеют расширение «.h», в то время как исходный файл имеет расширение «.cpp», и в качестве имени файла они обычно содержат имя библиотеки. В моем случае эти два файла называются «YouTubeSight.h» и «YouTubeSight.cpp».

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

Полный код и библиотека доступны для загрузки с GitHub по следующей ссылке:

Шаг 3: Заголовочный файл

Заголовочный файл
Заголовочный файл
Заголовочный файл
Заголовочный файл
Заголовочный файл
Заголовочный файл

Внутри файла заголовка, в начале, весь файл заключен в оператор ifndef, который проверяет, определена ли указанная переменная или нет. Это предотвратит ошибки для всех, кто использует библиотеку, если они по ошибке дважды включат ее в один и тот же скетч.

Затем нам нужно включить базовую библиотеку Arduino, и поскольку мы будем работать с каким-либо HTTP-клиентом для отправки запроса в YouTube Sight, мы также включим базовую клиентскую библиотеку.

Прежде чем мы начнем писать содержимое нашего основного класса, нам нужно определить любые статические переменные и настройки, которые мы не хотим изменять. В моем случае таких переменных две. Основной URL-адрес службы YouTube Sight и переменная тайм-аута, которую мы будем использовать, чтобы проверить, как долго мы читаем значение.

Также в этом разделе мы можем определить любые настраиваемые типы, которые мы хотим использовать, например эту структуру channelStatistics, в которую мы будем сохранять результаты.

Определение структуры класса разделено на две части. Первая часть - это определение всех общедоступных функций и свойств, а вторая - определение всех частных функций и свойств. Разница между ними заключается в том, что конечные пользователи нашей библиотеки не смогут напрямую использовать что-либо из закрытого раздела, в то время как они смогут напрямую изменять и использовать любые свойства и функции из общедоступной части.

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

Для частных свойств мы определим один для хранения GUID канала, указатель на HTTP-клиент, который мы будем использовать, и функцию, которая разделит возвращаемую строку из YouTube Sight.

Шаг 4: Исходный файл

Исходный файл
Исходный файл
Исходный файл
Исходный файл

Теперь давайте посмотрим на фактическую реализацию всего этого внутри исходного файла.

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

Затем определяется основная функция библиотеки getData: сначала указывается тип возвращаемого значения, а затем имя библиотеки и имя функции. Я не буду вдаваться в подробности того, что делает каждая отдельная строка в этой функции, но в целом функция открывает соединение с сервером YouTube Sight, отправляет запрос на получение статистики, а затем анализирует возвращенные данные с помощью частная функция getValue.

Полученные результаты затем устанавливаются в переменную channelStats, и возвращается индикатор, если нам удалось получить результаты или нет, и на этом ядро нашей библиотеки завершено.

Шаг 5: предоставление примеров эскизов

Предоставление примеров эскизов
Предоставление примеров эскизов

Обычно каждая библиотека предоставляет примеры, которые можно быстро загрузить и использовать, чтобы продемонстрировать, что может делать библиотека и как это делать. Чтобы предоставить такие примеры, нам нужно изменить структуру библиотеки, где теперь заголовок и исходный файл будут находиться в папке «src», а новая папка будет добавлена в корень библиотеки под названием «examples».

Любой эскиз Arduino, который вы помещаете в эту папку, будет использоваться из Arduino IDE в качестве примера для вашей библиотеки, и люди могут быстро изучить его и узнать, как работает библиотека.

Шаг 6. Публикация в диспетчере библиотек

Публикация в Менеджере библиотеки
Публикация в Менеджере библиотеки

Чтобы использовать библиотеку, людям нужно будет просто включить файл заголовка вашей библиотеки в свой эскиз, и IDE Arduino создаст его вместе с ним. Но для этого им сначала нужно будет установить его на свои машины.

Распространенный способ - загрузить библиотеку с GitHub и установить ее с помощью установщика ZIP в среде IDE или просто поместить ее в папку библиотек, как мы это делали при ее создании. Однако IDE Arduino также включает инструмент, называемый диспетчером библиотек, который позволяет вам искать библиотеку прямо из IDE.

Чтобы включить в нее вашу библиотеку, нам сначала нужно создать дополнительный файл в корневой папке с именем «library.properties», и в нем нам нужно указать имя библиотеки, текущую версию и некоторую дополнительную информацию, которая поможет менеджеру библиотеки. чтобы лучше отображать информацию об этом.

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

Шаг 7. Дальнейшие действия

Я надеюсь, что после этого руководства вы лучше поймете, как работают библиотеки Arduino, как их создавать, и, что наиболее важно, я надеюсь, что вы вдохновитесь начать работу над своей следующей большой идеей.

Если у вас возникнут дополнительные вопросы или предложения, не стесняйтесь писать в комментариях, подписывайтесь на мой канал YouTube и подписывайтесь на меня здесь, в Instructables.

Рекомендуемые: