- Composants requis
- Brève introduction au Li-Fi
- Section émetteur Li-Fi utilisant Arduino
- Section récepteur Li-Fi utilisant Arduino
- Codage Arduino pour Li-Fi
Li-Fi (Light Fidelity) est une technologie avancée qui permet de transférer des données en utilisant une communication optique telle que la lumière visible. Les données Li-Fi peuvent traverser la lumière puis être interprétées du côté du récepteur à l'aide de tout appareil sensible à la lumière comme le LDR ou la photodiode. La communication Li-Fi peut être 100 fois plus rapide que le Wi-Fi.
Ici, dans ce projet, nous allons démontrer la communication Li-Fi en utilisant deux Arduino. Ici, les données textuelles sont transmises à l'aide du clavier LED et 4x4. Et il est décodé côté récepteur en utilisant LDR. Nous avons précédemment expliqué le Li-Fi en détail et utilisé le Li-Fi pour transférer des signaux audio.
Composants requis
- Arduino UNO
- Capteur LDR
- Clavier 4 * 4
- LCD alphanumérique 16 * 2
- Module d'interface I2C pour LCD
- Planche à pain
- Connexion des cavaliers
- LED de 5 mm
Brève introduction au Li-Fi
Comme indiqué ci-dessus, le Li-Fi est une technologie de communication avancée qui peut être 100 fois plus rapide que la communication Wi-Fi. Grâce à cette technologie, les données peuvent être transférées à l'aide de sources de lumière visible. Imaginez, si vous pouvez accéder à Internet haut débit en utilisant simplement votre source de lumière. N'est-ce pas très intéressant?
Li-Fi utilise la lumière visible comme moyen de communication pour la transmission de données. Une LED peut agir comme une source lumineuse et la photodiode agit comme un émetteur-récepteur qui reçoit les signaux lumineux et les retransmet. En contrôlant l'impulsion lumineuse côté émetteur, nous pouvons envoyer des modèles de données uniques. Ce phénomène se produit à une vitesse extrêmement élevée et ne peut pas être vu à travers l'œil humain. Ensuite, côté récepteur, la photodiode ou la résistance dépendante de la lumière (LDR) convertit les données en informations utiles.
Section émetteur Li-Fi utilisant Arduino
Comme le montre la figure ci-dessus, dans la partie émetteur de la communication Li-Fi, le clavier est utilisé ici comme entrée. Cela signifie que nous sélectionnerons le texte à transmettre à l'aide du clavier. Ensuite, les informations sont traitées par l'unité de contrôle qui n'est rien d'autre qu'Arduino dans notre cas. Arduino convertit les informations en impulsions binaires qui peuvent être transmises à une source LED pour transmission. Ensuite, ces données sont transmises à la lumière LED qui envoie les impulsions de lumière visible du côté du récepteur.
Schéma de circuit de la section émetteur:
Configuration matérielle côté émetteur:
Section récepteur Li-Fi utilisant Arduino
Dans la section du récepteur, le capteur LDR reçoit les impulsions de lumière visible du côté de l'émetteur et les convertit en impulsions électriques interprétables, qui sont transmises à l'Arduino (unité de contrôle). Arduino reçoit cette impulsion et la convertit en données réelles et l'affiche sur un écran LCD 16x2.
Schéma de circuit de la section récepteur:
Configuration matérielle côté récepteur:
Codage Arduino pour Li-Fi
Comme indiqué ci-dessus, nous avons deux sections pour l'émetteur et le récepteur Li-Fi. Les codes complets pour chaque section sont donnés au bas du tutoriel et une explication étape par étape des codes est donnée ci-dessous:
Code de l'émetteur Li-Fi Arduino:
Du côté de l'émetteur, Arduino Nano est utilisé avec un clavier 4x4 et une LED. Tout d'abord, tous les fichiers de bibliothèque dépendants sont téléchargés et installés sur Arduino via Arduino IDE. Ici, la bibliothèque Keypad est utilisée pour utiliser le clavier 4 * 4 qui peut être téléchargé à partir de ce lien. En savoir plus sur l'interfaçage du clavier 4x4 avec Arduino ici.
#comprendre
Après l'installation réussie des fichiers de bibliothèque, définissez le no. de lignes et de valeurs de colonne qui est de 4 pour les deux car nous avons utilisé un clavier 4 * 4 ici.
octet const ROW = 4; octet de const COL = 4; char keyscode = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', ' 9 ',' C '}, {' * ',' 0 ',' # ',' D '} };
Ensuite, les broches Arduino sont définies qui sont utilisées pour s'interfacer avec le clavier 4 * 4. Dans notre cas, nous avons utilisé respectivement A5, A4, A3 et A2 pour R1, R2, R3, R4 et A1, A0, 12, 11 pour C1, C2, C3 et C4.
octet rowPin = {A5, A4, A3, A2}; octet colPin = {A1, A0, 12, 11}; Keypad customKeypad = Clavier (makeKeymap (code clé), rowPin, colPin, ROW, COL);
Dans setup (), la broche de sortie est définie, là où la source LED est connectée. De plus, il reste désactivé lors de la mise sous tension de l'appareil.
void setup () { pinMode (8, OUTPUT); digitalWrite (8, FAIBLE); }
A l' intérieur tandis que la boucle, les valeurs reçues à partir du clavier sont lues en utilisant customKeypad.getKey () et il est comparé dans le if-else boucle, pour générer des impulsions uniques dans chaque touches. On peut voir dans le code que les intervalles de minuterie sont maintenus uniques pour toutes les valeurs de clé.
char customKey = customKeypad.getKey (); if (customKey) { if (customKey == '1') { digitalWrite (8, HIGH); retard (10); digitalWrite (8, FAIBLE); }
Code du récepteur Arduino Li-Fi:
Côté récepteur Li-Fi, Arduino UNO est interfacé avec un capteur LDR comme indiqué sur le schéma de circuit. Ici, le capteur LDR est connecté en série avec une résistance pour former un circuit diviseur de tension et la sortie de tension analogique du capteur est envoyée à Arduino en tant que signal d'entrée. Ici, nous utilisons un module I2C avec LCD pour réduire non. de connexions avec Arduino car ce module ne nécessite que 2 broches de données SCL / SDA et 2 broches d'alimentation.
Démarrez le code en incluant tous les fichiers de bibliothèque requis dans le code comme Wire.h pour la communication I2C, LiquidCrystal_I2C.h pour LCD, etc. Ces bibliothèques seraient préinstallées avec Arduino, il n'est donc pas nécessaire de les télécharger.
#comprendre
Pour utiliser le module I2C pour LCD alphanumérique 16 * 2, configurez-le à l'aide de la classe LiquidCrystal_I2C . Ici, nous devons transmettre l'adresse, la ligne et le numéro de colonne qui sont respectivement 0x3f, 16 et 2 dans notre cas.
LCD LiquidCrystal_I2C (0x3f, 16, 2);
Dans setup (), déclarez la broche d'entrée d'impulsion pour recevoir le signal. Imprimez ensuite un message de bienvenue sur l'écran LCD qui s'affichera lors de l'initialisation du projet.
void setup () { pinMode (8, INPUT); Serial.begin (9600); lcd.init (); LCD rétro-éclairage(); lcd.setCursor (0, 0); lcd.print ("BIENVENUE SUR"); lcd.setCursor (0, 1); lcd.print ("CIRCUIT DIGEST"); retard (2000); lcd.clear (); }
A l' intérieur du tout en boucle, la durée d'entrée d'impulsion de LDR est calculée en utilisant pulseIn fonction et le type d'impulsion est définie qui est faible dans notre cas. La valeur est imprimée sur le moniteur série à des fins de débogage. Il est suggéré de vérifier la durée, car elle peut être différente pour différentes configurations.
non signé longue durée = pulseIn (8, HIGH); Serial.println (durée);
Après avoir vérifié les durées de toutes les impulsions de l'émetteur, nous avons maintenant 16 plages de durée d'impulsion, qui sont notées pour référence. Maintenant, comparez-les en utilisant une boucle IF-ELSE pour obtenir les données exactes qui ont été transmises. Un exemple de boucle pour la clé 1 est donné ci-dessous:
if (durée> 10000 && durée <17000) { lcd.setCursor (0, 0); lcd.print ("Reçu: 1"); }
Émetteur et récepteur Li-Fi utilisant Arduino
Après avoir téléchargé le code complet dans les deux Arduinos, appuyez sur n'importe quel bouton du clavier du côté du récepteur et le même chiffre sera affiché sur l'écran LCD 16x2 du côté du récepteur.
C'est ainsi que le Li-Fi peut être utilisé pour transmettre des données à travers la lumière. J'espère que vous avez apprécié l'article et en avez appris quelque chose de nouveau, si vous avez le moindre doute, vous pouvez utiliser la section commentaires ou demander dans les forums.