- Erforderliche Komponenten
- Kurze Einführung in Li-Fi
- Li-Fi Transmitter Section mit Arduino
- Li-Fi-Empfänger-Bereich mit Arduino
- Arduino-Codierung für Li-Fi
Li-Fi (Light Fidelity) ist eine fortschrittliche Technologie, die die Übertragung von Daten mithilfe optischer Kommunikation wie sichtbarem Licht ermöglicht. Li-Fi-Daten können durch das Licht übertragen und dann auf der Empfängerseite mit jedem lichtempfindlichen Gerät wie LDR oder Fotodiode interpretiert werden. Die Li-Fi-Kommunikation kann 100-mal schneller sein als die Wi-Fi-Kommunikation.
Hier in diesem Projekt werden wir die Li-Fi-Kommunikation mit zwei Arduino demonstrieren. Hier werden die Textdaten über LED und 4x4-Tastatur übertragen. Und es wird empfängerseitig mit LDR dekodiert. Wir haben Li-Fi zuvor ausführlich erklärt und Li-Fi zur Übertragung von Audiosignalen verwendet.
Erforderliche Komponenten
- Arduino UNO
- LDR-Sensor
- 4 * 4 Tastatur
- 16 * 2 Alphanumerisches LCD
- I2C-Schnittstellenmodul für LCD
- Steckbrett
- Jumper anschließen
- 5 mm LED
Kurze Einführung in Li-Fi
Wie oben erläutert, ist Li-Fi eine fortschrittliche Kommunikationstechnologie, die 100-mal schneller sein kann als die Wi-Fi-Kommunikation. Mit dieser Technologie können die Daten mit sichtbaren Lichtquellen übertragen werden. Stellen Sie sich vor, Sie können mit Ihrer Lichtquelle auf das Hochgeschwindigkeitsinternet zugreifen. Ist es nicht sehr interessant?
Li-Fi verwendet sichtbares Licht als Kommunikationsmedium für die Datenübertragung. Eine LED kann als Lichtquelle fungieren und die Fotodiode fungiert als Transceiver, der Lichtsignale empfängt und zurücksendet. Durch Steuern des Lichtimpulses auf der Senderseite können wir eindeutige Datenmuster senden. Dieses Phänomen tritt mit extrem hoher Geschwindigkeit auf und kann mit dem menschlichen Auge nicht gesehen werden. Auf der Empfängerseite wandelt die Fotodiode oder der lichtabhängige Widerstand (LDR) die Daten in nützliche Informationen um.
Li-Fi Transmitter Section mit Arduino
Wie in der obigen Abbildung gezeigt, wird im Senderteil der Li-Fi-Kommunikation hier die Tastatur als Eingabe verwendet. Das heißt, wir wählen den zu übertragenden Text über die Tastatur aus. Dann werden die Informationen von der Steuereinheit verarbeitet, die in unserem Fall nichts als Arduino ist. Arduino wandelt die Informationen in Binärimpulse um, die zur Übertragung einer LED-Quelle zugeführt werden können. Diese Daten werden dann dem LED-Licht zugeführt, das die sichtbaren Lichtimpulse an die Empfängerseite sendet.
Schaltplan des Senderabschnitts:
Hardware-Setup für die Senderseite:
Li-Fi-Empfänger-Bereich mit Arduino
Im Empfängerbereich empfängt der LDR-Sensor die Impulse des sichtbaren Lichts von der Senderseite und wandelt sie in interpretierbare elektrische Impulse um, die dem Arduino (Steuereinheit) zugeführt werden. Arduino empfängt diesen Impuls und wandelt ihn in tatsächliche Daten um und zeigt ihn auf einem 16x2-LCD-Display an.
Schaltplan des Empfängerabschnitts:
Hardware-Setup für die Empfängerseite:
Arduino-Codierung für Li-Fi
Wie oben gezeigt, haben wir zwei Abschnitte für Li-Fi-Sender und -Empfänger. Die vollständigen Codes für jeden Abschnitt finden Sie am Ende des Tutorials. Eine schrittweise Erläuterung der Codes finden Sie unten:
Arduino Li-Fi-Sendercode:
Auf der Senderseite wird Arduino Nano mit 4x4-Tastatur und LED verwendet. Zunächst werden alle abhängigen Bibliotheksdateien heruntergeladen und über die Arduino IDE auf Arduino installiert. Hier wird die Tastaturbibliothek für die Verwendung der 4 * 4-Tastatur verwendet, die über diesen Link heruntergeladen werden kann. Weitere Informationen zur Anbindung der 4x4-Tastatur an Arduino finden Sie hier.
#einschließen
Definieren Sie nach der erfolgreichen Installation der Bibliotheksdateien die Nr. von Zeilen- und Spaltenwerten, was für beide 4 ist, da wir hier eine 4 * 4-Tastatur verwendet haben.
const byte ROW = 4; const byte COL = 4; char keyscode = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', ' 9 ',' C '}, {' * ',' 0 ',' # ',' D '} };
Anschließend werden die Arduino-Pins definiert, die zur Verbindung mit der 4 * 4-Tastatur verwendet werden. In unserem Fall haben wir A5, A4, A3 und A2 für R1, R2, R3, R4 und A1, A0, 12, 11 für C1, C2, C3 bzw. C4 verwendet.
Byte rowPin = {A5, A4, A3, A2}; Byte colPin = {A1, A0, 12, 11}; Tastatur customKeypad = Tastatur (makeKeymap (Schlüsselcode), rowPin, colPin, ROW, COL);
In setup () wird der Ausgangspin definiert, an dem die LED-Quelle angeschlossen ist. Außerdem bleibt es beim Einschalten des Geräts ausgeschaltet.
void setup () { pinMode (8, OUTPUT); digitalWrite (8, LOW); }}
Innerhalb der while- Schleife werden die von der Tastatur empfangenen Werte mit customKeypad.getKey () gelesen und in der if-else- Schleife verglichen, um bei jedem Tastendruck eindeutige Impulse zu erzeugen. Im Code ist zu sehen, dass die Timer-Intervalle für alle Schlüsselwerte eindeutig bleiben.
char customKey = customKeypad.getKey (); if (customKey) { if (customKey == '1') { digitalWrite (8, HIGH); Verzögerung (10); digitalWrite (8, LOW); }}
Arduino Li-Fi-Empfängercode:
Auf der Li-Fi-Empfängerseite ist Arduino UNO mit einem LDR-Sensor verbunden, wie im Schaltplan gezeigt. Hier ist der LDR-Sensor mit einem Widerstand in Reihe geschaltet, um eine Spannungsteilerschaltung zu bilden, und der vom Sensor ausgegebene analoge Spannungswert wird als Eingangssignal an Arduino weitergeleitet. Hier verwenden wir ein I2C-Modul mit LCD, um Nr. Zu reduzieren. Für Verbindungen mit Arduino sind für dieses Modul nur 2 Datenpins SCL / SDA und 2 Powerpins erforderlich.
Starten Sie den Code, indem Sie alle erforderlichen Bibliotheksdateien wie Wire.h für die I2C-Kommunikation, LiquidCrystal_I2C.h für LCD usw. in den Code aufnehmen . Diese Bibliotheken sind mit Arduino vorinstalliert, sodass sie nicht heruntergeladen werden müssen.
#einschließen
Konfigurieren Sie das I2C-Modul für 16 * 2 Alphanumeric LCD mithilfe der LiquidCrystal_I2C- Klasse. Hier müssen wir die Adresse, Zeile und Spaltennummer übergeben, die in unserem Fall 0x3f, 16 und 2 sind.
LiquidCrystal_I2C lcd (0x3f, 16, 2);
Deklarieren Sie in setup () den Impulseingangspin für den Empfang des Signals. Drucken Sie dann eine Begrüßungsnachricht auf das LCD, die während der Initialisierung des Projekts angezeigt wird.
void setup () { pinMode (8, INPUT); Serial.begin (9600); lcd.init (); LCD-Rücklicht(); lcd.setCursor (0, 0); lcd.print ("WILLKOMMEN BEI"); lcd.setCursor (0, 1); lcd.print ("CIRCUIT DIGEST"); Verzögerung (2000); lcd.clear (); }}
Innerhalb der while- Schleife wird die Impulseingangsdauer von LDR unter Verwendung der Impuls-In- Funktion berechnet und der Impulstyp definiert, der in unserem Fall NIEDRIG ist. Der Wert wird zu Debugging-Zwecken auf dem seriellen Monitor gedruckt. Es wird empfohlen, die Dauer zu überprüfen, da sie für verschiedene Setups unterschiedlich sein kann.
vorzeichenlose lange Dauer = pulsIn (8, HOCH); Serial.println (Dauer);
Nachdem wir die Dauer für alle Senderimpulse überprüft haben, haben wir jetzt 16 Impulsdauerbereiche, die als Referenz notiert werden. Vergleichen Sie sie nun mit einer IF-ELSE- Schleife, um die genauen Daten zu erhalten, die übertragen wurden. Eine Beispielschleife für Schlüssel 1 ist unten angegeben:
if (Dauer> 10000 && Dauer <17000) { lcd.setCursor (0, 0); lcd.print ("Received: 1"); }}
Li-Fi-Sender und -Empfänger mit Arduino
Nachdem Sie den vollständigen Code in beide Arduinos hochgeladen haben, drücken Sie eine beliebige Taste auf der Tastatur auf der Empfängerseite. Die gleiche Ziffer wird auf dem 16x2-LCD auf der Empfängerseite angezeigt.
Auf diese Weise kann Li-Fi verwendet werden, um Daten durch Licht zu übertragen. Ich hoffe, Ihnen hat der Artikel gefallen und Sie haben etwas Neues daraus gelernt. Wenn Sie Zweifel haben, können Sie den Kommentarbereich verwenden oder in Foren nachfragen.