Belajar

ESP32 projects for beginners, in the order to try them

Pemula

Atau lihat semua pelajaran.

  • 503komponen di meja kerja
  • 44board sedang berjalan
  • 1.00xwaktu nyata, di semua board
ESP32 DevKit: kenop yang meredupkan LEDlive0.000 s 0.00x
Klik untuk membukanya di editor
Contoh kenop ESP32: potensiometer di GPIO 32 mengatur terang LED di GPIO 4, dengan bacaan mentahnya dicetak.

ESP32 adalah board pertama yang bagus: harganya kurang lebih sama dengan Arduino clone, punya WiFi, dan menjalankan kode Arduino yang sama. Halaman ini mencantumkan proyek pemula dalam urutan yang paling banyak mengajarkan, dan semuanya sudah dirakit dan berjalan di Mokxi, jadi kamu bisa mencobanya di browser sebelum membeli satu komponen pun.

Rangkaian di atas adalah proyek tiga, potensiometer yang meredupkan LED di ESP32 DevKit klasik. Tekan Jalankan dan putar kenopnya: Serial Monitor mencetak bacaan mentah dan duty PWM-nya. Di tengah, bacaannya 1892, bukan 2048, dan bacaannya mencapai 4095 sedikit sebelum kenop diputar penuh. Penyebabnya adalah hal paling berguna yang bisa dipelajari pemula tentang ADC ESP32, dan dijelaskan di bawah.

Sebelum mulai: tiga perbedaan ESP32

ESP32 bekerja di 3.3 V. Pin GPIO mengeluarkan 3.3 V dan tidak boleh sampai kena 5 V. Sensor yang dibuat untuk Uno sering bisa bekerja di 3.3 V, tapi cek dulu, dan pasang pembagi tegangan atau level shifter di setiap sinyal 5 V yang masuk.

ADC-nya membaca 0 sampai 4095, dua belas bit, bukan 0 sampai 1023. Di atenuasi default, bacaannya bukan garis lurus: bacaannya jenuh di sekitar 3.1 V, jadi kenop yang dipasang di 3.3 V mencapai 4095 lebih awal dan terbaca sekitar 1890 di tengah. Persis itulah yang dicetak rangkaian di atas.

Nomor pin adalah nomor GPIO, dan beberapa pin istimewa. Di ESP32 klasik, GPIO 34 sampai 39 hanya bisa jadi input, dan beberapa pin menentukan cara chip melakukan booting. Setiap halaman board di Mokxi mencantumkan pin-pinnya.

Proyek 1 sampai 4: pin, PWM, dan ADC

1. Kedipkan LED. Sketch pertama di board apa pun: pinMode, digitalWrite, dan delay. Di ESP32-C3, LED-nya ada di GPIO 8.

2. Tombol dan LED. Tombol tekan dari pin ke ground dengan INPUT_PULLUP, menyalakan LED selama tombol ditahan. Proyek ini mengajarkan resistor pull-up tanpa resistor.

3. Kenop yang meredupkan LED. Rangkaian di atas: analogRead di GPIO 32 dan analogWrite di GPIO 4. Proyek ini mengajarkan ADC 12-bit dan PWM.

4. Sapuan servo. SG90 di channel PWM 50 Hz, digerakkan dari ujung ke ujung. Lebar pulsanya adalah sudutnya, dan hardware LEDC di ESP32 terus mengirim pulsa selagi core mengerjakan hal lain.

Proyek 5 sampai 7: sensor dan display

5. Pelangi NeoPixel. Enam belas LED WS2812B di satu pin data ESP32-C3, dengan roda warna yang berjalan di sepanjang LED-nya. Di board sungguhan, library Adafruit NeoPixel mengurus pengaturan waktunya untukmu.

6. Monitor suhu dan kelembapan. DHT22 di satu pin, dibaca setiap beberapa detik dan dicetak ke Serial Monitor. Tambahkan OLED SSD1306 lewat I2C untuk menampilkannya tanpa komputer.

7. Sensor ruangan. DHT22, sensor cahaya BH1750, dan sensor gerak PIR di satu ESP32-C3, rakitan yang jadi awal banyak pengguna Home Assistant. Setiap bacaan dicetak sebagai pesan MQTT yang akan dikirimnya.

Proyek 8 sampai 10: WiFi

8. Sambungkan ke WiFi. WiFi.begin(), tunggu sambungannya, cetak alamat IP-nya. Di Mokxi, jaringannya disimulasikan di dalam browser, dan tidak ada yang keluar dari komputermu kecuali kamu masuk dan menyalakan internet sungguhan. Sengaja ubah kata sandinya, maka sambungannya gagal setelah lima detik, sama seperti di board sungguhan.

9. Halaman web yang menyalakan lampu. WebServer di ESP32 menyajikan halaman dengan dua tombol; tekan salah satunya di panel Web, maka LED-nya mengikuti. Inilah proyek yang membuat kebanyakan orang langsung paham ESP32.

10. Ambil data dengan HTTP. HTTPClient meminta JSON dari server, dan sketch mengurai angka-angkanya. Di Mokxi, sketch berkomunikasi dengan server tiruan yang jawabannya bisa kamu edit, dan request ke website sungguhan ditolak dengan pesan yang jelas, kecuali kamu masuk dan menyalakan internet sungguhan.

Board ESP32 mana yang sebaiknya dibeli

Untuk board pertama, ESP32 DevKit V1 (ESP32 klasik) atau ESP32-C3 SuperMini. DevKit punya pin paling banyak dan tutorial paling banyak. SuperMini mungil, murah, dan punya USB native. ESP32-S3 adalah pilihan untuk kamera, display, dan memori lebih besar. Ketiganya, dan beberapa lainnya, berjalan di Mokxi, jadi kamu bisa mencoba proyekmu di masing-masing board sebelum memilih.

Kalau kamu sudah punya Arduino Uno, kerjakan dua proyek pertama di sana; tidak ada yang perlu diubah selain nomor pin. Halaman yang membandingkan Uno, ESP32, dan Pico membahasnya lebih dalam.

Kesalahan umum pemula

Menyambungkan 5 V ke GPIO. ESP32 adalah chip 3.3 V, dan 5 V di sebuah pin bisa merusaknya.

Mengira analogRead berupa garis lurus dari 0 sampai 3.3 V. Di atenuasi default, bacaannya sekitar 1890 di tengah putaran kenop dan 4095 mulai sekitar 3.1 V, seperti yang ditunjukkan rangkaian di atas; pakai analogReadMilliVolts() untuk mendapat volt.

Memakai pin ADC2 saat WiFi menyala. Di ESP32 klasik, pin ADC2 tidak bisa dibaca selama WiFi berjalan. Pakai pin ADC1 seperti GPIO 32 sampai 39 untuk apa pun yang analog di proyek WiFi.

Memilih pin yang memengaruhi booting. Kalau board tidak mau menyala saat rangkaianmu terpasang, pindahkan komponennya dari strapping pin yang tercantum di halaman board-nya.

Pertanyaan

Apa proyek ESP32 pertama yang bagus?

Kedipkan LED, lalu tombol, lalu kenop yang meredupkan LED. Ketiganya mengajarkan output digital, input dengan pull-up, ADC 12-bit, dan PWM. Setelah itu, halaman web yang menyalakan lampu menunjukkan untuk apa WiFi-nya.

Bisakah aku mencoba proyek ESP32 tanpa board-nya?

Bisa. Setiap proyek di halaman ini berjalan di Mokxi di browsermu, dengan kode Arduino yang dikompilasi dan berjalan di ESP32 simulasi. Tidak perlu akun untuk membuka dan menjalankannya.

Apakah proyek ESP32 memakai Arduino IDE?

Kebanyakan tutorial pemula memakainya, dengan paket board ESP32 terpasang. Kode di halaman ini adalah kode Arduino dan bisa di-upload dari Arduino IDE tanpa diubah.

Kenapa analogRead ESP32-ku mencapai 4095 sebelum 3.3 V?

Di atenuasi default 11 dB, bacaan mentah ESP32 sungguhan jenuh di sekitar 3.1 V dan melengkung sebelum sampai ke sana, jadi tengah putaran kenop 3.3 V terbaca sekitar 1890, bukan 2048. Pakai analogReadMilliVolts() untuk bacaan dalam milivolt.

Rakit versi nyatanya

Buka editor, ubah sebuah nilai, dan lihat angkanya ikut berubah. Tidak ada yang perlu dipasang, dan tidak perlu akun.