- Penjelasan Kerja:
- Komponen yang Diperlukan:
- Rajah Litar:
- Bekerja dengan nRF24L01 + Modul Pemancar Tanpa Wayar:
- Memprogram Arduino:
- Program Pemprosesan:
- Ujian:
Membuat Rangkaian Tempatan untuk berkongsi kakitangan dan data sulit menjadi mustahil bagi orang biasa di dunia moden kita. Ini terutamanya kerana semua kaedah sembang biasa seperti Whatsapp, Facebook, Hangout dan hampir semuanya melibatkan sambungan internet.
Bagaimana jika, kita dapat berkongsi data tanpa media Internet ?
Betapa kerennya jika anda dapat berkomunikasi dengan orang-orang di dalam rumah atau tempat kerja anda tanpa paket internet atau Sambungan Internet?
Bagaimana jika kita dapat menyesuaikan skrin sembang dengan imaginasi kita sendiri?
Semua ini dapat dilakukan dengan mikrokontroler dan medium penghantaran Tanpa Wayar. Ini Arduino Chat Room menggunakan nRF24L01 Projek akan membimbing anda untuk menubuhkan kos rendah Chat Bilik di kawasan tempatan anda.
Oleh itu, mari masuk dan lihat bagaimana ia berfungsi.
Penjelasan Kerja:
Pada dasarnya untuk menjadikan perkara ini berfungsi, kita memerlukan sepasang papan Arduino dan modul tanpa wayar yang murah. Modul wayarles yang akan kami gunakan di sini adalah nRF24L01. Sebab untuk memilih modul ini adalah kerana ini adalah pengganti Zigbee dan senang bekerja dengan sambungan yang disediakan. Modul ini juga berfungsi pada 2.4 GHz (jalur ISM) dengan spektrum penyebaran frekuensi melompat dan pilihan ledakan kejutan yang membuat kita merasa santai dengan masalah gangguan.
Arduino dan NRF24L01 kami dihubungkan bersama untuk mewujudkan komunikasi Serial sehingga mereka dapat saling berbicara. NRF24L01 adalah modul transceiver setengah dupleks, oleh itu mereka dapat menghantar dan menerima data. Data dikumpulkan dari pengguna dan mengirimkan data ini dapat diterima oleh mana-mana (atau satu) modul dan memaparkannya di layar mereka.
Tetapi !!!!! Adakah kita akan berbual menggunakan skrin Debug Arduino? Sudah tentu tidak. Kami akan membina dan menyesuaikan skrin sembang kami sendiri dengan bantuan 'Processing'. Memproses adalah perisian yang dapat berkomunikasi dengan Arduino menggunakan UART. Kami akan membuat file.exe dengan bahasa Pemrosesan, yang dapat berjalan di komputer mana pun dengan Java Runtime. Untuk berbual, kita hanya perlu memasukkan Arduino kita dan membuka fail.exe ini, dan Booooom !! kita memasuki Bilik Sembang percuma sepenuhnya yang Diswastakan.
Projek ini hanya terhad untuk menambahkan dua orang ahli ke ruang Sembang, Tetapi nRF24L01 mempunyai 6 Pipeline, dan mungkin ada maksimal 6 anggota di ruang sembang kami. Bilik char ini boleh berfungsi dalam jarak 100 meter bergantung pada Modul nRF24L01.
Jadi mari kita pergi membeli-belah !!!!
Komponen yang Diperlukan:
- Arduino (sebarang versi atau model) - 2Nos
- nRF24L01 + Modul Pemancar Tanpa Wayar - 2Nos
- 3.3 Pengatur Voltan - 2Nos. (Tidak wajib)
- Menyambung wayar
- Minat (Lolz)
Rajah Litar:
Arduino Mega dengan nRF24L01:
Arduino Nano dengan nRF24L01:
Projek kami tidak melibatkan hubungan yang kompleks. Saya telah menggunakan Arduino Mega dan Arduino Nano dan hubungan mereka dengan nRF24L01 ditunjukkan di atas. Anda boleh menggunakan Model Arduino.
Bekerja dengan nRF24L01 + Modul Pemancar Tanpa Wayar:
Walau bagaimanapun untuk menjadikan nRF24L01 kami berfungsi bebas dari kebisingan, kami mungkin ingin mempertimbangkan perkara-perkara berikut. Saya telah mengusahakan nRF24L01 + ini untuk masa yang lama dan mengetahui perkara berikut dapat membantu anda daripada terkena tembok.
1. Sebilangan besar modul nRF24L01 + di pasaran adalah palsu. Yang murah yang kami dapati di Ebay dan Amazon adalah yang terburuk (Jangan bimbang, dengan beberapa tweak kami dapat menjadikannya berfungsi)
2. Masalah utama adalah bekalan kuasa bukan kod anda. Sebilangan besar kod dalam talian akan berfungsi dengan baik, saya sendiri mempunyai kod kerja yang saya sendiri uji, Beritahu saya jika anda memerlukannya.
3. Perhatikan kerana modul yang dicetak sebagai NRF24L01 + sebenarnya adalah Si24Ri (Ya produk Cina).
4. Modul klon dan palsu akan menggunakan lebih banyak tenaga, oleh itu jangan kembangkan rangkaian kuasa anda berdasarkan lembar data nRF24L01 +, kerana Si24Ri akan mempunyai penggunaan arus tinggi sekitar 250mA.
5. Berhati-hati dengan riak voltan dan lonjakan arus, modul ini sangat sensitif dan mudah terbakar. (;-(goreng 2 modul setakat ini)
6. Menambah beberapa kapasitor (10uF dan 0.1uF) merentasi Vcc dan Gnd modul membantu menjadikan bekalan anda tulen dan ini berfungsi untuk kebanyakan modul.
Masih sekiranya anda menghadapi masalah laporkan pada bahagian komen atau baca ini.
Memprogram Arduino:
Program untuk Arduino Nano dan Mega akan serupa dengan perubahan pin CE dan CS. Saya akan menerangkan program ini dengan membahagikannya kepada beberapa bahagian kecil.
Sejak Arduino dan nRF24L01 berkomunikasi melalui SPI, kami telah meminta perpustakaan SPI. Kami juga memasukkan lib Maniacbug RF24 kami agar modul RF kami berfungsi. Muat turun fail dari sini, dan tambahkan ke IDE anda.
#sertakan
Modul NRF kami masing-masing disambungkan ke pin 8 dan 10 ke CE dan CS.
RF24 myRadio (8, 10);
Kami membuat pakej data berstruktur yang disebut pakej . Teks pemboleh ubah akan digunakan untuk menghantar data di udara.
pakej struct {char text; // Teks untuk dihantar di udara}; pakej typedef struct pakej; Data pakej;
Dalam fungsi setup void () , kita menginisialisasi baud rate ke 9600 dan mengatur modul kita ke 115 dengan penggunaan kuasa MIN dan 250KBPS speed. Anda boleh bermain-main dengan nilai-nilai ini kemudian.
persediaan tidak sah () {Serial.begin (9600); kelewatan (1000); //Serial.print("Setup Initialized "); myRadio.begin (); myRadio.setChannel (115); // 115 jalur di atas WIFI memberi isyarat myRadio.setPALevel (RF24_PA_MIN); // Kuasa min rendah myRadio.setDataRate (RF24_250KBPS); // Kelajuan minimum}
Modul ini dibuat untuk berfungsi dalam mod transmit jika Data diterima melalui Serial buffer, jika tidak, ia akan berada dalam mod penerima mencari data di udara. Data dari pengguna disimpan dalam Array char dan dikirim ke WriteData () untuk mengirimkannya.
gelung void () {while (Serial.available ()> 0) // Dapatkan nilai dari pengguna {val = Serial.peek (); if (index <19) // Satu yang lebih kecil daripada ukuran array {inChar = Serial.read (); // Baca watak dalamData = inChar; // Simpan indeksnya ++; // Kenaikan tempat menulis seterusnya diData = '\ 0'; // Null akhiri rentetan} if (val == '#') {strcpy (data.text, inData); TulisData (); // Letakkan modul dalam mod Transmit sementara (indeks! = 0) {inData = ''; indeks--; }}} ReadData (); // Pasang mod Mod penerimaan}
void fungsi WriteData () menulis data pada alamat 0xF0F0F0F0AA, alamat ini digunakan sebagai paip penulisan pada modul lain.
batal WriteData () {myRadio.stopListening (); // Berhenti Menerima dan mulakan transminitng myRadio.openWritingPipe (0xF0F0F0F066); // Menghantar data pada alamat 40-bit ini myRadio.write (& data, sizeof (data)); kelewatan (300); }
void fungsi ReadData () menulis data pada 0xF0F0F0F066 alamat ini, alamat ini digunakan sebagai saluran membaca pada modul lain.
batal ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Pipa mana yang hendak dibaca, 40 bit Alamat myRadio.startListening (); // Hentikan Transminting dan mulakan Peninjauan semula jika (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.println (data.text); }}
Itu sahaja, bahagian pengaturcaraan kami sudah berakhir. Sekiranya anda tidak dapat memahami beberapa perkara di sini, periksa dua program untuk kedua-dua Arduino, yang diberikan dalam bahagian Kod di bawah, saya telah menambah baris komen untuk menjelaskan perkara dengan lebih baik.
Program Pemprosesan:
'Processing' adalah perisian sumber terbuka yang digunakan oleh artis untuk merancang Grafik. Perisian ini digunakan untuk mengembangkan aplikasi perangkat lunak dan Android. Ia cukup mudah dikembangkan dan hampir sama dengan Android Development IDE. Oleh itu saya telah memendekkan penjelasannya.
Kod Pemprosesan untuk kedua Skrin Sembang diberikan di sini:
- Skrin Sembang 1 Kod Pemprosesan
- Skrin Sembang 2 Kod Pemprosesan
Klik kanan pada mereka dan klik pada 'Save link as..' untuk memuat turunnya dan membukanya di komputer anda setelah menyiapkan Arduinos. Anda perlu memasang perisian 'Memproses' untuk membuka fail *.pde ini dan kemudian 'Jalankan' untuk membuka Kotak Sembang. Bahagian komen dibuka untuk pertanyaan. Sketsa Pemprosesan untuk modul pemancar dan Penerima adalah serupa.
Di bahagian kod di bawah, "port = new Serial (ini, Serial.list (), 9600); // Membaca PORT ke-4 pada 9600 baudrate" adalah penting kerana ia memutuskan dari port mana ke data.
batal persediaan () {size (510,500); port = Serial baru (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 sebagai Contoh jika anda mempunyai COM COM COM COM
Kemudian kod di atas akan membaca data dari COM.
Ujian:
Sekarang kerana sketsa Pemrosesan dan Arduino kami sudah siap, muat naik program ke Arduino dan biarkan ia dipasang ke Komputer riba anda. Buka lakaran Pemprosesan anda dan mulailah mengetik dan tekan "Enter" mesej anda akan dihantar ke Arduino lain yang akan memaparkan teks yang diterima pada aplikasi Pemprosesan lain yang disambungkan ke komputer lain. Selanjutnya lihat Video di bawah untuk demonstrasi penuh.
Oleh itu, anda boleh bercakap dengan rakan dan keluarga di kawasan anda tanpa sambungan Internet, menggunakan Arduino Chat Room yang murah ini.