Isi kandungan:

Cara Menggunakan Bluetooth (BLE) Dengan Langkah ESP32: 3
Cara Menggunakan Bluetooth (BLE) Dengan Langkah ESP32: 3

Video: Cara Menggunakan Bluetooth (BLE) Dengan Langkah ESP32: 3

Video: Cara Menggunakan Bluetooth (BLE) Dengan Langkah ESP32: 3
Video: BELAJAR ARDUINO #105 - Cara Menggunakan Fitur Bluetooth Pada ESP32 2024, Jun
Anonim

#####CATATAN#####

Kaedah yang ditunjukkan dalam Instructables ini sudah lama dan ketinggalan zaman. Tonton video ini untuk kaedah terkini.

###############

Walaupun ESP32 mempunyai senarai ciri yang luas (Wikipedia), ciri terbesar yang menarik perhatian adalah bluetooth v4.2 bawaan dengan sokongan BLE. Tetapi pernyataan itu boleh mengelirukan, sementara perkakasan ada, sokongan perisian untuk menggunakan Bluetooth tidak ada. (Ia sedang dalam pembangunan)

Bagi mereka yang tidak tahu apa itu BLE, ia bermaksud Bluetooth Low Energy. Ini adalah protokol bluetooth yang meningkatkan penggunaan kuasa yang jauh lebih rendah daripada Bluetooth "Classic".

Dalam Instruksional ini saya akan menunjukkan kepada anda bagaimana anda boleh menggunakan sumber daya (perisian) terhad yang anda ada untuk menghantar data dari papan ESP32 ke telefon anda melalui BLE.

Beberapa Penafian …

Beberapa perkara yang perlu saya nyatakan sebelum anda meneruskan panduan ini.

Catatan 1: Apabila saya mengatakan bahawa sokongan Bluetooth belum tersedia, maksud saya dalam persekitaran pengembangan arduino.

Sokongan ini mungkin terdapat di SDK rasmi dan juga IDF tetapi saya tidak menemui arahan yang cekap.

Nota 2: Kaedah yang saya gunakan adalah jalan penyelesaian dan bukan bagaimana BLE sesuai untuk berfungsi. Perpustakaan menyokong untuk mewujudkan perkhidmatan di BLE tidak ada di sini untuk persekitaran arduino.

Satu-satunya perkara yang boleh anda lakukan dengan pasti ialah membuat Beacon yang mengiklankan namanya. Komen YouTube menyatakannya dengan sangat elegan: "LOL, peretasan yang kejam. Tetapi apa yang boleh anda lakukan?"

Catatan 3: Satu-satunya jenis data yang boleh anda hantar adalah rentetan.

Anda mungkin memutuskan untuk membuat kod dan menyahkod data jenis lain ke dan dari rentetan tetapi itu di luar skop panduan ini.

Langkah 1: Contoh Binaan

Image
Image
Contoh Binaan
Contoh Binaan
Contoh Binaan
Contoh Binaan
Contoh Binaan
Contoh Binaan

Sekiranya anda berada di sini untuk mendapatkan penjelasan maka anda boleh melangkau langkah ini tetapi melaluinya mungkin akan memberi anda sedikit lebih jelas..

Mula-mula saya akan membina projek contoh dan kemudian saya akan cuba menerangkan bagaimana ia berfungsi dan bagaimana anda dapat meniru komunikasi Bluetooth. Kami akan membina sensor suhu mudah alih yang menghantar suapan langsung ke telefon pintar anda. Pembinaan dapat berjalan selama beberapa hari pada satu li-po dan dengan mudah menunjukkan kelebihan BLE.

Anda boleh menggunakan modul sebagai pelindung untuk melindungi minuman anda dan mendapatkan pemberitahuan sebaik sahaja minuman anda mencapai suhu optimum. Kerana akan menjadi kebodohan jika anda harus menghirup teh yang berada di atas 40.

Satu-satunya perkakasan yang anda perlukan ialah papan ESP32 dan sensor suhu digital. Papan saya menyokong bateri luaran jadi saya menggunakan li-po 3.7v yang saya selamatkan dari beberapa peranti lama untuk menjadikan projek ini mudah alih.

Perkakasan

Sambungan untuk sensor suhu mudah. Kawat merah menyambung ke 3.3v, hitam menyambung ke tanah (gnd), kuning menyambung ke GPIO 2 yang di papan saya ditandakan sebagai D9. Sambungkan perintang 4.7k ohm antara wayar merah dan kuning. Saya tidak menggunakan perintang, sebaliknya saya menggunakan terminal 3 pin yang boleh disertakan dengan sensor saya. Ia mempunyai perintang tarik ke atas.

Li-po semestinya disambungkan menggunakan penyambung JST tetapi saya tidak terganggu untuk membelinya, jadi saya hanya memasang kabel pelompat (wanita ke wanita) ke dalam penyambung dan menyolder pasangan lain ke terminal bateri. Ini menjadikan sambungan boleh dipercayai dan suis kuasa sementara.

Sekarang sebagai penutup projek, saya menggunakan cakera Styrofoam yang telah dipotong dari lembaran yang lebih besar. Ini menjadikan penebat yang hebat. Satu lagi cakera yang lebih kecil tersekat di atas tetapi sedikit ke sisi. Ini untuk membungkus panjang kabel yang lebih panjang sehingga tidak tergantung di seluruh tempat. Setelah menggunakan lem anda dan lubang kecil untuk probe sensor, anda bersedia untuk meneruskan perisian.

Perisian

Sekiranya anda belum memasang arduino IDE, pergi ke pautan ini untuk memuat turunnya. Perisian arduino secara lalai tidak dilengkapi dengan definisi papan untuk pelbagai papan ESP32. Untuk membuat mereka pergi ke pautan ini dan memuat turun fail secara zip. Anda perlu membuka zip ke lokasi ini:

C: / Pengguna // Dokumen / Arduino / perkakasan / espserrif / ESP32

Di manakah nama pengguna anda di PC anda. Pastikan pelbagai fail tersedia di bawah folder ESP32 dan tidak berada di bawah folder lain.

Sekarang jika anda memulakan perisian arduino dan pergi ke alat-> papan anda harus melihat pelbagai papan ESP32 semasa anda menatal ke bawah.

Sebilangan besar sensor suhu digital menggunakan protokol OneWire untuk berkomunikasi dengan pengawal mikro jadi kita perlu mendapatkan perpustakaan. Pergi ke sketsa-> sertakan perpustakaan-> uruskan perpustakaan dan cari onewire dan pasang perpustakaan yang terlalu banyak pengarang. Anda tidak memerlukan hab onewire. Abaikan.

Sekarang anda boleh memuat turun dan membuka kod yang dilampirkan pada langkah ini (suhu-contoh.ino).

Sekiranya anda menggunakan sensor yang berbeza dari saya, anda perlu menukar kodnya dengan sewajarnya. Ganti kod di bawah getTemp (). Kembalikan suhu akhir dalam bentuk

Kembali;

Di manakah apungan yang mengandungi suhunya.

Pasangkan papan, pilih papan dan port yang betul dari bawah alat dan tekan muat naik.

Sekiranya kod enggan memuat naik, putuskan sensor dan sambungkan GPIO 0 ke tanah. Pulihkan sambungan selepas muat naik.

ESP anda sekarang semestinya menjerit suhu kopi anda ke dunia tetapi anda memerlukan seseorang yang dapat memahaminya.

Aplikasi Android

Maaf pengguna iPhone (… sebenarnya tidak).

Muat turun apk dari sini dan pasangkannya. Semasa anda memulakan aplikasi, anda akan disambut dengan antara muka yang sangat sederhana.

Sekiranya anda mendapat mesej ralat yang mengatakan 'iklan tidak disokong', klik OK dan abaikan tetapi jika anda mendapat mesej bahawa 'BLE tidak disokong' maka telefon anda tidak mempunyai Bluetooth 4.0 atau lebih tinggi dan tidak dapat dijalankan aplikasi itu.

Pastikan Bluetooth di telefon anda dihidupkan dan klik 'Mula Memindai', selagi jaraknya berada dalam jarak dekat dan dihidupkan, anda harus menerima beberapa nilai suhu.

Kesalahan yang mungkin berlaku:

  • -1000:: Ini bermaksud bahawa peranti anda tidak dapat menemui ESP. pastikan Bluetooth dihidupkan dan cuba mulakan semula ESP.
  • SNA:: Ini bermaksud bahawa telefon anda menerima data dari ESP tetapi ESP itu sendiri tidak dapat menemui sensor suhu pada GPIO 2. Pastikan sambungannya selamat, lihat apakah anda menggunakan perintang dengan nilai yang betul. Periksa semula dengan skema papan anda bahawa anda disambungkan ke GPIO 2 dan bukan pin yang ditandai sebagai D2.

Langkah 2: Penjelasannya

Cara BLE biasanya berfungsi adalah bahawa perangkat mengiklankan namanya seperti suar, nama ini dapat dilihat oleh siapa saja dan digunakan untuk mengenal pasti peranti tersebut. Kemudian peranti tersebut dapat membuat pelbagai perkhidmatan yang dapat dilihat oleh orang lain ketika mereka menyambungkannya. Perkhidmatan ini boleh mempunyai aliran data yang berbeza.

Contohnya. Peranti bernama ‘Weather Station’ dapat diservis di bawahnya seperti ‘Temperature’, ‘Humidity’ dan ‘Wind’. Apabila peranti BLE lain seperti telefon pintar anda mengimbas peranti, ia akan melihat Weather Station dan ketika menyambungkannya, ia akan dapat menerima aliran data di bawah yang sesuai dengan perkhidmatan yang berbeza.

Perpustakaan (untuk ESP32) yang ada pada masa ini membolehkan kami membuat suar yang dapat dijumpai oleh orang lain tetapi sejauh ini. Kami tidak dapat membuat perkhidmatan dan tidak ada peranti yang dapat menyambungkannya.

Jadi bagaimana saya mengirim data tanpa membuat perkhidmatan adalah dengan menggunakan teknik yang serupa dengan protokol WiFi yang disebut Beacon Stuffing. Ini bermaksud bahawa saya memasukkan data yang akan dihantar dalam nama suar itu sendiri. Ini membolehkan saya mengiklankan data tanpa memerlukan peranti lain untuk menyambung ke suar.

ble.begin (beaconMsg); // beaconMsg adalah nama yang diiklankan

Kami menggunakan perpustakaan SimpleBLE untuk membuat suar dengan namanya dalam format ESP. Di mana ‘ESP’ selalu tidak berubah pada awal nama dan digantikan dengan data terkini yang dikembalikan oleh fungsi getValue () setiap 100 milisaat.

float getValue () {return sensorValue;}

Aplikasi android mencari nama peranti BLE bermula dengan 'ESP', setelah dijumpai, ia membelah nama dan hanya memaparkan data dari akhir.

Komunikasi hanya dengan satu cara, aplikasi tidak menghantar apa-apa.

Langkah 3: Kesimpulannya

Pada penghujung hari, kaedah ini bukan pengganti perpustakaan BLE yang dilaksanakan dengan betul tetapi mungkin cukup untuk mengatasi beberapa projek sehingga sokongan BLE lengkap sampai ke Arduino. Semoga Instructables ini dapat membantu anda.

Terima kasih kepada DFRobot.com kerana menghantar produk ini kepada saya:

  • Papan FireBeetle ESP32
  • FireBeetle Expantion Shield
  • Sensor Suhu DS18B20

Saya baru-baru ini menjumpai perpustakaan ini. ReadME mendakwa bahawa anda boleh menyambung ke peranti BLE lain untuk menerima data (Tidak dapat mengiklankan sendiri). Saya belum mencubanya tetapi anda boleh menyemaknya jika anda berminat.

Anda boleh menyemak video projek di: YouTube

Disyorkan: