Taula de continguts:

Creació d'una biblioteca Arduino per a YouTube Sight: 7 passos
Creació d'una biblioteca Arduino per a YouTube Sight: 7 passos

Vídeo: Creació d'una biblioteca Arduino per a YouTube Sight: 7 passos

Vídeo: Creació d'una biblioteca Arduino per a YouTube Sight: 7 passos
Vídeo: Golang vs Python #shorts tiktok hackmymozg 2024, De novembre
Anonim
Image
Image
Què és una biblioteca?
Què és una biblioteca?

Hola a tothom, Recentment he creat un servei anomenat YouTube Sight que pot extreure dades de subscriptors de l'API de YouTube Analytics i proporcionar-vos un recompte de subscriptors més precís des que YouTube va començar a agregar els resultats. Amb ell, he creat un esbós d’exemple, però també volia fer una biblioteca Arduino perquè la gent l’utilitzés més fàcilment.

Pas 1: què és una biblioteca?

Què és una biblioteca?
Què és una biblioteca?

Una biblioteca és una peça de codi que pot gestionar una operació específica, processar un tipus de dades o saber interactuar amb un element de maquinari específic. Ens permeten ampliar fàcilment l'entorn Arduino i n'hi ha molts que estan preinstal·lats amb l'IDE Arduino.

En casos com el meu, on volem afegir noves possibilitats a l’Arduino, podem crear biblioteques pròpies perquè altres persones les utilitzin. Totes les biblioteques instal·lades es troben en una carpeta específica del nostre equip. En el meu cas per al PC amb Windows, les biblioteques es troben a la carpeta Documents / Arduino. El camí complet serà específic per a vosaltres, segons el vostre nom d'usuari.

Pas 2: estructura i fitxers de la biblioteca

Estructura i fitxers de la biblioteca
Estructura i fitxers de la biblioteca

Per començar a construir la nostra biblioteca, primer hem de crear una carpeta aquí amb el seu nom, de manera que he creat una carpeta anomenada YouTube Sight. A la versió mínima de la biblioteca, hem de tenir almenys dos fitxers.

El primer és un fitxer anomenat "capçalera" que conté totes les definicions dels mètodes i propietats que proporciona la nostra biblioteca i el segon és el fitxer font que contindrà tot el codi font.

Els fitxers de capçalera tenen una extensió ".h", mentre que el fitxer d'origen té una extensió de ".cpp" i solen tenir el nom de la biblioteca com a nom de fitxer. En el meu cas, els dos fitxers es diuen "YouTubeSight.h" i "YouTubeSight.cpp".

El procés d’escriure el codi de la biblioteca pot ser una mica tediós i frustrant, sobretot quan escriviu una biblioteca per primera vegada, però amb moltes proves i errors, podeu obtenir els resultats desitjats. Per això, us guiaré a través del codi acabat dels dos fitxers i us ho explicaré.

El codi complet i la biblioteca es poden descarregar des de GitHub al següent enllaç:

Pas 3: el fitxer de capçalera

El fitxer de capçalera
El fitxer de capçalera
El fitxer de capçalera
El fitxer de capçalera
El fitxer de capçalera
El fitxer de capçalera

Dins del fitxer de capçalera, al principi, tot el fitxer s’embolica dins d’una instrucció “ifndef” que comprova si la variable especificada està definida o no. D’aquesta manera s’evitaran errors per a qualsevol persona que faci servir la biblioteca si l’inclou dues vegades al mateix esbós per error.

A continuació, hem d'incloure la biblioteca base Arduino i, ja que treballarem amb un client HTTP d'algun tipus per enviar la sol·licitud a YouTube Sight, també inclourem la biblioteca client base.

Abans de començar a escriure el contingut de la nostra classe principal, hem de definir les variables estàtiques i els paràmetres que no vulguem modificar. En el meu cas, hi ha dues variables d’aquest tipus. L'URL principal del servei YouTube Sight i la variable de temps d'espera que utilitzarem per comprovar quant de temps llegim un valor.

També en aquesta secció, podem definir qualsevol tipus personalitzat que vulguem utilitzar, com aquesta estructura de ChannelStatistics, en què guardarem els resultats.

La definició de l’estructura de classes es divideix en dues parts. La primera part és la definició de totes les funcions i propietats públiques i la segona és la definició de totes les propietats i funcions privades. La diferència entre tots dos és que els usuaris finals de la nostra biblioteca no podran utilitzar res de la secció privada directament, mentre que podran modificar i utilitzar directament qualsevol de les propietats i funcions de la part pública.

