- Penjelasan Kerja:
- Komponen yang Dibutuhkan:
- Diagram Sirkuit:
- Bekerja dengan nRF24L01 + Modul Transceiver Nirkabel:
- Memprogram Arduino:
- Program Pengolahan:
- Pengujian:
Membuat Jaringan Lokal untuk berbagi data pribadi dan rahasia hampir mustahil dilakukan oleh orang biasa di dunia modern kita. Ini terutama karena semua metode obrolan umum seperti Whatsapp, Facebook, Hangout, dan hampir semuanya melibatkan koneksi internet.
Bagaimana jika kita bisa berbagi data tanpa media internet ?
Betapa kerennya jika Anda dapat berkomunikasi dengan orang-orang di dalam rumah atau tempat kerja Anda tanpa paket internet atau koneksi Internet?
Bagaimana jika kita bisa menyesuaikan layar obrolan dengan imajinasi kita sendiri?
Semua ini dimungkinkan dengan mikrokontroler dan media transmisi nirkabel. Ruang Obrolan Arduino ini menggunakan Proyek nRF24L01 akan memandu Anda dalam menyiapkan Ruang Obrolan berbiaya rendah di area lokal Anda.
Jadi mari kita masuk dan melihat cara kerjanya.
Penjelasan Kerja:
Pada dasarnya untuk membuat hal ini berfungsi, kita membutuhkan sepasang papan Arduino dan modul nirkabel murah. Modul nirkabel yang akan kami gunakan di sini adalah nRF24L01. Alasan memilih modul ini adalah karena ini adalah penerus Zigbee dan mudah digunakan dengan koneksi yang sudah diatur. Juga modul-modul ini bekerja pada 2,4 GHz (ISM band) dengan spektrum penyebaran hopping frekuensi dan opsi ledakan kejut yang membuat kita merasa rileks dari masalah interferensi.
Arduino dan NRF24L01 kami terhubung bersama untuk menjalin komunikasi Serial sehingga mereka dapat saling berbicara. NRF24L01 adalah modul transceiver setengah dupleks, sehingga dapat mengirim dan menerima data. Data dikumpulkan dari pengguna dan dikirimkan data ini dapat diterima oleh modul mana pun (atau satu) dan menampilkannya di layar mereka.
Tapi!!!!! Apakah kita akan mengobrol menggunakan layar Debug Arduino? Tentu saja tidak. Kami akan membangun dan menyesuaikan layar obrolan kami sendiri dengan bantuan 'Pemrosesan'. Pengolahan adalah perangkat lunak yang mampu berkomunikasi dengan Arduino menggunakan UART. Kami akan membuat file.exe dengan bahasa Pemrosesan, yang dapat berjalan di komputer mana pun dengan Java Runtime. Untuk mengobrol, kita hanya perlu mencolokkan Arduino dan membuka file.exe ini, dan Booooom !! kita berada di Ruang obrolan Privatisasi yang benar-benar gratis.
Proyek ini dibatasi hanya untuk menambahkan dua anggota ke ruang obrolan, tetapi nRF24L01 memiliki 6 saluran pipa, sehingga maksimal 6 anggota di ruang obrolan kami. Ruang char ini dapat bekerja dalam jarak 100 meter tergantung pada Modul nRF24L01.
Jadi ayo berbelanja !!!!
Komponen yang Dibutuhkan:
- Arduino (versi atau model apa pun) - 2Nos
- nRF24L01 + Modul Transceiver Nirkabel - 2Nos
- 3.3 Regulator Tegangan - 2Nos. (Tidak wajib)
- Menghubungkan kabel
- Bunga (Lolz)
Diagram Sirkuit:
Arduino Mega dengan nRF24L01:
Arduino Nano dengan nRF24L01:
Proyek kami tidak melibatkan koneksi yang rumit. Saya telah menggunakan Arduino Mega dan Arduino Nano dan koneksinya dengan nRF24L01 ditunjukkan di atas. Anda dapat menggunakan Model Arduino apa pun.
Bekerja dengan nRF24L01 + Modul Transceiver Nirkabel:
Namun untuk membuat nRF24L01 kami bekerja bebas dari kebisingan, kami mungkin ingin mempertimbangkan hal-hal berikut. Saya telah mengerjakan nRF24L01 + ini untuk waktu yang lama dan mempelajari poin-poin berikut yang dapat membantu Anda agar tidak tertabrak dinding.
1. Sebagian besar modul nRF24L01 + di pasaran adalah palsu. Yang murah yang bisa kita temukan di Ebay dan Amazon adalah yang terburuk (Jangan khawatir, dengan sedikit tweak kita bisa membuatnya berfungsi)
2. Masalah utama adalah catu daya bukan kode Anda. Sebagian besar kode online akan berfungsi dengan baik, saya sendiri memiliki kode yang berfungsi yang secara pribadi saya uji, Beri tahu saya jika Anda membutuhkannya.
3. Perhatikan karena modul yang dicetak sebagai NRF24L01 + sebenarnya adalah Si24Ri (Ya, produk Cina).
4. Modul tiruan dan palsu akan mengkonsumsi lebih banyak daya, oleh karena itu jangan mengembangkan rangkaian daya Anda berdasarkan lembar data nRF24L01 +, karena Si24Ri akan memiliki konsumsi arus yang tinggi sekitar 250mA.
5. Waspadai riak tegangan dan lonjakan arus, modul ini sangat sensitif dan dapat dengan mudah terbakar. (;-(menggoreng 2 modul sejauh ini)
6. Menambahkan sepasang kapasitor (10uF dan 0.1uF) di Vcc dan Gnd modul membantu membuat pasokan Anda murni dan ini berfungsi untuk sebagian besar modul.
Masih jika Anda memiliki masalah laporkan di bagian komentar atau membaca ini.
Memprogram Arduino:
Program untuk Arduino Nano dan Mega akan serupa untuk perubahan pada pin CE dan CS. Saya akan menjelaskan program dengan membaginya menjadi beberapa segmen kecil.
Sejak Arduino dan nRF24L01 berkomunikasi melalui SPI kami telah memanggil perpustakaan SPI. Kami juga telah menyertakan Maniacbug RF24 lib untuk modul RF kami untuk bekerja. Unduh file dari sini, dan tambahkan ke IDE Anda.
#include
Modul NRF kami masing-masing terhubung ke pin 8 dan 10 ke CE dan CS.
RF24 myRadio (8, 10);
Kami membuat paket data terstruktur yang disebut paket . Teks variabel akan digunakan untuk mengirimkan data di udara.
paket struct {teks karakter; // Teks untuk dikirim di udara}; Paket paket typedef struct; Data paket;
Dalam fungsi void setup () , kami menginisialisasi baud rate ke 9600 dan mengatur modul kami ke 115 dengan konsumsi daya MIN dan kecepatan 250KBPS. Anda bisa bermain-main dengan nilai-nilai ini nanti.
void setup () {Serial.begin (9600); penundaan (1000); //Serial.print("Setup Initialized "); myRadio.begin (); myRadio.setChannel (115); // 115 band di atas sinyal WIFI myRadio.setPALevel (RF24_PA_MIN); // MIN power low rage myRadio.setDataRate (RF24_250KBPS); // Kecepatan minimum}
Modul dibuat untuk bekerja dalam mode transmisi jika Data diterima melalui buffer serial, jika tidak maka dalam mode penerima mencari data di udara. Data dari pengguna disimpan dalam Array karakter dan dikirim ke WriteData () untuk mengirimkannya.
void loop () {while (Serial.available ()> 0) // Dapatkan nilai dari pengguna {val = Serial.peek (); if (index <19) // Satu kurang dari ukuran array {inChar = Serial.read (); // Membaca karakter inData = inChar; // Simpan index ++; // Kenaikan tempat menulis berikutnya inData = '\ 0'; // Null mengakhiri string} if (val == '#') {strcpy (data.text, inData); WriteData (); // Letakkan modul dalam mode Transmit while (index! = 0) {inData = ''; indeks--; }}} ReadData (); // Pasang mode Terima modul}
void WriteData () berfungsi menulis data pada alamat 0xF0F0F0F0AA, alamat ini digunakan sebagai pipa penulisan pada modul lain.
void WriteData () {myRadio.stopListening (); // Berhenti Menerima dan mulai transminitng myRadio.openWritingPipe (0xF0F0F0F066); // Mengirimkan data ke alamat 40-bit ini myRadio.write (& data, sizeof (data)); penundaan (300); }
void ReadData () berfungsi menulis data pada 0xF0F0F0F066 alamat ini, alamat ini digunakan sebagai pipa pembacaan pada modul lain.
void ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Pipa mana yang akan dibaca, 40 bit Address myRadio.startListening (); // Hentikan Transmint dan mulai Reveicing if (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.println (data.text); }}
Itu saja, bagian pemrograman kita sudah berakhir. Jika Anda tidak dapat memahami beberapa hal di sini, periksa dua program untuk kedua Arduino, yang diberikan di bagian Kode di bawah ini, saya telah menambahkan baris komentar untuk menjelaskan semuanya dengan lebih baik.
Program Pengolahan:
'Processing' adalah perangkat lunak sumber terbuka yang digunakan oleh seniman untuk mendesain Grafik. Perangkat lunak ini digunakan untuk mengembangkan perangkat lunak dan aplikasi Android. Ini cukup mudah untuk dikembangkan dan sangat mirip dengan Android Development IDE. Oleh karena itu saya telah mempersingkat penjelasannya.
Kode Pemrosesan untuk kedua Layar Obrolan diberikan di sini:
- Layar Obrolan 1 Kode Pemrosesan
- Layar Obrolan 2 Kode Pemrosesan
Klik kanan padanya dan klik 'Simpan tautan sebagai..' untuk mengunduhnya dan membukanya di komputer Anda setelah mengatur Arduinos. Anda perlu menginstal perangkat lunak 'Processing' untuk membuka file *.pde ini dan kemudian 'Run' untuk membuka Chat Box. Bagian komentar terbuka untuk pertanyaan. Sketsa Pemrosesan untuk modul pemancar dan Penerima identik.
Di bagian kode di bawah ini, "port = new Serial (this, Serial.list (), 9600); // Membaca PORT ke-4 di 9600 baudrate" penting karena ia memutuskan dari port mana ke data.
void setup () {size (510.500); port = New Serial (ini, Serial.list (), 9600); // Membaca PORT ke-4 di 9600 baudrate println (Serial.list ()); latar belakang (0); }
Di sini saya telah membaca data dari port ke-4 dari Arduino saya.
Jadi Contoh jika Anda memiliki COM COM COM COM COM
Kemudian kode diatas akan membaca data dari COM.
Pengujian:
Sekarang karena Sketsa Pemrosesan dan Arduino kami siap, cukup unggah program ke Arduino dan biarkan dicolokkan ke Laptop Anda. Buka sketsa Pemrosesan Anda dan mulailah mengetik dan tekan "Enter" pesan Anda akan dikirim ke Arduino lain yang akan menampilkan teks yang diterima di aplikasi Pemrosesan lain yang terhubung ke komputer lain. Lihat lebih lanjut Video di bawah ini untuk demonstrasi lengkap.
Jadi begini cara Anda dapat berbicara dengan teman dan keluarga di area lokal Anda tanpa memiliki koneksi Internet, menggunakan Ruang Obrolan Arduino yang murah ini.