Daftar Isi:

Generator Kode ESP32 - Wifi, BLE, Bluetooth: 9 Langkah
Generator Kode ESP32 - Wifi, BLE, Bluetooth: 9 Langkah

Video: Generator Kode ESP32 - Wifi, BLE, Bluetooth: 9 Langkah

Video: Generator Kode ESP32 - Wifi, BLE, Bluetooth: 9 Langkah
Video: Avoid Hard Coding ESP32 ||update Wi-Fi credentials using Bluetooth Application. 2024, November
Anonim
Generator Kode ESP32 - Wifi, BLE, Bluetooth
Generator Kode ESP32 - Wifi, BLE, Bluetooth

pengantar

ESP32 adalah chip prosesor ganda berbiaya rendah, dengan dukungan WiFi, Bluetooth Classic, dan BLE (Bluetooth Low Energy). Meskipun chip telah keluar selama beberapa tahun, dukungan kode untuk Arduino masih belum lengkap (seperti pada April 2018), tetapi generator kode dan instruksi ini mengisi fungsi BLE dan analogWrite yang hilang.

Tip: ESP32 tidak memiliki fungsi analogWrite 'arduino standar'. Namun pembuat kode ini, menghasilkan kode yang mensimulasikannya untuk Anda

Tip: Penginstalan kode ESP tidak menyertakan dukungan BLE. Instalasi yang dijelaskan di sini termasuk dukungan BLE

Halaman web ini akan mencakup pengaturan Arduino IDE untuk memprogram ESP32 untuk koneksi BLE, Bluetooth atau WiFi. pfodDesigner menghasilkan kode untuk masing-masing jenis koneksi ini dan juga menghasilkan kode untuk mensimulasikan fungsi analogWrite yang hilang.

ESP32 adalah chip prosesor ganda berbiaya rendah, dengan dukungan WiFi, Bluetooth Classic, dan BLE (Bluetooth Low Energy). Meskipun chip telah keluar selama beberapa tahun, dukungan kode untuk Arduino masih belum lengkap (seperti pada April 2018), tetapi tutorial dan generator kode ini mengisi fungsi BLE dan analogWrite yang hilang. Halaman web ini akan mencakup penyiapan Arduino IDE untuk memprogram ESP32 untuk koneksi BLE, Bluetooth atau WiFi. pfodDesigner menghasilkan kode untuk masing-masing jenis koneksi ini dan juga menghasilkan kode untuk mensimulasikan fungsi analogWrite yang hilang.

Add-on Arduino mendukung sekitar 31 papan ESP32. Saat menggunakan pfodDesigner, Anda harus memilih koneksi pin yang cocok dengan yang tersedia di papan khusus Anda. Sparkfun ESP32 Thing (atau Adafruit HUZZAH32 Feather) digunakan di sini sebagai contoh papan ESP32, tetapi Anda dapat menggunakan kode untuk salah satu dari 31 papan ESP32 yang didukung.

Aplikasi Android pfodDesignerV3 gratis digunakan untuk membuat menu kontrol (WYSIWYG) dan kemudian menghasilkan kode untuk ESP32, baik untuk koneksi BLE, WiFi, atau Bluetooth. Setelah memprogram papan ESP32 Anda, Anda kemudian dapat menggunakan aplikasi Android pfodApp (berbayar) untuk terhubung ke ESP32 Anda (melalui BLE atau WiFi atau Bluetooth) dan menampilkan menu kontrol Anda dan mengontrol ESP32 Anda. Jika Anda tidak ingin menggunakan pfodApp, Anda masih dapat menggunakan kode yang dihasilkan sebagai dasar untuk koneksi WiFi, BLE (Nordic UART) atau Bluetooth Anda sendiri karena menyediakan antarmuka Stream (cetak/baca) untuk masing-masing jenis koneksi ini.

Langkah 1: Tip: Memasang Dukungan Arduino untuk ESP32 Dengan Dukungan BLE

Pada April 2018, menginstal dukungan Arduino ESP32 lebih terlibat daripada sebagian besar papan lain dan pustaka kode yang disediakan tidak lengkap. Anda tidak dapat menggunakan manajer Arduino Board untuk menginstal dukungan ESP32. Ikuti langkah-langkah ini untuk mengatur Arduino untuk pemrograman ESP32. Ini akan menginstal ESP32 dan juga dukungan BLE.

1 Temukan jalur Direktori lokasi Arduino Sketchbook Anda. Buka Arduino IDE dan lihat di bawah File-> Preferences dan di bagian atas layar itu Anda akan melihat lokasi Sketchbook.

2 Unduh file ESP32_hardware.zip ini dan unzip ke lokasi Sketchbook. Itu membuat sub-direktori perangkat keras di sana. Jika Anda sudah memiliki sub-direktori perangkat keras di lokasi Sketchbook Anda, gabungkan isinya dengan yang ini.

3 Instal Alat Xtensa dan ESP32. Catatan: Pengunduhan dan penginstalan ini membutuhkan waktu untuk memproses ~0.5Gig file. Buka direktori hardware\espressif\esp32\tools kemudian Untuk mesin Windows jalankan file get.exe. Untuk pengguna Mac dan Linux, jalankan skrip python get.py untuk mengunduh alat. Menggunakan terminal, navigasikan ke folder hardware/espressif/esp32/tools. Kemudian ketik: python get.py Skrip python “get.py” akan mengunduh alat Xtensa GNU dan kit pengembangan perangkat lunak (SDK) ESP32, dan mengekstraknya ke lokasi yang tepat.

Anda akan melihat beberapa folder baru di direktori "tools", termasuk "sdk" dan "xtensa-esp32-elf" setelah selesai.

Setelah ini selesai, tutup dan buka kembali Arduino IDE Anda dan Anda sekarang akan memiliki daftar panjang papan ESP32 untuk dipilih di bawah menu Alat-> Papan. Pilih “SparkFun ESP32 Thing” (atau “Adafruit ESP32 Feather”)

Anda kemudian dapat membuka daftar File-Contoh untuk melihat sejumlah file contoh ESP32

Proses di atas menginstal snapshot kode github untuk dukungan ESP32 dan BLE yang telah digabungkan menjadi satu file zip. Kode yang dihasilkan pfodDesigner dan contoh di bawah ini menggunakan versi pustaka tersebut. Jika Anda menginginkan versi terbaru, dengan kemungkinan serangkaian fitur dan bug yang berbeda, unduh zip versi terbaru https://github.com/espressif/arduino-esp32 dan unzip ke hardware/espressif dan ganti nama folder esp32 dan kemudian untuk dukungan BLE unduh zip versi terbaru https://github.com/espressif/arduino-esp32 dan unzip ke folder esp32/libraries dan ganti namanya menjadi ESP32_BLE_Arduino (jika perlu).

Langkah 2: Menginstal Pustaka PfodParser untuk ESP32

a) Kemudian unduh pfodParser.zip library V3.23+, pfodDwgControls.zip dan, untuk ESP32 WiFi, pfodESP32BufferedClient.zip, file zip ke komputer Anda, pindahkan ke desktop atau folder lain yang dapat Anda temukan dengan mudah.

b) Kemudian gunakan opsi menu IDE Arduino 1.8.2 Sketch → Import Library → Add Library untuk menginstalnya. (Jika Arduino tidak mengizinkan Anda menginstalnya karena perpustakaan sudah ada, cari dan hapus folder pfodParser, pfodCmdParser atau pfodCHAP dll yang lebih lama dan kemudian impor yang ini)

c) Hentikan dan mulai ulang Arduino IDE dan di bawah File->Contoh Anda sekarang akan melihat pfodParser, pfodDwgControls dan pfodESP32BufferedClient perpustakaan dan sejumlah contoh.

Langkah 3: Menggunakan PfodDesignerV3 untuk ESP32

Aplikasi pfodDesignerV3 (V3291+) gratis mendukung pembuatan kode untuk chip ESP32 agar terhubung melalui BLE, WiFi, atau Bluetooth Classic ke pfodApp (berbayar).

Ada banyak tutorial yang ada tentang cara membuat kontrol untuk ponsel Android Anda untuk mengontrol berbagai papan menggunakan pfodDesignerV3. Dengan pfodDesignerV3 Anda dapat membuat kontrol yang mengaktifkan/menonaktifkan output atau mengaktifkannya, mengontrol output melalui PWM, menampilkan status input atau nilai analog, mencatat dan memplot data dan sub-menu, dan banyak lagi.

Tip: Dukungan Arduino ESP32 mencakup dukungan untuk sekitar 31 papan ESP32 yang berbeda. pfodDesignerV3 memberi Anda akses ke semua pin I/O ESP32 tetapi tidak semua papan menghubungkan semua pin ESP32 ke pin papan. Periksa dokumentasi board Anda tentang pin mana yang tersedia dan lihat file pins_arduino.h di bawah direktori hardware\espressif\esp32\variants board Anda.

daftar pin pfodDesignerV3 mencakup komentar tentang ketersediaan dan pin penggunaan khusus untuk Sparkfun ESP32 Thing dan Adafruit HUZZAH32 – ESP32 Feather Boards.

Contoh-contoh ini menggunakan papan Sparkfun ESP32 Thing dan membuat penggeser untuk mengontrol kecerahan LED onboard yang terhubung ke pin 5 dari ponsel Android Anda. Jika Anda menggunakan papan Adafruit HUZZAH32 – ESP32 Feather sebagai gantinya maka Led onboard terhubung ke pin 13. Dukungan Arduino ESP32, yang dipasang di atas, tidak mendukung analogWrite Arduino secara langsung. Alih-alih, ESP32 memiliki 16 saluran PWM yang dapat Anda kontrol dan sambungkan ke salah satu output. pfodDesignerV3 menghasilkan semua kode yang diperlukan untuk mengalokasikan saluran dan menghubungkannya ke output yang Anda pilih. Instal pfodDesignerV3 (V3291+) gratis dari google play.

Langkah 4: Generator Kode ESP32 BLE

Generator Kode ESP32 BLE
Generator Kode ESP32 BLE
Generator Kode ESP32 BLE
Generator Kode ESP32 BLE
Generator Kode ESP32 BLE
Generator Kode ESP32 BLE
Generator Kode ESP32 BLE
Generator Kode ESP32 BLE

Mulai Menu baru

Klik tombol Target untuk mengubah perangkat target.

Contoh target pertama adalah ESP32 BLE jadi klik tombol Bluetooth Low Energy.

Pilih ESP32 terhubung melalui BLE lalu tekan tombol kembali ponsel untuk kembali ke layar utama.

Langkah 5: Merancang Menu - Prompt

Merancang Menu - Prompt
Merancang Menu - Prompt
Merancang Menu - Prompt
Merancang Menu - Prompt
Merancang Menu - Prompt
Merancang Menu - Prompt

Contoh sederhana ini hanya akan memiliki prompt dan satu kontrol. Klik tombol Edit Prompt dan kemudian tombol Edit Teks Prompt untuk mengatur teks prompt.

Di sini prompt diatur ke "ESP32 Led". Klik tombol centang untuk menyimpan hasil edit Anda dan kembali ke layar sebelumnya. Kemudian klik Set Background color untuk memilih over all color untuk menu kontrol.

Anda dapat memilih warna yang berbeda untuk setiap kontrol. Ada berbagai format lain yang tersedia untuk prompt. Di sini latar belakang diatur ke Biru dan ukuran font +5 dan teksnya Tebal. Pratinjau prompt yang diformat ditampilkan di bagian bawah layar Prompt Pengeditan.

Langkah 6: Mendesain Menu - Kontrol Led PWM

Merancang Menu - Kontrol Led PWM
Merancang Menu - Kontrol Led PWM
Merancang Menu - Kontrol Led PWM
Merancang Menu - Kontrol Led PWM
Merancang Menu - Kontrol Led PWM
Merancang Menu - Kontrol Led PWM
Merancang Menu - Kontrol Led PWM
Merancang Menu - Kontrol Led PWM

Gunakan tombol kembali ponsel untuk kembali ke menu utama dan kemudian klik Tambah Item Menu untuk menambahkan item kontrol atau tampilan.

Pilih item Keluaran PWM. Pratinjau kontrol ditampilkan di bagian atas layar.

Tip: ESP32 tidak memiliki fungsi analogWrite 'arduino standar'. Namun pembuat kode ini, menghasilkan kode yang mensimulasikannya untuk Anda

Klik tombol Edit Leading Text dan ubah “PWM Setting” menjadi “Led” Perhatikan spasi tambahan untuk memisahkan “Led” dari indikasi %.

Klik tombol centang untuk menyimpan hasil edit Anda, lalu gulir ke bawah ke tombol “Tidak terhubung ke pin I/O”.

Klik tombol itu untuk menampilkan daftar pin yang dapat digunakan sebagai output.

Ini menunjukkan pin penggunaan khusus untuk papan Sparkfun ESP32 Thing dan Adafruit HUZZAH32 Feather. Pilih pin 5 sehingga kontrol slider akan mengontrol kecerahan led on-board Sparkfun ESP32 Thing. Jika Anda menggunakan papan Adafruit HUZZAH32 Feather, pilih pin 13 sebagai gantinya. Untuk papan lain, periksa dokumentasi papan Anda dan file pins_arduino.h di bawah direktori hardware\espressif\esp32\variants papan Anda

Kemudian, ketika Anda telah selesai membuat pengaturan pemformatan lain untuk penggeser ini, gunakan tombol kembali ponsel untuk kembali ke menu utama dan klik Menu Pratinjau untuk melihat seperti apa tampilan menu terakhir di ponsel Anda saat ditampilkan oleh pfodApp. Kontrolnya aktif sehingga Anda dapat memindahkannya di pratinjau.

Langkah 7: Hasilkan Kode ESP32

Hasilkan Kode ESP32
Hasilkan Kode ESP32
Hasilkan Kode ESP32
Hasilkan Kode ESP32

Kembali ke menu utama dan gulir ke bawah ke tombol Generate Code.

Klik tombol Generate Code dan kemudian klik tombol Write Code to File untuk menghasilkan kode

Keluar dari pfodDesignerV3 dan transfer kode di /pfodAppRawData/pfodDesignerV3.txt dari ponsel Anda ke komputer Anda. Lihat pfodAppForAndroidGettingStarted.pdf untuk mengetahui cara melakukannya. Aplikasi transfer file wifi pro oleh smarterDroid adalah salah satu cara untuk melakukan transfer.

Menggunakan tombol "Ubah Target" pada layar Hasilkan Kode, Anda dapat beralih antara ESP32 melalui BLE, ESP32 melalui Bluetooth dan ESP32 melalui WiFi

Langkah 8: Menjalankan Contoh

Menjalankan Contoh
Menjalankan Contoh

Menggunakan tombol "Ubah Target" pada layar Hasilkan Kode, Anda dapat beralih antara ESP32 melalui BLE, ESP32 melalui Bluetooth dan ESP32 melalui WiFi

Ini adalah bagaimana tiga contoh sketsa berikut dihasilkan dari desain di atas.

Menjalankan contoh pfodESP32_BLE

Mengatur Target ke ESP32 melalui BLE menghasilkan kode di pfodESP32_LED_BLE.ino Sketsa ini juga tersedia di File->Contoh->pfodParser. Buka contoh itu, kemudian, setelah memprogram Sparkfun ESP32 Thing (atau papan ESP32 lainnya), Anda kemudian harus mengatur koneksi ke pfodApp (lihat pfodAppForAndroidGettingStarted.pdf untuk detailnya) dan sambungkan dan dapat menyesuaikan kecerahan papan dipimpin.

TIPS: ESP32 menggunakan alamat bluetooth yang sama untuk BLE dan Bluetooth, jadi jika sebelumnya Anda telah menyiapkan koneksi Bluetooth ESP32 di pfodApp, Anda perlu menghapus koneksi Bluetooth pfodApp tersebut sebelum menyiapkan koneksi BLE, karena pfodApp memfilter koneksi yang ada (dengan alamat) dari daftar tampilan perangkat yang tersedia. Anda mungkin juga perlu membuka pengaturan ponsel Anda dan 'melupakan' koneksi Bluetooth ESP32 lalu matikan Bluetooth ponsel dan reboot ponsel Anda untuk menghapus tumpukan Bluetooth

TIPS: Pustaka ESP32_BLE_Arduino dari Neil Kolban tidak kompatibel dengan pustaka BLEPeripheral dari Sandeep Mistry yang digunakan oleh beberapa target BLE lain yang dihasilkan oleh pfodDesigner. Jadi Anda perlu menghapus direktori BLEPeripheral, (jika ada), dari direktori Arduino/libraries Anda untuk mengkompilasi sketsa ESP32 BLE.

Menjalankan contoh pfodESP32_Bluetooth

Mengatur Target ke ESP32 melalui Bluetooth menghasilkan kode di pfodESP32_LED_Bluetooth.ino Sketsa ini juga tersedia di File->Contoh->pfodParser. Buka contoh itu, lalu programkan Sparkfun ESP32 Thing (atau papan ESP32 lainnya). Anda perlu memasangkan ESP32 dengan telepon Anda, tidak perlu nomor pin. Kemudian atur koneksi ke pfodApp (lihat pfodAppForAndroidGettingStarted.pdf untuk detailnya) dan sambungkan dan dapat menyesuaikan kecerahan papan led.

Menjalankan contoh pfodESP32_WiFi

Mengatur Target ke ESP32 melalui WiFi menghasilkan kode di pfodESP32_LED_WiFi.ino Sketsa ini juga tersedia di File->Contoh->pfodParser. Buka contoh itu dan masukkan nama dan kata sandi jaringan Anda dan pilih IP statis untuk perangkat ini. Kemudian, setelah memprogram Sparkfun ESP32 Thing (atau papan ESP32 lainnya), Anda harus mengatur koneksinya di pfodApp (lihat pfodAppForAndroidGettingStarted.pdf untuk detailnya) dan sambungkan dan dapat menyesuaikan kecerahan papan led.

Langkah 9: Keamanan WiFi

Jika terhubung ke ESP32 melalui internet (via wifi), maka keamanan itu penting. Anda tidak ingin sembarang orang dapat membuka pintu garasi Anda, misalnya. Generator kode dan pustaka pfodParser mendukung keamanan 128 bit. Keamanan ini tidak mengenkripsi pesan tetapi menambahkan hash kriptografis ke setiap pesan untuk melindungi dari koneksi dan kontrol yang tidak sah. Lihat SipHash Secure Challenge and Response untuk detail tentang bagaimana keamanan ini diterapkan.

Menambahkan keamanan 128bit

Mengamankan terhadap pengguna yang tidak sah mengakses perangkat Anda melalui internet semudah mengedit#define pfodSecurityCode ""untuk menambahkan kode rahasia Anda sendiri. (hingga 32 digit Hex)

Misalnya untuk menetapkan kode keamanan 173057F7A706AF9BBE65D51122A14CEE Anda akan menggunakan#define pfodSecurityCode "173057F7A706AF9BBE65D51122A14CEE"Tentu saja Anda harus menggunakan kode rahasia Anda sendiri. Menyetel kode Anda sendiri dalam koneksi pfodApp memungkinkan Anda, dan tidak ada orang lain, untuk terhubung.

Kode acak yang panjang diperlukan untuk keamanan yang baik. pfodApp mendukung hingga 128bit sebagai digit 32Hex.

Untuk menghasilkan kode rahasia Anda sendiri dapat mengunduh Generator Kunci Rahasia acak dari sini Generator Kunci Rahasia dari sini. Selain menghasilkan kunci acak, program ini menuliskannya sebagai kode QR sehingga Anda dapat dengan mudah dan akurat mengaturnya di koneksi pfodApp Anda.

Anda dapat mencetak kode QR dan melampirkannya ke pfodDevice Anda. Kemudian klik tombol Pindai QR di layar koneksi WiFi pfodApp untuk membaca kata sandi.

Lihat A Simple WiFi/Arduino pfodDevice™ dengan keamanan 128 bit untuk contoh detail penggunaan generator kunci dan kode QR.

Kesimpulan

Tutorial ini telah menunjukkan cara mengatur Arduino IDE untuk memprogram ESP32. Kemudian menggunakan aplikasi pfodDesigner gratis untuk merancang menu untuk mengontrol kecerahan led onboard dan kode yang dihasilkan untuk menghubungkan ke ESP32 melalui BLE, Bluetooth atau WiFi. Jika Anda kemudian terhubung melalui aplikasi pfodApp apppfodApp Anda akan melihat menu yang Anda rancang dan dapat mengontrol kecerahan led melalui penggeser. pfodDesigner menghasilkan semua kode Arduino, termasuk simulasi analogWrite Arduino. Tidak diperlukan pengkodean Arduino. pfodApp menangani semua sisi Android, tidak diperlukan pengkodean Android.

Direkomendasikan: