- Bahan yang Diperlukan
- Rajah Litar
- Konfigurasi Awal modul HC05
- Ujian Komunikasi Bluetooth Arduino ke Arduino
Modul Bluetooth HC-05 adalah modul Bluetooth untuk mana-mana projek Arduino! Sangat mudah untuk menghubungkan dan membuat kod di Arduino IDE. Dalam kebanyakan projek, kami biasanya menyambung ke HC05 ke Arduino dan menggunakannya untuk berkomunikasi tanpa wayar dengan peranti pintar lain seperti telefon bimbit. Ini cukup mudah dan kami telah membina banyak projek menarik seperti Robot Terkawal Bluetooth, Kawalan Suara Bluetooth, Automasi Rumah Bluetooth, dan lain-lain. Namun, adakah anda perlu menghubungkan dua HC-05 bersama-sama? Tidak semudah menghubungkan HC05 ke telefon pintar, ada beberapa langkah tambahan yang terlibat. Tutorial ini akan membimbing anda melalui proses ini. Mari melompat masuk!
Bahan yang Diperlukan
- 2x Arduino (Mana-mana model akan berlaku; Saya menggunakan Arduino Uno R3 dan Arduino Nano)
- 2x Modul Bluetooth HC05
- Papan roti
- Wayar Pelompat
- Perintang 2x 1kΩ
- Perintang 2x 2.2kΩ
Rajah Litar
Ini adalah gambarajah litar asas. Buat 2 rangkaian ini, satu untuk tuan dan satu untuk hamba. Untuk sambungan, semua yang kami lakukan di sini adalah menghubungkan HC05 ke Arduino. Pin Penerima (Rx) HC05 beroperasi pada julat 0V hingga 3.3V dan Arduino beroperasi pada julat 0V hingga 5V. Jadi, kami akan menggunakan perintang (R1 dan R2) untuk membuat pembahagi voltan untuk mengurangkan output Arvino 5V kepada 3.3V, agar tidak merosakkan modul HC05.
Saya menggunakan 1kΩ untuk R1 dan 2.2KΩ untuk R2 tetapi anda boleh menggunakan sebarang nilai perintang selagi R2 kira-kira dua kali ganda nilai R1 (R2 ≈ 2R1). Begitu juga, ulangi litar untuk tuan dan hamba, Arkitino Master Bluetooth Circuit dan Arduino Slave Bluetooth Circuit ditunjukkan di bawah.
Konfigurasi Awal modul HC05
Ini adalah langkah tambahan yang diperlukan untuk menghubungkan dua modul HC05 bersama-sama. Kita perlu mengubah beberapa tetapan di dalam Modul Bluetooth HC05, untuk melakukan ini, kita harus masuk ke Mod Perintah AT modul HC05 dan mengirimkan perintah kepadanya melalui monitor bersiri Arduino IDE. Untuk melakukan ini, kita perlu menulis kod Arduino untuk menghantar arahan melalui monitor bersiri ke HC05.
The kod untuk mengkonfigurasi modul HC05 yang boleh didapati di bahagian bawah halaman ini, penjelasan kod adalah seperti berikut
Tambahkan pustaka SoftwareSerial ke kod ini.
#masuklah < SoftwareSerial.h>
Tentukan nombor pin transmit (Tx) dan Receive (Rx). Saya menggunakan pin 2 untuk Tx dan pin 3 untuk Rx.
# tentukan tx 2 # tentukan rx 3
Berikan beberapa nama sambungan Bluetooth (di sini saya menggunakan configBt), kemudian beritahu perpustakaan SoftwareSerial pin mana yang Tx dan pin mana yang Rx. Sintaksnya adalah bluetoothName (Rx, Tx);
SoftwareSerial configBt (rx, tx); // RX, TX
Untuk mengkonfigurasi modul Bluetooth, Arduino perlu menghantar perintah kepadanya pada kadar baud 38400 baud. Begitu juga, kami menetapkan kadar baud dari sambungan Bluetooth ke 38400 baud. Tetapkan Transmit (Tx) ke pin output dan Terima (Rx) ke pin input
batal persediaan () { Serial.begin (38400); configBt.begin (38400); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Di dalam lingkaran selamanya, kami mempunyai sebahagian besar kod. Ideanya di sini adalah untuk menghantar apa sahaja yang ditaip di kotak teks di monitor bersiri ke HC05 melalui pin Tx Arduino. Kemudian paparkan apa sahaja output oleh HC05 di monitor bersiri.
gelung void () {if (configBt.available ()) // jika HC05 menghantar sesuatu… { Serial.print (configBt.readString ()); // cetak dalam monitor bersiri} if (Serial.available ()) // jika monitor bersiri mengeluarkan sesuatu… {configBt.write (Serial.read ()); // tulis ke pin Tx Arduino}}
Muat naik kod ini ke Arduino yang disambungkan ke modul master HC05 terlebih dahulu. Selepas memuat naik kod, pasangkan kabel kuasa Arduino. Tekan dan tahan butang pada HC05. Sekarang pasangkan kabel kuasa Arduino sambil terus menekan butang pada HC05. Baiklah, sekarang anda boleh melepaskan butang pada HC05. Ini adalah bagaimana anda memasuki mod AT HC05. Untuk memeriksa sama ada anda telah melakukan ini dengan betul, pastikan lampu merah pada HC05 berkedip kira-kira setiap saat (perlahan-lahan berkelip!) Biasanya sebelum HC05 disambungkan ke mana-mana peranti Bluetooth, lampu merah berkelip pada frekuensi yang sangat tinggi (cepat berkelip!).
Seterusnya, buka monitor bersiri (butang monitor bersiri berada di kanan atas Arduino IDE). Di sudut kanan bawah tetingkap monitor Serial, jika anda belum melakukannya, pastikan anda menetapkan tetapan akhir baris ke "Kedua-dua NL dan CL" dan tingkat baud ke 38400. Sekarang, ketik AT di monitor bersiri, jika semuanya berjalan lancar, anda akan mendapat "OK" dari HC05 yang dipaparkan di tetingkap monitor bersiri. Tahniah! Anda berjaya masuk ke mod arahan AT modul HC05.
Sekarang, masukkan arahan berikut dalam jadual di bawah untuk mengkonfigurasi modul master HC05:
PERINTAH (masukkan ini di monitor bersiri dan tekan enter) |
TANGGUNGJAWAB (balas dari HC05, dipaparkan di monitor bersiri) |
Fungsi (Apakah arahan ini dilakukan?) |
AT |
okey |
Uji |
AT + CMODE? |
okey |
Periksa CMODE atau Mode Sambungan ----------------------------- CMODE: 0 adalah hamba 1 adalah tuan |
AT + CMODE = 1 |
okey |
Tetapkan CMODE ke 1 semasa kita mengkonfigurasi master HC05 |
AT + ALAMAT? |
+ ADDR: FCA8: 9A: 58D5 okey * Ini adalah alamat tuan saya HC05. Alamat anda akan berbeza! |
Mengembalikan alamat HC05, perhatikan ini kerana kami akan memerlukannya kemudian! |
Seterusnya sambungkan komputer anda ke HC05 anda yang lain, hamba:
PERINTAH (masukkan ini di monitor bersiri dan tekan enter) |
TANGGUNGJAWAB (balas dari HC05, dipaparkan di monitor bersiri) |
Fungsi (Apakah arahan ini dilakukan?) |
AT |
okey |
Uji |
AT + CMODE? |
okey |
Periksa CMODE atau Mode Sambungan ----------------------------- CMODE: 0 adalah hamba 1 adalah tuan |
AT + CMODE = 0 |
okey |
Tetapkan CMODE ke 0 semasa kita mengkonfigurasi hamba HC05 |
AT + BIND = FCA8,9A, 58D5 * Ganti ":" di alamat induk HC05 dengan "," * Di sini saya menggunakan alamat master HC05 yang saya catat dari jadual sebelumnya. Anda harus menggunakan alamat tuan HC05 anda! |
okey |
Menetapkan alamat master HC05 yang hamba HC05 ini akan sambungkan secara automatik semasa boot |
AT + BIND? |
+ BIND: FCA8: 9A: 58D5 okey * Ini adalah alamat tuan saya HC05. Alamat anda akan berbeza! |
Periksa alamat ikatan hamba anda. Sekiranya ia sepadan dengan alamat tuan HC05 anda, anda boleh pergi! |
Ujian Komunikasi Bluetooth Arduino ke Arduino
Pertama, kuasakan modul HC05 master dan slave. Setelah kuasa menyala dan beberapa saat berlalu lihatlah lampu merah pada modul HC05.
Kelajuan berkelip cahaya merah |
Apa maksudnya |
Berkelip pada frekuensi yang sangat tinggi (cepat berkelip!) |
Tidak baik! Ini bermaksud modul HC05 anda tidak berhubung antara satu sama lain! Masa untuk menyelesaikan masalah! |
Berkedip pada frekuensi rendah (berkelip perlahan!) |
Bagus! Anda telah berjaya! Tetapi kami masih perlu melakukan satu lagi pemeriksaan untuk memastikan bahawa penyediaan ini berfungsi! Teruskan! |
Setelah lampu merah anda berkedip pada frekuensi rendah (berkelip perlahan!), Anda dapat memastikan bahawa kedua-dua HC05 anda saling terhubung satu sama lain, tetapi kami belum menguji apakah data dapat dihantar berulang-alik antara tuan dan hamba. Lagipun, itulah tujuan utama di sini.
Muat naik kod di bawah ini ke salah satu Arduino, ini adalah kod untuk menguji pemancar (Tx), sekali lagi kod lengkap untuk pemancar dan penerima boleh didapati di bahagian bawah halaman ini.
Mengikuti kod sebelumnya, kami menambahkan perpustakaan SoftwareSerial pada kod ini dan menentukan nombor pin transmit (Tx) dan Receive (Rx). Kemudian kami namakan sambungan Bluetooth dan lulus nombor pin Tx dan Rx ke perpustakaan.
#include < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx, tx); // RX, TX
Dalam fungsi penyediaan, kami menetapkan kadar baud untuk monitor bersiri Arduino dan Bluetooth lagi. Adakah anda melihat perbezaan di sini berbanding kod sebelumnya? Kami menggunakan kadar baud 9600 baud. Ini adalah kadar baud komunikasi pra-setel modul Bluetooth HC05 lalai ketika berkomunikasi dengan peranti Bluetooth lain. Jadi, perhatikan bahawa 38400 baud adalah untuk mengkonfigurasi HC05 dengan perintah AT dan 9600 baud adalah laju baud lalai dari modul HC05. Terakhir, seperti sebelum kita mengkonfigurasi pin Tx sebagai output dan pin Rx sebagai input.
sia-sia persediaan () { Serial.begin (9600); bt.begin (9600); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Di dalam lingkaran selamanya, semua yang kami lakukan adalah mengirimkan nilai rawak "123" melalui HC05.
gelung kekosongan () {bt.write (123); }
Muat naik kod ini ke Arduino yang lain, ini adalah kod untuk diuji terima (Rx):
Sama seperti kod sebelumnya, kami mengkonfigurasi perpustakaan SoftwareSerial.
#include < SoftwareSerial.h> #define tx 2 #define rx 3 SoftwareSerial bt (rx, tx); // RX, TX
Kod dalam fungsi persediaan sama persis dengan kod untuk menguji transmit (Tx).
sia-sia persediaan () { Serial.begin (9600); bt.begin (9600); pinMode (tx, OUTPUT); pinMode (rx, INPUT); }
Dalam lingkaran selamanya, kita hanya perlu menerima apa yang kita hantar dari Arduino yang menghantar. Sekiranya buffer penerimaan telah menerima beberapa data dari HC05, maka tampilkan apa sahaja yang diterima di monitor bersiri.
gelung kosong () {if (bt.available ()> 0) { Serial.println (bt.read ()); }}
Setelah anda memuat naik kod masing-masing ke setiap Arduino, buka monitor Serial ke Arduino yang menerima. Pastikan anda memilih baud rate sebagai 9600 dan garis berakhir sebagai Newline di monitor bersiri. Sekiranya semuanya berfungsi dengan baik, anda mesti melihat 123.
Catatan: Sekiranya anda telah menghubungkan Arduinos pemancar dan penerima ke komputer riba yang sama, pastikan anda memilih port COM yang betul di bawah ALAT> PORT. Anda harus dihubungkan ke port COM Arduino yang menerima.
Sekiranya semuanya berjalan lancar, tukar modul HC05 untuk memastikan komunikasi dapat berlaku di kedua arah dan KAMI SELESAI!