Cuprins:
- Pasul 1: Ce este o bibliotecă?
- Pasul 2: Structura bibliotecii și fișierele
- Pasul 3: Fișierul antet
- Pasul 4: Fișierul sursă
- Pasul 5: Furnizarea de schițe de exemplu
- Pasul 6: Publicarea în Manager bibliotecă
- Pasul 7: Pașii următori
Video: Realizarea unei biblioteci Arduino pentru YouTube Sight: 7 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
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ă?
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
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
Î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ă
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
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ă
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:
Realizarea unei camere web online pentru rezervoare de pește !: 8 pași (cu imagini)
Realizarea unei camere web Fish Tank online !: Ghid pas cu pas pentru modificarea carcasei unei camere IP, astfel încât să poată fi atașată direct la un Fish Tank. Motivul pentru care acest lucru este necesar este că camerele web sunt de obicei concepute pentru a fi plasate în fața subiectului sau au nevoie de un stand. Cu toate acestea, cu un Fish Ta
Realizarea unei huse pentru telefonul mobil din fibră de carbon: 10 pași
Realizarea unei huse pentru telefonul mobil din fibră de carbon: Scop: Scopul acestui tutorial este de a vă învăța cum să realizați o husă pentru telefonul mobil din fibră de carbon. Nimic nu arată mai rău decât un telefon spart. Cu o husă de telefon ușoară, de cinci ori mai puternică decât oțelul, nu va mai trebui să vă faceți griji pentru asta
Realizarea unei telecomenzi cu aspect profesional pentru proiectul dvs. Arduino acasă: 9 pași (cu imagini)
Realizarea unei telecomenzi cu aspect profesional pentru proiectul dvs. Arduino la domiciliu: Am realizat un proiect care folosea un arduino și o bibliotecă la distanță IR pentru a controla câteva lucruri. Deci, în acest instructiv vă voi arăta cum puteți reutiliza orice telecomandă ți-am folosit următorul proiect. Și nu ai nevoie de nimic fantezist pentru a-ți face o treabă bună
Realizarea unei date de imprimantă 3D pentru carcasă pentru modul electronic de la Blender .: 6 pași
Realizarea unei date de imprimantă 3D pentru carcasă pentru modul electronic de la Blender: aveți nevoie de ele (Exemplul I folosit). Imprimantă 3D (TEVO Tarantula) Scanner 2D (CanoScan LiDE 200) Editor de date 3D (Blender) Editor de date 2D (Paint Shop Pro) https://neo-sahara.com/wp/case_make_blender
Realizarea unei carcase pentru iPod-uri Altoids: 5 pași
Realizarea unei carcase pentru iPod-uri Altoids: Acesta este modul în care creați o carcasă sigură pentru iPod Nano dintr-o carcasă Altoids, o bandă adezivă și ceva spumă. De ce veți avea nevoie: Altoidele pot (de preferință goale) spumă (acest lucru vă va bloca iPod-ul și îl va păstra în siguranță) Bandă pentru conducte (am folosit-o mai mult ca finisaj pentru a