- Kinakailangan ang Mga Bahagi
- Maikling Panimula sa Li-Fi
- Li-Fi Transmitter Seksyon gamit ang Arduino
- Seksyon ng Tagatanggap ng Li-Fi gamit ang Arduino
- Ang Arduino Coding Para sa Li-Fi
Ang Li-Fi (Light Fidelity) ay isang advanced na teknolohiya na nagbibigay-daan sa paglilipat ng data gamit ang optikong komunikasyon tulad ng nakikitang ilaw. Ang data ng Li-Fi ay maaaring maglakbay sa pamamagitan ng ilaw at pagkatapos ay bigyang kahulugan sa panig ng tatanggap gamit ang anumang aparatong sensitibo sa ilaw tulad ng LDR o photodiode. Ang komunikasyon ng Li-Fi ay maaaring 100 beses na mas mabilis kaysa sa Wi-Fi.
Dito sa proyektong ito, ipapakita namin ang komunikasyon ng Li-Fi gamit ang dalawang Arduino. Dito ipinapadala ang data ng teksto gamit ang LED at 4x4 keypad. At ito ay nai-decode sa panig ng tatanggap gamit ang LDR. Nauna naming ipinaliwanag ang Li-Fi nang detalyado at ginamit ang Li-Fi upang ilipat ang mga audio signal.
Kinakailangan ang Mga Bahagi
- Arduino UNO
- LDR Sensor
- 4 * 4 Keypad
- 16 * 2 Alphanumeric LCD
- I2C Interface module para sa LCD
- Breadboard
- Kumokonekta sa Mga Jumper
- 5 mm LED
Maikling Panimula sa Li-Fi
Tulad ng tinalakay sa itaas, ang Li-Fi ay isang advanced na teknolohiya ng komunikasyon na maaaring 100 beses na mas mabilis kaysa sa komunikasyon sa Wi-Fi. Gamit ang teknolohiyang ito, maaaring mailipat ang data gamit ang nakikitang mga mapagkukunan ng ilaw. Isipin, kung maaari kang mag-access sa high-speed internet sa pamamagitan lamang ng paggamit ng iyong light source. Hindi ba ito kawili-wili?
Gumagamit ang Li-Fi ng nakikitang ilaw bilang isang medium ng komunikasyon para sa paghahatid ng data. Ang isang LED ay maaaring kumilos bilang isang mapagkukunan ng ilaw at ang photodiode ay gumaganap bilang isang transceiver na tumatanggap ng mga light signal at inililipat ang mga ito pabalik. Sa pamamagitan ng Pagkontrol sa light pulse sa panig ng transmitter, maaari kaming magpadala ng mga natatanging pattern ng data. Ang kababalaghang ito ay nangyayari sa sobrang bilis at hindi makikita ng mata ng tao. Pagkatapos sa panig ng tatanggap, ang photodiode o Light-depend resistor (LDR) ay nagko-convert ng data sa kapaki-pakinabang na impormasyon.
Li-Fi Transmitter Seksyon gamit ang Arduino
Tulad ng ipinakita sa figure sa itaas, sa bahagi ng transmiter ng komunikasyon ng Li-Fi, ang keypad ay ginagamit bilang input dito. Nangangahulugan iyon na pipiliin namin ang teksto na ililipat gamit ang keypad. Pagkatapos ang impormasyon ay naproseso ng control unit na walang iba kundi ang Arduino sa aming kaso. Ang Arduino ay nagko-convert ng impormasyon sa binary pulses na maaaring pakainin sa isang LED na mapagkukunan para sa paghahatid. Pagkatapos ang data na ito ay pinakain sa ilaw na LED na nagpapadala ng mga nakikitang pulso ng ilaw sa panig ng tatanggap.
Diagram ng Circuit ng Seksyon ng Transmitter:
Pag-setup ng Hardware para sa Transmitter Side:
Seksyon ng Tagatanggap ng Li-Fi gamit ang Arduino
Sa seksyon ng tatanggap, ang sensor ng LDR ay tumatanggap ng mga nakikitang pulso ng ilaw mula sa panig ng transmiter at pinapalitan ito sa naisasalin na mga de-kuryenteng pulso, na pinakain sa Arduino (Control unit). Natanggap ng Arduino ang pulso na ito at ginawang ito sa aktwal na data at ipinapakita ito sa isang 16x2 LCD display.
Diagram ng Circuit ng Seksyon ng Tagatanggap:
Pag-setup ng Hardware para sa Side ng Tagatanggap:
Ang Arduino Coding Para sa Li-Fi
Tulad ng ipinakita sa itaas, mayroon kaming dalawang mga seksyon para sa Li-Fi Transmitter at Receiver. Ang kumpletong mga code para sa bawat seksyon ay ibinibigay sa ilalim ng tutorial at isang hakbang na paliwanag ng mga code ay ibinibigay sa ibaba:
Arduino Li-Fi Transmitter Code:
Sa panig ng Transmitter, ang Arduino Nano ay ginagamit sa 4x4 Keypad at LED. Una, ang lahat ng mga nakasalalay na file ng library ay nai-download at naka-install sa Arduino sa pamamagitan ng Arduino IDE. Dito, ang Keypad library ay ginagamit para sa paggamit ng 4 * 4 Keypad na maaaring ma-download mula sa link na ito. Matuto nang higit pa tungkol sa pag-interfaces ng 4x4 keypad sa Arduino dito.
# isama
Matapos ang matagumpay na pag-install ng mga file ng library, tukuyin ang hindi. ng mga hilera at halagang haligi na kung saan ay 4 para sa pareho bilang ginamit namin ang isang 4 * 4 keypad dito.
const byte ROW = 4; const byte COL = 4; char keyscode = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', ' 9 ',' C '}, {' * ',' 0 ',' # ',' D '} };
Pagkatapos, ang mga pin ng Arduino ay tinukoy na ginagamit upang mag-interface gamit ang 4 * 4 keypad. Sa aming kaso, ginamit namin ang A5, A4, A3, at A2 para sa R1, R2, R3, R4 ayon sa pagkakabanggit, at A1, A0, 12, 11 para sa C1, C2, C3, at C4 ayon sa pagkakabanggit.
byte rowPin = {A5, A4, A3, A2}; byte colPin = {A1, A0, 12, 11}; Keypad customKeypad = Keypad (makeKeymap (keyscode), rowPin, colPin, ROW, COL);
Sa loob ng pag- setup (), ang output pin ay tinukoy, kung saan nakakonekta ang pinagmulan ng LED. Gayundin, ito ay pinapanatili OFF habang lumilipat SA aparato.
walang bisa ang pag-set up () { pinMode (8, OUTPUT); digitalWrite (8, LOW); }
Sa loob habang loop, ang mga halagang natanggap mula sa keypad ay binabasa gamit ang customKeypad.getKey () at inihambing ito sa if-else loop, upang makabuo ng mga natatanging pulso sa bawat key press. Maaari itong makita sa code na ang mga agwat ng timer ay pinananatiling natatangi para sa lahat ng mga pangunahing halaga.
char customKey = customKeypad.getKey (); kung (customKey) { kung (customKey == '1') { digitalWrite (8, HIGH); antala (10); digitalWrite (8, LOW); }
Arduino Li-Fi Receiver Code:
Sa panig ng tatanggap ng Li-Fi, ang Arduino UNO ay nakipag-interfaced sa isang sensor ng LDR tulad ng ipinakita sa circuit diagram. Narito ang sensor ng LDR ay konektado sa serye na may isang risistor upang bumuo ng isang boltahe divider circuit at ang output ng boltahe ng Analog mula sa sensor ay pinakain kay Arduino bilang isang input signal. Narito gumagamit kami ng isang module na I2C na may LCD upang mabawasan ang no. ng mga koneksyon sa Arduino tulad ng modyul na ito ay nangangailangan lamang ng 2 data pin SCL / SDA at 2 power pin.
Simulan ang code sa pamamagitan ng pagsasama ng lahat ng kinakailangang mga file ng library sa code tulad ng Wire.h para sa komunikasyon ng I2C, LiquidCrystal_I2C.h para sa LCD, atbp. Ang mga aklatan na ito ay paunang naka-install sa Arduino, kaya hindi na kailangang i-download ang mga ito.
# isama
Para sa paggamit ng module na I2C para sa 16 * 2 Alphanumeric LCD, i-configure ito gamit ang klase ng LiquidCrystal_I2C . Narito kailangan nating ipasa ang numero ng address, row, at haligi na 0x3f, 16, at 2 ayon sa pagkakabanggit sa aming kaso.
LiquidCrystal_I2C lcd (0x3f, 16, 2);
Sa loob ng pag- setup (), ideklara ang pulse input pin para sa pagtanggap ng signal. Pagkatapos i-print ang isang maligayang mensahe sa LCD na ipapakita sa panahon ng pagsisimula ng proyekto.
walang bisa ang pag-setup () { pinMode (8, INPUT); Serial.begin (9600); lcd.init (); lcd.backlight (); lcd.setCursor (0, 0); lcd.print ("WELCOME TO"); lcd.setCursor (0, 1); lcd.print ("CIRCUIT DIGEST"); pagkaantala (2000); lcd.clear (); }
Sa loob ng habang loop, ang tagal ng pag-input ng pulso mula sa LDR ay kinakalkula gamit ang pagpapaandar ng pulseIn , at ang uri ng pulso ay tinukoy na mababa sa aming kaso. Ang halaga ay naka-print sa serial monitor para sa mga layunin ng pag-debug. Iminumungkahi na suriin ang tagal, dahil maaaring magkakaiba ito para sa iba't ibang mga pag-setup.
unsigned mahabang tagal = pulseIn (8, TAAS); Serial.println (tagal);
Matapos suriin ang mga tagal para sa lahat ng mga pulso ng transmitter, mayroon na kaming 16 na mga saklaw ng tagal ng pulso, na nabanggit pababa para sa sanggunian. Ihambing ang mga ito gamit ang isang IF-ELSE loop para makuha ang eksaktong data na naipadala. Ang isang sample na loop para sa Key 1 ay ibinibigay sa ibaba:
kung (tagal> 10000 && tagal <17000) { lcd.setCursor (0, 0); lcd.print ("Natanggap: 1"); }
Li-Fi Transmitter at Receiver gamit ang Arduino
Matapos i-upload ang kumpletong code sa parehong Arduinos, pindutin ang anumang pindutan sa keypad sa panig ng tatanggap at ang parehong digit ay ipapakita sa 16x2 LCD sa panig ng tatanggap.
Ito ay kung paano magagamit ang Li-Fi upang magpadala ng data sa pamamagitan ng ilaw. Inaasahan kong nasiyahan ka sa artikulo at may natutunan na bago dito, kung mayroon kang anumang pagdududa, maaari mong gamitin ang seksyon ng komento o magtanong sa mga forum.