Isi kandungan:

Penjana Kod ESP32 - Wifi, BLE, Bluetooth: 9 Langkah
Penjana Kod ESP32 - Wifi, BLE, Bluetooth: 9 Langkah

Video: Penjana Kod ESP32 - Wifi, BLE, Bluetooth: 9 Langkah

Video: Penjana Kod ESP32 - Wifi, BLE, Bluetooth: 9 Langkah
Video: Урок 9. Bluetooth LE. ESP-32. Android. 2024, November
Anonim
Penjana Kod ESP32 - Wifi, BLE, Bluetooth
Penjana Kod ESP32 - Wifi, BLE, Bluetooth

Pengenalan

ESP32 adalah cip pemproses dwi kos rendah, dengan sokongan untuk WiFi, Bluetooth Classic dan BLE (Bluetooth Low Energy). Walaupun cip telah habis selama beberapa tahun, sokongan kod untuk Arduino masih belum lengkap (pada April 2018), tetapi penjana kod yang boleh dipesan ini mengisi fungsi BLE dan analogWrite yang hilang.

Petua: ESP32 tidak mempunyai fungsi analogWrite 'standard Arduino'. Walau bagaimanapun penjana kod ini, menghasilkan kod yang mensimulasikannya untuk anda

Petua: Pemasangan kod ESP tidak termasuk sokongan BLE. Pemasangan yang dinyatakan di sini merangkumi sokongan BLE

Halaman web ini akan merangkumi penyediaan Arduino IDE untuk memprogram ESP32 untuk sambungan BLE, Bluetooth atau WiFi. PfodDesigner menghasilkan kod untuk setiap jenis sambungan ini dan juga menghasilkan kod untuk mensimulasikan fungsi analogWrite yang hilang.

ESP32 adalah cip pemproses dwi kos rendah, dengan sokongan untuk WiFi, Bluetooth Classic dan BLE (Bluetooth Low Energy). Walaupun cip telah keluar selama beberapa tahun, sokongan kod untuk Arduino masih belum lengkap (pada April 2018), tetapi tutorial dan penjana kod ini mengisi fungsi BLE dan analogWrite yang hilang. Halaman web ini akan merangkumi penyediaan Arduino IDE untuk memprogramkan ESP32 untuk sambungan BLE, Bluetooth atau WiFi. PfodDesigner menghasilkan kod untuk setiap jenis sambungan ini dan juga menghasilkan kod untuk mensimulasikan fungsi analogWrite yang hilang.

Alat tambah Arduino menyokong sekitar 31 papan ESP32. Semasa menggunakan pfodDesigner, anda perlu memilih sambungan pin yang sesuai dengan yang terdapat pada papan tertentu anda. Sparkfun ESP32 Thing (atau Adafruit HUZZAH32 Feather) digunakan di sini sebagai contoh papan ESP32, tetapi anda boleh menggunakan kod untuk mana-mana 31 papan ESP32 yang disokong.

Aplikasi Android pfodDesignerV3 percuma digunakan untuk membuat menu kawalan (WYSIWYG) dan kemudian menghasilkan kod untuk ESP32, sama ada untuk sambungan BLE, WiFi atau Bluetooth. Setelah memprogram papan ESP32 anda, anda kemudian boleh menggunakan aplikasi Android pfodApp (berbayar) untuk menyambung ke ESP32 anda (melalui BLE atau WiFi atau Bluetooth) dan memaparkan menu kawalan anda dan mengawal ESP32 anda. Sekiranya anda tidak mahu menggunakan pfodApp, anda masih boleh menggunakan kod yang dihasilkan sebagai asas untuk sambungan WiFi, BLE (UART Nordik) atau Bluetooth anda sendiri kerana ia menyediakan antara muka Stream (cetak / baca) ke setiap jenis sambungan ini.

Langkah 1: Petua: Memasang Sokongan Arduino untuk Sokongan ESP32 Dengan BLE

Sehingga April 2018, pemasangan sokongan Arduino ESP32 lebih banyak dilakukan untuk kebanyakan papan lain dan pustaka kod yang disediakan tidak lengkap. Anda tidak boleh menggunakan pengurus Arduino Board untuk memasang sokongan ESP32. Ikuti langkah-langkah ini untuk menyiapkan pengaturcaraan Arduino untuk ESP32. Ini akan memasang ESP32 dan juga sokongan BLE.

1 Cari jalan Direktori lokasi Arduino Sketchbook anda. Buka Arduino IDE dan lihat di bawah File-> Preferences dan di bahagian atas skrin anda akan melihat lokasi Sketchbook.

2 Muat turun fail ESP32_hardware.zip ini dan buka zip ke lokasi Buku Sketsa. Ini membuat sub-direktori perkakasan di sana. Sekiranya anda tidak mempunyai sub-direktori perkakasan di lokasi Buku Sketsa anda, gabungkan kandungannya dengan yang satu ini.

3 Pasang Alat Xtensa dan ESP32. Catatan: Muat turun dan pemasangan ini memerlukan sedikit masa untuk memproses ~ 0.5Gig fail. Pergi ke direktori perkakasan / espressif / esp32 / alat kemudian Untuk mesin Windows jalankan fail get.exe. Untuk pengguna Mac dan Linux, jalankan skrip get.py python untuk memuat turun alat. Dengan menggunakan terminal, arahkan ke folder perkakasan / espressif / esp32 / alat. Kemudian ketik: python get.py Skrip python "get.py" akan memuat turun alat Xtensa GNU dan kit pengembangan perisian (SDK) ESP32, dan membuka zipnya ke lokasi yang betul.

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

Setelah ini selesai, tutup dan buka semula Arduino IDE anda dan anda kini harus mempunyai senarai panjang papan ESP32 untuk dipilih di bawah menu Alat-> Papan. Pilih "SparkFun ESP32 Thing" (atau "Adafruit ESP32 Feather")

Anda kemudian boleh membuka senarai Contoh Fail untuk melihat sebilangan fail contoh ESP32

Proses di atas memasang snapshot kod github untuk sokongan ESP32 dan BLE yang telah digabungkan menjadi satu fail zip. Kod yang dihasilkan pfodDesigner dan contoh di bawah menggunakan versi perpustakaan ini. Sekiranya anda mahukan versi terbaru, dengan kemungkinan sekumpulan ciri dan pepijat yang berbeza, kemudian muat turun zip versi terbaru https://github.com/espressif/arduino-esp32 dan buka zip ke perkakasan / espressif dan namakan semula folder esp32 dan kemudian untuk sokongan BLE muat turun zip versi terkini https://github.com/espressif/arduino-esp32 dan hapus zip ke folder esp32 / perpustakaan dan namakan semula ESP32_BLE_Arduino (jika perlu).

Langkah 2: Memasang PfodParser Libraries untuk ESP32

a) Kemudian muat turun pfodParser.zip perpustakaan V3.23 +, pfodDwgControls.zip dan, untuk ESP32 WiFi, pfodESP32BufferedClient.zip, zip fail ke komputer anda, pindahkan ke desktop anda atau folder lain yang mudah anda temui.

b) Kemudian gunakan Arduino 1.8.2 pilihan menu IDE Sketsa → Import Library → Add Library untuk memasangnya. (Sekiranya Arduino tidak membenarkan anda memasangnya kerana perpustakaan sudah ada maka cari dan hapus folder pfodParser, pfodCmdParser atau pfodCHAP dll yang lebih lama dan kemudian importnya)

c) Berhenti dan mulakan semula Arduino IDE dan di bawah File-> Contoh yang anda harus lihat pfodParser, pfodDwgControls dan pfodESP32BufferedClient perpustakaan dan sebilangan contoh.

Langkah 3: Menggunakan PfodDesignerV3 untuk ESP32

Aplikasi pfodDesignerV3 (V3291 +) percuma menyokong penjanaan kod agar cip ESP32 dapat dihubungkan melalui BLE, WiFi atau Bluetooth Classic ke pfodApp (berbayar).

Terdapat banyak tutorial yang ada mengenai cara membuat kawalan untuk telefon bimbit Android anda untuk mengendalikan pelbagai papan menggunakan pfodDesignerV3. Dengan pfodDesignerV3, anda boleh membuat kawalan yang menghidupkan / mematikan output, mengawal output melalui PWM, memaparkan keadaan nilai input atau analog, data log dan plot dan sub-menu dan banyak lagi.

Petua: Sokongan ESP32 Arduino merangkumi sokongan untuk kira-kira 31 papan ESP32 yang berbeza. PfodDesignerV3 memberi anda akses ke semua pin ESP32 I / O tetapi tidak semua papan menghubungkan semua pin ESP32 ke pin board. Periksa dokumentasi papan anda untuk mana pin disediakan dan lihat fail pins_arduino.h di bawah direktori varian perkakasan / espressif / esp32 / papan anda.

Senarai pin pfodDesignerV3 merangkumi komen mengenai ketersediaan dan pin penggunaan khas untuk Sparkfun ESP32 Thing and Adafruit HUZZAH32 - ESP32 Feather Boards.

Contoh-contoh ini menggunakan papan Sparkfun ESP32 Thing dan membuat gelangsar untuk mengawal kecerahan LED onboard yang disambungkan ke pin 5 dari telefon bimbit Android anda. Sekiranya anda menggunakan Adafruit HUZZAH32 - ESP32 Feather board maka Led onboard disambungkan ke pin 13. Sokongan ESP32 Arduino, yang dipasang di atas, tidak menyokong analogWrite Arduino secara langsung. Sebaliknya ESP32 mempunyai 16 saluran PWM, anda boleh mengawal dan menyambung ke salah satu output. PfodDesignerV3 menghasilkan semua kod yang diperlukan untuk memperuntukkan saluran dan menghubungkannya ke output yang anda pilih. Pasang pfodDesignerV3 (V3291 +) percuma dari google play.

Langkah 4: Penjana Kod ESP32 BLE

Penjana Kod ESP32 BLE
Penjana Kod ESP32 BLE
Penjana Kod ESP32 BLE
Penjana Kod ESP32 BLE
Penjana Kod ESP32 BLE
Penjana Kod ESP32 BLE
Penjana Kod ESP32 BLE
Penjana Kod ESP32 BLE

Mulakan Menu baru

Klik butang Target untuk menukar peranti sasaran.

Sasaran contoh pertama adalah ESP32 BLE jadi klik butang Tenaga Rendah Bluetooth.

Pilih ESP32 yang disambungkan melalui BLE dan kemudian tekan butang belakang telefon bimbit untuk kembali ke skrin 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 mudah ini hanya akan mempunyai arahan dan satu kawalan. Klik butang Edit Prompt dan kemudian butang Edit Teks Prompt untuk menetapkan teks prompt.

Di sini prompt ditetapkan ke "ESP32 Led". Klik butang centang untuk menyimpan hasil edit anda dan kembali ke skrin sebelumnya. Kemudian klik warna Latar Latar untuk memilih semua warna untuk menu kawalan.

Anda boleh memilih warna yang berbeza untuk setiap kawalan. Terdapat pelbagai format lain yang tersedia untuk arahan. Di sini latar belakang diatur ke Biru dan ukuran fon +5 dan teksnya Bold. Pratonton prompt berformat ditunjukkan di bahagian bawah skrin Editing Prompt.

Langkah 6: Merancang Menu - PWM Led Control

Merancang Menu - PWM Led Control
Merancang Menu - PWM Led Control
Merancang Menu - PWM Led Control
Merancang Menu - PWM Led Control
Merancang Menu - PWM Led Control
Merancang Menu - PWM Led Control
Merancang Menu - PWM Led Control
Merancang Menu - PWM Led Control

Gunakan butang belakang telefon bimbit untuk kembali ke menu utama dan kemudian klik Tambah Item Menu untuk menambahkan item kawalan atau paparan.

Pilih item Output PWM. Pratonton kawalan ditunjukkan di bahagian atas skrin.

Petua: ESP32 tidak mempunyai fungsi analogWrite 'standard Arduino'. Walau bagaimanapun penjana kod ini, menghasilkan kod yang mensimulasikannya untuk anda

Klik butang Edit Teks Terkemuka dan ubah "Pengaturan PWM" menjadi "Led" Perhatikan ruang belakang untuk memisahkan "Led" dari indikasi%.

Klik butang centang untuk menyimpan hasil edit anda dan kemudian tatal ke bawah ke butang "Tidak tersambung ke pin I / O".

Klik butang itu untuk memaparkan senarai pin yang boleh digunakan sebagai output.

Ini menunjukkan pin penggunaan khas untuk papan Sparkfun ESP32 Thing dan Adafruit HUZZAH32 Feather. Pilih pin 5 supaya kawalan gelangsar akan mengawal kecerahan LED on-board Sparkfun ESP32 Thing. Sekiranya anda menggunakan papan Adafruit HUZZAH32 Feather, pilih pin 13 sebagai gantinya. Untuk papan lain periksa dokumentasi papan anda dan fail pins_arduino.h di bawah direktori varian perkakasan / espressif / esp32 / dewan anda

Kemudian, setelah anda selesai membuat tetapan pemformatan lain untuk slaid ini, gunakan butang kembali telefon bimbit untuk kembali ke menu utama dan klik Menu Pratonton untuk melihat seperti apa menu akhir di telefon bimbit anda ketika dipaparkan oleh pfodApp. Kawalan tersebut disiarkan secara langsung sehingga anda dapat memindahkannya dalam pratonton.

Langkah 7: Hasilkan Kod ESP32

Hasilkan Kod ESP32
Hasilkan Kod ESP32
Hasilkan Kod ESP32
Hasilkan Kod ESP32

Kembali ke menu utama dan tatal ke bawah ke butang Hasilkan Kod.

Klik butang Hasilkan Kod dan kemudian klik butang Tulis Kod ke Fail untuk menghasilkan kod tersebut

Keluar dari pfodDesignerV3 dan pindahkan kodnya di /pfodAppRawData/pfodDesignerV3.txt dari telefon bimbit anda ke komputer anda. Lihat pfodAppForAndroidGettingStarted.pdf untuk cara melakukannya. Aplikasi pro pemindahan fail wifi oleh smarterDroid adalah salah satu cara untuk melakukan pemindahan.

Dengan menggunakan butang "Tukar Sasaran" pada layar Hasilkan Kod, anda dapat beralih antara ESP32 melalui BLE, ESP32 melalui Bluetooth dan ESP32 melalui WiFi

Langkah 8: Menjalankan Contoh

Menjalankan Contoh
Menjalankan Contoh

Dengan menggunakan butang "Tukar Sasaran" pada layar Hasilkan Kod, anda dapat beralih antara ESP32 melalui BLE, ESP32 melalui Bluetooth dan ESP32 melalui WiFi

Ini adalah bagaimana tiga lakaran contoh berikut dihasilkan dari reka bentuk di atas.

Menjalankan contoh pfodESP32_BLE

Menetapkan Sasaran ke ESP32 melalui BLE menghasilkan kod dalam pfodESP32_LED_BLE.ino Lakaran ini juga terdapat di bawah Fail-> Contoh-> pfodParser. Buka contoh itu, kemudian, setelah memprogram Sparkfun ESP32 Thing (atau papan ESP32 lain), anda kemudian harus membuat sambungan kepadanya di pfodApp (lihat pfodAppForAndroidGettingStarted.pdf untuk perinciannya) dan sambungkan dan dapat menyesuaikan kecerahan papan diketuai.

PETUA: ESP32 menggunakan alamat bluetooth yang sama untuk kedua-dua BLE dan Bluetooth, jadi jika anda sebelumnya telah membuat sambungan Bluetooth ESP32 di pfodApp, anda perlu menghapus sambungan Bluetooth pfodApp itu sebelum membuat sambungan BLE, kerana pfodApp menyaring sambungan yang ada (oleh alamat) dari senarai paparan peranti yang tersedia. Anda juga mungkin perlu membuka tetapan telefon bimbit anda dan 'lupa' sambungan Bluetooth ESP32 dan kemudian matikan Bluetooth telefon bimbit dan but semula telefon anda untuk membersihkan timbunan Bluetooth

PETUA: Perpustakaan ESP32_BLE_Arduino dari Neil Kolban tidak serasi dengan perpustakaan Perpheral BLE dari Sandeep Mistry yang digunakan oleh beberapa sasaran BLE lain yang dihasilkan oleh pfodDesigner. Oleh itu, anda perlu membuang direktori BLEPeripheral, (jika ada), dari direktori Arduino / perpustakaan anda untuk menyusun lakaran ESP32 BLE.

Menjalankan contoh pfodESP32_Bluetooth

Menetapkan Sasaran ke ESP32 melalui Bluetooth menghasilkan kod dalam pfodESP32_LED_Bluetooth.ino Lakaran ini juga terdapat di bawah Fail-> Contoh-> pfodParser. Buka contoh itu, kemudian atur Sparkfun ESP32 Thing (atau papan ESP32 lain). Anda perlu memasangkan ESP32 dengan telefon anda, tidak diperlukan nombor pin. Kemudian buat sambungan ke pfodApp (lihat pfodAppForAndroidGettingStarted.pdf untuk perinciannya) dan sambungkan dan dapat menyesuaikan kecerahan papan yang dipimpin.

Menjalankan contoh pfodESP32_WiFi

Menetapkan Sasaran ke ESP32 melalui WiFi menghasilkan kod dalam pfodESP32_LED_WiFi.ino Lakaran ini juga terdapat di bawah Fail-> Contoh-> pfodParser. Buka contoh itu dan masukkan nama dan kata laluan rangkaian anda dan pilih IP statik untuk peranti ini. Kemudian, setelah memprogram Sparkfun ESP32 Thing (atau papan ESP32 lain), anda harus membuat sambungan ke pfodApp (lihat pfodAppForAndroidGettingStarted.pdf untuk perinciannya) dan sambungkan dan dapat menyesuaikan kecerahan papan yang dipimpin.

Langkah 9: Keselamatan WiFi

Sekiranya menyambung ke ESP32 melalui internet (melalui wifi), keselamatan adalah penting. Anda tidak mahu sesiapa sahaja dapat membuka pintu garaj anda, misalnya. Penjana kod dan pustaka pfodParser menyokong keselamatan 128 bit. Keselamatan ini tidak menyulitkan mesej tetapi menambahkan hash kriptografi ke setiap mesej untuk melindungi daripada sambungan dan kawalan yang tidak dibenarkan. Lihat SipHash Secure Challenge dan Response untuk perincian bagaimana keselamatan ini dilaksanakan.

Menambah keselamatan 128bit

Melindungi pengguna yang tidak dibenarkan mengakses peranti anda melalui internet semudah mengedit # define pfodSecurityCode "" untuk menambahkan kod rahsia anda sendiri. (sehingga 32 digit Hex)

Contohnya untuk menetapkan kod keselamatan 173057F7A706AF9BBE65D51122A14CEE anda akan menggunakan # define pfodSecurityCode "173057F7A706AF9BBE65D51122A14CEE" Sudah tentu anda harus menggunakan kod rahsia anda sendiri. Menetapkan kod anda sendiri dalam sambungan pfodApp membolehkan anda, dan tidak ada orang lain, untuk berhubung.

Kod rawak panjang diperlukan untuk keselamatan yang baik. pfodApp menyokong sehingga 128 bit sebagai 32Hex digit.

Untuk menghasilkan kod rahsia anda sendiri boleh memuat turun Penjana Kunci Rahsia secara rawak dari sini Penjana Kunci Rahsia dari sini. Serta menghasilkan kunci rawak, program ini menulisnya sebagai kod QR supaya anda dapat menetapkannya dengan mudah dan tepat dalam sambungan pfodApp anda.

Anda boleh mencetak kod QR dan melampirkannya ke pfodDevice anda. Kemudian klik Scan QR botton di skrin sambungan WiFi pfodApp untuk membaca kata laluan.

Lihat WiFi Mudah / Arduino pfodDevice ™ dengan keselamatan 128 bit untuk contoh terperinci menggunakan penjana kunci dan kod QR.

Kesimpulannya

Tutorial ini telah menunjukkan cara mengatur Arduino IDE untuk memprogram ESP32. Ia kemudian menggunakan aplikasi pfodDesigner percuma untuk merancang menu untuk mengawal kecerahan lampu LED onboard dan menghasilkan kod untuk menyambung ke ESP32 melalui BLE, Bluetooth atau WiFi. Sekiranya anda kemudian berhubung melalui aplikasi pfodApp apppfodApp, anda akan melihat menu yang anda reka dan dapat mengawal kecerahan lampu kilat melalui slaid. PfodDesigner menghasilkan semua kod Arduino, termasuk mensimulasikan analogWrite Arduino. Tidak diperlukan pengekodan Arduino. PfodApp menjaga semua sisi Android, tidak memerlukan pengekodan Android.

Disyorkan: