ESP32 Dasar Starter
Kit
Daptar bungkusan
ESP32 Bubuka
Anyar pikeun ESP32? Mimitian di dieu! ESP32 mangrupikeun séri mikrokontroler System on a Chip (SoC) béaya rendah sareng daya rendah anu dikembangkeun ku Espressif anu kalebet kamampuan nirkabel Wi-Fi sareng Bluetooth sareng prosesor dual-core. Upami anjeun wawuh sareng ESP8266, ESP32 mangrupikeun panerusna, sarat ku seueur fitur énggal.Spésifikasi ESP32
Upami anjeun hoyong langkung téknis sareng spésifik, anjeun tiasa ningali spésifikasi rinci ieu ESP32 (sumber: http://esp32.net/)—pikeun leuwih detil, pariksa datasheet):
- konektipitas nirkabel WiFi: 150.0 Mbps laju data kalawan HT40
- Bluetooth: BLE (Bluetooth Low Energy) jeung Bluetooth Classic
- Prosesor: Tensilica Xtensa Dual-Core 32-bit LX6 microprocessor, ngajalankeun dina 160 atanapi 240 MHz
- Mémori:
- ROM: 448 KB (pikeun booting sareng fungsi inti)
- SRAM: 520 KB (pikeun data jeung parentah)
- RTC fas SRAM: 8 KB (pikeun neundeun data sareng CPU utama salami RTC Boot tina mode sare jero)
- RTC slow SRAM: 8KB (pikeun co-processor ngakses salila mode jero-sare) eFuse: 1 Kbit (nu 256 bit dipaké pikeun sistem (alamat MAC jeung konfigurasi chip) jeung 768 bit sésana ditangtayungan pikeun aplikasi customer, kaasup. Énkripsi Flash sareng Chip-ID)
Flash Embedded: flash disambungkeun internal via IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 na SD_DATA_1 on ESP32-D2WD na ESP32-PICO-D4.
- 0 MiB (ESP32-D0WDQ6, ESP32-D0WD, sareng chip ESP32-S0WD)
- 2 MiB (chip ESP32-D2WD)
- 4 MiB (modul ESP32-PICO-D4 SiP)
Daya Lemah: mastikeun yén anjeun masih tiasa nganggo konvérsi ADC, contonaample, salila saré jero.
Input/Kaluaran periferal:
- panganteur periferal kalawan DMA nu ngawengku touch kapasitif
- ADCs (Analog-to-Digital Converter)
- DACs (Digital-to-Analog Converter)
- I²C (Inter-Integrated Circuit)
- UART (Universal Asynchronous Receiver/Transmitter)
- SPI (Serial Peripheral Interface)
- I²S (Sora Interchip Terpadu)
- RMII (Antarmuka Media-Independen Ngurangan)
- PWM (Pulse-Width Modulation)
Kaamanan: akselerator hardware pikeun AES jeung SSL / TLS
ESP32 Development Boards
ESP32 nujul kana chip ESP32 bulistir. Nanging, istilah "ESP32" ogé dianggo pikeun ngarujuk kana papan pangembangan ESP32. Ngagunakeun ESP32 chip bulistir teu gampang atawa praktis, utamana lamun diajar, nguji, sarta prototyping. Seringna, anjeun badé nganggo papan pangembangan ESP32.
Urang bakal ngagunakeun dewan ESP32 DEVKIT V1 salaku reference.The gambar di handap nembongkeun dewan ESP32 DEVKIT V1, versi kalawan 30 pin GPIO.Spésifikasi - ESP32 DEVKIT V1
Tabel di handap ieu nunjukkeun ringkesan fitur sareng spésifikasi dewan ESP32 DEVKIT V1 DOIT:
Jumlah cores | 2 (dua inti) |
Wifi | 2.4 GHz nepi ka 150 Mbits / s |
Bluetooth | BLE (Bluetooth Low Energy) jeung warisan Bluetooth |
Arsitéktur | 32 bitu |
Frékuénsi jam | Nepi ka 240 MHz |
Ram | 512 KB |
Pins | 30 (gumantung kana modél) |
périferal | Capacitive touch, ADC (konverter analog ka digital), DAC (konverter digital ka analog), 12C (Cirkuit Inter-Integrasi), UART (panampi / pamancar Asynchronous universal), CAN 2.0 (Controller Area Netwokr), SPI (Serial Periferal Interface) , 12S (Integrated Inter-IC Sora), RMII (Reduced Media-Independent Interface), PWM (modulasi lebar pulsa), sareng seueur deui. |
Diwangun-di tombol | RESET sareng tombol BOOT |
Diwangun-di LEDs | diwangun-di LED biru disambungkeun ka GPIO2; diwangun-di LED beureum nu nembongkeun dewan keur Powered |
USB kana UART sasak |
CP2102 |
Ieu hadir kalawan panganteur microUSB nu bisa Anjeun pake pikeun nyambungkeun dewan ka komputer Anjeun pikeun unggah kode atawa nerapkeun kakuatan.
Nganggo chip CP2102 (USB ka UART) pikeun komunikasi sareng komputer anjeun liwat port COM nganggo antarmuka serial. chip populér séjén nyaéta CH340. Pariksa naon USB ka UART chip converter dina dewan anjeun sabab anjeun bakal kudu install drivers diperlukeun ku kituna komputer anjeun bisa komunikasi jeung dewan (inpormasi langkung lengkep ihwal ieu engké dina pituduh ieu).
Papan ieu ogé hadir sareng tombol RESET (bisa dilabélan EN) pikeun ngabalikan deui dewan sareng tombol BOOT pikeun nempatkeun dewan dina modeu kedip-kedip (sadia pikeun nampi kode). Catet yén sababaraha papan henteu gaduh tombol BOOT.
Ogé hadir kalawan diwangun-di LED biru anu internal disambungkeun ka GPIO 2. LED Ieu mangpaat pikeun debugging méré sababaraha nurun kaluaran fisik visual. Aya ogé LED beureum anu hurung nalika anjeun nyayogikeun kakuatan ka papan.ESP32 Pinout
Periferal ESP32 kalebet:
- 18 saluran Analog-to-Digital Converter (ADC).
- 3 panganteur SPI
- 3 panganteur UART
- 2 panganteur I2C
- 16 saluran kaluaran PWM
- 2 Parabot Parobah Digital-ka-Analog (DAC)
- 2 panganteur I2S
- 10 GPIOs sensing kapasitif
Fitur ADC (konverter analog ka digital) sareng DAC (konverter digital ka analog) ditugaskeun ka pin statik khusus. Najan kitu, anjeun bisa mutuskeun nu pin nu UART, I2C, SPI, PWM, jsb - Anjeun ngan perlu napelkeun aranjeunna dina kode. Ieu mungkin kusabab fitur multiplexing chip ESP32.
Sanajan anjeun bisa nangtukeun sipat pin on software nu, aya pin ditugaskeun sacara standar ditémbongkeun saperti dina gambar di handap ieu.Salaku tambahan, aya pin kalayan fitur khusus anu ngajantenkeun aranjeunna cocog atanapi henteu pikeun proyék khusus. Tabel di handap ieu nunjukkeun pin naon anu pangsaéna pikeun dianggo salaku input, kaluaran sareng anu mana anu anjeun kedah ati-ati.
Pin nu disorot dina héjo téh OK ngagunakeun. Anu disorot dina warna konéng henteu kunanaon dianggo, tapi anjeun kedah perhatosan sabab aranjeunna tiasa gaduh kabiasaan anu teu kaduga utamina nalika boot. Pin anu disorot beureum henteu disarankeun pikeun dianggo salaku input atanapi kaluaran.
GP IO | Input | Kaluaran | Catetan |
0 | ditarik ka luhur | OK | kaluaran sinyal PWM nalika boot, kudu LOW pikeun asup kana mode kedip-kedip |
1 | TX pin | OK | kaluaran debug dina boot |
2 | OK | OK | disambungkeun ka on-board LED, kudu ditinggalkeun ngambang atawa LOW pikeun asup ka modeu kedip-kedip |
3 | OK | Pin RX | TINGGI dina boot |
4 | OK | OK | |
5 | OK | OK | outputs sinyal PWM di boot, strapping pin |
12 | OK | OK | boot gagal lamun ditarik tinggi, strapping pin |
13 | OK | OK | |
14 | OK | OK | kaluaran sinyal PWM nalika boot |
15 | OK | OK | outputs sinyal PWM di 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 | input wungkul | |
35 | OK | input wungkul | |
36 | OK | input wungkul | |
39 | OK | input wungkul |
Nuluykeun maca pikeun analisis leuwih jéntré tur di-jero ESP32 GPIOs sarta fungsi na.
Input ukur pin
GPIOs 34 ka 39 mangrupakeun GPIs - input ukur pin. Pin ieu henteu gaduh resistor pull-up atanapi pull-down internal. Éta henteu tiasa dianggo salaku kaluaran, janten anggo pin ieu ngan ukur salaku input:
- GPIO 34
- GPIO 35
- GPIO 36
- GPIO 39
SPI flash terpadu dina ESP-WROOM-32
GPIO 6 ka GPIO 11 kakeunaan dina sababaraha papan pangembangan ESP32. Sanajan kitu, pin ieu disambungkeun ka flash SPI terpadu dina chip ESP-WROOM-32 sarta henteu dianjurkeun pikeun kagunaan séjén. Janten, ulah nganggo pin ieu dina proyék anjeun:
- GPIO 6 (SCK/CLK)
- GPIO 7 (SDO/SD0)
- GPIO 8 (SDI/SD1)
- GPIO 9 (SHD/SD2)
- GPIO 10 (SWP/SD3)
- GPIO 11 (CSC/CMD)
Capacitive touch GPIOs
ESP32 gaduh 10 sensor touch kapasitif internal. Ieu tiasa ngaraos variasi naon waé anu gaduh muatan listrik, sapertos kulit manusa. Janten aranjeunna tiasa ngadeteksi variasi anu ngainduksi nalika ngarampa GPIO nganggo ramo. Pin ieu tiasa gampang diintegrasikeun kana bantalan kapasitif sareng ngagentos tombol mékanis. Pin touch kapasitif ogé tiasa dianggo pikeun ngahudangkeun ESP32 tina bobo jero. Sensor touch internal ieu disambungkeun ka GPIO ieu:
- 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)
Analog kana Parobih Digital (ADC)
ESP32 boga 18 x 12 bit saluran input ADC (bari ESP8266 ngan boga 1x 10 bit ADC). Ieu mangrupikeun GPIO anu tiasa dianggo salaku ADC sareng 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)
Catetan: Pin ADC2 teu tiasa dianggo nalika Wi-Fi dianggo. Janten, upami anjeun nganggo Wi-Fi sareng anjeun sesah kéngingkeun nilai tina ADC2 GPIO, anjeun tiasa mertimbangkeun nganggo ADC1 GPIO. Éta kudu ngajawab masalah anjeun.
Saluran input ADC gaduh résolusi 12-bit. Ieu ngandung harti yén anjeun tiasa nampi bacaan analog tina 0 dugi ka 4095, dimana 0 pakait sareng 0V sareng 4095 dugi ka 3.3V. Anjeun ogé tiasa nyetél résolusi saluran anjeun dina kode sareng rentang ADC.
Pin ESP32 ADC henteu gaduh kabiasaan linier. Anjeun meureun moal bisa ngabedakeun antara 0 jeung 0.1V, atawa antara 3.2 jeung 3.3V. Anjeun kedah émut yén nalika nganggo pin ADC. Anjeun bakal nampi kabiasaan anu sami sareng anu dipidangkeun dina gambar di handap ieu.Parabot Parobah Digital ka Analog (DAC)
Aya 2 x 8 bit saluran DAC dina ESP32 pikeun ngarobah sinyal digital kana vol analog.tage sinyal kaluaran. Ieu mangrupikeun saluran DAC:
- DAC1 (GPIO25)
- DAC2 (GPIO26)
RTC GPIOs
Aya dukungan RTC GPIO dina ESP32. GPIOs routed ka RTC low-daya subsistem bisa dipaké nalika ESP32 keur sare jero. GPIO RTC ieu tiasa dianggo pikeun ngahudangkeun ESP32 tina bobo jero nalika Ultra Low
Power (ULP) co-processor jalan. GPIO di handap ieu tiasa dianggo salaku sumber hudang éksternal.
- 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 boga 16 saluran bebas nu bisa ngonpigurasi ka ngahasilkeun sinyal PWM mibanda sipat béda. Sadaya pin anu tiasa janten kaluaran tiasa dianggo salaku pin PWM (GPIOs 34 ka 39 teu tiasa ngahasilkeun PWM).
Pikeun nyetél sinyal PWM, anjeun kedah netepkeun parameter ieu dina kode:
- Frékuénsi sinyal;
- Daur tugas;
- saluran PWM;
- GPIO dimana anjeun hoyong kaluaran sinyal.
I2C
ESP32 gaduh dua saluran I2C sareng pin naon waé tiasa disetél salaku SDA atanapi SCL. Nalika nganggo ESP32 sareng Arduino IDE, pin I2C standar nyaéta:
- GPIO 21 (SDA)
- GPIO 22 (SCL)
Upami anjeun hoyong nganggo pin sanés nalika nganggo perpustakaan kawat, anjeun kedah nelepon:
Wire.begin(SDA, SCL);
SPI
Sacara standar, pemetaan pin pikeun SPI nyaéta:
SPI | Batu mosa | Mano | CLK | CS |
VSPI | GPIO 23 | GPIO 19 | GPIO 18 | GPIO 5 |
HSPI | GPIO 13 | GPIO 12 | GPIO 14 | GPIO 15 |
Nyampeurkeun
Kabéh GPIOs bisa ngonpigurasi sakumaha interrupts.
Strapping Pins
Chip ESP32 gaduh pin strapping ieu:
- GPIO 0 (kudu LOW pikeun asup ka modeu boot)
- GPIO 2 (kedah ngambang atanapi LOW nalika boot)
- GPIO 4
- GPIO 5 (kudu TINGGI nalika boot)
- GPIO 12 (kedah LOW nalika boot)
- GPIO 15 (kudu TINGGI nalika boot)
Ieu dianggo pikeun nempatkeun ESP32 kana bootloader atanapi mode kedip-kedip. Dina kalolobaan papan pamekaran sareng USB / Serial anu diwangun, anjeun henteu kedah hariwang ngeunaan kaayaan pin ieu. Dewan nempatkeun pin dina kaayaan katuhu pikeun kedip-kedip atawa mode boot. Inpo nu langkung lengkep ihwal Pamilihan Mode Boot ESP32 tiasa dipendakan Ieuh.
Nanging, upami anjeun gaduh périferal anu nyambung ka pin-pin éta, anjeun tiasa ngalaman masalah nyobian unggah kodeu énggal, kedip-kedip ESP32 nganggo firmware énggal, atanapi ngareset papan. Upami Anjeun gaduh sababaraha périferal disambungkeun ka pin strapping jeung anjeun meunang masalah unggah kode atawa kedip-kedip ESP32, meureun nya alatan éta périferal nu nyegah ESP32 asup kana modeu katuhu. Baca dokuméntasi Pamilihan Mode Boot pikeun nungtun anjeun ka arah anu leres. Saatos ngareset, kedip-kedip, atanapi booting, pin éta tiasa dianggo sapertos anu diharapkeun.
Pin HIGH di Boot
Sababaraha GPIOs ngarobah kaayaan maranéhna pikeun HIGH atawa kaluaran sinyal PWM nalika boot atawa reset.
Ieu ngandung harti yén upami anjeun gaduh kaluaran anu nyambung ka GPIO ieu anjeun tiasa nampi hasil anu teu kaduga nalika ESP32 reset atanapi boot.
- GPIO 1
- GPIO 3
- GPIO 5
- GPIO 6 mun GPIO 11 (dihubungkeun jeung ESP32 terpadu memori flash SPI - teu dianjurkeun ngagunakeun).
- GPIO 14
- GPIO 15
Aktipkeun (EN)
Aktipkeun (EN) nyaéta pin aktipkeun regulator 3.3V. Éta ditarik ka luhur, janten sambungkeun ka taneuh pikeun nganonaktipkeun régulator 3.3V. Ieu ngandung harti yén anjeun bisa make pin ieu disambungkeun ka pushbutton pikeun ngabalikan ESP32 Anjeun, pikeun example.
GPIO ayeuna digambar
Arus maksimum mutlak anu ditarik per GPIO nyaéta 40mA dumasar kana bagian "Kaayaan Operasi anu Disarankeun" dina lembar data ESP32.
ESP32 Diwangun-Dina Balukar Pangaruh Sénsor
ESP32 ogé gaduh sensor éfék aula anu diwangun anu ngadeteksi parobahan médan magnét di sakurilingna
ESP32 Arduino IDE
Aya tambihan pikeun Arduino IDE anu ngamungkinkeun anjeun ngaprogram ESP32 nganggo Arduino IDE sareng basa pamrograman na. Dina tutorial ieu kami bakal nunjukkeun anjeun kumaha masang papan ESP32 dina Arduino IDE naha anjeun nganggo Windows, Mac OS X atanapi Linux.
Prasyarat: Arduino IDE Dipasang
Sateuacan ngamimitian prosedur pamasangan ieu, anjeun kedah masang Arduino IDE dina komputer anjeun. Aya dua vérsi Arduino IDE anu anjeun tiasa pasang: versi 1 sareng versi 2.
Anjeun tiasa ngaunduh sareng masang Arduino IDE ku ngaklik tautan ieu: arduino.cc/en/Main/Software
Vérsi Arduino IDE mana anu kami nyarankeun? Di momen, aya sababaraha plugins pikeun ESP32 (sapertos SPIFFS FileSistim Uploader Plugin) nu teu acan dirojong dina Arduino 2. Ku kituna, lamun maksudna pikeun ngagunakeun SPIFFS plugin dina mangsa nu bakal datang, kami nyarankeun masang versi warisan 1.8.X. Anjeun ngan perlu ngagulung ka handap dina kaca software Arduino pikeun manggihan eta.
Masang ESP32 Add-on dina Arduino IDE
Pikeun masang papan ESP32 dina Arduino IDE anjeun, tuturkeun pitunjuk di handap ieu:
- Dina Arduino IDE anjeun, buka File> Karesep
- Lebetkeun ieu kana "Manajer Dewan Tambahan URLs" widang:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Teras, klik tombol "OK":Catetan: lamun geus boga papan ESP8266 URL, anjeun tiasa misahkeun éta URLs ku koma saperti kieu:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Buka Manajer Boards. Pindah ka Alat> Papan> Manajer Papan…Milarian pikeun ESP32 and press install button for the “ESP32 by Espressif Systems“:
Éta pisan. Ieu kudu dipasang sanggeus sababaraha detik.
Unggah Code Test
Colokkeun papan ESP32 ka komputer Anjeun. Kalayan Arduino IDE anjeun kabuka, tuturkeun léngkah-léngkah ieu:
- Pilih Board anjeun dina Tools > Board menu (dina hal kuring éta ESP32 DEV Module)
- Pilih Port (upami anjeun henteu ningali Port COM dina Arduino IDE anjeun, anjeun kedah masang CP210x USB ka UART Bridge VCP Drivers):
- Buka ex di handap ieuample handap File > Misalamples > WiFi
(ESP32) > WiFiScan - Sketsa anyar dibuka dina Arduino IDE anjeun:
- Pencét tombol Unggah dina Arduino IDE. Antosan sababaraha detik bari kode compiles sarta unggah ka dewan Anjeun.
- Upami sadayana berjalan sapertos anu diharapkeun, anjeun kedah ningali "Rengse unggah." pesen.
- Buka Arduino IDE Serial Monitor dina laju baud 115200:
- Pencét tombol Aktipkeun on-board ESP32 sareng anjeun kedah ningali jaringan anu sayogi caket ESP32 anjeun:
Pamérésan masalah
Upami anjeun nyobian unggah sketsa énggal ka ESP32 anjeun sareng anjeun nampi pesen kasalahan ieu "A error fatal occurred: Failed to connect to ESP32: Timed out… Connecting…“. Ieu ngandung harti yén ESP32 anjeun henteu dina modeu kedip-kedip / unggah.
Ngabogaan ngaran dewan katuhu jeung COM por dipilih, tuturkeun lengkah ieu:
Tahan-handap tombol "BOOT" dina dewan ESP32 Anjeun
- Pencét tombol "Upload" dina Arduino IDE pikeun unggah sketsa anjeun:
- Saatos anjeun ningali "Nyambungkeun…." pesen dina Arduino IDE anjeun, leupaskeun ramo tina tombol "BOOT":
- Saatos éta, anjeun kedah ningali pesen "Rengsé unggah".
Éta pisan. ESP32 anjeun kedah gaduh sketsa énggal. Pencét tombol "Aktifkeun" pikeun ngamimitian deui ESP32 sareng ngajalankeun sketsa anu diunggah énggal.
Anjeun ogé kedah ngulang éta sekuen tombol unggal waktos anjeun badé unggah sketsa énggal.
Proyék 1 ESP32 Inputs Outputs
Dina pituduh ngamimitian ieu anjeun bakal diajar kumaha maca input digital sapertos saklar tombol sareng ngontrol kaluaran digital sapertos LED nganggo ESP32 sareng Arduino IDE.
Prasyarat
Urang bakal program ESP32 ngagunakeun Arduino IDE. Janten, pastikeun anjeun gaduh papan tambahan ESP32 dipasang sateuacan neraskeun:
- Masang ESP32 Add-on dina Arduino IDE
ESP32 Control Kaluaran Digital
Mimiti, anjeun kedah nyetél GPIO anu anjeun hoyong kontrol salaku OUTPUT. Paké pinMode () fungsi saperti kieu:
pinMode(GPIO, OUTPUT);
Pikeun ngadalikeun kaluaran digital anjeun ngan perlu ngagunakeun fungsi digitalWrite (), nu narima salaku argumen, GPIO (jumlah int) nu nujul kana, jeung kaayaan, boh luhur atawa low.
digitalWrite(GPIO, NEGARA);
Kabéh GPIOs bisa dipaké salaku outputs iwal GPIOs 6 ka 11 (dihubungkeun jeung SPI flash terpadu) sarta GPIOs 34, 35, 36 jeung 39 (input ukur GPIOs);
Diajar langkung seueur ngeunaan ESP32 GPIOs: ESP32 GPIO Reference Guide
ESP32 Baca Input Digital
Mimiti, setel GPIO anu anjeun hoyong baca salaku INPUT, nganggo fungsi pinMode () sapertos kieu:
pinMode(GPIO, INPUT);
Pikeun maca input digital, kawas tombol, Anjeun nganggo digitalRead () fungsi, nu narima salaku argumen, GPIO (nomer int) nu nujul kana.
digitalRead(GPIO);
Kabéh ESP32 GPIOs bisa dipaké salaku inputs, iwal GPIOs 6 ka 11 (dihubungkeun jeung flash SPI terpadu).
Diajar langkung seueur ngeunaan ESP32 GPIOs: ESP32 GPIO Reference Guide
Proyék Example
Pikeun nunjukkeun anjeun kumaha ngagunakeun input digital sareng kaluaran digital, kami bakal ngawangun conto proyék saderhanaample kalawan pushbutton sarta LED. Kami bakal maca kaayaan tombol tekan sareng nyéépkeun LED sasuai sapertos anu digambarkeun dina gambar di handap ieu.
Bagian Diperlukeun
Ieu daptar bagian anu anjeun peryogikeun pikeun ngawangun sirkuit:
- ESP32 DEVKIT V1
- 5 mm LED
- 220 Ohm résistor
- Tombol
- résistor 10k Ohm
- Breadboard
- Kawat jumper
Diagram Skématik
Sateuacan neraskeun, anjeun kedah ngumpul sirkuit nganggo LED sareng tombol push.
Kami bakal nyambungkeun LED ka GPIO 5 sareng tombol push kana GPIO 4.Kodeu
Buka kode Project_1_ESP32_Inputs_Outputs.ino dina arduino IDEKumaha Code Gawéna
Dina dua garis ieu, anjeun nyiptakeun variabel pikeun napelkeun pin:
Tombol disambungkeun ka GPIO 4 jeung LED disambungkeun ka GPIO 5. Lamun maké Arduino IDE kalawan ESP32, 4 pakait jeung GPIO 4 jeung 5 pakait jeung GPIO 5.
Salajengna, anjeun nyiptakeun variabel pikeun nahan kaayaan tombol. Sacara standar, éta 0 (teu dipencet).
int buttonState = 0;
Dina setelan (), Anjeun initialize tombol salaku INPUT, sarta LED salaku OUTPUT.
Keur kitu, Anjeun nganggo pinMode () fungsi nu narima pin nu nujul kana, jeung mode: INPUT atanapi OUTPUT.
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
Dina loop () nyaeta dimana anjeun baca kaayaan tombol tur nyetel LED sasuai.
Dina baris salajengna, anjeun baca kaayaan tombol teras simpen dina variabel buttonState.
Salaku geus urang katempo saméméhna, Anjeun nganggo digitalRead () fungsi.
buttonState = digitalRead(buttonPin);
Pernyataan upami di handap ieu, pariksa naha kaayaan tombol TINGGI. Lamun kitu, eta ngahurungkeun LED dina ngagunakeun digitalWrite () fungsi nu narima salaku argumen ledPin, sarta kaayaan TINGGI.
lamun (buttonState == TINGGI)Upami kaayaan tombol henteu TINGGI, anjeun nyetél LED pareum. Ngan nyetél LOW salaku argumen kadua dina fungsi digitalWrite ().
Unggah Kodeu
Sateuacan ngaklik tombol unggah, angkat ka Alat> Papan, teras pilih papan: papan DOIT ESP32 DEVKIT V1.
Pindah ka Alat> Port sareng pilih port COM dimana ESP32 disambungkeun. Teras pencét tombol unggah sareng ngantosan pesen "Rengsé unggah".Catetan: Upami anjeun ningali seueur titik (nyambungkeun…__…__) dina jandela debugging sareng pesen "Gagal nyambung ka ESP32: Waktosna ngantosan header pakét", hartosna anjeun kedah pencét ESP32 on-board BOOT. tombol sanggeus titik
mimiti muncul.Ngarengsekeun masalah
Démonstrasi
Saatos unggah kode, uji sirkuit anjeun. LED anjeun kedah hurung nalika anjeun mencét tombol:Sareng mareuman nalika anjeun ngaleupaskeun:
Proyék 2 ESP32 Input Analog
Proyék ieu nunjukkeun kumaha maca input analog sareng ESP32 nganggo Arduino IDE.
Bacaan analog mangpaat pikeun maca nilai tina résistor variabel sapertos potentiometer, atanapi sénsor analog.
Input Analog (ADC)
Maca hiji nilai analog jeung ESP32 hartina anjeun bisa ngukur varying voltage tingkat antara 0 V jeung 3.3 V.
Voltage diukur lajeng ditugaskeun ka nilai antara 0 jeung 4095, nu 0 V pakait jeung 0, sarta 3.3 V pakait jeung 4095.tage antara 0 V jeung 3.3 V bakal dibéré nilai pakait di antara.ADC nyaéta Non-linier
Ideally, anjeun bakal nyangka kabiasaan linier lamun ngagunakeun ESP32 ADC pin.
Nanging, éta henteu kajantenan. Anu anjeun kéngingkeun nyaéta paripolah anu dipidangkeun dina bagan ieu:Paripolah ieu hartosna yén ESP32 anjeun henteu tiasa ngabédakeun 3.3 V sareng 3.2 V.
Anjeun bakal nampi nilai anu sami pikeun duanana voltagieu: 4095.
Sami kajadian pikeun vol pisan lowtagnilai e: keur 0 V jeung 0.1 V anjeun bakal meunang nilai sarua: 0. Anjeun kudu tetep dina pikiran nalika ngagunakeun ESP32 ADC pin.
analogRead () Fungsi
Maca input analog sareng ESP32 nganggo Arduino IDE saderhana nganggo fungsi analogRead (). Éta nampi salaku argumen, GPIO anu anjeun hoyong baca:
analogRead(GPIO);
Ngan 15 sayogi dina DEVKIT V1board (versi sareng 30 GPIO).
Grab pinout dewan ESP32 anjeun sareng milarian pin ADC. Ieu disorot ku wates beureum dina gambar di handap ieu.Pin input analog ieu gaduh résolusi 12-bit. Ieu ngandung harti yén nalika anjeun maca hiji input analog, rentang na bisa rupa-rupa ti 0 nepi ka 4095.
Catetan: Pin ADC2 teu tiasa dianggo nalika Wi-Fi dianggo. Janten, upami anjeun nganggo Wi-Fi sareng anjeun ngalaman masalah pikeun nampi nilai tina ADC2 GPIO, anjeun tiasa mertimbangkeun nganggo ADC1 GPIO tibatan, éta kedah ngarengsekeun masalah anjeun.
Pikeun ningali kumaha sadayana ngahiji, urang bakal ngadamel mantan anu sederhanaample maca hiji nilai analog ti potentiometer a.
Bagian Diperlukeun
Pikeun ex ieuample, anjeun peryogi bagian handap:
- ESP32 DEVKIT V1 Board
- Potentiometer
- Breadboard
- Kawat jumper
Skematik
Kawat potentiometer ka ESP32 Anjeun. Pin tengah potentiometer kudu disambungkeun ka GPIO 4. Anjeun tiasa make diagram schematic handap salaku rujukan.Kodeu
Kami bakal ngaprogram ESP32 nganggo Arduino IDE, janten pastikeun anjeun parantos dipasang tambihan ESP32 sateuacan neraskeun: (Upami anjeun parantos ngalaksanakeun léngkah ieu, anjeun tiasa ngalangkungan lengkah salajengna.)
Masang ESP32 Add-on dina Arduino IDE
Buka kode Project_2_ESP32_Inputs_Outputs.ino dina arduino IDEKode ieu ngan saukur maca nilai tina potentiometer sareng nyitak nilai-nilai éta dina Monitor Serial.
Dina kode, Anjeun mimitian ku nangtukeun GPIO nu potentiometer disambungkeun ka. Dina ex ieuample, GPIO 4.Dina setelan (), initialize komunikasi serial dina laju baud 115200.
Dina loop (), ngagunakeun analogRead () fungsi pikeun maca input analog ti potPin.
Tungtungna, nyitak nilai dibaca tina potentiometer dina monitor serial.
Unggah kodeu anu disayogikeun ka ESP32 anjeun. Pastikeun anjeun gaduh dewan katuhu jeung port COM dipilih dina menu Pakakas.
Nguji Example
Saatos unggah kode jeung mencét tombol reset ESP32, muka Serial Monitor dina laju baud 115200. Muterkeun potentiometer tur tingal nilai ngarobah.Nilai maksimum anu anjeun kéngingkeun nyaéta 4095 sareng nilai minimum 0.
Bungkus
Dina artikel ieu anjeun geus diajar kumaha carana maca input analog ngagunakeun ESP32 kalawan Arduino IDE. Ringkesanana:
- ESP32 DEVKIT V1 DOIT dewan (versi kalawan 30 pin) boga 15 ADC pin anjeun bisa make maca inputs analog.
- Pin ieu gaduh resolusi 12 bit, anu hartosna anjeun tiasa nampi nilai tina 0 dugi ka 4095.
- Pikeun maca hiji nilai dina Arduino IDE, Anjeun saukur nganggo analogRead () fungsi.
- Pin ESP32 ADC henteu gaduh kabiasaan linier. Anjeun meureun moal bisa ngabedakeun antara 0 jeung 0.1V, atawa antara 3.2 jeung 3.3V. Anjeun kedah émut yén nalika nganggo pin ADC.
Proyék 3 ESP32 PWM (Kaluaran Analog)
Dina tutorial ieu kami bakal nunjukkeun anjeun kumaha ngahasilkeun sinyal PWM nganggo ESP32 nganggo Arduino IDE. Salaku urutampLe kami bakal ngawangun sirkuit basajan nu dims LED maké PWM controller LED tina ESP32.ESP32 LED PWM Controller
ESP32 ngabogaan PWM controller LED kalawan 16 saluran bebas nu bisa ngonpigurasi ka ngahasilkeun sinyal PWM mibanda sipat béda.
Ieu léngkah-léngkah anu anjeun kedah laksanakeun pikeun mareuman LED nganggo PWM nganggo Arduino IDE:
- Mimiti, anjeun kedah milih saluran PWM. Aya 16 saluran tina 0 dugi ka 15.
- Teras, anjeun kedah nyetél frékuénsi sinyal PWM. Pikeun LED, frékuénsi 5000 Hz lumayan dianggo.
- Anjeun ogé kedah nyetél résolusi siklus tugas sinyal: anjeun gaduh résolusi ti 1 dugi ka 16 bit. Kami bakal nganggo resolusi 8-bit, anu hartosna anjeun tiasa ngontrol kacaangan LED nganggo nilai ti 0 dugi ka 255.
- Salajengna, anjeun kedah nangtukeun mana GPIO atanapi GPIOs sinyal bakal muncul. Pikeun éta anjeun bakal nganggo fungsi ieu:
ledcAttachPin(GPIO, saluran)
Pungsi ieu narima dua argumen. Anu kahiji nyaéta GPIO anu bakal ngahasilkeun sinyal, sareng anu kadua nyaéta saluran anu bakal ngahasilkeun sinyal. - Tungtungna, pikeun ngadalikeun kacaangan LED nganggo PWM, anjeun nganggo pungsi ieu:
ledcWrite(saluran, dutycycle)
Pungsi ieu nampi salaku argumen saluran anu ngahasilkeun sinyal PWM, sareng siklus tugas.
Bagian Diperlukeun
Pikeun nuturkeun tutorial ieu anjeun peryogi bagian ieu:
- ESP32 DEVKIT V1 Board
- 5mm LED
- 220 Ohm résistor
- Breadboard
- Kawat jumper
Skematik
Kawat hiji LED ka ESP32 anjeun sakumaha dina diagram skéma handap. LED kudu disambungkeun ka GPIO 4.Catetan: Anjeun tiasa make sagala pin rék, salami eta bisa meta salaku kaluaran. Sadaya pin anu tiasa janten kaluaran tiasa dianggo salaku pin PWM. Kanggo inpo nu langkung lengkep ihwal GPIO ESP32, baca: Rujukan ESP32 Pinout: Pin GPIO mana anu anjeun kedah dianggo?
Kodeu
Kami bakal ngaprogram ESP32 nganggo Arduino IDE, janten pastikeun anjeun parantos dipasang tambihan ESP32 sateuacan neraskeun: (Upami anjeun parantos ngalaksanakeun léngkah ieu, anjeun tiasa ngalangkungan lengkah salajengna.)
Masang ESP32 Add-on dina Arduino IDE
Buka kode Project_3_ESP32_PWM.ino dina arduino IDEAnjeun mimitian ku nangtukeun pin nu LED napel na. Dina hal ieu, LED digantelkeun ka GPIO 4.
Lajeng, anjeun nyetel sipat sinyal PWM. Anjeun nangtukeun frékuénsi 5000 Hz, milih saluran 0 pikeun ngahasilkeun sinyal, tur nyetel resolusi 8 bit. Anjeun tiasa milih sipat séjén, béda ti ieu, pikeun ngahasilkeun sinyal PWM béda.
Dina setup (), anjeun kudu ngonpigurasikeun LED PWM kalawan sipat nu geus ditetepkeun saméméhna ku ngagunakeun ledcSetup () fungsi nu narima salaku argumen, ledChannel, frékuénsi, sarta resolusi, saperti kieu:
Salajengna, anjeun kedah milih GPIO anu anjeun kéngingkeun sinyalna. Pikeun pamakéan éta ledcAttachPin () fungsi nu narima salaku argumen GPIO dimana rék meunang sinyal, sarta saluran anu ngahasilkeun sinyal. Dina ex ieuampLe, urang bakal meunang sinyal dina ledPin GPIO, nu pakait jeung GPIO 4. Saluran nu dibangkitkeun sinyal teh ledChannel, nu pakait jeung channel 0.
Dina puteran, anjeun bakal ngarobih siklus tugas antara 0 sareng 255 pikeun ningkatkeun kacaangan LED.
Teras, antara 255 sareng 0 pikeun ngirangan kacaangan.
Pikeun nyetel kacaangan LED, Anjeun ngan perlu make ledcWrite () fungsi nu narima salaku argumen saluran anu ngahasilkeun sinyal, sarta siklus tugas.
Nalika kami nganggo resolusi 8-bit, siklus tugas bakal dikontrol nganggo nilai tina 0 ka 255. Catet yén dina fungsi ledcWrite () kami nganggo saluran anu ngahasilkeun sinyal, sanés GPIO.
Nguji Example
Unggah kodeu ka ESP32 Anjeun. Pastikeun anjeun gaduh dewan katuhu jeung port COM dipilih. Tingali sirkuit anjeun. Anjeun kedah gaduh LED dimmer anu ningkatkeun sareng ngirangan kacaangan.
Proyék 4 ESP32 PIR Motion Sénsor
Proyék ieu nunjukkeun kumaha cara ngadeteksi gerak sareng ESP32 nganggo sensor gerak PIR. Buzzer bakal disada alarm nalika gerakan dideteksi, sareng ngeureunkeun alarem nalika teu aya gerak anu dideteksi dina waktos prasetél (sapertos 4 detik)
Kumaha HC-SR501 Motion Sensor Gawé
.Prinsip kerja sensor HC-SR501 dumasar kana parobahan radiasi infra red dina obyék obah. Pikeun dideteksi ku sensor HC-SR501, obyék kudu minuhan dua sarat:
- Obyék ieu ngaluarkeun cara infra red.
- Objékna obah atawa oyag
Jadi:
Lamun hiji obyék ngaluarkeun sinar infra red tapi teu gerak (misalna hiji jalma nangtung kénéh tanpa gerak), éta moal dideteksi ku sensor.
Lamun hiji obyék obah tapi teu ngaluarkeun sinar infra red (misalna robot atawa kandaraan), eta teu dideteksi ku sensor.
Ngawanohkeun Timers
Dina ex ieuample kami ogé bakal ngawanohkeun timers. Kami hoyong LED tetep hurung pikeun sajumlah detik anu parantos ditangtukeun saatos gerakan dideteksi. Gantina make fungsi reureuh () nu blok kode anjeun sarta teu ngidinan Anjeun pikeun ngalakukeun nanaon sejenna pikeun jumlah ditangtukeun tina detik, urang kedah nganggo timer a.Fungsi reureuh ().
Anjeun kudu wawuh jeung fungsi reureuh () sabab loba dipaké. Pungsi ieu cukup lugas ngagunakeun. Éta nampi nomer int tunggal salaku argumen.
Jumlah ieu ngagambarkeun waktu dina milliseconds program kudu ngadagoan nepi ka pindah ka garis salajengna kode.Nalika anjeun reureuh (1000) program anjeun eureun dina jalur éta salami 1 detik.
reureuh () mangrupakeun fungsi blocking. Fungsi blocking nyegah program tina ngalakukeun nanaon sejenna nepi ka eta tugas husus réngsé. Lamun perlu sababaraha pancén lumangsung dina waktos anu sareng, Anjeun teu bisa make reureuh ().
Kanggo sabagéan ageung proyék, anjeun kedah ngahindarkeun panggunaan telat sareng nganggo timer.
Fungsi millis().
Ngagunakeun fungsi disebut millis () Anjeun bisa balik jumlah milliseconds nu geus kaliwat saprak program munggaran dimimitian.Naha fungsi éta mangpaat? Kusabab ku ngagunakeun sababaraha math, anjeun bisa kalayan gampang pariksa sabaraha waktos geus kaliwat tanpa blocking kode Anjeun.
Bagian Diperlukeun
Pikeun nuturkeun tutorial ieu anjeun peryogi bagian-bagian di handap ieu
- ESP32 DEVKIT V1 Board
- Sénsor gerak PIR (HC-SR501)
- Buzzer Aktip
- Kawat jumper
- Breadboard
SkematikCatetan: Karya voltage tina HC-SR501 nyaeta 5V. Paké pin Vin pikeun kakuatan eta.
Kodeu
Sateuacan neraskeun tutorial ieu anjeun kedah masang tambihan ESP32 dina Arduino IDE anjeun. Tuturkeun salah sahiji tutorials handap pikeun masang ESP32 dina Arduino IDE, lamun teu acan. (Upami anjeun geus rengse hambalan ieu, anjeun bisa ngaliwatan lengkah saterusna.)
Masang ESP32 Add-on dina Arduino IDE
Buka kode Project_4_ESP32_PIR_Motion_Sensor.ino dina arduino IDE.
Démonstrasi
Unggah kode ka dewan ESP32 Anjeun. Pastikeun anjeun gaduh dewan katuhu jeung port COM selected.Upload kode rujukan léngkah.
Buka Monitor Serial dina laju baud 115200.Pindahkeun leungeun anjeun ka hareup sensor PIR. Buzzer kudu hurung, jeung pesen dicitak dina Serial Monitor nyebutkeun "Gerak kauninga! Alarm buzzer".
Saatos 4 detik, buzzer kedah pareum.
Proyék 5 ESP32 Pindah Web Server
Dina proyék ieu anjeun bakal nyieun mandiri web server kalawan ESP32 nu ngatur kaluaran (dua LEDs) ngagunakeun lingkungan programming Arduino IDE. The web server mobile responsif sarta bisa diaksés ku sagala alat nu salaku browser dina jaringan lokal. Kami bakal nunjukkeun anjeun kumaha cara nyiptakeun web server jeung kumaha kode jalan step-demi-step.
Proyék Langkungview
Sateuacan bade langsung ka proyék, hal anu penting pikeun outline naon urang web server bakal ngalakukeun, ku kituna leuwih gampang nuturkeun léngkah engké on.
- The web server anjeun bakal ngawangun kadali dua LEDs disambungkeun ka ESP32 GPIO 26 jeung GPIO 27;
- Anjeun tiasa ngaksés ESP32 web server ku ngetikkeun alamat IP ESP32 dina browser dina jaringan lokal;
- Ku ngaklik tombol on Anjeun web server anjeun bisa instan ngarobah kaayaan unggal LED.
Bagian Diperlukeun
Pikeun tutorial ieu anjeun peryogi bagian-bagian ieu:
- ESP32 DEVKIT V1 Board
- 2 x 5mm LED
- 2x200 Ohm résistor
- Breadboard
- Kawat jumper
Skematik
Mimitian ku ngawangun sirkuit. Sambungkeun dua LED ka ESP32 sakumaha ditémbongkeun dina diagram skéma handap - hiji LED disambungkeun ka GPIO 26, sarta séjén pikeun GPIO 27.
Catetan: Kami nganggo papan ESP32 DEVKIT DOIT sareng 36 pin. Sateuacan ngarakit sirkuit, pastikeun anjeun pariksa pinout pikeun papan anu anjeun anggo.Kodeu
Di dieu kami nyayogikeun kode anu nyiptakeun ESP32 web server. Buka kode Project_5_ESP32_Switch _Web_Server.ino di arduino IDE, tapi ulah unggah deui. Anjeun kedah ngadamel sababaraha parobihan supados tiasa dianggo pikeun anjeun.
Kami bakal ngaprogram ESP32 nganggo Arduino IDE, janten pastikeun anjeun parantos dipasang tambihan ESP32 sateuacan neraskeun: (Upami anjeun parantos ngalaksanakeun léngkah ieu, anjeun tiasa ngalangkungan lengkah salajengna.)
Masang ESP32 Add-on dina Arduino IDE
Nyetél Kapercayaan Jaringan Anjeun
Anjeun kedah ngarobih garis di handap ieu sareng kredensial jaringan anjeun: SSID sareng kecap akses. Kode ieu ogé commented on dimana anjeun kudu nyieun parobahan.Unggah Kodeu
Ayeuna, anjeun tiasa unggah kode sareng sareng web server bakal dianggo langsung.
Turutan lengkah saterusna pikeun unggah kode ka ESP32:
- Colokkeun papan ESP32 anjeun dina komputer anjeun;
- Dina Arduino IDE pilih dewan anjeun dina Pakakas> Board (dina hal urang nuju ngagunakeun dewan ESP32 DEVKIT DOIT);
- Pilih port COM dina Alat > Port.
- Pencét tombol Unggah dina Arduino IDE sareng antosan sababaraha detik bari kodeu ngumpulkeun sareng unggah kana dewan anjeun.
- Antosan pesen "Rengse unggah".
Milarian Alamat IP ESP
Saatos unggah kodeu, buka Monitor Serial dina laju baud 115200.Pencét tombol ESP32 EN (ngareset). ESP32 nyambung ka Wi-Fi, sarta kaluaran alamat IP ESP dina Monitor Serial. Salin alamat IP éta, sabab anjeun peryogi éta pikeun ngaksés ESP32 web server.
Ngaksés ka Web Server
Pikeun ngakses ka web server, muka panyungsi anjeun, nempelkeun alamat IP ESP32, tur anjeun bakal nempo kaca di handap ieu.
Catetan: Panyungsi anjeun sareng ESP32 kedah nyambung ka LAN anu sami.Upami anjeun ningali kana Serial Monitor, anjeun tiasa ningali naon anu lumangsung dina latar tukang. ESP nampi pamundut HTTP ti klien anyar (dina hal ieu, browser anjeun).
Anjeun oge bisa ningali informasi sejenna ngeunaan pamundut HTTP.
Démonstrasi
Ayeuna anjeun tiasa nguji upami anjeun web server berpungsi leres. Klik tombol pikeun ngadalikeun LEDs.Dina waktos anu sami, anjeun tiasa ningali Serial Monitor pikeun ningali naon anu aya di latar tukang. Pikeun example, mun anjeun klik tombol pikeun ngahurungkeun GPIO 26 ON, ESP32 narima pamundut on /26/on. URL.
Nalika ESP32 nampi pamundut éta, éta ngahurungkeun LED napel GPIO 26 ON tur ngamutahirkeun kaayaanana dina web kaca.
Tombol pikeun GPIO 27 jalan dina cara nu sarupa. Uji yén éta jalanna leres.
Kumaha Code Gawéna
Dina bagian ieu bakal nyandak katingal ngadeukeutan dina kode pikeun ningali kumaha gawéna.
Hal kahiji anu anjeun kedah laksanakeun nyaéta ngalebetkeun perpustakaan WiFi.Sakumaha anu disebatkeun sateuacana, anjeun kedah nyelapkeun ssid sareng kecap akses anjeun dina garis di handap ieu dina tanda petik ganda.
Lajeng, Anjeun nyetel Anjeun web server ka port 80.
Garis di handap ieu nyiptakeun variabel pikeun nyimpen lulugu tina pamundut HTTP:
Salajengna, anjeun nyiptakeun variabel bantu pikeun nyimpen kaayaan kaluaran anjeun ayeuna. Upami anjeun hoyong nambihan langkung seueur kaluaran sareng nyimpen kaayaanana, anjeun kedah nyiptakeun langkung seueur variabel.
Anjeun oge kedah napelkeun GPIO ka unggal outputs Anjeun. Di dieu kami nganggo GPIO 26 sareng GPIO 27. Anjeun tiasa nganggo GPIO anu sanés anu cocog.
disetél()
Ayeuna, hayu urang lebet kana setelan (). Kahiji, urang ngamimitian komunikasi serial dina laju baud 115200 pikeun tujuan debugging.Anjeun ogé netepkeun GPIO anjeun salaku OUTPUT sareng nyetél ka LOW.
Garis handap dimimitian sambungan Wi-Fi kalawan WiFi.begin(ssid, sandi), antosan sambungan suksés tur nyitak alamat IP ESP dina Monitor Serial.
loop()
Dina loop () urang program naon kajadian nalika klien anyar ngadegkeun sambungan kalawan web server.
ESP32 sok ngadangukeun klien anu datang kalayan garis ieu:Nalika pamundut ditampi ti klien, kami bakal nyimpen data anu asup. The while loop anu nuturkeun bakal dijalankeun salami klien tetep nyambung. Kami henteu nyarankeun ngarobih bagian kode di handap ieu kecuali anjeun terang naon anu anjeun lakukeun.
Bagian salajengna tina pernyataan if and else mariksa tombol mana anu dipencet dina anjeun web halaman, sareng ngatur kaluaran sasuai. Salaku urang geus katempo saméméhna, urang nyieun pamundut on béda URLs gumantung kana tombol dipencet.
Pikeun example, lamun geus mencet tombol GPIO 26 ON, ESP32 narima pamundut on /26/ON. URL (urang tiasa ningali yén inpormasi éta dina lulugu HTTP dina Monitor Serial). Janten, urang tiasa pariksa naha lulugu ngandung ekspresi GET /26/on. Lamun ngandung, urang ngarobah variabel output26state ka ON, sarta ESP32 ngahurungkeun LED on.
Ieu jalan sarupa pikeun tombol séjén. Janten, upami anjeun hoyong nambihan langkung seueur kaluaran, anjeun kedah ngarobih bagian kode ieu pikeun ngalebetkeunana.
Mintonkeun HTML web kaca
Hal salajengna anu anjeun kedah laksanakeun, nyaéta nyiptakeun web kaca. ESP32 bakal ngirim réspon kana panyungsi anjeun kalayan sababaraha kode HTML pikeun ngawangun web kaca.
The web kaca ieu dikirim ka klien nu maké klien ieu expressed.println (). Anjeun kedah ngalebetkeun naon anu anjeun hoyong kirimkeun ka klien salaku argumen.
Hal kahiji urang kudu ngirim sok garis handap, nu nunjukkeun yen urang ngirim HTML.Lajeng, baris di handap ieu ngajadikeun web kaca responsif dina sagala web browser.
Sarta di handap ieu dipaké pikeun nyegah requests on favicon nu. – Anjeun teu kedah hariwang ngeunaan garis ieu.
Styling nu Web Kaca
Salajengna, urang gaduh sababaraha téks CSS pikeun gaya tombol jeung web penampilan kaca.
Urang milih font Helvetica, nangtukeun eusi pikeun dipintonkeun salaku blok jeung dijajarkeun di tengah.Urang gaya tombol kami kalawan warna #4CAF50, tanpa wates, téks dina warna bodas, sarta kalawan padding ieu: 16px 40px. Urang ogé nyetél téks-dekorasi ka euweuh, nangtukeun ukuran font, margin, sarta kursor ka pointer a.
Urang ogé nangtukeun gaya pikeun tombol kadua, kalawan sakabeh sipat tombol kami geus tangtu saméméhna, tapi ku warna béda. Ieu bakal janten gaya pikeun tombol pareum.
Netepkeun Web Judul Halaman Kahiji
Dina baris salajengna anjeun tiasa nyetél judul munggaran anjeun web kaca. Di dieu urang gaduh "ESP32 Web Server", tapi anjeun tiasa ngarobih téks ieu kana naon waé anu anjeun pikahoyong.Mintonkeun Kancing sareng Kaayaan anu cocog
Teras, anjeun nyerat paragraf pikeun ningalikeun kaayaan GPIO 26 ayeuna. Sakumaha anjeun tiasa tingali, kami nganggo variabel output26State, supados kaayaan ngamutahirkeun langsung nalika variabel ieu robih.Teras, urang ningalikeun tombol hurung atanapi pareum, gumantung kana kaayaan GPIO ayeuna. Upami kaayaan GPIO ayeuna pareum, kami nunjukkeun tombol ON, upami henteu, kami ningalikeun tombol OFF.
Kami nganggo prosedur anu sami pikeun GPIO 27.
Nutup Sambungan
Tungtungna, nalika respon ends, urang mupus variabel lulugu, sarta ngeureunkeun sambungan jeung klien kalawan client.stop ().
Bungkus
Dina tutorial ieu kami geus ditémbongkeun anjeun kumaha carana ngawangun a web server kalawan ESP32. Kami parantos nunjukkeun anjeun mantan anu sederhanaample nu ngawasaan dua LEDs, tapi ide anu ngagantikeun maranéhanana LEDs kalawan relay a, atawa kaluaran sejenna nu Anjeun hoyong kontrol.
Proyék 6 RGB LED Web Server
Dina proyék ieu kami bakal nunjukkeun anjeun kumaha kadali jarak jauh LED RGB sareng papan ESP32 nganggo a web server kalawan picker warna.
Proyék Langkungview
Sateuacan ngamimitian, hayu urang tingali kumaha proyék ieu jalan:
- ESP32 web server mintonkeun picker warna.
- Lamun anjeun milih warna a, ngajadikeun panyungsi anjeun pamundut on a URL anu ngandung parameter R, G, sareng B tina warna anu dipilih.
- ESP32 anjeun nampi pamundut sareng ngabagi nilai pikeun tiap parameter warna.
- Lajeng, éta ngirimkeun sinyal PWM kalawan nilai saluyu jeung GPIOs nu ngadalikeun RGB LED.
Kumaha LED RGB tiasa dianggo?
Dina LED RGB katoda umum, sadaya tilu LED ngabagi sambungan négatip (katoda).Kumaha cara nyiptakeun warna anu béda?
Kalayan LED RGB anjeun tiasa, tangtosna, ngahasilkeun lampu beureum, héjo, sareng biru, sareng ku ngonpigurasikeun inténsitas unggal LED, anjeun ogé tiasa ngahasilkeun warna anu sanés.
Pikeun exampPikeun ngahasilkeun cahaya biru murni, anjeun kedah nyetél LED biru kana inténsitas pangluhurna sareng LED héjo sareng beureum kana inténsitas panghandapna. Pikeun lampu bodas, anjeun kedah nyetél sadaya tilu LED kana inténsitas pangluhurna.
Campur warna
Pikeun ngahasilkeun warna anu sanés, anjeun tiasa ngagabungkeun tilu warna dina intensitas anu béda. Pikeun nyaluyukeun inténsitas unggal LED anjeun tiasa nganggo sinyal PWM.
Kusabab LEDs deukeut pisan ka silih, panon urang ningali hasil tina kombinasi kelir, tinimbang tilu kelir individual.
Pikeun gaduh ide kumaha ngagabungkeun warna, tingali bagan di handap ieu.
Ieu mangrupikeun bagan campuran warna anu pangbasajanna, tapi masihan anjeun ide kumaha jalanna sareng cara ngahasilkeun warna anu béda.Bagian Diperlukeun
Pikeun proyék ieu anjeun peryogi bagian-bagian ieu:
- ESP32 DEVKIT V1 Board
- LED RGB
- résistor 3x220 ohm
- Kawat jumper
- Breadboard
SkematikKodeu
Kami bakal ngaprogram ESP32 nganggo Arduino IDE, janten pastikeun anjeun parantos dipasang tambihan ESP32 sateuacan neraskeun: (Upami anjeun parantos ngalaksanakeun léngkah ieu, anjeun tiasa ngalangkungan lengkah salajengna.)
- Masang ESP32 Add-on dina Arduino IDE
Saatos assembling sirkuit, Buka kode
Project_6_RGB_LED_Web_Server.ino dina arduino IDE.
Sateuacan unggah kodeu, tong hilap nyelapkeun kredensial jaringan anjeun supados ESP tiasa nyambung ka jaringan lokal anjeun.Kumaha kode jalan
Sketsa ESP32 ngagunakeun perpustakaan WiFi.h.Garis di handap ieu nangtukeun variabel string pikeun nahan parameter R, G, jeung B tina pamundut.
Opat variabel salajengna dianggo pikeun ngadekodekeun pamundut HTTP engké.
Jieun tilu variabel pikeun GPIOs anu bakal ngadalikeun strip R, G, sarta parameter B. Dina hal ieu kami nganggo GPIO 13, GPIO 12, sareng GPIO 14.
GPIO ieu kedah ngaluarkeun sinyal PWM, janten urang kedah ngonpigurasikeun sipat PWM heula. Setel frékuénsi sinyal PWM ka 5000 Hz. Teras, gaulkeun saluran PWM pikeun tiap warna
Tungtungna, setel resolusi saluran PWM ka 8-bit
Dina setelan (), nangtukeun sipat PWM kana saluran PWM
Gantelkeun saluran PWM kana GPIO anu cocog
Bagian kode di handap mintonkeun picker warna dina Anjeun web halaman sareng ngadamel pamundut dumasar kana warna anu anjeun pilih.
Nalika anjeun milih warna, anjeun nampi pamundut kalayan format di handap ieu.
Janten, urang kedah ngabagi senar ieu pikeun kéngingkeun parameter R, G, sareng B. Parameterna disimpen dina variabel redString, greenString, sareng blueString sareng tiasa gaduh nilai antara 0 sareng 255.Pikeun ngadalikeun strip kalawan ESP32, ngagunakeun ledcWrite () fungsi pikeun ngahasilkeun sinyal PWM kalawan nilai decoded tina HTTP. pamundut.
Catetan: Diajar langkung seueur ngeunaan PWM sareng ESP32: Proyék 3 ESP32 PWM (Kaluaran Analog)
Pikeun ngadalikeun strip kalawan ESP8266, urang ngan perlu make
analogWrite () fungsi pikeun ngahasilkeun sinyal PWM kalawan nilai decoded tina pamundut HTPP.
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
Kusabab urang nampi nilai dina variabel string, urang kedah ngarobih kana integer nganggo metode toInt ().
Démonstrasi
Saatos inserting Kapercayaan jaringan anjeun, pilih dewan katuhu jeung port COM tur unggah kodeu ESP32.Upload kode rujukan léngkah anjeun.
Saatos unggah, buka Monitor Serial dina laju baud 115200 sareng pencét tombol ESP Aktipkeun / Reset. Anjeun kedah nampi alamat IP dewan.Buka browser anjeun sareng selapkeun alamat IP ESP. Ayeuna, paké picker warna pikeun milih warna pikeun LED RGB.
Teras, anjeun kedah mencét tombol "Robah Warna" pikeun pangaruh warna.Pikeun mareuman LED RGB, pilih warna hideung.
Warna anu paling kuat (di luhureun pamilih warna), nyaéta anu bakal ngahasilkeun hasil anu langkung saé.
Proyék 7 ESP32 Relay Web Server
Nganggo relay sareng ESP32 mangrupikeun cara anu saé pikeun ngadalikeun alat-alat rumah tangga AC tina jarak jauh. Tutorial ieu ngajelaskeun kumaha carana ngadalikeun modul relay sareng ESP32.
Urang bakal ningali kumaha modul relay jalan, kumaha nyambungkeun relay ka ESP32 sareng ngawangun web server pikeun ngadalikeun relay a jarak jauh.
Ngawanohkeun Relays
Relay mangrupikeun saklar anu dioperasikeun sacara listrik sareng sapertos saklar anu sanés, éta tiasa dihurungkeun atanapi mareuman, ngantepkeun arus atanapi henteu. Ieu bisa dikawasa ku vol lowtagsapertos 3.3V anu disayogikeun ku ESP32 GPIOs sareng ngamungkinkeun urang ngadalikeun vol tinggi.tages kawas 12V, 24V atawa mains voltage (230V di Éropa sareng 120V di AS).Di sisi kénca, aya dua sét tilu sockets pikeun nyambungkeun vol tinggitages, sareng pin di sisi katuhu (low-voltage) nyambung ka ESP32 GPIOs.
Mains Voltage SambunganModul relay anu dipidangkeun dina poto sateuacana gaduh dua konektor, masing-masing gaduh tilu sockets: umum (COM), Normally Closed (NC), sareng Normally Open (NO).
- COM: sambungkeun arus anu anjeun hoyong kendali (mains voltagjeung).
- NC (Normally Closed): konfigurasi biasana ditutup dipaké nalika rék relay ditutup sacara standar. NC anu COM pin disambungkeun, hartina ayeuna ngalir iwal mun ngirim sinyal ti ESP32 kana modul relay pikeun muka sirkuit jeung ngeureunkeun aliran ayeuna.
- NO (Biasa Buka): konfigurasi normal buka jalan sabalikna: euweuh sambungan antara NO jeung COM pin, jadi sirkuit rusak iwal mun ngirim sinyal ti ESP32 nutup sirkuit.
Pin KontrolThe low-voltage samping boga susunan opat pin sarta susunan tilu pin. Set kahiji diwangun ku VCC jeung GND pikeun kakuatan up modul, jeung input 1 (IN1) jeung input 2 (IN2) pikeun ngadalikeun relays handap jeung luhur, masing-masing.
Upami modul relay anjeun ngan ukur gaduh hiji saluran, anjeun ngan ukur gaduh hiji pin IN. Upami Anjeun gaduh opat saluran, Anjeun bakal boga opat IN pin, jeung saterusna.
Sinyal nu dikirim ka pin IN, nangtukeun naha relay aktip atanapi henteu. relay ieu dipicu nalika input mana handap ngeunaan 2V. Ieu ngandung harti yén anjeun bakal gaduh skenario di handap ieu:
- Konfigurasi Biasana Ditutup (NC):
- Sinyal TINGGI - ayeuna ngalir
- Sinyal LOW - ayeuna henteu ngalir
- Konfigurasi Biasana Buka (NO):
- Sinyal TINGGI - ayeuna henteu ngalir
- Sinyal LOW - arus dina ngalir
Anjeun kedah nganggo konfigurasi anu biasana ditutup nalika arus kedah sering ngalir, sareng anjeun ngan ukur hoyong ngeureunkeunana.
Anggo konfigurasi anu biasana kabuka nalika anjeun hoyong arus ngalir kalana (kanggo example, hurungkeun alamp sakapeung).
Pamilihan catu dayaSet kadua pin diwangun ku GND, VCC, sarta pin JD-VCC.
JD-VCC pin kakuatan éléktromagnét relay nu. Perhatikeun yén modul ngabogaan cap jumper nyambungkeun VCC na JD-VCC pin; nu ditémbongkeun di dieu téh konéng, tapi anjeun bisa jadi warna béda.
Kalawan cap jumper on, VCC na JD-VCC pin disambungkeun. Éta hartosna éléktromagnét relay langsung didamel tina pin kakuatan ESP32, janten modul relay sareng sirkuit ESP32 henteu terasing sacara fisik tina silih.
Tanpa cap jumper, Anjeun kudu nyadiakeun hiji sumber kakuatan bebas pikeun kakuatan nepi éléktromagnét relay ngaliwatan pin JD-VCC. Konfigurasi éta fisik ngasingkeun relays ti ESP32 kalawan modul urang diwangun-di optocoupler, nu nyegah karuksakan kana ESP32 bisi tina paku listrik.
SkematikAwas: Pamakéan vol tinggitagsuplai kakuatan bisa ngabalukarkeun tatu serius.
Ku alatan éta, 5mm LEDs dipaké gaganti vol suplai tinggitage bulbs dina percobaan. Mun anjeun teu wawuh jeung mains voltage nanya ka batur anu bakal nulungan anjeun kaluar. Bari programming nu ESP atawa wiring circuit anjeun pastikeun sagalana geus dipegatkeun tina mains voltage.Masang Perpustakaan pikeun ESP32
Pikeun ngawangun ieu web server, kami nganggo ESPAsyncWebPerpustakaan server sareng Perpustakaan AsyncTCP.
Masang ESPAsyncWebPerpustakaan server
Turutan lengkah saterusna pikeun masang ESPAsyncWebServer perpustakaan:
- Klik di dieu pikeun ngundeur ESPAsyncWebPerpustakaan server. Anjeun kedah gaduh
folder .zip dina folder Undeuran Anjeun - Unzip polder .zip sareng anjeun kedah nampi ESPAsyncWebfolder server-master
- Ganti ngaran polder anjeun tina ESPAsyncWebServer-master pikeun ESPAsyncWebServer
- Pindahkeun ESPAsyncWebPolder server kana folder perpustakaan instalasi Arduino IDE Anjeun
Alternatipna, dina IDE Arduino anjeun, anjeun tiasa angkat ka Sketsa> Kalebet
Perpustakaan > Tambihkeun perpustakaan .ZIP... tur pilih perpustakaan nu karek diundeur.
Masang Perpustakaan AsyncTCP pikeun ESP32
The ESPAsyncWebServer perpustakaan merlukeun AsyncTCP perpustakaan pikeun digawé. Nuturkeun
léngkah salajengna pikeun masang perpustakaan éta:
- Klik di dieu pikeun ngundeur perpustakaan AsyncTCP. Anjeun kudu boga folder .zip dina folder Undeuran Anjeun
- Unzip folder .zip jeung anjeun kudu meunang folder AsyncTCP-master
1. Ganti ngaran polder anjeun ti AsyncTCP-master ka AsyncTCP
3. Pindahkeun folder AsyncTCP kana folder perpustakaan instalasi IDE Arduino Anjeun
4. Tungtungna, buka deui Arduino IDE Anjeun
Alternatipna, dina IDE Arduino anjeun, anjeun tiasa angkat ka Sketsa> Kalebet
Perpustakaan > Tambihkeun perpustakaan .ZIP... tur pilih perpustakaan nu karek diundeur.
Kodeu
Kami bakal ngaprogram ESP32 nganggo Arduino IDE, janten pastikeun anjeun parantos dipasang tambihan ESP32 sateuacan neraskeun: (Upami anjeun parantos ngalaksanakeun léngkah ieu, anjeun tiasa ngalangkungan lengkah salajengna.)
Masang ESP32 Add-on dina Arduino IDE
Saatos masang perpustakaan anu diperyogikeun, Buka kode Project_7_ESP32_Relay_Web_Server.ino dina arduino IDE.
Sateuacan unggah kodeu, tong hilap nyelapkeun kredensial jaringan anjeun supados ESP tiasa nyambung ka jaringan lokal anjeun.Démonstrasi
Sanggeus nyieun parobahan diperlukeun, unggah kode ka ESP32.Upload léngkah rujukan kode Anjeun.
Buka Serial Monitor dina laju baud 115200 terus pencét tombol ESP32 EN pikeun meunangkeun alamat IP na. Saterusna, buka browser dina jaringan lokal Anjeun tur ngetik alamat ESP32 IP pikeun meunangkeun aksés ka web server.
Buka Serial Monitor dina laju baud 115200 terus pencét tombol ESP32 EN pikeun meunangkeun alamat IP na. Saterusna, buka browser dina jaringan lokal Anjeun tur ngetik alamat ESP32 IP pikeun meunangkeun aksés ka web server.Catetan: Panyungsi anjeun sareng ESP32 kedah nyambung ka LAN anu sami.
Anjeun kudu meunang hal saperti kieu jeung salaku dua tombol salaku jumlah relays anjeun geus tangtu dina kode Anjeun.Ayeuna, anjeun tiasa nganggo tombol pikeun ngadalikeun relay anjeun nganggo smartphone anjeun.
Project_8_Output_State_Synchronization_ Web_Server
Proyék ieu nunjukkeun kumaha ngadalikeun kaluaran ESP32 atanapi ESP8266 nganggo a web server sareng tombol fisik sakaligus. Kaayaan kaluaran diropéa dina web kaca naha éta dirobah via tombol fisik atawa web server.
Proyék Langkungview
Hayu urang tingali gancang kumaha proyek jalan.ESP32 atanapi ESP8266 host a web server nu ngidinan Anjeun pikeun ngadalikeun kaayaan hiji kaluaran;
- Kaayaan kaluaran ayeuna dipintonkeun dina web server;
- ESP ogé disambungkeun ka pushbutton fisik nu ngatur kaluaran sarua;
- Lamun ngarobah kaayaan kaluaran maké puhsbutton fisik, kaayaan ayeuna na ogé diropéa dina web server.
Kasimpulanana, proyék ieu ngamungkinkeun anjeun ngadalikeun kaluaran anu sami nganggo a web server sareng tombol push sakaligus. Iraha wae kaayaan kaluaran robah, nu web server diropéa.
Bagian Diperlukeun
Ieu daptar bagian anu anjeun peryogikeun pikeun ngawangun sirkuit:
- ESP32 DEVKIT V1 Board
- 5 mm LED
- 220 Ohm résistor
- Tombol
- résistor 10k Ohm
- Breadboard
- Kawat jumper
SkematikMasang Perpustakaan pikeun ESP32
Pikeun ngawangun ieu web server, kami nganggo ESPAsyncWebPerpustakaan server sareng Perpustakaan AsyncTCP. (Upami anjeun parantos ngalaksanakeun léngkah ieu, anjeun tiasa ngalangkungan lengkah salajengna.)
Masang ESPAsyncWebPerpustakaan server
Turutan lengkah saterusna pikeun masang ESPAsyncWebPerpustakaan server:
- Klik di dieu pikeun ngundeur ESPAsyncWebPerpustakaan server. Anjeun kedah gaduh
folder .zip dina folder Undeuran Anjeun - Unzip polder .zip sareng anjeun kedah nampi ESPAsyncWebfolder server-master
- Ganti ngaran polder anjeun tina ESPAsyncWebServer-master pikeun ESPAsyncWebServer
- Pindahkeun ESPAsyncWebPolder server kana folder perpustakaan instalasi Arduino IDE Anjeun
Alternatipna, dina IDE Arduino anjeun, anjeun tiasa angkat ka Sketsa> Kalebet
Perpustakaan > Tambihkeun perpustakaan .ZIP... tur pilih perpustakaan nu karek diundeur.
Masang Perpustakaan AsyncTCP pikeun ESP32
The ESPAsyncWebPerpustakaan server butuh perpustakaan AsyncTCP pikeun dianggo. Turutan léngkah salajengna pikeun masang perpustakaan éta:
- Klik di dieu pikeun ngundeur perpustakaan AsyncTCP. Anjeun kudu boga folder .zip dina folder Undeuran Anjeun
- Unzip folder .zip jeung anjeun kudu meunang folder AsyncTCP-master
- Ganti ngaran polder anjeun tina AsyncTCP-master ka AsyncTCP
- Pindahkeun folder AsyncTCP kana folder perpustakaan instalasi Arduino IDE anjeun
- Tungtungna, buka deui Arduino IDE Anjeun
Alternatipna, dina IDE Arduino anjeun, anjeun tiasa angkat ka Sketsa> Kalebet
Perpustakaan > Tambihkeun perpustakaan .ZIP... tur pilih perpustakaan nu karek diundeur.
Kodeu
Kami bakal ngaprogram ESP32 nganggo Arduino IDE, janten pastikeun anjeun parantos dipasang tambihan ESP32 sateuacan neraskeun: (Upami anjeun parantos ngalaksanakeun léngkah ieu, anjeun tiasa ngalangkungan lengkah salajengna.)
Masang ESP32 Add-on dina Arduino IDE
Saatos masang perpustakaan anu diperyogikeun, Buka kodeu
Project_8_Output_State_Synchronization_Web_Server.ino dina arduino IDE.
Sateuacan unggah kodeu, tong hilap nyelapkeun kredensial jaringan anjeun supados ESP tiasa nyambung ka jaringan lokal anjeun.
Kumaha Code Gawéna
Tombol State sarta Output State
Variabel ledState nahan kaayaan kaluaran LED. Pikeun standar, nalika web server dimimitian, éta LOW.
ButtonState sareng lastButtonState dianggo pikeun ngadeteksi naha tombol pencét dipencet atanapi henteu.Tombol (web sérver)
Kami henteu ngalebetkeun HTML pikeun nyiptakeun tombol dina variabel index_html.
Éta sabab urang hoyong tiasa ngarobih gumantung kana kaayaan LED ayeuna anu ogé tiasa dirobih ku tombol tekan.
Ku kituna, urang geus nyieun placeholder pikeun tombol% BUTTONPLACEHOLDER% nu bakal diganti ku téks HTML pikeun nyieun tombol engké on kode (ieu dipigawé dina processor () fungsi).prosésor ()
processor () fungsi ngagantikeun sagala pananda tempat dina téks HTML kalawan nilai sabenerna. Kahiji, éta cek naha téks HTML ngandung sagala
pananda tempat% BUTTONPLACEHOLDER%.Lajeng, nelepon theoutputState () fungsi nu mulih kaayaan kaluaran ayeuna. Urang simpen dina variabel outputStateValue.
Saatos éta, paké nilai éta pikeun nyiptakeun téks HTML pikeun ningalikeun tombol kalayan kaayaan anu leres:
HTTP GET Request pikeun Ngarobah Output State (JavaScript)
Lamun anjeun mencet tombol, fungsi toggleCheckbox () disebut. Pungsi ieu bakal nyieun pamundut on béda URLs pikeun ngahurungkeun atawa mareuman LED.Pikeun ngahurungkeun LED, eta ngajadikeun pamundut on /update?state=1 URL:
Upami teu kitu, eta ngajadikeun pamundut on /update?state=0 URL.
HTTP GET Request to Update State (JavaScript)
Pikeun ngajaga kaayaan kaluaran diropéa dina web server, urang nelepon fungsi handap nu ngajadikeun pamundut anyar dina / kaayaan URL unggal detik.Nanganan Requests
Teras, urang kedah nanganan naon anu kajantenan nalika ESP32 atanapi ESP8266 nampi pamenta dina éta. URLs.
Nalika pamundut ditampi dina akar /URL, urang ngirim kaca HTML ogé processor.Garis di handap ieu pariksa naha anjeun nampi pamundut dina /update?state=1 atanapi /update?state=0 URL sarta ngarobah ledState sasuai.
Nalika pamundut ditampi dina / kaayaan URL, urang ngirim kaayaan kaluaran ayeuna:
loop()
Dina loop (), urang debounce tombol push jeung ngahurungkeun LED atawa mareuman gumantung kana nilai ledState nu. variabel.Démonstrasi
Unggah kode ka papan ESP32 Anjeun. Unggah léngkah rujukan kode.
Teras, buka Monitor Serial dina laju baud 115200. Pencét on-board EN/RST tombol pikeun meunangkeun alamat IP.Buka browser dina jaringan lokal anjeun, sareng ketik alamat IP ESP. Anjeun kudu boga aksés ka web server sakumaha ditémbongkeun di handap ieu.
Catetan: Panyungsi anjeun sareng ESP32 kedah nyambung ka LAN anu sami.Anjeun tiasa toggle tombol dina web server pikeun ngahurungkeun LED on.
Anjeun oge bisa ngadalikeun LED sarua jeung pushbutton fisik. kaayaan na bakal salawasna diropéa otomatis dina web server.
Proyék 9 ESP32 DHT11 Web Server
Dina proyék ieu, anjeun bakal diajar kumaha carana ngawangun ESP32 asynchronous web server kalawan DHT11 nu mintonkeun suhu jeung kalembaban maké Arduino IDE.
Prasyarat
The web server kami bakal ngawangun apdet bacaan sacara otomatis tanpa kudu refresh web kaca.
Kalayan proyék ieu anjeun bakal diajar:
- Kumaha maca suhu sareng kalembaban tina sénsor DHT;
- Ngawangun asynchronous web server ngagunakeun éta ESPAsyncWebPerpustakaan server;
- Ngamutahirkeun maca sensor otomatis tanpa kudu refresh nu web kaca.
Asynchronous Web Server
Pikeun ngawangun web server kami bakal ngagunakeun éta ESPAsyncWebPerpustakaan server nu nyadiakeun cara gampang pikeun ngawangun hiji Asynchronous web server. Ngawangun asynchronous web server boga sababaraha advantages sakumaha disebutkeun dina perpustakaan GitHub kaca, kayaning:
- "Ngatur langkung ti hiji sambungan dina waktos anu sami";
- "Lamun anjeun ngirim respon, anjeun geuwat siap pikeun nanganan sambungan séjén bari server ngurus ngirim respon di tukang";
- "Mesin processing template basajan pikeun cecekelan template";
Bagian Diperlukeun
Pikeun ngalengkepan tutorial ieu anjeun peryogi bagian-bagian ieu:
- dewan ngembangkeun ESP32
- Modul DHT11
- Breadboard
- Kawat jumper
SkematikMasang Perpustakaan
Anjeun kedah masang sababaraha perpustakaan pikeun proyék ieu:
- The DHT jeung Sénsor Ngahijikeun Adafruit Perpustakaan supir maca tina sensor DHT.
- ESPAsyncWebServer jeung Async TCP perpustakaan pikeun ngawangun Asynchronous web server.
Turutan parentah salajengna pikeun masang perpustakaan éta:
Masang Perpustakaan Sensor DHT
Pikeun maca tina sensor DHT maké Arduino IDE, Anjeun kudu masang perpustakaan sensor DHT. Turutan lengkah saterusna pikeun masang perpustakaan.
- Klik di dieu pikeun ngundeur perpustakaan DHT Sensor. Anjeun kudu boga folder .zip dina folder Undeuran Anjeun
- Unzip polder .zip sareng anjeun kedah nampi folder DHT-sensor-library-master
- Ganti ngaran polder anjeun tina DHT-sensor-library-master ka DHT_sensor
- Pindahkeun folder DHT_sensor kana folder perpustakaan instalasi Arduino IDE anjeun
- Tungtungna, buka deui Arduino IDE Anjeun
Masang Supir Sensor Ngahijikeun Adafruit
Anjeun oge kedah masang Adafruit Unified Sensor Supir perpustakaan pikeun digawe sareng sensor DHT. Turutan lengkah saterusna pikeun masang perpustakaan.
- Klik di dieu pikeun ngundeur perpustakaan Adafruit Unified Sensor. Anjeun kudu boga folder .zip dina folder Undeuran Anjeun
- Unzip folder .zip jeung anjeun kudu meunang Adafruit_sensor-master folder
- Ganti ngaran polder anjeun tina Adafruit_sensor-master ka Adafruit_sensor
- Pindahkeun folder Adafruit_sensor kana folder perpustakaan instalasi Arduino IDE anjeun
- Tungtungna, buka deui Arduino IDE Anjeun
Masang ESPAsyncWebPerpustakaan server
Turutan lengkah saterusna pikeun masang ESPAsyncWebServer perpustakaan:
- Klik di dieu pikeun ngundeur ESPAsyncWebPerpustakaan server. Anjeun kedah gaduh
folder .zip dina folder Undeuran Anjeun - Unzip folder .zip jeung anjeun kedah
meunang ESPAsyncWebfolder server-master - Ganti ngaran polder anjeun tina ESPAsyncWebServer-master pikeun ESPAsyncWebServer
- Pindahkeun ESPAsyncWebPolder server kana folder perpustakaan instalasi Arduino IDE Anjeun
Masang Perpustakaan Async TCP pikeun ESP32
The ESPAsyncWebServer perpustakaan merlukeun AsyncTCP perpustakaan pikeun digawé. Turutan léngkah salajengna pikeun masang perpustakaan éta:
- Klik di dieu pikeun ngundeur perpustakaan AsyncTCP. Anjeun kudu boga folder .zip dina folder Undeuran Anjeun
- Unzip folder .zip jeung anjeun kudu meunang folder AsyncTCP-master
- Ganti ngaran polder anjeun tina AsyncTCP-master ka AsyncTCP
- Pindahkeun folder AsyncTCP kana folder perpustakaan instalasi Arduino IDE anjeun
- Tungtungna, buka deui Arduino IDE Anjeun
Kodeu
Kami bakal ngaprogram ESP32 nganggo Arduino IDE, janten pastikeun anjeun parantos dipasang tambihan ESP32 sateuacan neraskeun: (Upami anjeun parantos ngalaksanakeun léngkah ieu, anjeun tiasa ngalangkungan lengkah salajengna.)
Masang ESP32 Add-on dina Arduino IDE
Saatos masang perpustakaan anu diperyogikeun, Buka kodeu
Project_9_ESP32_DHT11_Web_Server.ino dina arduino IDE.
Sateuacan unggah kodeu, tong hilap nyelapkeun kredensial jaringan anjeun supados ESP tiasa nyambung ka jaringan lokal anjeun.Kumaha Code Gawéna
Dina paragraf di handap ieu kami bakal ngajelaskeun kumaha kode éta jalan. Tetep maca upami anjeun hoyong diajar langkung seueur atanapi luncat kana bagian Demonstrasi pikeun ningali hasil ahir.
Impor perpustakaan
Mimiti, impor perpustakaan anu diperyogikeun. WiFi, ESPAsyncWebServer sareng ESPAsyncTCP diperyogikeun pikeun ngawangun web server. Adafruit_Sensor sareng perpustakaan DHT diperyogikeun pikeun maca tina sénsor DHT11 atanapi DHT22.Watesan variabel
Nangtukeun GPIO nu DHT data pin disambungkeun ka. Dina hal ieu, éta disambungkeun ka GPIO 4.Teras, pilih jinis sénsor DHT anu anjeun anggo. Di mantan urangample, urang nuju ngagunakeun DHT22. Upami anjeun nganggo jinis anu sanés, anjeun ngan ukur kedah ngabatalkeun koméntar sénsor anjeun sareng masihan koméntar anu sanés.
Instantiate hiji objek DHT jeung tipe sarta pin kami geus tangtu saméméhna.Jieun AsyncWebObyék server dina port 80.
Baca Fungsi Suhu sareng Kalembaban
Kami geus dijieun dua fungsi: hiji maca suhu Kami geus dijieun dua fungsi: hiji maca suhu (readDHTTemperature ()) jeung lianna pikeun maca asor (readDHTHumidity ()).Kéngingkeun bacaan sénsor saderhana sapertos ngagunakeun Bacaan sénsor saderhana sapertos ngagunakeun metode readTemperature () sareng readHumidity () dina obyek dht.
Kami ogé ngagaduhan kaayaan anu ngabalikeun dua garis (-) upami sensor gagal nampi bacaan.
Bacaan dipulangkeun salaku jinis senar. Pikeun ngarobah ngambang kana string a, make String () fungsi
Sacara standar, urang nuju maca suhu dina derajat Celsius. Pikeun kéngingkeun suhu dina derajat Fahrenheit, koméntar suhu dina Celsius sareng cabut koméntar suhu dina Fahrenheit, supados anjeun gaduh ieu:
Unggah Kodeu
Ayeuna, unggah kodeu ka ESP32 Anjeun. Pastikeun anjeun gaduh dewan katuhu jeung port COM selected.Upload kode rujukan léngkah.
Saatos unggah, buka Monitor Serial dina laju baud 115200. Pencét tombol reset ESP32. Alamat IP ESP32 kudu dicitak dina serial ngawaskeun.Démonstrasi
Buka browser sareng ketik alamat IP ESP32. Anjeun web server kedah nembongkeun bacaan sensor panganyarna.
Catetan: Panyungsi anjeun sareng ESP32 kedah nyambung ka LAN anu sami.
Perhatikeun yén suhu sareng kalembaban bacaan diropéa sacara otomatis tanpa kedah nyegerkeun web kaca.
Project_10_ESP32_OLED_Display
Proyék ieu nunjukkeun kumaha ngagunakeun tampilan SSD0.96 OLED 1306 inci sareng ESP32 nganggo Arduino IDE.
Nepangkeun 0.96 inci OLED Display
The tampilan OLED Anu bakal kami anggo dina tutorial ieu nyaéta modél SSD1306: monocolor, tampilan 0.96 inci sareng 128 × 64 piksel sapertos anu dipidangkeun dina gambar di handap ieu.Pintonan OLED henteu meryogikeun lampu tukang, anu nyababkeun kontras anu saé dina lingkungan poék. Salaku tambahan, piksel-pikselna ngan ukur nganggo énergi nalika aranjeunna hurung, ku kituna tampilan OLED nyéépkeun kakuatan kirang upami dibandingkeun sareng tampilan anu sanés.
Kusabab tampilan OLED ngagunakeun protokol komunikasi I2C, wiring basajan pisan. Anjeun tiasa nganggo tabel di handap ieu salaku rujukan.
Pin OLED | ESP32 |
Vin | 3.3V |
GND | GND |
SCL | GPIO 22 |
SDA | GPIO 21 |
SkematikMasang Perpustakaan OLED SSD1306 - ESP32
Aya sababaraha perpustakaan sadia pikeun ngadalikeun tampilan OLED kalawan ESP32.
Dina tutorial ieu kami bakal ngagunakeun dua perpustakaan Adafruit: Perpustakaan Adafruit_SSD1306 jeung Perpustakaan Adafruit_GFX.
Turutan léngkah salajengna pikeun masang perpustakaan éta.
- Buka Arduino IDE anjeun sareng angkat ka Sketsa> Kalebet Perpustakaan> Atur Perpustakaan. Manajer Perpustakaan kedah dibuka.
- Ketik "SSD1306" dina kotak teang sareng pasang perpustakaan SSD1306 tina Adafruit.
- Saatos masang perpustakaan SSD1306 tina Adafruit, ngetik "GFX" dina kotak teang sareng pasang perpustakaan.
- Saatos masang perpustakaan, balikan deui Arduino IDE anjeun.
Kodeu
Sanggeus masang perpustakaan diperlukeun, Buka Project_10_ESP32_OLED_Display.ino di arduino IDE. kodeu
Kami bakal ngaprogram ESP32 nganggo Arduino IDE, janten pastikeun anjeun parantos dipasang tambihan ESP32 sateuacan neraskeun: (Upami anjeun parantos ngalaksanakeun léngkah ieu, anjeun tiasa ngalangkungan lengkah salajengna.)
Masang ESP32 Add-on dina Arduino IDEKumaha Code Gawéna
Impor perpustakaan
Mimiti, anjeun kedah ngimpor perpustakaan anu diperyogikeun. Perpustakaan Kawat nganggo I2C sareng perpustakaan Adafruit pikeun nyerat kana tampilan: Adafruit_GFX sareng Adafruit_SSD1306.Mimitian tampilan OLED
Teras, anjeun netepkeun lebar sareng jangkungna OLED anjeun. Dina ex ieuampLe, urang nuju ngagunakeun 128 × 64 tampilan OLED. Upami anjeun nganggo ukuran anu sanés, anjeun tiasa ngarobih éta dina variabel SCREEN_WIDTH, sareng SCREEN_HEIGHT.Lajeng, initialize hiji objek tampilan kalayan rubak jeung jangkungna diartikeun saméméhna ku protokol komunikasi I2C (& Kawat).
Parameter (-1) hartosna tampilan OLED anjeun henteu gaduh pin RESET. Upami tampilan OLED anjeun gaduh pin RESET, éta kedah dihubungkeun sareng GPIO. Dina hal éta, anjeun kedah lulus nomer GPIO salaku parameter.
Dina setelan (), initialize Monitor Serial dina baud raute 115200 pikeun tujuan debugging.Initialize tampilan OLED kalawan begin () métode saperti kieu:
Potongan ieu ogé nyitak pesen dina Monitor Serial, upami urang henteu tiasa nyambung ka tampilan.
Upami anjeun nganggo tampilan OLED anu béda, anjeun panginten kedah ngarobih alamat OLED. Dina kasus urang, alamatna 0x3C.
Saatos ngamimitian tampilan, tambahkeun jeda dua detik, supados OLED gaduh waktos cekap pikeun ngamimitian sateuacan nyerat téks:
Hapus tampilan, set ukuran font, warna sareng nyerat téks
Saatos ngamimitian tampilan, hapus panyangga tampilan nganggo metode clearDisplay ():
Sateuacan nyerat téks, anjeun kedah nyetél ukuran téks, warna sareng dimana téks bakal ditingalikeun dina OLED.
Setel ukuran font nganggo metode setTextSize():Setel warna font nganggo metode setTextColor():
WHITE nyetél font bodas sareng latar hideung.
Nangtukeun posisi dimana téks dimimitian ngagunakeun métode setCursor(x,y). Dina hal ieu, urang netepkeun téks pikeun ngamimitian dina koordinat (0,0) - di belah kénca juru luhur.Tungtungna, anjeun tiasa ngirim téks kana tampilan nganggo metode println (), sapertos kieu
Lajeng, anjeun kudu nelepon metoda tampilan () pikeun sabenerna nembongkeun téks dina layar.
Perpustakaan Adafruit OLED nyayogikeun metode anu mangpaat pikeun ngagulung téks kalayan gampang.
- startscrollright (0x00, 0x0F): gulung téks ti kénca ka katuhu
- startscrollleft (0x00, 0x0F): gulung téks ti katuhu ka kenca
- startscrolldiagright(0x00, 0x07): gulung téks ti pojok kénca handap ka pojok luhur katuhu startscrolldiagleft(0x00, 0x07): gulung téks ti pojok katuhu handap ka pojok luhur kénca
Unggah Kodeu
Ayeuna, unggah kodeu ka ESP32.Unggah léngkah rujukan kode anjeun.
Saatos unggah kodeu, OLED bakal ningalikeun téks ngagulung.
Dokumén / Sumberdaya
![]() |
LAFVIN ESP32 Dasar Starter Kit [pdf] Instruksi Manual ESP32 Dasar Starter Kit, ESP32, Dasar Starter Kit, Starter Kit |