Съдържание:

Създаване на библиотека Arduino за YouTube Sight: 7 стъпки
Създаване на библиотека Arduino за YouTube Sight: 7 стъпки

Видео: Създаване на библиотека Arduino за YouTube Sight: 7 стъпки

Видео: Създаване на библиотека Arduino за YouTube Sight: 7 стъпки
Видео: Learn Arduino in 30 Minutes: Examples and projects 2024, Ноември
Anonim
Image
Image
Какво е библиотека?
Какво е библиотека?

Здравейте всички, Наскоро създадох услуга, наречена YouTube Sight, която може да извлече данни за абонати от API на YouTube Analytics и да ви даде по -точен брой абонати, откакто 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 и променливата за изчакване, която ще използваме, за да проверим колко дълго четем стойност.

Също така в този раздел можем да дефинираме всякакви персонализирани типове, които искаме да използваме като тази структура на канална статистика, в която ще запишем резултатите.

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

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

За частните свойства ще определим такъв за съхраняване на GUID на канала, указател към HTTP клиента, който ще използваме, и функция, която ще раздели върнатия низ от YouTube Sight.

Стъпка 4: Изходният файл

Изходният файл
Изходният файл
Изходният файл
Изходният файл

Сега нека разгледаме действителното изпълнение на всичко това в изходния файл.

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

Основната функция getData на библиотеката е дефинирана по -нататък, като първо се посочи типът на връщане, последван от името на библиотеката и името на функцията. Няма да навлизам в подробности какво прави всеки ред в тази функция, но като цяло функцията отваря връзка със сървъра на YouTube Sight, изпраща заявката за получаване на статистиката и след това анализира върнатите данни с помощта на частната функция getValue.

След това извлечените резултати се задават на променливата channelStats и се връща индикатор, ако успеем да извлечем резултатите или не и с това ядрото на нашата библиотека е завършено.

Стъпка 5: Предоставяне на примерни скици

Предоставяне на примерни скици
Предоставяне на примерни скици

Обикновено всяка библиотека предоставя примери, които можете бързо да заредите и използвате, за да покажете какво може да направи библиотеката и как да го направите. За да предоставим такива примери, трябва да променим структурата на библиотеката, където сега заглавката и изходният файл ще бъдат в папка „src“и ще бъде добавена нова папка под корена на библиотеката, наречена „примери“.

Всяка скица на Arduino, която поставите в тази папка, ще бъде обслужвана от Arduino IDE като пример за вашата библиотека и хората могат бързо да я проучат и да научат как работи библиотеката.

Стъпка 6: Публикуване в библиотечния мениджър

Публикуване в библиотечния мениджър
Публикуване в библиотечния мениджър

За да използват библиотеката, хората ще трябва просто да включат заглавния файл на вашата библиотека в своята скица и Arduino IDE ще я изгради заедно с нея. Но за да го направят, първо ще трябва да го инсталират на своите машини.

Често срещан начин е да изтеглите библиотеката от GitHub и да я инсталирате чрез ZIP инсталатора в IDE или просто да я поставите в папката библиотеки, както направихме, когато я създавахме. Въпреки това, IDE на Arduino включва и инструмент, наречен Library Manager, който ви позволява да търсите библиотека директно от IDE.

За да включим вашата библиотека в нея, първо трябва да създадем допълнителен файл в основната папка, наречен „library.properties“и в нея трябва да посочим името на библиотеката, текущата версия и допълнителна информация, която ще помогне на мениджъра на библиотеката за показване на по -добра информация за него.

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

Стъпка 7: Следващи стъпки

Надявам се, че след този Instructable, имате по -добро разбиране за това как работят библиотеките на Arduino, как можете да създадете една и най -важното, надявам се да се вдъхновите да започнете да работите върху следващата си голяма идея.

За всякакви допълнителни въпроси или предложения не се колебайте да пишете в коментарите, да се абонирате за канала ми в YouTube и да ме последвате тук на Instructables.

Препоръчано: