Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Ahoj všetci, Nedávno som postavil službu s názvom YouTube Sight, ktorá dokáže extrahovať údaje o predplatiteľoch z rozhrania YouTube Analytics API a poskytovať vám presnejšie počty odberateľov od začiatku agregácie výsledkov na serveri YouTube. S ním som vytvoril ukážkový náčrt, ale chcel som tiež vytvoriť knižnicu Arduino, aby ju ľudia mohli jednoduchšie používať.
Krok 1: Čo je to knižnica?
Knižnica je kus kódu, ktorý dokáže spracovať konkrétnu operáciu, spracovať typ údajov alebo môže vedieť, ako interagovať s konkrétnym hardvérovým prvkom. Umožňujú nám ľahko rozšíriť prostredie Arduino a existuje veľa z nich, ktoré sú predinštalované s Arduino IDE.
V prípadoch, ako je ten môj, kde chceme do Arduina pridať nové možnosti, môžeme vytvoriť vlastné knižnice, ktoré budú používať iní ľudia. Všetky nainštalované knižnice sú uložené v konkrétnom priečinku v našom počítači. V mojom prípade pre Windows PC knižnice žijú v priečinku Documents/Arduino. Celá cesta bude pre vás konkrétna na základe vášho používateľského mena.
Krok 2: Štruktúra a súbory knižnice
Aby sme mohli začať budovať našu knižnicu, musíme tu najskôr vytvoriť priečinok s jeho názvom, aby som vytvoril priečinok s názvom YouTube Sight. V minimálnej verzii knižnice musíme mať najmenej dva súbory.
Prvý je takzvaný „hlavičkový“súbor, ktorý obsahuje všetky definície metód a vlastností, ktoré naša knižnica poskytuje, a druhý je zdrojový súbor, ktorý bude obsahovať všetok zdrojový kód.
Súbory hlavičky majú príponu „.h“, zatiaľ čo zdrojový súbor má príponu „.cpp“a ako názov súboru zvyčajne obsahujú názov knižnice. V mojom prípade sa tieto dva súbory nazývajú „YouTubeSight.h“a „YouTubeSight.cpp“.
Proces písania kódu knižnice môže byť trochu únavný a frustrujúci, najmä keď píšete knižnicu prvýkrát, ale s veľkým počtom pokusov a omylov môžete dosiahnuť požadované výsledky. Z tohto dôvodu vás prevediem hotovým kódom týchto dvoch súborov a vysvetlím ho.
Celý kód a knižnicu si môžete stiahnuť z GitHubu na nasledujúcom odkaze:
Krok 3: Súbor hlavičky
V hlavičkovom súbore je na začiatku celý súbor zabalený do príkazu „ifndef“, ktorý kontroluje, či je zadaná premenná definovaná alebo nie. Predíde sa tým chybám pre kohokoľvek, kto používa knižnicu, ak ju omylom zahrnie dvakrát do toho istého náčrtu.
Ďalej musíme zahrnúť základnú knižnicu Arduino a pretože budeme pracovať s nejakým klientom HTTP na odoslanie žiadosti do služby YouTube Sight, zahrnieme aj základnú klientsku knižnicu.
Predtým, ako začneme písať obsah našej hlavnej triedy, musíme definovať všetky statické premenné a nastavenia, ktoré nechceme upravovať. V mojom prípade existujú dve takéto premenné. Hlavná adresa URL služby YouTube Sight a premenná časového limitu, pomocou ktorej skontrolujeme, ako dlho čítame hodnotu.
Tiež v tejto sekcii môžeme definovať akékoľvek vlastné typy, ktoré chceme používať, ako je táto štruktúra channelStatistics, do ktorej uložíme výsledky.
Definícia štruktúry triedy je rozdelená na dve časti. Prvá časť je definícia všetkých verejných funkcií a vlastností a druhá je definícia všetkých súkromných funkcií a vlastností. Rozdiel medzi oboma je v tom, že koncoví používatelia našej knižnice nebudú môcť priamo používať nič zo súkromnej sekcie, zatiaľ čo budú môcť priamo upravovať a používať akékoľvek vlastnosti a funkcie z verejnej časti.
Vo verejnej sekcii definujeme konštruktor triedy, premennú channelStats, kam budeme ukladať výsledky, funkciu, ktorou sa získajú údaje, a vlastnosť ladenia, ktorú môžeme neskôr použiť na kontrolu prípadov, v ktorých by sme možno nedostali očakávané výsledky.
V prípade súkromných vlastníctiev definujeme identifikátor GUID kanála, ukazovateľ na klienta HTTP, ktorý použijeme, a funkciu, ktorá rozdelí vrátený reťazec zo služby YouTube Sight.
Krok 4: Zdrojový súbor
Teraz sa pozrime na skutočnú implementáciu tohto všetkého v zdrojovom súbore.
Prvým krokom pre nás je zahrnutie vlastného hlavičkového súboru, ktorý sme práve vytvorili, a potom musíme definovať konštruktéra knižnice. V ňom míňame dve premenné. GUID sa uloží do súkromnej premennej, ktorú sme definovali predtým, a klientovi sa odovzdá odkaz, aby sme potom mohli zavolať rovnakú inštanciu, akú sme dostali.
Hlavná funkcia knižnice getData je definovaná ďalej tak, že najskôr zadáte typ návratu, potom názov knižnice a názov funkcie. Nebudem sa podrobne zaoberať tým, čo v tejto funkcii robí každý riadok, ale vo všeobecnosti funkcia otvára spojenie so serverom YouTube Sight, odošle požiadavku na získanie štatistík a potom analyzuje vrátené údaje pomocou súkromná funkcia getValue.
Načítané výsledky sa potom nastavia na premennú channelStats a vráti sa indikátor, či sa nám výsledky podarilo načítať alebo nie, a tým je jadro našej knižnice dokončené.
Krok 5: Poskytnutie príkladov náčrtov
Obvykle ste, každá knižnica poskytuje príklady, ktoré môžete rýchlo načítať a použiť na predvádzanie toho, čo knižnica dokáže a ako to urobiť. Aby sme poskytli takéto príklady, musíme upraviť štruktúru knižnice, kde teraz bude hlavička a zdrojový súbor v priečinku „src“a do koreňového adresára knižnice s názvom „príklady“bude pridaný nový priečinok.
Akýkoľvek náčrt Arduina, ktorý umiestnite do tohto priečinka, bude doručený z Arduino IDE ako príklad pre vašu knižnicu a ľudia ho môžu rýchlo preskúmať a zistiť, ako knižnica funguje.
Krok 6: Publikovanie v Správcovi knižníc
Na to, aby ľudia mohli používať knižnicu, budú musieť jednoducho zahrnúť hlavičkový súbor vašej knižnice do svojho náčrtu a Arduino IDE ho spolu s ním zostaví. Na to však budú musieť najskôr nainštalovať na svoje stroje.
Bežným spôsobom je stiahnuť si knižnicu z GitHubu a nainštalovať ju pomocou inštalátora ZIP do IDE alebo ju jednoducho umiestniť do priečinka knižníc, ako sme to urobili pri vytváraní. Arduino IDE však obsahuje aj nástroj, nazývaný Library Manager, ktorý vám umožní vyhľadať knižnicu priamo z IDE.
Na zahrnutie vašej knižnice do nej musíme najskôr vytvoriť ďalší súbor v koreňovom priečinku s názvom „library.properties“a v ňom musíme zadať názov knižnice, aktuálnu verziu a niektoré ďalšie informácie, ktoré pomôžu správcovi knižnice. zobraziť o tom lepšie informácie.
Keď je súbor na mieste, je potrebné vytvoriť problém na stránke Arduino GitHub, ktorý jednoducho požiada, aby bola vaša knižnica zaradená do indexu s odkazom na ňu, a akonáhle bude schválený a pridaný zamestnancom Arduina, správca knižnice vykoná začnite vo výsledkoch ponúkať svoju knižnicu. Okrem toho správca v budúcnosti vyhľadá všetky značky verzií v úložisku GitHub a ponúkne aktualizáciu ľuďom, ktorí ich používajú, akonáhle dôjde k zmenám.
Krok 7: Ďalšie kroky
Dúfam, že po tomto návode lepšie porozumiete tomu, ako knižnice Arduino fungujú, ako ich môžete vytvoriť a čo je najdôležitejšie, dúfam, že sa necháte inšpirovať a začať pracovať na svojej ďalšej veľkej myšlienke.
Ak máte ďalšie otázky alebo návrhy, neváhajte napísať do komentárov, prihlásiť sa na odber môjho kanála YouTube a sledovať ma tu na stránke Instructables.