Cara Menyediakan dan Memprogram ESP32 untuk Berkomunikasi dengan Telefon Pintar Android melalui Bluetooth

Cara Menyediakan Dan Memprogram Esp32 Untuk Berkomunikasi Dengan Telefon Pintar Android Melalui Bluetooth



ESP32 ialah papan mikropengawal dengan pelbagai keupayaan. Ia mempunyai modul Wi-Fi dan Bluetooth terbina dalam. Menggunakan kedua-dua modul ini, anda boleh memprogram ESP32 secara wayarles. Dengan ini, anda tidak perlu risau tentang sambungan wayar panjang untuk mengawal peranti ESP32.

Dalam artikel ini, kami akan menyambungkan papan ESP32 dengan telefon Android dan menyampaikan data melalui Bluetooth. Selanjutnya, kami akan mengawal LED yang disambungkan dengan pin GPIO ESP32 terus melalui telefon pintar Android.

kandungan:







Apakah itu ESP32 Bluetooth LE

ESP32 ialah papan mikropengawal yang menyokong kedua-dua Bluetooth Klasik dan tenaga Bluetooth Rendah yang juga dikenali sebagai Bluetooth pintar. BLE atau Bluetooth pintar adalah khusus untuk komunikasi cekap tenaga atau direka untuk komunikasi jarak dekat atau pemindahan data kecil.



Fungsi BLE ESP32 membolehkannya bertindak sebagai pelayan atau klien dalam komunikasi Bluetooth. Ia boleh mengendalikan tugas seperti perkhidmatan membaca dan menulis. Ia juga boleh menyulitkan sambungan dan mewujudkan sambungan Profil Port Bersiri (SPP) untuk penghantaran data dalam mod lulus UART-BLE. Bluetooth ESP32 menyokong protokol 4.2, yang bermaksud ia serasi dengan lapisan berbeza seperti Lapisan Fizikal (PHY) dan Lapisan Pautan (LL). Ia juga mempunyai sokongan untuk Antara Muka Pengawal Hos (HCI), antara lain.



Semak jadual perbezaan untuk ESP32 Classic dan BLE Bluetooth.





Ciri Bluetooth klasik Bluetooth Tenaga Rendah (BLE)
Jenis Komunikasi Komunikasi dua hala yang berterusan Terputus-putus, terutamanya sehala data pecah
Julat Operasi Boleh mencecah sehingga 100 meter Biasanya beroperasi di bawah 100 meter
Penggunaan Kuasa Menggunakan sehingga 1 Watt Berjulat dari 10 miliwatt hingga 500 miliwatt
Kelajuan Pemindahan Kadar pemindahan data berbeza dari 1 hingga 3 Megabit sesaat Menyokong 125 Kilobit sesaat hingga 2 Megabit sesaat
Masa tindak balas Latensi sekitar 100 milisaat Respons pantas dengan kependaman 6 milisaat
Sokongan Suara Dilengkapi dengan penghantaran suara Tidak mempunyai fungsi penghantaran suara

Lihat artikel Bluetooth ESP32 ini untuk mengetahui lebih lanjut mengenainya.

Cara Memprogram ESP32 Untuk Berkomunikasi melalui Bluetooth dengan Telefon Pintar Android

Untuk memprogram ESP32 supaya ia boleh berkomunikasi dengan telefon Android menggunakan protokol Bluetooth, anda perlu menyediakan perpustakaan bersiri Bluetooth ESP32. Untuk itu, anda mesti mempunyai persediaan IDE Arduino dengan papan ESP32 dipasang.



Selepas menetapkan Bluetooth ESP32, anda perlu memasang aplikasi Android bersiri Bluetooth. Ini akan membolehkan anda menghantar arahan daripada telefon Android ke ESP32 menggunakan komunikasi Bersiri Bluetooth.

Mari kita lihat dengan lebih dekat setiap langkah ini:

Langkah-langkah untuk Menyambungkan Bluetooth ESP32 dengan Telefon Android

Untuk memprogramkan papan ESP32 untuk komunikasi Bluetooth, ikuti langkah yang diberikan ini:

Langkah 1: Memasang Papan ESP32 dalam Arduino IDE

Untuk memasang ESP32 pada Arduino IDE, cuma ikut panduan yang disediakan dalam artikel ini.

Memasang Papan ESP32 dalam Arduino IDE

Selepas pemasangan, papan ESP32 boleh disambungkan dan diprogramkan menggunakan Arduino IDE.

Langkah 2: Muat naik Kod Bluetooth ESP32

Setelah papan ESP32 dipasang, anda akan melihat perpustakaan pra-pasang yang berbeza dan contoh-contohnya dalam Arduino IDE. Semua perpustakaan ini berkaitan dengan papan ESP32. Untuk komunikasi bersiri Bluetooth, kami akan menggunakan ESP32 BluetoothSerial.h kod contoh perpustakaan.

Untuk membuka kod contoh, buka Arduino IDE dan pergi ke: Fail > Contoh > BluetoothSerial > SerialtoSerialBT

Untuk membuka kod contoh ini, pastikan papan ESP32 dipilih.

Selepas membuka kod contoh, anda akan melihat kod berikut dalam tetingkap Arduino IDE anda:

//Selamat Datang Ke Linuxhint

#include 'BluetoothSerial.h'

//#define USE_PIN // Nyahkomen ini jika anda mahu PIN semasa berpasangan
const char * pin = '1234' ; // Tentukan PIN berpasangan tersuai

Nama_peranti rentetan = 'ESP32' ;

#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth tidak didayakan! Jalankan `make menuconfig` untuk mendayakannya
#endif

#if !defined(CONFIG_BT_SPP_ENABLED)
#error Bluetooth bersiri tiada atau tidak didayakan. Ia hanya tersedia untuk cip ESP32.
#endif

BluetoothSerial SerialBT ;

batal persediaan ( ) {
bersiri. bermula ( 115200 ) ;
SerialBT. bermula ( Nama peranti ) ; //Nama peranti Bluetooth
bersiri. printf ( 'Peranti' % s 'dimulakan. \n Mula memasangkan peranti anda! \n ' , Nama peranti. c_str ( ) ) ;
//Serial.printf('Peranti '%s' dengan alamat MAC %s dimulakan.\nMula pasangkannya dengan Bluetooth!\n', device_name.c_str(), SerialBT.getMacString());
#ifdef USE_PIN
SerialBT. setPin ( pin ) ;
bersiri. println ( 'Menggunakan PIN' ) ;
#endif
}

batal gelung ( ) {
jika ( bersiri. tersedia ( ) ) {
SerialBT. menulis ( bersiri. membaca ( ) ) ;
}
jika ( SerialBT. tersedia ( ) ) {
bersiri. menulis ( SerialBT. membaca ( ) ) ;
}
kelewatan ( dua puluh ) ;
}

Selepas memuat naik kod, anda akan melihat mesej berikut pada skrin. Mesej ini menerangkan bahawa papan ESP32 anda sedia untuk berpasangan.

Langkah 3: Penerangan Kod

Kod itu bermula dengan memasukkan perpustakaan yang diperlukan dan menyemak ketersediaan Bluetooth. Ia juga menyediakan pembolehubah untuk nama peranti Bluetooth dan PIN.

Di dalam persediaan() fungsi, komunikasi baud bersiri ditakrifkan dan peranti Bluetooth dimulakan dengan namanya. PIN tersuai boleh ditetapkan untuk pengesahan semasa berpasangan.

The gelung() fungsi memeriksa secara berterusan untuk data pada sambungan bersiri dan Bluetooth. Ini membolehkannya mewujudkan komunikasi dua hala antara ESP32 dan peranti Bluetooth berpasangan.

Langkah 4: Pasang Aplikasi Android

Setelah kod dimuat naik, langkah seterusnya ialah memasang dan mengkonfigurasi aplikasi Android untuk sambungan Bluetooth.

Buka Gedung Play dan pasangkan Terminal Bluetooth Bersiri permohonan.

Selepas pemasangan, buka tetapan Bluetooth telefon pintar dan sambungkan telefon anda dengan Bluetooth ESP32. Jika anda telah menentukan PIN dalam kod IDE Arduino anda perlu memasukkan PIN jika tidak ia akan bersambung secara langsung.

Sekarang buka aplikasi Bluetooth Bersiri dan pilih Peranti pilihan.

Daripada menu yang baru dibuka, pilih peranti ESP32. Senarai ini menunjukkan semua peranti Bluetooth yang sedang aktif.

Seperti yang anda lihat, Bluetooth ESP32 disambungkan ke telefon pintar Android anda.

Untuk menguji sambungan, kami akan menghantar rentetan. Di sini saya telah menghantar dua rentetan yang berbeza.

Anda akan melihat dua rentetan yang sama juga akan dipaparkan pada terminal IDE Arduino.

Sekarang mari kita bergerak selangkah lebih jauh dan mengawal peranti luaran seperti LED menggunakan ESP32 Bluetooth melalui telefon pintar Android.

Langkah 5: Kawal LED Menggunakan Telefon Android melalui Bluetooth

Untuk mengawal LED menggunakan ESP32 dan Android Bluetooth, mula-mula ubah suai kod di atas dan tentukan pin GPIO untuk LED. Selepas itu, anda mesti menetapkan nilai untuk menghidupkan dan mematikan LED.

Muat naik kod di bawah untuk meneruskan lebih jauh.

#include // Sertakan perpustakaan komunikasi bersiri Bluetooth

#define LED_PIN 15 // Tentukan pin LED

BluetoothSerial SerialBT ; // Cipta objek BluetoothSerial
bait BT_INP ; // Pembolehubah untuk menyimpan input Bluetooth

// Semak sama ada Bluetooth dan Bluedroid didayakan dalam konfigurasi SDK
#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth tidak didayakan. Jalankan `make menuconfig` untuk mendayakannya.
#endif

batal persediaan ( ) {
pinMod ( PIN_LED , PENGELUARAN ) ; // Tetapkan pin LED sebagai output
bersiri. bermula ( 115200 ) ;
SerialBT. bermula ( 'ESP32' ) ; // Mulakan Bluetooth dengan nama 'ESP32'
bersiri. println ( 'Peranti Bluetooth sedia untuk dipasangkan.' ) ; // Tunjukkan bahawa Bluetooth sudah sedia
}

batal gelung ( ) {
// Semak sama ada terdapat sebarang data yang tersedia untuk dibaca daripada Bluetooth
jika ( SerialBT. tersedia ( ) ) {
BT_INP = SerialBT. membaca ( ) ; // Baca bait masuk daripada Bluetooth
bersiri. menulis ( BT_INP ) ; // Gema bait baca kepada monitor bersiri
}

// Semak data Bluetooth yang diterima dan tetapkan keadaan LED
jika ( BT_INP == '1' ) {
digitalWrite ( PIN_LED , TINGGI ) ; // Hidupkan LED jika '1' diterima
} lain jika ( BT_INP == '0' ) {
digitalWrite ( PIN_LED , RENDAH ) ; // Matikan LED jika '0' diterima
}
}

Kod ini adalah untuk mikropengawal ESP32 mengawal LED menggunakan Bluetooth. Ia termasuk perpustakaan untuk komunikasi Bluetooth. Seterusnya, ia mentakrifkan pin LED dan menyediakan Bluetooth dengan peranti bernama ESP32. Gelung utama membaca data Bluetooth dan menghidupkan atau MATI LED berdasarkan arahan yang diterima (1 untuk HIDUP, 0 untuk MATI).

Rajah Litar

Gambar rajah litar adalah mudah, dengan LED disambungkan pada pin D15 daripada ESP32. Anda boleh menentukan mana-mana GPIO lain untuk kawalan LED.

Berkaitan: Rujukan Pinout ESP32–Panduan Muktamad

Perkakasan

Dalam perkakasan, anda memerlukan papan roti, papan ESP32 dan LED. Sambungkan ESP32 dengan sistem dan muat naik program kepadanya.

Sekarang hantar 1 dan 0 daripada aplikasi komunikasi Bersiri Bluetooth telefon Android.

Anda akan melihat input yang sama pada terminal IDE Arduino yang diterima daripada telefon Android.

Pengeluaran

Sebaik sahaja anda menghantar nilai Tinggi atau 1, LED akan dihidupkan, begitu juga apabila anda menghantar nilai Rendah, LED akan dimatikan.

Tetapkan Butang Tersuai

Anda juga boleh menetapkan butang tersuai di dalam aplikasi Bluetooth Bersiri. Sebagai contoh, butang nilai TINGGI dan RENDAH boleh dibuat. Dengan cara ini, anda tidak perlu menaip nilai secara manual. Sebaliknya, anda hanya perlu menekan butang pintasan, dan ia akan melaksanakan arahan yang anda tetapkan.

Catatan: Untuk membuka tetapan butang, tekan lama pada butang.

Untuk menetapkan nilai butang HIGH, tentukan tetapan berikut.

Persamaan untuk nilai butang LOW, anda perlu menentukan tetapan di bawah.

Kami telah berjaya menyambungkan papan ESP32 dengan telefon Android menggunakan Bluetooth. Kini anda boleh membuat banyak projek menggunakannya. Seperti, anda boleh mengawal peralatan rumah anda menggunakan Bluetooth ESP32 melalui litar geganti.

Berkaitan: Relay dengan ESP32 Menggunakan Arduino IDE

Kesimpulan

ESP32 ialah papan mikropengawal termaju dengan keupayaan Wi-Fi dan Bluetooth. Kedua-dua modul terbina dalam ini membantu anda untuk mereka bentuk projek lanjutan dan mengawal peranti secara wayarles. Begitu juga, anda boleh menyambungkan ESP32 dengan telefon Android dan melakukan operasi yang berbeza. Untuk itu, anda perlu memasang aplikasi Android Serial Bluetooth. Setelah dipasang, buka contoh kod untuk ESP32 Bluetooth dan muat naik ke papan anda. Setelah kod dimuat naik, anda boleh memasangkannya dengan papan anda melalui telefon Android.