Innholdsfortegnelse:

Lag et Arduino -bibliotek for YouTube Sight: 7 trinn
Lag et Arduino -bibliotek for YouTube Sight: 7 trinn

Video: Lag et Arduino -bibliotek for YouTube Sight: 7 trinn

Video: Lag et Arduino -bibliotek for YouTube Sight: 7 trinn
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, November
Anonim
Image
Image
Hva er et bibliotek?
Hva er et bibliotek?

Hei alle sammen, Jeg har nylig bygd en tjeneste som heter YouTube Sight som kan trekke ut abonnentdata fra YouTube Analytics API og gi deg mer nøyaktige abonnentteller siden YouTube begynte å samle resultatene. Med det har jeg bygget en eksempelskisse, men jeg ønsket også å lage et Arduino -bibliotek slik at folk lettere kan bruke det.

Trinn 1: Hva er et bibliotek?

Hva er et bibliotek?
Hva er et bibliotek?

Et bibliotek er et stykke kode som kan håndtere en bestemt operasjon, behandle en type data eller kan vite hvordan den skal samhandle med et bestemt maskinvareelement. De lar oss enkelt utvide Arduino-miljøet, og det er mange av dem som er forhåndsinstallert med Arduino IDE.

I tilfeller som min, der vi ønsker å legge til nye muligheter for Arduino, kan vi lage våre egne biblioteker for andre mennesker å bruke dem. Alle de installerte bibliotekene bor i en bestemt mappe på datamaskinen vår. I mitt tilfelle for Windows -PC bor bibliotekene under mappen Dokumenter/Arduino. Hele banen vil være spesifikk for deg, basert på brukernavnet ditt.

Trinn 2: Bibliotekstruktur og filer

Bibliotekets struktur og filer
Bibliotekets struktur og filer

For å begynne å bygge biblioteket vårt, må vi først lage en mappe her med navnet på det, så jeg har opprettet en mappe som heter YouTube Sight. I minimumsversjonen av biblioteket må vi ha minst to filer.

Den første er en såkalt “header” -fil som inneholder alle definisjonene av metodene og egenskapene biblioteket vårt gir, og den andre er kildefilen som vil inneholde all kildekoden.

Toppfilene har en utvidelse av ".h" mens kildefilen har en ".cpp" -utvidelse, og de har vanligvis navnet på biblioteket som filnavn. I mitt tilfelle kalles de to filene "YouTubeSight.h" og "YouTubeSight.cpp".

Prosessen med å skrive bibliotekskoden kan være litt kjedelig og frustrerende, spesielt når du skriver et bibliotek for første gang, men med mye prøving og feiling kan du oppnå de ønskede resultatene. På grunn av det vil jeg guide deg gjennom den ferdige koden til de to filene og forklare den.

Hele koden og biblioteket er tilgjengelig for nedlasting fra GitHub på følgende lenke:

Trinn 3: Overskriftsfilen

Hovedfilen
Hovedfilen
Hovedfilen
Hovedfilen
Hovedfilen
Hovedfilen

Inne i toppteksten, i begynnelsen, er hele filen pakket inn i en "ifndef" -setning som kontrollerer om variabelen som er angitt er definert eller ikke. Dette vil forhindre feil for alle som bruker biblioteket hvis de tar det to ganger i samme skisse ved en feiltakelse.

Deretter må vi inkludere det grunnleggende Arduino -biblioteket, og siden vi vil jobbe med en eller annen HTTP -klient for å sende forespørselen til YouTube Sight, vil vi også inkludere basisklientbiblioteket.

Før vi begynner å skrive innholdet i hovedklassen vår, må vi definere eventuelle statiske variabler og innstillinger som vi ikke ønsker å bli endret. I mitt tilfelle er det to slike variabler. Hovedadressen til YouTube Sight -tjenesten og tidsavbruddsvariabelen som vi skal bruke til å sjekke hvor lenge vi leser en verdi.

Også i denne delen kan vi definere egendefinerte typer som vi ønsker å bruke som denne kanalstatistikkstrukturen som vi vil lagre resultatene til.

Klassestrukturdefinisjonen er delt inn i to deler. Den første delen er definisjonen av alle de offentlige funksjonene og eiendommene, og den andre er definisjonen av alle de private funksjonene og eiendommene. Forskjellen mellom begge er at sluttbrukerne av biblioteket vårt ikke vil kunne bruke noe fra den private delen direkte mens de vil kunne endre og bruke noen av egenskapene og funksjonene fra den offentlige delen.

I den offentlige delen definerer vi klassekonstruktøren, varianten channelStats hvor vi vil lagre resultatene, funksjonen som vil få dataene og en feilsøkingsegenskap som vi senere kan bruke til å se etter tilfeller der vi kanskje ikke får de forventede resultatene.

For de private egenskapene vil vi definere en for lagring av kanal -GUID, en peker til HTTP -klienten vi skal bruke og en funksjon som vil dele den returnerte strengen fra YouTube Sight.

Trinn 4: Kildefilen

Kildefilen
Kildefilen
Kildefilen
Kildefilen

La oss nå se på den faktiske implementeringen av alt dette i kildefilen.

Det første trinnet for oss er å inkludere vår egen toppfil som vi nettopp har opprettet, og så må vi definere bibliotekskonstruktøren. I den passerer vi to variabler. GUID -en lagres i den private variabelen som vi definerte tidligere, og klienten sendes som referanse, slik at vi kan kalle den samme forekomsten som vi fikk.

HovedgetData -funksjonen i biblioteket defineres deretter ved først å spesifisere returtypen, etterfulgt av biblioteksnavnet og funksjonsnavnet. Jeg vil ikke gå i detalj om hva hver eneste linje gjør i denne funksjonen, men generelt åpner funksjonen en forbindelse til YouTube Sight -serveren, sender inn forespørselen om å få statistikken og analyserer deretter de returnerte dataene ved hjelp av den private getValue -funksjonen.

De hentede resultatene settes deretter til varianten channelStats, og en indikator returneres hvis vi lyktes med å hente resultatene eller ikke, og med det er kjernen i biblioteket vårt fullført.

Trinn 5: Gi eksempler på skisser

Gi eksempler på skisser
Gi eksempler på skisser

Vanligvis gir hvert bibliotek eksempler som du raskt kan laste opp og bruke for å vise hva biblioteket kan gjøre og hvordan du gjør det. For å gi slike eksempler, må vi endre bibliotekstrukturen der nå overskriften og kildefilen vil være i en "src" -mappe og en ny mappe vil bli lagt til under bibliotekroten kalt "eksempler".

Enhver Arduino -skisse du legger i denne mappen vil bli servert fra Arduino IDE som et eksempel for biblioteket ditt, og folk kan raskt utforske det og lære hvordan biblioteket fungerer.

Trinn 6: Publisering til Library Manager

Publisering til biblioteksjefen
Publisering til biblioteksjefen

For å bruke biblioteket må folk bare inkludere toppfilen til biblioteket i skissen, og Arduino IDE vil bygge den sammen med den. Men for å gjøre det må de først installere det på maskinene sine.

En vanlig måte er å laste ned biblioteket fra GitHub og installere det gjennom ZIP -installasjonsprogrammet i IDE eller ganske enkelt plassere det i bibliotekmappen slik vi gjorde da vi opprettet det. Arduino IDE inneholder imidlertid også et verktøy, kalt Library Manager, som lar deg søke etter et bibliotek direkte fra IDE.

For å inkludere biblioteket ditt i det, må vi først opprette en ekstra fil i rotmappen som heter "library.properties", og i den må vi spesifisere bibliotekets navn, den nåværende versjonen og litt tilleggsinformasjon som vil hjelpe biblioteksjefen for å vise bedre informasjon om det.

Med filen på plass må det opprettes et problem på Arduino GitHub -siden som bare ber om at biblioteket ditt skal inkluderes i indeksen med lenken til den, og når den er godkjent og lagt til av Arduino -personalet, vil biblioteksjefen begynn å tilby biblioteket ditt i resultatene. I tillegg vil lederen se etter eventuelle versjonskoder i GitHub -repoen i fremtiden og tilby en oppdatering til folk som bruker den når det er endringer.

Trinn 7: Neste trinn

Jeg håper at du etter denne Instructable har en bedre forståelse av hvordan Arduino -biblioteker fungerer, hvordan du kan lage en, og viktigst av alt, jeg håper at du blir inspirert til å begynne å jobbe med din neste store idé.

For ytterligere spørsmål eller forslag, skriv gjerne ned i kommentarene, abonner på YouTube -kanalen min og følg meg her på Instructables.

Anbefalt: