Papan Pengembangan ESP32 Dev Kitc
Informasi Produk
Spesifikasi
- Produk: ESP32
- Panduan Pemrograman: ESP-IDF
- Versi Rilis: v5.0.9
- Pabrikan: Sistem Espressif
- Tanggal Rilis: 16 Mei 2025
Petunjuk Penggunaan Produk
1. Memulai
Sebelum memulai dengan ESP32, biasakan diri Anda dengan
mengikuti:
1.1 Pendahuluan
Pelajari tentang fungsi dan kemampuan dasar
ESP32.
1.2 Apa yang Anda Butuhkan
Pastikan Anda memiliki perangkat keras dan perangkat lunak yang diperlukan:
- Perangkat keras: Periksa daftar perangkat keras yang dibutuhkan
komponen. - Perangkat lunak: Instal perangkat lunak yang diperlukan
komponen.
1.3 Instalasi
Ikuti langkah-langkah berikut untuk menginstal IDE dan mengaturnya
lingkungan:
- IDE: Instal IDE yang direkomendasikan untuk
pemrograman ESP32. - Instalasi Manual: Mengatur secara manual
lingkungan jika diperlukan.
1.4 Bangun Proyek Pertama Anda
Buat dan bangun proyek awal Anda menggunakan ESP32.
1.5 Copot pemasangan ESP-IDF
Jika perlu, pelajari cara menghapus ESP-IDF dari
sistem.
2. Referensi API
Lihat dokumentasi API untuk informasi lebih rinci tentang
protokol aplikasi, penanganan kesalahan, dan konfigurasi
struktur.
Pertanyaan yang Sering Diajukan (FAQ)
T: Bagaimana saya dapat memecahkan masalah umum dengan ESP32?
A: Lihat bagian pemecahan masalah dalam panduan pemrograman
atau kunjungi produsennya websitus untuk sumber daya dukungan.
T: Dapatkah saya menggunakan ESP-IDF dengan mikrokontroler lain?
A: ESP-IDF dirancang khusus untuk ESP32, tetapi Anda mungkin menemukan
kompatibilitas dengan mikrokontroler Espressif lainnya.
ESP32
Panduan Pemrograman ESP-IDF
Rilis v5.0.9 Espressif Systems 16 Mei 2025
Daftar isi
Daftar isi
i
1 Memulai
3
1.1 Pendahuluan . ...
1.2 Apa yang Anda Butuhkan . ...
1.2.1 Perangkat Keras . ...
1.2.2 Perangkat Lunak . ...
1.3 Instalasi . ...
1.3.1 ide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.2 Instalasi Manual . ...
1.4 Bangun Proyek Pertama Anda . ...
1.5 Copot Pemasangan ESP-IDF . ...
2 Referensi API
45
2.1 Konvensi API . ...
2.1.1 Penanganan kesalahan . ...
2.1.2 Struktur konfigurasi . ...
2.1.3 API Pribadi . ...
2.1.4 Komponen dalam exampproyek-proyek . ...
2.1.5 Stabilitas API . ...
2.2 Protokol Aplikasi . ...
2.2.1 Pelabuhan ASIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.2 ESP-Modbus . ...
2.2.3 ESP-MQTT . ...
2.2.4 ESP-TLS . ...
2.2.5 Klien HTTP ESP . ...
2.2.6 Kontrol Lokal ESP . ...
2.2.7 Tautan Serial Slave ESP . ...
2.2.8 Paket Sertifikat ESP x509 . ...
2.2.9 Server HTTP . ...
2.2.10 Server HTTPS . ...
2.2.11 Gema ICMP . ...
2.2.12 Layanan mDNS . ...
2.2.13 Mbed TLS . ...
2.2.14 Lapisan Jaringan IP . ...
2.3 API Bluetooth . ...
2.3.1 Bluetooth® Umum . ...
2.3.2 Bluetooth® Hemat Energi . ...
2.3.3 Bluetooth® Klasik . ...
2.3.4 Pengendali & HCI . ...
2.3.5 ESP-BLE-MESH . ...
2.3.6 API host berbasis NimBLE . ...
2.4 Referensi Kode Kesalahan . ...
2.5 API Jaringan . ...
2.5.1 Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
2.5.2 Ethernet . ...
2.5.3 Benang . ...
i
2.5.4 ESP-NETIF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942 2.5.5 Lapisan Jaringan IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974 2.5.6 Lapisan Aplikasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976 2.6 API Periferal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977 2.6.1 Driver Mode Oneshot Konverter Analog ke Digital (ADC). . . . . . . . . . . . . . . . . 977 2.6.2 Driver Mode Kontinu Konverter Analog ke Digital (ADC) . . . . . . . . . . . . . . . 986 2.6.3 Driver Kalibrasi Konverter Analog ke Digital (ADC) . . . . . . . . . . . . . . . . . . . 993 2.6.4 Pohon Jam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 2.6.5 Konverter Digital ke Analog (DAC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 2.6.6 GPIO & RTC GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 2.6.7 Pengatur Waktu Tujuan Umum (GPTimer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 2.6.8 Sirkuit Terpadu Antar-Jenis (I2C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 2.6.9 Suara Antar-IC (I2S) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 2.6.10 LCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090 2.6.11 Kontrol LED (LEDC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107 2.6.12 Modulator Lebar Pulsa Kontrol Motor (MCPWM) . . . . . . . . . . . . . . . . . . . . . 1126 2.6.13 Penghitung Pulsa (PCNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178 2.6.14 Transceiver Kendali Jarak Jauh (RMT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193 2.6.15 Persyaratan Pull-up SD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220 2.6.16 Pengandar Host SDMMC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 2.6.17 Pengandar Host SPI SD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 2.6.18 Driver Kartu SDIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234 2.6.19 Modulasi Sigma-Delta (SDM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244 2.6.20 Pengandar Utama SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249 2.6.21 Penggerak Budak SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274 2.6.22 ESP32-WROOM-32SE (Elemen Aman) . . . . . . . . . . . . . . . . . . . . . . . . . 1281 2.6.23 Sensor Sentuh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282 2.6.24 Antarmuka Otomotif Dua-Kabel (TWAI) . . . . . . . . . . . . . . . . . . . . . . . . . . 1299 2.6.25 Penerima/Pemancar Asinkron Universal (UART) . . . . . . . . . . . . . . . . . . 1317 2.7 Konfigurasi Proyek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.1 Pendahuluan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.2 Menu Konfigurasi Proyek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.3 Menggunakan sdkconfig.defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.4 Aturan Pemformatan Kconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.5 Kompatibilitas Mundur Opsi Kconfig . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.6 Referensi Opsi Konfigurasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.8 Penyediaan API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.1 Protokol Komunikasi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.2 Penyediaan Terpadu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1665 2.8.3 Penyediaan Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669 2.9 API Penyimpanan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FileDukungan Sistem . ... 1703 2.9.4 Utilitas Pembuat Partisi NVS . ... . . . . . . . . . 1744 2.9.7 SPIFFS Filesistem . ... filekomponen sistem . ... . . . . . . . . 1803 2.10.1 Format Gambar Aplikasi . ... . . . . . . . . . . 1813 2.10.4 Revisi Chip . ... . ...
ii
2.10.8 ESP HTTPS OTA . ...view) . ... . . . 1988 2.10.13 Alokasi Memori Heap . ... . . . . . . 2032 2.10.16 API Internal dan Tidak Stabil . ... . ... . ... 2087 2.10.24 Dukungan POSIX Threads . ... . . . . . . . . . . . 2099 2.10.27 Kemampuan SoC . ... . ...
3 Referensi Perangkat Keras
2167
3.1 Perbandingan Seri Chip . ...
3.1.1 Dokumen Terkait . ...
4 Panduan API
2171
4.1 Pustaka Penelusuran Tingkat Aplikasi . ...
4.1.1 Lebih dariview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.2 Modus Operasi . ...
4.1.3 Opsi Konfigurasi dan Ketergantungan . ...
4.1.4 Cara Menggunakan Pustaka Ini . ...
4.2 Alur Startup Aplikasi . ...
4.2.1 detik pertamatagpemuat boot . ...
4.2.2 detiktagpemuat boot . ...
4.2.3 Memulai aplikasi . ...
4.3 Bluetooth® Klasik . ...
4.3.1 Lebih dariview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184
4.4 Bluetooth® Hemat Energi . ...
4.4.1 Lebih dariview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186
4.4.2 Memulai . ...
4.4.3 Profesionalfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2240
4.5 Bootloader . ...
4.5.1 Kompatibilitas bootloader . ...
4.5.2 Tingkat Log . ...
4.5.3 Reset pabrik . ...
4.5.4 Boot dari Firmware Uji . ...
4.5.5 Kembalikan . ...
4.5.6 Pengawas . ...
4.5.7 Ukuran Bootloader . ...
4.5.8 Booting cepat dari Tidur Nyenyak . ...
4.5.9 Bootloader khusus . ...
4.6 Sistem Bangun . ...
4.6.1 Lebih dariview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288
4.6.2 Menggunakan Sistem Bangun . ...
aku aku aku
4.6.3 ContohampProyek le . ... File . ... Files . ... 2295 4.6.8 Persyaratan Komponen . ... 2300 4.6.11 Mendebug CMake . ...ample Komponen CMakeLists . ... . . . 2305 4.6.15 Membangun Bootloader . ... 2306 4.6.18 Menggunakan Pustaka Pra-bangun dengan Komponen . ... File Bahasa Indonesia: Globbing & Build Inkremental . ... 2313 4.6.24 Migrasi dari ESP-IDF GNU Make System . ...view . ... . . . . . . . . . . . 2317 4.7.4 Cetak core dump ke UART . ... . . . . . . . . . . . 2318 4.7.7 Menjalankan espcoredump.py . ... . ... . ...ample . ...view . ... . . . 2324 4.9.4 Makro ESP_ERROR_CHECK . ... 2325 4.9.7 Makro ESP_GOTO_ON_ERROR . ... . 2325 4.9.10 PERIKSA MAKROS Examples . ... . 2327 4.10 ESP-WIFI-MESH . ...view . ... . . . . . . . . . . . . 2329 4.10.4 Membangun Jaringan . ... . ...
iv
4.10.8 Performa . ... . ... . ...view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.2 Penanganan Panik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.3 Register Dump dan Backtrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2351 4.12.4 Rintisan GDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2353 4.12.5 Batas Waktu Pengawas RTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.6 Kesalahan Meditasi Guru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.7 Kesalahan Fatal Lainnya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2356 4.13 Enkripsi Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2358 4.13.1 Pendahuluan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.2 eFuse yang Relevan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.3 Proses Enkripsi Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.4 Konfigurasi Enkripsi Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.5 Kemungkinan Kegagalan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2366 4.13.6 Status Enkripsi Flash ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.7 Membaca dan Menulis Data dalam Flash Terenkripsi . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.8 Memperbarui Flash Terenkripsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.9 Menonaktifkan Enkripsi Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.10 Poin Penting Tentang Enkripsi Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.11 Keterbatasan Enkripsi Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.12 Enkripsi Flash dan Boot Aman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.13 Fitur Lanjutan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.14 Rincian Teknis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14 Abstraksi Perangkat Keras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14.1 Arsitektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2374 4.14.2 Lapisan LL (Tingkat Rendah) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2375 4.14.3 HAL (Lapisan Abstraksi Perangkat Keras) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2376 4.15 Interupsi Tingkat Tinggi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.1 Tingkat Interupsi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.2 Catatan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TAG Debugging . ... . ...TAG Adaptor . ... . . . . 2380 4.16.6 Meluncurkan Debugger . ...amples . ... . . . 2391 4.16.10 Dokumen Terkait . ...view . ... . . . . . . . 2424 4.18 lwIP . ... . ... . . . . . 2435 4.18.5 Dukungan IPv6 . ...
v
4.18.7 Optimalisasi Kinerja . ...
4.19.1 DRAM (RAM Data) . ... . . . . . 2441 4.19.4 DROM (data disimpan dalam flash) . ... . ... . ... . ...view . ... . . . . . . . . 2445 4.21.4 Membuat Tabel Partisi Biner . ... . . . . . . . . . . . . 2449 4.21.7 Alat Partisi (parttool.py) . ... . ... 2468 4.23.1 Kalibrasi parsial . ... . ... . ...view . ... . . . . . . . . . 2474 4.24.5 Cara Mengaktifkan Boot Aman . ... . . . . 2475 4.24.8 Penandatanganan Gambar Jarak Jauh . ... . . . . . . . . . . . 2476 4.24.11 Boot Aman & Enkripsi Flash . ... . 2478 4.25 Secure Boot V2 . ...tages . ... . . . . . . . 2480 4.25.5 Padding Aman . ... . ... 2481 4.25.10 Cara Mengaktifkan Secure Boot V2 . ...
vi
4.25.13 Penandatanganan Gambar Jarak Jauh . ... . . . . . . 2484 4.25.16 Boot Aman & Enkripsi Flash . ... 2485 4.26 Dukungan untuk RAM Eksternal . ... . ... . ... . . . 2488 4.27.1 Lebih dariview . ... . . . . . . . . . . . . . . 2489 4.27.4 C11 Standar . ... 2489 4.28.1 IDF Frontend – idf.py . ... . ... . ... 2512 4.29.2 Kasus Uji Multiperangkat . ...tage Kasus Uji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.4 Pengujian Untuk Target yang Berbeda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.5 Membangun Aplikasi Uji Unit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.6 Menjalankan Uji Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.7 Kode Waktu dengan Timer Kompensasi Cache . . . . . . . . . . . . . . . . . . . . . . . 2516 4.29.8 Mock. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2517 4.30 Pengujian Unit pada Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.1 Pengujian Perangkat Lunak Tertanam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.2 Pengujian Unit IDF pada Host Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2520 4.31 Pengandar Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.1 Daftar Fitur Wi-Fi ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.2 Cara Menulis Aplikasi Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.3 Kode Kesalahan API Wi-Fi ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.4 Inisialisasi Parameter API Wi-Fi ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.5 Model Pemrograman Wi-Fi ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.6 Deskripsi Peristiwa Wi-Fi ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523 4.31.7 Skenario Umum Stasiun Wi-Fi ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . 2526 4.31.8 Skenario Umum ESP32 Wi-Fi AP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.9 Pemindaian Wi-Fi ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.10 Skenario Penghubung Stasiun Wi-Fi ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . 2536 4.31.11 Stasiun Wi-Fi ESP32 Terhubung Saat Beberapa AP Ditemukan . . . . . . . . . . . . . 2543 4.31.12 Sambungkan kembali Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.13 Waktu Habis Beacon Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.14 Konfigurasi Wi-Fi ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.15 Wi-Fi Easy ConnectTM (DPP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.16 Manajemen Jaringan Nirkabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.17 Pengukuran Sumber Daya Radio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.18 Transisi BSS Cepat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.19 Mode Hemat Daya Wi-Fi ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.20 Throughput Wi-Fi ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bahasa Indonesia: tujuh
4.31.21 Pengiriman Paket Wi-Fi 80211 . ... . . . . . . . . . . . . . . 2554 4.31.24 Informasi Status Saluran Wi-Fi . ... . . . . . . . . . . . . . . . . 2557 4.31.27 QoS Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.28 Wi-Fi AMSDU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.29 Fragmen Wi-Fi . ... . ... . ... . 2568 4.32.2 Bingkai Manajemen Terlindungi (PMF) . ... . . . . . . . . . . . 2572 4.32.5 Wi-Fi Enhanced OpenTM . ...view . ... 2574 4.33.4 Cara Menggunakan Fitur Koeksistensi . ... . . . . . . . . . . . . . 2577 4.34.2 Alasan untuk build yang tidak dapat direproduksi . ... . . . . . . . 2578 4.34.5 Build yang dapat direproduksi dan debugging . ... . . . 2578
5 Panduan Migrasi
2579
5.1 Panduan Migrasi ESP-IDF 5.x . ...
5.1.1 Migrasi dari 4.4 ke 5.0 . ...
6 Pustaka dan Kerangka Kerja
2611
6.1 Kerangka Kerja Awan . ...
6.1.1 ESP RainMaker . ...
6.1.2 AWS IoT . ...
6.1.3 Azure IoT . ...
6.1.4 Inti IoT Google . ...
6.1.5 Aliyun IoT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.6 Joylink IoT . ...
6.1.7 Tencent IoT . ...
6.1.8 Tencentyun IoT . ...
6.1.9 Baidu IoT . ...
6.2 Kerangka Kerja Ekspresif . ...
6.2.1 Kerangka Pengembangan Audio Espressif . ...
6.2.2 ESP-CSI . ...
6.2.3 Pustaka DSP Espressif . ...
6.2.4 Kerangka Pengembangan ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.5 ESP-WHO . ...
6.2.6 ESP RainMaker . ...
6.2.7 Solusi ESP-IoT . ...
6.2.8 Protokol ESP . ...
Bahasa Indonesia: viii
6.2.9 ESP-BSP . ...
Panduan 7 Kontribusi
2615
7.1 Cara Berkontribusi . ...
7.2 Sebelum Berkontribusi . ...
7.3 Proses Tarik Permintaan . ...
7.4 Bagian Hukum . ...
7.5 Dokumen Terkait . ...
7.5.1 Panduan Gaya Kerangka Pengembangan IoT Espressif . . . . . . . . . . . . . . . . . . . . . . . 2616
7.5.2 Instal Hook Pra-komit untuk Proyek ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . 2623
7.5.3 Mendokumentasikan Kode . ...
7.5.4 Membuat Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2629
7.5.5 Templat Dokumentasi API . ...
7.5.6 Perjanjian Kontributor . ...
7.5.7 Panduan Judul Hak Cipta . ...
7.5.8 Pengujian ESP-IDF dengan Panduan Pytest . ...
8 Versi ESP-IDF
2645
8.1 Rilis . ...
8.2 Versi Mana yang Harus Saya Mulai? . ...
8.3 Skema Versi . ...
8.4 Periode Dukungan . ...
8.5 Memeriksa Versi Saat Ini . ...
8.6 Alur Kerja Git . ...
8.7 Memperbarui ESP-IDF . ...
8.7.1 Memperbarui ke Rilis Stabil . ...
8.7.2 Memperbarui ke Versi Pra-Rilis . ...
8.7.3 Memperbarui ke Cabang Master . ...
8.7.4 Memperbarui ke Cabang Rilis . ...
9 Sumber Daya
2651
9.1 PlatformIO . ...
9.1.1 Apa itu PlatformIO? . ...
9.1.2 Instalasi . ...
9.1.3 Konfigurasi . ...
9.1.4 Tutorial . ...
9.1.5 Proyek Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.6 Langkah Berikutnya . ...
9.2 Tautan Berguna . ...
10 Hak Cipta dan Lisensi
2653
10.1 Hak Cipta Perangkat Lunak . ...
10.1.1 Komponen Firmware . ...
10.1.2 Dokumentasi . ...
10.2 Hak Cipta Kode Sumber ROM . ...
10.3 Lisensi MIT Xtensa libhal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
10.4 Lisensi TinyBasic Plus MIT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
10.5 Lisensi TJpgDec . ...
11 Tentang
2657
12 Beralih Antar Bahasa
2659
Indeks
2661
Indeks
2661
ix
x
Daftar isi
Ini adalah dokumentasi untuk Espressif IoT Development Framework (esp-idf). ESP-IDF adalah kerangka kerja pengembangan resmi untuk SoC Seri ESP32, ESP32-S, dan ESP32-C. Dokumen ini menjelaskan penggunaan ESP-IDF dengan SoC ESP32.
Memulai
Referensi API
Panduan API
Sistem Espressif
1 Kirim Masukan Dokumen
Rilis v5.0.9
Daftar isi
Sistem Espressif
2 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1
Memulai
Dokumen ini ditujukan untuk membantu Anda menyiapkan lingkungan pengembangan perangkat lunak untuk perangkat keras berbasis chip ESP32 dari Espressif. Setelah itu, contoh sederhanaample akan menunjukkan kepada Anda cara menggunakan ESP-IDF (Espressif IoT Development Framework) untuk konfigurasi menu, kemudian untuk membangun dan mem-flash firmware ke papan ESP32.
Catatan: Ini adalah dokumentasi untuk ESP-IDF versi stabil v5.0.9. Versi ESP-IDF lainnya juga tersedia.
1.1 Pendahuluan
ESP32 adalah sistem pada chip yang mengintegrasikan fitur-fitur berikut: · Wi-Fi (pita 2.4 GHz) · Bluetooth · Dua inti CPU Xtensa® 32-bit LX6 berkinerja tinggi · Koprosesor Daya Ultra Rendah · Beberapa periferal
Didukung oleh teknologi 40 nm, ESP32 menyediakan platform yang tangguh dan sangat terintegrasi, yang membantu memenuhi tuntutan berkelanjutan akan efisiensi daya, desain yang ringkas, keamanan, performa tinggi, dan keandalan. Espressif menyediakan sumber daya perangkat keras dan perangkat lunak dasar untuk membantu pengembang aplikasi mewujudkan ide mereka menggunakan perangkat keras seri ESP32. Kerangka kerja pengembangan perangkat lunak Espressif ditujukan untuk pengembangan aplikasi Internet of Things (IoT) dengan Wi-Fi, Bluetooth, manajemen daya, dan beberapa fitur sistem lainnya.
1.2 Apa yang Anda Butuhkan
1.2.1 Perangkat Keras
· Papan ESP32. · Kabel USB – USB A / micro USB B. · Komputer yang menjalankan Windows, Linux, atau macOS.
Catatan: Saat ini, beberapa papan pengembangan menggunakan konektor USB Tipe C. Pastikan Anda memiliki kabel yang tepat untuk menghubungkan papan Anda!
Jika Anda memiliki salah satu papan pengembangan ESP32 resmi yang tercantum di bawah, Anda dapat mengeklik tautan untuk mempelajari lebih lanjut tentang perangkat kerasnya.
3
Bab 1. Memulai
ESP32-DevKitS(-R)
Panduan pengguna ini memberikan informasi tentang ESP32-DevKitS(-R), papan flashing berbasis ESP32 yang diproduksi oleh Espressif. ESP32-DevKitS(-R) merupakan kombinasi dari dua nama papan: ESP32-DevKitS dan ESP32-DevKitS-R. S berarti pegas, dan R berarti WROVER.
ESP32-DevKitS
ESP32-DevKitS-R
Dokumen ini terdiri dari bagian-bagian utama berikut: · Memulai: Memberikan gambaran umumview ESP32-DevKitS(-R) dan petunjuk pengaturan perangkat keras/perangkat lunak untuk memulai. · Referensi Perangkat Keras: Menyediakan informasi lebih detail tentang perangkat keras ESP32-DevKitS(-R)ns. · Dokumen Terkait: Memberikan tautan ke dokumentasi terkait.
Memulai Bagian ini menjelaskan cara memulai ESP32-DevKitS(-R). Dimulai dengan beberapa bagian pengantar tentang ESP32-DevKitS(-R), kemudian Bagian Cara Mem-Flash Papan memberikan instruksi tentang cara memasang modul ke ESP32-DevKitS(-R), menyiapkannya, dan mem-flash firmware ke dalamnya.
Lebihview ESP32-DevKitS(-R) adalah papan flashing Espressifns yang dirancang khusus untuk ESP32. Papan ini dapat digunakan untuk mem-flash modul ESP32 tanpa perlu menyolder modul ke catu daya dan jalur sinyal. Dengan modul terpasang, ESP32-DevKitS(-R) juga dapat digunakan sebagai papan pengembangan mini seperti ESP32-DevKitC.
Papan ESP32-DevKitS dan ESP32-DevKitS-R hanya berbeda dalam tata letak pin pegas agar sesuai dengan modul ESP32 berikut.
· ESP32-DevKitS: ESP32-WROOM-32 ESP32-WROOM-32D ESP32-WROOM-32U ESP32-SOLO-1 ESP32-WROOM-32E ESP32-WROOM-32UE
· ESP32-DevKitS-R: ESP32-WROVER (PCB & IPEX) ESP32-WROVER-B (PCB & IPEX) ESP32-WROVER-E ESP32-WROVER-IE
Untuk informasi tentang modul di atas, silakan lihat Modul Seri ESP32.
Deskripsi Komponen
Sistem Espressif
4 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
Gbr. 1: ESP32-DevKitS – depan
Sistem Espressif
Gbr. 2: ESP32-DevKitS-R – depan 5
Kirim Umpan Balik Dokumen
Rilis v5.0.9
Bab 1. Memulai
Komponen Utama Pin Pegas Header Betina 2.54 mm
Jembatan USB-ke-UART Konektor Mikro-USB LDO/Port Mikro USB Tombol EN Tombol Boot
Daya Hidup LED
Deskripsi: Klik modul. Pin-pin akan masuk ke dalam lubang berkastel modul. Header betina ini terhubung ke pin modul yang terpasang pada papan ini. Untuk deskripsi header betina, silakan lihat Blok Header. Jembatan USB ke UART chip tunggal menyediakan kecepatan transfer hingga 3 Mbps.
Tegangan putus rendah 5V ke 3.3Vtagpengatur e (LDO).
Antarmuka USB. Catu daya untuk papan sekaligus antarmuka komunikasi antara komputer dan papan.
Tombol reset.
Tombol Unduh. Menekan tombol Boot lalu menekan EN akan memulai mode Unduh Firmware untuk mengunduh firmware melalui port serial.
Menyala saat USB atau catu daya dihubungkan ke papan.
Cara Mem-Flash Papan Sebelum menyalakan ESP32-DevKitS(-R) Anda, pastikan papan berada dalam kondisi baik dan tidak ada tanda-tanda kerusakan yang nyata.
Perangkat Keras yang Diperlukan · Modul ESP32 pilihan Anda · Kabel USB 2.0 (Standar-A ke Mikro-B) · Komputer yang menjalankan Windows, Linux, atau macOS
Pengaturan Perangkat Keras Silakan pasang modul pilihan Anda ke ESP32-DevKitS(-R) sesuai dengan langkah-langkah berikut:
· Letakkan modul Anda secara perlahan pada papan ESP32-DevKitS(-R). Pastikan lubang-lubang berbenteng pada modul Anda sejajar dengan pin pegas pada papan.
· Tekan modul Anda ke dalam papan hingga berbunyi klik. · Periksa apakah semua pin pegas telah dimasukkan ke dalam lubang berkastel. Jika ada beberapa pin pegas yang tidak sejajar,
Tempatkan mereka ke dalam lubang berbenteng dengan pinset.
Pengaturan Perangkat Lunak
Metode Pilihan Kerangka kerja pengembangan ESP-IDF menyediakan cara yang lebih disukai untuk mem-flash biner ke ESP32-DevKitS(-R). Silakan lanjutkan ke Memulai, di mana Bagian Instalasi akan dengan cepat membantu Anda menyiapkan lingkungan pengembangan dan kemudian mem-flash aplikasi.ample ke ESP32-DevKitS(-R) Anda.
Metode Alternatif Sebagai alternatif, pengguna Windows dapat mem-flash biner menggunakan Flash Download Tool. Cukup unduh, ekstrak, dan ikuti petunjuk di dalam folder doc.
Catatan: 1. Untuk mem-flash biner files, ESP32 harus diatur ke mode Unduh Firmware. Ini dapat dilakukan secara otomatis oleh alat flash, atau dengan menahan tombol Boot dan mengetuk tombol EN. 2. Setelah mem-flash biner files, Alat Unduhan Flash akan memulai ulang modul ESP32 Anda dan mem-boot aplikasi yang di-flash secara default.
Dimensi Papan Isi dan Kemasan
Sistem Espressif
6 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai Gambar 3: Dimensi papan ESP32-DevKitS – kembali
Sistem Espressif
Gbr. 4: Dimensi papan ESP32-DevKitS-R – belakang 7
Kirim Umpan Balik Dokumen
Rilis v5.0.9
Bab 1. Memulai
Pesanan eceran Jika Anda memesan beberapa samples, setiap ESP32-DevKitS(-R) hadir dalam kemasan individual, baik dalam kantong antistatis maupun kemasan apa pun, tergantung pada pengecer. Untuk pemesanan eceran, silakan kunjungi https://www.espressif.com/en/contact-us/get-sampsedikit.
Pesanan Grosir Jika Anda memesan dalam jumlah besar, papan akan dikirim dalam kotak kardus besar. Untuk pesanan grosir, silakan kunjungi https://www.espressif.com/en/contact-us/sales-questions.
Referensi Perangkat Keras
Diagram Blok Diagram blok di bawah menunjukkan komponen ESP32-DevKitS(-R) dan interkoneksinya.
Gbr. 5: ESP32-DevKitS(-R) (klik untuk memperbesar)
Opsi Catu Daya Ada tiga cara yang saling eksklusif untuk menyediakan daya ke papan: · Port Micro USB, catu daya default · Pin header 5V dan GND · Pin header 3V3 dan GND
Disarankan untuk menggunakan pilihan pertama: port micro USB.
Sistem Espressif
.
Label Sinyal
L1 3V3 VDD 3V3
L2 EN CHIP_PU
SENSOR L3 VP_VP
SENSOR VN L4_VN
L5 34
GPIO34
L6 35
GPIO35
L7 32
GPIO32
L8 33
GPIO33
berlanjut di halaman berikutnya
8 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
Tabel 1 lanjutan dari halaman sebelumnya
.
Label Sinyal
L9 25
GPIO25
L10 26
GPIO26
L11 27
GPIO27
L12 14
GPIO14
L13 12
GPIO12
L14 GND GND
L15 13
GPIO13
L16 D2 SD_DATA2
L17 D3 SD_DATA3
L18 CMD SD_CMD
L19 5V
5V eksternal
R1 GND GND
Rp 2 23
GPIO23
Rp 3 22
GPIO22
R4 TX U0TXD
R5 RX U0RXD
Rp 6 21
GPIO21
R7 GND GND
Rp 8 19
GPIO19
Rp 9 18
GPIO18
Rp 10 5
GPIO5
Rp 11 17
GPIO17
Rp 12 16
GPIO16
Rp 13 4
GPIO4
Rp 14 0
GPIO0
Rp 15 2
GPIO2
Rp 16 15
GPIO15
R17 D1 SD_DATA1
R18 D0 SD_DATA0
R19 CLK SD_CLK
Blok Header Untuk gambar blok header, lihat Deskripsi Komponen.
Dokumen Terkait
Skema ESP32-DevKitS(-R) (PDF) Lembar Data ESP32 (PDF) Lembar Data ESP32-WROOM-32 (PDF) Lembar Data ESP32-WROOM-32D & ESP32-WROOM-32U (PDF) Lembar Data ESP32-SOLO-1 (PDF) Lembar Data ESP32-WROVER (PDF) Lembar Data ESP32-WROVER-B (PDF) Pemilih Produk ESP
ESP32-DevKitM-1
Panduan pengguna ini akan membantu Anda memulai dengan ESP32-DevKitM-1 dan juga akan memberikan informasi yang lebih mendalam.
ESP32-DevKitM-1 adalah papan pengembangan berbasis ESP32-MINI-1(1U) yang diproduksi oleh Espressif. Sebagian besar pin I/O dipecah menjadi header pin di kedua sisi untuk memudahkan antarmuka. Pengguna dapat menghubungkan periferal dengan kabel jumper atau memasang ESP32-DevKitM-1 pada papan tempat memotong roti.
Sistem Espressif
9 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
ESP32-DevKitM-1 – depan
ESP32-DevKitM-1 – isometrik
Dokumen ini terdiri dari bagian-bagian utama berikut: · Memulai: Memberikan gambaran umumview ESP32-DevKitM-1 dan petunjuk pengaturan perangkat keras/perangkat lunak untuk memulai. · Referensi perangkat keras: Menyediakan informasi lebih detail tentang perangkat keras ESP32-DevKitM-1. · Dokumen Terkait: Memberikan tautan ke dokumentasi terkait.
Memulai Bagian ini menjelaskan cara memulai ESP32-DevKitM-1. Dimulai dengan beberapa bagian pengantar tentang ESP32-DevKitM-1, kemudian Bagian Mulai Pengembangan Aplikasi memberikan instruksi tentang cara melakukan pengaturan perangkat keras awal dan cara mem-flash firmware ke ESP32-DevKitM-1.
Lebihview Ini adalah papan pengembangan kecil dan nyaman yang menampilkan:
· Modul ESP32-MINI-1, atau ESP32-MINI-1U · Antarmuka pemrograman USB-ke-serial yang juga menyediakan catu daya untuk papan · header pin · tombol tekan untuk mengatur ulang dan mengaktifkan mode Unduhan Firmware · beberapa komponen lainnya
Isi dan Kemasan
Pesanan eceran Jika Anda memesan beberapa samples, setiap ESP32-DevKitM-1 hadir dalam paket individual dalam tas antistatis atau kemasan apa pun tergantung pengecer Anda.
Untuk pesanan eceran, silakan kunjungi https://www.espressif.com/en/contact-us/get-sampsedikit.
Pesanan Grosir Jika Anda memesan dalam jumlah besar, papan akan dikirim dalam kotak kardus besar. Untuk pesanan grosir, silakan kunjungi https://www.espressif.com/en/contact-us/sales-questions.
Deskripsi Komponen Gambar dan tabel berikut menjelaskan komponen utama, antarmuka, dan kontrol papan ESP32-DevKitM-1. Kami mengambil papan dengan modul ESP32-MINI-1 sebagai contoh.ample di bagian berikut.
Sistem Espressif
10 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
Gbr. 6: ESP32-DevKitM-1 – depan
Komponen Utama Modul on-board
Tombol Boot LDO 5 V hingga 3.3 V
Tombol Reset Port Micro-USB
Jembatan USB-ke-UART 3.3 V Lampu LED Daya Aktif
Konektor I/O
Keterangan
Modul ESP32-MINI-1 atau modul ESP32-MINI-1U. ESP32-MINI-1 dilengkapi dengan antena PCB on-board. ESP32-MINI-1U dilengkapi dengan konektor antena eksternal. Kedua modul ini memiliki flash 4 MB dalam paket chip. Untuk detail lebih lanjut, silakan lihat Lembar Data ESP32-MINI-1 & ESP32-MINI-1U.
Pengatur daya mengubah 5 V menjadi 3.3 V.
Tombol Unduh. Menekan tombol Boot lalu menekan Reset akan memulai mode Unduh Firmware untuk mengunduh firmware melalui port serial.
Tombol Reset
antarmuka USB. Catu daya untuk papan serta antarmuka komunikasi antara komputer dan chip ESP32.
Chip jembatan USB-UART tunggal memberikan kecepatan transfer hingga 3 Mbps.
Menyala ketika USB terhubung ke papan. Untuk detailnya, silakan lihat skema di Dokumen Terkait. Semua pin GPIO yang tersedia (kecuali bus SPI untuk flash) dipecah ke header pin di papan. Pengguna dapat memprogram chip ESP32 untuk mengaktifkan beberapa fungsi.
Mulai Pengembangan Aplikasi Sebelum menyalakan ESP32-DevKitM-1 Anda, pastikan kondisinya baik dan tidak ada tanda-tanda kerusakan yang nyata.
Perangkat Keras yang Diperlukan · ESP32-DevKitM-1 · Kabel USB 2.0 (Standar-A ke Mikro-B) · Komputer yang menjalankan Windows, Linux, atau macOS
Pengaturan Perangkat Lunak Silakan lanjutkan ke Memulai, di mana Bagian Instalasi akan dengan cepat membantu Anda mengatur lingkungan pengembangan dan kemudian mem-flash aplikasi misalnyaample ke ESP32-DevKitM-1 Anda.
Sistem Espressif
11 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
Perhatian: Papan ESP32-DevKitM-1 yang diproduksi sebelum 2 Desember 2021 memiliki satu modul inti yang terpasang. Untuk memverifikasi modul yang Anda miliki, silakan periksa informasi penandaan modul di PCN-2021-021. Jika papan Anda memiliki modul inti tunggal yang terpasang, harap aktifkan mode inti tunggal (CONFIG_FREERTOS_UNICORE) di menuconfig sebelum mem-flash aplikasi Anda.
Diagram Blok Referensi Perangkat Keras Diagram blok di bawah menunjukkan komponen ESP32-DevKitM-1 dan interkoneksinya.
Gambar 7: ESP32-DevKitM-1
Pemilihan Sumber Daya Ada tiga cara yang saling eksklusif untuk menyediakan daya ke papan: · Port Micro USB, catu daya default · Pin header 5V dan GND · Pin header 3V3 dan GND
Peringatan: · Catu daya harus disediakan menggunakan satu dan hanya satu opsi di atas, jika tidak, papan dan/atau sumber catu daya dapat rusak. · Catu daya melalui port micro USB direkomendasikan.
Deskripsi Pin Tabel di bawah ini menunjukkan Nama dan Fungsi pin di kedua sisi papan. Untuk konfigurasi pin periferal, silakan merujuk ke Lembar Data ESP32.
TIDAK.
Nama
Jenis
1
GND
P
2
3V3
P
Fungsi Ground catu daya 3.3 V
berlanjut di halaman berikutnya
Sistem Espressif
12 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
Tabel 2 lanjutan dari halaman sebelumnya
TIDAK.
Nama
Jenis
Fungsi
3
I36
I
GPIO36, ADC1_CH0, RTC_GPIO0
4
I37
I
GPIO37, ADC1_CH1, RTC_GPIO1
5
I38
I
GPIO38, ADC1_CH2, RTC_GPIO2
6
I39
I
GPIO39, ADC1_CH3, RTC_GPIO3
7
RST
I
Mengatur ulang; Tinggi: aktifkan; Rendah: matikan
8
I34
I
GPIO34, ADC1_CH6, RTC_GPIO4
9
I35
I
GPIO35, ADC1_CH7, RTC_GPIO5
10
IO32
masukan/keluaran
GPIO32, XTAL_32K_P (masukan osilator kristal 32.768 kHz),
ADC1_CH4, SENTUH9, RTC_GPIO9
11
IO33
masukan/keluaran
GPIO33, XTAL_32K_N (output osilator kristal 32.768 kHz),
ADC1_CH5, SENTUH8, RTC_GPIO8
12
IO25
masukan/keluaran
GPIO25, DAC_1, ADC2_CH8, RTC_GPIO6, EMAC_RXD0
13
IO26
masukan/keluaran
GPIO26, DAC_2, ADC2_CH9, RTC_GPIO7, EMAC_RXD1
14
IO27
masukan/keluaran
GPIO27, ADC2_CH7, TOUCH7, RTC_GPIO17, EMAC_RX_DV
15
IO14
masukan/keluaran
GPIO14, ADC2_CH6, TOUCH6, RTC_GPIO16, MTMS, HSPICLK,
HS2_CLK, SD_CLK, EMAC_TXD2
16
5V
P
catu daya 5 V
17
IO12
masukan/keluaran
GPIO12, ADC2_CH5, TOUCH5, RTC_GPIO15, MTDI, HSPIQ,
HS2_DATA2, SD_DATA2, EMAC_TXD3
18
IO13
masukan/keluaran
GPIO13, ADC2_CH4, TOUCH4, RTC_GPIO14, MTCK, HSPID,
HS2_DATA3, SD_DATA3, EMAC_RX_ER
19
IO15
masukan/keluaran
GPIO15, ADC2_CH3, TOUCH3, RTC_GPIO13, MTDO, HSPICS0,
HS2_CMD, SD_CMD, EMAC_RXD3
20
IO2
masukan/keluaran
GPIO2, ADC2_CH2, TOUCH2, RTC_GPIO12, HSPIWP,
HS2_DATA0, SD_DATA0
21
IO0
masukan/keluaran
GPIO0, ADC2_CH1, SENTUH1, RTC_GPIO11, CLK_OUT1,
EMAC_TX_CLK
22
IO4
masukan/keluaran
GPIO4, ADC2_CH0, SENTUH0, RTC_GPIO10, HSPIHD,
HS2_DATA1, SD_DATA1, EMAC_TX_ER
23
IO9
masukan/keluaran
GPIO9, HS1_DATA2, U1RXD, SD_DATA2
24
IO10
masukan/keluaran
GPIO10, HS1_DATA3, U1TXD, SD_DATA3
25
IO5
masukan/keluaran
GPIO5, HS1_DATA6, VSPICS0, EMAC_RX_CLK
26
IO18
masukan/keluaran
GPIO18, HS1_DATA7, VSPICLK
27
IO23
masukan/keluaran
GPIO23, HS1_STROBE, VSPID
28
IO19
masukan/keluaran
GPIO19, VSPIQ, U0CTS, EMAC_TXD0
29
IO22
masukan/keluaran
GPIO22, VSPIWP, U0RTS, EMAC_TXD1
30
IO21
masukan/keluaran
GPIO21, VSPIHD, EMAC_TX_EN
31
TXD0
masukan/keluaran
GPIO1, U0TXD, CLK_OUT3, EMAC_RXD2
32
RXD0
masukan/keluaran
GPIO3, U0RXD, CLK_OUT2
Detail Revisi Perangkat Keras Tidak ada versi sebelumnya yang tersedia.
Dokumen Terkait
· Lembar Data ESP32-MINI-1 & ESP32-MINI-1U (PDF) · Skema ESP32-DevKitM-1 (PDF) · Tata letak PCB ESP32-DevKitM-1 (PDF) · Tata letak ESP32-DevKitM-1 (DXF) – Anda dapat view dengan Autodesk Viewer online · Lembar Data ESP32 (PDF) · Pemilih Produk ESP
Untuk dokumentasi desain papan lainnya, silakan hubungi kami di sales@espressif.com.
Sistem Espressif
13 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
Perangkat Lunak 1.2.2
Untuk mulai menggunakan ESP-IDF pada ESP32, instal perangkat lunak berikut: · Toolchain untuk mengkompilasi kode untuk ESP32 · Alat pembangun – CMake dan Ninja untuk membangun Aplikasi lengkap untuk ESP32 · ESP-IDF yang pada dasarnya berisi API (perpustakaan perangkat lunak dan kode sumber) untuk ESP32 dan skrip untuk mengoperasikan Toolchain
1.3 Instalasi
Untuk menginstal semua perangkat lunak yang dibutuhkan, kami menawarkan beberapa cara untuk memudahkan proses ini. Pilih salah satu opsi yang tersedia.
1.3.1 IDE
Catatan: Kami sangat menyarankan menginstal ESP-IDF melalui IDE favorit Anda.
· Plugin Eclipse · Ekstensi VSCode
1.3.2 Instalasi Manual
Untuk prosedur manual, silakan pilih sesuai dengan sistem operasi Anda.
Sistem Espressif
14 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
Pengaturan Standar Toolchain untuk Windows
Pendahuluan: ESP-IDF memerlukan beberapa alat prasyarat untuk diinstal agar Anda dapat membangun firmware untuk chip yang didukung. Alat prasyarat tersebut meliputi Python, Git, kompiler silang, alat build CMake, dan Ninja. Untuk Memulai ini, kami akan menggunakan Command Prompt, tetapi setelah ESP-IDF diinstal, Anda dapat menggunakan Plugin Eclipse atau IDE grafis lain dengan dukungan CMake. Catatan: Batasan: – Jalur instalasi ESP-IDF dan Alat ESP-IDF tidak boleh lebih dari 90 karakter. Jalur instalasi yang terlalu panjang dapat mengakibatkan kegagalan build. – Jalur instalasi Python atau ESP-IDF tidak boleh berisi spasi atau tanda kurung. – Jalur instalasi Python atau ESP-IDF tidak boleh berisi karakter khusus (nonASCII) kecuali sistem operasi dikonfigurasi dengan dukungan oUnicode UTF-8p. Administrator Sistem dapat mengaktifkan dukungan melalui Panel Kontrol – Ubah format tanggal, waktu, atau angka – Tab Administratif – Ubah lokal sistem – centang opsi oBeta: Gunakan Unicode UTF-8 untuk dukungan bahasa di seluruh dunia – Oke dan nyalakan ulang komputer.
Penginstal Alat ESP-IDF Cara termudah untuk menginstal prasyarat ESP-IDF adalah mengunduh salah satu Penginstal Alat ESP-IDF.
Unduh Penginstal Windows
Apa kegunaan Penginstal Online dan Offline? Penginstal Online berukuran sangat kecil dan memungkinkan penginstalan semua rilis ESP-IDF yang tersedia. Penginstal hanya akan mengunduh dependensi yang diperlukan, termasuk Git For Windows, selama proses instalasi. Penginstal menyimpan data yang diunduh. files di direktori cache %userprofile%. espresif
Penginstal Offline tidak memerlukan koneksi jaringan apa pun. Penginstal ini berisi semua dependensi yang diperlukan, termasuk Git untuk Windows.
Komponen instalasi Penginstal menyebarkan komponen-komponen berikut:
· Python Tertanam · Kompiler Silang · OpenOCD · Alat Build CMake dan Ninja · ESP-IDF
Penginstal juga memungkinkan penggunaan kembali direktori yang ada dengan ESP-IDF. Direktori yang direkomendasikan adalah %userprofile%Desktopesp-idf di mana %userprofile% adalah direktori rumah Anda.
Sistem Espressif
15 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
Meluncurkan Lingkungan ESP-IDF. Di akhir proses instalasi, Anda dapat mencentang opsi "Jalankan Lingkungan ESP-IDF PowerShell" atau "Jalankan Prompt Perintah ESP-IDF (cmd.exe). Penginstal akan meluncurkan lingkungan ESP-IDF pada prompt yang dipilih. Jalankan Lingkungan ESP-IDF PowerShell:
Gbr. 8: Menyelesaikan Wizard Pengaturan Alat ESP-IDF dengan Menjalankan Lingkungan PowerShell ESP-IDF
Jalankan Command Prompt ESP-IDF (cmd.exe):
Menggunakan Command Prompt Untuk langkah-langkah Memulai selanjutnya, kita akan menggunakan Command Prompt Windows. Penginstal Alat ESP-IDF juga membuat pintasan di menu Start untuk meluncurkan Command Prompt ESP-IDF. Pintasan ini meluncurkan Command Prompt (cmd.exe) dan menjalankan skrip export.bat untuk mengatur variabel lingkungan (PATH, IDF_PATH, dan lainnya). Di dalam command prompt ini, semua alat yang terinstal tersedia. Perhatikan bahwa pintasan ini khusus untuk direktori ESP-IDF yang dipilih di Penginstal Alat ESP-IDF. Jika Anda memiliki beberapa direktori ESP-IDF di komputer (misalnya,ample, untuk bekerja dengan versi ESP-IDF yang berbeda), Anda memiliki dua opsi untuk menggunakannya:
1. Buat salinan pintasan yang dibuat oleh Penginstal Alat ESP-IDF, dan ubah direktori kerja pintasan baru ke direktori ESP-IDF yang ingin Anda gunakan.
2. Atau, jalankan cmd.exe, lalu pindah ke direktori ESP-IDF yang ingin Anda gunakan, dan jalankan export.bat. Perlu diketahui bahwa tidak seperti opsi sebelumnya, cara ini mengharuskan Python dan Git ada di PATH. Jika Anda mendapatkan kesalahan terkait Python atau Git yang tidak ditemukan, gunakan opsi pertama.
Langkah Pertama pada ESP-IDF Sekarang karena semua persyaratan terpenuhi, topik berikutnya akan memandu Anda tentang cara memulai proyek pertama Anda.
Sistem Espressif
16 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai Gambar 9: ESP-IDF PowerShell
Gbr. 10: Menyelesaikan Wizard Pengaturan Alat ESP-IDF dengan Menjalankan Prompt Perintah ESP-IDF (cmd.exe)
Sistem Espressif
17 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
Gambar 11: Prompt Perintah ESP-IDF
Sistem Espressif
18 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
Panduan ini akan membantu Anda pada langkah pertama menggunakan ESP-IDF. Ikuti panduan ini untuk memulai proyek baru di ESP32 dan membangun, mem-flash, serta memantau output perangkat. Catatan: Jika Anda belum menginstal ESP-IDF, silakan buka Instalasi dan ikuti petunjuk untuk mendapatkan semua perangkat lunak yang diperlukan untuk menggunakan panduan ini.
Mulai Proyek Sekarang Anda siap untuk mempersiapkan aplikasi Anda untuk ESP32. Anda dapat memulai dengan proyek getstarted/hello_world dari contohamples direktori di ESP-IDF.
Penting: Sistem pembangun ESP-IDF tidak mendukung spasi di jalur menuju ESP-IDF atau proyek.
Salin proyek get-started/hello_world ke direktori ~/esp: cd %userprofile%esp xcopy /e /i %IDF_PATH%examplesget-startedhello_world halo_dunia
Catatan: Ada berbagai macam example proyek di examples direktori di ESP-IDF. Anda dapat menyalin proyek apa pun dengan cara yang sama seperti yang disajikan di atas dan menjalankannya. Dimungkinkan juga untuk membangun examples di tempat tanpa menyalinnya terlebih dahulu.
Hubungkan Perangkat Anda. Sekarang, hubungkan papan ESP32 Anda ke komputer dan periksa port serial mana yang menampilkan papan tersebut. Nama port serial dimulai dengan COM di Windows. Jika Anda tidak yakin cara memeriksa nama port serial, silakan lihat Membuat Koneksi Serial dengan ESP32 untuk detail selengkapnya.
Catatan: Jaga agar nama port tetap berguna karena Anda akan membutuhkannya di langkah selanjutnya.
Konfigurasikan Proyek Anda Arahkan ke direktori hello_world Anda, tetapkan ESP32 sebagai target, dan jalankan utilitas konfigurasi proyek menuconfig.
Windows cd %userprofile%esphello_world idf.py set-target esp32 idf.py menuconfig
Setelah membuka proyek baru, Anda harus terlebih dahulu menetapkan target dengan idf.py set-target esp32. Perhatikan bahwa build dan konfigurasi yang ada dalam proyek, jika ada, akan dihapus dan diinisialisasi dalam proses ini. Target dapat disimpan dalam variabel lingkungan untuk melewati langkah ini. Lihat Memilih Chip Target: set-target untuk informasi tambahan. Jika langkah-langkah sebelumnya telah dilakukan dengan benar, menu berikut akan muncul: Anda menggunakan menu ini untuk mengatur variabel khusus proyek, misalnya, nama dan kata sandi jaringan Wi-Fi, kecepatan prosesor, dll. Pengaturan proyek dengan menuconfig dapat dilewati untuk ohello_wordp, karena contoh iniample berjalan dengan konfigurasi default.
Perhatian: Jika Anda menggunakan papan ESP32-DevKitC dengan modul ESP32-SOLO-1, atau papan ESP32-DevKitM-1 dengan modul ESP32-MIN1-1(1U), harap aktifkan mode inti tunggal (CONFIG_FREERTOS_UNICORE) di menuconfig sebelum mem-flash exampsedikit.
Sistem Espressif
19 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
Gbr. 12: Konfigurasi proyek – Jendela beranda
Catatan: Warna menu mungkin berbeda di terminal Anda. Anda dapat mengubah tampilannya dengan opsi –style. Silakan jalankan idf.py menuconfig –help untuk informasi lebih lanjut.
Jika Anda menggunakan salah satu papan pengembangan yang didukung, Anda dapat mempercepat pengembangan dengan menggunakan Paket Dukungan Papan. Lihat Tips Tambahan untuk informasi selengkapnya.
Membangun Proyek Bangun proyek dengan menjalankan:
idf.py membangun
Perintah ini akan mengkompilasi aplikasi dan semua komponen ESP-IDF, kemudian akan menghasilkan bootloader, tabel partisi, dan binari aplikasi.
$ idf.py build Menjalankan cmake di direktori /path/to/hello_world/build Menjalankan "cmake -G Ninja –warn-uninitialized /path/to/hello_world"… Memperingatkan tentang nilai yang belum diinisialisasi. — Ditemukan Git: /usr/bin/git (ditemukan versi "2.17.0") — Membangun komponen aws_iot kosong karena konfigurasi — Nama komponen: … — Jalur komponen: …
… (lebih banyak baris keluaran sistem build)
[527/527] Membuat hello_world.bin esptool.py v2.3.1
Proses pembangunan proyek selesai. Untuk melakukan flash, jalankan perintah ini: ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash -flash_mode dio –flash_size detect –flash_freq 40m 0x10000 build/hello_world.bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin atau jalankan 'idf.py -p PORT flash'
Jika tidak ada kesalahan, pembangunan akan selesai dengan menghasilkan biner firmware .bin files.
Sistem Espressif
20 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
Flash ke Perangkat Flash biner yang baru saja Anda buat (bootloader.bin, partition-table.bin dan hello_world.bin) ke papan ESP32 Anda dengan menjalankan: idf.py -p PORT [-b BAUD] flash
Ganti PORT dengan nama port serial board ESP32 Anda. Anda juga dapat mengubah laju baud flasher dengan mengganti BAUD dengan laju baud yang Anda butuhkan. Laju baud default adalah 460800. Untuk informasi selengkapnya tentang argumen idf.py, lihat idf.py.
Catatan: Opsi flash secara otomatis membangun dan mem-flash proyek, jadi menjalankan idf.py build tidak diperlukan.
Mengalami Masalah Saat Flashing? Jika Anda menjalankan perintah yang diberikan dan melihat kesalahan seperti "oFailed to connectp", mungkin ada beberapa alasan untuk ini. Salah satu penyebabnya mungkin masalah yang dialami oleh esptool.py, utilitas yang dipanggil oleh sistem build untuk mereset chip, berinteraksi dengan bootloader ROM, dan mem-flash firmware. Salah satu solusi sederhana yang dapat dicoba adalah reset manual yang dijelaskan di bawah ini, dan jika tidak membantu, Anda dapat menemukan detail lebih lanjut tentang kemungkinan masalah di Pemecahan Masalah.
esptool.py mereset ESP32 secara otomatis dengan mengaktifkan jalur kontrol DTR dan RTS dari chip konverter USB ke serial, yaitu FTDI atau CP210x (untuk informasi selengkapnya, lihat Membuat Koneksi Serial dengan ESP32). Jalur kontrol DTR dan RTS kemudian terhubung ke pin GPIO0 dan CHIP_PU (EN) ESP32, sehingga terjadi perubahan vol.tagTingkat DTR dan RTS akan mem-boot ESP32 ke mode Unduh Firmware. Sebagai contoh,ample, periksa skema untuk papan pengembangan ESP32 DevKitC.
Secara umum, Anda seharusnya tidak mengalami masalah dengan papan pengembangan esp-idf resmi. Namun, esptool.py tidak dapat mengatur ulang perangkat keras Anda secara otomatis dalam kasus berikut:
· Perangkat keras Anda tidak memiliki jalur DTR dan RTS yang terhubung ke GPIO0 dan CHIP_PU · Jalur DTR dan RTS dikonfigurasi secara berbeda · Tidak ada jalur kontrol serial seperti itu sama sekali
Bergantung pada jenis perangkat keras yang Anda miliki, Anda mungkin juga dapat menempatkan papan ESP32 Anda ke mode Unduhan Firmware (reset) secara manual.
· Untuk papan pengembangan yang diproduksi oleh Espressif, informasi ini dapat ditemukan di panduan memulai atau panduan pengguna masing-masing. Misalnyaample, untuk mereset papan pengembangan ESP-IDF secara manual, tahan tombol Boot (GPIO0) dan tekan tombol EN (CHIP_PU).
· Untuk jenis perangkat keras lainnya, coba tarik GPIO0 ke bawah.
Operasi Normal Saat melakukan flashing, Anda akan melihat log keluaran yang mirip dengan berikut ini:
… esptool.py –chip esp32 -p /dev/ttyUSB0 -b 460800 –before=default_reset -after=hard_reset write_flash –flash_mode dio –flash_freq 40m –flash_size 2MB 0x8000 partition_table/partition-table.bin 0x1000 bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev Port serial /dev/ttyUSB0 Menghubungkan…….._ Chip adalah ESP32D0WDQ6 (revisi 0) Fitur: WiFi, BT, Dual Core, Skema Pengodean Tidak Ada Kristal adalah 40MHz MAC: 24:0a:c4:05:b9:14 Mengunggah stub… Menjalankan stub… Stub berjalan… Mengubah laju baud menjadi 460800 Diubah.
(bersambung ke halaman berikutnya)
Sistem Espressif
21 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
(lanjutan dari halaman sebelumnya) Mengonfigurasi ukuran flash… Mengompresi 3072 byte menjadi 103… Menulis pada 0x00008000… (100%) Menulis 3072 byte (103 terkompresi) pada 0x00008000 dalam 0.0 detik (efektif 5962.8 kbit/dtk)… Hash data diverifikasi. Mengompresi 26096 byte menjadi 15408… Menulis pada 0x00001000… (100%) Menulis 26096 byte (15408 terkompresi) pada 0x00001000 dalam 0.4 detik (efektif 546.7 kbit/dtk)… Hash data diverifikasi. Dikompresi 147104 byte ke 77364… Menulis pada 0x00010000… (20%) Menulis pada 0x00014000… (40%) Menulis pada 0x00018000… (60%) Menulis pada 0x0001c000… (80%) Menulis pada 0x00020000… (100%) Menulis 147104 byte (77364 terkompresi) pada 0x00010000 dalam 1.9 detik (efektif 615,5 kbit/dtk)… Hash data diverifikasi.
Meninggalkan… Hard reset melalui RTS pin… Selesai
Jika tidak ada masalah di akhir proses flash, papan akan di-reboot dan menjalankan aplikasi ohello_worldp. Jika Anda ingin menggunakan IDE Eclipse atau VS Code daripada menjalankan idf.py, silakan coba Plugin Eclipse dan Ekstensi VSCode.
Memantau Output Untuk memeriksa apakah ohello_worldpi benar-benar berjalan, ketik idf.py -p PORT monitor (Jangan lupa mengganti PORT dengan nama port serial Anda).
Perintah ini meluncurkan aplikasi IDF Monitor:
$ idf.py -p Menjalankan idf_monitor di direktori […]/esp/hello_world/build Menjalankan “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_world/build/hello_world.elf”… — idf_monitor pada 115200 —– Keluar: Ctrl+] | Menu: Ctrl+T | Bantuan: Ctrl+T diikuti oleh Ctrl+H –ets 8 Jun 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) ets 8 Juni 2016 00:22:57 …
Setelah log permulaan dan diagnostik bergulir ke atas, Anda akan melihat oHello world!p yang dicetak oleh aplikasi.
… Halo dunia! Restart dalam 10 detik… Ini chip esp32 dengan 2 inti CPU, WiFi/BT/BLE, silikon revisi 1, flash eksternal 2MB. Ukuran heap kosong minimum: 298968 byte. Restart dalam 9 detik… Restart dalam 8 detik… Restart dalam 7 detik…
Untuk keluar dari monitor IDF gunakan shortcut Ctrl+].
Sistem Espressif
22 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
Jika monitor IDF gagal sesaat setelah pengunggahan, atau jika alih-alih pesan di atas, Anda melihat sampah acak seperti yang ditampilkan di bawah ini, papan Anda kemungkinan menggunakan kristal 26 MHz. Sebagian besar desain papan pengembangan menggunakan 40 MHz, sehingga ESP-IDF menggunakan frekuensi ini sebagai nilai default.
Jika Anda mengalami masalah seperti itu, lakukan hal berikut: 1. Keluar dari monitor. 2. Kembali ke menuconfig. 3. Buka Konfigurasi Komponen > Pengaturan Perangkat Keras > Konfigurasi XTAL Utama > Frekuensi XTAL Utama, lalu ubah CONFIG_XTAL_FREQ_SEL menjadi 26 MHz. 4. Setelah itu, build dan flash aplikasi lagi.
Dalam versi ESP-IDF saat ini, frekuensi XTAL utama yang didukung oleh ESP32 adalah sebagai berikut:
· 26 MHz · 40 MHz
Catatan: Anda dapat menggabungkan pembangunan, flashing dan pemantauan menjadi satu langkah dengan menjalankan: idf.py -p PORT flash monitor
Lihat juga: · IDF Monitor untuk pintasan praktis dan detail lebih lanjut tentang penggunaan IDF Monitor. · idf.py untuk referensi lengkap perintah dan opsi idf.py.
Itu saja yang Anda butuhkan untuk memulai dengan ESP32! Sekarang Anda siap untuk mencoba beberapa ex lainnyaamples, atau langsung mengembangkan aplikasi Anda sendiri.
Penting: Beberapa mantanamples tidak mendukung ESP32 karena perangkat keras yang dibutuhkan tidak termasuk dalam ESP32 sehingga tidak dapat didukung. Jika membangun example, silakan periksa README file untuk tabel Target yang Didukung. Jika ini ada termasuk target ESP32, atau tabel tidak ada sama sekali, contohample akan bekerja pada ESP32.
Tips Tambahan
Masalah izin /dev/ttyUSB0 Pada beberapa distribusi Linux, Anda mungkin mendapatkan pesan kesalahan "Gagal membuka port /dev/ttyUSB0" saat mem-flash ESP32. Masalah ini dapat diatasi dengan menambahkan pengguna saat ini ke grup dialout.
Kompatibilitas Python: ESP-IDF mendukung Python 3.7 atau yang lebih baru. Disarankan untuk memperbarui sistem operasi Anda ke versi terbaru yang memenuhi persyaratan ini. Pilihan lain termasuk instalasi Python dari sumber atau penggunaan sistem manajemen versi Python seperti pyenv.
Mulai dengan Paket Dukungan Papan Untuk mempercepat pembuatan prototipe pada beberapa papan pengembangan, Anda dapat menggunakan Paket Dukungan Papan (BSP), yang membuat inisialisasi papan tertentu semudah beberapa panggilan fungsi.
Sistem Espressif
23 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
BSP biasanya mendukung semua komponen perangkat keras yang tersedia di papan pengembangan. Selain fungsi definisi pinout dan inisialisasi, BSP dilengkapi dengan driver untuk komponen eksternal seperti sensor, layar, codec audio, dll. BSP didistribusikan melalui IDF Component Manager, sehingga dapat ditemukan di IDF Component Registry. Berikut contohnyaampcontoh cara menambahkan ESP-WROVER-KIT BSP ke proyek Anda: idf.py add-dependency esp_wrover_kit
Lebih banyak mantanampContoh penggunaan BSP dapat ditemukan di BSP exampfolder file.
Dokumen Terkait Untuk pengguna tingkat lanjut yang ingin menyesuaikan proses instalasi: · Memperbarui alat ESP-IDF di Windows · Membangun Koneksi Serial dengan ESP32 · Plugin Eclipse · Ekstensi VSCode · Monitor IDF
Memperbarui alat ESP-IDF di Windows
Instal alat ESP-IDF menggunakan skrip. Dari Command Prompt Windows, buka direktori tempat ESPIDF diinstal. Kemudian jalankan:
instal.bat
Untuk Powershell, pindah ke direktori tempat ESP-IDF diinstal. Lalu jalankan:
instal.ps1
Ini akan mengunduh dan menginstal alat yang diperlukan untuk menggunakan ESP-IDF. Jika versi alat tertentu sudah terpasang, tidak ada tindakan yang akan diambil. Alat-alat tersebut diunduh dan diinstal ke direktori yang ditentukan selama proses Penginstal Alat ESP-IDF. Secara default, direktori ini adalah C:\Users\username.espressif.
Tambahkan alat ESP-IDF ke PATH menggunakan skrip ekspor. Penginstal alat ESP-IDF membuat pintasan menu Start untuk Command Prompt oESP-IDF. Pintasan ini membuka jendela Command Prompt tempat semua alat sudah ada.
tersedia. Dalam beberapa kasus, Anda mungkin ingin bekerja dengan ESP-IDF di jendela Command Prompt yang tidak dimulai menggunakan pintasan tersebut. Jika demikian, ikuti petunjuk di bawah ini untuk menambahkan alat ESP-IDF ke PATH. Di command prompt tempat Anda perlu menggunakan ESP-IDF, pindah ke direktori tempat ESP-IDF diinstal, lalu jalankan export.bat:
cd %userprofile%espesp-idf export.bat
Alternatifnya di Powershell tempat Anda perlu menggunakan ESP-IDF, ubah ke direktori tempat ESP-IDF diinstal, lalu jalankan export.ps1:
cd ~/esp/esp-idf ekspor.ps1
Setelah selesai, alat akan tersedia di prompt perintah ini.
Membuat Koneksi Serial dengan ESP32 Bagian ini memberikan panduan cara membuat koneksi serial antara ESP32 dan PC.
Sistem Espressif
24 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
Hubungkan ESP32 ke PC. Hubungkan papan ESP32 ke PC menggunakan kabel USB. Jika driver perangkat tidak terinstal secara otomatis, temukan chip konverter USB ke serial pada papan ESP32 Anda (atau dongle konverter eksternal), cari driver di internet, dan instal. Berikut adalah daftar chip konverter USB ke serial yang terpasang pada sebagian besar papan ESP32 produksi Espressif beserta tautan ke drivernya:
· CP210x: Driver VCP Jembatan USB ke UART CP210x · FTDI: Driver Port COM Virtual FTDI. Silakan periksa panduan pengguna papan untuk chip konverter USB ke serial spesifik yang digunakan. Driver di atas terutama untuk referensi. Dalam keadaan normal, driver seharusnya disertakan dengan sistem operasi dan diinstal secara otomatis saat menghubungkan papan ke PC.
Periksa port di Windows. Periksa daftar port COM yang teridentifikasi di Pengelola Perangkat Windows. Lepaskan ESP32 dan sambungkan kembali untuk memverifikasi port mana yang hilang dari daftar lalu muncul kembali. Gambar di bawah ini menunjukkan port serial untuk ESP32 DevKitC dan ESP32 WROVER KIT.
Gbr. 13: Jembatan USB ke UART ESP32-DevKitC di Windows Device Manager
Periksa port pada Linux dan macOS Untuk memeriksa nama perangkat untuk port serial papan ESP32 Anda (atau dongle konverter eksternal), jalankan perintah ini dua kali, pertama dengan papan / dongle dicabut, lalu dengan dicolokkan. Port yang muncul kedua kalinya adalah yang Anda butuhkan: Linux
ls /dev/tty*
macOS
Sistem Espressif
25 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
Gbr. 14: Dua Port Serial USB ESP-WROVER-KIT di Windows Device Manager
Sistem Espressif
26 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
ls /dev/cu.* Catatan: Pengguna macOS: jika Anda tidak melihat port serial, periksa apakah driver USB/serial telah terpasang. Lihat Bagian Menghubungkan ESP32 ke PC untuk tautan ke driver. Untuk macOS High Sierra (10.13), Anda mungkin juga perlu mengizinkan driver untuk dimuat secara eksplisit. Buka Preferensi Sistem -> Keamanan & Privasi -> Umum dan periksa apakah ada pesan yang ditampilkan di sini tentang Perangkat Lunak oSystem dari pengembang lp dengan nama pengembang Silicon Labs atau FTDI.
Menambahkan pengguna ke dialout di Linux. Pengguna yang saat ini login seharusnya memiliki akses baca dan tulis ke port serial melalui USB. Pada sebagian besar distribusi Linux, hal ini dilakukan dengan menambahkan pengguna ke grup dialout menggunakan perintah berikut:
sudo usermod -a -G panggilan keluar $USER
di Arch Linux ini dilakukan dengan menambahkan pengguna ke grup uucp dengan perintah berikut:
sudo mod pengguna -a -G uucp $USER
Pastikan Anda login ulang untuk mengaktifkan izin baca dan tulis untuk port serial.
Verifikasi koneksi serial. Sekarang, verifikasi apakah koneksi serial berfungsi. Anda dapat melakukannya menggunakan program terminal serial dengan memeriksa apakah ada keluaran di terminal setelah mengatur ulang ESP32. Baud rate konsol default pada ESP32 adalah 115200.
Windows dan Linux Dalam contoh iniampDi sini, kita akan menggunakan Klien SSH PuTTY yang tersedia untuk Windows dan Linux. Anda dapat menggunakan program serial lain dan mengatur parameter komunikasi seperti di bawah ini. Jalankan terminal dan atur port serial yang teridentifikasi. Laju baud = 115200 (jika perlu, ubah ini ke laju baud default chip yang digunakan), bit data = 8, bit stop = 1, dan paritas = N. Berikut adalah contohampTangkapan layar pengaturan port dan parameter transmisi tersebut (singkatnya dijelaskan sebagai 115200-8-1-N) di Windows dan Linux. Ingatlah untuk memilih port serial yang sama persis dengan yang telah Anda identifikasi pada langkah-langkah di atas. Kemudian, buka port serial di terminal dan periksa apakah Anda melihat log yang dicetak oleh ESP32. Isi log akan bergantung pada aplikasi yang dimuat ke ESP32, lihat Contoh.ample Output.
Catatan: Tutup terminal serial setelah verifikasi bahwa komunikasi berfungsi. Jika Anda membiarkan sesi terminal terbuka, port serial tidak akan dapat diakses untuk mengunggah firmware nanti.
macOS Untuk menghemat waktu Anda dalam menginstal program terminal serial, macOS menawarkan perintah screen. · Seperti yang dibahas dalam Memeriksa port di Linux dan macOS, jalankan:
ls /dev/cu.* · Anda akan melihat keluaran serupa:
/dev/cu.Port-Masuk-Bluetooth /dev/cu.SLAB_USBtoUART USBtoUART7
/dev/cu.SLAB_
· Output akan bervariasi tergantung pada jenis dan jumlah papan yang terhubung ke PC Anda. Kemudian, pilih nama perangkat papan Anda dan jalankan (jika perlu, ubah o115200 ke baud rate default chip yang digunakan):
layar /dev/cu.device_name 115200 Ganti device_name dengan nama yang ditemukan saat menjalankan ls /dev/cu.*.
Sistem Espressif
27 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
Gambar 15: Pengaturan Komunikasi Serial di PuTTY pada Windows
Sistem Espressif
28 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
Gambar 16: Pengaturan Komunikasi Serial di PuTTY pada Linux
Sistem Espressif
29 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
· Yang Anda cari adalah log yang ditampilkan di layar. Isi log akan bergantung pada aplikasi yang dimuat ke ESP32, lihat ContohampOutput. Untuk keluar dari sesi layar, ketik Ctrl-A + .
Catatan: Jangan lupa untuk keluar dari sesi layar setelah memverifikasi bahwa komunikasi berfungsi. Jika Anda gagal melakukannya dan hanya menutup jendela terminal, port serial tidak akan dapat diakses untuk mengunggah firmware nanti.
Example Output Sebuah exampLog ditampilkan di bawah. Atur ulang papan jika Anda tidak melihat apa pun. ets 8 Juni 2016 00:22:57
rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) ets 8 Juni 2016 00:22:57
rst:0x7 (TG0WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0x00 clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0008,len:8 load:0x3fff0010,len:3464 load:0x40078000,len:7828 load:0x40080000,len:252 entry 0x40080034 I (44) boot: ESP-IDF v2.0-rc1-401-gf9fba35 2nd stage bootloader I (45) boot: waktu kompilasi 18:48:10
…
Jika Anda dapat melihat keluaran log yang dapat dibaca, artinya koneksi serial berfungsi dan Anda siap untuk melanjutkan instalasi dan akhirnya mengunggah aplikasi ke ESP32.
Catatan: Untuk beberapa konfigurasi pengkabelan port serial, pin RTS & DTR serial perlu dinonaktifkan di program terminal sebelum ESP32 dapat melakukan booting dan menghasilkan output serial. Hal ini bergantung pada perangkat kerasnya sendiri; sebagian besar papan pengembangan (termasuk semua papan Espressif) tidak mengalami masalah ini. Masalah ini muncul jika RTS & DTR dihubungkan langsung ke pin EN & GPIO0. Lihat dokumentasi esptool untuk detail selengkapnya.
Jika Anda sampai di sini dari Langkah 5. Langkah Pertama pada ESP-IDF saat menginstal perangkat lunak untuk pengembangan ESP32, maka Anda dapat melanjutkan ke Langkah 5. Langkah Pertama pada ESP-IDF.
IDF Monitor pada dasarnya adalah program terminal serial yang meneruskan data serial ke dan dari port serial perangkat target. Program ini juga menyediakan beberapa fitur khusus IDF. IDF Monitor dapat diluncurkan dari proyek IDF dengan menjalankan idf.py monitor.
Pintasan Papan Ketik Untuk interaksi mudah dengan IDF Monitor, gunakan pintasan papan ketik yang diberikan dalam tabel.
Sistem Espressif
30 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
Pintasan Papan Ketik Ctrl+] Ctrl+T
· Ctrl+T
· Ctrl+] · Ctrl+P
· Ctrl+R
· Ctrl+F
· Ctrl+A (atau A)
· Ctrl+Y
· Ctrl+L
· Ctrl+I (atau I)
· Ctrl+H (atau H)
· Ctrl+X (atau X)
Tombol Ctrl+C
Tindakan
Keterangan
Keluar dari program Tombol escape menu Kirim karakter menu itu sendiri ke remote
Kirim karakter keluar itu sendiri ke remote
Setel ulang target ke bootloader untuk menjeda aplikasi melalui jalur RTS
Setel ulang papan target melalui RTS
Membangun dan mem-flash proyek
Hanya membangun dan mem-flash aplikasi saja
Hentikan/lanjutkan pencetakan keluaran log di layar
Keluaran log berhenti/lanjut disimpan ke file
Waktu berhenti/lanjutamps
pencetakan
Menampilkan semua pintasan keyboard
Tekan dan ikuti dengan salah satu tombol yang diberikan di bawah ini.
Mereset target ke bootloader melalui jalur RTS (jika terhubung) sehingga papan tidak menjalankan apa pun. Berguna saat Anda perlu menunggu perangkat lain untuk memulai. Mereset papan target dan memulai ulang aplikasi melalui jalur RTS (jika terhubung).
Menjeda idf_monitor untuk menjalankan target flash proyek, lalu melanjutkan idf_monitor. Sumber yang diubah filedikompilasi ulang lalu di-flash ulang. Target encrypted-flash dijalankan jika idf_monitor dimulai dengan argumen -E. Menjeda idf_monitor untuk menjalankan target app-flash, lalu melanjutkan idf_monitor. Mirip dengan target flash, tetapi hanya aplikasi utama yang dibuat dan di-flash ulang. Target encrypted-app-flash dijalankan jika idf_monitor dimulai dengan argumen -E. Membuang semua data serial yang masuk saat diaktifkan. Memungkinkan untuk menjeda dan memeriksa keluaran log dengan cepat tanpa keluar dari monitor. Membuat file di direktori proyek dan output ditulis ke sana file sampai ini dinonaktifkan dengan pintasan keyboard yang sama (atau IDF Monitor keluar). IDF Monitor dapat mencetak waktuamp di awal setiap baris. Waktuamp format dapat diubah dengan –timestamp-format argumen baris perintah.
Keluar dari program
Mengganggu aplikasi yang sedang berjalan
Menjeda IDF Monitor dan menjalankan debugger proyek GDB untuk men-debug aplikasi saat runtime. Opsi :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME harus diaktifkan.
Tombol apa pun yang ditekan, selain Ctrl-] dan Ctrl-T, akan dikirim melalui port serial.
Fitur khusus IDF
Dekoding Alamat Otomatis Setiap kali ESP-IDF mengeluarkan alamat kode heksadesimal dalam bentuk 0x4_______, IDF Monitor menggunakan addr2line_ untuk mencari lokasi dalam kode sumber dan menemukan nama fungsi.
Jika aplikasi ESP-IDF mogok dan panik, register dump dan backtrace akan dihasilkan, seperti berikut ini:
Sistem Espressif
31 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
Kesalahan Meditasi Guru jenis StoreProhibited terjadi pada inti 0. Pengecualian adalah
tidak tertangani.
Daftar pembuangan:
PC
: 0x400f360d PS
: 0x00060330 A0
: 0x800dbf56 A1
:
0x3ffb7e00
A2
: 0x3ffb136c A3
: 0x00000005 A4
: 0x00000000 A5
:
ukuran 0x00000000
A6
: 0x00000000 A7
: 0x00000080 A8
: 0x00000000 A9
:
0x3ffb7dd0
Nomor telepon A10
: 0x00000003 A11
: 0x00060f23 A12
: 0x00060f20 A13
:
0x3ffba6d0
Nomor telepon A14
: 0x00000047 A15
: 0x0000000f SAR
: 0x00000019 ALASAN:
0x0000001d
EXCVADDR: 0x00000000 LBEG : 0x4000c46c LEND : 0x4000c477 LCOUNT :
ukuran 0x00000000
Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90
IDF Monitor menambahkan lebih banyak detail ke dump:
Kesalahan Meditasi Guru jenis StoreProhibited terjadi pada inti 0. Pengecualian adalah
tidak tertangani.
Daftar pembuangan:
PC
: 0x400f360d PS
: 0x00060330 A0
: 0x800dbf56 A1
:
0x3ffb7e00
0x400f360d: lakukan_sesuatu_yang_membuat_crash di /home/gus/esp/32/idf/examples/memulai/
halo_dunia/utama/./halo_dunia_utama.c:57
(diberi garis bawah oleh) inner_dont_crash di /home/gus/esp/32/idf/examples/memulai/halo_
dunia/utama/./halo_dunia_utama.c:52
A2
: 0x3ffb136c A3
: 0x00000005 A4
: 0x00000000 A5
:
ukuran 0x00000000
A6
: 0x00000000 A7
: 0x00000080 A8
: 0x00000000 A9
:
0x3ffb7dd0
Nomor telepon A10
: 0x00000003 A11
: 0x00060f23 A12
: 0x00060f20 A13
:
0x3ffba6d0
Nomor telepon A14
: 0x00000047 A15
: 0x0000000f SAR
: 0x00000019 ALASAN:
0x0000001d
EXCVADDR: 0x00000000 LBEG : 0x4000c46c LEND : 0x4000c477 LCOUNT :
ukuran 0x00000000
Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90 0x400f360d: do_something_to_crash at /home/gus/esp/32/idf/examples/get-started/ hello_world/main/./hello_world_main.c:57 (disisipi oleh) inner_dont_crash di /home/gus/esp/32/idf/examples/get-started/hello_world/main/./hello_world_main.c:52 0x400dbf56: masih_tidak_crash di /home/gus/esp/32/idf/examples/get-started/hello_world/main/./hello_world_main.c:47 0x400dbf5e: jangan_crash di /home/gus/esp/32/idf/examples/get-started/hello_world/ main/./hello_world_main.c:42 0x400dbf82: app_main di /home/gus/esp/32/idf/examples/get-started/hello_world/main/ ./hello_world_main.c:33 0x400d071d: tugas_utama di /home/gus/esp/32/idf/komponen/esp32/./cpu_start.c:254
Untuk mendekode setiap alamat, IDF Monitor menjalankan perintah berikut di latar belakang: xtensa-esp32-elf-addr2line -pfiaC -e build/PROJECT.elf ADDRESS
Catatan: Tetapkan variabel lingkungan ESP_MONITOR_DECODE ke 0 atau panggil idf_monitor.py dengan baris perintah tertentu
Sistem Espressif
32 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
opsi: idf_monitor.py –disable-address-decoding untuk menonaktifkan dekode alamat.
Reset Target saat Koneksi. Secara default, IDF Monitor akan mereset target saat terhubung. Reset chip target dilakukan menggunakan jalur serial DTR dan RTS. Untuk mencegah IDF Monitor mereset target secara otomatis saat koneksi, panggil IDF Monitor dengan opsi –no-reset (misalnya, idf_monitor.py –no-reset).
Catatan: Opsi –no-reset menerapkan perilaku yang sama bahkan saat menghubungkan IDF Monitor ke port tertentu (misalnya, idf.py monitor –no-reset -p [PORT]).
Meluncurkan GDB dengan GDBStub GDBStub adalah fitur debugging runtime yang berguna yang berjalan pada target dan terhubung ke host melalui port serial untuk menerima perintah debugging. GDBStub mendukung perintah seperti membaca memori dan variabel, memeriksa frame tumpukan panggilan, dll. Meskipun GDBStub kurang fleksibel dibandingkan JTAG debugging, tidak memerlukan perangkat keras khusus (seperti JTAG ke jembatan USB) karena komunikasi dilakukan sepenuhnya melalui port serial. Target dapat dikonfigurasi untuk menjalankan GDBStub di latar belakang dengan mengatur CONFIG_ESP_SYSTEM_PANIC ke GDBStub saat runtime. GDBStub akan berjalan di latar belakang hingga pesan Ctrl+C dikirim melalui port serial dan menyebabkan GDBStub menghentikan (yaitu, menghentikan eksekusi) program, sehingga memungkinkan GDBStub menangani perintah debugging. Lebih lanjut, pengendali panik dapat dikonfigurasi untuk menjalankan GDBStub saat terjadi crash dengan mengatur CONFIG_ESP_SYSTEM_PANIC ke GDBStub saat panik. Ketika terjadi crash, GDBStub akan mengeluarkan pola string khusus melalui port serial untuk menunjukkan bahwa ia sedang berjalan. Dalam kedua kasus (yaitu, mengirim pesan Ctrl+C, atau menerima pola string khusus), IDF Monitor akan secara otomatis meluncurkan GDB untuk memungkinkan pengguna mengirim perintah debugging. Setelah GDB keluar, target direset melalui jalur serial RTS. Jika garis ini tidak tersambung, pengguna dapat mengatur ulang target mereka (dengan menekan tombol Reset pada boardns).
Catatan: Di latar belakang, IDF Monitor menjalankan perintah berikut untuk meluncurkan GDB:
xtensa-esp32-elf-gdb -ex “atur serial baud BAUD” -ex “target jarak jauh PORT” -ex interupsi build/PROYEK.elf :idf_target:`Halo NAMA chip`
Pemfilteran Keluaran Monitor IDF dapat dipanggil sebagai idf.py monitor –print-filter=”xyz”, dengan –print-filter adalah parameter untuk pemfilteran keluaran. Nilai default-nya adalah string kosong, yang berarti semuanya dicetak.
Pembatasan terhadap apa yang akan dicetak dapat ditentukan sebagai serangkaiantag>: barang dimanatag> adalah tag tali dan adalah karakter dari himpunan {N, E, W, I, D, V, *} yang merujuk ke level untuk pencatatan.
Misalnyaample, PRINT_FILTER="tag1:W” cocok dan hanya mencetak output yang ditulis dengan ESP_LOGW(“tag1”, …) atau pada tingkat verbositas yang lebih rendah, yaitu ESP_LOGE(“tag1″, …). Tidak menentukan atau menggunakan * secara default pada tingkat Verbose.
Catatan: Gunakan pencatatan primer untuk menonaktifkan keluaran yang tidak Anda perlukan melalui pustaka pencatatan saat kompilasi. Pemfilteran keluaran dengan monitor IDF merupakan solusi sekunder yang dapat berguna untuk menyesuaikan opsi pemfilteran tanpa mengompilasi ulang aplikasi.
Aplikasi Anda tags tidak boleh mengandung spasi, tanda bintang *, atau titik dua : agar kompatibel dengan fitur penyaringan keluaran.
Jika baris terakhir keluaran di aplikasi Anda tidak diikuti oleh carriage return, pemfilteran keluaran mungkin akan membingungkan, misalnya, monitor mulai mencetak baris tersebut dan kemudian menemukan bahwa baris tersebut seharusnya tidak ditulis. Ini adalah masalah umum dan dapat dihindari dengan selalu menambahkan carriage return (terutama jika tidak ada keluaran yang muncul setelahnya).
Sistem Espressif
33 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
ExampAturan Penyaringan:
· * dapat digunakan untuk mencocokkan apa pun tags. Namun, string PRINT_FILTER="*:I tag1:E” berkenaan dengan tag1 mencetak kesalahan saja, karena aturan untuk tag1 memiliki prioritas lebih tinggi atas aturan untuk *.
· Aturan default (kosong) setara dengan *:V karena mencocokkan setiap tag pada level Verbose atau lebih rendah berarti mencocokkan semuanya.
· “*:N” tidak hanya menekan keluaran dari fungsi pencatatan, tetapi juga cetakan yang dibuat oleh printf, dll. Untuk menghindari hal ini, gunakan *:E atau tingkat verbositas yang lebih tinggi.
· Aturan "tag1:V”, “tag1:v”, “tag1:”, “tag1:*”, dan “tag1” setara. · Aturan “tag1:W tag1:E” setara dengan “tag1:E” karena setiap kejadian yang sama terjadi tag
nama menimpa nama sebelumnya. · Aturan “tag1:Saya tag2:W” hanya mencetak tag1 pada tingkat verbositas Info atau lebih rendah dan tag2 pada Peringatan
tingkat verbositas atau lebih rendah. · Aturan “tag1:Saya tag2:W tag3:N” pada dasarnya setara dengan yang sebelumnya karena tag3:N menentukan
itu tag3 tidak boleh dicetak. tag3:N dalam aturan “tag1:Saya tag2:W tag3:N *:V” lebih bermakna karena tanpa tag3:N itu
tag3 pesan bisa dicetak; kesalahan untuk tag1 dan tag2 akan dicetak pada tingkat verbositas yang ditentukan (atau lebih rendah) dan yang lainnya akan dicetak secara default.
Penyaringan yang Lebih Kompleksample Cuplikan log berikut diperoleh tanpa opsi pemfilteran apa pun:
load:0x40078000,len:13564 entri 0x40078d4c E (31) esp_image: gambar pada 0x30000 memiliki byte ajaib yang tidak valid W (31) esp_image: gambar pada 0x30000 memiliki mode SPI 255 yang tidak valid E (39) boot: Partisi aplikasi pabrik tidak dapat di-boot I (568) cpu_start: CPU Pro aktif. I (569) heap_init: Menginisialisasi. RAM tersedia untuk alokasi dinamis: I (603) cpu_start: Kode pengguna mulai CPU Pro D (309) light_driver: [light_init, 74]:status: 1, mode: 2 D (318) vfs: esp_vfs_register_fd_range berhasil untuk rentang <54; 64) dan VFS ID 1 I (328) wifi: tugas driver wifi: 3ffdbf84, prio:23, tumpukan:4096, inti=0
Output yang ditangkap untuk opsi penyaringan PRINT_FILTER=”wifi esp_image:E light_driver:I” diberikan di bawah ini:
E (31) esp_image: gambar pada 0x30000 memiliki byte ajaib yang tidak valid I (328) wifi: tugas driver wifi: 3ffdbf84, prio:23, tumpukan:4096, inti=0
Opsi “PRINT_FILTER=”light_driver:D esp_image:N boot:N cpu_start:N vfs:N wifi:N *:V” menampilkan output berikut:
load:0x40078000,len:13564 entri 0x40078d4c I (569) heap_init: Inisialisasi. RAM tersedia untuk alokasi dinamis: D (309) light_driver: [light_init, 74]:status: 1, mode: 2
Masalah yang Diketahui dengan Monitor IDF
Masalah yang Diamati pada Windows
· Tombol panah, serta beberapa tombol lainnya, tidak berfungsi di GDB karena keterbatasan Konsol Windows. · Terkadang, ketika oidf.pype keluar, proses mungkin terhenti hingga 30 detik sebelum IDF Monitor melanjutkan. · Ketika ogdbpi dijalankan, proses mungkin terhenti sebentar sebelum mulai berkomunikasi dengan GDBStub.
Sistem Espressif
34 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai Pengaturan Toolchain Standar untuk Linux dan macOS
Langkah demi Langkah Instalasi Ini adalah peta jalan terperinci untuk memandu Anda melalui proses instalasi.
Menyiapkan Lingkungan Pengembangan Berikut adalah langkah-langkah untuk menyiapkan ESP-IDF untuk ESP32 Anda. · Langkah 1. Instal Prasyarat · Langkah 2. Dapatkan ESP-IDF · Langkah 3. Siapkan alat · Langkah 4. Siapkan variabel lingkungan · Langkah 5. Langkah Pertama pada ESP-IDF
Langkah 1. Prasyarat Instalasi Untuk menggunakan ESP-IDF dengan ESP32, Anda perlu menginstal beberapa paket perangkat lunak sesuai Sistem Operasi Anda. Panduan pengaturan ini akan membantu Anda menginstal semuanya di sistem berbasis Linux dan macOS.
Untuk Pengguna Linux, untuk mengompilasi menggunakan ESP-IDF, Anda perlu mendapatkan paket-paket berikut. Perintah yang dijalankan bergantung pada distribusi Linux yang Anda gunakan:
· Ubuntu dan Debian: sudo apt-get install git wget flex bison gperf python3 python3-pip python3venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
· CentOS 7 & 8: sudo yum -y update && sudo yum install git wget flex bison gperf python3 cmake ninja-build ccache dfu-util libusbx
CentOS 7 masih didukung, tetapi CentOS versi 8 direkomendasikan untuk pengalaman pengguna yang lebih baik. · Arch: sudo pacman -S –needed gcc git make flex bison gperf python cmake ninja ccache dfu-util libusb
Catatan: · CMake versi 3.16 atau yang lebih baru diperlukan untuk digunakan dengan ESP-IDF. Jalankan otools/idf_tools.py install cmake untuk menginstal versi yang sesuai jika versi OS Anda tidak memilikinya. · Jika Anda tidak menemukan distribusi Linux Anda dalam daftar di atas, silakan periksa dokumentasinya untuk mengetahui perintah mana yang harus digunakan untuk instalasi paket.
Bagi Pengguna macOS ESP-IDF akan menggunakan versi Python yang terinstal secara default di macOS. · Instal build CMake & Ninja: Jika Anda memiliki HomeBrew, Anda dapat menjalankan: brew install cmake ninja dfu-util Jika Anda memiliki MacPorts, Anda dapat menjalankan: sudo port install cmake ninja dfu-util Jika tidak, konsultasikan beranda CMake dan Ninja untuk unduhan instalasi macOS.
Sistem Espressif
35 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
· Sangat disarankan untuk menginstal ccache juga agar proses build lebih cepat. Jika Anda menggunakan HomeBrew, ini dapat dilakukan melalui brew install ccache atau sudo port install ccache di MacPorts.
Catatan: Jika kesalahan seperti ini ditampilkan selama langkah mana pun: xcrun: error: jalur pengembang aktif tidak valid (/Library/Developer/CommandLineTools), xcrun hilang di: /Library/Developer/CommandLineTools/usr/bin/xcrun
Selanjutnya, Anda perlu menginstal alat baris perintah XCode untuk melanjutkan. Anda dapat menginstalnya dengan menjalankan xcode-select –install.
Pengguna Apple M1 Jika Anda menggunakan platform Apple M1 dan melihat kesalahan seperti ini: PERINGATAN: direktori untuk alat xtensa-esp32-elf versi esp-2021r2-patch3-8.4.0 tersedia, tetapi alat tidak ditemukan. KESALAHAN: alat xtensa-esp32-elf tidak memiliki versi yang terinstal. Silakan jalankan 'install.sh' untuk menginstalnya.
atau: zsh: tipe CPU salah pada file yang dapat dieksekusi: ~/.espressif/tools/xtensa-esp32-elf/esp-2021r2patch3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
Kemudian Anda perlu menginstal Apple Rosetta 2 dengan menjalankan /usr/sbin/softwareupdate –install-rosetta –agree-to-license
Menginstal Python 3. Berdasarkan catatan rilis macOS Catalina 10.15, penggunaan Python 2.7 tidak disarankan dan Python 2.7 tidak akan disertakan secara default di versi macOS mendatang. Periksa Python yang Anda miliki saat ini: python –version
Jika outputnya seperti Python 2.7.17, interpreter default Anda adalah Python 2.7. Jika ya, periksa juga apakah Python 3 belum terpasang di komputer Anda: python3 –version
Jika perintah di atas menghasilkan kesalahan, artinya Python 3 belum terinstal. Berikut adalah contohnyaview langkah-langkah untuk menginstal Python 3.
· Instalasi dengan HomeBrew dapat dilakukan sebagai berikut: brew install python3
· Jika Anda memiliki MacPorts, Anda dapat menjalankan: sudo port install python38
Langkah 2. Dapatkan ESP-IDF. Untuk membangun aplikasi untuk ESP32, Anda memerlukan pustaka perangkat lunak yang disediakan oleh Espressif dalam repositori ESP-IDF. Untuk mendapatkan ESP-IDF, buka direktori instalasi Anda dan klon repositori dengan git clone, ikuti petunjuk di bawah ini yang khusus untuk sistem operasi Anda. Buka Terminal, lalu jalankan perintah berikut:
Sistem Espressif
36 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
mkdir -p ~/esp cd ~/esp git clone -b v5.0.9 –rekursif https://github.com/espressif/esp-idf.git
ESP-IDF akan diunduh ke ~/esp/esp-idf. Lihat Versi ESP-IDF untuk informasi tentang versi ESP-IDF mana yang akan digunakan dalam situasi tertentu.
Langkah 3. Siapkan alat Selain ESP-IDF, Anda juga perlu menginstal alat yang digunakan oleh ESP-IDF, seperti kompiler, debugger, paket Python, dll, untuk proyek yang mendukung ESP32. cd ~/esp/esp-idf ./install.sh esp32
atau dengan Fish shell cd ~/esp/esp-idf ./install.fish esp32
Perintah di atas hanya menginstal alat untuk ESP32. Jika Anda ingin mengembangkan proyek untuk lebih banyak target chip, sebaiknya daftarkan semuanya dan jalankan misalnyaample: cd ~/esp/esp-idf ./install.sh esp32,esp32s2
atau dengan Fish shell cd ~/esp/esp-idf ./install.fish esp32,esp32s2
Untuk menginstal alat untuk semua target yang didukung, jalankan perintah berikut: cd ~/esp/esp-idf ./install.sh all
atau dengan Fish shell cd ~/esp/esp-idf ./install.fish all
Catatan: Untuk pengguna macOS, jika kesalahan seperti ini ditampilkan selama langkah apa pun:urlkesalahan terbuka [SSL: CERTIFICATE_VERIFY_FAILED] verifikasi sertifikat gagal: tidak dapat memperoleh sertifikat penerbit lokal (_ssl.c:xxx)
Anda dapat menjalankan perintah Install Certificates.command di folder Python komputer Anda untuk menginstal sertifikat. Untuk detail selengkapnya, lihat Kesalahan Pengunduhan Saat Menginstal Alat ESP-IDF.
Alternatif File Unduhan Penginstal alat mengunduh sejumlah fileterlampir pada Rilis GitHub. Jika akses GitHub lambat, Anda dapat mengatur variabel lingkungan agar lebih memilih server unduhan Espressifns untuk unduhan aset GitHub.
Catatan: Pengaturan ini hanya mengontrol alat individual yang diunduh dari rilis GitHub, tidak mengubah URLdigunakan untuk mengakses repositori Git mana pun.
Untuk memilih server unduhan Espressif saat menginstal alat, gunakan urutan perintah berikut saat menjalankan install.sh:
Sistem Espressif
37 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
cd ~/esp/esp-idf ekspor IDF_GITHUB_ASSETS=”dl.espressif.com/github_assets” ./install.sh
Menyesuaikan jalur instalasi alat. Skrip yang diperkenalkan pada langkah ini menginstal alat kompilasi yang dibutuhkan oleh ESP-IDF di dalam direktori home pengguna: $HOME/.espressif di Linux. Jika Anda ingin menginstal alat di direktori yang berbeda, atur variabel lingkungan IDF_TOOLS_PATH sebelum menjalankan skrip instalasi. Pastikan akun pengguna Anda memiliki izin yang memadai untuk membaca dan menulis jalur ini. Jika mengubah IDF_TOOLS_PATH, pastikan nilainya sama setiap kali skrip Instalasi (install.bat, install.ps1, atau install.sh) dan skrip Ekspor (export.bat, export.ps1, atau export.sh) dijalankan.
Langkah 4. Mengatur variabel lingkungan. Alat yang terinstal belum ditambahkan ke variabel lingkungan PATH. Agar alat dapat digunakan dari baris perintah, beberapa variabel lingkungan harus diatur. ESP-IDF menyediakan skrip lain yang dapat melakukannya. Di terminal tempat Anda akan menggunakan ESP-IDF, jalankan:
. $HOME/esp/esp-idf/export.sh
atau untuk ikan (hanya didukung sejak versi ikan 3.0.0):
. $HOME/esp/esp-idf/ekspor.ikan
Perhatikan spasi antara titik awal dan jalur! Jika Anda berencana untuk sering menggunakan esp-idf, Anda dapat membuat alias untuk menjalankan export.sh:
1. Salin dan tempel perintah berikut ke shellns pro Andafile (.profile, .bashrc, .zprofile, dll.)
alias get_idf='. $HOME/esp/esp-idf/export.sh' 2. Segarkan konfigurasi dengan memulai ulang sesi terminal atau dengan menjalankan source [path ke profile],
untuk mantanample, source ~/.bashrc. Sekarang Anda dapat menjalankan get_idf untuk menyiapkan atau menyegarkan lingkungan esp-idf di sesi terminal mana pun. Secara teknis, Anda dapat menambahkan export.sh ke shellns pro Anda.file langsung; namun, hal ini tidak disarankan. Melakukan hal tersebut akan mengaktifkan lingkungan virtual IDF di setiap sesi terminal (termasuk yang tidak memerlukan IDF), sehingga menggagalkan tujuan lingkungan virtual tersebut dan kemungkinan besar memengaruhi perangkat lunak lainnya.
Langkah 5. Langkah Pertama di ESP-IDF. Setelah semua persyaratan terpenuhi, topik selanjutnya akan memandu Anda tentang cara memulai proyek pertama Anda. Panduan ini akan membantu Anda pada langkah pertama menggunakan ESP-IDF. Ikuti panduan ini untuk memulai proyek baru di ESP32 dan membangun, mem-flash, serta memantau keluaran perangkat.
Catatan: Jika Anda belum menginstal ESP-IDF, silakan buka Instalasi dan ikuti petunjuk untuk mendapatkan semua perangkat lunak yang diperlukan untuk menggunakan panduan ini.
Mulai Proyek Sekarang Anda siap untuk mempersiapkan aplikasi Anda untuk ESP32. Anda dapat memulai dengan proyek getstarted/hello_world dari contohamples direktori di ESP-IDF.
Penting: Sistem pembangun ESP-IDF tidak mendukung spasi di jalur menuju ESP-IDF atau proyek.
Salin proyek get-started/hello_world ke direktori ~/esp:
Sistem Espressif
38 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
cd ~/esp cp -r $IDF_PATH/examples/memulai/hello_world .
Catatan: Ada berbagai macam example proyek di examples direktori di ESP-IDF. Anda dapat menyalin proyek apa pun dengan cara yang sama seperti yang disajikan di atas dan menjalankannya. Dimungkinkan juga untuk membangun examples di tempat tanpa menyalinnya terlebih dahulu.
Hubungkan Perangkat Anda. Sekarang, hubungkan papan ESP32 Anda ke komputer dan periksa port serial mana yang menampilkan papan tersebut. Port serial memiliki pola penamaan berikut:
· Linux: dimulai dengan /dev/tty · macOS: dimulai dengan /dev/cu. Jika Anda tidak yakin cara memeriksa nama port serial, silakan lihat Membuat Koneksi Serial dengan ESP32 untuk detail selengkapnya.
Catatan: Jaga agar nama port tetap berguna karena Anda akan membutuhkannya di langkah selanjutnya.
Konfigurasikan Proyek Anda Arahkan ke direktori hello_world Anda, tetapkan ESP32 sebagai target, dan jalankan utilitas konfigurasi proyek menuconfig. cd ~/esp/hello_world idf.py set-target esp32 idf.py menuconfig
Setelah membuka proyek baru, Anda harus menetapkan target terlebih dahulu dengan idf.py set-target esp32. Perhatikan bahwa build dan konfigurasi yang ada dalam proyek, jika ada, akan dihapus dan diinisialisasi dalam proses ini. Target dapat disimpan dalam variabel lingkungan untuk melewati langkah ini. Lihat Memilih Chip Target: set-target untuk informasi tambahan. Jika langkah-langkah sebelumnya telah dilakukan dengan benar, menu berikut akan muncul:
Gambar 17: Konfigurasi proyek – Jendela Beranda Anda menggunakan menu ini untuk mengatur variabel khusus proyek, misalnya, nama dan kata sandi jaringan Wi-Fi, kecepatan prosesor, dll. Menyiapkan proyek dengan menuconfig dapat dilewati untuk ohello_worldp, karena contoh iniample berjalan dengan
Sistem Espressif
39 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
konfigurasi default.
Perhatian: Jika Anda menggunakan papan ESP32-DevKitC dengan modul ESP32-SOLO-1, atau papan ESP32-DevKitM-1 dengan modul ESP32-MIN1-1(1U), harap aktifkan mode inti tunggal (CONFIG_FREERTOS_UNICORE) di menuconfig sebelum mem-flash exampsedikit.
Catatan: Warna menu mungkin berbeda di terminal Anda. Anda dapat mengubah tampilannya dengan opsi –style. Silakan jalankan idf.py menuconfig –help untuk informasi lebih lanjut.
Jika Anda menggunakan salah satu papan pengembangan yang didukung, Anda dapat mempercepat pengembangan dengan menggunakan Paket Dukungan Papan. Lihat Tips Tambahan untuk informasi selengkapnya.
Membangun Proyek Bangun proyek dengan menjalankan:
idf.py membangun
Perintah ini akan mengkompilasi aplikasi dan semua komponen ESP-IDF, kemudian akan menghasilkan bootloader, tabel partisi, dan binari aplikasi.
$ idf.py build Menjalankan cmake di direktori /path/to/hello_world/build Menjalankan "cmake -G Ninja –warn-uninitialized /path/to/hello_world"… Memperingatkan tentang nilai yang belum diinisialisasi. — Ditemukan Git: /usr/bin/git (ditemukan versi "2.17.0") — Membangun komponen aws_iot kosong karena konfigurasi — Nama komponen: … — Jalur komponen: …
… (lebih banyak baris keluaran sistem build)
[527/527] Membuat hello_world.bin esptool.py v2.3.1
Proses pembangunan proyek selesai. Untuk melakukan flash, jalankan perintah ini: ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash -flash_mode dio –flash_size detect –flash_freq 40m 0x10000 build/hello_world.bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin atau jalankan 'idf.py -p PORT flash'
Jika tidak ada kesalahan, pembangunan akan selesai dengan menghasilkan biner firmware .bin files.
Flash ke Perangkat Flash biner yang baru saja Anda buat (bootloader.bin, partition-table.bin dan hello_world.bin) ke papan ESP32 Anda dengan menjalankan:
idf.py -p PORT [-b BAUD] berkedip
Ganti PORT dengan nama port serial board ESP32 Anda. Anda juga dapat mengubah laju baud flasher dengan mengganti BAUD dengan laju baud yang Anda butuhkan. Laju baud default adalah 460800. Untuk informasi selengkapnya tentang argumen idf.py, lihat idf.py.
Catatan: Opsi flash secara otomatis membangun dan mem-flash proyek, jadi menjalankan idf.py build tidak diperlukan.
Sistem Espressif
40 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
Mengalami Masalah Saat Flashing? Jika Anda menjalankan perintah yang diberikan dan melihat kesalahan seperti "oFailed to connectp", mungkin ada beberapa alasan untuk ini. Salah satu penyebabnya mungkin masalah yang dialami oleh esptool.py, utilitas yang dipanggil oleh sistem build untuk mereset chip, berinteraksi dengan bootloader ROM, dan mem-flash firmware. Salah satu solusi sederhana yang dapat dicoba adalah reset manual yang dijelaskan di bawah ini, dan jika tidak membantu, Anda dapat menemukan detail lebih lanjut tentang kemungkinan masalah di Pemecahan Masalah.
esptool.py mereset ESP32 secara otomatis dengan mengaktifkan jalur kontrol DTR dan RTS dari chip konverter USB ke serial, yaitu FTDI atau CP210x (untuk informasi selengkapnya, lihat Membuat Koneksi Serial dengan ESP32). Jalur kontrol DTR dan RTS kemudian terhubung ke pin GPIO0 dan CHIP_PU (EN) ESP32, sehingga terjadi perubahan vol.tagTingkat DTR dan RTS akan mem-boot ESP32 ke mode Unduh Firmware. Sebagai contoh,ample, periksa skema untuk papan pengembangan ESP32 DevKitC.
Secara umum, Anda seharusnya tidak mengalami masalah dengan papan pengembangan esp-idf resmi. Namun, esptool.py tidak dapat mengatur ulang perangkat keras Anda secara otomatis dalam kasus berikut:
· Perangkat keras Anda tidak memiliki jalur DTR dan RTS yang terhubung ke GPIO0 dan CHIP_PU · Jalur DTR dan RTS dikonfigurasi secara berbeda · Tidak ada jalur kontrol serial seperti itu sama sekali
Bergantung pada jenis perangkat keras yang Anda miliki, Anda mungkin juga dapat menempatkan papan ESP32 Anda ke mode Unduhan Firmware (reset) secara manual.
· Untuk papan pengembangan yang diproduksi oleh Espressif, informasi ini dapat ditemukan di panduan memulai atau panduan pengguna masing-masing. Misalnyaample, untuk mereset papan pengembangan ESP-IDF secara manual, tahan tombol Boot (GPIO0) dan tekan tombol EN (CHIP_PU).
· Untuk jenis perangkat keras lainnya, coba tarik GPIO0 ke bawah.
Operasi Normal Saat melakukan flashing, Anda akan melihat log keluaran yang mirip dengan berikut ini:
… esptool.py –chip esp32 -p /dev/ttyUSB0 -b 460800 –before=default_reset -after=hard_reset write_flash –flash_mode dio –flash_freq 40m –flash_size 2MB 0x8000 partition_table/partition-table.bin 0x1000 bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev Port serial /dev/ttyUSB0 Menghubungkan…….._ Chip adalah ESP32D0WDQ6 (revisi 0) Fitur: WiFi, BT, Dual Core, Skema Pengodean Tidak Ada Kristal adalah 40MHz MAC: 24:0a:c4:05:b9:14 Mengunggah stub… Menjalankan stub… Stub berjalan… Mengubah laju baud menjadi 460800 Diubah. Mengonfigurasi ukuran flash… Mengompresi 3072 byte menjadi 103… Menulis pada 0x00008000… (100%) Menulis 3072 byte (103 terkompresi) pada 0x00008000 dalam 0.0 detik (efektif 5962.8 kbit/dtk)… Hash data diverifikasi. Mengompresi 26096 byte menjadi 15408… Menulis pada 0x00001000… (100%) Menulis 26096 byte (15408 terkompresi) pada 0x00001000 dalam 0.4 detik (efektif 546.7 kbit/dtk)… Hash data diverifikasi. Dikompresi 147104 byte menjadi 77364… Menulis pada 0x00010000… (20%) Menulis pada 0x00014000… (40%) Menulis pada 0x00018000… (60%) Menulis pada 0x0001c000… (80%)
(bersambung ke halaman berikutnya)
Sistem Espressif
41 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
(lanjutan dari halaman sebelumnya) Menulis pada 0x00020000… (100%) Menulis 147104 byte (77364 terkompresi) pada 0x00010000 dalam 1.9 detik (efektif 615,5 kbit/dtk)… Hash data diverifikasi.
Meninggalkan… Hard reset melalui RTS pin… Selesai
Jika tidak ada masalah di akhir proses flash, papan akan di-reboot dan menjalankan aplikasi ohello_worldp. Jika Anda ingin menggunakan IDE Eclipse atau VS Code daripada menjalankan idf.py, silakan coba Plugin Eclipse dan Ekstensi VSCode.
Memantau Output Untuk memeriksa apakah ohello_worldpis benar-benar berjalan, ketik idf.py -p PORT monitor (Jangan lupa mengganti PORT dengan nama port serial Anda). Perintah ini akan meluncurkan aplikasi IDF Monitor:
$ idf.py -p Menjalankan idf_monitor di direktori […]/esp/hello_world/build Menjalankan “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_world/build/hello_world.elf”… — idf_monitor pada 115200 —– Keluar: Ctrl+] | Menu: Ctrl+T | Bantuan: Ctrl+T diikuti oleh Ctrl+H –ets 8 Jun 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) ets 8 Juni 2016 00:22:57 …
Setelah log permulaan dan diagnostik bergulir ke atas, Anda akan melihat oHello world!p yang dicetak oleh aplikasi.
… Halo dunia! Restart dalam 10 detik… Ini chip esp32 dengan 2 inti CPU, WiFi/BT/BLE, silikon revisi 1, flash eksternal 2MB. Ukuran heap kosong minimum: 298968 byte. Restart dalam 9 detik… Restart dalam 8 detik… Restart dalam 7 detik…
Untuk keluar dari monitor IDF, gunakan pintasan Ctrl+]. Jika monitor IDF gagal sesaat setelah pengunggahan, atau, alih-alih pesan di atas, Anda melihat sampah acak seperti yang ditampilkan di bawah ini, papan Anda kemungkinan menggunakan kristal 26 MHz. Sebagian besar desain papan pengembangan menggunakan 40 MHz, sehingga ESP-IDF menggunakan frekuensi ini sebagai nilai default.
Jika Anda mengalami masalah seperti itu, lakukan hal berikut:
1. Keluar dari monitor. 2. Kembali ke menuconfig. 3. Buka Konfigurasi Komponen > Pengaturan Perangkat Keras > Konfigurasi XTAL Utama > Konfigurasi XTAL Utama
frekuensi, lalu ubah CONFIG_XTAL_FREQ_SEL menjadi 26 MHz. 4. Setelah itu, bangun dan flash aplikasi lagi.
Sistem Espressif
42 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
Dalam versi ESP-IDF saat ini, frekuensi XTAL utama yang didukung oleh ESP32 adalah sebagai berikut:
· 26 MHz · 40 MHz
Catatan: Anda dapat menggabungkan pembangunan, flashing dan pemantauan menjadi satu langkah dengan menjalankan: idf.py -p PORT flash monitor
Lihat juga: · IDF Monitor untuk pintasan praktis dan detail lebih lanjut tentang penggunaan IDF Monitor. · idf.py untuk referensi lengkap perintah dan opsi idf.py.
Itu saja yang Anda butuhkan untuk memulai dengan ESP32! Sekarang Anda siap untuk mencoba beberapa ex lainnyaamples, atau langsung mengembangkan aplikasi Anda sendiri.
Penting: Beberapa mantanamples tidak mendukung ESP32 karena perangkat keras yang dibutuhkan tidak termasuk dalam ESP32 sehingga tidak dapat didukung. Jika membangun example, silakan periksa README file untuk tabel Target yang Didukung. Jika ini ada termasuk target ESP32, atau tabel tidak ada sama sekali, contohample akan bekerja pada ESP32.
Tips Tambahan
Masalah izin /dev/ttyUSB0 Pada beberapa distribusi Linux, Anda mungkin mendapatkan pesan kesalahan "Gagal membuka port /dev/ttyUSB0" saat mem-flash ESP32. Masalah ini dapat diatasi dengan menambahkan pengguna saat ini ke grup dialout.
Kompatibilitas Python: ESP-IDF mendukung Python 3.7 atau yang lebih baru. Disarankan untuk memperbarui sistem operasi Anda ke versi terbaru yang memenuhi persyaratan ini. Pilihan lain termasuk instalasi Python dari sumber atau penggunaan sistem manajemen versi Python seperti pyenv.
Mulai dengan Paket Dukungan Papan Untuk mempercepat pembuatan prototipe pada beberapa papan pengembangan, Anda dapat menggunakan Paket Dukungan Papan (BSP), yang membuat inisialisasi papan tertentu semudah beberapa pemanggilan fungsi. BSP biasanya mendukung semua komponen perangkat keras yang tersedia di papan pengembangan. Selain definisi pinout dan fungsi inisialisasi, BSP dilengkapi dengan driver untuk komponen eksternal seperti sensor, layar, codec audio, dll. BSP didistribusikan melalui IDF Component Manager, sehingga dapat ditemukan di IDF Component Registry. Berikut adalah contohampcontoh cara menambahkan ESP-WROVER-KIT BSP ke proyek Anda: idf.py add-dependency esp_wrover_kit
Lebih banyak mantanampContoh penggunaan BSP dapat ditemukan di BSP exampfolder file.
Tips: Memperbarui ESP-IDF. Disarankan untuk memperbarui ESP-IDF secara berkala, karena versi yang lebih baru memperbaiki bug dan/atau menyediakan fitur baru. Harap dicatat bahwa setiap versi rilis mayor dan minor ESP-IDF memiliki periode dukungan terkait, dan ketika satu cabang rilis mendekati akhir masa pakai (EOL), semua pengguna disarankan untuk memperbarui proyek mereka ke rilis ESP-IDF yang lebih baru. Untuk mengetahui lebih lanjut tentang periode dukungan, lihat Versi ESP-IDF.
Sistem Espressif
43 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 1. Memulai
Cara termudah untuk melakukan pembaruan adalah dengan menghapus folder esp-idf yang ada dan mengkloningnya kembali, seperti melakukan instalasi awal yang dijelaskan pada Langkah 2. Dapatkan ESP-IDF. Solusi lain adalah memperbarui hanya apa yang telah berubah. Prosedur pembaruan bergantung pada versi ESP-IDF yang Anda gunakan. Setelah memperbarui ESP-IDF, jalankan kembali skrip Instal, jika versi ESP-IDF yang baru memerlukan versi alat yang berbeda. Lihat petunjuk di Langkah 3. Siapkan alat. Setelah alat baru diinstal, perbarui lingkungan menggunakan skrip Ekspor. Lihat petunjuk di Langkah 4. Siapkan variabel lingkungan.
Dokumen Terkait · Membangun Koneksi Serial dengan ESP32 · Plugin Eclipse · Ekstensi VSCode · Monitor IDF
1.4 Bangun Proyek Pertama Anda
Jika Anda sudah menginstal ESP-IDF dan tidak menggunakan IDE, Anda dapat membangun proyek pertama Anda dari baris perintah dengan mengikuti Mulai Proyek di Windows atau Mulai Proyek di Linux dan macOS.
1.5 Copot pemasangan ESP-IDF
Jika Anda ingin menghapus ESP-IDF, silakan ikuti Uninstall ESP-IDF.
Sistem Espressif
44 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 2
Referensi API
2.1 Konvensi API
Dokumen ini menjelaskan konvensi dan asumsi umum untuk Antarmuka Pemrograman Aplikasi (API) ESP-IDF. ESP-IDF menyediakan beberapa jenis antarmuka pemrograman:
· Fungsi C, struktur, enum, definisi tipe, dan makro praprosesor dideklarasikan di header publik fileKomponen ESPIDF. Berbagai halaman di bagian Referensi API pada panduan pemrograman berisi deskripsi fungsi, struktur, dan jenis komponen ini.
· Fungsi sistem build, variabel dan opsi yang telah ditentukan sebelumnya. Hal ini didokumentasikan dalam panduan sistem build. · Opsi Kconfig dapat digunakan dalam kode dan sistem build (CMakeLists.txt) files. · Alat host dan parameter baris perintahnya juga merupakan bagian dari antarmuka ESP-IDF. ESP-IDF terdiri dari komponen-komponen yang ditulis khusus untuk ESP-IDF serta pustaka pihak ketiga. Dalam beberapa kasus, pembungkus khusus ESP-IDF ditambahkan ke pustaka pihak ketiga, menyediakan antarmuka yang lebih sederhana atau terintegrasi lebih baik dengan fasilitas ESP-IDF lainnya. Dalam kasus lain, API asli dari pustaka pihak ketiga disajikan kepada pengembang aplikasi. Bagian berikut menjelaskan beberapa aspek API ESP-IDF dan penggunaannya.
Penanganan Kesalahan 2.1.1
Sebagian besar API ESP-IDF mengembalikan kode kesalahan yang didefinisikan dengan tipe esp_err_t. Lihat bagian Penanganan Kesalahan untuk informasi selengkapnya tentang pendekatan penanganan kesalahan. Referensi Kode Kesalahan berisi daftar kode kesalahan yang dikembalikan oleh komponen ESP-IDF.
2.1.2 Struktur konfigurasi
Penting: Inisialisasi struktur konfigurasi yang benar merupakan bagian penting dalam membuat aplikasi kompatibel dengan versi ESP-IDF mendatang.
Sebagian besar fungsi inisialisasi atau konfigurasi di ESP-IDF menggunakan pointer ke struktur konfigurasi sebagai argumen. Misalnya,ampsaya:
45
Bab 2. Referensi API
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, .arg = callback_arg, .name = “my_timer”
}; esp_timer_handle_t pengatur_waktu saya; esp_err_t err = esp_timer_create(&arg_pengatur_waktu_saya, &pengatur_waktu_saya);
Fungsi inisialisasi tidak pernah menyimpan penunjuk ke struktur konfigurasi, jadi aman untuk mengalokasikan struktur pada tumpukan.
Aplikasi harus menginisialisasi semua kolom struktur. Berikut ini salah:
esp_timer_create_args_t my_timer_args; my_timer_args.callback = &my_timer_callback; /* Salah! Kolom .arg dan .name tidak diinisialisasi */ esp_timer_create(&my_timer_args, &my_timer);
Sebagian besar mantan ESP-IDFamples menggunakan inisialisasi yang ditetapkan C99 untuk inisialisasi struktur, karena mereka menyediakan cara ringkas untuk menetapkan subset bidang, dan menginisialisasi nol bidang yang tersisa:
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, /* Benar, bidang .arg dan .name diinisialisasi nol */
};
Bahasa C++ tidak mendukung sintaksis designated initializer hingga C++20, namun kompiler GCC sebagian mendukungnya sebagai ekstensi. Saat menggunakan API ESP-IDF dalam kode C++, Anda dapat mempertimbangkan pola berikut:
esp_timer_create_args_t my_timer_args = {}; /* Semua bidang diinisialisasi nol */ my_timer_args.callback = &my_timer_callback;
Inisialisasi default
Untuk beberapa struktur konfigurasi, ESP-IDF menyediakan makro untuk menetapkan nilai default bidang:
httpd_config_t config = HTTPD_DEFAULT_CONFIG(); /* HTTPD_DEFAULT_CONFIG mengembang ke inisialisasi yang ditunjuk.
Sekarang semua kolom telah diatur ke nilai default. Kolom apa pun masih dapat diubah: */ config.server_port = 8081; httpd_handle_t server; esp_err_t err = httpd_start(&server, &config);
Disarankan untuk menggunakan makro inisialisasi default setiap kali disediakan untuk struktur konfigurasi tertentu.
2.1.3 API Pribadi
Header tertentu files di ESP-IDF berisi API yang dimaksudkan untuk digunakan hanya dalam kode sumber ESP-IDF, dan bukan oleh aplikasi. Header tersebut files sering kali mengandung private atau esp_private dalam nama atau jalurnya. Komponen tertentu, seperti hal, hanya berisi API privat. API privat dapat dihapus atau diubah dengan cara yang tidak kompatibel antara rilis minor atau patch.
2.1.4 Komponen dalam exampproyek-proyek
ESP-IDF exampFile berisi berbagai proyek yang menunjukkan penggunaan API ESP-IDF. Untuk mengurangi duplikasi kode dalam contoh,amples, beberapa pembantu umum didefinisikan di dalam komponen yang digunakan oleh beberapa exampsedikit.
Sistem Espressif
46 Kirim Masukan Dokumen
Rilis v5.0.9
Bab 2. Referensi API
Ini termasuk komponen yang terletak
Dokumen / Sumber Daya
![]() |
Papan Pengembangan Espressif Systems ESP32 Dev Kitc [Bahasa Indonesia:] Panduan Pengguna Papan Pengembangan ESP32 Dev Kitc, ESP32, Papan Pengembangan Dev Kitc, Papan Pengembangan Kitc, Papan Pengembangan, Papan |