A la secció pública, definim el constructor de classes, la variable channelStats on emmagatzemarem els resultats, la funció que obtindrà les dades i una propietat de depuració que posteriorment podem utilitzar per comprovar si hi ha casos en què potser no obtindrem els resultats esperats.

Per a les propietats privades, en definirem una per emmagatzemar el GUID del canal, un punter al client HTTP que utilitzarem i una funció que dividirà la cadena retornada de YouTube Sight.

Pas 4: el fitxer font

El fitxer font
El fitxer font
El fitxer font
El fitxer font

Vegem ara la implementació real de tot això al fitxer font.

El primer pas per a nosaltres és incloure el nostre propi fitxer de capçalera que acabem de crear i després hem de definir el constructor de la biblioteca. En ell, passem dues variables. El GUID es desa a la variable privada que hem definit anteriorment i es passa el client per referència perquè puguem trucar a la mateixa instància que hem obtingut.

La funció getData principal de la biblioteca es defineix a continuació especificant primer el tipus de retorn, seguit del nom de la biblioteca i del nom de la funció. No entraré en detalls del que fa cada línia en aquesta funció, però en general, la funció obre una connexió al servidor de YouTube Sight, envia la sol·licitud per obtenir les estadístiques i analitza les dades retornades amb l'ajuda de la funció privada getValue.

Els resultats obtinguts s’estableixen a la variable channelStats i es torna un indicador si hem aconseguit recuperar o no els resultats i amb això el nucli de la nostra biblioteca està complet.

Pas 5: proporcionar esbossos d’exemple

Proporcionar esbossos d’exemple
Proporcionar esbossos d’exemple

Normalment, cada biblioteca proporciona exemples que podeu carregar i utilitzar ràpidament per mostrar què pot fer la biblioteca i com fer-ho. Per proporcionar aquests exemples, hem de modificar l'estructura de la biblioteca on ara la capçalera i el fitxer font es trobaran en una carpeta "src" i s'afegirà una nova carpeta a l'arrel de la biblioteca anomenada "exemples".

Qualsevol esbós d'Arduino que col·loqueu dins d'aquesta carpeta es publicarà des de l'IDE d'Arduino com a exemple per a la vostra biblioteca i la gent pot explorar-lo ràpidament i aprendre com funciona la biblioteca.

Pas 6: publicació al gestor de biblioteques

Publicació al gestor de biblioteques
Publicació al gestor de biblioteques

Per utilitzar la biblioteca, la gent només haurà d’incloure el fitxer de capçalera de la biblioteca al seu esbós i l’Arduino IDE el crearà juntament amb ella. Però, per fer-ho, primer hauran d’instal·lar-lo a les seves màquines.

Una manera habitual és descarregar la biblioteca de GitHub i instal·lar-la a través de l’instal·lador ZIP a l’IDE o simplement col·locar-la dins de la carpeta de biblioteques tal com vam fer quan la vam crear. No obstant això, l'IDE d'Arduino també inclou una eina, anomenada Gestor de biblioteques, que permet cercar una biblioteca directament des de l'IDE.

Per incloure-hi la biblioteca, primer hem de crear un fitxer addicional a la carpeta arrel anomenada "library.properties" i, en ella, hem d'especificar el nom de la biblioteca, la versió actual i alguna informació addicional que ajudi el gestor de la biblioteca per mostrar-ne una millor informació.

Amb el fitxer al seu lloc, cal crear un problema a la pàgina Arduino GitHub que simplement demani que la vostra biblioteca s’inclogui a l’índex amb l’enllaç i, un cop aprovada i afegida pel personal d’Arduino, el gestor de la biblioteca Comenceu a oferir la vostra biblioteca als resultats. A més, el gestor buscarà qualsevol etiqueta de versió al repositori de GitHub en el futur i oferirà una actualització a les persones que l’utilitzin un cop hi hagi canvis.

Pas 7: passos següents

Espero que després d’aquest Instructable, entengueu millor com funcionen les biblioteques Arduino, com podeu crear-ne una i, el que és més important, espero que us inspireu per començar a treballar en la vostra propera gran idea.

Per a qualsevol pregunta o suggeriment addicional, no dubteu a escriure als comentaris, subscriviu-vos al meu canal de YouTube i seguiu-me aquí a Instructables.

Recomanat: