- Tarvittavat komponentit
- Lyhyt esittely Li-Fi: stä
- Li-Fi-lähetinosa Arduinoa käyttämällä
- Li-Fi-vastaanotinosa Arduinoa käyttämällä
- Arduino Li-Fi -koodaus
Li-Fi (Light Fidelity) on edistynyt tekniikka, jonka avulla tietoja voidaan siirtää optisen tiedonsiirron, kuten näkyvän valon, avulla. Li-Fi-data voi kulkea valon läpi ja tulkita sitten vastaanottimen puolella millä tahansa valolle herkällä laitteella, kuten LDR: llä tai valodiodilla. Li-Fi-tiedonsiirto voi olla 100 kertaa nopeampaa kuin Wi-Fi.
Tässä projektissa esittelemme Li-Fi-viestintää kahdella Arduinolla. Tässä tekstidata lähetetään LEDillä ja 4x4-näppäimistöllä. Ja se dekoodataan vastaanottimen puolella LDR: n avulla. Selitimme aiemmin Li-Fiä yksityiskohtaisesti ja käytimme Li-Fiä äänisignaalien siirtämiseen.
Tarvittavat komponentit
- Arduino UNO
- LDR-anturi
- 4 * 4 näppäimistö
- 16 * 2 aakkosnumeerinen LCD-näyttö
- I2C-liitäntämoduuli LCD-näyttöä varten
- Leipälauta
- Puseroiden liittäminen
- 5 mm: n LED
Lyhyt esittely Li-Fi: stä
Kuten edellä todettiin, Li-Fi on edistynyt viestintätekniikka, joka voi olla 100 kertaa nopeampi kuin Wi-Fi-tiedonsiirto. Tätä tekniikkaa käyttämällä tietoja voidaan siirtää näkyvien valonlähteiden avulla. Kuvittele, jos voit käyttää nopeaa internetiä vain käyttämällä valonlähdettäsi. Eikö se näytä kovin mielenkiintoiselta?
Li-Fi käyttää näkyvää valoa tiedonsiirtovälineenä tiedonsiirtoon. LED voi toimia valonlähteenä ja fotodiodi toimii lähetin-vastaanottimena, joka vastaanottaa valosignaaleja ja lähettää ne takaisin. Ohjaamalla valopulssia lähettimen puolella voimme lähettää ainutlaatuisia datakuvioita. Tämä ilmiö tapahtuu erittäin suurella nopeudella, eikä sitä voida nähdä ihmissilmän läpi. Sitten vastaanottimen puolella fotodiodi tai valosta riippuva vastus (LDR) muuntaa tiedot hyödylliseksi informaatioksi.
Li-Fi-lähetinosa Arduinoa käyttämällä
Kuten yllä olevassa kuvassa on esitetty, Li-Fi-tiedonsiirron lähetinosassa tässä käytetään näppäimistöä. Tämä tarkoittaa, että valitsemme lähetettävän tekstin näppäimistöllä. Sitten ohjausyksikkö käsittelee tietoja, mikä ei ole mitään muuta kuin tapauksessamme Arduino. Arduino muuntaa tiedot binaaripulsseiksi, jotka voidaan syöttää LED-lähteeseen lähetystä varten. Sitten nämä tiedot syötetään LED-valoon, joka lähettää näkyvät valopulssit vastaanottimen puolelle.
Lähetinosan piirikaavio:
Laitteen asetukset lähettimen puolelle:
Li-Fi-vastaanotinosa Arduinoa käyttämällä
Vastaanotinosassa LDR-anturi vastaanottaa näkyvän valon pulssit lähettimen puolelta ja muuntaa sen tulkittaviksi sähköpulsseiksi, jotka syötetään Arduinoon (ohjausyksikkö). Arduino vastaanottaa tämän pulssin ja muuntaa sen todellisiksi tiedoiksi ja näyttää sen 16x2 LCD-näytöllä.
Vastaanotinosan piirikaavio:
Laitteen asetukset vastaanottimen puolelle:
Arduino Li-Fi -koodaus
Kuten yllä on esitetty, meillä on kaksi osaa Li-Fi-lähettimelle ja -vastaanottimelle. Kunkin osan täydelliset koodit annetaan opetusohjelman alaosassa ja vaiheittainen selitys koodeista annetaan alla:
Arduino Li-Fi -lähettimen koodi:
Lähettimen puolella Arduino nanoa käytetään 4x4-näppäimistön ja LED-valojen kanssa. Ensinnäkin kaikki riippuvaiset kirjastotiedostot ladataan ja asennetaan Arduinoon Arduino IDE: n kautta. Tässä Näppäimistö-kirjastoa käytetään 4 * 4 -näppäimistön käyttämiseen, jotka voidaan ladata tältä linkiltä. Lisätietoja 4x4-näppäimistön liittämisestä Arduinoon on täällä.
#sisältää
Kun olet asentanut kirjastotiedostot onnistuneesti, määritä no. rivien ja sarakkeiden arvoista, mikä on 4 molemmille, koska olemme käyttäneet 4 * 4 -näppäimistöä tässä.
vakiotavu ROW = 4; vakiotavu COL = 4; char avainkoodi = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', ' 9 ',' C '}, {' * ',' 0 ',' # ',' D '} };
Sitten määritetään Arduino-nastat, joita käytetään 4 * 4 -näppäimistön kanssa. Meidän tapauksessamme olemme käyttäneet A5, A4, A3 ja A2 ryhmille R1, R2, R3, R4 ja A1, A0, 12, 11 C1, C2, C3 ja C4 vastaavasti.
tavuriviPin = {A5, A4, A3, A2}; tavu colPin = {A1, A0, 12, 11}; Näppäimistö customKeypad = Näppäimistö (makeKeymap (avainkoodi), rowPin, colPin, ROW, COL);
Asennuksen sisällä () määritetään lähtötappi, johon LED-lähde on kytketty. Lisäksi se pidetään POIS PÄÄLTÄ, kun laitteeseen kytketään virta.
void setup () { pinMode (8, OUTPUT); digitalWrite (8, LOW); }
Inside while -silmukassa näppäimistöltä vastaanotetut arvot luetaan customKeypad.getKey () -toiminnolla ja sitä verrataan if-else -silmukassa , jotta kullekin näppäimen painallukselle saadaan ainutlaatuiset pulssit. Koodista voidaan nähdä, että ajastinvälit pidetään ainutlaatuisina kaikille avainarvoille.
char customKey = customKeypad.getKey (); if (customKey) { if (customKey == '1') { digitalWrite (8, HIGH); viive (10); digitalWrite (8, LOW); }
Arduino Li-Fi -vastaanottimen koodi:
Li-Fi-vastaanottimen puolella Arduino UNO on liitetty LDR-anturiin kytkentäkaavion mukaisesti. Tässä LDR-anturi kytketään sarjaan vastuksen kanssa jännitteenjakajan piirin muodostamiseksi ja anturin analoginen jännite syötetään Arduinoon tulosignaalina. Tässä käytämme I2C-moduulia, jossa on LCD-näyttö. yhteyksiä Arduinoon, koska tämä moduuli vaatii vain 2 datanasta SCL / SDA ja 2 virtaliitintä.
Aloita koodi sisällyttämällä kaikki vaaditut kirjastotiedostot koodiin, kuten Wire.h I2C-viestintään, LiquidCrystal_I2C.h LCD- näyttöön jne. Nämä kirjastot olisi esiasennettu Arduinoon, joten niitä ei tarvitse ladata.
#sisältää
Määritä I2C-moduuli 16 * 2 aakkosnumeeriselle LCD- näytölle käyttämällä LiquidCrystal_I2C- luokkaa. Tässä meidän on välitettävä osoite, rivi ja sarakkeen numero, jotka ovat tapauksessamme vastaavasti 0x3f, 16 ja 2.
LiquidCrystal_I2C lcd (0x3f, 16, 2);
Määritä asennuksen () sisällä pulssitulotappi signaalin vastaanottamiseksi. Tulosta sitten tervetuloviesti nestekidenäytölle, joka näkyy projektin alustamisen aikana.
void setup () { pinMode (8, INPUT); Sarjan alku (9600); lcd.init (); lcd.taustavalo (); lcd.setCursor (0, 0); lcd.print ("TERVETULOA"); lcd.setCursor (0, 1); lcd.print ("CIRCUIT DIGEST"); viive (2000); lcd.clear (); }
Sisällä , kun taas silmukka, pulssitulolle kestoa LDR lasketaan pulseIn toiminto, ja tyyppi pulssi on määritelty, joka on LOW meidän tapauksessa. Arvo tulostetaan sarjamonitoriin virheenkorjausta varten. On suositeltavaa tarkistaa kesto, koska se voi olla erilainen eri asetuksissa.
allekirjoittamaton pitkä kesto = pulssi (8, HIGH); Serial.println (kesto);
Kun olemme tarkistaneet kaikkien lähettimen pulssien kestot, meillä on nyt 16 pulssin kestoaluetta, jotka merkitään muistiin viitteeksi. Vertaa nyt niitä IF-ELSE- silmukan avulla saadaksesi tarkat tiedot, jotka on lähetetty. Yksi näytesilmukka avaimelle 1 on annettu alla:
if (kesto> 10000 && kesto <17000) { lcd.setCursor (0, 0); lcd.print ("Vastaanotettu: 1"); }
Li-Fi-lähetin ja vastaanotin Arduinoa käyttämällä
Kun olet ladannut täydellisen koodin molempiin Arduinosiin, paina mitä tahansa näppäimistön näppäintä vastaanottimen puolella, ja sama numero näkyy vastaanottimen puolella olevassa 16x2-nestekidenäytössä.
Näin Li-Fiä voidaan käyttää tiedon lähettämiseen valon kautta. Toivottavasti pidit artikkelista ja opit siitä jotain uutta. Jos sinulla on epäilyksiä, voit käyttää kommenttiosaa tai kysyä foorumeilla.