Sommario:

Creare una libreria Arduino per YouTube Sight: 7 passaggi
Creare una libreria Arduino per YouTube Sight: 7 passaggi

Video: Creare una libreria Arduino per YouTube Sight: 7 passaggi

Video: Creare una libreria Arduino per YouTube Sight: 7 passaggi
Video: STEAM Education: osservare le trasformazioni ambientali con Arduino 2024, Novembre
Anonim
Image
Image
Che cos'è una libreria?
Che cos'è una libreria?

Ciao a tutti, Di recente ho creato un servizio chiamato YouTube Sight in grado di estrarre i dati degli iscritti dall'API di YouTube Analytics e fornirti un conteggio degli iscritti più accurato da quando YouTube ha iniziato ad aggregare i risultati. Con esso, ho creato uno schizzo di esempio, ma volevo anche creare una libreria Arduino in modo che le persone potessero usarla più facilmente.

Passaggio 1: cos'è una libreria?

Che cos'è una libreria?
Che cos'è una libreria?

Una libreria è un pezzo di codice in grado di gestire un'operazione specifica, elaborare un tipo di dati o sapere come interagire con uno specifico elemento hardware. Ci consentono di estendere facilmente l'ambiente Arduino e ce ne sono molti preinstallati con l'IDE Arduino.

In casi come il mio, in cui vogliamo aggiungere nuove possibilità ad Arduino, possiamo creare le nostre librerie affinché altre persone le usino. Tutte le librerie installate vivono in una cartella specifica sul nostro computer. Nel mio caso per PC Windows, le librerie risiedono nella cartella Documenti/Arduino. Il percorso completo sarà specifico per te, in base al tuo nome utente.

Passaggio 2: struttura e file della libreria

Struttura e file della libreria
Struttura e file della libreria

Per iniziare a creare la nostra libreria, dobbiamo prima creare una cartella qui con il suo nome, quindi ho creato una cartella chiamata YouTube Sight. Nella versione minima della libreria, dobbiamo avere almeno due file.

Il primo è un cosiddetto file "header" che contiene tutte le definizioni dei metodi e delle proprietà fornite dalla nostra libreria, e il secondo è il file sorgente che conterrà tutto il codice sorgente.

I file di intestazione hanno estensione “.h” mentre il file sorgente ha estensione “.cpp” e di solito hanno il nome della libreria come nome del file. Nel mio caso, i due file si chiamano "YouTubeSight.h" e "YouTubeSight.cpp".

Il processo di scrittura del codice della libreria può essere un po' noioso e frustrante, soprattutto quando si scrive una libreria per la prima volta, ma con molti tentativi ed errori, è possibile ottenere i risultati desiderati. Per questo motivo ti guiderò attraverso il codice finito dei due file e lo spiegherò.

Il codice completo e la libreria sono disponibili per il download da GitHub al seguente link:

Passaggio 3: il file di intestazione

Il file di intestazione
Il file di intestazione
Il file di intestazione
Il file di intestazione
Il file di intestazione
Il file di intestazione

All'interno del file di intestazione, all'inizio, l'intero file è racchiuso all'interno di un'istruzione “ifndef” che verifica se la variabile specificata è definita o meno. Ciò eviterà errori per chiunque utilizzi la libreria se la include due volte nello stesso schizzo per errore.

Successivamente, dobbiamo includere la libreria Arduino di base e poiché lavoreremo con un client HTTP di qualche tipo per inviare la richiesta a YouTube Sight, includeremo anche la libreria client di base.

Prima di iniziare a scrivere il contenuto della nostra classe principale, dobbiamo definire eventuali variabili statiche e impostazioni che non vogliamo vengano modificate. Nel mio caso, ci sono due di queste variabili. L'URL principale del servizio YouTube Sight e la variabile di timeout che utilizzeremo per verificare per quanto tempo leggiamo un valore.

Anche in questa sezione, possiamo definire qualsiasi tipo personalizzato che vogliamo usare come questa struttura channelStatistics in cui salveremo i risultati.

La definizione della struttura della classe è divisa in due parti. La prima parte è la definizione di tutte le funzioni e proprietà pubbliche e la seconda è la definizione di tutte le funzioni e proprietà private. La differenza tra i due è che gli utenti finali della nostra libreria non potranno utilizzare direttamente nulla dalla sezione privata mentre potranno modificare e utilizzare direttamente qualsiasi proprietà e funzione dalla parte pubblica.

Nella sezione pubblica, definiamo il costruttore della classe, la variabile channelStats in cui memorizzeremo i risultati, la funzione che otterrà i dati e una proprietà di debug che possiamo utilizzare in seguito per verificare i casi in cui potremmo non ottenere i risultati previsti.

Per le proprietà private, ne definiremo una per memorizzare il GUID del canale, un puntatore al client HTTP che utilizzeremo e una funzione che dividerà la stringa restituita da YouTube Sight.

Passaggio 4: il file di origine

Il file sorgente
Il file sorgente
Il file sorgente
Il file sorgente

Ora esaminiamo l'effettiva implementazione di tutto questo all'interno del file sorgente.

Il primo passo per noi è includere il nostro file di intestazione che abbiamo appena creato e quindi dobbiamo definire il costruttore della libreria. In esso, passiamo due variabili. Il GUID viene salvato nella variabile privata che abbiamo definito in precedenza e il Client viene passato per riferimento in modo che possiamo quindi chiamare la stessa istanza che abbiamo ottenuto.

La funzione getData principale della libreria viene definita successivamente specificando prima il tipo restituito, seguito dal nome della libreria e dal nome della funzione. Non entrerò nei dettagli di cosa fa ogni singola riga in questa funzione, ma in generale la funzione apre una connessione al server YouTube Sight, invia la richiesta per ottenere le statistiche e quindi analizza i dati restituiti con l'aiuto di la funzione getValue privata.

I risultati recuperati vengono quindi impostati sulla variabile channelStats e viene restituito un indicatore se siamo riusciti a recuperare i risultati o meno e con ciò il nucleo della nostra libreria è completo.

Passaggio 5: fornire schizzi di esempio

Fornire schizzi di esempio
Fornire schizzi di esempio

Di solito, ogni libreria fornisce esempi che puoi caricare rapidamente e utilizzare per mostrare cosa può fare la libreria e come farlo. Per fornire tali esempi, dobbiamo modificare la struttura della libreria dove ora l'intestazione e il file sorgente saranno in una cartella "src" e verrà aggiunta una nuova cartella sotto la radice della libreria chiamata "esempi".

Qualsiasi schizzo Arduino che inserisci in questa cartella verrà servito dall'IDE Arduino come esempio per la tua libreria e le persone possono esplorarlo rapidamente e imparare come funziona la libreria.

Passaggio 6: pubblicazione nel Gestore della libreria

Pubblicazione nel Gestore della Biblioteca
Pubblicazione nel Gestore della Biblioteca

Per utilizzare la libreria, le persone dovranno semplicemente includere il file di intestazione della tua libreria nel loro schizzo e l'IDE di Arduino lo costruirà insieme ad esso. Ma per farlo, dovranno prima installarlo sulle loro macchine.

Un modo comune è scaricare la libreria da GitHub e installarla tramite il programma di installazione ZIP nell'IDE o semplicemente inserirla nella cartella delle librerie come abbiamo fatto quando la stavamo creando. Tuttavia, l'IDE di Arduino include anche uno strumento, chiamato Library Manager, che consente di cercare una libreria direttamente dall'IDE.

Per includere la tua libreria, dobbiamo prima creare un file aggiuntivo nella cartella principale chiamato "library.properties" e in esso dobbiamo specificare il nome della libreria, la versione corrente e alcune informazioni aggiuntive che aiuteranno il gestore della libreria per visualizzare informazioni migliori al riguardo.

Con il file in atto, è necessario creare un problema sulla pagina GitHub di Arduino che richiede semplicemente di includere la propria libreria nell'indice con il collegamento ad essa e una volta approvato e aggiunto dallo staff di Arduino, il gestore della libreria lo farà inizia ad offrire la tua libreria nei risultati. Inoltre, il gestore cercherà eventuali tag di versione nel repository GitHub in futuro e offrirà un aggiornamento alle persone che lo utilizzano una volta che ci sono modifiche.

Passaggio 7: passaggi successivi

Spero che dopo questo Instructable, tu abbia una migliore comprensione di come funzionano le librerie Arduino, come puoi crearne una e, soprattutto, spero che tu sia ispirato a iniziare a lavorare sulla tua prossima grande idea.

Per qualsiasi ulteriore domanda o suggerimento, sentiti libero di scrivere nei commenti, iscriviti al mio canale YouTube e seguimi qui su Instructables.

Consigliato: