ESP32 oinarrizko abiarazlea
Kit
Enbalatzeko Zerrenda
ESP32 Sarrera
ESP32-n berria? Hasi hemen! ESP32 Espressifek garatutako kostu baxuko eta potentzia baxuko System on a Chip (SoC) mikrokontrolagailuen serie bat da, Wi-Fi eta Bluetooth haririk gabeko gaitasunak eta nukleo bikoitzeko prozesadorea barne. ESP8266 ezagutzen baduzu, ESP32 bere oinordekoa da, funtzio berri askorekin.ESP32 zehaztapenak
Pixka bat teknikoagoa eta zehatzagoa lortu nahi baduzu, ESP32-ren zehaztapen zehatzei begirada bat eman diezaiekezu (iturria: http://esp32.net/)- xehetasun gehiagorako, egiaztatu fitxa teknikoa):
- Haririk gabeko konektibitatea WiFi: 150.0 Mbps datu-tasa HT40-rekin
- Bluetootha: BLE (Bluetooth Low Energy) eta Bluetooth Classic
- Prozesadorea: Tensilica Xtensa Dual-Core 32 biteko LX6 mikroprozesadorea, 160 edo 240 MHz-en funtzionatzen duena
- Memoria:
- ROM: 448 KB (abiorako eta oinarrizko funtzioetarako)
- SRAM: 520 KB (datuetarako eta argibideetarako)
- RTC fa SRAM: 8 KB (datuak biltegiratzeko eta CPU nagusirako lo sakoneko modutik RTC abiaraztean)
- RTC motela SRAM: 8KB (prozesadore batera atzitzeko lo sakoneko moduan) eFuse: 1 Kbit (horietatik 256 bit erabiltzen dira sistemarako (MAC helbidea eta txiparen konfigurazioa) eta gainerako 768 bitak bezeroen aplikazioetarako gordeta daude, barne. Flash-enkriptatzea eta Txip-ID)
Flash txertatua: IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 eta SD_DATA_1 ESP32-D2WD eta ESP32-PICO-D4-n barnean konektatutako flasha.
- 0 MiB (ESP32-D0WDQ6, ESP32-D0WD eta ESP32-S0WD txipak)
- 2 MiB (ESP32-D2WD txipa)
- 4 MiB (ESP32-PICO-D4 SiP modulua)
Potentzia baxua: ADC bihurketak oraindik erabil ditzakezula ziurtatzen du, adibidezample, lo sakonean.
Sarrera/Irteera periferikoa:
- ukipen kapazitiboa barne duen DMA duen interfaze periferikoa
- ADCak (Bihurgailu analogikotik digitala)
- DAC (Digital-Analogiko Bihurgailua)
- I²C (zirkuitu integratua)
- UART (Harrera/Igorle asinkrono unibertsala)
- SPI (Serial Peripheral Interface)
- I²S (Interchip Soinu Integratua)
- RMII (Murriztutako Media-Independente Interfazea)
- PWM (pultsu-zabalera modulazioa)
Segurtasuna: AES eta SSL/TLSrako hardware azeleragailuak
ESP32 Garapen Batzordeak
ESP32 ESP32 txip biluziari egiten dio erreferentzia. Hala ere, "ESP32" terminoa ESP32 garapen-plakei erreferentzia egiteko ere erabiltzen da. ESP32 txip biluziak erabiltzea ez da erraza edo praktikoa, batez ere ikasten, probatzen eta prototipoak egiten direnean. Gehienetan, ESP32 garapen-plaka bat erabili nahi duzu.
ESP32 DEVKIT V1 plaka erreferentzia gisa erabiliko dugu. Beheko irudian ESP32 DEVKIT V1 plaka erakusten da, 30 GPIO pin dituen bertsioa.Zehaztapenak - ESP32 DEVKIT V1
Ondorengo taulak ESP32 DEVKIT V1 DOIT plakaren ezaugarrien eta zehaztapenen laburpena erakusten du:
Nukleo kopurua | 2 (nukleo bikoitza) |
Wi-Fi | 2.4 GHz 150 Mbit/s-ra arte |
Bluetootha | BLE (Bluetooth Low Energy) eta Bluetooth-a |
Arkitektura | 32 bit |
Erlojuaren maiztasuna | 240 MHz arte |
RAM | 512 KB |
Pinak | 30 (ereduaren arabera) |
Periferikoak | Ukipen kapazitiboa, ADC (bihurgailu analogikotik digitala), DAC (bihurgailu digital eta analogikora), 12C (zirkuitu interintegratua), UART (hartzaile/transmisore asinkrono unibertsala), CAN 2.0 (Kontroler Area Sare), SPI (Serial Peripheral Interface) , 12S (Inter-IC integratua Soinua), RMII (Reduced Media-Independent Interface), PWM (pultsu zabaleraren modulazioa) eta abar. |
Botoiak barneratuak | RESET eta BOOT botoiak |
LED integratuak | LED urdin integratua GPIO2-ra konektatuta; LED gorri integratua, plaka pizten ari dela erakusten duena |
USBra UARTra zubia |
CP2102 |
Plaka zure ordenagailura konektatzeko erabil dezakezun mikroUSB interfaze batekin dator, kodea kargatzeko edo energia aplikatzeko.
CP2102 txipa erabiltzen du (USB to UART) zure ordenagailuarekin komunikatzeko COM ataka baten bidez serieko interfaze bat erabiliz. Beste txip ezagun bat CH340 da. Egiaztatu zein den USB-rako UART txip bihurgailua zure plakan, beharrezkoak diren kontrolatzaileak instalatu beharko dituzulako zure ordenagailua plakarekin komunikatu ahal izateko (horri buruzko informazio gehiago gida honetan).
Plaka honek RESET botoi batekin (EN etiketatua izan daiteke) taula berrabiarazteko eta BOOT botoi batekin taula keinuka moduan jartzeko (kodea jasotzeko erabilgarri dago). Kontuan izan taula batzuek agian ez dutela BOOT botoirik izan.
GPIO 2-ra barnean konektatuta dagoen LED urdin integratua ere badator. LED hau baliagarria da arazketarako nolabaiteko irteera fisiko bisuala emateko. LED gorri bat ere badago plakari energia ematen diozunean pizten dena.ESP32 Pinout
ESP32 periferikoak honako hauek dira:
- 18 analogiko-digital bihurgailu (ADC) kanal
- 3 SPI interfaze
- 3 UART interfaze
- 2 I2C interfaze
- 16 PWM irteera kanal
- 2 digital-analogiko bihurgailuak (DAC)
- 2 I2S interfaze
- 10 sentsazio ahalmenezko GPIO
ADC (bihurgailu analogikoa eta digitala) eta DAC (bihurgailu digitala eta analogikoa) funtzioak pin estatiko jakin batzuei esleitzen zaizkie. Hala ere, erabaki dezakezu zein pin diren UART, I2C, SPI, PWM, etab. Kodean esleitu besterik ez duzu behar. Hori posible da ESP32 txiparen multiplexazio-funtzioa dela eta.
Pinen propietateak softwarean defini ditzakezun arren, lehenespenez esleitutako pinak daude hurrengo irudian erakusten den moduanGainera, proiektu jakin baterako egokiak edo ez diren ezaugarri espezifikoak dituzten pinak daude. Hurrengo taulak erakusten du zein pin sarreren, irteera gisa erabiltzeko egokienak eta zeintzuk izan behar duzun kontuz.
Berdez nabarmendutako pinak ondo daude erabiltzeko. Horiz nabarmendutakoak erabiltzeko ondo daude, baina arreta jarri behar duzu, batez ere abioan ustekabeko portaera izan dezaketelako. Gorriz nabarmendutako pinak ez dira gomendatzen sarrera edo irteera gisa erabiltzea.
GP IO | Sarrera | Irteera | Oharrak |
0 | gora botata | OK | PWM seinalea ateratzen du abioan, BAXUA izan behar du keinu moduan sartzeko |
1 | TX pina | OK | abioan araztu irteera |
2 | OK | OK | plakako LEDra konektatuta, flotatzen edo LOW utzi behar da keinu moduan sartzeko |
3 | OK | RX pina | GOIA abioan |
4 | OK | OK | |
5 | OK | OK | PWM seinalea ateratzen du abioan, uhala-pin |
12 | OK | OK | botak huts egiten du altuera botatzen bada, uhala-pin |
13 | OK | OK | |
14 | OK | OK | abioan PWM seinalea ateratzen du |
15 | OK | OK | PWM seinalea ateratzen du abioan, uhala-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 | sarrera bakarrik | |
35 | OK | sarrera bakarrik | |
36 | OK | sarrera bakarrik | |
39 | OK | sarrera bakarrik |
Jarraitu irakurtzen ESP32 GPIOen eta bere funtzioen azterketa zehatzagoa eta sakonagoa lortzeko.
Sartu pinak bakarrik
34tik 39ra bitarteko GPIOak GPIak dira - pinak bakarrik sartu. Pin hauek ez dute barne-erresistentziarik. Ezin dira irteera gisa erabili, beraz, erabili pin hauek sarrera gisa soilik:
- GPIO 34
- GPIO 35
- GPIO 36
- GPIO 39
SPI flash ESP-WROOM-32-n integratua
GPIO 6tik GPIO 11ra ESP32 garapen-plaka batzuetan azaltzen dira. Hala ere, pin hauek ESP-WROOM-32 txiparen SPI flash integratura konektatuta daude eta ez dira gomendagarriak beste erabilera batzuetarako. Beraz, ez erabili pin hauek zure proiektuetan:
- GPIO 6 (SCK/CLK)
- GPIO 7 (SDO/SD0)
- GPIO 8 (SDI/SD1)
- GPIO 9 (SHD/SD2)
- GPIO 10 (SWP/SD3)
- GPIO 11 (CSC/CMD)
Ukipen ahalmenezko GPIOak
ESP32-k barneko 10 ukipen-sentsore kapazitibo ditu. Hauek karga elektrikoa duen edozertan aldakuntzak suma ditzakete, giza larruazalean bezala. Beraz, GPIOak hatz batekin ukitzean eragindako aldaerak hauteman ditzakete. Pin hauek erraz integra daitezke pad kapazitiboetan eta botoi mekanikoak ordezkatu. Ukipen-pin kapazitiboak ESP32 lo sakonetik esnatzeko ere erabil daitezke. Barneko ukipen-sentsore horiek GPIO hauetara konektatuta daude:
- 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)
Bihurgailu analogikoa digitala (ADC)
ESP32-k 18 x 12 biteko ADC sarrera-kanal ditu (ESP8266k, berriz, 1x 10 biteko ADC besterik ez du). Hauek dira ADC eta dagozkien kanal gisa erabil daitezkeen GPIOak:
- 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)
Oharra: ADC2 pinak ezin dira erabili Wi-Fi erabiltzen denean. Beraz, Wi-Fi erabiltzen ari bazara eta ADC2 GPIO baten balioa lortzeko arazoak badituzu, baliteke ADC1 GPIO bat erabiltzea ordez. Horrek zure arazoa konpondu beharko luke.
ADC sarrerako kanalek 12 biteko bereizmena dute. Horrek esan nahi du 0tik 4095era bitarteko irakurketa analogikoak lor ditzakezula, zeinetan 0 0V-ri dagokiola eta 4095-tik 3.3V-ra. Zure kanalen bereizmena kodean eta ADC barrutian ere ezar dezakezu.
ESP32 ADC pinek ez dute portaera lineal bat. Seguruenik, ezin izango dituzu 0 eta 0.1V artean bereizi, edo 3.2 eta 3.3V artean. Hori kontuan izan behar duzu ADC pinak erabiltzean. Hurrengo irudian agertzen denaren antzeko portaera bat lortuko duzu.Bihurgailu digitala analogikoa (DAC)
ESP2n 8 x 32 biteko DAC kanal daude seinale digitalak bolumen analogiko bihurtzekotage seinale irteerak. Hauek dira DAC kanalak:
- DAC1 (GPIO25)
- DAC2 (GPIO26)
RTC GPIOak
RTC GPIO laguntza dago ESP32-n. RTC potentzia baxuko azpisistemara bideratzen diren GPIOak ESP32 lo sakonean dagoenean erabil daitezke. RTC GPIO hauek ESP32 lo sakonetik esnatzeko erabil daitezke Ultra Baxua denean
Power (ULP) koprozesadorea martxan da. GPIO hauek kanpoko esnatze iturri gisa erabil daitezke.
- 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 kontrolagailuak 16 kanal independente ditu, propietate desberdinak dituzten PWM seinaleak sortzeko konfiguratu daitezkeenak. Irteera gisa jardun dezaketen pin guztiak PWM pin gisa erabil daitezke (34 eta 39 GPIOek ezin dute PWM sortu).
PWM seinalea ezartzeko, parametro hauek zehaztu behar dituzu kodean:
- Seinalearen maiztasuna;
- Betebehar-zikloa;
- PWM kanala;
- GPIO seinalea atera nahi duzun tokira.
I2C
ESP32-k bi I2C kanal ditu eta edozein pin SDA edo SCL gisa ezar daiteke. ESP32 Arduino IDEarekin erabiltzean, I2C pin lehenetsiak hauek dira:
- GPIO 21 (SDA)
- GPIO 22 (SCL)
Hari liburutegia erabiltzean beste pin batzuk erabili nahi badituzu, deitu besterik ez duzu egin behar:
Wire.begin(SDA, SCL);
SPI
Lehenespenez, SPIren pin mapaketa hau da:
SPI | MOSI | Miso | CLK | CS |
VSPI | GPIO 23 | GPIO 19 | GPIO 18 | GPIO 5 |
HSPI | GPIO 13 | GPIO 12 | GPIO 14 | GPIO 15 |
interrupzio
GPIO guztiak eten gisa konfigura daitezke.
Uhalak egiteko pinak
ESP32 txipak uhala-pin hauek ditu:
- GPIO 0 (BAXUA izan behar du abio moduan sartzeko)
- GPIO 2 (flotantea edo LOW egon behar du abiaraztean)
- GPIO 4
- GPIO 5 (ALTA izan behar du abiaraztean)
- GPIO 12 (BAXUA izan behar du abioan)
- GPIO 15 (ALTA izan behar du abiaraztean)
Hauek ESP32 abio-kargatzailea edo keinuka moduan jartzeko erabiltzen dira. USB/Serial integratua duten garapen-plak gehienetan, ez duzu pin hauen egoeraz kezkatu beharrik. Plakak pinak egoera egokian jartzen ditu keinuka edo abiarazte moduan. ESP32 Boot Mode Hautaketari buruzko informazio gehiago hemen aurki daiteke.
Hala ere, pin horietara periferikoak konektatuta badituzu, baliteke arazoak izatea kode berria kargatzen saiatzeko, ESP32 firmware berriarekin keinuka edo plaka berrezartzeko. Periferiko batzuk strapping pinetara konektatuta badituzu eta arazoak badituzu kodea kargatzeko edo ESP32 keinuka kentzeko, baliteke periferiko horiek ESP32 modu egokian sartzea eragozten dutelako. Irakurri abio-modua aukeratzeko dokumentazioa norabide egokian gidatzeko. Berrezarri, keinu egin edo abiarazi ondoren, pin horiek espero bezala funtzionatzen dute.
Pinak HIGH Abioan
GPIO batzuek egoera ALTAra aldatzen dute edo PWM seinaleak ateratzen dituzte abioan edo berrezartzean.
Horrek esan nahi du GPIO horiei irteerak konektatuta badituzu espero gabeko emaitzak lor ditzakezula ESP32 berrezarri edo abiarazten denean.
- GPIO 1
- GPIO 3
- GPIO 5
- GPIO 6tik GPIO 11ra (ESP32 integratutako SPI flash memoriara konektatuta - erabiltzea ez da gomendagarria).
- GPIO 14
- GPIO 15
Gaitu (EN)
Gaitu (EN) 3.3 V-ko erregulagailuaren gaitzeko pina da. Altxatuta dago, beraz, konektatu lurrera 3.3 V-ko erregulatzailea desgaitzeko. Horrek esan nahi du sakagailu bati konektatutako pin hau erabil dezakezula zure ESP32 berrabiarazteko, adibidezample.
GPIO korronte marraztuta
GPIO bakoitzeko ateratzen den korronte maximoa 40mA da, ESP32 datu-orrian "Gomendatutako Funtzionamendu Baldintzak" atalean.
ESP32 Hall efektuko sentsore integratua
ESP32-k bere inguruko eremu magnetikoaren aldaketak detektatzen dituen hall efektuko sentsore bat ere badu
ESP32 Arduino IDE
Arduino IDErako gehigarri bat dago, ESP32 Arduino IDEa eta bere programazio-lengoaia erabiliz programatzeko aukera ematen duena. Tutorial honetan ESP32 plaka Arduino IDEn nola instalatu erakutsiko dizugu Windows, Mac OS X edo Linux erabiltzen ari zaren ala ez.
Baldintzak: Arduino IDE instalatuta
Instalazio prozedura hau hasi aurretik, Arduino IDE instalatuta eduki behar duzu zure ordenagailuan. Arduino IDEaren bi bertsio instala ditzakezu: 1. bertsioa eta 2. bertsioa.
Arduino IDE deskargatu eta instalatu dezakezu hurrengo estekan klik eginez: arduino.cc/eu/Main/Software
Zein Arduino IDE bertsio gomendatzen dugu? Momentuz, badira batzuk plugins ESP32rako (SPIFFS bezala Filesystem Uploader Plugin) oraindik Arduino 2-n onartzen ez direnak. Beraz, etorkizunean SPIFFS plugina erabiltzeko asmoa baduzu, 1.8.X bertsio tradizionala instalatzea gomendatzen dugu. Arduino software-orrian behera korritu besterik ez duzu behar aurkitzeko.
ESP32 gehigarria instalatzea Arduino IDE-n
ESP32 plaka zure Arduino IDEan instalatzeko, jarraitu hurrengo argibide hauek:
- Zure Arduino IDEan, joan hona File> Hobespenak
- Sartu honako hau "Kontseiluaren kudeatzaile gehigarria URLs” eremua:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Ondoren, egin klik "Ados" botoian:Oharra: dagoeneko ESP8266 plakak badituzu URL, bereiz dezakezu URLs koma batekin, honela:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Ireki Boards Manager. Joan Tresnak > Arbela > Taulen kudeatzailea...Bilatu ESP32 and press install button for the “ESP32 by Espressif Systems“:
Horixe da. Segundo gutxiren buruan instalatu behar da.
Kargatu proba kodea
Konektatu ESP32 plaka ordenagailura. Zure Arduino IDE irekita dagoela, jarraitu urrats hauek:
- Hautatu zure taula Tresnak > Arbel menuan (nire kasuan ESP32 DEV Modulua da)
- Hautatu Portua (ez baduzu COM Portua ikusten zure Arduino IDEan, CP210x USB to UART Bridge VCP Drivers instalatu behar duzu):
- Ireki hurrengo adibideaample azpian File > Adibamples > WiFi
(ESP32) > WiFiScan - Zirriborro berri bat irekiko da zure Arduino IDEan:
- Sakatu Arduino IDEan Kargatu botoia. Itxaron segundo batzuk kodea konpilatzen eta zure taulara kargatzen den bitartean.
- Dena espero bezala joan bada, "Kargatzen amaitu" agertu beharko zenuke. mezua.
- Ireki Arduino IDE serieko monitorea 115200 baud-tasa batean:
- Sakatu ESP32 barneko Gaitu botoia eta zure ESP32tik gertu dauden sareak ikusi beharko zenuke:
Arazoak konpontzea
Zure ESP32-ra zirriborro berri bat kargatzen saiatzen bazara eta errore-mezu hau jasotzen baduzu "Errore larri bat gertatu da: huts egin du ESP32-ra konektatu: denbora-muga gainditu da... Konektatzen...". Horrek esan nahi du zure ESP32 ez dagoela keinuka/kargatze moduan.
Taularen izen egokia eta COM por hautatuta, jarraitu urrats hauek:
Eduki sakatuta "BOOT" botoia zure ESP32 taulako
- Sakatu Arduino IDEko "Kargatu" botoia zure zirriborroa igotzeko:
- "Konektatzen..." ikusi ondoren mezua zure Arduino IDEan, askatu hatza "BOOT" botoitik:
- Horren ostean, "Kargatzen amaitu" mezua ikusi beharko zenuke
Horixe da. Zure ESP32-k zirriborro berria martxan izan beharko luke. Sakatu "GAITU" botoia ESP32 berrabiarazteko eta kargatutako zirriborro berria exekutatu.
Botoien sekuentzia hori ere errepikatu beharko duzu zirriborro berri bat kargatu nahi duzun bakoitzean.
1. proiektua ESP32 Sarrerak Irteerak
Hasierako gida honetan botoi-etengailu bat bezalako sarrera digitalak irakurtzen ikasiko duzu eta irteera digitalak kontrolatzen LED bat bezala, ESP32 erabiliz Arduino IDEarekin.
Aurrebaldintzak
ESP32 programatuko dugu Arduino IDE erabiliz. Beraz, ziurtatu ESP32 plaken gehigarria instalatuta duzula jarraitu aurretik:
- ESP32 gehigarria instalatzea Arduino IDE-n
ESP32 Kontroleko Irteera Digitalak
Lehenik eta behin, kontrolatu nahi duzun GPIO IRTEERA gisa ezarri behar duzu. Erabili pinMode() funtzioa honela:
pinMode (GPIO, IRTEERA);
Irteera digital bat kontrolatzeko digitalWrite() funtzioa erabili behar duzu, argumentu gisa onartzen dituena, aipatzen ari zaren GPIO (int zenbakia) eta egoera, HIGH edo LOW.
digitalWrite(GPIO, ESTATU);
GPIO guztiak irteera gisa erabil daitezke GPIO 6tik 11ra (SPI flash integratura konektatuta) eta GPIO 34, 35, 36 eta 39 (sarrera soilik GPIOak) izan ezik;
Lortu informazio gehiago ESP32 GPIOei buruz: ESP32 GPIO Erreferentzia Gida
ESP32 Irakurri sarrera digitalak
Lehenik eta behin, ezarri irakurri nahi duzun GPIO INPUT gisa, pinMode() funtzioa honela erabiliz:
pinMode (GPIO, INPUT);
Sarrera digital bat irakurtzeko, botoi bat bezala, digitalRead() funtzioa erabiltzen duzu, argumentu gisa onartzen duena, aipatzen ari zaren GPIO (int zenbakia).
Irakurketa digitala (GPIO);
ESP32 GPIO guztiak sarrera gisa erabil daitezke, 6tik 11ra bitarteko GPIOak izan ezik (SPI flash integratura konektatuta).
Lortu informazio gehiago ESP32 GPIOei buruz: ESP32 GPIO Erreferentzia Gida
Proiektua Adibample
Sarrera digitalak eta irteera digitalak nola erabiltzen erakusteko, proiektu sinple bat eraikiko dugu adibidezample botoi batekin eta LED batekin. Pultsagailuaren egoera irakurriko dugu eta horren arabera piztuko dugu LEDa hurrengo irudian azaltzen den moduan.
Beharrezko piezak
Hona hemen zirkuitua eraikitzeko behar dituzun zatien zerrenda:
- ESP32 DEVKIT V1
- 5 mm-ko LEDa
- 220 Ohm-ko erresistentzia
- Botoia
- 10k Ohm erresistentzia
- Breadboard
- Jumper hariak
Diagrama eskematikoa
Aurrera egin aurretik, LED eta botoi batekin zirkuitu bat muntatu behar duzu.
LEDa GPIO 5era konektatuko dugu eta sakagailua GPIOra 4.Kodea
Ireki Project_1_ESP32_Inputs_Outputs.ino kodea arduino IDEanKodeak nola funtzionatzen duen
Hurrengo bi lerroetan, aldagaiak sortzen dituzu pinak esleitzeko:
Botoia GPIO 4-ra konektatuta dago eta LEDa GPIO 5-ra konektatuta dago. Arduino IDEa ESP32-rekin erabiltzean, 4 GPIO 4-ri dagokio eta 5 GPIO 5-ri dagokio.
Ondoren, aldagai bat sortzen duzu botoiaren egoerari eusteko. Lehenespenez, 0 da (ez da sakatuta).
int buttonState = 0;
Konfigurazioan(), botoia INPUT gisa hasieratzen duzu eta LEDa IRTEERA gisa.
Horretarako, aipatzen ari zaren pina onartzen duen pinMode() funtzioa eta modua: INPUT edo OUTPUT erabiltzen dituzu.
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
Loop() botoiaren egoera irakurtzen duzu eta horren arabera ezartzen duzu LEDa.
Hurrengo lerroan, botoiaren egoera irakurri eta buttonState aldagaian gordeko duzu.
Aurretik ikusi dugun bezala, digitalRead() funtzioa erabiltzen duzu.
buttonState = digitalRead(buttonPin);
Hurrengo if adierazpenak botoiaren egoera ALTA den egiaztatzen du. Hala bada, LED-a pizten du ledPin eta HIGH egoera argumentu gisa onartzen duen digitalWrite() funtzioa erabiliz.
bada (buttonState == HIGH)Botoiaren egoera ALTA ez bada, LEDa itzali egiten duzu. Ezarri LOW bigarren argumentu gisa digitalWrite() funtzioan.
Kodea igotzea
Kargatzeko botoia sakatu aurretik, joan Tresnak > Taula atalera eta hautatu taula: DOIT ESP32 DEVKIT V1 plaka.
Joan Tresnak > Portua eta hautatu ESP32 konektatuta dagoen COM ataka. Ondoren, sakatu kargatzeko botoia eta itxaron "Kargatzen amaitu" mezua arte.Oharra: puntu asko ikusten badituzu (konektatzen…__…__) arazketa-leihoan eta “Huts egin du ESP32-ra konektatzean: denbora-muga amaitu da paketeen goiburuaren zain” mezua, horrek esan nahi du ESP32 barneko BOOT sakatu behar duzula. botoia puntuen ondoren
agertzen hasi.Arazoak konpontzea
Erakustaldia
Kodea igo ondoren, probatu zure zirkuitua. Zure LED-a piztu behar da sakagailua sakatzen duzunean:Eta itzali askatzen duzunean:
2. proiektua ESP32 Sarrera analogikoak
Proiektu honek ESP32-rekin sarrera analogikoak nola irakurri erakusten du Arduino IDE erabiliz.
Irakurketa analogikoa erabilgarria da potentziametroak edo sentsore analogikoak bezalako erresistentzia aldakorren balioak irakurtzeko.
Sarrera analogikoak (ADC)
ESP32-rekin balio analogikoa irakurtzeak bolumen desberdinak neur ditzakezula esan nahi dutag0 V eta 3.3 V bitarteko e mailak.
LiburukiatagNeurtutakoa 0 eta 4095 arteko balio bati esleitzen zaio gero, zeinetan 0 V 0 eta 3.3 V 4095. Edozein vol.tag0 V eta 3.3 V bitarteko e-k tartean dagokion balioa emango zaio.ADC ez-lineala da
Egokiena, portaera lineala espero zenuke ESP32 ADC pinak erabiltzean.
Hala ere, ez da hori gertatzen. Lortuko duzuna hurrengo taulan erakusten den portaera bat da:Jokabide honek esan nahi du zure ESP32 ezin dela 3.3 V eta 3.2 V bereizteko gai.
Balio bera lortuko duzu bi liburukietarakotaghau: 4095.
Gauza bera gertatzen da bolumen oso baxuarekintage balioak: 0 V eta 0.1 V-rako balio bera lortuko duzu: 0. Hau kontuan izan behar duzu ESP32 ADC pinak erabiltzean.
analogRead() Funtzioa
Arduino IDE erabiliz ESP32-rekin sarrera analogiko bat irakurtzea analogRead() funtzioa erabiltzea bezain erraza da. Argudio gisa onartzen du irakurri nahi duzun GPIOa:
analogRead(GPIO);
15 bakarrik daude eskuragarri DEVKIT V1board-en (30 GPIO dituen bertsioa).
Hartu zure ESP32 plaka pinout eta kokatu ADC pinak. Hauek ertz gorri batekin nabarmentzen dira beheko irudian.Sarrera analogikoko pin hauek 12 biteko bereizmena dute. Horrek esan nahi du sarrera analogiko bat irakurtzen duzunean, bere barrutia 0tik 4095era alda daitekeela.
Oharra: ADC2 pinak ezin dira erabili Wi-Fi erabiltzen denean. Beraz, Wi-Fi erabiltzen ari bazara eta ADC2 GPIO baten balioa lortzeko arazoak badituzu, baliteke ADC1 GPIO bat erabiltzea ordez, horrek zure arazoa konpondu beharko luke.
Dena nola lotzen den ikusteko, adibide sinple bat egingo duguample potentziometro batetik balio analogikoa irakurtzeko.
Beharrezko piezak
Honetarako adibidezample, zati hauek behar dituzu:
- ESP32 DEVKIT V1 plaka
- Potentiometer
- Breadboard
- Jumper hariak
schematic
Kableatu potentziometro bat zure ESP32ra. Potentziometroaren erdiko pina GPIO 4ra konektatu behar da. Erreferentzia gisa hurrengo eskema-diagrama erabil dezakezu.Kodea
ESP32 Arduino IDE erabiliz programatuko dugu, beraz, ziurtatu ESP32 gehigarria instalatuta duzula jarraitu aurretik: (Urrats hau egin baduzu, hurrengo urratsera joan zaitezke).
ESP32 gehigarria instalatzea Arduino IDE-n
Ireki Project_2_ESP32_Inputs_Outputs.ino kodea arduino IDEanKode honek potentziometroko balioak irakurtzen ditu eta balio horiek Serial Monitorean inprimatzen ditu.
Kodean, potentziometroa konektatuta dagoen GPIO definitzen hasten zara. Adib honetanample, GPIO 4.Konfigurazioan(), hasieratu serieko komunikazio bat 115200 baud-abiaduran.
Loop(n), erabili analogRead() funtzioa potPin-eko sarrera analogikoa irakurtzeko.
Azkenik, inprimatu potentziometrotik irakurritako balioak serieko monitorean.
Kargatu zure ESP32-ra emandako kodea. Ziurtatu Tresnak menuan taula egokia eta COM ataka hautatuta duzula.
Adibample
Kodea igo eta ESP32 berrezartzeko botoia sakatu ondoren, ireki Serieko Monitorea 115200 baud-tasa batean. Biratu potentziometroa eta ikusi balioak aldatzen.Lortuko duzun balio maximoa 4095 da eta gutxieneko balioa 0.
Biltzea
Artikulu honetan sarrera analogikoak nola irakurtzen ikasi duzu ESP32 erabiliz Arduino IDEarekin. Laburbilduz:
- ESP32 DEVKIT V1 DOIT plakak (30 pin dituen bertsioa) sarrera analogikoak irakurtzeko erabil ditzakezun 15 ADC pin ditu.
- Pin hauek 12 biteko bereizmena dute, hau da, 0 eta 4095 arteko balioak lor ditzakezu.
- Arduino IDEan balio bat irakurtzeko, analogRead() funtzioa besterik ez duzu erabili.
- ESP32 ADC pinek ez dute portaera lineal bat. Seguruenik, ezin izango dituzu 0 eta 0.1V artean bereizi, edo 3.2 eta 3.3V artean. Hori kontuan izan behar duzu ADC pinak erabiltzean.
Project 3 ESP32 PWM (Irteera analogikoa)
Tutorial honetan PWM seinaleak nola sortu ESP32-rekin Arduino IDE erabiliz erakutsiko dizugu. ExampLED bat iluntzen duen zirkuitu sinple bat eraikiko dugu ESP32-ren LED PWM kontroladorearekin.ESP32 LED PWM kontrolagailua
ESP32-k LED PWM kontroladore bat du 16 kanal independente dituena, propietate ezberdinekin PWM seinaleak sortzeko konfiguratu daitekeena.
Hona hemen Arduino IDE erabiliz PWM duen LED bat itzaltzeko jarraitu beharko dituzun urratsak:
- Lehenik eta behin, PWM kanal bat aukeratu behar duzu. 16tik 0era 15 kanal daude.
- Ondoren, PWM seinalearen maiztasuna ezarri behar duzu. LED batentzat, 5000 Hz-ko maiztasuna ondo dago erabiltzeko.
- Seinalearen funtzio-zikloaren bereizmena ere ezarri behar duzu: 1 eta 16 bit arteko bereizmenak dituzu. 8 biteko bereizmena erabiliko dugu, hau da, LED distira kontrola dezakezu 0tik 255era bitarteko balioa erabiliz.
- Ondoren, seinalea zein GPIO edo GPIOtan agertuko den zehaztu behar duzu. Horretarako funtzio hau erabiliko duzu:
ledcAttachPin (GPIO, kanala)
Funtzio honek bi argumentu onartzen ditu. Lehenengoa seinalea aterako duen GPIO da, eta bigarrena seinalea sortuko duen kanala. - Azkenik, LED distira PWM erabiliz kontrolatzeko, funtzio hau erabiltzen duzu:
ledcWrite(kanal, dutycycle)
Funtzio honek argumentu gisa onartzen ditu PWM seinalea sortzen ari den kanala eta betebehar-zikloa.
Beharrezko piezak
Tutorial hau jarraitzeko zati hauek behar dituzu:
- ESP32 DEVKIT V1 plaka
- 5 mm-ko LEDa
- 220 Ohm-ko erresistentzia
- Breadboard
- Jumper hariak
schematic
Kableatu LED bat zure ESP32ra hurrengo diagrama eskematikoan bezala. LEDa GPIOra konektatuta egon behar da 4.Oharra: nahi duzun pin erabil dezakezu, betiere irteera gisa jarduteko. Irteera gisa jardun dezaketen pin guztiak PWM pin gisa erabil daitezke. ESP32 GPIOei buruzko informazio gehiago lortzeko, irakurri: ESP32 Pinout Erreferentzia: Zein GPIO pin erabili behar dituzu?
Kodea
ESP32 Arduino IDE erabiliz programatuko dugu, beraz, ziurtatu ESP32 gehigarria instalatuta duzula jarraitu aurretik: (Urrats hau egin baduzu, hurrengo urratsera joan zaitezke).
ESP32 gehigarria instalatzea Arduino IDE-n
Ireki Project_3_ESP32_PWM.ino kodea arduino IDE-nLEDa lotzen den pin definitzen hasten zara. Kasu honetan LEDa GPIO 4-ra lotuta dago.
Ondoren, PWM seinalearen propietateak ezarri dituzu. 5000 Hz-ko maiztasuna definitzen duzu, seinalea sortzeko 0 kanala aukeratu eta 8 biteko bereizmena ezartzen duzu. Beste propietate batzuk aukeratu ditzakezu, hauek ez direnak, PWM seinale desberdinak sortzeko.
Konfigurazioan(), LED PWM konfiguratu behar duzu lehenago definitu dituzun propietateekin argumentu gisa onartzen dituen ledcSetup() funtzioa erabiliz, ledChannel, maiztasuna eta bereizmena, honela:
Ondoren, seinalea jasoko duzun GPIO aukeratu behar duzu. Horretarako erabili ledcAttachPin() funtzioa, seinalea lortu nahi duzun GPIOa eta seinalea sortzen ari den kanala argumentu gisa onartzen dituena. Adib honetanample, seinalea ledPin GPIOan jasoko dugu, GPIO 4ri dagokiona. Seinalea sortzen duen kanala ledChannel da, 0 kanalari dagokiona.
Begizta, betebehar-zikloa 0 eta 255 artean aldatuko duzu LED distira handitzeko.
Eta gero, 255 eta 0 artean distira gutxitzeko.
LEDaren distira ezartzeko, seinalea sortzen ari den kanala eta betebehar-zikloa argumentu gisa onartzen dituen ledcWrite() funtzioa besterik ez duzu erabili.
8 biteko bereizmena erabiltzen ari garenez, lan-zikloa 0tik 255era bitarteko balio bat erabiliz kontrolatuko da. Kontuan izan ledcWrite() funtzioan seinalea sortzen ari den kanala erabiltzen dugula, eta ez GPIO.
Adibample
Kargatu kodea zure ESP32ra. Ziurtatu plaka egokia eta COM ataka hautatuta duzula. Begira zure zirkuitua. Distira handitu eta murrizten duen LED dimmer bat izan beharko zenuke.
4. proiektua ESP32 PIR Mugimendu-sentsorea
Proiektu honek ESP32-rekin mugimendua nola detektatu erakusten du PIR mugimendu-sentsore bat erabiliz. Burrunbagailuak alarma bat joko du mugimendua hautematen denean, eta alarma geldituko da aurrez ezarritako denbora batean mugimendurik hautematen ez denean (adibidez, 4 segundo).
Nola funtzionatzen duen HC-SR501 mugimendu-sentsoreak
.HC-SR501 sentsorearen funtzionamendu-printzipioa mugitzen den objektuaren erradiazio infragorriaren aldaketan oinarritzen da. HC-SR501 sentsoreak detektatzeko, objektuak bi baldintza bete behar ditu:
- Objektua modu infragorria igortzen ari da.
- Objektua mugitzen edo dardar egiten ari da
Beraz:
Objektu bat izpi infragorria igortzen ari bada baina ez da mugitzen (adibidez, pertsona bat geldirik gelditzen da mugitu gabe), ez du sentsoreak detektatzen.
Objektu bat mugitzen ari bada baina ez badu izpi infragorririk igortzen (adibidez, robota edo ibilgailua), sentsoreak EZ du hautematen.
Tenporizadoreak aurkezten
Adib honetanamptenporizadoreak ere aurkeztuko ditugu. Mugimendua hauteman ondoren LED-a piztuta egotea nahi dugu aldez aurretik zehaztutako segundo kopuru batean. Zure kodea blokeatzen duen eta segundo kopuru jakin batean beste ezer egiten uzten ez dizun atzerapen () funtzio bat erabili beharrean, tenporizadore bat erabili beharko genuke.Delay() funtzioa
Delay() funtzioa ezagutu beharko zenuke, oso erabilia baita. Funtzio hau erabiltzeko nahiko erraza da. Int zenbaki bakar bat onartzen du argumentu gisa.
Zenbaki honek programak hurrengo kode lerrora pasa arte itxaron behar duen milisegundotan adierazten du.Delay(1000) egiten duzunean zure programa lerro horretan gelditzen da segundo 1ez.
delay() blokeo funtzio bat da. Blokeatze-funtzioek programa bati beste ezer egitea eragozten diote zeregin jakin hori amaitu arte. Hainbat ataza aldi berean egiteko behar badituzu, ezin duzu delay() erabili.
Proiektu gehienetarako atzerapenak erabiltzea saihestu beharko zenuke eta tenporizadoreak erabili beharrean.
millis() funtzioa
Millis() izeneko funtzioa erabiliz programa hasi zenetik igaro diren milisegundo kopurua itzul dezakezu.Zergatik da erabilgarria funtzio hori? Matematika batzuk erabiliz, erraz egiaztatu dezakezu zenbat denbora igaro den zure kodea blokeatu gabe.
Beharrezko piezak
Tutorial hau jarraitzeko ondorengo zatiak behar dituzu
- ESP32 DEVKIT V1 plaka
- PIR mugimendu-sentsorea (HC-SR501)
- Buzzer aktiboa
- Jumper hariak
- Breadboard
schematicOharra: Lan-liburuatagHC-SR501-ren e 5V da. Erabili Vin pina elikatzeko.
Kodea
Tutorial honekin jarraitu aurretik, zure Arduino IDEan ESP32 gehigarria instalatu beharko zenuke. Jarraitu tutoretza hauetako bat Arduino IDEan ESP32 instalatzeko, oraindik ez baduzu. (Urrats hau egin baduzu, hurrengo urratsera joan zaitezke).
ESP32 gehigarria instalatzea Arduino IDE-n
Ireki Project_4_ESP32_PIR_Motion_Sensor.ino kodea arduino IDEan.
Erakustaldia
Kargatu kodea zure ESP32 taulara. Ziurtatu plaka egokia eta COM ataka hautatuta duzula. Kargatu kodearen erreferentzia-urratsak.
Ireki Serial Monitor 115200 baud-tasa batean.Mugitu eskua PIR sentsorearen aurrean. Burrunbagailua piztu behar da, eta mezua inprimatzen da Serial Monitorean "Motion detected! Buzzer alarm" esanez.
4 segundo igaro ondoren, burrunbagailua itzali behar da.
Project 5 ESP32 Switch Web Zerbitzaria
Proiektu honetan autonomo bat sortuko duzu web Irteerak (bi LED) kontrolatzen dituen ESP32 zerbitzaria Arduino IDE programazio ingurunea erabiliz. The web zerbitzariak mugikorretarako erantzuten du eta sare lokaleko arakatzaile gisa edozein gailurekin sar daiteke. Nola sortu erakutsiko dizugu web zerbitzaria eta kodea nola funtzionatzen duen urratsez urrats.
Proiektua amaitu daview
Zuzenean proiektura joan aurretik, garrantzitsua da zehaztea zer gure web zerbitzariak egingo du, gero urratsak jarraitzea errazagoa izan dadin.
- The web zerbitzaria ESP32 GPIO 26 eta GPIO 27ra konektatutako bi LED kontrolatzen dituzu;
- ESP32ra sar zaitezke web zerbitzaria sare lokaleko arakatzaile batean ESP32 IP helbidea idatziz;
- Zure botoietan klik eginez web zerbitzaria LED bakoitzaren egoera berehala alda dezakezu.
Beharrezko piezak
Tutorial honetarako zati hauek beharko dituzu:
- ESP32 DEVKIT V1 plaka
- 2x 5mm LED
- 2 x 200 Ohm erresistentzia
- Breadboard
- Jumper hariak
schematic
Hasi zirkuitua eraikitzen. Konektatu bi LED ESP32-ra hurrengo diagrama eskematikoan erakusten den moduan: LED bat GPIO 26-ra konektatuta, eta bestea GPIO 27-ra.
Oharra: 32 pin dituen ESP36 DEVKIT DOIT plaka erabiltzen ari gara. Zirkuitua muntatu aurretik, ziurtatu erabiltzen ari zaren plakaren pinout-a egiaztatu duzula.Kodea
Hemen ESP32 sortzen duen kodea ematen dugu web zerbitzaria. Ireki kodea Project_5_ESP32_Switch _Web_Server.ino arduino IDEan, baina ez kargatu oraindik. Aldaketa batzuk egin behar dituzu zuretzako funtziona dezan.
ESP32 Arduino IDE erabiliz programatuko dugu, beraz, ziurtatu ESP32 gehigarria instalatuta duzula jarraitu aurretik: (Urrats hau egin baduzu, hurrengo urratsera joan zaitezke).
ESP32 gehigarria instalatzea Arduino IDE-n
Zure sareko kredentzialak ezartzea
Lerro hauek aldatu behar dituzu sareko kredentzialekin: SSID eta pasahitza. Kodea ondo komentatuta dago aldaketak non egin behar dituzun.Kodea igotzea
Orain, kodea igo dezakezu eta eta web zerbitzariak berehala funtzionatuko du.
Jarraitu hurrengo urratsei kodea ESP32ra kargatzeko:
- Konektatu zure ESP32 plaka zure ordenagailuan;
- Arduino IDEan hautatu zure plaka Tresnak > Plaka (gure kasuan ESP32 DEVKIT DOIT plaka erabiltzen ari gara);
- Hautatu COM ataka Tresnak > Portua atalean.
- Sakatu Arduino IDEan Kargatu botoia eta itxaron segundo batzuk kodea konpilatzen eta kargatzen den bitartean.
- Itxaron "Kargatzen amaitu" mezua arte.
ESP IP helbidea aurkitzea
Kodea kargatu ondoren, ireki Serial Monitor 115200 baud-tasa batean.Sakatu ESP32 EN botoia (berrezarri). ESP32 Wi-Fira konektatzen da eta ESP IP helbidea ateratzen du Serieko Monitorean. Kopiatu IP helbide hori, behar duzulako ESP32ra sartzeko web zerbitzaria.
Sartzea Web Zerbitzaria
Atzitzeko web zerbitzaria, ireki arakatzailea, itsatsi ESP32 IP helbidea eta hurrengo orria ikusiko duzu.
Oharra: Zure arakatzailea eta ESP32 LAN berera konektatuta egon behar dute.Serieko monitoreari begirada bat ematen badiozu, atzeko planoan zer gertatzen ari den ikus dezakezu. ESPak bezero berri baten HTTP eskaera jasotzen du (kasu honetan, zure arakatzailea).
HTTP eskaerari buruzko beste informazio bat ere ikus dezakezu.
Erakustaldia
Orain proba dezakezu zure web zerbitzaria behar bezala dabil. Egin klik botoietan LEDak kontrolatzeko.Aldi berean, serieko monitoreari begirada bat eman dezakezu atzeko planoan zer gertatzen den ikusteko. Adibidezample, GPIO 26 aktibatzeko botoia sakatzen duzunean, ESP32-k eskaera bat jasotzen du /26/on URL.
ESP32-k eskaera hori jasotzen duenean, GPIO 26-ri atxikitako LEDa pizten du eta bere egoera eguneratzen du. web orrialdea.
GPIO 27ren botoiak antzeko moduan funtzionatzen du. Probatu behar bezala funtzionatzen duela.
Kodeak nola funtzionatzen duen
Atal honetan kodea sakonago aztertuko dugu nola funtzionatzen duen ikusteko.
Egin behar duzun lehenengo gauza WiFi liburutegia sartzea da.Lehen esan bezala, zure ssid eta pasahitza sartu behar dituzu hurrengo lerroetan komatxo bikoitzen barruan.
Ondoren, ezarri duzu zure web zerbitzaria 80 atakara.
Hurrengo lerroak aldagai bat sortzen du HTTP eskaeraren goiburua gordetzeko:
Ondoren, aldagai laguntzaileak sortzen dituzu zure irteeraren uneko egoera gordetzeko. Irteera gehiago gehitu eta bere egoera gorde nahi baduzu, aldagai gehiago sortu behar dituzu.
Zure irteera bakoitzari GPIO bat ere esleitu behar diozu. Hemen GPIO 26 eta GPIO 27 erabiltzen ari gara. Beste edozein GPIO egoki erabil dezakezu.
konfiguratu()
Orain, goazen konfiguraziora (). Lehenik eta behin, serieko komunikazio bat hasten dugu 115200 baud-abiaduran arazketa helburuetarako.Zure GPIOak IRTEERA gisa ere definitzen dituzu eta LOW moduan ezartzen dituzu.
Hurrengo lerroek WiFi konexioa hasten dute WiFi.begin(ssid, pasahitza), itxaron konexio arrakastatsua izan arte eta inprimatu ESP IP helbidea Serieko Monitorean.
begizta()
Loop()-n bezero berri batek konexioa ezartzen duenean zer gertatzen den programatzen dugu web zerbitzaria.
ESP32 beti entzuten ari da sarrerako bezeroak hurrengo lerroarekin:Bezero baten eskaera jasotzen denean, sarrerako datuak gordeko ditugu. Jarraian datorren while begizta martxan egongo da bezeroak konektatuta jarraitzen duen bitartean. Ez dugu gomendatzen kodearen hurrengo zatia aldatzea zertan ari zaren zehatz-mehatz jakin ezean.
If eta else adierazpenen hurrengo atalak zurekin zein botoi sakatu den egiaztatzen du web orrialdea, eta horren arabera irteerak kontrolatzen ditu. Aurretik ikusi dugun bezala, eskaera bat egiten dugu ezberdinetan URLs sakatutako botoiaren arabera.
Adibidezample, GPIO 26 ON botoia sakatu baduzu, ESP32-k eskaera bat jasoko du /26/ON URL (Informazio hori Serial Monitoreko HTTP goiburuan ikus dezakegu). Beraz, goiburuak GET /26/on adierazpena duen egiaztatu dezakegu. Badauka, output26state aldagaia ON-era aldatzen dugu, eta ESP32-ak LEDa pizten du.
Horrek antzera funtzionatzen du beste botoiekin. Beraz, irteera gehiago gehitu nahi badituzu, kodearen zati hau aldatu beharko zenuke haiek sartzeko.
HTMLa bistaratzen web orrialdea
Egin behar duzun hurrengo gauza bat sortzea da web orrialdea. ESP32-k erantzun bat bidaliko dio zure arakatzaileari HTML kode batekin eraikitzeko web orrialdea.
The web orria bezeroari bidaltzen zaio client.println() adierazle hau erabiliz. Bezeroari bidali nahi duzuna argumentu gisa sartu beharko zenuke.
Bidali behar dugun lehenengo gauza hurrengo lerroa da beti, HTML bidaltzen ari garela adierazten duena.Ondoren, hurrengo lerroak egiten du web orrialdea edozeinetan erantzuteko web arakatzailea.
Eta honako hau erabiltzen da favicon-en eskaerak saihesteko. – Ez duzu lerro honetaz kezkatu behar.
Estilizazioa Web Orria
Ondoren, CSS testu batzuk ditugu botoiak eta estiloa jartzeko web orrialdearen itxura.
Helvetica letra-tipoa aukeratzen dugu, bloke gisa bistaratu eta erdigunean lerrokatuko den edukia definitzen dugu.Gure botoiak #4CAF50 kolorearekin estilizatuko ditugu, ertzarik gabe, kolore zuriko testua, eta betegarri honekin: 16px 40px. Testu-apainketa bat ere ezarri dugu, letra-tamaina, marjina eta kurtsorea erakusle batean definitzen ditugu.
Bigarren botoi baten estiloa ere definitzen dugu, lehenago definitu ditugun botoiaren propietate guztiekin, baina beste kolore batekin. Hau izango da itzaltzeko botoiaren estiloa.
Ezartzea Web Orriaren lehen goiburua
Hurrengo lerroan zure lehen goiburua ezar dezakezu web orrialdea. Hemen dugu “ESP32 Web Zerbitzaria”, baina testu hau nahi duzunera alda dezakezu.Botoiak eta dagozkion egoera bistaratzea
Ondoren, paragrafo bat idazten duzu GPIO 26ren uneko egoera bistaratzeko. Ikus dezakezunez output26State aldagaia erabiltzen dugu, aldagai hau aldatzen denean egoera berehala eguneratu dadin.Ondoren, pizteko edo itzaltzeko botoia bistaratuko dugu, GPIOaren uneko egoeraren arabera. GPIOren uneko egoera itzalita badago, ON botoia erakusten dugu, ez bada, OFF botoia bistaratuko dugu.
Prozedura bera erabiltzen dugu GPIO 27rako.
Konexioa ixtea
Azkenik, erantzuna amaitzen denean, goiburuko aldagaia garbitzen dugu, eta bezeroarekiko konexioa eten dugu client.stop() bidez.
Biltzea
Tutorial honetan bat nola eraiki erakutsi dizugu web zerbitzaria ESP32rekin. Adibide sinple bat erakutsi dizuguampbi LED kontrolatzen dituen le, baina ideia LED horiek errele batekin ordezkatzea da, edo kontrolatu nahi duzun beste edozein irteerarekin.
Project 6 RGB LED Web Zerbitzaria
Proiektu honetan ESP32 plaka batekin RGB LED bat urrunetik kontrolatzen erakutsiko dizugu a erabiliz web kolore-hautatzaile batekin zerbitzaria.
Proiektua amaitu daview
Hasi aurretik, ikus dezagun nola funtzionatzen duen proiektu honek:
- ESP32 web zerbitzariak kolore-hautatzailea erakusten du.
- Kolore bat aukeratzen duzunean, zure nabigatzaileak eskaera bat egiten du a URL hautatutako kolorearen R, G eta B parametroak dituena.
- Zure ESP32-k eskaera jasotzen du eta kolore-parametro bakoitzaren balioa zatitzen du.
- Ondoren, PWM seinalea bidaltzen die dagokion balioarekin RGB LEDa kontrolatzen ari diren GPIOei.
Nola funtzionatzen dute RGB LEDek?
RGB LED katodo arrunt batean, hiru LEDek konexio negatibo bat (katodoa) partekatzen dute. Kitan sartzen diren guztiak katodo arrunteko RGB dira.Nola sortu kolore desberdinak?
RGB LED batekin, noski, argi gorria, berdea eta urdina ekoiztu ditzakezu, eta LED bakoitzaren intentsitatea konfiguratuz, beste kolore batzuk ere sor ditzakezu.
AdibidezampArgi urdin hutsa sortzeko, LED urdina intentsitate handienean ezarriko zenuke eta LED berdea eta gorriak intentsitate baxuenean. Argi zuri baterako, hiru LEDak intentsitate handienera ezarriko dituzu.
Koloreak nahastea
Beste kolore batzuk ekoizteko, hiru koloreak intentsitate ezberdinetan konbina ditzakezu. LED bakoitzaren intentsitatea doitzeko PWM seinalea erabil dezakezu.
LEDak elkarrengandik oso hurbil daudenez, gure begiek koloreen konbinazioaren emaitza ikusten dute, hiru koloreak banan-banan baino.
Koloreak konbinatzeko ideia bat izateko, begiratu hurrengo taulari.
Hau da koloreak nahasteko taula errazena, baina nola funtzionatzen duen eta kolore desberdinak nola ekoizteko ideia bat ematen dizu.Beharrezko piezak
Proiektu honetarako zati hauek behar dituzu:
- ESP32 DEVKIT V1 plaka
- RGB LED
- 3 x 220 ohm erresistentzia
- Jumper hariak
- Breadboard
schematicKodea
ESP32 Arduino IDE erabiliz programatuko dugu, beraz, ziurtatu ESP32 gehigarria instalatuta duzula jarraitu aurretik: (Urrats hau egin baduzu, hurrengo urratsera joan zaitezke).
- ESP32 gehigarria instalatzea Arduino IDE-n
Zirkuitua muntatu ondoren, ireki kodea
Proiektua_6_RGB_LED_Web_Server.ino arduino IDEan.
Kodea igo aurretik, ez ahaztu sareko kredentzialak txertatzea, ESP-a zure sare lokalera konektatu ahal izateko.Kodeak nola funtzionatzen duen
ESP32 krokisak WiFi.h liburutegia erabiltzen du.Hurrengo lerroek kate-aldagaiak definitzen dituzte eskaerako R, G eta B parametroak edukitzeko.
Hurrengo lau aldagaiak HTTP eskaera deskodetzeko erabiltzen dira geroago.
Sortu hiru aldagai R, G eta B parametroak kontrolatuko dituzten GPIOetarako. Kasu honetan GPIO 13, GPIO 12 eta GPIO 14 erabiltzen ari gara.
GPIO hauek PWM seinaleak atera behar dituzte, beraz, PWM propietateak konfiguratu behar ditugu lehenik. Ezarri PWM seinalearen maiztasuna 5000 Hz-ra. Ondoren, lotu PWM kanal bat kolore bakoitzeko
Eta azkenik, ezarri PWM kanalen bereizmena 8 biteko
Konfigurazioan(), esleitu PWM propietateak PWM kanalei
Lotu PWM kanalak dagozkien GPIOei
Hurrengo kode-atalak kolore-hautatzailea bistaratzen du zure web orrialdea eta eskaera bat egiten du hautatu duzun kolorearen arabera.
Kolore bat hautatzen duzunean, eskaera bat jasoko duzu formatu honekin.
Beraz, kate hau zatitu behar dugu R, G eta B parametroak lortzeko. Parametroak redString, greenString eta blueString aldagaietan gordetzen dira eta 0 eta 255 bitarteko balioak izan ditzakete.Banda ESP32-rekin kontrolatzeko, erabili ledcWrite() funtzioa HTTP-tik deskodetutako balioekin PWM seinaleak sortzeko. eskaera.
Oharra: Lortu informazio gehiago PWM ESP32-rekin: Project 3 ESP32 PWM (Irteera analogikoa)
ESP8266-rekin banda kontrolatzeko, erabili besterik ez dugu egin behar
analogWrite() funtzioa HTPP eskaeratik deskodetutako balioekin PWM seinaleak sortzeko.
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
Balioak kate-aldagai batean jasotzen ditugunez, zenbaki oso bihurtu behar ditugu toInt() metodoa erabiliz.
Erakustaldia
Zure sareko kredentzialak sartu ondoren, hautatu eskuineko taula eta COM ataka eta kargatu kodea zure ESP32ra. Kargatu kodearen erreferentzia-urratsak.
Kargatu ondoren, ireki Serieko Monitorea 115200 baud-tasa batean eta sakatu ESP Gaitu/Berrezarri botoia. Arbelaren IP helbidea lortu beharko zenuke.Ireki arakatzailea eta sartu ESP IP helbidea. Orain, erabili kolore-hautatzailea RGB LEDrako kolore bat aukeratzeko.
Ondoren, "Aldatu kolorea" botoia sakatu behar duzu koloreak eragina izan dezan.RGB LEDa itzaltzeko, hautatu kolore beltza.
Kolore indartsuenak (kolore-hautatzailearen goialdean), emaitza hobeak emango dituztenak dira.
7. proiektua ESP32 Erreleboa Web Zerbitzaria
ESP32-rekin errele bat erabiltzea AC etxetresna elektrikoak urrunetik kontrolatzeko modu bikaina da. Tutorial honek ESP32-rekin errele modulu bat nola kontrolatu azaltzen du.
Errele modulu batek nola funtzionatzen duen aztertuko dugu, nola konektatu errelea ESP32ra eta nola eraiki. web zerbitzaria errele bat urrunetik kontrolatzeko.
Erreleboak aurkezten
Errele bat elektrikoki funtzionatzen duen etengailu bat da eta beste edozein etengailu bezala, piztu edo itzali daitekeena, korrontea igarotzen utziz edo ez. Bolumen baxuarekin kontrola daiteketages, ESP3.3 GPIOek eskaintzen duten 32V bezalakoa eta bolumen handikoa kontrolatzeko aukera ematen digutag12V, 24V edo sare elektrikoa bezalakoak diratage (230V Europan eta 120V AEBetan).Ezkerreko aldean, hiru entxufeko bi multzo daude bol altuko konektatzekotages, eta eskuinaldean dauden pinak (bolumen baxuatage) ESP32 GPIOetara konektatu.
Mains Voltage KonexioakAurreko argazkian agertzen den errele moduluak bi konektore ditu, bakoitza hiru entxuferekin: komuna (COM), Normalki Itxita (NC) eta Normalki Irekia (NO).
- COM: konektatu kontrolatu nahi duzun korrontea (sareak voltageta).
- NC (Normally Closed): normalean itxitako konfigurazioa errelea lehenespenez itxita egotea nahi duzunean erabiltzen da. NC dira COM pinak konektatuta daude, hau da, korrontea dabil ESP32-tik errele modulura seinale bat bidaltzen ez baduzu zirkuitua irekitzeko eta korronte-fluxua gelditzeko.
- EZ (Normally Open): normalean irekitako konfigurazioak alderantziz funtzionatzen du: NO eta COM pinen artean ez dago konexiorik, beraz zirkuitua hautsita dago, zirkuitua ixteko ESP32tik seinale bat bidali ezean.
Kontrol-pinakBolumen baxuatagAldeak lau pin eta hiru pin multzo ditu. Lehenengo multzoa VCC eta GND-k osatzen dute modulua pizteko, eta 1 sarrera (IN1) eta 2 sarrera (IN2) beheko eta goiko erreleak kontrolatzeko, hurrenez hurren.
Zure errele moduluak kanal bakarra badu, IN pin bakarra izango duzu. Lau kanal badituzu, lau IN pin izango dituzu, eta abar.
IN pinetara bidaltzen duzun seinaleak errelea aktibo dagoen ala ez zehazten du. Errelea abiarazten da sarrera 2V-tik behera jaisten denean. Horrek esan nahi du eszenatoki hauek izango dituzula:
- Normalean itxita konfigurazioa (NC):
- HIGH seinalea - korrontea dabil
- LOW seinalea - korrontea ez da ari
- Normalean irekitako konfigurazioa (EZ):
- HIGH seinalea - korrontea ez da ari
- LOW seinalea - korrontea dabil
Normalean itxitako konfigurazio bat erabili beharko zenuke korrontea gehienetan ibili behar denean, eta noizean behin bakarrik gelditu nahi duzu.
Erabili normalean irekita dagoen konfigurazio bat korrontea noizean behin ibiltzea nahi duzunean (adibidezample, piztu alamp noizean behin).
Elikatze-iturria hautatzeaBigarren pin multzoa GND, VCC eta JD-VCC pinek osatzen dute.
JD-VCC pinak errelearen elektroimana elikatzen du. Kontuan izan moduluak VCC eta JD-VCC pinak konektatzen dituen jumper bat duela; hemen agertzen dena horia da, baina zurea beste kolore batekoa izan daiteke.
Jumper kapa jarrita, VCC eta JD-VCC pinak konektatuta daude. Horrek esan nahi du errele elektroimana zuzenean ESP32 power pinetik elikatzen dela, beraz, errele modulua eta ESP32 zirkuituak ez daude fisikoki elkarrengandik isolatuta.
Jumper txanorik gabe, energia-iturri independente bat eman behar duzu errelearen elektroimana JD-VCC pinaren bidez pizteko. Konfigurazio horrek ESP32-tik erreleak fisikoki isolatzen ditu moduluaren optoakoplagailuarekin, eta horrek ESP32-ri kalte elektrikoen kasuan saihesten du.
schematicAbisua: Bolumen handiko erabileratagElikatze-iturriek lesio larriak eragin ditzakete.
Hori dela eta, hornidura handiko bolumenaren ordez 5 mm-ko LEDak erabiltzen diratage bonbillak esperimentuan. Ez baduzu ezagutzen mains voltagGaldetu lagunduko dizun norbaiti. ESP programatzen duzun bitartean edo zure zirkuitua kableatzen duzun bitartean, ziurtatu dena saretik deskonektatuta dagoelatage.ESP32rako liburutegia instalatzea
Hau eraikitzeko web zerbitzaria, ESPAsync erabiltzen duguWebZerbitzariaren liburutegia eta AsyncTCP liburutegia.
ESPAsync instalatzenWebZerbitzariaren liburutegia
Jarraitu hurrengo urratsak instalatzeko ESPAsyncWebZerbitzaria liburutegia:
- Egin klik hemen ESPAsync deskargatzekoWebZerbitzariaren liburutegia. Izan beharko zenuke
.zip karpeta bat Deskargak karpetan - Deskonprimitu .zip karpeta eta ESPAsync lortu beharko zenukeWebZerbitzari-master karpeta
- Aldatu zure karpeta ESPAsync-etikWebZerbitzari-maisu ESPAsync-eraWebZerbitzaria
- Mugitu ESPAsyncWebZerbitzariaren karpeta zure Arduino IDE instalazio liburutegien karpetara
Bestela, zure Arduino IDEan, Sketch> Sartu joan zaitezke
Liburutegia > Gehitu .ZIP liburutegia... eta hautatu deskargatu berri duzun liburutegia.
ESP32rako AsyncTCP liburutegia instalatzen
The ESPAsyncWebZerbitzaria liburutegiak eskatzen du AsyncTCP liburutegia lan egiteko. Jarraitu
liburutegi hori instalatzeko hurrengo urratsak:
- Egin klik hemen AsyncTCP liburutegia deskargatzeko. Deskargak karpetan .zip karpeta bat izan beharko zenuke
- Deskonprimitu .zip karpeta eta AsyncTCP-master karpeta lortu beharko zenuke
1. Aldatu izena AsyncTCP-master-etik AsyncTCP izatera
3. Eraman AsyncTCP karpeta zure Arduino IDE instalazio liburutegien karpetara
4. Azkenik, berriro ireki zure Arduino IDE
Bestela, zure Arduino IDEan, Sketch> Sartu joan zaitezke
Liburutegia > Gehitu .ZIP liburutegia... eta hautatu deskargatu berri duzun liburutegia.
Kodea
ESP32 Arduino IDE erabiliz programatuko dugu, beraz, ziurtatu ESP32 gehigarria instalatuta duzula jarraitu aurretik: (Urrats hau egin baduzu, hurrengo urratsera joan zaitezke).
ESP32 gehigarria instalatzea Arduino IDE-n
Beharrezko liburutegiak instalatu ondoren, ireki Project_7_ESP32_Relay_ kodea.Web_Server.ino arduino IDEan.
Kodea igo aurretik, ez ahaztu sareko kredentzialak txertatzea, ESP-a zure sare lokalera konektatu ahal izateko.Erakustaldia
Beharrezko aldaketak egin ondoren, kargatu kodea zure ESP32ra. Kargatu kodearen erreferentzia-urratsak.
Ireki Serie Monitorea 115200 baud-tasa batean eta sakatu ESP32 EN botoia bere IP helbidea lortzeko. Ondoren, ireki arakatzaile bat zure sare lokalean eta idatzi ESP32 IP helbidea sarbidea lortzeko. web zerbitzaria.
Ireki Serie Monitorea 115200 baud-tasa batean eta sakatu ESP32 EN botoia bere IP helbidea lortzeko. Ondoren, ireki arakatzaile bat zure sare lokalean eta idatzi ESP32 IP helbidea sarbidea lortzeko. web zerbitzaria.Oharra: Zure arakatzailea eta ESP32 LAN berera konektatuta egon behar dute.
Honela lortu beharko zenuke bi botoirekin zure kodean definitu duzun errele kopurua bezala.Orain, botoiak erabil ditzakezu zure telefonoa erabiliz erreleak kontrolatzeko.
Proiektua_8_Irteera_egoera_sinkronizazioa_ Web_Zerbitzaria
Proiektu honek ESP32 edo ESP8266 irteerak a erabiliz nola kontrolatu erakusten du web zerbitzaria eta botoi fisiko bat aldi berean. Irteerako egoera eguneratzen da web orrialdea botoi fisikoaren bidez aldatzen den edo web zerbitzaria.
Proiektua amaitu daview
Ikus dezagun nola funtzionatzen duen proiektua.ESP32 edo ESP8266-k a web Irteera baten egoera kontrolatzeko aukera ematen duen zerbitzaria;
- Uneko irteera-egoera pantailan bistaratzen da web zerbitzaria;
- ESPa ere irteera bera kontrolatzen duen sakagailu fisiko bati lotuta dago;
- Irteerako egoera sakagailu fisikoa erabiliz aldatzen baduzu, bere uneko egoera ere eguneratzen da web zerbitzaria.
Laburbilduz, proiektu honek irteera bera kontrolatzeko aukera ematen du a erabiliz web zerbitzaria eta sakagailu bat aldi berean. Irteerako egoera aldatzen den bakoitzean, web zerbitzaria eguneratuta dago.
Beharrezko piezak
Hona hemen zirkuitua eraikitzeko behar dituzun zatien zerrenda:
- ESP32 DEVKIT V1 plaka
- 5 mm-ko LEDa
- 220 Ohm erresistentzia
- Botoia
- 10k Ohm erresistentzia
- Breadboard
- Jumper hariak
schematicESP32rako liburutegia instalatzea
Hau eraikitzeko web zerbitzaria, ESPAsync erabiltzen duguWebZerbitzariaren liburutegia eta AsyncTCP Liburutegia. (Urrats hau dagoeneko egin baduzu, hurrengo urratsera joan zaitezke).
ESPAsync instalatzenWebZerbitzariaren liburutegia
Jarraitu hurrengo urratsak ESPAsync instalatzekoWebZerbitzariaren liburutegia:
- Egin klik hemen ESPAsync deskargatzekoWebZerbitzariaren liburutegia. Izan beharko zenuke
.zip karpeta bat Deskargak karpetan - Deskonprimitu .zip karpeta eta ESPAsync lortu beharko zenukeWebZerbitzari-master karpeta
- Aldatu zure karpeta ESPAsync-etikWebZerbitzari-maisu ESPAsync-eraWebZerbitzaria
- Mugitu ESPAsyncWebZerbitzariaren karpeta zure Arduino IDE instalazio liburutegien karpetara
Bestela, zure Arduino IDEan, Sketch> Sartu joan zaitezke
Liburutegia > Gehitu .ZIP liburutegia... eta hautatu deskargatu berri duzun liburutegia.
ESP32rako AsyncTCP liburutegia instalatzen
ESPAsyncWebZerbitzariaren liburutegiak AsyncTCP liburutegia behar du funtzionatzeko. Jarraitu hurrengo pausoak liburutegi hori instalatzeko:
- Egin klik hemen AsyncTCP liburutegia deskargatzeko. Deskargak karpetan .zip karpeta bat izan beharko zenuke
- Deskonprimitu .zip karpeta eta AsyncTCP-master karpeta lortu beharko zenuke
- Aldatu izena zure karpeta AsyncTCP-master-tik AsyncTCP-era
- Mugitu AsyncTCP karpeta zure Arduino IDE instalazio liburutegien karpetara
- Azkenik, berriro ireki zure Arduino IDE
Bestela, zure Arduino IDEan, Sketch> Sartu joan zaitezke
Liburutegia > Gehitu .ZIP liburutegia... eta hautatu deskargatu berri duzun liburutegia.
Kodea
ESP32 Arduino IDE erabiliz programatuko dugu, beraz, ziurtatu ESP32 gehigarria instalatuta duzula jarraitu aurretik: (Urrats hau egin baduzu, hurrengo urratsera joan zaitezke).
ESP32 gehigarria instalatzea Arduino IDE-n
Beharrezko liburutegiak instalatu ondoren, ireki kodea
Proiektua_8_Irteera_egoera_sinkronizazioa_Web_Server.ino arduino IDEan.
Kodea igo aurretik, ez ahaztu sareko kredentzialak txertatzea, ESP-a zure sare lokalera konektatu ahal izateko.
Kodeak nola funtzionatzen duen
Botoiaren egoera eta irteera egoera
ledState aldagaiak LED irteerako egoerari eusten dio. Lehenespenez, noiz web zerbitzaria hasten da, BAXUA da.
ButtonState eta lastButtonState sakatu botoia sakatu den edo ez detektatzeko erabiltzen dira.Botoia (web zerbitzaria)
Ez dugu HTML-a sartu index_html aldagaian botoia sortzeko.
Hori dela eta, sakagailuarekin ere alda daitekeen egungo LED egoeraren arabera aldatu ahal izatea nahi dugu.
Beraz, %BUTTONPLACEHOLDER% botoiarentzat leku-marka bat sortu dugu, HTML testuarekin ordezkatuko dena, gero kodean botoia sortzeko (prozesadore() funtzioan egiten da).prozesadorea ()
Processor() funtzioak HTML testuko edozein leku-markak benetako balioekin ordezkatzen ditu. Lehenik eta behin, HTML testuek ala ez duten egiaztatzen du
leku-markak %BUTTONPLACEHOLDER%.Ondoren, deitu uneko irteera-egoera itzultzen duen outputState() funtzioari. outputStateValue aldagaian gordetzen dugu.
Horren ondoren, erabili balio hori HTML testua sortzeko botoia egoera egokiarekin bistaratzeko:
HTTP GET irteera-egoera aldatzeko eskaera (JavaScript)
Botoia sakatzen duzunean, toggleCheckbox() funtzioa deitzen da. Funtzio honek eskaera bat egingo du desberdinetan URLs LEDa pizteko edo itzaltzeko.LEDa pizteko, eskaera bat egiten du /update?state=1 URL:
Bestela, /update?state=0-n eskaera bat egiten du URL.
HTTP GET egoera eguneratzeko eskaera (JavaScript)
Irteerako egoera eguneratuta mantentzeko web zerbitzariari, /estatuan eskaera berri bat egiten duen funtzioari deitzen diogu URL segundoro.Eskaerak kudeatu
Orduan, ESP32 edo ESP8266-k horiei buruzko eskaerak jasotzen dituenean gertatzen dena kudeatu behar dugu URLs.
Errotik eskaera bat jasotzen denean /URL, HTML orria bidaltzen dugu eta baita prozesadorea ere.Hurrengo lerroek /update?state=1 edo /update?state=0-n eskaerarik jaso duzun egiaztatzen du URL eta horren arabera aldatzen du ledState.
/estatuan eskaera bat jasotzen denean URL, uneko irteera-egoera bidaltzen dugu:
begizta()
Loop(), sakagailuari errebotea kenduko diogu eta LEDa piztu edo itzali egiten dugu ledState-ren balioaren arabera. aldagaia.Erakustaldia
Kargatu kodea zure ESP32 taulara. Kargatu kodearen erreferentzia-urratsak.
Ondoren, ireki Serial Monitor 115200 baud-tasa batean. Sakatu taulako EN/RST botoia IP helbidea lortzeko.Ireki arakatzaile bat zure sare lokalean eta idatzi ESP IP helbidea. sarbidea izan beharko zenuke web zerbitzaria behean erakusten den moduan.
Oharra: Zure arakatzailea eta ESP32 LAN berera konektatuta egon behar dute.Botoia txandaka dezakezu web zerbitzaria LEDa pizteko.
LED bera kontrola dezakezu botoi fisikoarekin ere. Bere egoera automatikoki eguneratuko da beti web zerbitzaria.
9. proiektua ESP32 DHT11 Web Zerbitzaria
Proiektu honetan, ESP32 asinkronoa nola eraiki ikasiko duzu web Arduino IDE erabiliz tenperatura eta hezetasuna bistaratzen dituen DHT11 zerbitzaria.
Aurrebaldintzak
The web zerbitzariak automatikoki eguneratzen ditu irakurketak freskatu beharrik gabe web orrialdea.
Proiektu honekin ikasiko duzu:
- Nola irakurri tenperatura eta hezetasuna DHT sentsoreetatik;
- Eraiki asinkrono bat web zerbitzaria erabiliz ESPAsyncWebZerbitzariaren liburutegia;
- Eguneratu sentsoreen irakurketak automatikoki freskatu beharrik gabe web orrialdea.
Asinkronoak Web Zerbitzaria
Eraikitzeko web zerbitzaria erabiliko dugu ESPAsyncWebZerbitzariaren liburutegia asinkrono bat eraikitzeko modu erraz bat eskaintzen duena web zerbitzaria. Asinkrono bat eraikitzea web zerbitzariak hainbat advan ditutagliburutegiko GitHub orrian aipatzen den moduan, adibidez:
- "Konexio bat baino gehiago kudeatu aldi berean";
- "Erantzuna bidaltzen duzunean, berehala prest zaude beste konexio batzuk kudeatzeko zerbitzaria atzeko planoan erantzuna bidaltzeaz arduratzen den bitartean";
- "Txantiloiak prozesatzeko motor sinplea txantiloiak kudeatzeko";
Beharrezko piezak
Tutorial hau burutzeko honako zati hauek behar dituzu:
- ESP32 garapen taula
- DHT11 modulua
- Breadboard
- Jumper hariak
schematicLiburutegiak instalatzea
Proiektu honetarako liburutegi pare bat instalatu behar dituzu:
- The DHT eta du Adafruit Sentsore bateratua DHT sentsoretik irakurtzeko gidarien liburutegiak.
- ESPAsyncWebZerbitzaria eta TCP asinkronizatua liburutegiak asinkronoak eraikitzeko web zerbitzaria.
Jarraitu hurrengo argibideei liburutegi horiek instalatzeko:
DHT sentsoreen liburutegia instalatzea
Arduino IDE erabiliz DHT sentsoretik irakurtzeko, instalatu behar duzu DHT sentsoreen liburutegia. Jarraitu hurrengo urratsak liburutegia instalatzeko.
- Egin klik hemen DHT Sensor liburutegia deskargatzeko. Deskargak karpetan .zip karpeta bat izan beharko zenuke
- Deskonprimitu .zip karpeta eta DHT-sensor-library-master karpeta lortu beharko zenuke
- Aldatu izena zure karpeta DHT-sensor-library-master-tik DHT_sensor-era
- Eraman DHT_sensor karpeta zure Arduino IDE instalazio liburutegien karpetara
- Azkenik, berriro ireki zure Arduino IDE
Adafruit Unified Sensor Driver instalatzea
Era berean, instalatu behar duzu Adafruit Unified Sensor Driver liburutegia DHT sentsorearekin lan egiteko. Jarraitu hurrengo urratsak liburutegia instalatzeko.
- Egin klik hemen Adafruit Unified Sensor liburutegia deskargatzeko. Deskargak karpetan .zip karpeta bat izan beharko zenuke
- Deskonprimitu .zip karpeta eta Adafruit_sensor-master karpeta lortu beharko zenuke
- Adafruit_sensor-master-etik Adafruit_sensor-era izena aldatu zure karpeta
- Eraman Adafruit_sensor karpeta zure Arduino IDE instalazio liburutegien karpetara
- Azkenik, berriro ireki zure Arduino IDE
ESPAsync instalatzenWebZerbitzariaren liburutegia
Jarraitu hurrengo urratsak instalatzeko ESPAsyncWebZerbitzaria liburutegia:
- Egin klik hemen ESPAsync deskargatzekoWebZerbitzariaren liburutegia. Izan beharko zenuke
.zip karpeta bat Deskargak karpetan - Deskonprimitu .zip karpeta eta beharko zenuke
lortu ESPAsyncWebZerbitzari-master karpeta - Aldatu zure karpeta ESPAsync-etikWebZerbitzari-maisu ESPAsync-eraWebZerbitzaria
- Mugitu ESPAsyncWebZerbitzariaren karpeta zure Arduino IDE instalazio liburutegien karpetara
Async TCP Liburutegia instalatzea ESP32rako
The ESPAsyncWebZerbitzaria liburutegiak eskatzen du AsyncTCP liburutegia lan egiteko. Jarraitu hurrengo pausoak liburutegi hori instalatzeko:
- Egin klik hemen AsyncTCP liburutegia deskargatzeko. Deskargak karpetan .zip karpeta bat izan beharko zenuke
- Deskonprimitu .zip karpeta eta AsyncTCP-master karpeta lortu beharko zenuke
- Aldatu izena zure karpeta AsyncTCP-master-tik AsyncTCP-era
- Mugitu AsyncTCP karpeta zure Arduino IDE instalazio liburutegien karpetara
- Azkenik, berriro ireki zure Arduino IDE
Kodea
ESP32 Arduino IDE erabiliz programatuko dugu, beraz, ziurtatu ESP32 gehigarria instalatuta duzula jarraitu aurretik: (Urrats hau egin baduzu, hurrengo urratsera joan zaitezke).
ESP32 gehigarria instalatzea Arduino IDE-n
Beharrezko liburutegiak instalatu ondoren, ireki kodea
Proiektua_9_ESP32_DHT11_Web_Server.ino arduino IDEan.
Kodea igo aurretik, ez ahaztu sareko kredentzialak txertatzea, ESP-a zure sare lokalera konektatu ahal izateko.Kodeak nola funtzionatzen duen
Hurrengo paragrafoetan kodea nola funtzionatzen duen azalduko dugu. Jarraitu irakurtzen gehiago jakin nahi baduzu edo joan Demonstrazioa atalera azken emaitza ikusteko.
Liburutegiak inportatzea
Lehenik eta behin, inportatu beharrezko liburutegiak. WiFi, ESPAsyncWebZerbitzaria eta ESPAsyncTCP behar dira eraikitzeko web zerbitzaria. Adafruit_Sensor eta DHT liburutegiak behar dira DHT11 edo DHT22 sentsoreetatik irakurtzeko.Aldagaien definizioa
Definitu DHT datu-pin-a konektatuta dagoen GPIO. Kasu honetan, GPIO 4ra konektatuta dago.Ondoren, hautatu erabiltzen ari zaren DHT sentsore mota. Gure example, DHT22 erabiltzen ari gara. Beste mota bat erabiltzen ari bazara, sentsoreari iruzkinak kendu eta beste guztiak iruzkintzea besterik ez duzu behar.
Instantziatu DHT objektu bat lehenago definitu dugun mota eta pinarekin.Sortu Async batWebZerbitzariaren objektua 80 atakan.
Irakurri Tenperatura eta Hezetasun Funtzioak
Bi funtzio sortu ditugu: bata tenperatura irakurtzeko Bi funtzio sortu ditugu: bata tenperatura irakurtzeko (irakurri DHTTenperatura()) eta bestea hezetasuna irakurtzeko (irakurriDHTHhezetasuna()).Sentsoreen irakurketak erabiltzea bezain erraza da. Sentsoreen irakurketak lortzea dht objektuan readTemperature() eta readHumidity() metodoak erabiltzea bezain erraza da.
Bi marra (–) itzultzen dituen baldintza bat ere badugu sentsoreak irakurketak lortzen ez baditu.
Irakurketak kate mota gisa itzultzen dira. Float bat kate bihurtzeko, erabili String() funtzioa
Berez, tenperatura Celsius gradutan irakurtzen ari gara. Tenperatura Fahrenheit gradutan lortzeko, komentatu tenperatura Celsius-tan eta kendu tenperatura Fahrenheit-en, honako hau izan dezazun:
Kodea igo
Orain, igo kodea zure ESP32ra. Ziurtatu plaka egokia eta COM ataka hautatuta duzula. Kargatu kodearen erreferentzia-urratsak.
Kargatu ondoren, ireki Serial Monitor 115200 baud-tasa batean. Sakatu ESP32 berrezartzeko botoia. ESP32 IP helbidea seriean inprimatu behar da monitorea.Erakustaldia
Ireki arakatzaile bat eta idatzi ESP32 IP helbidea. Zure web zerbitzariak azken sentsoreen irakurketak erakutsi behar ditu.
Oharra: Zure arakatzailea eta ESP32 LAN berera konektatuta egon behar dute.
Kontuan izan tenperatura eta hezetasunaren irakurketak automatikoki eguneratzen direla, freskatu beharrik gabe web orrialdea.
Project_10_ESP32_OLED_Display
Proiektu honek 0.96 hazbeteko SSD1306 OLED pantaila ESP32-rekin Arduino IDE erabiliz nola erabili erakusten du.
0.96 hazbeteko OLED pantaila aurkezten
The OLED pantaila Tutorial honetan erabiliko duguna SSD1306 modeloa da: 0.96 hazbeteko pantaila monokolore bat, 128 × 64 pixelekin, hurrengo irudian erakusten den moduan.OLED pantailak ez du atzeko argirik behar, eta horrek oso kontraste polita sortzen du ingurune ilunetan. Gainera, bere pixelek energia kontsumitzen dute piztuta daudenean soilik, beraz, OLED pantailak energia gutxiago kontsumitzen du beste pantailekin alderatuta.
OLED pantailak I2C komunikazio protokoloa erabiltzen duenez, kableatzea oso erraza da. Ondoko taula erabil dezakezu erreferentzia gisa.
OLED Pina | ESP32 |
Vin | 3.3V |
GND | GND |
SCL | GPIO 22 |
SDA | GPIO 21 |
schematicSSD1306 OLED liburutegia instalatzen - ESP32
Hainbat liburutegi daude eskuragarri ESP32-rekin OLED pantaila kontrolatzeko.
Tutorial honetan bi Adafruit liburutegi erabiliko ditugu: Adafruit_SSD1306 liburutegia eta Adafruit_GFX liburutegia.
Jarraitu hurrengo urratsak liburutegi horiek instalatzeko.
- Ireki zure Arduino IDE eta joan Sketch> Sartu liburutegia> Kudeatu liburutegiak. Liburutegiko kudeatzaileak ireki behar du.
- Idatzi "SSD1306" bilaketa-koadroan eta instalatu Adafruit-eko SSD1306 liburutegia.
- Adafruit-eko SSD1306 liburutegia instalatu ondoren, idatzi "GFX" bilaketa-koadroan eta instalatu liburutegia.
- Liburutegiak instalatu ondoren, berrabiarazi zure Arduino IDE.
Kodea
Beharrezko liburutegiak instalatu ondoren, ireki Project_10_ESP32_OLED_Display.ino arduino IDE-n. kodea
ESP32 Arduino IDE erabiliz programatuko dugu, beraz, ziurtatu ESP32 gehigarria instalatuta duzula jarraitu aurretik: (Urrats hau jada egin baduzu, hurrengo urratsera joan zaitezke).
ESP32 gehigarria instalatzea Arduino IDE-nKodeak nola funtzionatzen duen
Liburutegiak inportatzea
Lehenik eta behin, beharrezko liburutegiak inportatu behar dituzu. Wire liburutegia I2C erabiltzeko eta Adafruit liburutegiak pantailan idazteko: Adafruit_GFX eta Adafruit_SSD1306.Hasieratu OLED pantaila
Ondoren, zure OLED zabalera eta altuera definitzen dituzu. Adib honetanamp128×64 OLED pantaila erabiltzen ari gara. Beste tamaina batzuk erabiltzen ari bazara, hori alda dezakezu SCREEN_WIDTH eta SCREEN_HEIGHT aldagaietan.Ondoren, hasieratu pantaila-objektu bat I2C komunikazio-protokoloarekin (&Wire) lehen definitutako zabalera eta altuera duena.
(-1) parametroak esan nahi du zure OLED pantailak ez duela RESET pinik. Zure OLED pantailak RESET pin bat badu, GPIO batera konektatuta egon beharko litzateke. Kasu horretan, GPIO zenbakia parametro gisa pasa beharko zenuke.
Konfigurazioan(), hasieratu serieko monitorea 115200 baud-raute batean, arazketa helburuetarako.Hasieratu OLED pantaila begin() metodoarekin honela:
Zati honek mezu bat inprimatzen du serieko monitorean, pantailara konektatu ezin bagara.
Beste OLED pantaila bat erabiltzen ari bazara, baliteke OLED helbidea aldatu behar izatea. Gure kasuan, helbidea 0x3C da.
Pantaila hasieratu ondoren, gehitu bi segundoko atzerapena, OLEDak testua idatzi aurretik hasieratzeko nahikoa denbora izan dezan:
Garbitu pantaila, ezarri letra-tamaina, kolorea eta idatzi testua
Pantaila hasieratu ondoren, garbitu pantaila-buffera clearDisplay() metodoarekin:
Testua idatzi aurretik, testuaren tamaina, kolorea eta testua non bistaratuko den ezarri behar duzu OLEDean.
Ezarri letra-tamaina setTextSize() metodoa erabiliz:Ezarri letra-tipoaren kolorea setTextColor() metodoarekin:
WHITE letra-tipo zuria eta hondo beltza ezartzen ditu.
Definitu testua hasten den posizioa setCursor(x,y) metodoa erabiliz. Kasu honetan, testua (0,0) koordenatuetan hasteko ezartzen ari gara, goiko ezkerreko izkinan.Azkenik, testua pantailara bidal dezakezu println() metodoa erabiliz, honela
Ondoren, display() metodora deitu behar duzu testua pantailan bistaratzeko.
Adafruit OLED liburutegiak testua erraz mugitzeko metodo erabilgarriak eskaintzen ditu.
- startscrollright(0x00, 0x0F): testua ezkerretik eskuinera mugitu
- startscrollleft(0x00, 0x0F): korritu testua eskuinetik ezkerrera
- startscrolldiagright(0x00, 0x07): korritu testua ezkerreko beheko izkinatik eskuinera goiko izkilera startscrolldiagleft(0x00, 0x07): korritu testua eskuineko beheko izkinatik ezkerreko goiko ertzera
Kodea igo
Orain, kargatu kodea zure ESP32ra. Kargatu kodearen erreferentzia-urratsak.
Kodea igo ondoren, OLEDak korritutako testua bistaratuko du.
Dokumentuak / Baliabideak
![]() |
LAFVIN ESP32 oinarrizko hasierako kit [pdf] Argibideen eskuliburua ESP32 oinarrizko hasierako kit, ESP32, oinarrizko hasierako kit, hasierako kit |