Inhaltsverzeichnis:

Speichern und Wiederherstellen von voreingestellten Werten mit NFC (TfCD) - Gunook
Speichern und Wiederherstellen von voreingestellten Werten mit NFC (TfCD) - Gunook

Video: Speichern und Wiederherstellen von voreingestellten Werten mit NFC (TfCD) - Gunook

Video: Speichern und Wiederherstellen von voreingestellten Werten mit NFC (TfCD) - Gunook
Video: Neues SAMSUNG-Handy? Ändert DIESE Einstellungen! 2024, Juli
Anonim
Image
Image
Material sammeln
Material sammeln

Wir möchten testen, wie es funktioniert, einen bestimmten Wert oder eine bestimmte Einstellung anzupassen und diese Einstellung später wieder aufzurufen. Für dieses Experiment haben wir ein NFC-Tag verwendet, um den Wert darauf zu lesen und dann zu speichern. Später kann das Tag erneut gescannt und der Wert zurückgesendet werden, um eine bestimmte Einstellung wiederherzustellen. Um die Interaktion zu simulieren, haben wir einen Arduino Uno als Controller und einen RGB-LED-Ring als einstellbaren Teil verwendet. Mit einem Potentiometer kann der RGB-Farbton eingestellt werden. Die Kommunikation zwischen Arduino und NFC-Tag wurde mit einem NFC-Shield aufgebaut.

(Dieses Projekt war eine Übung für die TU Delft, Integrated Product Design, Kurs: TfCD)

Schritt 1: Material sammeln

Für dieses Projekt haben wir folgendes Material verwendet:

- Arduino uno- NFC Shield & Tag (https://www.elecrow.com/wiki/index.php?title=NFC_Shield)- Mokugi t-WS2812B-8LED- Potentiometer (10 3B 42 5V) - Schalter- 10K Ohm Widerstand - (Steckbrett)

Schritt 2: Verwenden Sie das Potentiometer, um die RGB-LED einzustellen

Verwenden Sie das Potentiometer, um die RGB-LED einzustellen
Verwenden Sie das Potentiometer, um die RGB-LED einzustellen
Verwenden Sie das Potentiometer, um die RGB-LED einzustellen
Verwenden Sie das Potentiometer, um die RGB-LED einzustellen

Stellen Sie zunächst sicher, dass die LED, mit der Sie arbeiten, funktioniert, indem Sie einen anderen Testcode ausführen. Dann können Sie das Potentiometer anschließen, um das RGB der LED einzustellen. Bauen Sie dazu die Schaltung wie im Bild gezeigt auf. An Strom (5V) und Masse anschließen und das Potentiometer an Pin A0 anschließen.

Wenn Sie das Modell vergrößern und später mehrere verschiedene Werte speichern möchten, können Sie in diesem Schritt bereits weitere Potentiometer verwenden.

Der Code für diesen Test ist ebenfalls beigefügt. Damit der Code funktioniert, müssen Sie die Bibliothek Adafruit_NeoPixel.h herunterladen.

Wir mischen den Farbton der RGB-LED wie folgt: Wir haben uns dafür entschieden, Rot kontinuierlich eingeschaltet zu lassen und ihn durch Einmischen von Blau in Richtung Lila anzupassen. Wenn das Potentiometer hoch ist, ist Blau vollständig an, wenn es niedrig ist, ist Blau aus wir bilden den Messwert des Potmeters ab:

Void ReadPot () {val = analogRead (Pot); val = map(val, 0, 1023, 0, 255);

Um eine Drift des Eingangswertes des Potentiometers zu vermeiden, ändern wir den neuen Wert der blauen LED nur, wenn die Differenz zwischen aktuellem und vorherigem Potentiometer groß genug ist:

int diff = abs(val-oldVal);

if (diff > TOLERANZ) { ChangeLED();

Schritt 3: Integrieren Sie NFC

Integrieren Sie NFC
Integrieren Sie NFC
Integrieren Sie NFC
Integrieren Sie NFC

Der nächste Schritt ist die Integration des NFC. Verbinden Sie zuerst das NFC-Schild mit dem Arduino.

Fügen Sie auch den Schalter wie auf den Fotos gezeigt hinzu. Mit dem Schalter wird zwischen Lesen und Schreiben des NFC-Tags gewechselt.

Laden Sie die Bibliothek PN532.h für das NFC-Shield herunter. Der angehängte Code ist eine Anpassung der in der Bibliothek bereitgestellten Beispielcodes. Es wird so verändert, dass der RGB-Wert der LED übertragen wird.

Sie können auch mit den beiden separat angebrachten Codes zunächst nur das Lesen oder das Schreiben testen.

Erklärung finaler Code

Zuerst werden alle verwendeten Variablen initialisiert.

Dann wird im void-Setup die nfc-Verbindung aufgebaut.

Die Void-Schleife beginnt mit dem Lesen des Zustands des Schalters.

Fall 0 ist, wenn der Schaltflächenzustand HIGH ist. In diesem Fall wird zuerst die Funktion Reading() aufgerufen. Damit wird der in Block 8 des NFC-Tags gespeicherte RGB-Wert an der ersten Stelle des Arrays gelesen (Blue = block[0];). Dann wird die Funktion ChangeLEDRead() aufgerufen, die den Farbton der LED auf den Wert ändert, der gerade aus dem NFC-Tag gelesen wurde.

Fall 1 ist, wenn der Schaltflächenzustand LOW ist. In diesem Fall wird zuerst die Funktion ReadPot() aufgerufen, was bedeutet, dass Sie nun mit dem Potentiometer den Farbton der LEDs manuell einstellen können. Dieser Eingang vom Potmeter wird dann auf einen Wert zwischen 0 und 255 abgebildet. Die Funktion ChangeLEDPot() steuert dann die LED-Farbe mit dem Eingang vom Potmeter. In diesem Fall wird auch die Funktion Writing() aufgerufen. Dadurch wird sichergestellt, dass, sobald ein NFC-Tag in der Nähe des Schildes platziert wird, der aktuelle Wert von Blau an erster Stelle von Block 8 darauf geschrieben wird.

Schritt 4: Mögliche Anpassungen

Das gleiche Prinzip könnte auch in anderen Fällen verwendet werden und ist nicht nur auf NFC beschränkt. Es gibt viele mögliche Implementierungen, bei denen Sie bestimmte Werte nach Ihren Wünschen anpassen, speichern und Ihre persönlichen Einstellungen dann zu einem späteren Zeitpunkt wieder wiederherstellen möchten.

Denken Sie zum Beispiel an einen gemeinsamen Arbeitsplatz, an dem Sie Stuhlhöhe, Rückenlehnenwinkel und Tischhöhe nach Ihren persönlichen Vorlieben einstellen. Sie speichern Ihre Präferenz, indem Sie schnell mit einem NFC-Tag scannen. Wenn Sie an einem anderen Tag wiederkommen, scannen Sie Ihren Tag erneut und der Arbeitsplatz ändert sich auf Ihre Einstellungen.

Anstelle eines NFC-Chips können Sie auch Ihr Smartphone verwenden. Als Schnittstelle kann eine spezielle Anwendung oder Website verwendet werden.

Eine andere Implementierung könnte beispielsweise darin bestehen, einen Fingerabdruck zu scannen, anstatt das NFC-Tag zu scannen. Der Fingerabdruck kann dann mit einem bestimmten Benutzerprofil verknüpft werden, in dem Einstellungen gespeichert werden.

Empfohlen: