Cuprins:

Realizarea unei biblioteci Arduino pentru YouTube Sight: 7 pași
Realizarea unei biblioteci Arduino pentru YouTube Sight: 7 pași

Video: Realizarea unei biblioteci Arduino pentru YouTube Sight: 7 pași

Video: Realizarea unei biblioteci Arduino pentru YouTube Sight: 7 pași
Video: Ruby sau Andra Gogan? #shorts 2024, Noiembrie
Anonim
Image
Image
Ce este o bibliotecă?
Ce este o bibliotecă?

Buna tuturor, Recent am creat un serviciu numit YouTube Sight care poate extrage datele abonaților din API-ul YouTube Analytics și vă poate oferi un număr de abonați mai precis de când YouTube a început să agregeze rezultatele. Cu aceasta, am construit un exemplu de schiță, dar am vrut să fac și o bibliotecă Arduino, astfel încât oamenii să o poată folosi mai ușor.

Pasul 1: Ce este o bibliotecă?

Ce este o bibliotecă?
Ce este o bibliotecă?

O bibliotecă este o bucată de cod care poate gestiona o anumită operație, poate procesa un tip de date sau poate ști cum să interacționeze cu un anumit element hardware. Acestea ne permit să extindem cu ușurință mediul Arduino și există multe dintre acestea care sunt preinstalate cu Arduino IDE.

În cazuri ca ale mele, în care dorim să adăugăm noi posibilități Arduino, putem crea propriile biblioteci pentru ca alte persoane să le poată folosi. Toate bibliotecile instalate se află într-un folder specific de pe computerul nostru. În cazul meu pentru computerul cu Windows, bibliotecile sunt disponibile în folderul Documents / Arduino. Calea completă va fi specifică pentru dvs., pe baza numelui dvs. de utilizator.

Pasul 2: Structura bibliotecii și fișierele

Structura și fișierele bibliotecii
Structura și fișierele bibliotecii

Pentru a începe construirea bibliotecii noastre, trebuie mai întâi să creăm un dosar aici cu numele acesteia, așa că am creat un dosar numit YouTube Sight. În versiunea minimă a bibliotecii, trebuie să avem cel puțin două fișiere.

Primul este un așa-numit fișier „header” care conține toate definițiile metodelor și proprietăților oferite de biblioteca noastră, iar al doilea este fișierul sursă care va conține tot codul sursă.

Fișierele antet au o extensie „.h” în timp ce fișierul sursă are o extensie „.cpp” și au de obicei numele bibliotecii ca nume de fișier. În cazul meu, cele două fișiere se numesc „YouTubeSight.h” și „YouTubeSight.cpp”.

Procesul de scriere a codului bibliotecii poate fi un pic obositor și frustrant, mai ales atunci când scrieți o bibliotecă pentru prima dată, dar cu multe încercări și erori, puteți obține rezultatele dorite. Din această cauză, vă voi ghida prin codul finalizat al celor două fișiere și vă voi explica.

Codul complet și biblioteca sunt disponibile pentru descărcare de pe GitHub pe următorul link:

Pasul 3: Fișierul antet

Fișierul antet
Fișierul antet
Fișierul antet
Fișierul antet
Fișierul antet
Fișierul antet

În interiorul fișierului antet, la început, întregul fișier este înfășurat într-o instrucțiune „ifndef” care verifică dacă variabila specificată este definită sau nu. Aceasta va preveni erorile pentru oricine folosește biblioteca dacă o include de două ori în aceeași schiță din greșeală.

În continuare, trebuie să includem biblioteca Arduino de bază și, deoarece vom lucra cu un client HTTP de un fel pentru a trimite cererea către YouTube Sight, vom include și biblioteca client de bază.

Înainte de a începe să scriem conținutul clasei noastre principale, trebuie să definim orice variabilă statică și setări pe care nu dorim să le modificăm. În cazul meu, există două astfel de variabile. Adresa URL principală a serviciului YouTube Sight și variabila de expirare pe care o vom folosi pentru a verifica cât timp citim o valoare.

De asemenea, în această secțiune, putem defini orice tipuri personalizate pe care dorim să le folosim, precum această structură channelStatistics în care vom salva rezultatele.

Definiția structurii clasei este împărțită în două părți. Prima parte este definirea tuturor funcțiilor și proprietăților publice și a doua este definirea tuturor funcțiilor și proprietăților private. Diferența dintre ambele constă în faptul că utilizatorii finali ai bibliotecii noastre nu vor putea folosi nimic din secțiunea privată direct, în timp ce vor putea modifica și utiliza direct oricare dintre proprietățile și funcțiile din partea publică.

În secțiunea publică, definim constructorul clasei, variabila channelStats unde vom stoca rezultatele, funcția care va obține datele și o proprietate de depanare pe care o putem folosi ulterior pentru a verifica cazurile în care s-ar putea să nu obținem rezultatele scontate.

Pentru proprietățile private, vom defini unul pentru stocarea canalului GUID, un pointer către clientul HTTP pe care îl vom folosi și o funcție care va împărți șirul returnat de YouTube Sight.

Pasul 4: Fișierul sursă

Fișierul sursă
Fișierul sursă
Fișierul sursă
Fișierul sursă

Acum să analizăm implementarea efectivă a tuturor acestor lucruri în fișierul sursă.

Primul pas pentru noi este să includem propriul nostru fișier de antet pe care tocmai l-am creat și apoi trebuie să definim constructorul bibliotecii. În el, trecem două variabile. GUID-ul este salvat în variabila privată pe care am definit-o anterior și Clientul este transmis prin referință, astfel încât să putem apela aceeași instanță pe care am primit-o.

Funcția principală getData a bibliotecii este definită în continuare prin specificarea mai întâi a tipului de returnare, urmat de numele bibliotecii și numele funcției. Nu voi intra în detalii despre ceea ce face fiecare linie în această funcție, dar, în general, funcția deschide o conexiune la serverul YouTube Sight, trimite cererea pentru a obține statistici și apoi analizează datele returnate cu ajutorul funcția privată getValue.

Rezultatele obținute sunt apoi setate la variabila channelStats și un indicator este returnat dacă am reușit să obținem sau nu rezultatele și cu aceasta nucleul bibliotecii noastre este complet.

Pasul 5: Furnizarea de schițe de exemplu

Furnizarea de schițe de exemplu
Furnizarea de schițe de exemplu

De obicei, fiecare bibliotecă oferă exemple pe care le puteți încărca rapid și utiliza pentru a prezenta ce poate face biblioteca și cum să o faceți. Pentru a oferi astfel de exemple, trebuie să modificăm structura bibliotecii, unde acum antetul și fișierul sursă vor fi într-un folder „src” și un nou folder va fi adăugat sub rădăcina bibliotecii numită „exemple”.

Orice schiță Arduino pe care o plasați în acest folder va fi servită din IDE-ul Arduino ca exemplu pentru biblioteca dvs., iar oamenii o pot explora rapid și pot afla cum funcționează biblioteca.

Pasul 6: Publicarea în Manager bibliotecă

Publicarea în Managerul de bibliotecă
Publicarea în Managerul de bibliotecă

Pentru a utiliza biblioteca, oamenii vor trebui să includă pur și simplu fișierul de antet al bibliotecii dvs. în schița lor, iar ID-ul Arduino îl va construi împreună cu acesta. Dar, pentru a face acest lucru, vor trebui mai întâi să îl instaleze pe mașinile lor.

O modalitate obișnuită este să descărcați biblioteca de pe GitHub și să o instalați prin programul de instalare ZIP în IDE sau pur și simplu să o plasați în folderul bibliotecilor așa cum am făcut atunci când am creat-o. Cu toate acestea, Arduino IDE include și un instrument, numit Manager bibliotecă, care vă permite să căutați o bibliotecă direct din IDE.

Pentru a include biblioteca dvs. în ea, trebuie mai întâi să creăm un fișier suplimentar în folderul rădăcină numit „library.properties” și în acesta, trebuie să specificăm numele bibliotecii, versiunea curentă și câteva informații suplimentare care vor ajuta managerul bibliotecii pentru a afișa informații mai bune despre aceasta.

Cu fișierul în loc, trebuie creată o problemă pe pagina Arduino GitHub care solicită pur și simplu ca biblioteca dvs. să fie inclusă în index cu linkul către aceasta și odată ce este aprobată și adăugată de personalul Arduino, managerul bibliotecii va începeți să vă oferiți biblioteca în rezultate. În plus, managerul va căuta orice etichete de versiune în repo GitHub în viitor și va oferi o actualizare persoanelor care îl utilizează odată ce există modificări.

Pasul 7: Pașii următori

Sper că după acest Instructable, veți avea o mai bună înțelegere a modului în care funcționează bibliotecile Arduino, cum puteți crea una și, cel mai important, sper să vă inspirați pentru a începe să lucrați la următoarea dvs. mare idee.

Pentru orice întrebări sau sugestii suplimentare, nu ezitați să scrieți în comentarii, abonați-vă la canalul meu YouTube și urmați-mă aici pe Instructables.

Recomandat: