Daftar Isi:

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

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

Video: Cara Menggunakan Bluetooth(BLE) Dengan ESP32: 3 Langkah
Video: ESP32 dan Bluetooth : Solusi untuk Komunikasi Serial Mudah dan Efisien 2024, September
Anonim

#####CATATAN#####

Metode yang ditampilkan dalam Instructables ini sudah tua dan ketinggalan zaman. Tonton video ini untuk metode terbaru.

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

Sementara ESP32 menawarkan daftar fitur yang luas (Wikipedia), fitur terbesar yang menarik perhatian adalah built-in bluetooth v4.2 dengan dukungan BLE. Tapi pernyataan itu bisa menyesatkan, sementara perangkat kerasnya ada, dukungan perangkat lunak untuk menggunakan Bluetooth tidak ada. (Ini sedang dalam pengembangan)

Bagi mereka yang tidak tahu apa itu BLE, itu singkatan dari Bluetooth Low Energy. Ini adalah protokol bluetooth yang meningkatkan konsumsi daya yang jauh lebih rendah dibandingkan dengan Bluetooth "Klasik".

Dalam Instruksi ini saya akan menunjukkan kepada Anda bagaimana Anda dapat menggunakan sumber daya (perangkat lunak) terbatas yang Anda inginkan untuk mengirim data dari papan ESP32 ke telepon Anda melalui BLE.

Beberapa Disclaimer…

Beberapa hal catatan yang harus saya sebutkan sebelum Anda melanjutkan lebih jauh dengan panduan ini..

Catatan 1: Ketika saya mengatakan bahwa dukungan Bluetooth belum tersedia, maksud saya di lingkungan pengembangan arduino.

Dukungan yang sangat baik mungkin tersedia di SDK resmi serta IDF tetapi saya belum menemukan instruksi yang kompeten untuk itu.

Catatan 2: Metode yang saya gunakan adalah solusi yang sangat banyak dan bukan cara kerja BLE yang ideal. Dukungan perpustakaan untuk membuat layanan di BLE tidak ada di sini untuk lingkungan arduino.

Satu-satunya hal yang dapat Anda lakukan dengan andal adalah membuat Beacon yang mengiklankan namanya. Sebuah komentar YouTube mengatakannya dengan sangat elegan: "LOL, peretasan brutal. Tapi apa yang bisa Anda lakukan?"

Catatan 3: Satu-satunya jenis data yang dapat Anda kirim adalah string.

Anda mungkin memutuskan untuk mengkode dan mendekode data jenis lain ke dan dari string tetapi itu di luar cakupan panduan ini.

Langkah 1: Contoh Build

Image
Image
Contoh Build
Contoh Build
Contoh Build
Contoh Build
Contoh Build
Contoh Build

Jika Anda hanya di sini untuk penjelasannya maka Anda dapat melewati langkah ini tetapi melaluinya mungkin memberi Anda sedikit lebih banyak kejelasan..

Pertama saya akan membuat proyek contoh dan kemudian saya akan mencoba menjelaskan cara kerjanya dan bagaimana Anda dapat mereplikasi komunikasi Bluetooth. Kami akan membangun sensor suhu portabel yang mengirimkan umpan langsung ke ponsel cerdas Anda. Build dapat berjalan selama berhari-hari dengan satu li-po dan dengan mudah menunjukkan manfaat BLE.

Anda dapat menggunakan modul sebagai tatakan gelas untuk menyekat minuman Anda dan mendapatkan pemberitahuan segera setelah minuman Anda mencapai suhu optimal. Karena itu akan menjadi parodi jika Anda harus menyesap teh yang derajatnya di atas 40.

Satu-satunya perangkat keras yang Anda butuhkan adalah papan ESP32 dan sensor suhu digital. Papan saya mendukung baterai eksternal jadi saya menggunakan li-po 3.7v yang saya selamatkan dari beberapa perangkat lama untuk membuat proyek ini portabel.

Perangkat keras

Koneksi untuk sensor suhu sederhana. Kabel merah terhubung ke 3.3v, hitam terhubung ke ground (gnd), kuning terhubung ke GPIO 2 yang di papan saya ditandai sebagai D9. Hubungkan resistor 4,7k ohm antara kabel merah dan kuning. Saya tidak menggunakan resistor, sebaliknya saya menggunakan terminal plug-able 3 pin yang disertakan dengan sensor saya. Ini memiliki resistor pull-up bawaan.

Li-po harus benar-benar dihubungkan menggunakan konektor JST tetapi saya tidak mau repot untuk membelinya jadi saya hanya memasang beberapa kabel jumper (wanita ke wanita) ke dalam konektor dan menyolder pasangan lain ke terminal baterai. Ini menghasilkan koneksi yang andal dan sakelar daya darurat.

Sekarang sebagai penutup proyek, saya menggunakan disk styrofoam yang telah dipotong dari lembaran yang lebih besar. Ini membuat isolator yang bagus. Disk lain yang jauh lebih kecil terjebak di atas tetapi sedikit ke samping. Ini untuk membungkus kabel yang lebih panjang sehingga tidak menggantung di semua tempat. Setelah banyak lem Anda dan lubang kecil untuk probe sensor, Anda siap untuk melanjutkan ke perangkat lunak.

Perangkat lunak

Jika Anda belum menginstal arduino IDE, buka tautan ini untuk mengunduhnya. Perangkat lunak arduino secara default tidak dilengkapi dengan definisi papan untuk berbagai papan ESP32. Untuk membuat mereka membuka tautan ini dan mengunduh file dalam zip. Anda perlu membuka ritsletingnya ke lokasi ini:

C:/Pengguna//Dokumen/Arduino/perangkat keras/espserrif/ESP32

Di mana nama pengguna Anda di PC Anda. Pastikan bahwa berbagai file tersedia di bawah folder ESP32 dan tidak di bawah folder lain.

Sekarang jika Anda memulai perangkat lunak arduino dan pergi ke alat-> papan Anda akan melihat berbagai papan ESP32 saat Anda menggulir ke bawah.

Sebagian besar sensor suhu digital menggunakan protokol OneWire untuk berkomunikasi dengan pengontrol mikro sehingga kita perlu mendapatkan perpustakaan. Pergi ke sketch->include library->manage libraries dan cari onewire dan install library yang terlalu banyak penulisnya. Anda tidak memerlukan hub onewire. Abaikan itu.

Sekarang Anda dapat mengunduh dan membuka kode yang dilampirkan pada langkah ini (temperature-example.ino).

Jika Anda menggunakan sensor yang berbeda dari saya maka Anda harus mengubah kode yang sesuai. Ganti kode di bawah getTemp(). Cukup kembalikan suhu akhir dalam bentuk

Kembali;

Dimana pelampung yang berisi suhu.

Pasang papan, pilih papan dan port yang benar dari bawah alat dan tekan unggah.

Jika kode menolak untuk diunggah, lepaskan sensor dan sambungkan GPIO 0 ke ground. Pulihkan koneksi setelah pengunggahan.

ESP Anda sekarang seharusnya meneriakkan suhu kopi Anda kepada dunia tetapi Anda membutuhkan seseorang yang dapat memahaminya.

Aplikasi Android

Maaf pengguna iPhone (…tidak juga).

Unduh apk dari sini dan instal. Saat Anda memulai aplikasi, Anda akan disambut dengan antarmuka yang sangat sederhana.

Jika Anda mendapatkan pesan kesalahan yang mengatakan 'iklan tidak didukung', klik OK dan abaikan tetapi jika Anda mendapatkan pesan bahwa 'BLE tidak didukung' maka ponsel Anda tidak memiliki Bluetooth 4.0 atau lebih tinggi dan tidak akan dapat berjalan aplikasi.

Pastikan Bluetooth di ponsel Anda aktif dan klik 'Mulai Pemindaian', selama esp berada dalam jangkauan dan dihidupkan Anda akan menerima beberapa nilai suhu.

Kemungkinan kesalahan:

  • -1000:: Ini berarti perangkat Anda tidak dapat menemukan ESP. pastikan Bluetooth aktif dan coba mulai ulang ESP.
  • SNA:: Ini berarti ponsel Anda menerima data dari ESP tetapi ESP itu sendiri tidak dapat menemukan sensor suhu pada GPIO 2. Pastikan koneksi aman, lihat apakah Anda menggunakan resistor dengan nilai yang benar. Periksa kembali dengan skema papan Anda bahwa Anda terhubung ke GPIO 2 dan bukan pin yang ditandai sebagai D2.

Langkah 2: Penjelasannya

Cara kerja BLE biasanya adalah perangkat mengiklankan namanya seperti suar, nama ini dapat dilihat oleh siapa saja dan digunakan untuk mengidentifikasi perangkat. Kemudian perangkat dapat membuat berbagai layanan yang terlihat oleh orang lain saat mereka terhubung. Layanan ini dapat memiliki aliran data yang berbeda.

Untuk misalnya Perangkat bernama 'Stasiun Cuaca' dapat diservis di bawahnya seperti 'Suhu', 'Kelembaban', dan 'Angin'. Ketika perangkat BLE lain seperti ponsel cerdas Anda memindai perangkat, itu akan melihat Stasiun Cuaca dan ketika terhubung, itu akan dapat menerima aliran data di bawah yang sesuai dengan layanan yang berbeda.

Pustaka (untuk ESP32) yang saat ini tersedia bagi kami memungkinkan kami membuat suar yang dapat ditemukan orang lain, tetapi hanya sebatas itu. Kami tidak dapat membuat layanan dan juga tidak dapat menghubungkan perangkat apa pun.

Jadi cara saya mengirim data tanpa membuat layanan adalah dengan menggunakan teknik yang mirip dengan protokol WiFi yang disebut Beacon Stuffing. Ini berarti saya menyertakan data yang akan dikirim dalam nama beacon itu sendiri. Ini memungkinkan saya untuk mengiklankan data tanpa memerlukan perangkat lain untuk terhubung 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 tetap tidak berubah di awal nama dan diganti dengan data terbaru yang dikembalikan oleh fungsi getValue() setiap 100 milidetik.

float getValue(){mengembalikan nilai sensor;}

Aplikasi android mencari nama perangkat BLE yang dimulai dengan 'ESP', setelah ditemukan, itu membagi nama dan hanya menampilkan data dari akhir.

Komunikasi hanya satu arah, aplikasi tidak mengirim apa pun kembali.

Langkah 3: Kesimpulan

Pada akhirnya, metode ini bukan pengganti untuk perpustakaan BLE yang diimplementasikan dengan benar tetapi mungkin cukup untuk menyelesaikan beberapa proyek sampai dukungan BLE lengkap datang ke Arduino. Semoga Instructables ini bisa membantu Anda.

Terima kasih BESAR kepada DFRobot.com karena telah mengirimi saya produk-produk ini:

  • Papan FireBeetle ESP32
  • Perisai Ekspansi FireBeetle
  • Sensor Suhu DS18B20

Saya baru-baru ini menemukan perpustakaan ini. ReadME mengklaim bahwa Anda dapat terhubung ke perangkat BLE lain untuk menerima data (Tidak dapat mengiklankan diri Anda sendiri). Saya belum mencobanya tetapi Anda dapat memeriksanya jika Anda tertarik.

Anda dapat memeriksa video proyek di: YouTube

Direkomendasikan: