ESP32 dhasar wiwitan
Kit
Daftar Packing
ESP32 Pambuka
Anyar kanggo ESP32? Mulai kene! ESP32 minangka seri mikrokontroler System on a Chip (SoC) sing murah lan murah sing dikembangake dening Espressif sing kalebu kemampuan nirkabel Wi-Fi lan Bluetooth lan prosesor dual-inti. Yen sampeyan wis kenal karo ESP8266, ESP32 minangka penerus, dimuat karo akeh fitur anyar.Spesifikasi ESP32
Yen sampeyan pengin entuk luwih teknis lan spesifik, sampeyan bisa ndeleng spesifikasi rinci ing ngisor iki ESP32 (sumber: http://esp32.net/)—kanggo rincian liyane, mriksa datasheet):
- Konektivitas nirkabel WiFi: 150.0 Mbps data rate karo HT40
- Bluetooth: BLE (Bluetooth Low Energy) lan Bluetooth Classic
- Prosesor: Tensilica Xtensa Dual-Core 32-bit LX6 mikroprosesor, mlaku ing 160 utawa 240 MHz
- Memori:
- ROM: 448 KB (kanggo booting lan fungsi inti)
- SRAM: 520 KB (kanggo data lan instruksi)
- RTC fas SRAM: 8 KB (kanggo panyimpenan data lan CPU utama sajrone RTC Boot saka mode turu jero)
- SRAM alon RTC: 8KB (kanggo ngakses co-processor sajrone mode turu jero) eFuse: 1 Kbit (sing 256 bit digunakake kanggo sistem (alamat MAC lan konfigurasi chip) lan 768 bit sing isih disimpen kanggo aplikasi pelanggan, kalebu Flash-Enkripsi lan Chip-ID)
Lampu kilat sing dipasang: lampu kilat disambungake sacara internal liwat IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 lan SD_DATA_1 ing ESP32-D2WD lan ESP32-PICO-D4.
- 0 MiB (Kripik ESP32-D0WDQ6, ESP32-D0WD, lan ESP32-S0WD)
- 2 MiB (chip ESP32-D2WD)
- 4 MiB (modul ESP32-PICO-D4 SiP)
Kurang Daya: mesthekake yen sampeyan isih bisa nggunakake konversi ADC, contoneample, sak jero turu.
Input/Output Periferal:
- antarmuka peripheral karo DMA sing kalebu tutul kapasitif
- ADCs (Konverter Analog-to-Digital)
- DAC (Digital-to-Analog Converter)
- I²C (Inter-Integrated Circuit)
- UART (Universal Asynchronous Receiver/Transmitter)
- SPI (Serial Peripheral Interface)
- I²S (Swara Interchip Terintegrasi)
- RMII (Antarmuka Mandhiri Media Suda)
- PWM (Pulse-Width Modulation)
Keamanan: akselerator hardware kanggo AES lan SSL / TLS
Papan Pangembangan ESP32
ESP32 nuduhake chip ESP32 gundhul. Nanging, istilah "ESP32" uga digunakake kanggo ngrujuk menyang papan pangembangan ESP32. Nggunakake Kripik gundhul ESP32 ora gampang utawa praktis, utamane nalika sinau, nyoba, lan nggawe prototipe. Umume, sampeyan pengin nggunakake papan pangembangan ESP32.
Kita bakal nggunakake papan ESP32 DEVKIT V1 minangka referensi. Gambar ing ngisor iki nuduhake papan ESP32 DEVKIT V1, versi kanthi 30 pin GPIO.Spesifikasi - ESP32 DEVKIT V1
Tabel ing ngisor iki nuduhake ringkesan fitur lan spesifikasi papan ESP32 DEVKIT V1 DOIT:
Jumlah inti | 2 (dwi inti) |
Wi-Fi | 2.4 GHz nganti 150 Mbits/s |
Bluetooth | BLE (Bluetooth Low Energy) lan Bluetooth lawas |
Arsitektur | 32 bit |
Frekuensi jam | Nganti 240 MHz |
RAM | 512 KB |
Pin | 30 (gumantung saka model) |
Peripheral | Capacitive touch, ADC (analog to digital converter), DAC (digital to analog converter), 12C (Inter-Integrated Circuit), UART (universal asynchronous receiver/transmitter), CAN 2.0 (Controller Area Netwokr), SPI (Serial Peripheral Interface) , 12S (Integrated Inter-IC Swara), RMII (Reduced Media-Independent Interface), PWM (pulse width modulation), lan liya-liyane. |
Dibangun ing tombol | Tombol RESET lan BOOT |
Dibangun ing LED | dibangun ing LED biru disambungake menyang GPIO2; dibangun ing LED abang sing nuduhake Papan lagi powered |
USB menyang UART jembatan |
CP2102 |
Nerangake karo antarmuka microUSB sing bisa digunakake kanggo nyambungake Papan menyang komputer kanggo ngunggah kode utawa aplikasi daya.
Iku nggunakake chip CP2102 (USB kanggo UART) kanggo komunikasi karo komputer liwat port COM nggunakake antarmuka serial. Chip populer liyane yaiku CH340. Priksa manawa konverter chip USB menyang UART ing papan sampeyan amarga sampeyan kudu nginstal driver sing dibutuhake supaya komputer sampeyan bisa komunikasi karo papan kasebut (informasi liyane babagan iki mengko ing pandhuan iki).
Papan iki uga dilengkapi tombol RESET (bisa diwenehi label EN) kanggo miwiti maneh papan lan tombol BOOT kanggo nyelehake papan ing mode sumunar (kasedhiya kanggo nampa kode). Elinga yen sawetara papan bisa uga ora duwe tombol BOOT.
Uga nerangake karo LED biru dibangun ing internal disambungake menyang GPIO 2. LED iki migunani kanggo debugging kanggo menehi sawetara Urut saka output fisik visual. Ana uga LED abang sing murup nalika sampeyan nyedhiyakake daya menyang papan.ESP32 Pinout
Periferal ESP32 kalebu:
- 18 saluran Analog-to-Digital Converter (ADC).
- 3 antarmuka SPI
- 3 antarmuka UART
- 2 Antarmuka I2C
- 16 saluran output PWM
- 2 Konverter Digital-to-Analog (DAC)
- 2 antarmuka I2S
- 10 Capacitive sensing GPIOs
ADC (analog to digital converter) lan DAC (digital to analog converter) fitur diutus kanggo pin statis tartamtu. Nanging, sampeyan bisa nemtokake pin sing UART, I2C, SPI, PWM, etc - sampeyan mung kudu nemtokake ing kode. Iki bisa uga amarga fitur multiplexing chip ESP32.
Sanajan sampeyan bisa nemtokake sifat pin ing piranti lunak, ana pin sing ditugasake kanthi standar kaya sing ditampilake ing gambar ing ngisor iki.Kajaba iku, ana pin kanthi fitur tartamtu sing nggawe cocok utawa ora kanggo proyek tartamtu. Tabel ing ngisor iki nuduhake pin apa sing paling apik digunakake minangka input, output lan sing kudu diwaspadai.
Lencana sing disorot nganggo warna ijo bisa digunakake. Sing disorot ing warna kuning OK kanggo digunakake, nanging sampeyan kudu menehi perhatian amarga bisa uga duwe prilaku sing ora dikarepke utamane nalika boot. Pin sing disorot abang ora dianjurake kanggo digunakake minangka input utawa output.
GP IO | Input | Output | Cathetan |
0 | ditarik munggah | OK | output sinyal PWM nalika boot, kudu LOW kanggo ngetik mode sumunar |
1 | Pin TX | OK | output debug nalika boot |
2 | OK | OK | disambungake menyang onboard LED, kudu ngiwa ngambang utawa LOW kanggo ngetik mode sumunar |
3 | OK | Pin RX Kab | Dhuwur nalika boot |
4 | OK | OK | |
5 | OK | OK | output sinyal PWM nalika boot, strapping pin |
12 | OK | OK | boot gagal yen ditarik dhuwur, strapping pin |
13 | OK | OK | |
14 | OK | OK | output sinyal PWM nalika boot |
15 | OK | OK | output sinyal PWM nalika boot, strapping pin |
16 | OK | OK | |
17 | OK | OK | |
18 | OK | OK | |
19 | OK | OK | |
21 | OK | OK | |
22 | OK | OK | |
23 | OK | OK | |
25 | OK | OK | |
26 | OK | OK | |
27 | OK | OK | |
32 | OK | OK | |
33 | OK | OK | |
34 | OK | mung input | |
35 | OK | mung input | |
36 | OK | mung input | |
39 | OK | mung input |
Terus maca kanggo analisis luwih rinci lan ing-ambane saka ESP32 GPIOs lan fungsi.
Input mung pin
GPIOs 34 kanggo 39 GPIs - mung input pin. Pin iki ora duwe resistor pull-up utawa pull-down internal. Ora bisa digunakake minangka output, mula gunakake pin iki mung minangka input:
- GPIO 34
- GPIO 35
- GPIO 36
- GPIO 39
Lampu kilat SPI terintegrasi ing ESP-WROOM-32
GPIO 6 nganti GPIO 11 kapapar ing sawetara papan pangembangan ESP32. Nanging, pin kasebut disambungake menyang lampu kilat SPI terpadu ing chip ESP-WROOM-32 lan ora dianjurake kanggo panggunaan liyane. Dadi, aja nganggo pin iki ing proyek sampeyan:
- GPIO 6 (SCK/CLK)
- GPIO 7 (SDO/SD0)
- GPIO 8 (SDI/SD1)
- GPIO 9 (SHD/SD2)
- GPIO 10 (SWP/SD3)
- GPIO 11 (CSC/CMD)
GPIO tutul kapasitif
ESP32 duwe 10 sensor tutul kapasitif internal. Iki bisa ngrasakake variasi apa wae sing duwe muatan listrik, kayata kulit manungsa. Supaya bisa ndeteksi variasi sing disebabake nalika ndemek GPIO nganggo driji. Pin iki bisa gampang digabungake menyang bantalan kapasitif lan ngganti tombol mekanik. Pin tutul kapasitif uga bisa digunakake kanggo tangi ESP32 saka turu jero. Sensor tutul internal kasebut disambungake menyang GPIO iki:
- T0 (GPIO 4)
- T1 (GPIO 0)
- T2 (GPIO 2)
- T3 (GPIO 15)
- T4 (GPIO 13)
- T5 (GPIO 12)
- T6 (GPIO 14)
- T7 (GPIO 27)
- T8 (GPIO 33)
- T9 (GPIO 32)
Konverter Digital menyang Digital (ADC)
ESP32 duwe saluran input ADC 18 x 12 bit (yen ESP8266 mung duwe ADC 1x 10 bit). Iki minangka GPIO sing bisa digunakake minangka ADC lan saluran masing-masing:
- ADC1_CH0 (GPIO 36)
- ADC1_CH1 (GPIO 37)
- ADC1_CH2 (GPIO 38)
- ADC1_CH3 (GPIO 39)
- ADC1_CH4 (GPIO 32)
- ADC1_CH5 (GPIO 33)
- ADC1_CH6 (GPIO 34)
- ADC1_CH7 (GPIO 35)
- ADC2_CH0 (GPIO 4)
- ADC2_CH1 (GPIO 0)
- ADC2_CH2 (GPIO 2)
- ADC2_CH3 (GPIO 15)
- ADC2_CH4 (GPIO 13)
- ADC2_CH5 (GPIO 12)
- ADC2_CH6 (GPIO 14)
- ADC2_CH7 (GPIO 27)
- ADC2_CH8 (GPIO 25)
- ADC2_CH9 (GPIO 26)
Cathetan: Pin ADC2 ora bisa digunakake nalika Wi-Fi digunakake. Dadi, yen sampeyan nggunakake Wi-Fi lan sampeyan ngalami masalah njupuk nilai saka ADC2 GPIO, sampeyan bisa uga nimbang nggunakake ADC1 GPIO. Sing kudu ngrampungake masalah sampeyan.
Saluran input ADC duwe resolusi 12-bit. Iki tegese sampeyan bisa entuk maca analog saka 0 nganti 4095, sing 0 cocog karo 0V lan 4095 nganti 3.3V. Sampeyan uga bisa nyetel resolusi saluran ing kode lan kisaran ADC.
Pin ESP32 ADC ora duwe prilaku linear. Sampeyan mbokmenawa ora bakal bisa mbedakake antarane 0 lan 0.1V, utawa antarane 3.2 lan 3.3V. Sampeyan kudu elinga nalika nggunakake pin ADC. Sampeyan bakal entuk prilaku sing padha karo sing ditampilake ing gambar ing ngisor iki.Konverter Digital menyang Analog (DAC)
Ana saluran DAC 2 x 8 bit ing ESP32 kanggo ngowahi sinyal digital dadi vol analogtagoutput sinyal e. Iki minangka saluran DAC:
- DAC1 (GPIO25)
- DAC2 (GPIO26)
RTC GPIOs
Ana dhukungan RTC GPIO ing ESP32. GPIO sing dituju menyang subsistem daya rendah RTC bisa digunakake nalika ESP32 turu. GPIO RTC iki bisa digunakake kanggo tangi ESP32 saka turu jero nalika Ultra Low
Power (ULP) co-processor mlaku. GPIO ing ngisor iki bisa digunakake minangka sumber tangi eksternal.
- RTC_GPIO0 (GPIO36)
- RTC_GPIO3 (GPIO39)
- RTC_GPIO4 (GPIO34)
- RTC_GPIO5 (GPIO35)
- RTC_GPIO6 (GPIO25)
- RTC_GPIO7 (GPIO26)
- RTC_GPIO8 (GPIO33)
- RTC_GPIO9 (GPIO32)
- RTC_GPIO10 (GPIO4)
- RTC_GPIO11 (GPIO0)
- RTC_GPIO12 (GPIO2)
- RTC_GPIO13 (GPIO15)
- RTC_GPIO14 (GPIO13)
- RTC_GPIO15 (GPIO12)
- RTC_GPIO16 (GPIO14)
- RTC_GPIO17 (GPIO27)
PWM
ESP32 LED PWM controller wis 16 saluran sawijining sing bisa diatur kanggo generate sinyal PWM karo sifat beda. Kabeh pin sing bisa tumindak minangka output bisa digunakake minangka pin PWM (GPIOs 34 kanggo 39 ora bisa generate PWM).
Kanggo nyetel sinyal PWM, sampeyan kudu nemtokake parameter kasebut ing kode:
- frekuensi sinyal;
- Siklus tugas;
- saluran PWM;
- GPIO ngendi sampeyan pengin output sinyal.
I2C
ESP32 duwe rong saluran I2C lan pin apa wae bisa disetel minangka SDA utawa SCL. Nalika nggunakake ESP32 karo Arduino IDE, pin I2C standar yaiku:
- GPIO 21 (SDA)
- GPIO 22 (SCL)
Yen sampeyan pengin nggunakake pin liyane nalika nggunakake perpustakaan kabel, sampeyan mung kudu nelpon:
Wire.begin(SDA, SCL);
SPI
Secara default, pemetaan pin kanggo SPI yaiku:
SPI | MOSI | MISO | CLK | CS |
VSPI | GPIO 23 | GPIO 19 | GPIO 18 | GPIO 5 |
HSPI | GPIO 13 | GPIO 12 | GPIO 14 | GPIO 15 |
Ganggu
Kabeh GPIO bisa dikonfigurasi minangka interrupts.
Strapping Pins
Chip ESP32 nduweni pin strapping ing ngisor iki:
- GPIO 0 (kudu RENDAH kanggo mlebu mode boot)
- GPIO 2 (kudu ngambang utawa RENDAH nalika boot)
- GPIO 4
- GPIO 5 (kudu dhuwur nalika boot)
- GPIO 12 (kudu RENDAH nalika boot)
- GPIO 15 (kudu dhuwur nalika boot)
Iki digunakake kanggo nyelehake ESP32 menyang bootloader utawa mode sumunar. Ing paling Papan pembangunan karo dibangun ing USB / Serial, sampeyan ora perlu sumelang ing bab negara lencana iki. Papan sijine pin ing negara tengen kanggo sumunar utawa mode boot. Informasi liyane babagan Pilihan Mode Boot ESP32 bisa ditemokake ing kene.
Nanging, yen sampeyan duwe periferal sing disambungake menyang pin kasebut, sampeyan bisa uga duwe masalah nyoba ngunggah kode anyar, sumunar ESP32 nganggo perangkat kukuh anyar, utawa ngreset papan. Yen sampeyan duwe sawetara peripheral sing disambungake menyang pin strapping lan sampeyan ngalami masalah ngunggah kode utawa sumunar ESP32, bisa uga amarga periferal kasebut nyegah ESP32 mlebu ing mode sing bener. Waca dokumentasi Pilihan Mode Boot kanggo nuntun sampeyan menyang arah sing bener. Sawise ngreset, sumunar, utawa booting, pin kasebut bisa digunakake kaya sing dikarepake.
Pin HIGH ing Boot
Sawetara GPIO ngganti negara dadi sinyal PWM HIGH utawa output nalika boot utawa ngreset.
Iki tegese yen sampeyan duwe output sing disambungake menyang GPIO iki sampeyan bisa entuk asil sing ora dikarepke nalika ESP32 ngreset utawa boot.
- GPIO 1
- GPIO 3
- GPIO 5
- GPIO 6 kanggo GPIO 11 (disambungake menyang ESP32 memori flash SPI terpadu - ora dianjurake kanggo nggunakake).
- GPIO 14
- GPIO 15
Aktifake (EN)
Enable (EN) yaiku pin ngaktifake regulator 3.3V. Iku ditarik munggah, supaya nyambung menyang lemah kanggo mateni regulator 3.3V. Iki tegese sampeyan bisa nggunakake pin iki disambungake menyang pushbutton kanggo miwiti maneh ESP32, kanggo Example.
GPIO saiki digambar
Arus maksimum absolut sing digambar saben GPIO yaiku 40mA miturut bagean "Kahanan Operasi sing Disaranake" ing lembar data ESP32.
Sensor Efek Hall ESP32 Dibangun
ESP32 uga nduweni sensor efek aula sing dibangun sing ndeteksi owah-owahan ing medan magnet ing saubengé
ESP32 Arduino IDE
Ana tambahan kanggo Arduino IDE sing ngijini sampeyan kanggo program ESP32 nggunakake Arduino IDE lan basa program sawijining. Ing tutorial iki, kita bakal nuduhake sampeyan carane nginstal papan ESP32 ing Arduino IDE apa sampeyan nggunakake Windows, Mac OS X utawa Linux.
Prasyarat: Arduino IDE diinstal
Sadurunge miwiti prosedur instalasi iki, sampeyan kudu nginstal Arduino IDE ing komputer. Ana rong versi Arduino IDE sing bisa diinstal: versi 1 lan versi 2.
Sampeyan bisa ngundhuh lan nginstal Arduino IDE kanthi ngeklik link ing ngisor iki: arduino.cc/en/Main/Software
Versi IDE Arduino sing disaranake? Ing wayahe, ana sawetara plugins kanggo ESP32 (kaya SPIFFS Filesystem Uploader Plugin) sing durung didhukung ing Arduino 2. Dadi, yen sampeyan arep nggunakake plugin SPIFFS ing mangsa ngarep, disaranake nginstal versi 1.8.X warisan. Sampeyan mung kudu nggulung mudhun ing kaca piranti lunak Arduino kanggo nemokake.
Nginstal ESP32 Add-on ing Arduino IDE
Kanggo nginstal papan ESP32 ing Arduino IDE, tindakake pandhuan ing ngisor iki:
- Ing Arduino IDE, pindhah menyang File> Preferensi
- Ketik ing ngisor iki menyang "Additional Board Manager URLs" lapangan:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Banjur, klik tombol "OK":Cathetan: yen sampeyan wis duwe Papan ESP8266 URL, sampeyan bisa misahake URLs kanthi koma kaya ing ngisor iki:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Bukak Manajer Papan. Pindhah menyang Alat> Papan> Manajer Papan...Nggoleki ESP32 and press install button for the “ESP32 by Espressif Systems“:
Mekaten. Sampeyan kudu diinstal sawise sawetara detik.
Unggah Kode Test
Pasang papan ESP32 menyang komputer. Kanthi Arduino IDE mbukak, tindakake langkah iki:
- Pilih Papan sampeyan ing Tools> menu Board (ing kasusku iki ESP32 DEV Module)
- Pilih Port (yen sampeyan ora weruh Port COM ing Arduino IDE, sampeyan kudu nginstal CP210x USB kanggo UART Bridge VCP Drivers):
- Bukak ex ing ngisor ikiample ngisor File > Examples > WiFi
(ESP32) > WiFiScan - Sketsa anyar mbukak ing Arduino IDE:
- Pencet tombol Upload ing Arduino IDE. Enteni sawetara detik nalika kode kompilasi lan diunggah menyang papan sampeyan.
- Yen kabeh mlaku kaya sing dikarepake, sampeyan kudu ndeleng "Rampung upload." pesen.
- Bukak Arduino IDE Serial Monitor kanthi baud rate 115200:
- Pencet tombol Aktifake ing papan ESP32 lan sampeyan kudu ndeleng jaringan sing kasedhiya ing cedhak ESP32 sampeyan:
Ngatasi masalah
Yen sampeyan nyoba ngunggah sketsa anyar menyang ESP32 lan sampeyan entuk pesen kesalahan iki "A kesalahan fatal occured: Gagal nyambung menyang ESP32: Wektu metu ... Nyambung ...". Iki tegese ESP32 sampeyan ora ana ing mode sumunar / upload.
Duwe jeneng Papan tengen lan COM por dipilih, tindakake langkah iki:
Tahan tombol "BOOT" ing papan ESP32 sampeyan
- Pencet tombol "Upload" ing Arduino IDE kanggo ngunggah sketsa sampeyan:
- Sawise sampeyan ndeleng "Sambungake ...." pesen ing Arduino IDE, ngeculake driji saka tombol "BOOT":
- Sawise iku, sampeyan kudu ndeleng pesen "Rampung upload".
Mekaten. ESP32 sampeyan kudu duwe sketsa anyar. Pencet tombol "Aktifake" kanggo miwiti maneh ESP32 lan mbukak sketsa sing diunggah.
Sampeyan uga kudu mbaleni urutan tombol kasebut saben-saben sampeyan pengin ngunggah sketsa anyar.
Proyek 1 ESP32 Input Output
Ing pandhuan wiwitan iki, sampeyan bakal sinau maca input digital kaya tombol switch lan ngontrol output digital kaya LED nggunakake ESP32 karo Arduino IDE.
Prasyarat
Kita bakal program ESP32 nggunakake Arduino IDE. Dadi, priksa manawa sampeyan wis nginstal papan tambahan ESP32 sadurunge nerusake:
- Nginstal ESP32 Add-on ing Arduino IDE
ESP32 Kontrol Output Digital
Pisanan, sampeyan kudu nyetel GPIO sing pengin dikontrol minangka OUTPUT. Gunakake fungsi pinMode () kaya ing ngisor iki:
pinMode(GPIO, OUTPUT);
Kanggo ngontrol output digital sampeyan mung kudu nggunakake fungsi digitalWrite (), sing nampa minangka bantahan, GPIO (nomer int) sampeyan referring kanggo, lan negara, salah siji HIGH utawa LOW.
digitalWrite(GPIO, STATE);
Kabeh GPIO bisa digunakake minangka output kajaba GPIOs 6 kanggo 11 (disambungake menyang lampu kilat SPI terpadu) lan GPIOs 34, 35, 36 lan 39 (input mung GPIO);
Sinau luwih lengkap babagan ESP32 GPIOs: ESP32 GPIO Reference Guide
ESP32 Waca Input Digital
Pisanan, setel GPIO sing pengin diwaca minangka INPUT, nggunakake fungsi pinMode () kaya ing ngisor iki:
pinMode(GPIO, INPUT);
Kanggo maca input digital, kaya tombol, sampeyan nggunakake fungsi digitalRead (), sing nampa minangka bantahan, GPIO (nomer int) sing referring kanggo.
digitalRead(GPIO);
Kabeh GPIO ESP32 bisa digunakake minangka input, kajaba GPIOs 6 kanggo 11 (disambungake menyang lampu kilat SPI terpadu).
Sinau luwih lengkap babagan ESP32 GPIOs: ESP32 GPIO Reference Guide
Proyek Example
Kanggo nuduhake sampeyan carane nggunakake input digital lan output digital, kita bakal mbangun ex project prasajaample karo pushbutton lan LED. Kita bakal maca kahanan pushbutton lan madhangi LED kaya sing digambarake ing gambar ing ngisor iki.
Parts dibutuhake
Mangkene dhaptar bagean sing sampeyan butuhake kanggo mbangun sirkuit:
- ESP32 DEVKIT V1
- LED 5 mm Kab
- Resistor 220 Ohm Kab
- Tombol Push
- Resistor 10k Ohm Kab
- Papan roti
- Kabel jumper
Diagram Skema
Sadurunge nerusake, sampeyan kudu ngumpulake sirkuit karo LED lan pushbutton.
Kita bakal nyambungake LED kanggo GPIO 5 lan pushbutton kanggo GPIO 4.Kode
Bukak kode Project_1_ESP32_Inputs_Outputs.ino ing arduino IDECara Kerja Kode
Ing rong baris ing ngisor iki, sampeyan nggawe variabel kanggo nemtokake pin:
Tombol disambungake menyang GPIO 4 lan LED disambungake menyang GPIO 5. Nalika nggunakake Arduino IDE karo ESP32, 4 cocog karo GPIO 4 lan 5 cocog karo GPIO 5.
Sabanjure, sampeyan nggawe variabel kanggo nahan negara tombol. Kanthi gawan, iku 0 (ora dipencet).
int tombolState = 0;
Ing persiyapan (), sampeyan miwiti tombol minangka INPUT, lan LED minangka OUTPUT.
Kanggo sing, sampeyan nggunakake fungsi pinMode () sing nampa pin sing referring kanggo, lan mode: INPUT utawa OUTPUT.
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
Ing daur ulang () ngendi sampeyan maca negara tombol lan nyetel LED patut.
Ing baris sabanjure, sampeyan maca negara tombol lan simpen ing variabel buttonState.
Nalika kita wis katon sadurunge, sampeyan nggunakake fungsi digitalRead ().
buttonState = digitalRead(buttonPin);
Pernyataan yen ing ngisor iki, mriksa apa status tombol HIGH. Yen iku, dadi LED ing nggunakake digitalWrite () fungsi sing nampa minangka bantahan ledPin, lan negara HIGH.
yen (buttonState == HIGH)Yen negara tombol ora dhuwur, sampeyan nyetel LED mati. Cukup nyetel LOW minangka argumen kapindho ing fungsi digitalWrite ().
Ngunggah Kode
Sadurunge ngeklik tombol upload, pindhah menyang Tools > Board, banjur pilih papan: DOIT ESP32 DEVKIT V1 board.
Pindhah menyang Alat> Port banjur pilih port COM sing disambungake ESP32. Banjur, penet tombol upload lan ngenteni pesen "Rampung upload".Cathetan: Yen sampeyan ndeleng akeh titik (nyambung…__…__) ing jendela debugging lan pesen "Gagal nyambung menyang ESP32: Wektu ngenteni header paket", tegese sampeyan kudu mencet BOOT on-board ESP32. tombol sawise titik
miwiti katon.Ngatasi masalah
Demonstrasi
Sawise upload kode, nyoba sirkuit sampeyan. LED sampeyan kudu murup nalika sampeyan menet tombol:Lan mateni nalika sampeyan ngeculake:
Input Analog Project 2 ESP32
Proyek iki nuduhake carane maca input analog karo ESP32 nggunakake Arduino IDE.
Wacan analog migunani kanggo maca nilai saka resistor variabel kaya potentiometer, utawa sensor analog.
Input Analog (ADC)
Maca nilai analog karo ESP32 tegese sampeyan bisa ngukur vol sing beda-bedatage tingkat antarane 0 V lan 3.3 V.
Voltage diukur banjur diutus kanggo nilai antarane 0 lan 4095, kang 0 V cocog karo 0, lan 3.3 V cocog karo 4095. Sembarang voltage antarane 0 V lan 3.3 V bakal diwenehi nilai sing cocog ing antarane.ADC non-linear
Saenipun, sampeyan bakal nyana prilaku linear nalika nggunakake pin ESP32 ADC.
Nanging, iku ora kelakon. Sing bakal ditampa yaiku prilaku kaya sing ditampilake ing grafik ing ngisor iki:Prilaku iki tegese ESP32 sampeyan ora bisa mbedakake 3.3 V saka 3.2 V.
Sampeyan bakal entuk nilai sing padha kanggo loro voltagiku: 4095.
Padha mengkono kanggo vol banget kurangtage nilai: kanggo 0 V lan 0.1 V sampeyan bakal entuk nilai padha: 0. Sampeyan kudu elinga nalika nggunakake ESP32 ADC pin.
analogRead() Fungsi
Maca input analog karo ESP32 nggunakake Arduino IDE minangka prasaja minangka nggunakake analogRead () fungsi. Ditampa minangka argumen, GPIO sing pengin diwaca:
analogRead(GPIO);
Mung 15 kasedhiya ing DEVKIT V1board (versi karo 30 GPIO).
Njupuk pinout Papan ESP32 lan nemokake pin ADC. Iki disorot kanthi wates abang ing gambar ing ngisor iki.Pin input analog iki duwe resolusi 12-bit. Iki tegese nalika maca input analog, sawetara bisa beda-beda saka 0 kanggo 4095.
Cathetan: Pin ADC2 ora bisa digunakake nalika Wi-Fi digunakake. Dadi, yen sampeyan nggunakake Wi-Fi lan sampeyan ngalami masalah njupuk nilai saka ADC2 GPIO, sampeyan bisa uga nimbang nggunakake ADC1 GPIO tinimbang, sing kudu ngatasi masalah sampeyan.
Kanggo ndeleng carane kabeh hubungane, kita bakal nggawe mantan sing prasajaample kanggo maca nilai analog saka potentiometer a.
Parts dibutuhake
Kanggo mantan ikiample, sampeyan butuh bagean ing ngisor iki:
- ESP32 DEVKIT V1 Papan
- Potentiometer
- Papan roti
- Kabel jumper
Skematis
Sambungake potentiometer menyang ESP32 sampeyan. Pin tengah potentiometer kudu disambungake menyang GPIO 4. Sampeyan bisa nggunakake diagram skematis ing ngisor iki minangka referensi.Kode
Kita bakal program ESP32 nggunakake Arduino IDE, supaya priksa manawa sampeyan duwe ESP32 add-on diinstal sadurunge nerusake: (Yen sampeyan wis nindakake langkah iki, sampeyan bisa pindhah menyang langkah sabanjure.)
Nginstal ESP32 Add-on ing Arduino IDE
Bukak kode Project_2_ESP32_Inputs_Outputs.ino ing arduino IDEKode iki mung maca nilai saka potensiometer lan nyithak nilai kasebut ing Monitor Serial.
Ing kode, sampeyan miwiti kanthi nemtokake GPIO potentiometer disambungake. Ing mantan ikiamplan, GPIO 4.Ing persiyapan (), miwiti komunikasi serial ing tingkat baud 115200.
Ing daur ulang (), nggunakake analogRead () fungsi kanggo maca input analog saka potPin.
Pungkasan, print angka sing diwaca saka potentiometer ing monitor serial.
Unggah kode sing diwenehake menyang ESP32 sampeyan. Priksa manawa sampeyan duwe papan tengen lan port COM sing dipilih ing menu Alat.
Testing Example
Sawise upload kode lan mencet tombol reset ESP32, mbukak Serial Monitor ing tingkat baud 115200. Puter potentiometer lan ndeleng nilai ganti.Nilai maksimal sing sampeyan entuk yaiku 4095 lan nilai minimal 0.
Bungkus
Ing artikel iki sampeyan wis sinau carane maca input analog nggunakake ESP32 karo Arduino IDE. Ing ringkesan:
- Papan ESP32 DEVKIT V1 DOIT (versi karo 30 pin) duwe 15 pin ADC sing bisa digunakake kanggo maca input analog.
- Pin kasebut duwe resolusi 12 bit, tegese sampeyan bisa entuk nilai saka 0 nganti 4095.
- Kanggo maca nilai ing Arduino IDE, sampeyan mung nggunakake fungsi analogRead ().
- Pin ESP32 ADC ora duwe prilaku linear. Sampeyan mbokmenawa ora bakal bisa mbedakake antarane 0 lan 0.1V, utawa antarane 3.2 lan 3.3V. Sampeyan kudu elinga nalika nggunakake pin ADC.
Project 3 ESP32 PWM(Output Analog)
Ing tutorial iki, kita bakal nuduhake sampeyan carane ngasilake sinyal PWM nganggo ESP32 nggunakake Arduino IDE. Minangka mantanample kita bakal mbangun sirkuit prasaja sing dims LED nggunakake LED PWM controller saka ESP32.ESP32 LED PWM Controller
ESP32 duwe pengontrol PWM LED kanthi saluran independen 16 sing bisa dikonfigurasi kanggo ngasilake sinyal PWM kanthi sifat sing beda.
Mangkene langkah-langkah sing kudu sampeyan tindakake kanggo nyuda LED nganggo PWM nggunakake IDE Arduino:
- Pisanan, sampeyan kudu milih saluran PWM. Ana 16 saluran saka 0 nganti 15.
- Banjur, sampeyan kudu nyetel frekuensi sinyal PWM. Kanggo LED, frekuensi 5000 Hz bisa digunakake.
- Sampeyan uga kudu nyetel resolusi siklus tugas sinyal: sampeyan duwe resolusi saka 1 kanggo 16 bit. Kita bakal nggunakake resolusi 8-bit, tegese sampeyan bisa ngontrol padhange LED nggunakake nilai saka 0 nganti 255.
- Sabanjure, sampeyan kudu nemtokake manawa GPIO utawa GPIO sinyal kasebut bakal katon. Kanggo nindakake iki, sampeyan bakal nggunakake fungsi ing ngisor iki:
ledcAttachPin(GPIO, saluran)
Fungsi iki nampa rong argumen. Kapisan yaiku GPIO sing bakal ngasilake sinyal, lan sing kapindho yaiku saluran sing bakal ngasilake sinyal kasebut. - Pungkasan, kanggo ngontrol padhange LED nggunakake PWM, sampeyan nggunakake fungsi ing ngisor iki:
ledcWrite(saluran, dutycycle)
Fungsi iki nampa minangka argumen saluran sing ngasilake sinyal PWM, lan siklus tugas.
Parts dibutuhake
Kanggo ngetutake tutorial iki, sampeyan butuh bagean kasebut:
- ESP32 DEVKIT V1 Papan
- LED 5mm
- Resistor 220 Ohm Kab
- Papan roti
- Kabel jumper
Skematis
Sambungake LED menyang ESP32 kaya ing diagram skema ing ngisor iki. LED kudu disambungake menyang GPIO 4.Cathetan: sampeyan bisa nggunakake sembarang pin pengin, anggere bisa tumindak minangka output. Kabeh pin sing bisa dadi output bisa digunakake minangka pin PWM. Kanggo informasi luwih lengkap babagan ESP32 GPIOs, waca: ESP32 Referensi Pinout: Pin GPIO kang sampeyan kudu nggunakake?
Kode
Kita bakal program ESP32 nggunakake Arduino IDE, supaya priksa manawa sampeyan duwe ESP32 add-on diinstal sadurunge nerusake: (Yen sampeyan wis nindakake langkah iki, sampeyan bisa pindhah menyang langkah sabanjure.)
Nginstal ESP32 Add-on ing Arduino IDE
Bukak kode Project_3_ESP32_PWM.ino ing arduino IDESampeyan miwiti kanthi nemtokake pin sing dipasang ing LED. Ing kasus iki, LED dipasang ing GPIO 4.
Banjur, sampeyan nyetel sifat sinyal PWM. Sampeyan nemtokake frekuensi 5000 Hz, milih saluran 0 kanggo ngasilake sinyal, lan nyetel resolusi 8 bit. Sampeyan bisa milih properti liyane, beda saka iki, kanggo generate sinyal PWM beda.
Ing persiyapan (), sampeyan kudu ngatur LED PWM karo sifat sing wis ditetepake sadurungé nggunakake fungsi ledcSetup () sing nampa minangka bantahan, ledChannel, frekuensi, lan resolusi, minangka nderek:
Sabanjure, sampeyan kudu milih GPIO sampeyan bakal entuk sinyal. Kanggo nggunakake ledcAttachPin () fungsi sing nampa minangka bantahan GPIO ngendi sampeyan pengin njaluk sinyal, lan saluran sing ngasilake sinyal. Ing mantan ikiample, kita bakal entuk sinyal ing ledPin GPIO, sing cocog karo GPIO 4. Saluran sing ngasilake sinyal yaiku ledChannel, sing cocog karo saluran 0.
Ing daur ulang, sampeyan bakal beda-beda siklus tugas antarane 0 lan 255 kanggo nambah padhange LED.
Banjur, antarane 255 lan 0 kanggo nyuda padhange.
Kanggo nyetel padhange LED, sampeyan mung kudu nggunakake fungsi ledcWrite () sing nampa minangka bantahan saluran sing ngasilake sinyal, lan siklus tugas.
Nalika kita nggunakake résolusi 8-dicokot, siklus tugas bakal kontrol nggunakake nilai saka 0 kanggo 255. Elinga yen ing ledcWrite () fungsi kita nggunakake saluran sing ngasilake sinyal, lan ora GPIO.
Testing Example
Unggah kode menyang ESP32. Priksa manawa sampeyan duwe papan tengen lan port COM sing dipilih. Deleng sirkuit sampeyan. Sampeyan kudu duwe LED dimmer sing nambah lan nyuda padhange.
Project 4 ESP32 PIR Motion Sensor
Proyek iki nuduhake carane ndeteksi gerakan nganggo ESP32 nggunakake sensor gerak PIR. Buzzer bakal muni weker nalika gerakan dideteksi, lan mungkasi weker nalika ora ana gerakan sing dideteksi kanggo wektu prasetel (kayata 4 detik)
Carane HC-SR501 Motion Sensor Works
.Prinsip kerja sensor HC-SR501 adhedhasar owah-owahan radiasi inframerah ing obyek sing obah. Kanggo dideteksi dening sensor HC-SR501, obyek kasebut kudu memenuhi rong syarat:
- Objek kasebut ngetokake cara inframerah.
- Objek kasebut obah utawa goyang
Dadi:
Yen obyek ngetokake sinar infra merah nanging ora obah (umpamane, wong ngadeg tanpa obah), ora bisa dideteksi dening sensor.
Yen obyek obah nanging ora ngetokake sinar infra merah (contone, robot utawa kendaraan), ora dideteksi dening sensor.
Ngenalke Timer
Ing mantan ikiample kita uga bakal introduce timers. Kita pengin LED tetep urip sajrone sawetara detik sing wis ditemtokake sawise gerakan dideteksi. Nanging nggunakake fungsi tundha () sing mblokir kode lan ora ngijini sampeyan kanggo nindakake tindakan liya kanggo sawetara detik ditemtokake, kita kudu nggunakake wektu.Fungsi delay().
Sampeyan kudu menowo fungsi tundha () minangka digunakake digunakake. Fungsi iki cukup gampang digunakake. Iku nampa nomer int siji minangka argumen.
Nomer iki nuduhake wektu ing milidetik program kudu ngenteni nganti pindhah menyang baris sabanjure kode.Yen sampeyan tundha (1000) program sampeyan mandheg ing baris kasebut sajrone 1 detik.
tundha () minangka fungsi pamblokiran. Fungsi pamblokiran nyegah program saka nindakake tindakan liya nganti tugas tartamtu rampung. Yen sampeyan perlu sawetara tugas kedaden ing wektu sing padha, sampeyan ora bisa nggunakake wektu tundha ().
Kanggo umume proyek, sampeyan kudu ora nggunakake wektu tundha lan nggunakake timer.
Fungsi millis().
Nggunakake fungsi disebut millis () sampeyan bisa bali nomer milliseconds sing wis liwati wiwit program pisanan diwiwiti.Napa fungsi kasebut migunani? Amarga kanthi nggunakake sawetara matematika, sampeyan bisa kanthi gampang verifikasi sepira suwene wektu tanpa ngalangi kode sampeyan.
Parts dibutuhake
Kanggo ngetutake tutorial iki, sampeyan butuh bagean ing ngisor iki
- ESP32 DEVKIT V1 Papan
- Sensor gerak PIR (HC-SR501)
- Buzzer Aktif
- Kabel jumper
- Papan roti
SkematisCathetan: Kerja voltage saka HC-SR501 punika 5V. Gunakake pin Vin kanggo daya.
Kode
Sadurunge nerusake tutorial iki, sampeyan kudu nginstal add-on ESP32 ing Arduino IDE. Tindakake salah sawijining tutorial ing ngisor iki kanggo nginstal ESP32 ing Arduino IDE, yen sampeyan durung nindakake. (Yen sampeyan wis nindakake langkah iki, sampeyan bisa pindhah menyang langkah sabanjure.)
Nginstal ESP32 Add-on ing Arduino IDE
Bukak kode Project_4_ESP32_PIR_Motion_Sensor.ino ing arduino IDE.
Demonstrasi
Upload kode menyang Papan ESP32 Panjenengan. Priksa manawa sampeyan duwe papan sing bener lan port COM sing dipilih. Langkah-langkah referensi kode unggahan.
Bukak Serial Monitor kanthi baud rate 115200.Pindhah tangan sampeyan ing ngarep sensor PIR. Buzzer kudu nguripake, lan pesen wis dicithak ing Serial Monitor ngandika "Gerak dideteksi! Buzzer weker".
Sawise 4 detik, buzzer kudu dipateni.
Proyek 5 ESP32 Ngalih Web Server
Ing proyek iki sampeyan bakal nggawe dewekan web server karo ESP32 sing kontrol output (loro LED) nggunakake lingkungan program Arduino IDE. Ing web server responsif seluler lan bisa diakses karo piranti apa wae sing minangka browser ing jaringan lokal. Kita bakal nuduhake sampeyan carane nggawe web server lan carane kode dianggo langkah-langkah dening-.
Proyek Liwatview
Sadurunge langsung menyang project, iku penting kanggo njelaske nganggo bentuk garis apa kita web server bakal nindakake, supaya luwih gampang kanggo tindakake langkah mengko.
- Ing web server sampeyan bakal mbangun kontrol loro LED disambungake menyang ESP32 GPIO 26 lan GPIO 27;
- Sampeyan bisa ngakses ESP32 web server kanthi ngetik alamat IP ESP32 ing browser ing jaringan lokal;
- Kanthi ngeklik tombol ing sampeyan web server sampeyan bisa langsung ngganti negara saben LED.
Parts dibutuhake
Kanggo tutorial iki, sampeyan butuh bagean ing ngisor iki:
- ESP32 DEVKIT V1 Papan
- LED 2x5mm Kab
- Resistor 2x200 Ohm Kab
- Papan roti
- Kabel jumper
Skematis
Miwiti kanthi mbangun sirkuit. Sambungake rong LED menyang ESP32 kaya sing ditampilake ing diagram skema ing ngisor iki - siji LED disambungake menyang GPIO 26, lan liyane menyang GPIO 27.
Cathetan: Kita nggunakake papan ESP32 DEVKIT DOIT kanthi 36 pin. Sadurunge ngrakit sirkuit, priksa manawa sampeyan mriksa pinout kanggo papan sing sampeyan gunakake.Kode
Ing kene kita nyedhiyakake kode sing nggawe ESP32 web server. Bukak kode Project_5_ESP32_Switch _Web_Server.ino ing arduino IDE, nanging ora upload durung. Sampeyan kudu nggawe sawetara owah-owahan kanggo nggawe iku bisa kanggo sampeyan.
Kita bakal program ESP32 nggunakake Arduino IDE, supaya priksa manawa sampeyan duwe ESP32 add-on diinstal sadurunge nerusake: (Yen sampeyan wis nindakake langkah iki, sampeyan bisa pindhah menyang langkah sabanjure.)
Nginstal ESP32 Add-on ing Arduino IDE
Nyetel Kredensial Jaringan
Sampeyan kudu ngowahi baris ing ngisor iki nganggo kredensial jaringan: SSID lan sandhi. Kode kasebut uga dikomentari ing ngendi sampeyan kudu nggawe owah-owahan.Ngunggah Kode
Saiki, sampeyan bisa ngunggah kode lan lan web server bakal bisa langsung.
Tindakake langkah sabanjure kanggo ngunggah kode menyang ESP32:
- Plug Papan ESP32 ing komputer;
- Ing Arduino IDE pilih papan sampeyan ing Alat> Papan (ing kasus kita nggunakake papan ESP32 DEVKIT DOIT);
- Pilih port COM ing Tools > Port.
- Pencet tombol Upload ing IDE Arduino lan ngenteni sawetara detik nalika kode kasebut dikumpulake lan diunggah menyang papan sampeyan.
- Ngenteni pesen "Rampung upload".
Nemokake Alamat IP ESP
Sawise ngunggah kode kasebut, bukak Monitor Serial kanthi baud rate 115200.Pencet tombol ESP32 EN (reset). ESP32 nyambung menyang Wi-Fi, lan ngasilake alamat IP ESP ing Monitor Serial. Nyalin alamat IP kasebut, amarga sampeyan butuh kanggo ngakses ESP32 web server.
Ngakses ing Web Server
Kanggo ngakses web server, mbukak browser Panjenengan, paste alamat IP ESP32, lan sampeyan bakal weruh kaca ing ngisor iki.
Cathetan: Browser lan ESP32 sampeyan kudu disambungake menyang LAN sing padha.Yen sampeyan ndeleng Serial Monitor, sampeyan bisa ndeleng apa sing kedadeyan ing latar mburi. ESP nampa panjalukan HTTP saka klien anyar (ing kasus iki, browser sampeyan).
Sampeyan uga bisa ndeleng informasi liyane babagan panjalukan HTTP.
Demonstrasi
Saiki sampeyan bisa nyoba yen sampeyan web server bisa digunakake kanthi bener. Klik tombol kanggo ngontrol LED.Ing wektu sing padha, sampeyan bisa ndeleng ing Serial Monitor kanggo ndeleng apa sing kedadeyan ing latar mburi. Kanggo exampNanging, nalika sampeyan ngeklik tombol kanggo nguripake GPIO 26, ESP32 nampa panjalukan ing /26/on URL.
Nalika ESP32 nampa panjalukan kasebut, LED sing dipasang ing GPIO 26 ON lan nganyari statuse ing web kaca.
Tombol kanggo GPIO 27 dianggo kanthi cara sing padha. Priksa manawa bisa digunakake kanthi bener.
Cara Kerja Kode
Ing bagean iki bakal njupuk dipikir nyedhaki kode kanggo ndeleng cara kerjane.
Wangsulan: Bab ingkang pisanan sampeyan kudu nindakake iku kanggo kalebu perpustakaan WiFi.Kaya sing wis kasebut sadurunge, sampeyan kudu nglebokake ssid lan sandhi ing baris ing ngisor iki ing kuotasi kaping pindho.
Banjur, sampeyan nyetel web server menyang port 80.
Baris ing ngisor iki nggawe variabel kanggo nyimpen header panjalukan HTTP:
Sabanjure, sampeyan nggawe variabel tambahan kanggo nyimpen status output sampeyan saiki. Yen sampeyan pengin nambah output liyane lan nyimpen negara, sampeyan kudu nggawe liyane variabel.
Sampeyan uga kudu nemtokake GPIO kanggo saben output sampeyan. Ing kene kita nggunakake GPIO 26 lan GPIO 27. Sampeyan bisa nggunakake GPIO liyane sing cocog.
setelan()
Saiki, ayo pindhah menyang persiyapan (). Pisanan, kita miwiti komunikasi serial ing baud rate 115200 kanggo tujuan debugging.Sampeyan uga nemtokake GPIO minangka OUTPUT lan nyetel menyang LOW.
Garis ing ngisor iki miwiti sambungan Wi-Fi karo WiFi.begin(ssid, sandi), ngenteni sambungan sukses lan print alamat IP ESP ing Monitor Serial.
loop()
Ing daur ulang () kita program apa mengkono nalika klien anyar netepake sambungan karo web server.
ESP32 tansah ngrungokake klien sing mlebu kanthi baris ing ngisor iki:Nalika panjalukan ditampa saka klien, kita bakal nyimpen data sing mlebu. Daur ulang nalika ing ngisor iki bakal mlaku anggere klien tetep nyambung. Kita ora nyaranake ngganti bagean kode ing ngisor iki kajaba sampeyan ngerti persis apa sing sampeyan lakoni.
Bagean sabanjure pernyataan yen lan liya mriksa tombol sing dipencet ing sampeyan web kaca, lan ngontrol output sing cocog. Kaya sing wis dingerteni sadurunge, kita njaluk panjaluk sing beda URLs gumantung ing tombol dipencet.
Kanggo example, yen sampeyan wis menet tombol GPIO 26 ON, ESP32 nampa panjalukan ing /26/ON URL (kita bisa ndeleng manawa informasi kasebut ing header HTTP ing Monitor Serial). Dadi, kita bisa mriksa yen header ngemot ekspresi GET /26/on. Yen ngemot, kita ngganti variabel output26state kanggo ON, lan ESP32 nguripake LED.
Iki uga dianggo kanggo tombol liyane. Dadi, yen sampeyan pengin nambah output liyane, sampeyan kudu ngowahi bagean kode iki kanggo nyakup.
Tampilan HTML web kaca
Ing bab sabanjure sampeyan kudu nggawe, nggawe web kaca. ESP32 bakal ngirim respon menyang browser sampeyan karo sawetara kode HTML kanggo mbangun web kaca.
Ing web kaca dikirim menyang klien nggunakake klien.println (). Sampeyan kudu ngetik apa sing pengin dikirim menyang klien minangka argumen.
Wangsulan: Bab ingkang pisanan kita ngirim tansah baris ing ngisor iki, sing nuduhake yen kita ngirim HTML.Banjur, baris ing ngisor iki ndadekake web kaca responsif ing sembarang web browser.
Lan ing ngisor iki digunakake kanggo nyegah panjalukan ing favicon. – Sampeyan ora perlu padha sumelang ing bab baris iki.
Styling ing Web kaca
Sabanjure, kita duwe sawetara teks CSS kanggo gaya tombol lan web tampilan kaca.
Kita milih font Helvetica, nemtokake isi sing bakal ditampilake minangka blok lan didadekake siji ing tengah.Kita gaya tombol karo werna #4CAF50, tanpa wates, teks ing werna putih, lan karo padding iki: 16px 40px. Kita uga nyetel dekorasi teks dadi ora ana, nemtokake ukuran font, margin, lan kursor menyang pointer.
Kita uga nemtokake gaya tombol kapindho, kanthi kabeh sifat tombol sing wis ditetepake sadurunge, nanging kanthi warna sing beda. Iki bakal dadi gaya kanggo tombol mati.
Setelan ing Web Page First Heading
Ing baris sabanjure sampeyan bisa nyetel judhul pisanan sampeyan web kaca. Ing kene kita duwe "ESP32 Web Server", nanging sampeyan bisa ngganti teks iki menyang apa wae sing disenengi.Nampilake Tombol lan Negara sing cocog
Banjur, sampeyan nulis paragraf kanggo nampilake status GPIO 26 saiki. Nalika sampeyan bisa ndeleng, kita nggunakake variabel output26State, supaya negara nganyari enggal nalika owah-owahan variabel iki.Banjur, kita nampilake tombol urip utawa mati, gumantung saka kahanan GPIO saiki. Yen negara GPIO saiki mati, kita nuduhake tombol ON, yen ora, kita nampilake tombol OFF.
Kita nggunakake prosedur sing padha kanggo GPIO 27.
Nutup Sambungan
Akhire, nalika respon ends, kita mbusak variabel header, lan mungkasi sambungan karo klien karo client.stop ().
Bungkus
Ing tutorial iki kita wis nuduhake sampeyan carane mbangun a web server karo ESP32. Kita wis nuduhake sampeyan mantan prasajaample sing kontrol loro LED, nanging idea punika ngganti LED karo relay, utawa output liyane sing pengin kontrol.
Proyek 6 RGB LED Web Server
Ing proyek iki, kita bakal nuduhake sampeyan carane ngontrol LED RGB saka jarak jauh nganggo papan ESP32 nggunakake a web server karo picker werna.
Proyek Liwatview
Sadurunge miwiti, ayo ndeleng kepiye proyek iki:
- ESP32 web server nampilake picker werna.
- Nalika sampeyan milih werna, browser Panjenengan nggawe panjalukan ing URL sing ngemot paramèter R, G, lan B saka werna sing dipilih.
- ESP32 sampeyan nampa panjalukan lan mbagi nilai kanggo saben parameter warna.
- Banjur, ngirim sinyal PWM kanthi nilai sing cocog karo GPIO sing ngontrol LED RGB.
Kepiye cara kerja LED RGB?
Ing LED RGB katoda umum, kabeh telung LED nuduhake sambungan negatif (katode). Kabeh sing kalebu ing kit yaiku RGB katoda umum.Kepiye carane nggawe macem-macem warna?
Kanthi LED RGB, sampeyan bisa, mesthi, ngasilake cahya abang, ijo, lan biru, lan kanthi ngonfigurasi intensitas saben LED, sampeyan uga bisa ngasilake warna liyane.
Kanggo exampDadi, kanggo ngasilake cahya biru murni, sampeyan kudu nyetel LED biru kanthi intensitas paling dhuwur lan LED ijo lan abang kanthi intensitas paling murah. Kanggo cahya putih, sampeyan bakal nyetel kabeh telung LED kanthi intensitas paling dhuwur.
Nyampur werna
Kanggo ngasilake warna liyane, sampeyan bisa nggabungake telung warna kanthi intensitas sing beda. Kanggo nyetel intensitas saben LED sampeyan bisa nggunakake sinyal PWM.
Amarga LED banget cedhak saben liyane, mripat kita ndeleng asil saka kombinasi werna, tinimbang telung werna individu.
Kanggo duwe ide babagan cara nggabungake warna, deleng grafik ing ngisor iki.
Iki minangka grafik pencampuran warna sing paling gampang, nanging menehi ide babagan cara kerjane lan cara ngasilake warna sing beda.Parts dibutuhake
Kanggo proyek iki sampeyan butuh bagean ing ngisor iki:
- ESP32 DEVKIT V1 Papan
- RGB LED
- Resistor 3x220 ohm
- Kabel jumper
- Papan roti
SkematisKode
Kita bakal program ESP32 nggunakake Arduino IDE, supaya priksa manawa sampeyan duwe ESP32 add-on diinstal sadurunge nerusake: (Yen sampeyan wis nindakake langkah iki, sampeyan bisa pindhah menyang langkah sabanjure.)
- Nginstal ESP32 Add-on ing Arduino IDE
Sawise ngrakit sirkuit, Bukak kode
Proyek_6_RGB_LED_Web_Server.ino ing arduino IDE.
Sadurunge upload kode, aja lali masang kredensial jaringan supaya ESP bisa nyambung menyang jaringan lokal.Carane kode dianggo
Sketsa ESP32 nggunakake perpustakaan WiFi.h.Garis ing ngisor iki nemtokake variabel senar kanggo nahan paramèter R, G, lan B saka panyuwunan.
Papat variabel sabanjure digunakake kanggo decode request HTTP mengko.
Nggawe telung variabel kanggo GPIO sing bakal ngontrol paramèter strip R, G, lan B. Ing kasus iki, kita nggunakake GPIO 13, GPIO 12, lan GPIO 14.
GPIOs iki kudu output sinyal PWM, supaya kita kudu ngatur sifat PWM pisanan. Setel frekuensi sinyal PWM dadi 5000 Hz. Banjur, nggandhengake saluran PWM kanggo saben werna
Lan pungkasane, nyetel resolusi saluran PWM dadi 8-bit
Ing persiyapan (), nemtokake sifat PWM kanggo saluran PWM
Pasang saluran PWM menyang GPIO sing cocog
Bagean kode ing ngisor iki nampilake pemilih warna ing web kaca lan nggawe panjalukan adhedhasar warna sing sampeyan pilih.
Nalika milih werna, sampeyan nampa panjalukan karo format ing ngisor iki.
Dadi, kita kudu pamisah string iki kanggo entuk paramèter R, G, lan B. Parameter kasebut disimpen ing variabel redString, greenString, lan blueString lan bisa duwe nilai antarane 0 lan 255.Kanggo ngontrol strip nganggo ESP32, gunakake fungsi ledcWrite () kanggo ngasilake sinyal PWM kanthi nilai sing didekode saka HTTP. panyuwunan.
Cathetan: Sinau luwih lengkap babagan PWM nganggo ESP32: Project 3 ESP32 PWM (Output Analog)
Kanggo ngontrol Strip karo ESP8266, kita mung kudu nggunakake
analogWrite () fungsi kanggo generate sinyal PWM karo nilai decoded saka request HTPP.
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
Amarga kita entuk nilai ing variabel senar, kita kudu ngowahi dadi integer nggunakake metode toInt ().
Demonstrasi
Sawise masang kredensial jaringan, pilih Papan tengen lan port COM lan upload kode kanggo ESP32.Upload kode referensi langkah.
Sawise upload, mbukak Monitor Serial ing baud rate 115200 lan pencet ESP Aktifake / Reset tombol. Sampeyan kudu entuk alamat IP papan.Bukak browser lan lebokake alamat IP ESP. Saiki, gunakake pemilih warna kanggo milih warna kanggo LED RGB.
Banjur, sampeyan kudu mencet tombol "Ganti Warna" supaya werna bisa ditrapake.Kanggo mateni LED RGB, pilih werna ireng.
Werna sing paling kuat (ing sisih ndhuwur pemilih warna), yaiku sing bakal ngasilake asil sing luwih apik.
Proyek 7 ESP32 Relay Web Server
Nggunakake relay karo ESP32 minangka cara sing apik kanggo ngontrol peralatan rumah tangga AC saka adoh. Tutorial iki nerangake carane ngontrol modul relay karo ESP32.
Kita bakal nliti cara kerja modul relay, carane nyambungake relay menyang ESP32 lan mbangun web server kanggo ngontrol relay remot.
Ngenalke Relay
Relay minangka saklar sing dioperasikake kanthi listrik lan kaya saklar liyane, bisa diuripake utawa dipateni, ngeculake arus utawa ora. Bisa dikontrol kanthi vol rendahtagkaya 3.3V sing diwenehake dening ESP32 GPIO lan ngidini kita ngontrol volume dhuwur.tages kaya 12V, 24V utawa vol utamatage (230V ing Eropah lan 120V ing AS).Ing sisih kiwa, ana rong set telung soket kanggo nyambungake vol dhuwurtages, lan pin ing sisih tengen (low-voltage) nyambung menyang ESP32 GPIOs.
Daya Voltage SambunganModul relay sing ditampilake ing foto sadurunge duwe rong konektor, saben duwe telung soket: umum (COM), Normally Closed (NC), lan Normally Open (NO).
- COM: sambungake arus sing pengin dikontrol (utama voltaglan).
- NC (Biasane Ditutup): konfigurasi sing biasane ditutup digunakake yen sampeyan pengin relay ditutup kanthi standar. NC sing COM lencana disambungake, tegesé saiki mili kajaba sing ngirim sinyal saka ESP32 kanggo modul relay kanggo mbukak sirkuit lan mungkasi aliran saiki.
- NO (Biasane Bukak): konfigurasi biasane mbukak cara liyane: ora ana sambungan antarane NO lan COM pin, supaya sirkuit rusak kajaba sing ngirim sinyal saka ESP32 kanggo nutup sirkuit.
Pin KontrolLow-voltage sisih wis pesawat saka papat lencana lan pesawat saka telung lencana. Set pisanan kasusun saka VCC lan GND kanggo daya munggah modul, lan input 1 (IN1) lan input 2 (IN2) kanggo ngontrol relay ngisor lan ndhuwur, mungguh.
Yen modul relay sampeyan mung duwe siji saluran, sampeyan mung duwe pin siji IN. Yen sampeyan duwe papat saluran, sampeyan bakal duwe papat PIN PIN, lan sateruse.
Sinyal sing dikirim menyang pin IN, nemtokake relay aktif utawa ora. Relay dipicu nalika input dadi ngisor babagan 2V. Iki tegese sampeyan bakal duwe skenario ing ngisor iki:
- Konfigurasi Normally Closed (NC):
- Sinyal HIGH - saiki mili
- Sinyal LOW - saiki ora mili
- Konfigurasi Normally Open (NO):
- Sinyal HIGH - saiki ora mili
- sinyal LOW - saiki ing mili
Sampeyan kudu nggunakake konfigurasi biasane ditutup nalika saiki kudu mili paling saka kaping, lan sampeyan mung pengin mungkasi sok-sok.
Gunakake konfigurasi sing biasane mbukak yen sampeyan pengin arus kadang-kadang mili (kanggo example, nguripake alamp sok-sok).
Pilihan Power SupplySet pin kapindho kasusun saka pin GND, VCC, lan JD-VCC.
JD-VCC pin daya elektromagnet saka relay. Elinga yen modul duwe tutup jumper sing nyambungake pin VCC lan JD-VCC; sing ditampilake ing kene warnane kuning, nanging warna sampeyan bisa uga beda.
Kanthi tutup jumper, pin VCC lan JD-VCC disambungake. Tegese elektromagnet relay langsung didhukung saka pin daya ESP32, supaya modul relay lan sirkuit ESP32 ora diisolasi sacara fisik saka saben liyane.
Tanpa tutup jumper, sampeyan kudu nyedhiyani sumber daya sawijining kanggo daya munggah elektromagnet relay liwat pin JD-VCC. Konfigurasi kasebut kanthi fisik ngisolasi relay saka ESP32 kanthi optocoupler sing dibangun ing modul, sing nyegah karusakan ing ESP32 yen ana spike listrik.
SkematisPènget: Panganggone dhuwur voltagsumber daya bisa nyebabake ciloko serius.
Mulane, 5mm LED digunakake tinimbang sumber dhuwur voltage bolam ing eksperimen. Yen sampeyan ora kenal karo mains voltage takon wong sing arep nulungi sampeyan. Nalika program ESP utawa kabel sirkuit priksa manawa kabeh wis pedhot saka voltage.Nginstal Pustaka kanggo ESP32
Kanggo mbangun iki web server, kita nggunakake ESPAsyncWebPustaka server lan Pustaka AsyncTCP.
Nginstal ESPAsyncWebPustaka server
Tindakake langkah sabanjure kanggo nginstal ESPAsyncWebServer perpustakaan:
- Klik kene kanggo ngundhuh ESPAsyncWebPustaka server. Sampeyan kudu duwe
folder .zip ing folder Downloads - Unzip folder .zip lan sampeyan kudu njaluk ESPAsyncWebfolder server-master
- Ganti jeneng folder saka ESPAsyncWebServer-master kanggo ESPAsyncWebServer
- Pindhah ESPAsyncWebFolder server menyang folder perpustakaan instalasi Arduino IDE
Utawa, ing IDE Arduino, sampeyan bisa pindhah menyang Sketch> Include
Pustaka > Tambah perpustakaan .ZIP... banjur pilih perpustakaan sing lagi wae diundhuh.
Nginstal Pustaka AsyncTCP kanggo ESP32
Ing ESPAsyncWebServer perpustakaan mbutuhake AsyncTCP perpustakaan kanggo bisa. Tindakake
langkah sabanjure kanggo nginstal perpustakaan kasebut:
- Klik kene kanggo ngundhuh perpustakaan AsyncTCP. Sampeyan kudu duwe folder .zip ing folder Downloads
- Unzip folder .zip lan sampeyan kudu njaluk folder AsyncTCP-master
1. Ganti jeneng folder saka AsyncTCP-master kanggo AsyncTCP
3. Pindhah folder AsyncTCP menyang folder perpustakaan instalasi Arduino IDE
4. Akhire, mbukak maneh Arduino IDE
Utawa, ing IDE Arduino, sampeyan bisa pindhah menyang Sketch> Include
Pustaka > Tambah perpustakaan .ZIP... banjur pilih perpustakaan sing lagi wae diundhuh.
Kode
Kita bakal program ESP32 nggunakake Arduino IDE, supaya priksa manawa sampeyan duwe ESP32 add-on diinstal sadurunge nerusake: (Yen sampeyan wis nindakake langkah iki, sampeyan bisa pindhah menyang langkah sabanjure.)
Nginstal ESP32 Add-on ing Arduino IDE
Sawise nginstal perpustakaan sing dibutuhake, Bukak kode Project_7_ESP32_Relay_Web_Server.ino ing arduino IDE.
Sadurunge upload kode, aja lali masang kredensial jaringan supaya ESP bisa nyambung menyang jaringan lokal.Demonstrasi
Sawise nggawe owahan perlu, upload kode kanggo ESP32.Upload kode referensi langkah.
Bukak Serial Monitor kanthi baud rate 115200 banjur pencet tombol ESP32 EN kanggo entuk alamat IP. Banjur, bukak browser ing jaringan lokal lan ketik alamat IP ESP32 kanggo entuk akses menyang web server.
Bukak Serial Monitor kanthi baud rate 115200 banjur pencet tombol ESP32 EN kanggo entuk alamat IP. Banjur, bukak browser ing jaringan lokal lan ketik alamat IP ESP32 kanggo entuk akses menyang web server.Cathetan: Browser lan ESP32 sampeyan kudu disambungake menyang LAN sing padha.
Sampeyan kudu entuk kaya ing ngisor iki kanthi rong tombol minangka jumlah relay sing wis ditemtokake ing kode sampeyan.Saiki, sampeyan bisa nggunakake tombol kanggo ngontrol relay nggunakake smartphone.
Project_8_Output_State_Synchronization_ Web_Server
Proyek iki nuduhake carane ngontrol output ESP32 utawa ESP8266 nggunakake a web server lan tombol fisik bebarengan. Negara output dianyari ing web kaca apa diganti liwat tombol fisik utawa web server.
Proyek Liwatview
Ayo goleki kanthi cepet babagan cara proyek kasebut.ESP32 utawa ESP8266 sarwa dumadi a web server sing ngijini sampeyan kanggo ngontrol negara output;
- Status output saiki ditampilake ing web server;
- ESP uga disambungake menyang pushbutton fisik sing kontrol output padha;
- Yen sampeyan ngganti negara output nggunakake puhsbutton fisik, negara saiki uga dianyari ing web server.
Ing ringkesan, proyek iki ngidini sampeyan ngontrol output sing padha nggunakake a web server lan tombol push bebarengan. Kapan negara output diganti, ing web server dianyari.
Parts dibutuhake
Mangkene dhaptar bagean sing sampeyan butuhake kanggo mbangun sirkuit:
- ESP32 DEVKIT V1 Papan
- LED 5 mm Kab
- Resistor 220 Ohm Kab
- Tombol Push
- Resistor 10k Ohm Kab
- Papan roti
- Kabel jumper
SkematisNginstal Pustaka kanggo ESP32
Kanggo mbangun iki web server, kita nggunakake ESPAsyncWebPustaka server lan Pustaka AsyncTCP. (Yen sampeyan wis nindakake langkah iki, sampeyan bisa pindhah menyang langkah sabanjure.)
Nginstal ESPAsyncWebPustaka server
Tindakake langkah sabanjure kanggo nginstal ESPAsyncWebPustaka server:
- Klik kene kanggo ngundhuh ESPAsyncWebPustaka server. Sampeyan kudu duwe
folder .zip ing folder Downloads - Unzip folder .zip lan sampeyan kudu njaluk ESPAsyncWebfolder server-master
- Ganti jeneng folder saka ESPAsyncWebServer-master kanggo ESPAsyncWebServer
- Pindhah ESPAsyncWebFolder server menyang folder perpustakaan instalasi Arduino IDE
Utawa, ing IDE Arduino, sampeyan bisa pindhah menyang Sketch> Include
Pustaka > Tambah perpustakaan .ZIP... banjur pilih perpustakaan sing lagi wae diundhuh.
Nginstal Pustaka AsyncTCP kanggo ESP32
ESPAsyncWebPustaka server mbutuhake perpustakaan AsyncTCP bisa digunakake. Tindakake langkah-langkah sabanjure kanggo nginstal perpustakaan kasebut:
- Klik kene kanggo ngundhuh perpustakaan AsyncTCP. Sampeyan kudu duwe folder .zip ing folder Downloads
- Unzip folder .zip lan sampeyan kudu njaluk folder AsyncTCP-master
- Ganti jeneng folder sampeyan saka AsyncTCP-master dadi AsyncTCP
- Pindhah folder AsyncTCP menyang folder perpustakaan instalasi Arduino IDE
- Pungkasan, mbukak maneh Arduino IDE
Utawa, ing IDE Arduino, sampeyan bisa pindhah menyang Sketch> Include
Pustaka > Tambah perpustakaan .ZIP... banjur pilih perpustakaan sing lagi wae diundhuh.
Kode
Kita bakal program ESP32 nggunakake Arduino IDE, supaya priksa manawa sampeyan duwe ESP32 add-on diinstal sadurunge nerusake: (Yen sampeyan wis nindakake langkah iki, sampeyan bisa pindhah menyang langkah sabanjure.)
Nginstal ESP32 Add-on ing Arduino IDE
Sawise nginstal perpustakaan sing dibutuhake, Bukak kode kasebut
Project_8_Output_State_Synchronization_Web_Server.ino ing arduino IDE.
Sadurunge upload kode, aja lali masang kredensial jaringan supaya ESP bisa nyambung menyang jaringan lokal.
Cara Kerja Kode
Negara Tombol lan Negara Output
Variabel ledState nahan status output LED. Kanggo standar, nalika ing web server wiwit, iku LOW.
ButtonState lan lastButtonState digunakake kanggo ndeteksi apa tombol ditekan utawa ora.Tombol (web server)
Kita ora kalebu HTML kanggo nggawe tombol ing variabel index_html.
Iku amarga kita pengin bisa ngganti gumantung ing negara LED saiki sing uga bisa diganti karo pushbutton.
Dadi, kita wis nggawe placeholder kanggo tombol% BUTTONPLACEHOLDER% sing bakal diganti karo teks HTML kanggo nggawe tombol mengko ing kode (iki wis rampung ing prosesor () fungsi).prosesor ()
Fungsi prosesor () ngganti sembarang placeholder ing teks HTML karo nilai nyata. Pisanan, mriksa apa teks HTML ana
placeholder% BUTTONPLACEHOLDER%.Banjur, nelpon fungsi theoutputState () sing ngasilake status output saiki. Kita nyimpen ing variabel outputStateValue.
Sawise iku, gunakake nilai kasebut kanggo nggawe teks HTML kanggo nampilake tombol kanthi negara sing bener:
HTTP GET Request kanggo Ngganti Output State (JavaScript)
Nalika sampeyan menet tombol, fungsi toggleCheckbox() diarani. Fungsi iki bakal nggawe panjalukan ing beda URLs kanggo nguripake utawa mateni LED.Kanggo nguripake LED, iku nggawe panjalukan ing /update?state=1 URL:
Yen ora, iku nggawe panjalukan ing /update?state=0 URL.
HTTP GET Request kanggo Update State (JavaScript)
Supaya negara output dianyari ing web server, kita nelpon fungsi ing ngisor iki sing nggawe panjalukan anyar ing / negara URL saben detik.Nangani Panjaluk
Banjur, kita kudu nangani apa sing kedadeyan nalika ESP32 utawa ESP8266 nampa panjaluk kasebut. URLs.
Nalika panjalukan ditampa ing ROOT /URL, kita ngirim kaca HTML uga prosesor.Garis ing ngisor iki mriksa apa sampeyan nampa panjalukan ing /update?state=1 utawa /update?state=0 URL lan ngganti ledState miturut.
Nalika panjalukan ditampa ing / negara URL, kita ngirim status output saiki:
loop()
Ing daur ulang (), kita debounce pushbutton lan nguripake utawa mateni LED gumantung ing Nilai saka ledState. variabel.Demonstrasi
Unggah kode menyang papan ESP32. Langkah-langkah referensi kode unggahan.
Banjur, mbukak Serial Monitor ing baud rate 115200. Pencet on-board EN/RST tombol kanggo njaluk alamat IP.Bukak browser ing jaringan lokal, lan ketik alamat IP ESP. Sampeyan kudu duwe akses menyang web server minangka kapacak ing ngisor iki.
Cathetan: Browser lan ESP32 sampeyan kudu disambungake menyang LAN sing padha.Sampeyan bisa nguripake tombol ing web server kanggo nguripake LED.
Sampeyan uga bisa ngontrol LED padha karo pushbutton fisik. Negara kasebut bakal tansah dianyari kanthi otomatis ing web server.
Proyek 9 ESP32 DHT11 Web Server
Ing proyek iki, sampeyan bakal sinau carane nggawe ESP32 asinkron web server karo DHT11 sing nuduhake suhu lan asor nggunakake Arduino IDE.
Prasyarat
Ing web server kita bakal mbangun nganyari maca kanthi otomatis tanpa perlu refresh ing web kaca.
Kanthi proyek iki, sampeyan bakal sinau:
- Cara maca suhu lan asor saka sensor DHT;
- Mbangun asynchronous web server nggunakake ESPAsyncWebPustaka server;
- Nganyari maca sensor kanthi otomatis tanpa perlu refresh web kaca.
Asynchronous Web Server
Kanggo mbangun web server kita bakal nggunakake ESPAsyncWebPustaka server sing nyedhiyakake cara sing gampang kanggo mbangun asynchronous web server. Nggawe asynchronous web server wis sawetara advantagkaya sing kasebut ing perpustakaan kaca GitHub, kayata:
- "Nangani luwih saka siji sambungan bebarengan";
- "Nalika sampeyan ngirim respon, sampeyan langsung siyap kanggo nangani sambungan liyane nalika server njupuk care saka ngirim respon ing latar mburi";
- "Mesin pangolahan cithakan prasaja kanggo nangani cithakan";
Parts dibutuhake
Kanggo ngrampungake tutorial iki, sampeyan butuh bagean ing ngisor iki:
- Papan pangembangan ESP32
- Modul DHT11
- Papan roti
- Kabel jumper
SkematisNginstal Pustaka
Sampeyan kudu nginstal sawetara perpustakaan kanggo proyek iki:
- Ing DHT lan ing Sensor Manunggal Adafruit Pustaka driver kanggo maca saka sensor DHT.
- ESPAsyncWebServer lan Async TCP perpustakaan kanggo mbangun asynchronous web server.
Tindakake pandhuan ing ngisor iki kanggo nginstal perpustakaan kasebut:
Nginstal Pustaka Sensor DHT
Kanggo maca saka sensor DHT nggunakake Arduino IDE, sampeyan kudu nginstal perpustakaan sensor DHT. Tindakake langkah sabanjure kanggo nginstal perpustakaan.
- Klik kene kanggo ngundhuh perpustakaan Sensor DHT. Sampeyan kudu duwe folder .zip ing folder Downloads
- Unzip folder .zip lan sampeyan kudu njaluk DHT-sensor-library-master folder
- Ganti jeneng folder saka DHT-sensor-library-master dadi DHT_sensor
- Pindhah folder DHT_sensor menyang folder perpustakaan instalasi Arduino IDE
- Pungkasan, mbukak maneh Arduino IDE
Nginstal Driver Sensor Unified Adafruit
Sampeyan uga kudu nginstal Pustaka Driver Sensor Unified Adafruit kanggo nggarap sensor DHT. Tindakake langkah sabanjure kanggo nginstal perpustakaan.
- Klik kene kanggo ndownload perpustakaan Adafruit Unified Sensor. Sampeyan kudu duwe folder .zip ing folder Downloads
- Unzip folder .zip lan sampeyan kudu njaluk Adafruit_sensor-master folder
- Ganti jeneng folder saka Adafruit_sensor-master dadi Adafruit_sensor
- Pindhah folder Adafruit_sensor menyang folder perpustakaan instalasi Arduino IDE
- Pungkasan, mbukak maneh Arduino IDE
Nginstal ESPAsyncWebPustaka server
Tindakake langkah sabanjure kanggo nginstal ESPAsyncWebServer perpustakaan:
- Klik kene kanggo ngundhuh ESPAsyncWebPustaka server. Sampeyan kudu duwe
folder .zip ing folder Downloads - Unzip folder .zip lan sampeyan kudu
entuk ESPAsyncWebfolder server-master - Ganti jeneng folder saka ESPAsyncWebServer-master kanggo ESPAsyncWebServer
- Pindhah ESPAsyncWebFolder server menyang folder perpustakaan instalasi Arduino IDE
Nginstal Async TCP Library kanggo ESP32
Ing ESPAsyncWebServer perpustakaan mbutuhake AsyncTCP perpustakaan kanggo bisa. Tindakake langkah-langkah sabanjure kanggo nginstal perpustakaan kasebut:
- Klik kene kanggo ngundhuh perpustakaan AsyncTCP. Sampeyan kudu duwe folder .zip ing folder Downloads
- Unzip folder .zip lan sampeyan kudu njaluk folder AsyncTCP-master
- Ganti jeneng folder sampeyan saka AsyncTCP-master dadi AsyncTCP
- Pindhah folder AsyncTCP menyang folder perpustakaan instalasi Arduino IDE
- Pungkasan, mbukak maneh Arduino IDE
Kode
Kita bakal program ESP32 nggunakake Arduino IDE, supaya priksa manawa sampeyan duwe ESP32 add-on diinstal sadurunge nerusake: (Yen sampeyan wis nindakake langkah iki, sampeyan bisa pindhah menyang langkah sabanjure.)
Nginstal ESP32 Add-on ing Arduino IDE
Sawise nginstal perpustakaan sing dibutuhake, Bukak kode kasebut
Project_9_ESP32_DHT11_Web_Server.ino ing arduino IDE.
Sadurunge upload kode, aja lali masang kredensial jaringan supaya ESP bisa nyambung menyang jaringan lokal.Cara Kerja Kode
Ing paragraf ing ngisor iki kita bakal nerangake cara kerja kode kasebut. Tansah maca yen sampeyan pengin sinau luwih lengkap utawa mlumpat menyang bagean Demonstrasi kanggo ndeleng asil pungkasan.
Ngimpor perpustakaan
Pisanan, ngimpor perpustakaan sing dibutuhake. WiFi, ESPAsyncWebServer lan ESPAsyncTCP dibutuhake kanggo mbangun web server. Adafruit_Sensor lan perpustakaan DHT dibutuhake kanggo maca saka sensor DHT11 utawa DHT22.Definisi variabel
Netepake GPIO sing disambungake pin data DHT. Ing kasus iki, disambungake menyang GPIO 4.Banjur, pilih jinis sensor DHT sing sampeyan gunakake. Ing mantan kitaample, kita nggunakake DHT22. Yen sampeyan nggunakake jinis liyane, sampeyan mung kudu mbusak komentar sensor lan menehi komentar kabeh liyane.
Instantiate obyek DHT kanthi jinis lan pin sing wis ditetepake sadurunge.Nggawe AsyncWebObjek server ing port 80.
Maca Fungsi Suhu lan Kelembapan
Kita wis digawe loro fungsi: siji kanggo maca suhu Kita wis digawe loro fungsi: siji kanggo maca suhu (readDHTTemperature ()) lan liyane kanggo maca asor (readDHTHumidity ()).Entuk maca sensor iku gampang kaya nggunakake Entuk maca sensor kaya nggunakake metode readTemperature () lan readHumidity () ing obyek dht.
Kita uga duwe kondisi sing ngasilake rong garis (-) yen sensor gagal maca.
Wacan kasebut bali minangka jinis string. Kanggo ngowahi float menyang string, gunakake fungsi String ().
Kanthi gawan, kita maca suhu ing derajat Celsius. Kanggo njaluk suhu ing derajat Fahrenheit, komentar suhu ing Celsius lan mbusak komentar suhu ing Fahrenheit, supaya sampeyan duwe ing ngisor iki:
Unggah Kode
Saiki, upload kode menyang ESP32. Priksa manawa sampeyan duwe papan sing bener lan port COM sing dipilih. Langkah-langkah referensi kode unggahan.
Sawise upload, mbukak Serial Monitor ing baud rate 115200. Pencet tombol reset ESP32. Alamat IP ESP32 kudu dicithak ing serial ngawasi.Demonstrasi
Bukak browser lan ketik alamat IP ESP32. Panjenengan web server kudu nampilake maca sensor paling anyar.
Cathetan: Browser lan ESP32 sampeyan kudu disambungake menyang LAN sing padha.
Elinga yen maca suhu lan kelembapan dianyari kanthi otomatis tanpa perlu refresh web kaca.
Project_10_ESP32_OLED_Display
Proyek iki nuduhake carane nggunakake tampilan SSD0.96 OLED 1306 inci karo ESP32 nggunakake Arduino IDE.
Ngenalke Layar OLED 0.96 inci
Ing tampilan OLED sing bakal digunakake ing tutorial iki model SSD1306: monocolor, 0.96 tampilan inch karo 128 × 64 piksel minangka ditampilake ing tokoh ing ngisor iki.Tampilan OLED ora mbutuhake lampu latar, sing nyebabake kontras sing apik banget ing lingkungan sing peteng. Kajaba iku, piksel mung nggunakake energi nalika urip, saengga tampilan OLED nggunakake daya sing luwih sithik yen dibandhingake karo tampilan liyane.
Amarga tampilan OLED nggunakake protokol komunikasi I2C, kabel gampang banget. Sampeyan bisa nggunakake tabel ing ngisor iki minangka referensi.
Pin OLED | ESP32 |
Vin | 3.3V |
GND | GND |
SCL | GPIO 22 |
SDA | GPIO 21 |
SkematisNginstal Perpustakaan OLED SSD1306 - ESP32
Ana sawetara perpustakaan sing kasedhiya kanggo ngontrol tampilan OLED nganggo ESP32.
Ing tutorial iki, kita bakal nggunakake rong perpustakaan Adafruit: Pustaka Adafruit_SSD1306 lan Pustaka Adafruit_GFX.
Tindakake langkah sabanjure kanggo nginstal perpustakaan kasebut.
- Bukak Arduino IDE lan pindhah menyang Sketch> Include Library> Manage Libraries. Manajer Pustaka kudu mbukak.
- Ketik "SSD1306" ing kothak telusuran lan instal perpustakaan SSD1306 saka Adafruit.
- Sawise nginstal perpustakaan SSD1306 saka Adafruit, ketik "GFX" ing kothak panelusuran lan nginstal perpustakaan.
- Sawise nginstal perpustakaan, miwiti maneh Arduino IDE.
Kode
Sawise nginstal perpustakaan sing dibutuhake, Bukak Project_10_ESP32_OLED_Display.ino ing arduino IDE. kode
Kita bakal program ESP32 nggunakake Arduino IDE, supaya priksa manawa sampeyan duwe ESP32 add-on diinstal sadurunge nerusake: (Yen sampeyan wis rampung langkah iki, sampeyan bisa pindhah menyang langkah sabanjure.)
Nginstal ESP32 Add-on ing Arduino IDECara Kerja Kode
Ngimpor perpustakaan
Pisanan, sampeyan kudu ngimpor perpustakaan sing dibutuhake. Pustaka Wire kanggo nggunakake I2C lan perpustakaan Adafruit kanggo nulis menyang tampilan: Adafruit_GFX lan Adafruit_SSD1306.Miwiti tampilan OLED
Banjur, sampeyan nemtokake jembar lan dhuwur OLED sampeyan. Ing mantan ikiampNanging, kita nggunakake tampilan OLED 128×64. Yen sampeyan nggunakake ukuran liyane, sampeyan bisa ngganti ing SCREEN_WIDTH, lan SCREEN_HEIGHT variabel.Banjur, initialize obyek tampilan karo jembaré lan dhuwur ditetepake sadurungé karo protokol komunikasi I2C (& Wire).
Parameter (-1) tegese tampilan OLED sampeyan ora duwe PIN RESET. Yen tampilan OLED sampeyan duwe PIN RESET, kudu disambungake menyang GPIO. Ing kasus kasebut, sampeyan kudu ngliwati nomer GPIO minangka parameter.
Ing persiyapan (), initialize Monitor Serial ing baud raute 115200 kanggo tujuan debugging.Miwiti tampilan OLED kanthi metode begin() kaya ing ngisor iki:
Cuplikan iki uga nyithak pesen ing Monitor Serial, yen kita ora bisa nyambung menyang tampilan.
Yen sampeyan nggunakake tampilan OLED sing beda, sampeyan bisa uga kudu ngganti alamat OLED. Ing kasus kita, alamate 0x3C.
Sawise miwiti tampilan, tambahake wektu tundha rong detik, supaya OLED duwe wektu cukup kanggo miwiti sadurunge nulis teks:
Mbusak tampilan, nyetel ukuran font, werna lan nulis teks
Sawise miwiti tampilan, mbusak buffer tampilan kanthi metode clearDisplay ():
Sadurunge nulis teks, sampeyan kudu nyetel ukuran teks, werna lan ing ngendi teks bakal ditampilake ing OLED.
Setel ukuran font nggunakake metode setTextSize():Setel warna font kanthi metode setTextColor() :
PUTIH nyetel font putih lan latar mburi ireng.
Nemtokake posisi ing ngendi teks diwiwiti kanthi nggunakake metode setCursor(x,y). Ing kasus iki, kita nyetel teks kanggo miwiti ing (0,0) koordinat - ing sudhut kiwa ndhuwur.Akhire, sampeyan bisa ngirim teks kanggo tampilan nggunakake println () cara, minangka nderek
Banjur, sampeyan kudu nelpon tampilan () cara kanggo bener nampilake teks ing layar.
Pustaka Adafruit OLED nyedhiyakake cara sing migunani kanggo nggulung teks kanthi gampang.
- startscrollright (0x00, 0x0F): gulung teks saka kiwa menyang tengen
- startscrollleft (0x00, 0x0F): gulung teks saka tengen ngiwa
- startscrolldiagright(0x00, 0x07): gulung teks saka pojok kiwa ngisor menyang pojok tengen ndhuwur startscrolldiagleft(0x00, 0x07): gulung teks saka pojok tengen ngisor menyang pojok kiwa ndhuwur
Unggah Kode
Saiki, upload kode menyang ESP32. Langkah-langkah referensi kode unggahan.
Sawise ngunggah kode kasebut, OLED bakal nampilake teks gulung.
Dokumen / Sumber Daya
![]() |
LAFVIN ESP32 Basic Starter Kit [pdf] Instruksi Manual ESP32 Basic Starter Kit, ESP32, Basic Starter Kit, Starter Kit |