- Bermula dengan ESP32 Bluetooth
- Memahami Bluetooth Tenaga Rendah (BLE) dan ESP32 Classic Bluetooth
- Menyiapkan Arduino IDE untuk ESP32
- Program Bluetooth Bersiri untuk ESP32
- Menguji Serial Bluetooth dengan ESP32
Modul Bluetooth seperti HC-05 dan HC-06 mudah disiapkan dan cepat digunakan dengan Arduino IDE, tetapi mereka mempunyai batasan tersendiri seperti penggunaan kuasa tinggi dan mereka beroperasi pada Bluetooth V2.0 lama. Juga, baru-baru ini saya mendapat kit ESP32 DEV baru, modul ini mempunyai banyak ciri seperti Wi-Fi dan Bluetooth terbina dalam, pin ADC dan DAC yang banyak, Sokongan Audio, Sokongan Kad SD, Mod Tidur Dalam dan lain-lain. segalanya untuk membina projek IoT.
Dan seperti mana yang disukai oleh penggemar, ESP32 kini secara rasmi disokong oleh Arduino IDE. Sebelumnya kita harus melakukan penyelesaian besar dengan Perpustakaan Neil Kolbans, tetapi sekarang berkat kerja keras lelaki ini pengaturcaraan ESP32 dengan Arduino IDE telah menjadi kue jalan. Oleh itu, saya melancarkan Arduino IDE saya dan membincangkan beberapa contoh program BLE, di mana saya tidak memahami apa-apa. Setelah sekian lama melayari dan menggunakan tab mandi, saya menyedari bahawa ada banyak perkara yang perlu difahami sekiranya anda perlu bekerjasama dengan Bluetooth Low Energy (BLE) menggunakan ESP32. Saya memutuskan untuk membuat liputan BLE dalam artikel yang berasingan, jadi di sini kita akan menggunakan Bluetooth Serial Klasik ESP32 untuk menukar LED menggunakan Telefon Pintar. Sekiranya anda berminat untuk mengetahui cara menggunakan ciri BLE, baca artikel ini di Pelayan ESP32 BLE dan Pelanggan ESP32 BLE
Bermula dengan ESP32 Bluetooth
Program pertama yang ingin saya cuba adalah program sederhana yang boleh saya nyalakan atau matikan LED dari aplikasi Terminal Bluetooth telefon bimbit, seperti hari-hari lama HC-05. Tetapi ternyata, Tenaga Rendah Bluetooth (BLE) tidak terikat untuk itu. Saya juga mendapati bahawa terdapat dua jenis Bluetooth dalam modul ESP32, satu adalah Bluetooth Klasik dan yang lain adalah Tenaga Rendah Bluetooth BLE. Baiklah, tapi mengapa?…. mengapa kita mempunyai dua jenis Bluetooth dan apa yang harus saya gunakan untuk projek saya?
Memahami Bluetooth Tenaga Rendah (BLE) dan ESP32 Classic Bluetooth
Tenaga Rendah Bluetooth, seperti namanya menggunakan kuasa yang lebih sedikit daripada Bluetooth klasik. Hal ini dicapai dengan mengirim data sebagaimana diperlukan dengan kemas kini berkala yang telah ditentukan sebelumnya. Tetapi tidak seperti Bluetooth klasik, ia tidak digunakan untuk memindahkan Fail atau Muzik. Pernahkah anda terfikir bagaimana telefon anda secara automatik mengenal pasti bahawa peranti Bluetooth yang baru saja anda pasangkan adalah peranti audio atau komputer riba atau telefon, anda mungkin juga telah melihat bahawa tahap bateri dalam pemain audio tanpa wayar atau jalur kecergasan secara automatik ditunjukkan di bar status telefon bimbit anda; semua ini boleh dilakukan dengan ciri-ciri peranti BLE. A peranti BLE bekerja dengan Bluetooth V4.0 dan boleh beroperasi dengan kuasa yang rendah sebagai pelayan atau sebagai pelanggan yang membuatBLE pilihan yang sesuai untuk suar, jam tangan pintar, tali kecergasan dan lain-lain.
Bluetooth klasik di sisi lain hanyalah Bluetooth lama biasa yang kami gunakan untuk memindahkan fail dan data lain. Hampir semua peranti BLE mempunyai fungsi Bluetooth Klasik yang berkaitan dengannya. Bluetooth yang digunakan dalam modul seperti HC-05 adalah versi Bluetooth klasik yang disebut Bluetooth SSP (Serial Port Protocol), yang bermaksud Bluetooth mengikuti protokol bersiri standard yang menjadikannya lebih mudah untuk menghantar dan menerima data tanpa banyak overhead. Pada akhir tutorial ini kita akan belajar bagaimana menggunakan fungsi Bluetooth Serial di ESP32.
Di sini, dalam artikel ini kita akan menggunakan fungsi Serial Bluetooth pada ESP32 untuk memasangkannya dengan Telefon Pintar dan menggunakan aplikasi Terminal Bluetooth yang ada dari Play store untuk mengirim perintah ke ESP32 dan beralih LED on board dengan sewajarnya.
Dalam artikel kemudian, kami akan merangkumi ESP32 BLE sebagai pelayan dan juga pelanggan. Pelayan BLE umumnya digunakan untuk mengirim data BLE ke Peranti Bluetooth lain dan klien BLE digunakan untuk mengimbas peranti BLE lain sehingga bertindak sebagai suar.
Menyiapkan Arduino IDE untuk ESP32
Perhatikan bahawa Arduino IDE secara lalai tidak menyokong papan ESP32; anda mesti memuat turun dan memasangnya menggunakan pengurus papan. Sekiranya ini adalah program pertama anda dengan ESP32, ikuti tutorial memulakan ini untuk menambahkan papan ESP32 ke Arduino anda dan memuat naik lakaran ujian.
Selanjutnya, anda boleh melakukan lebih banyak projek dengan ESP32, tanpa menggunakan Microcontroller dengannya.
Program Bluetooth Bersiri untuk ESP32
Program lengkap untuk menukar LED menggunakan Bluetooth ESP32 diberikan di akhir halaman ini. Di bawah tajuk ini, mari masukkan kod menjadi coretan kecil dan cuba memahaminya. Sekiranya anda telah menggunakan modul Bluetooth lain seperti HC-05, maka anda akan melihat program contoh Klasik Bluetooth ESP32 ini sangat serupa.
Idea program ini adalah untuk memulakan sambungan Bluetooth Serial menggunakan ESP32 dan mendengar data dari peranti berpasangan. Sekiranya data yang masuk adalah '1' maka kita menghidupkan LED dan jika '0' kita harus mematikan LED. Kami memulakan program kami dengan menambahkan header file BluetoothSerial yang menjadikan ESP32 Bluetooth berfungsi sebagai Bluetoth SSP.
#include "BluetoothSerial.h" // Fail Header untuk Serial Bluetooth, akan ditambahkan secara lalai ke Arduino
Terdapat banyak perkara yang berlaku di belakang perpustakaan ini, tetapi kami memilih untuk tidak masuk ke dalamnya untuk memastikan perkara menjadi mudah. Perkara seterusnya yang kami perlukan adalah objek untuk operasi berkaitan Bluetooth kami. Di sini saya telah menamakan saya sebagai ESP_BT , tetapi anda boleh memilih mana-mana nama.
BluetoothSerial ESP_BT; // Objek untuk Bluetooth
Seterusnya, di dalam fungsi setup void () . Kami memulakan komunikasi Serial dengan kadar baud 9600 dan memulakan isyarat Bluetooth dengan nama. Di sini saya menamakannya sebagai "ESP32_LED_Control ", ini akan menjadi nama yang akan dijumpai oleh telefon kami ketika cuba memasangkan. Akhirnya saya telah menyatakan pin LED bawaan sebagai pin output kerana kita akan menukarnya berdasarkan isyarat Bluetooth.
persediaan tidak sah () { Serial.begin (9600); // Mulakan monitor bersiri pada 9600 ESP_BT.begin ("ESP32_LED_Control"); // Nama Serial Bluetooth.println anda ("Peranti Bluetooth Sedia Berpasangan"); pinMode (LED_BUILTIN, OUTPUT); // Tentukan bahawa pin LED adalah output }
Di dalam fungsi gelung kosong yang tidak terhingga, kami memeriksa apakah ada data yang masuk dari modul Bluetooth, jika ya maka data dibaca dan disimpan dalam pemboleh ubah yang masuk . Kami juga mencetak nilai ini pada monitor Serial untuk memeriksa apa yang diterima oleh Arduino.
if (ESP_BT.available ()) // Periksa sama ada kami menerima apa-apa dari Bluetooth { masuk = ESP_BT.read (); // Baca apa yang kami terima Serial.print ("Diterima:"); Serial.println (masuk);
Sekarang, data apa pun yang diterima disimpan dalam pemboleh ubah yang masuk , jadi kita dapat membandingkan pemboleh ubah ini secara langsung dengan nilai yang diharapkan dan melakukan tindakan yang diperlukan. Tetapi nilai yang dihantar dari Bluetooth akan dalam bentuk char dan Arduino akan membaca nilai Perpuluhan char yang dihantar dari telefon. Dalam kes kami untuk char '0' nilai perpuluhan akan menjadi 48 dan untuk char '1' nilai perpuluhan adalah 49. Anda boleh merujuk carta ASCII untuk memahami apa yang akan menjadi nilai perpuluhan bagi setiap watak.
Di sini kita telah membandingkan pemboleh ubah masuk dengan 48 dan 49 untuk memeriksa 0 dan 1 masing-masing. Sekiranya ia adalah 1 maka kita mematikan LED dan juga mencetak mesej pengakuan kembali ke Bluetooth yang mengatakan bahawa LED dimatikan dan sebaliknya untuk 0.
jika (masuk == 49) { digitalWrite (LED_BUILTIN, TINGGI); ESP_BT.println ("LED dihidupkan"); } jika (masuk == 48) { digitalWrite (LED_BUILTIN, RENDAH); ESP_BT.println ("LED dimatikan"); }
Menguji Serial Bluetooth dengan ESP32
Sambungkan ESP anda ke Arduino IDE anda dan pilih papan dan port yang betul seperti yang dibincangkan dalam memulakan tutorial. Kerana ia adalah 3 rd pengurus lembaga parti ia mungkin mengambil masa yang lama untuk kod tersebut untuk menyusun dan dimuat naik. Setelah dimuat, lancarkan monitor Serial (hanya untuk penyahpepijatan) dan buka tetapan Bluetooth di telefon anda. Anda harus mencari peranti Bluetooth bernama ESP32_LED_Control dengan.
Sekarang anda dapat membuka mana-mana aplikasi terminal Bluetooth pada telefon pintar anda, saya menggunakan yang bernama "Terminal Bluetooth" yang telah dimuat turun dari Google App store. Sambungkan aplikasi Bluetooth ke peranti yang baru saja kita pasangkan dan taip 1 dan tekan hantar.
Modul ESP32 harus menerimanya dan menyalakan LED mengikut program kami dan juga memberi anda mesej pengakuan yang mengatakan bahawa LED dihidupkan seperti tangkapan skrin yang ditunjukkan di atas. Anda juga boleh memeriksa monitor Serial yang akan menunjukkan data yang diterima oleh ESP32 Bluetooth dalam format perpuluhan iaitu Arduino anda akan membaca 48 untuk 0 dan 49 untuk 1 seperti yang dijelaskan sebelumnya. Ringkasan tetingkap terminal saya ditunjukkan di bawah.
Begitu juga, anda juga harus mematikan LED dengan menghantar 0 dari aplikasi mudah alih. Kerja lengkap ditunjukkan dalam video di bawah. Harap anda memahami tutorial dan mengetahui sesuatu yang berguna. Sekiranya anda mempunyai keraguan, silakan tinggalkan di bahagian komen di bawah atau gunakan forum kami untuk bantuan teknikal yang lain.