Inhoudsopgave:
- Stap 1: Wat is een bibliotheek?
- Stap 2: Bibliotheekstructuur en bestanden
- Stap 3: Het kopbestand
- Stap 4: Het bronbestand
- Stap 5: Voorbeeldschetsen verstrekken
- Stap 6: Publiceren naar Bibliotheekbeheer
- Stap 7: Volgende stappen
Video: Een Arduino-bibliotheek maken voor YouTube Sight: 7 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
Hallo iedereen, Ik heb onlangs een service gebouwd met de naam YouTube Sight die abonneegegevens kan extraheren uit de YouTube Analytics API en je nauwkeurigere abonneetellingen kan geven sinds YouTube is begonnen met het verzamelen van de resultaten. Hiermee heb ik een voorbeeldschets gemaakt, maar ik wilde ook een Arduino-bibliotheek maken, zodat mensen het gemakkelijker kunnen gebruiken.
Stap 1: Wat is een bibliotheek?
Een bibliotheek is een stukje code dat een specifieke bewerking kan uitvoeren, een type gegevens kan verwerken of kan weten hoe het moet communiceren met een specifiek hardware-element. Ze stellen ons in staat om de Arduino-omgeving eenvoudig uit te breiden en er zijn er veel die vooraf zijn geïnstalleerd met de Arduino IDE.
In gevallen zoals het mijne, waar we nieuwe mogelijkheden aan de Arduino willen toevoegen, kunnen we onze eigen bibliotheken maken zodat andere mensen ze kunnen gebruiken. Alle geïnstalleerde bibliotheken staan in een specifieke map op onze computer. In mijn geval voor de Windows-pc leven de bibliotheken onder de map Documenten/Arduino. Het volledige pad is specifiek voor u, op basis van uw gebruikersnaam.
Stap 2: Bibliotheekstructuur en bestanden
Om te beginnen met het bouwen van onze bibliotheek, moeten we hier eerst een map maken met de naam ervan, dus ik heb een map gemaakt met de naam YouTube Sight. In de absolute minimumversie van de bibliotheek moeten we ten minste twee bestanden hebben.
De eerste is een zogenaamd "header"-bestand dat alle definities bevat van de methoden en eigenschappen die onze bibliotheek biedt, en de tweede is het bronbestand dat alle broncode zal bevatten.
De headerbestanden hebben de extensie ".h" terwijl het bronbestand de extensie ".cpp" heeft en ze hebben meestal de naam van de bibliotheek als bestandsnaam. In mijn geval heten de twee bestanden "YouTubeSight.h" en "YouTubeSight.cpp".
Het proces van het schrijven van de bibliotheekcode kan een beetje vervelend en frustrerend zijn, vooral wanneer u voor de eerste keer een bibliotheek schrijft, maar met veel vallen en opstaan kunt u de gewenste resultaten bereiken. Daarom zal ik je door de voltooide code van de twee bestanden leiden en uitleggen.
De volledige code en de bibliotheek kunnen worden gedownload van GitHub via de volgende link:
Stap 3: Het kopbestand
In het kopbestand, in het begin, is het hele bestand verpakt in een "ifndef" -instructie die controleert of de opgegeven variabele is gedefinieerd of niet. Dit voorkomt fouten voor iedereen die de bibliotheek gebruikt als ze deze per ongeluk twee keer in dezelfde schets opnemen.
Vervolgens moeten we de Arduino-basisbibliotheek toevoegen en aangezien we met een soort HTTP-client zullen werken om het verzoek naar YouTube Sight te verzenden, zullen we ook de basisclientbibliotheek opnemen.
Voordat we beginnen met het schrijven van de inhoud van onze hoofdklasse, moeten we eventuele statische variabelen en instellingen definiëren die we niet willen wijzigen. In mijn geval zijn er twee van dergelijke variabelen. De hoofd-URL van de YouTube Sight-service en de time-outvariabele die we zullen gebruiken om te controleren hoe lang we een waarde lezen.
Ook in deze sectie kunnen we alle aangepaste typen definiëren die we willen gebruiken, zoals deze channelStatistics-structuur waarin we de resultaten opslaan.
De definitie van de klassenstructuur is opgesplitst in twee delen. Het eerste deel is de definitie van alle publieke functies en eigendommen en het tweede is de definitie van alle private functies en eigendommen. Het verschil tussen beide is dat de eindgebruikers van onze bibliotheek niets rechtstreeks uit het privégedeelte kunnen gebruiken, terwijl ze de eigenschappen en functies van het openbare gedeelte rechtstreeks kunnen wijzigen en gebruiken.
In de openbare sectie definiëren we de klassenconstructor, de variabele channelStats waar we de resultaten zullen opslaan, de functie die de gegevens zal ophalen en een debug-eigenschap die we later kunnen gebruiken om te controleren op gevallen waarin we mogelijk niet de verwachte resultaten krijgen.
Voor de privé-eigenschappen zullen we er een definiëren voor het opslaan van de kanaal-GUID, een verwijzing naar de HTTP-client die we zullen gebruiken en een functie die de geretourneerde string van YouTube Sight zal splitsen.
Stap 4: Het bronbestand
Laten we nu eens kijken naar de daadwerkelijke implementatie van dit alles in het bronbestand.
De eerste stap voor ons is om ons eigen headerbestand op te nemen dat we zojuist hebben gemaakt en dan moeten we de bibliotheekconstructor definiëren. Daarin geven we twee variabelen door. De GUID wordt opgeslagen in de privévariabele die we eerder hebben gedefinieerd en de client wordt als referentie doorgegeven, zodat we dezelfde instantie kunnen aanroepen die we hebben gekregen.
De belangrijkste getData-functie van de bibliotheek wordt vervolgens gedefinieerd door eerst het retourtype op te geven, gevolgd door de bibliotheeknaam en de functienaam. Ik zal niet in detail treden op wat elke regel in deze functie doet, maar over het algemeen opent de functie een verbinding met de YouTube Sight-server, verzendt het verzoek om de statistieken te krijgen en parseert vervolgens de geretourneerde gegevens met behulp van de private getValue-functie.
De opgehaalde resultaten worden vervolgens ingesteld op de variabele channelStats en er wordt een indicator geretourneerd of het ons is gelukt om de resultaten op te halen of niet en daarmee is de kern van onze bibliotheek compleet.
Stap 5: Voorbeeldschetsen verstrekken
Gewoonlijk biedt elke bibliotheek voorbeelden die u snel kunt laden en gebruiken om te laten zien wat de bibliotheek kan en hoe u het moet doen. Om dergelijke voorbeelden te geven, moeten we de bibliotheekstructuur wijzigen, waarbij de koptekst en het bronbestand zich nu in een map "src" bevinden en een nieuwe map wordt toegevoegd onder de bibliotheekhoofdmap met de naam "voorbeelden".
Elke Arduino-schets die u in deze map plaatst, wordt vanuit de Arduino IDE weergegeven als voorbeeld voor uw bibliotheek en mensen kunnen deze snel verkennen en leren hoe de bibliotheek werkt.
Stap 6: Publiceren naar Bibliotheekbeheer
Om de bibliotheek te gebruiken, moeten mensen gewoon het headerbestand van uw bibliotheek in hun schets opnemen en de Arduino IDE zal het samen ermee bouwen. Maar om dit te doen, moeten ze het eerst op hun machines installeren.
Een veelgebruikte manier is om de bibliotheek van GitHub te downloaden en deze te installeren via het ZIP-installatieprogramma in de IDE of gewoon in de bibliothekenmap te plaatsen zoals we deden toen we hem maakten. De Arduino IDE bevat echter ook een tool, de Library Manager genaamd, waarmee u rechtstreeks vanuit de IDE naar een bibliotheek kunt zoeken.
Om uw bibliotheek erin op te nemen, moeten we eerst een extra bestand maken in de hoofdmap met de naam "library.properties" en daarin moeten we de bibliotheeknaam, de huidige versie en wat aanvullende informatie specificeren die de bibliotheekbeheerder zal helpen om er betere informatie over weer te geven.
Met het bestand op zijn plaats, moet er een probleem worden gemaakt op de Arduino GitHub-pagina die eenvoudig vraagt om uw bibliotheek op te nemen in de index met de link ernaar en zodra het is goedgekeurd en toegevoegd door het Arduino-personeel, zal de bibliotheekmanager begin met het aanbieden van uw bibliotheek in de resultaten. Bovendien zal de manager in de toekomst zoeken naar versietags in de GitHub-repo en een update aanbieden aan mensen die deze gebruiken zodra er wijzigingen zijn.
Stap 7: Volgende stappen
Ik hoop dat je na deze Instructable een beter begrip hebt van hoe Arduino-bibliotheken werken, hoe je er een kunt maken en vooral, ik hoop dat je geïnspireerd raakt om aan je volgende grote idee te gaan werken.
Voor eventuele aanvullende vragen of suggesties, schrijf het gerust in de reacties, abonneer je op mijn YouTube-kanaal en volg me hier op Instructables.
Aanbevolen:
De beknopte handleiding voor het maken van een video met uw iPhone en het uploaden naar Facebook of YouTube: 9 stappen
De beknopte handleiding voor het maken van een video met uw iPhone en het uploaden naar Facebook of YouTube: gebruik dit eenvoudige proces van 5 stappen (Instructables laat het lijken op meer stappen dan het in werkelijkheid is) om uw eerste YouTube- of Facebook-video te maken en te uploaden - met slechts je iPhone
Een 3D-printergegevens maken van een behuizing voor een elektronische module door Blender. Ajarnpa
Een 3D-printergegevens maken van een behuizing voor elektronische module door Blender.: Je hebt ze nodig (voorbeeld dat ik heb gebruikt). 3D-printer (TEVO Tarantula) 2D-scanner (CanoScan LiDE 200) 3D-gegevenseditor (blender) 2D-gegevenseditor (Paint Shop Pro) https://neo-sahara.com/wp/case_make_blender
Een Bluetooth-adapter Pt.2 maken (een compatibele luidspreker maken): 16 stappen
Een Bluetooth-adapter Pt.2 maken (een compatibele luidspreker maken): in deze instructie laat ik u zien hoe u mijn Bluetooth-adapter kunt gebruiken om een oude luidspreker Bluetooth-compatibel te maken. * Als u mijn eerste instructie over "Maken nog niet hebt gelezen een Bluetooth-adapter" Ik raad u aan dit te doen voordat u doorgaat.C
Een functionele vervanging maken voor een Scotts 20V Lithium Pack: 4 stappen
Een functionele vervanging maken voor een Scotts 20V-lithiumpakket: in een andere Instructable liet ik zien hoe u een 20v Scotts-lithiumpakket kunt demonteren. Ik had nog steeds de onkruidwhacker en bladblazer rondslingeren en wilde ze niet weggooien en besloot te proberen een vervangend pakket te maken dat echt zou werken. ik ben al
Instructies voor het maken van een bevestiging met vier stangen voor een in het midden gemonteerde voetsteun - Ajarnpa
Instructies voor het maken van een bevestiging met vier stangen voor een in het midden gemonteerde voetsteun: Elektrische rolstoelen met middenaandrijving (PWC) zijn de laatste jaren populairder geworden. Door de plaatsing van de voorste zwenkwielen zijn de traditionele aan de zijkant gemonteerde voetsteunen echter vervangen door een enkele in het midden gemonteerde voetsteun. Helaas, middenm