Sommario:
- Passaggio 1: cos'è una libreria?
- Passaggio 2: struttura e file della libreria
- Passaggio 3: il file di intestazione
- Passaggio 4: il file di origine
- Passaggio 5: fornire schizzi di esempio
- Passaggio 6: pubblicazione nel Gestore della libreria
- Passaggio 7: passaggi successivi
Video: Creare una libreria Arduino per YouTube Sight: 7 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
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?
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
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
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
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
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
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:
Programmare un Arduino usando un altro Arduino per visualizzare un testo scorrevole senza una libreria: 5 passaggi
Programmazione di un Arduino utilizzando un altro Arduino per visualizzare un testo scorrevole senza una libreria: Sony Spresense o Arduino Uno non sono così costosi e non richiedono molta energia. Tuttavia, se il tuo progetto ha limitazioni di potenza, spazio o persino budget, potresti prendere in considerazione l'utilizzo di Arduino Pro Mini. A differenza di Arduino Pro Micro, Arduino Pro Mi
(2) Iniziare a creare un gioco - Creare una schermata iniziale in Unity3D: 9 passaggi
(2) Iniziare a creare un gioco - Creare una schermata iniziale in Unity3D: In questo Instructable imparerai come creare una semplice schermata iniziale in Unity3D. Per prima cosa, apriremo Unity
Come aggiungere una libreria esterna ad Arduino: 3 passaggi
Come aggiungere una libreria esterna ad Arduino: La libreria fornisce funzioni aggiuntive per lo schizzo che abbiamo realizzato. Queste funzioni possono aiutarci a rendere gli schizzi più facili. Ci sono molte librerie che possiamo usare. Libreria predefinita di Arduino IDE o libreria esterna creata da qualcuno o da una comunità. In questo
Collega il tuo Pi senza testa a una rete WiFi della libreria: 7 passaggi
Collega il tuo Pi senza testa a una rete WiFi della libreria: quante volte hai voluto lavorare sui tuoi progetti Raspberry Pi senza testa nella libreria locale, solo per ritrovarti bloccato perché la rete WiFi aperta richiede che tu usi un browser? Bene, non preoccuparti più, questo Instructable è qui per aiutarti! Faremo un
Come caricare e rinominare documenti in una libreria SharePoint di Office 365: 8 passaggi
Come caricare e rinominare documenti in una libreria di Office 365 SharePoint: In questo tutorial imparerai come caricare e rinominare documenti in una libreria di Office 365 SharePoint. Questo istruibile è realizzato appositamente per il mio luogo di lavoro, ma può essere facilmente trasferito ad altre attività per chiunque utilizzi