Indholdsfortegnelse:

Lav et Arduino -bibliotek til YouTube Sight: 7 trin
Lav et Arduino -bibliotek til YouTube Sight: 7 trin

Video: Lav et Arduino -bibliotek til YouTube Sight: 7 trin

Video: Lav et Arduino -bibliotek til YouTube Sight: 7 trin
Video: Lesson 22: Using Seven Segment Display with Arduino and Electronic Dice | SunFounder Robojax 2024, November
Anonim
Image
Image
Hvad er et bibliotek?
Hvad er et bibliotek?

Hej allesammen, Jeg har for nylig bygget en service kaldet YouTube Sight, der kan udtrække abonnentdata fra YouTube Analytics API og give dig mere præcise abonnenttællinger, siden YouTube begyndte at samle resultaterne. Med det har jeg bygget en eksempelskitse, men jeg ville også lave et Arduino -bibliotek, så folk lettere kan bruge det.

Trin 1: Hvad er et bibliotek?

Hvad er et bibliotek?
Hvad er et bibliotek?

Et bibliotek er et stykke kode, der kan håndtere en bestemt operation, behandle en type data eller kan vide, hvordan man interagerer med et specifikt hardwareelement. De giver os mulighed for let at udvide Arduino-miljøet, og der er mange af dem, der leveres forudinstalleret med Arduino IDE.

I tilfælde som mit, hvor vi vil tilføje nye muligheder til Arduino, kan vi oprette vores egne biblioteker, så andre mennesker kan bruge dem. Alle de installerede biblioteker bor i en bestemt mappe på vores computer. I mit tilfælde til Windows -pc'en lever bibliotekerne under mappen Dokumenter/Arduino. Den fulde sti vil være specifik for dig baseret på dit brugernavn.

Trin 2: Bibliotekstruktur og filer

Bibliotekets struktur og filer
Bibliotekets struktur og filer

For at begynde at bygge vores bibliotek skal vi først oprette en mappe her med navnet på det, så jeg har oprettet en mappe kaldet YouTube Sight. I den minimale version af biblioteket skal vi have mindst to filer.

Den første er en såkaldt "header" -fil, der indeholder alle definitionerne af de metoder og egenskaber, vores bibliotek giver, og den anden er kildefilen, der vil indeholde hele kildekoden.

Overskriftsfiler har en udvidelse af ".h", mens kildefilen har en udvidelse af ".cpp", og de har normalt bibliotekets navn som filnavn. I mit tilfælde kaldes de to filer "YouTubeSight.h" og "YouTubeSight.cpp".

Processen med at skrive bibliotekskoden kan være lidt kedelig og frustrerende, især når du skriver et bibliotek for første gang, men med en masse forsøg og fejl kan du opnå de ønskede resultater. På grund af det vil jeg guide dig gennem den færdige kode for de to filer og forklare det.

Den fulde kode og biblioteket kan downloades fra GitHub på følgende link:

Trin 3: Hovedfilen

Hovedfilen
Hovedfilen
Hovedfilen
Hovedfilen
Hovedfilen
Hovedfilen

Inde i headerfilen, i begyndelsen, er hele filen pakket ind i en "ifndef" -sætning, der kontrollerer, om den angivne variabel er defineret eller ej. Dette forhindrer fejl for alle, der bruger biblioteket, hvis de ved en fejltagelse inkluderer det to gange i den samme skitse.

Dernæst skal vi inkludere det basale Arduino -bibliotek, og da vi vil arbejde med en slags HTTP -klient for at sende anmodningen til YouTube Sight, inkluderer vi også basisklientbiblioteket.

Inden vi begynder at skrive indholdet i vores hovedklasse, skal vi definere eventuelle statiske variabler og indstillinger, som vi ikke ønsker at blive ændret. I mit tilfælde er der to sådanne variabler. Hovedwebadressen til YouTube Sight -tjenesten og den timeout -variabel, som vi vil bruge til at kontrollere, hvor længe vi læser en værdi.

Også i dette afsnit kan vi definere alle brugerdefinerede typer, som vi ønsker at bruge som denne kanalstatistikstruktur, som vi vil gemme resultaterne til.

Klassestrukturdefinitionen er opdelt i to dele. Den første del er definitionen af alle de offentlige funktioner og ejendomme, og den anden er definitionen af alle de private funktioner og ejendomme. Forskellen mellem begge er, at slutbrugerne af vores bibliotek ikke vil være i stand til at bruge noget fra den private sektion direkte, mens de vil være i stand til direkte at ændre og bruge nogen af egenskaberne og funktionerne fra den offentlige del.

I det offentlige afsnit definerer vi klassekonstruktøren, variablen channelStats, hvor vi vil gemme resultaterne, funktionen, der får dataene og en fejlfindingsegenskab, som vi senere kan bruge til at kontrollere, om vi ikke kan få de forventede resultater.

For de private ejendomme definerer vi en til lagring af kanal -GUID, en markør til den HTTP -klient, vi vil bruge, og en funktion, der deler den returnerede streng fra YouTube Sight.

Trin 4: Kildefilen

Kildefilen
Kildefilen
Kildefilen
Kildefilen

Lad os nu se på den faktiske implementering af alt dette inde i kildefilen.

Det første trin for os er at inkludere vores egen header -fil, som vi lige har oprettet, og derefter skal vi definere bibliotekskonstruktøren. I det passerer vi to variabler. GUID'en gemmes i den private variabel, som vi definerede tidligere, og klienten videregives ved reference, så vi derefter kan kalde den samme forekomst, som vi fik.

Bibliotekets vigtigste getData -funktion defineres derefter ved først at angive returtypen efterfulgt af biblioteksnavnet og funktionsnavnet. Jeg vil ikke gå i detaljer om, hvad hver enkelt linje gør i denne funktion, men generelt åbner funktionen en forbindelse til YouTube Sight -serveren, sender anmodningen om at få statistikken og analyserer derefter de returnerede data ved hjælp af den private getValue -funktion.

De hentede resultater indstilles derefter til varianten channelStats, og en indikator returneres, hvis det lykkedes os at hente resultaterne eller ej, og dermed er kernen i vores bibliotek færdig.

Trin 5: Tilvejebringelse af eksempelskitser

Giver eksempler på skitser
Giver eksempler på skitser

Normalt giver hvert bibliotek eksempler, som du hurtigt kan indlæse og bruge til at vise, hvad biblioteket kan, og hvordan du gør det. For at give sådanne eksempler skal vi ændre biblioteksstrukturen, hvor nu overskriften og kildefilen vil være i en "src" -mappe, og en ny mappe vil blive tilføjet under bibliotekets rod kaldet "eksempler".

Enhver Arduino -skitse, du placerer inde i denne mappe, vil blive serveret fra Arduino IDE som et eksempel på dit bibliotek, og folk kan hurtigt udforske det og lære, hvordan biblioteket fungerer.

Trin 6: Offentliggørelse til Library Manager

Udgivelse til bibliotekschefen
Udgivelse til bibliotekschefen

For at bruge biblioteket skal folk blot inkludere header -filen i dit bibliotek i deres skitse, og Arduino IDE vil bygge det sammen med det. Men for at gøre det skal de først installere det på deres maskiner.

En almindelig måde er at downloade biblioteket fra GitHub og installere det via ZIP -installationsprogrammet i IDE eller blot placere det i biblioteksmappen, som vi gjorde, da vi oprettede det. Arduino IDE indeholder imidlertid også et værktøj, kaldet Library Manager, der giver dig mulighed for at søge efter et bibliotek direkte fra IDE.

For at inkludere dit bibliotek i det skal vi først oprette en ekstra fil i rodmappen kaldet "library.properties" og i den skal vi angive bibliotekets navn, den aktuelle version og nogle yderligere oplysninger, der hjælper biblioteksadministratoren for at vise bedre information om det.

Med filen på plads skal der oprettes et problem på Arduino GitHub -siden, der blot beder om, at dit bibliotek indgår i indekset med linket til det, og når det er godkendt og tilføjet af Arduino -personalet, vil bibliotekschefen begynde at tilbyde dit bibliotek i resultaterne. Derudover vil lederen i fremtiden kigge efter eventuelle versionskoder i GitHub -repoen og tilbyde en opdatering til folk, der bruger det, når der er ændringer.

Trin 7: Næste trin

Jeg håber, at du efter denne Instructable har en bedre forståelse af, hvordan Arduino -biblioteker fungerer, hvordan du kan oprette en og vigtigst af alt, jeg håber, at du bliver inspireret til at begynde at arbejde på din næste store idé.

For yderligere spørgsmål eller forslag er du velkommen til at skrive ned i kommentarerne, abonnere på min YouTube -kanal og følge mig her på Instructables.

Anbefalede: