Inhaltsverzeichnis:

Erstellen einer Arduino-Bibliothek für YouTube Sight - Gunook
Erstellen einer Arduino-Bibliothek für YouTube Sight - Gunook

Video: Erstellen einer Arduino-Bibliothek für YouTube Sight - Gunook

Video: Erstellen einer Arduino-Bibliothek für YouTube Sight - Gunook
Video: 2# The MIDIUSB Library - MIDI Programming for the Arduino - 2024, November
Anonim
Image
Image
Was ist eine Bibliothek?
Was ist eine Bibliothek?

Hallo allerseits, Ich habe vor Kurzem einen Dienst namens YouTube Sight entwickelt, der Abonnentendaten aus der YouTube Analytics API extrahieren und Ihnen genauere Abonnentenzahlen liefern kann, seit YouTube mit der Zusammenfassung der Ergebnisse begonnen hat. Damit habe ich eine Beispielskizze erstellt, aber ich wollte auch eine Arduino-Bibliothek erstellen, damit die Leute sie einfacher verwenden können.

Schritt 1: Was ist eine Bibliothek?

Was ist eine Bibliothek?
Was ist eine Bibliothek?

Eine Bibliothek ist ein Codestück, das eine bestimmte Operation verarbeiten, einen Datentyp verarbeiten oder mit einem bestimmten Hardwareelement interagieren kann. Sie ermöglichen es uns, die Arduino-Umgebung einfach zu erweitern, und viele davon sind mit der Arduino-IDE vorinstalliert.

In Fällen wie meinem, in denen wir dem Arduino neue Möglichkeiten hinzufügen möchten, können wir unsere eigenen Bibliotheken erstellen, damit andere sie verwenden können. Alle installierten Bibliotheken befinden sich in einem bestimmten Ordner auf unserem Computer. In meinem Fall für den Windows-PC befinden sich die Bibliotheken im Ordner Documents/Arduino. Der vollständige Pfad wird basierend auf Ihrem Benutzernamen für Sie spezifisch sein.

Schritt 2: Bibliotheksstruktur und Dateien

Bibliotheksstruktur und Dateien
Bibliotheksstruktur und Dateien

Um mit dem Aufbau unserer Bibliothek zu beginnen, müssen wir hier zuerst einen Ordner mit dem Namen erstellen, also habe ich einen Ordner namens YouTube Sight erstellt. In der minimalen Version der Bibliothek müssen wir mindestens zwei Dateien haben.

Die erste ist eine sogenannte „Header“-Datei, die alle Definitionen der Methoden und Eigenschaften unserer Bibliothek enthält, und die zweite ist die Quelldatei, die den gesamten Quellcode enthält.

Die Header-Dateien haben die Erweiterung „.h“, während die Quelldatei die Erweiterung „.cpp“hat und normalerweise den Namen der Bibliothek als Dateinamen hat. In meinem Fall heißen die beiden Dateien „YouTubeSight.h“und „YouTubeSight.cpp“.

Der Prozess des Schreibens des Bibliothekscodes kann etwas mühsam und frustrierend sein, insbesondere wenn Sie zum ersten Mal eine Bibliothek schreiben, aber mit viel Ausprobieren können Sie die gewünschten Ergebnisse erzielen. Aus diesem Grund werde ich Sie durch den fertigen Code der beiden Dateien führen und ihn erklären.

Der vollständige Code und die Bibliothek stehen auf GitHub unter folgendem Link zum Download bereit:

Schritt 3: Die Header-Datei

Die Header-Datei
Die Header-Datei
Die Header-Datei
Die Header-Datei
Die Header-Datei
Die Header-Datei

Innerhalb der Header-Datei wird am Anfang die gesamte Datei in eine „ifndef“-Anweisung eingeschlossen, die überprüft, ob die angegebene Variable definiert ist oder nicht. Dies verhindert Fehler für jeden, der die Bibliothek verwendet, wenn er sie versehentlich zweimal in dieselbe Skizze einfügt.

Als nächstes müssen wir die Arduino-Basisbibliothek einbinden und da wir mit einem HTTP-Client arbeiten, um die Anfrage an YouTube Sight zu senden, werden wir auch die Basis-Clientbibliothek einschließen.

Bevor wir mit dem Schreiben des Inhalts unserer Hauptklasse beginnen, müssen wir alle statischen Variablen und Einstellungen definieren, die nicht geändert werden sollen. In meinem Fall gibt es zwei solcher Variablen. Die Haupt-URL des YouTube Sight-Dienstes und die Timeout-Variable, die wir verwenden, um zu überprüfen, wie lange wir einen Wert lesen.

In diesem Abschnitt können wir auch alle benutzerdefinierten Typen definieren, die wir verwenden möchten, wie diese channelStatistics-Struktur, in der wir die Ergebnisse speichern.

Die Definition der Klassenstruktur gliedert sich in zwei Teile. Der erste Teil ist die Definition aller öffentlichen Funktionen und Eigenschaften und der zweite die Definition aller privaten Funktionen und Eigenschaften. Der Unterschied zwischen beiden besteht darin, dass die Endbenutzer unserer Bibliothek nichts aus dem privaten Bereich direkt verwenden können, während sie Eigenschaften und Funktionen aus dem öffentlichen Teil direkt ändern und verwenden können.

Im öffentlichen Abschnitt definieren wir den Klassenkonstruktor, die Variable channelStats, in der wir die Ergebnisse speichern, die Funktion, die die Daten abruft, und eine Debug-Eigenschaft, die wir später verwenden können, um Fälle zu überprüfen, in denen wir möglicherweise nicht die erwarteten Ergebnisse erhalten.

Für die privaten Eigenschaften definieren wir eine zum Speichern der Kanal-GUID, einen Zeiger auf den von uns verwendeten HTTP-Client und eine Funktion, die den zurückgegebenen String von YouTube Sight aufteilt.

Schritt 4: Die Quelldatei

Die Quelldatei
Die Quelldatei
Die Quelldatei
Die Quelldatei

Schauen wir uns nun die tatsächliche Implementierung von all dem in der Quelldatei an.

Der erste Schritt für uns besteht darin, unsere eigene Header-Datei einzubinden, die wir gerade erstellt haben, und dann müssen wir den Bibliothekskonstruktor definieren. Darin übergeben wir zwei Variablen. Die GUID wird in der zuvor definierten privaten Variablen gespeichert und der Client wird als Referenz übergeben, damit wir dann dieselbe Instanz aufrufen können, die wir erhalten haben.

Als nächstes wird die Hauptfunktion getData der Bibliothek definiert, indem zuerst der Rückgabetyp angegeben wird, gefolgt vom Bibliotheksnamen und dem Funktionsnamen. Ich werde nicht näher darauf eingehen, was jede einzelne Zeile in dieser Funktion macht, aber im Allgemeinen öffnet die Funktion eine Verbindung zum YouTube Sight-Server, sendet die Anfrage zum Abrufen der Statistiken und parst dann die zurückgegebenen Daten mit Hilfe von die private getValue-Funktion.

Die abgerufenen Ergebnisse werden dann auf die Variable channelStats gesetzt und es wird ein Indikator zurückgegeben, ob es uns gelungen ist, die Ergebnisse abzurufen oder nicht, und damit ist der Kern unserer Bibliothek vollständig.

Schritt 5: Bereitstellung von Beispielskizzen

Bereitstellung von Beispielskizzen
Bereitstellung von Beispielskizzen

Normalerweise bietet jede Bibliothek Beispiele, die Sie schnell laden und verwenden können, um zu zeigen, was die Bibliothek kann und wie es geht. Um solche Beispiele bereitzustellen, müssen wir die Bibliotheksstruktur ändern, wobei sich jetzt der Header und die Quelldatei in einem „src“-Ordner befinden und ein neuer Ordner unter dem Bibliotheksstamm namens „examples“hinzugefügt wird.

Jede Arduino-Skizze, die Sie in diesem Ordner platzieren, wird von der Arduino-IDE als Beispiel für Ihre Bibliothek bereitgestellt und die Leute können sie schnell erkunden und lernen, wie die Bibliothek funktioniert.

Schritt 6: Veröffentlichen im Bibliotheksmanager

Veröffentlichung an den Bibliotheksverwalter
Veröffentlichung an den Bibliotheksverwalter

Um die Bibliothek zu verwenden, müssen die Leute einfach die Header-Datei Ihrer Bibliothek in ihre Skizze aufnehmen und die Arduino IDE baut sie zusammen damit auf. Dazu müssen sie es jedoch zunächst auf ihren Computern installieren.

Eine übliche Methode besteht darin, die Bibliothek von GitHub herunterzuladen und über das ZIP-Installationsprogramm in der IDE zu installieren oder sie einfach wie bei der Erstellung in den Bibliotheksordner zu legen. Die Arduino-IDE enthält jedoch auch ein Tool namens Library Manager, mit dem Sie direkt aus der IDE nach einer Bibliothek suchen können.

Um Ihre Bibliothek darin aufzunehmen, müssen wir zunächst eine zusätzliche Datei im Stammordner namens „library.properties“erstellen und darin den Bibliotheksnamen, die aktuelle Version und einige zusätzliche Informationen angeben, die dem Bibliotheksverwalter helfen um bessere Informationen darüber anzuzeigen.

Wenn die Datei vorhanden ist, muss auf der Arduino GitHub-Seite ein Issue erstellt werden, das einfach darum bittet, dass Ihre Bibliothek mit dem Link dazu in den Index aufgenommen wird. Sobald sie von den Arduino-Mitarbeitern genehmigt und hinzugefügt wurde, wird der Bibliotheksmanager dies tun Beginnen Sie damit, Ihre Bibliothek in den Ergebnissen anzubieten. Darüber hinaus wird der Manager in Zukunft nach allen Versions-Tags im GitHub-Repository suchen und den Benutzern ein Update anbieten, sobald sich Änderungen ergeben.

Schritt 7: Nächste Schritte

Ich hoffe, dass Sie nach diesem Instructable ein besseres Verständnis dafür haben, wie Arduino-Bibliotheken funktionieren, wie Sie eine erstellen können und vor allem hoffe ich, dass Sie inspiriert werden, an Ihrer nächsten großen Idee zu arbeiten.

Bei weiteren Fragen oder Anregungen können Sie sich gerne in die Kommentare schreiben, meinen YouTube-Kanal abonnieren und mir hier auf Instructables folgen.

Empfohlen: