- Komponen Diperlukan
- Pengantar Singkat tentang Li-Fi
- Bagian Pemancar Li-Fi menggunakan Arduino
- Bagian Penerima Li-Fi menggunakan Arduino
- Arduino Coding Untuk Li-Fi
Li-Fi (Light Fidelity) adalah teknologi canggih yang memungkinkan transfer data menggunakan komunikasi optik seperti cahaya tampak. Data Li-Fi dapat berjalan melalui cahaya dan kemudian diinterpretasikan di sisi penerima menggunakan perangkat yang peka cahaya seperti LDR atau fotodioda. Komunikasi Li-Fi bisa 100 kali lebih cepat daripada Wi-Fi.
Di sini, di proyek ini, kami akan mendemonstrasikan komunikasi Li-Fi menggunakan dua Arduino. Disini data teks dikirim menggunakan LED dan keypad 4x4. Dan itu diterjemahkan di sisi penerima menggunakan LDR. Kami sebelumnya menjelaskan Li-Fi secara detail dan menggunakan Li-Fi untuk mentransfer sinyal audio.
Komponen Diperlukan
- Arduino UNO
- Sensor LDR
- 4 * 4 Papan tombol
- 16 * 2 LCD alfanumerik
- Modul Antarmuka I2C untuk LCD
- Papan tempat memotong roti
- Menghubungkan Jumper
- LED 5 mm
Pengantar Singkat tentang Li-Fi
Seperti yang telah dibahas di atas, Li-Fi adalah teknologi komunikasi canggih yang bisa 100 kali lebih cepat daripada komunikasi Wi-Fi. Dengan menggunakan teknologi ini, data dapat ditransfer menggunakan sumber cahaya tampak. Bayangkan, jika Anda dapat mengakses internet berkecepatan tinggi hanya dengan menggunakan sumber cahaya Anda. Bukankah ini terlihat sangat menarik?
Li-Fi menggunakan cahaya tampak sebagai media komunikasi untuk transmisi data. Sebuah LED dapat bertindak sebagai sumber cahaya dan fotodioda bertindak sebagai transceiver yang menerima sinyal cahaya dan mengirimkannya kembali. Dengan Mengontrol pulsa cahaya di sisi pemancar, kami dapat mengirimkan pola data yang unik. Fenomena ini terjadi dengan kecepatan yang sangat tinggi dan tidak dapat dilihat melalui mata manusia. Kemudian di sisi penerima, dioda atau Light-dependent resistor (LDR) mengubah data menjadi informasi yang berguna.
Bagian Pemancar Li-Fi menggunakan Arduino
Seperti yang ditunjukkan pada gambar di atas, di bagian pemancar komunikasi Li-Fi, keypad digunakan sebagai input di sini. Itu artinya kami akan memilih teks yang akan dikirim menggunakan keypad. Kemudian informasi tersebut diproses oleh unit kontrol yang tidak lain adalah Arduino dalam kasus kami. Arduino mengubah informasi menjadi pulsa biner yang dapat diumpankan ke sumber LED untuk transmisi. Kemudian data ini diumpankan ke lampu LED yang mengirimkan pulsa cahaya tampak ke sisi penerima.
Diagram Sirkuit Bagian Transmitter:
Pengaturan Perangkat Keras untuk Sisi Pemancar:
Bagian Penerima Li-Fi menggunakan Arduino
Di bagian penerima, sensor LDR menerima pulsa cahaya tampak dari sisi pemancar dan mengubahnya menjadi pulsa listrik yang dapat ditafsirkan, yang diumpankan ke Arduino (unit Kontrol). Arduino menerima pulsa ini dan mengubahnya menjadi data aktual dan menampilkannya pada layar LCD 16x2.
Diagram Sirkuit Bagian Penerima:
Pengaturan Perangkat Keras untuk Sisi Penerima:
Arduino Coding Untuk Li-Fi
Seperti yang ditunjukkan di atas, kami memiliki dua bagian untuk Pemancar dan Penerima Li-Fi. Kode lengkap untuk setiap bagian diberikan di bagian bawah tutorial dan penjelasan kode secara bertahap diberikan di bawah ini:
Kode Pemancar Arduino Li-Fi:
Di sisi Transmitter, digunakan Arduino Nano dengan Keypad 4x4 dan LED. Pertama, semua file perpustakaan dependen diunduh dan diinstal ke Arduino melalui Arduino IDE. Di sini, perpustakaan Keypad digunakan untuk menggunakan Keypad 4 * 4 yang dapat diunduh dari tautan ini. Pelajari lebih lanjut tentang menghubungkan keypad 4x4 dengan Arduino di sini.
#include
Setelah instalasi file perpustakaan berhasil, tentukan no. dari baris dan kolom nilai yang 4 untuk keduanya karena kita telah menggunakan keypad 4 * 4 di sini.
const byte ROW = 4; const byte COL = 4; char keyscode = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', ' 9 ',' C '}, {' * ',' 0 ',' # ',' D '} };
Kemudian, pin Arduino ditentukan yang digunakan untuk antarmuka dengan keypad 4 * 4. Dalam kasus kami, kami telah menggunakan A5, A4, A3, dan A2 masing-masing untuk R1, R2, R3, R4, dan A1, A0, 12, 11 untuk C1, C2, C3, dan C4.
byte rowPin = {A5, A4, A3, A2}; byte colPin = {A1, A0, 12, 11}; Keypad customKeypad = Keypad (makeKeymap (kode kunci), rowPin, colPin, ROW, COL);
Di dalam pengaturan (), pin keluaran ditentukan, di mana sumber LED dihubungkan. Juga, itu tetap MATI saat menghidupkan perangkat.
batal penyiapan () { pinMode (8, OUTPUT); digitalWrite (8, LOW); }
Di dalam while loop, nilai yang diterima dari keypad dibaca menggunakan customKeypad.getKey () dan dibandingkan dengan loop if-else , untuk menghasilkan pulsa unik di setiap penekanan tombol. Dapat dilihat dalam kode bahwa interval pengatur waktu dibuat unik untuk semua nilai kunci.
char customKey = customKeypad.getKey (); if (customKey) { if (customKey == '1') { digitalWrite (8, HIGH); penundaan (10); digitalWrite (8, LOW); }
Kode Penerima Arduino Li-Fi:
Di sisi penerima Li-Fi, Arduino UNO dihubungkan dengan sensor LDR seperti yang ditunjukkan pada diagram rangkaian. Disini sensor LDR dihubungkan secara seri dengan resistor untuk membentuk rangkaian pembagi tegangan dan keluaran tegangan analog dari sensor diumpankan ke Arduino sebagai sinyal masukan. Di sini kami menggunakan modul I2C dengan LCD untuk mengurangi no. koneksi dengan Arduino karena modul ini hanya membutuhkan 2 pin data SCL / SDA dan 2 pin daya.
Mulai kode dengan memasukkan semua file library yang diperlukan dalam kode seperti Wire.h untuk komunikasi I2C, LiquidCrystal_I2C.h untuk LCD, dll. Library ini akan diinstal sebelumnya dengan Arduino, jadi tidak perlu mendownloadnya.
#include
Untuk menggunakan modul I2C untuk LCD Alfanumerik 16 * 2, konfigurasikan menggunakan kelas LiquidCrystal_I2C . Di sini kita harus mengirimkan alamat, baris, dan nomor kolom yang masing-masing adalah 0x3f, 16, dan 2 dalam kasus kita.
LCD LiquidCrystal_I2C (0x3f, 16, 2);
Di dalam setup (), nyatakan pin input pulsa untuk menerima sinyal. Kemudian cetak pesan selamat datang pada LCD yang akan ditampilkan selama inisialisasi proyek.
void setup () { pinMode (8, INPUT); Serial.begin (9600); lcd.init (); lcd.backlight (); lcd.setCursor (0, 0); lcd.print ("SELAMAT DATANG"); lcd.setCursor (0, 1); lcd.print ("CIRCUIT DIGEST"); penundaan (2000); lcd.clear (); }
Di dalam while loop, durasi input pulsa dari LDR dihitung menggunakan fungsi pulseIn , dan jenis pulsa ditentukan yang LOW dalam kasus kami. Nilainya dicetak pada monitor serial untuk keperluan debugging. Disarankan untuk memeriksa durasinya, karena mungkin berbeda untuk pengaturan yang berbeda.
durasi panjang unsigned = pulseIn (8, HIGH); Serial.println (durasi);
Setelah memeriksa durasi untuk semua pulsa pemancar, sekarang kami memiliki 16 rentang durasi pulsa, yang dicatat sebagai referensi. Sekarang bandingkan mereka menggunakan loop IF-ELSE untuk mendapatkan data yang tepat yang telah dikirim. Satu contoh loop untuk Kunci 1 diberikan di bawah ini:
if (durasi> 10.000 && durasi <17000) { lcd.setCursor (0, 0); lcd.print ("Diterima: 1"); }
Pemancar dan Penerima Li-Fi menggunakan Arduino
Setelah mengunggah kode lengkap di kedua Arduino, tekan tombol apa saja pada keypad di sisi penerima dan digit yang sama akan ditampilkan pada LCD 16x2 di sisi penerima.
Ini adalah bagaimana Li-Fi dapat digunakan untuk mengirimkan data melalui cahaya. Semoga Anda menikmati artikel ini dan mempelajari sesuatu yang baru darinya, jika Anda ragu, Anda dapat menggunakan bagian komentar atau bertanya di forum.