ESP32 pamata starteris
Komplekts
Iepakojuma saraksts
ESP32 Ievads
Vai esat jauns ESP32 lietotājs? Sāciet šeit! ESP32 ir zemu izmaksu un mazjaudas sistēmas mikroshēmā (SoC) sērija, ko izstrādājis Espressif un kas ietver Wi-Fi un Bluetooth bezvadu iespējas un divkodolu procesoru. Ja esat iepazinies ar ESP8266, ESP32 ir tā pēctecis, kurā ir daudz jaunu funkciju.ESP32 specifikācijas
Ja vēlaties iegūt nedaudz tehniskāku un specifiskāku, varat apskatīt šādas detalizētas ESP32 specifikācijas (avots: http://esp32.net/) — lai iegūtu sīkāku informāciju, pārbaudiet datu lapu):
- Bezvadu savienojums WiFi: 150.0 Mbps datu pārraides ātrums ar HT40
- Bluetooth: BLE (Bluetooth Low Energy) un Bluetooth Classic
- Procesors: Tensilica Xtensa divkodolu 32 bitu LX6 mikroprocesors, kas darbojas ar 160 vai 240 MHz
- Atmiņa:
- ROM: 448 KB (sāknēšanai un pamatfunkcijām)
- SRAM: 520 KB (datiem un instrukcijām)
- RTC fas SRAM: 8 KB (datu glabāšanai un galvenajam centrālajam procesoram RTC sāknēšanas laikā no dziļā miega režīma)
- RTC lēnā SRAM: 8 KB (līdzprocesora piekļuvei dziļa miega režīmā) eFuse: 1 Kbit (no kuriem 256 biti tiek izmantoti sistēmai (MAC adrese un mikroshēmas konfigurācija), bet atlikušie 768 biti ir rezervēti klientu lietojumprogrammām, tostarp zibatmiņas šifrēšanai un mikroshēmas ID)
Iegultā zibspuldze: zibspuldze ir iekšēji pievienota, izmantojot IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 un SD_DATA_1 uz ESP32-D2WD un ESP32-PICO-D4.
- 0 MiB (ESP32-D0WDQ6, ESP32-D0WD un ESP32-S0WD mikroshēmas)
- 2 MiB (ESP32-D2WD mikroshēma)
- 4 MiB (ESP32-PICO-D4 SiP modulis)
Zema jauda: nodrošina, ka joprojām varat izmantot ADC konversijas, piemēram,ample, dziļā miega laikā.
Perifērijas ieeja/izvade:
- perifērijas saskarne ar DMA, kas ietver kapacitatīvo pieskārienu
- ADC (analogo-digitālo pārveidotājs)
- DAC (digitālais-analogais pārveidotājs)
- I²C (starpintegrētā shēma)
- UART (universālais asinhronais uztvērējs/raidītājs)
- SPI (seriālā perifērijas saskarne)
- I²S (Integrated Interchip Sound)
- RMII (reduced Media Independent Interface)
- PWM (impulsa platuma modulācija)
Drošība: aparatūras paātrinātāji AES un SSL/TLS
ESP32 attīstības padomes
ESP32 attiecas uz tukšu ESP32 mikroshēmu. Tomēr termins “ESP32” tiek lietots arī, lai apzīmētu ESP32 izstrādes plates. ESP32 tukšu mikroshēmu izmantošana nav vienkārša vai praktiska, it īpaši mācoties, testējot un veidojot prototipus. Lielāko daļu laika jūs vēlaties izmantot ESP32 izstrādes plati.
Mēs izmantosim ESP32 DEVKIT V1 plati kā atsauci. Tālāk esošajā attēlā redzama ESP32 DEVKIT V1 plate, versija ar 30 GPIO tapām.Specifikācijas – ESP32 DEVKIT V1
Šajā tabulā parādīts ESP32 DEVKIT V1 DOIT plates funkciju un specifikāciju kopsavilkums:
Serdeņu skaits | 2 (divkodolu) |
Wi-Fi | 2.4 GHz līdz 150 Mbit/s |
Bluetooth | BLE (Bluetooth Low Energy) un mantotais Bluetooth |
Arhitektūra | 32 biti |
Pulksteņa frekvence | Līdz 240 MHz |
RAM | 512 KB |
Piespraudes | 30 (atkarībā no modeļa) |
Perifērijas ierīces | Kapacitatīvs pieskāriens, ADC (analogais-digitālais pārveidotājs), DAC (digitālais-analogais pārveidotājs), 12C (integrētā shēma), UART (universālais asinhronais uztvērējs/raidītājs), CAN 2.0 (vadības apgabala tīkls), SPI (seriālā perifērijas saskarne), 12S (integrētais interfeiss). Skaņa), RMII (Reduced Media Independent Interface), PWM (impulsa platuma modulācija) un citi. |
Iebūvētas pogas | RESET un BOOT pogas |
Iebūvētas gaismas diodes | iebūvēta zila gaismas diode, kas savienota ar GPIO2; iebūvēta sarkana gaismas diode, kas parāda, ka plate tiek darbināta |
USB uz UART tilts |
CP2102 |
Tam ir microUSB interfeiss, ko varat izmantot, lai savienotu plati ar datoru, lai augšupielādētu kodu vai pievienotu strāvu.
Tas izmanto CP2102 mikroshēmu (USB uz UART), lai sazinātos ar datoru, izmantojot COM portu, izmantojot seriālo interfeisu. Vēl viena populāra mikroshēma ir CH340. Pārbaudiet, kas ir jūsu plates USB uz UART mikroshēmas pārveidotājs, jo jums būs jāinstalē nepieciešamie draiveri, lai jūsu dators varētu sazināties ar plati (vairāk informācijas par to šajā rokasgrāmatā).
Šim panelim ir arī poga RESET (var būt apzīmēta ar EN), lai restartētu plati, un poga BOOT, lai paneli pārslēgtu mirgošanas režīmā (pieejama koda saņemšanai). Ņemiet vērā, ka dažiem dēļiem var nebūt BOOT pogas.
Tam ir arī iebūvēta zila gaismas diode, kas ir iekšēji savienota ar GPIO 2. Šī gaismas diode ir noderīga atkļūdošanai, lai sniegtu sava veida vizuālu fizisko izvadi. Ir arī sarkana gaismas diode, kas iedegas, kad piegādājat plati strāvu.ESP32 Pinout
ESP32 perifērijas ierīcēs ietilpst:
- 18 Analog-to-Digital Converter (ADC) kanāli
- 3 SPI saskarnes
- 3 UART saskarnes
- 2 I2C saskarnes
- 16 PWM izejas kanāli
- 2 ciparu-analogu pārveidotāji (DAC)
- 2 I2S saskarnes
- 10 kapacitatīvās sensora GPIO
ADC (analogais–digitālais pārveidotājs) un DAC (digitālais–analogais pārveidotājs) funkcijas ir piešķirtas noteiktām statiskām tapām. Tomēr jūs varat izlemt, kuras tapas ir UART, I2C, SPI, PWM utt. - jums tās vienkārši jāpiešķir kodā. Tas ir iespējams, pateicoties ESP32 mikroshēmas multipleksēšanas funkcijai.
Lai gan programmatūrā varat definēt tapu rekvizītus, pēc noklusējuma ir piešķirtas tapas, kā parādīts nākamajā attēlāTurklāt ir tapas ar īpašām funkcijām, kas padara tās piemērotas vai neder konkrētam projektam. Nākamajā tabulā parādīts, kādus tapas vislabāk izmantot kā ievades, izvades un kuras no tām ir jābūt piesardzīgai.
Zaļā krāsā iezīmētās tapas ir piemērotas lietošanai. Tos, kas iezīmēti dzeltenā krāsā, var izmantot, taču jums ir jāpievērš uzmanība, jo tiem var būt neparedzēta darbība galvenokārt sāknēšanas laikā. Sarkanā krāsā iezīmētās tapas nav ieteicams izmantot kā ieejas vai izejas.
GP IO | Ievade | Izvade | Piezīmes |
0 | uzvilkts | OK | sāknēšanas laikā izvada PWM signālu, lai pārietu mirgošanas režīmā, tam jābūt LOW |
1 | TX tapa | OK | atkļūdošanas izvade sāknēšanas laikā |
2 | OK | OK | savienots ar borta LED, jāatstāj peldošs vai LOW, lai pārietu mirgošanas režīmā |
3 | OK | RX tapa | AUGSTS sāknēšanas laikā |
4 | OK | OK | |
5 | OK | OK | izvada PWM signālu sāknēšanas laikā, stiprinājuma tapa |
12 | OK | OK | bagāžnieks neizdodas, ja to velk augstu, stiprinājuma tapa |
13 | OK | OK | |
14 | OK | OK | sāknēšanas laikā izvada PWM signālu |
15 | OK | OK | izvada PWM signālu sāknēšanas laikā, stiprinājuma tapa |
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 | tikai ievade | |
35 | OK | tikai ievade | |
36 | OK | tikai ievade | |
39 | OK | tikai ievade |
Turpiniet lasīt, lai iegūtu detalizētāku un padziļinātu ESP32 GPIO un tā funkciju analīzi.
Ievadiet tikai tapas
GPIO no 34 līdz 39 ir GPI — tikai ievades tapas. Šīm tapām nav iekšējo vilkšanas vai nolaižamo rezistoru. Tos nevar izmantot kā izejas, tāpēc izmantojiet šīs tapas tikai kā ievades:
- GPIO 34
- GPIO 35
- GPIO 36
- GPIO 39
SPI zibspuldze integrēta ESP-WROOM-32
No GPIO 6 līdz GPIO 11 ir redzami daži ESP32 izstrādes paneļi. Tomēr šīs tapas ir savienotas ar integrēto SPI zibspuldzi ESP-WROOM-32 mikroshēmā un nav ieteicamas citiem lietojumiem. Tāpēc savos projektos neizmantojiet šīs tapas:
- GPIO 6 (SCK/CLK)
- GPIO 7 (SDO/SD0)
- GPIO 8 (SDI/SD1)
- GPIO 9 (SHD/SD2)
- GPIO 10 (SWP/SD3)
- GPIO 11 (CSC/CMD)
Kapacitatīvie pieskāriena GPIO
ESP32 ir 10 iekšējie kapacitatīvie pieskāriena sensori. Tie var sajust izmaiņas jebko, kas satur elektrisko lādiņu, piemēram, cilvēka ādā. Tādējādi viņi var noteikt izmaiņas, kas rodas, pieskaroties GPIO ar pirkstu. Šīs tapas var viegli integrēt kapacitatīvos spilventiņos un aizstāt mehāniskās pogas. Kapacitatīvās pieskāriena tapas var izmantot arī, lai pamodinātu ESP32 no dziļa miega. Šie iekšējie pieskāriena sensori ir savienoti ar šiem GPIO:
- 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)
Analogais uz ciparu pārveidotājs (ADC)
ESP32 ir 18 x 12 bitu ADC ievades kanāli (kamēr ESP8266 ir tikai 1 x 10 bitu ADC). Šie ir GPIO, kurus var izmantot kā ADC un attiecīgos kanālus:
- 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)
Piezīme: ADC2 tapas nevar izmantot, ja tiek izmantots Wi-Fi. Tātad, ja izmantojat Wi-Fi un jums ir problēmas iegūt vērtību no ADC2 GPIO, tā vietā varat apsvērt iespēju izmantot ADC1 GPIO. Tam vajadzētu atrisināt jūsu problēmu.
ADC ievades kanāliem ir 12 bitu izšķirtspēja. Tas nozīmē, ka varat iegūt analogos rādījumus no 0 līdz 4095, kuros 0 atbilst 0 V un 4095 līdz 3.3 V. Varat arī iestatīt savu kanālu izšķirtspēju kodā un ADC diapazonā.
ESP32 ADC tapām nav lineāras darbības. Jūs, iespējams, nevarēsit atšķirt 0 un 0.1 V vai 3.2 un 3.3 V. Jums tas jāpatur prātā, izmantojot ADC tapas. Jūs iegūsit uzvedību, kas ir līdzīga tai, kas parādīta nākamajā attēlā.Ciparu analogais pārveidotājs (DAC)
ESP2 ir 8 x 32 bitu DAC kanāli, lai pārveidotu digitālos signālus par analogo tilpumutage signāla izejas. Šie ir DAC kanāli:
- DAC1 (GPIO25)
- DAC2 (GPIO26)
RTC GPIO
ESP32 ir pieejams RTC GPIO atbalsts. GPIO, kas novirzīti uz RTC mazjaudas apakšsistēmu, var izmantot, kad ESP32 atrodas dziļā miega režīmā. Šos RTC GPIO var izmantot, lai pamodinātu ESP32 no dziļa miega, kad ir īpaši zems
Darbojas barošanas (ULP) kopprocesors. Tālāk norādītos GPIO var izmantot kā ārēju modināšanas avotu.
- 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 kontrollerim ir 16 neatkarīgi kanāli, kurus var konfigurēt, lai ģenerētu PWM signālus ar dažādām īpašībām. Visas tapas, kas var darboties kā izejas, var izmantot kā PWM tapas (GPIO 34–39 nevar ģenerēt PWM).
Lai iestatītu PWM signālu, kodā jādefinē šie parametri:
- signāla frekvence;
- Darba cikls;
- PWM kanāls;
- GPIO, kur vēlaties izvadīt signālu.
I2C
ESP32 ir divi I2C kanāli, un jebkuru tapu var iestatīt kā SDA vai SCL. Izmantojot ESP32 ar Arduino IDE, noklusējuma I2C tapas ir:
- GPIO 21 (SDA)
- GPIO 22 (SCL)
Ja, izmantojot vadu bibliotēku, vēlaties izmantot citus tapas, jums vienkārši jāzvana:
Wire.begin(SDA, SCL);
SPI
Pēc noklusējuma SPI tapas kartējums ir:
SPI | MOSI | Miso | CLK | CS |
VSPI | GPIO 23 | GPIO 19 | GPIO 18 | GPIO 5 |
HSPI | GPIO 13 | GPIO 12 | GPIO 14 | GPIO 15 |
Pārtrauc
Visus GPIO var konfigurēt kā pārtraukumus.
Siksnas tapas
ESP32 mikroshēmai ir šādas stiprinājuma tapas:
- GPIO 0 (lai ievadītu sāknēšanas režīmu, tam jābūt LOW)
- GPIO 2 (sāknēšanas laikā ir jābūt peldošam vai LOW)
- GPIO 4
- GPIO 5 (sāknēšanas laikā jābūt HIGH)
- GPIO 12 (sāknēšanas laikā ir jābūt LOW)
- GPIO 15 (sāknēšanas laikā jābūt HIGH)
Tos izmanto, lai ESP32 ieslēgtu sāknēšanas ielādēšanas vai mirgošanas režīmā. Lielākajā daļā izstrādes paneļu ar iebūvētu USB/seriālu jums nav jāuztraucas par šo tapu stāvokli. Dēlis novieto tapas pareizajā stāvoklī mirgošanas vai sāknēšanas režīmam. Plašāku informāciju par ESP32 sāknēšanas režīma izvēli var atrast šeit.
Tomēr, ja šīm tapām ir pievienotas perifērijas ierīces, var rasties problēmas, mēģinot augšupielādēt jaunu kodu, mirgot ESP32 ar jaunu programmaparatūru vai atiestatīt plati. Ja dažas perifērijas ierīces ir savienotas ar siksnu tapām un rodas problēmas ar koda augšupielādi vai ESP32 mirgošanu, iespējams, šīs perifērijas ierīces neļauj ESP32 pāriet pareizajā režīmā. Izlasiet sāknēšanas režīma izvēles dokumentāciju, lai palīdzētu jums virzīties pareizajā virzienā. Pēc atiestatīšanas, mirgošanas vai sāknēšanas šīs tapas darbojas, kā paredzēts.
Piespraudes HIGH at Boot
Daži GPIO maina savu stāvokli uz HIGH vai izvada PWM signālus sāknēšanas vai atiestatīšanas laikā.
Tas nozīmē, ka, ja šiem GPIO ir pievienotas izejas, ESP32 atiestatīšanas vai sāknēšanas laikā varat iegūt negaidītus rezultātus.
- GPIO 1
- GPIO 3
- GPIO 5
- GPIO 6 līdz GPIO 11 (savienots ar ESP32 integrēto SPI zibatmiņu – nav ieteicams lietot).
- GPIO 14
- GPIO 15
Iespējot (EN)
Iespējot (EN) ir 3.3 V regulatora iespējošanas tapa. Tas ir uzvilkts, tāpēc pievienojiet zemei, lai atspējotu 3.3 V regulatoru. Tas nozīmē, ka varat izmantot šo tapu, kas savienota ar spiedpogu, lai restartētu ESP32, piemēramample.
Novilkta GPIO strāva
Absolūtā maksimālā strāva, kas paņemta vienam GPIO, ir 40 mA saskaņā ar sadaļu “Ieteicamie darbības apstākļi” ESP32 datu lapā.
ESP32 iebūvēts Hall efekta sensors
ESP32 ir arī iebūvēts halles efekta sensors, kas nosaka apkārtējā magnētiskā lauka izmaiņas
ESP32 Arduino IDE
Ir pieejams Arduino IDE papildinājums, kas ļauj programmēt ESP32, izmantojot Arduino IDE un tā programmēšanas valodu. Šajā apmācībā mēs parādīsim, kā instalēt ESP32 plati Arduino IDE neatkarīgi no tā, vai izmantojat Windows, Mac OS X vai Linux.
Priekšnosacījumi: Instalēta Arduino IDE
Pirms šīs instalēšanas procedūras sākšanas datorā ir jābūt instalētam Arduino IDE. Ir divas Arduino IDE versijas, kuras varat instalēt: 1. un 2. versija.
Jūs varat lejupielādēt un instalēt Arduino IDE, noklikšķinot uz šīs saites: arduino.cc/en/Main/Software
Kuru Arduino IDE versiju mēs iesakām? Šobrīd tādas ir plugins ESP32 (piemēram, SPIFFS Filesistēmas augšupielādētāja spraudnis), kas vēl netiek atbalstīti operētājsistēmā Arduino 2. Tātad, ja plānojat turpmāk izmantot SPIFFS spraudni, iesakām instalēt mantoto versiju 1.8.X. Lai to atrastu, jums vienkārši jāritina uz leju Arduino programmatūras lapā.
ESP32 papildinājuma instalēšana Arduino IDE
Lai instalētu ESP32 plati savā Arduino IDE, izpildiet šos norādījumus:
- Savā Arduino IDE atveriet uz File> Preferences
- Sadaļā “Papildu padomes vadītājs” ievadiet tālāk norādīto URLs” lauks:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Pēc tam noklikšķiniet uz pogas "OK":Piezīme: ja jums jau ir ESP8266 plates URL, varat atdalīt URLs ar komatu šādi:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Atveriet dēļu pārvaldnieku. Dodieties uz Rīki > Dēlis > Dēļu pārvaldnieks…Meklēt ESP32 and press install button for the “ESP32 by Espressif Systems“:
Tas arī viss. Tas jāinstalē pēc dažām sekundēm.
Augšupielādējiet testa kodu
Pievienojiet ESP32 plati datoram. Kad jūsu Arduino IDE ir atvērts, veiciet šīs darbības:
- Izvēlnē Rīki > Tāfele atlasiet savu plati (manā gadījumā tas ir ESP32 DEV modulis)
- Atlasiet portu (ja savā Arduino IDE neredzat COM portu, UART Bridge VCP draiveros jāinstalē CP210x USB):
- Atveriet šādu example zem File > Piemamples > WiFi
(ESP32) > WiFiScan - Jūsu Arduino IDE tiek atvērta jauna skice:
- Arduino IDE nospiediet augšupielādes pogu. Pagaidiet dažas sekundes, kamēr kods tiek apkopots un augšupielādēts jūsu dēlī.
- Ja viss noritēja, kā paredzēts, jums vajadzētu redzēt ziņojumu “Augšupielāde pabeigta”. ziņa.
- Atveriet Arduino IDE seriālo monitoru ar bodu ātrumu 115200:
- Nospiediet ESP32 iebūvēto pogu Iespējot, un jums vajadzētu redzēt ESP32 tuvumā pieejamos tīklus:
Problēmu novēršana
Ja mēģināt augšupielādēt jaunu skici savā ESP32 un tiek parādīts šāds kļūdas ziņojums “Radās fatāla kļūda: neizdevās izveidot savienojumu ar ESP32: noildze... Notiek savienojuma izveide…”. Tas nozīmē, ka jūsu ESP32 nav mirgošanas/augšupielādes režīmā.
Kad ir atlasīts pareizais plates nosaukums un COM por, rīkojieties šādi:
ESP32 platē turiet nospiestu pogu “BOOT”.
- Lai augšupielādētu skici, Arduino IDE nospiediet pogu Augšupielādēt:
- Kad esat redzējis “Savienojuma izveide…”. ziņojumu savā Arduino IDE, atlaidiet pirkstu no pogas “BOOT”:
- Pēc tam jums vajadzētu redzēt ziņojumu “Augšupielāde pabeigta”.
Tas arī viss. Jūsu ESP32 vajadzētu darboties jaunajai skicei. Nospiediet pogu “IESPĒJOT”, lai restartētu ESP32 un palaistu jauno augšupielādēto skici.
Jums arī būs jāatkārto šī pogu secība katru reizi, kad vēlaties augšupielādēt jaunu skici.
1. projekts ESP32 ieejas izejas
Šajā darba sākšanas rokasgrāmatā jūs uzzināsit, kā lasīt digitālās ievades, piemēram, pogu slēdzi, un kontrolēt digitālās izejas, piemēram, LED, izmantojot ESP32 ar Arduino IDE.
Priekšnoteikumi
Mēs ieprogrammēsim ESP32, izmantojot Arduino IDE. Tātad, pirms turpināt, pārliecinieties, vai ir instalēts ESP32 plates papildinājums:
- ESP32 papildinājuma instalēšana Arduino IDE
ESP32 vadības digitālās izejas
Pirmkārt, jums ir jāiestata GPIO, kuru vēlaties kontrolēt kā IZJUMU. Izmantojiet funkciju pinMode() šādi:
pinMode(GPIO, OUTPUT);
Lai kontrolētu digitālo izvadi, jums vienkārši jāizmanto funkcija digitalWrite (), kas pieņem kā argumentus, GPIO (int skaitlis), uz kuru atsaucaties, un stāvokli HIGH vai LOW.
digitalWrite (GPIO, STATE);
Visus GPIO var izmantot kā izejas, izņemot GPIO 6 līdz 11 (savienots ar integrēto SPI zibspuldzi) un GPIO 34, 35, 36 un 39 (ievadei tikai GPIO);
Uzziniet vairāk par ESP32 GPIO: ESP32 GPIO uzziņu rokasgrāmata
ESP32 Lasīt digitālās ieejas
Vispirms iestatiet GPIO, kuru vēlaties lasīt, kā INPUT, izmantojot funkciju pinMode() šādi:
pinMode(GPIO, INPUT);
Lai nolasītu digitālo ievadi, piemēram, pogu, izmantojiet funkciju digitalRead(), kas kā argumentu pieņem norādīto GPIO (int numuru).
digitalRead (GPIO);
Visus ESP32 GPIO var izmantot kā ievades, izņemot GPIO no 6 līdz 11 (savienots ar integrēto SPI zibspuldzi).
Uzziniet vairāk par ESP32 GPIO: ESP32 GPIO uzziņu rokasgrāmata
Projekts Example
Lai parādītu, kā izmantot digitālās ievades un digitālās izejas, mēs izveidosim vienkāršu projektu, piemēramample ar spiedpogu un LED. Mēs nolasīsim spiedpogas stāvokli un attiecīgi iedegsim LED, kā parādīts nākamajā attēlā.
Nepieciešamas daļas
Šeit ir saraksts ar daļām, kas jums nepieciešamas, lai izveidotu ķēdi:
- ESP32 DEVKIT V1
- 5 mm LED
- 220 omu rezistors
- Uzspied pogu
- 10k omu rezistors
- Maizes dēlis
- Džemperu vadi
Shematiskā diagramma
Pirms turpināt, jums ir jāsamontē ķēde ar LED un spiedpogu.
Mēs savienosim LED ar GPIO 5 un spiedpogu ar GPIO 4.Kods
Arduino IDE atveriet kodu Project_1_ESP32_Inputs_Outputs.inoKā darbojas kods
Šajās divās rindās jūs izveidojat mainīgos, lai piešķirtu tapas:
Poga ir savienota ar GPIO 4, un gaismas diode ir savienota ar GPIO 5. Izmantojot Arduino IDE ar ESP32, 4 atbilst GPIO 4 un 5 atbilst GPIO 5.
Pēc tam jūs izveidojat mainīgo, lai turētu pogas stāvokli. Pēc noklusējuma tas ir 0 (nav nospiests).
int buttonState = 0;
Izvēlnē Setup () pogu inicializējat kā IEEJA un LED kā IZeju.
Šim nolūkam jūs izmantojat funkciju pinMode (), kas pieņem kontaktu, uz kuru atsaucāties, un režīmu: INPUT vai OUTPUT.
pinMode(pogaPin, INPUT);
pinMode(ledPin, OUTPUT);
In the loop () ir vieta, kur jūs nolasāt pogas stāvokli un attiecīgi iestatāt LED.
Nākamajā rindā jūs izlasiet pogas stāvokli un saglabājiet to mainīgajā buttonState.
Kā mēs redzējām iepriekš, jūs izmantojat funkciju digitalRead ().
pogasState = digitalRead(buttonPin);
Šis if paziņojums pārbauda, vai pogas stāvoklis ir HIGH. Ja tā ir, tas ieslēdz LED, izmantojot funkciju digitalWrite(), kas kā argumentu pieņem ledPin un stāvokli HIGH.
ja (buttonState == AUGSTS)Ja pogas stāvoklis nav HIGH, jūs izslēdzat LED. Vienkārši iestatiet LOW kā otro argumentu funkcijā digitalWrite ().
Koda augšupielāde
Pirms noklikšķināt uz augšupielādes pogas, dodieties uz Rīki > Tāfele un atlasiet plati :DOIT ESP32 DEVKIT V1.
Dodieties uz Rīki > Ports un atlasiet COM portu, ar kuru ir pievienots ESP32. Pēc tam nospiediet augšupielādes pogu un gaidiet ziņojumu “Augšupielāde pabeigta”.Piezīme. Ja atkļūdošanas logā redzat daudz punktu (savienojuma izveide…__…__) un ziņojumu “Neizdevās izveidot savienojumu ar ESP32: noildze gaidot paketes galveni”, tas nozīmē, ka pēc punktiem ir jānospiež ESP32 borta BOOT poga.
sāk parādīties.Problēmu novēršana
Demonstrācija
Pēc koda augšupielādes pārbaudiet ķēdi. Jūsu LED jāiedegas, kad nospiežat spiedpogu:Un izslēdziet, kad to atlaižat:
2. projekts ESP32 analogās ieejas
Šis projekts parāda, kā lasīt analogās ievades ar ESP32, izmantojot Arduino IDE.
Analogā nolasīšana ir noderīga, lai nolasītu vērtības no mainīgiem rezistoriem, piemēram, potenciometriem vai analogajiem sensoriem.
Analogās ieejas (ADC)
Analogās vērtības nolasīšana ar ESP32 nozīmē, ka varat izmērīt mainīgu tilpumutage līmeņi no 0 V līdz 3.3 V.
SējtagPēc tam izmērītajam e tiek piešķirta vērtība no 0 līdz 4095, kurā 0 V atbilst 0 un 3.3 V atbilst 4095. Jebkurš tilpumstage no 0 V līdz 3.3 V tiks piešķirta atbilstošā vērtība starp tām.ADC ir nelineārs
Ideālā gadījumā, izmantojot ESP32 ADC tapas, jūs varētu sagaidīt lineāru darbību.
Tomēr tas nenotiek. Jūs iegūsit uzvedību, kas parādīta šajā diagrammā:Šāda darbība nozīmē, ka jūsu ESP32 nespēj atšķirt 3.3 V no 3.2 V.
Jūs saņemsiet vienādu vērtību abiem sējtages: 4095.
Tas pats notiek ar ļoti zemu tilpumutage vērtības: 0 V un 0.1 V jūs saņemsiet tādu pašu vērtību: 0. Jums tas jāpatur prātā, lietojot ESP32 ADC tapas.
analogRead() funkcija
Analogās ievades lasīšana ar ESP32, izmantojot Arduino IDE, ir tikpat vienkārša kā funkcijas analogRead () izmantošana. Kā arguments tiek pieņemts GPIO, kuru vēlaties lasīt:
analogRead (GPIO);
Tikai 15 ir pieejami DEVKIT V1platē (versija ar 30 GPIO).
Satveriet ESP32 plates spraudni un atrodiet ADC tapas. Tālāk esošajā attēlā tie ir izcelti ar sarkanu apmali.Šīm analogās ievades tapām ir 12 bitu izšķirtspēja. Tas nozīmē, ka, lasot analogo ievadi, tās diapazons var mainīties no 0 līdz 4095.
Piezīme. ADC2 tapas nevar izmantot, ja tiek izmantots Wi-Fi. Tātad, ja izmantojat Wi-Fi un jums ir problēmas iegūt vērtību no ADC2 GPIO, tā vietā varat apsvērt iespēju izmantot ADC1 GPIO, kas varētu atrisināt jūsu problēmu.
Lai redzētu, kā viss sadarbojas, izveidosim vienkāršu bijušoample nolasīt analogo vērtību no potenciometra.
Nepieciešamas daļas
Šim bijušajamample, jums ir nepieciešamas šādas daļas:
- ESP32 DEVKIT V1 valde
- Potenciometrs
- Maizes dēlis
- Džemperu vadi
Shematisks
Pievienojiet potenciometru savam ESP32. Potenciometra vidējai tapai jābūt savienotai ar GPIO 4. Kā atsauci varat izmantot šādu shematisko diagrammu.Kods
Mēs ieprogrammēsim ESP32, izmantojot Arduino IDE, tāpēc pirms turpināt, pārliecinieties, vai esat instalējis ESP32 pievienojumprogrammu: (Ja esat jau veicis šo darbību, varat pāriet uz nākamo darbību.)
ESP32 papildinājuma instalēšana Arduino IDE
Arduino IDE atveriet kodu Project_2_ESP32_Inputs_Outputs.inoŠis kods vienkārši nolasa vērtības no potenciometra un izdrukā šīs vērtības sērijas monitorā.
Kodā jūs sākat, definējot GPIO, ar kuru potenciometrs ir savienots. Šajā bijušajāample, GPIO 4.Izvēlnē setup () inicializējiet seriālo komunikāciju ar datu pārraides ātrumu 115200.
Ciklā () izmantojiet funkciju analogRead (), lai nolasītu analogo ievadi no potPin.
Visbeidzot izdrukājiet vērtības, kas nolasītas no seriālā monitora potenciometra.
Augšupielādējiet sniegto kodu savā ESP32. Pārliecinieties, vai izvēlnē Rīki ir atlasīta pareizā plate un COM ports.
Pārbaudot bijušoample
Pēc koda augšupielādes un ESP32 atiestatīšanas pogas nospiešanas atveriet seriālo monitoru ar bodu ātrumu 115200 XNUMX. Pagrieziet potenciometru un skatiet, kā mainās vērtības.Maksimālā vērtība, ko saņemsit, ir 4095, bet minimālā vērtība ir 0.
Iesaiņošana
Šajā rakstā jūs uzzinājāt, kā lasīt analogās ievades, izmantojot ESP32 ar Arduino IDE. Rezumējot:
- ESP32 DEVKIT V1 DOIT platei (versija ar 30 tapām) ir 15 ADC tapas, ko varat izmantot, lai nolasītu analogās ieejas.
- Šo tapu izšķirtspēja ir 12 biti, kas nozīmē, ka varat iegūt vērtības no 0 līdz 4095.
- Lai nolasītu vērtību Arduino IDE, vienkārši izmantojiet funkciju analogRead ().
- ESP32 ADC tapām nav lineāras darbības. Jūs, iespējams, nevarēsit atšķirt 0 un 0.1 V vai 3.2 un 3.3 V. Jums tas jāpatur prātā, izmantojot ADC tapas.
Project 3 ESP32 PWM (analogā izeja)
Šajā apmācībā mēs parādīsim, kā ģenerēt PWM signālus ar ESP32, izmantojot Arduino IDE. Kā bijušaisampmēs izveidosim vienkāršu shēmu, kas aptumšo LED, izmantojot ESP32 LED PWM kontrolieri.ESP32 LED PWM kontrolieris
ESP32 ir LED PWM kontrolieris ar 16 neatkarīgiem kanāliem, kurus var konfigurēt, lai ģenerētu PWM signālus ar dažādām īpašībām.
Tālāk ir norādītas darbības, kas jums jāveic, lai aptumšotu LED ar PWM, izmantojot Arduino IDE:
- Pirmkārt, jums jāizvēlas PWM kanāls. Ir 16 kanāli no 0 līdz 15.
- Pēc tam jums jāiestata PWM signāla frekvence. Gaismas diodei ir piemērota 5000 Hz frekvence.
- Jums arī jāiestata signāla darba cikla izšķirtspēja: jums ir izšķirtspēja no 1 līdz 16 bitiem. Mēs izmantosim 8 bitu izšķirtspēju, kas nozīmē, ka varat kontrolēt LED spilgtumu, izmantojot vērtību no 0 līdz 255.
- Tālāk jums jānorāda, uz kuriem GPIO vai GPIO tiks parādīts signāls. Šim nolūkam izmantosit šādu funkciju:
ledcAttachPin (GPIO, kanāls)
Šī funkcija pieņem divus argumentus. Pirmais ir GPIO, kas izvadīs signālu, un otrais ir kanāls, kas ģenerēs signālu. - Visbeidzot, lai kontrolētu LED spilgtumu, izmantojot PWM, izmantojiet šādu funkciju:
ledcWrite(kanāls, darba cikls)
Šī funkcija kā argumentus pieņem kanālu, kas ģenerē PWM signālu, un darba ciklu.
Nepieciešamas daļas
Lai sekotu šai apmācībai, jums ir nepieciešamas šīs daļas:
- ESP32 DEVKIT V1 valde
- 5 mm LED
- 220 omu rezistors
- Maizes dēlis
- Džemperu vadi
Shematisks
Pievienojiet LED savam ESP32, kā parādīts nākamajā shematiskajā diagrammā. Gaismas diodei jābūt savienotai ar GPIO 4.Piezīme: varat izmantot jebkuru tapu, kuru vēlaties, ja vien tā var darboties kā izvade. Visas tapas, kas var darboties kā izejas, var izmantot kā PWM tapas. Lai iegūtu papildinformāciju par ESP32 GPIO, lasiet: ESP32 kontaktdakšas atsauce: kuras GPIO tapas jums vajadzētu izmantot?
Kods
Mēs ieprogrammēsim ESP32, izmantojot Arduino IDE, tāpēc pirms turpināt, pārliecinieties, vai esat instalējis ESP32 pievienojumprogrammu: (Ja esat jau veicis šo darbību, varat pāriet uz nākamo darbību.)
ESP32 papildinājuma instalēšana Arduino IDE
Arduino IDE atveriet kodu Project_3_ESP32_PWM.inoVispirms definējiet tapu, kurai ir pievienota gaismas diode. Šajā gadījumā gaismas diode ir pievienota GPIO 4.
Pēc tam iestatiet PWM signāla īpašības. Jūs definējat 5000 Hz frekvenci, izvēlieties kanālu 0, lai ģenerētu signālu, un iestatiet 8 bitu izšķirtspēju. Varat izvēlēties citus rekvizītus, kas atšķiras no šiem, lai ģenerētu dažādus PWM signālus.
Programmā setup () jums ir jākonfigurē LED PWM ar iepriekš definētajiem rekvizītiem, izmantojot funkciju ledcSetup (), kas pieņem kā argumentus, ledChannel, frekvenci un izšķirtspēju, kā norādīts tālāk:
Pēc tam jums jāizvēlas GPIO, no kura saņemsit signālu. Šim nolūkam izmantojiet funkciju ledcAttachPin(), kas kā argumentus pieņem GPIO, kurā vēlaties iegūt signālu, un kanālu, kas ģenerē signālu. Šajā bijušajāample, mēs saņemsim signālu ledPin GPIO, kas atbilst GPIO 4. Kanāls, kas ģenerē signālu, ir ledChannel, kas atbilst kanālam 0.
Šajā ciklā jūs mainīsit darba ciklu no 0 līdz 255, lai palielinātu LED spilgtumu.
Un pēc tam no 255 līdz 0, lai samazinātu spilgtumu.
Lai iestatītu gaismas diodes spilgtumu, jums vienkārši jāizmanto funkcija ledcWrite(), kas kā argumentus pieņem kanālu, kas ģenerē signālu, un darba ciklu.
Tā kā mēs izmantojam 8 bitu izšķirtspēju, darba cikls tiks kontrolēts, izmantojot vērtību no 0 līdz 255. Ņemiet vērā, ka funkcijā ledcWrite() mēs izmantojam kanālu, kas ģenerē signālu, nevis GPIO.
Pārbaudot bijušoample
Augšupielādējiet kodu savā ESP32. Pārliecinieties, vai esat izvēlējies pareizo plati un COM portu. Paskaties uz savu ķēdi. Jums vajadzētu būt dimmer LED, kas palielina un samazina spilgtumu.
4. projekts ESP32 PIR kustības sensors
Šis projekts parāda, kā noteikt kustību, izmantojot ESP32, izmantojot PIR kustības sensoru. Skaņas signāls atskanēs trauksmes signāls, kad tiks konstatēta kustība, un apturēs trauksmi, ja iepriekš iestatītā laikā (piemēram, 4 sekundes) netiek konstatēta kustība.
Kā darbojas kustības sensors HC-SR501
.Sensora HC-SR501 darbības princips ir balstīts uz kustīgā objekta infrasarkanā starojuma maiņu. Lai objektu uztvertu HC-SR501 sensors, tam jāatbilst divām prasībām:
- Objekts izstaro infrasarkano staru.
- Objekts kustas vai dreb
Tātad:
Ja objekts izstaro infrasarkano staru, bet nekustas (piem., cilvēks stāv uz vietas, nekustoties), sensors to nenosaka.
Ja objekts kustas, bet NEizstaro infrasarkano staru (piem., robots vai transportlīdzeklis), sensors to NEatpazīst.
Iepazīstinām ar taimeriem
Šajā bijušajāampieviesīsim arī taimerus. Mēs vēlamies, lai gaismas diode paliktu ieslēgta iepriekš noteiktu sekunžu skaitu pēc kustības noteikšanas. Tā vietā, lai izmantotu funkciju delay (), kas bloķē jūsu kodu un neļauj jums darīt neko citu noteiktu sekunžu skaitu, mums vajadzētu izmantot taimeri.Aizkaves () funkcija
Jums ir jāzina funkcija delay(), jo tā tiek plaši izmantota. Šīs funkcijas lietošana ir diezgan vienkārša. Tas pieņem vienu int skaitli kā argumentu.
Šis skaitlis norāda laiku milisekundēs, kas programmai jāgaida, līdz pāriet uz nākamo koda rindiņu.Kad veicat aizkavi (1000), jūsu programma apstājas šajā līnijā uz 1 sekundi.
delay() ir bloķēšanas funkcija. Bloķēšanas funkcijas neļauj programmai darīt kaut ko citu, līdz konkrētais uzdevums ir pabeigts. Ja jums ir nepieciešami vairāki uzdevumi, kas jāveic vienlaikus, jūs nevarat izmantot delay ().
Lielākajai daļai projektu jums vajadzētu izvairīties no aizkaves un tā vietā izmantot taimerus.
Funkcija millis().
Izmantojot funkciju millis(), varat atgriezt milisekundes, kas pagājušas kopš programmas pirmās palaišanas.Kāpēc šī funkcija ir noderīga? Tā kā, izmantojot kādu matemātiku, varat viegli pārbaudīt, cik daudz laika ir pagājis, nebloķējot kodu.
Nepieciešamas daļas
Lai sekotu šai apmācībai, jums ir nepieciešamas šādas daļas
- ESP32 DEVKIT V1 valde
- PIR kustības sensors (HC-SR501)
- Aktīvs skaņas signāls
- Džemperu vadi
- Maizes dēlis
ShematisksPiezīme: Darba sējtagHC-SR501 e ir 5 V. Izmantojiet Vin tapu, lai to darbinātu.
Kods
Pirms turpināt šo apmācību, jūsu Arduino IDE ir jāinstalē ESP32 papildinājums. Izpildiet kādu no tālāk sniegtajām pamācībām, lai instalētu ESP32 Arduino IDE, ja vēl neesat to izdarījis. (Ja esat jau veicis šo darbību, varat pāriet uz nākamo darbību.)
ESP32 papildinājuma instalēšana Arduino IDE
Arduino IDE atveriet kodu Project_4_ESP32_PIR_Motion_Sensor.ino.
Demonstrācija
Augšupielādējiet kodu savā ESP32 platē. Pārliecinieties, vai esat izvēlējies pareizo plati un COM portu. Augšupielādējiet kodu atsauces darbības.
Atveriet seriālo monitoru ar datu pārraides ātrumu 115200 XNUMX.Pārvietojiet roku PIR sensora priekšā. Ieslēdzas skaņas signālam, un seriālajā monitorā tiek izdrukāts ziņojums “Kustība konstatēta!Buzzera trauksme”.
Pēc 4 sekundēm skaņas signālam ir jāizslēdzas.
Projekta 5 ESP32 slēdzis Web Serveris
Šajā projektā jūs izveidosit atsevišķu web serveris ar ESP32, kas kontrolē izejas (divas gaismas diodes), izmantojot Arduino IDE programmēšanas vidi. The web serveris reaģē uz mobilajām ierīcēm, un tam var piekļūt ar jebkuru ierīci, kas kā pārlūkprogramma vietējā tīklā. Mēs parādīsim, kā izveidot web serveri un kā kods darbojas soli pa solim.
Projekts beidziesview
Pirms doties tieši uz projektu, ir svarīgi ieskicēt, ko mūsu web serveris, lai vēlāk būtu vieglāk veikt darbības.
- The web serveris, kuru izveidosit, kontrolē divus LED, kas savienoti ar ESP32 GPIO 26 un GPIO 27;
- Jūs varat piekļūt ESP32 web serveri, lokālā tīkla pārlūkprogrammā ierakstot ESP32 IP adresi;
- Noklikšķinot uz pogām uz jūsu web serverī varat uzreiz mainīt katras gaismas diodes stāvokli.
Nepieciešamas daļas
Šai apmācībai jums būs nepieciešamas šādas daļas:
- ESP32 DEVKIT V1 valde
- 2x 5mm LED
- 2x 200 omu rezistors
- Maizes dēlis
- Džemperu vadi
Shematisks
Sāciet ar ķēdes izveidi. Savienojiet divus gaismas diodes ar ESP32, kā parādīts šajā shematiskajā shēmā – vienu LED savienotu ar GPIO 26, bet otru ar GPIO 27.
Piezīme: Mēs izmantojam ESP32 DEVKIT DOIT plati ar 36 tapām. Pirms ķēdes montāžas noteikti pārbaudiet izmantotās plates kontaktdakšu.Kods
Šeit mēs sniedzam kodu, kas izveido ESP32 web serveris. Atveriet kodu Project_5_ESP32_Switch _Web_Server.ino arduino IDE, bet vēl neaugšupielādējiet to. Jums ir jāveic dažas izmaiņas, lai tas darbotos jūsu labā.
Mēs ieprogrammēsim ESP32, izmantojot Arduino IDE, tāpēc pirms turpināt, pārliecinieties, vai esat instalējis ESP32 pievienojumprogrammu: (Ja esat jau veicis šo darbību, varat pāriet uz nākamo darbību.)
ESP32 papildinājuma instalēšana Arduino IDE
Tīkla akreditācijas datu iestatīšana
Jums ir jāmaina šādas rindiņas ar saviem tīkla akreditācijas datiem: SSID un parole. Kods ir labi komentēts, kur jums jāveic izmaiņas.Koda augšupielāde
Tagad varat augšupielādēt kodu un un web serveris darbosies uzreiz.
Lai augšupielādētu kodu ESP32, veiciet tālāk norādītās darbības.
- Pievienojiet ESP32 plati datoram;
- Arduino IDE atlasiet savu plati sadaļā Rīki> Tāfele (mūsu gadījumā mēs izmantojam ESP32 DEVKIT DOIT plati);
- Izvēlieties COM portu sadaļā Rīki > Ports.
- Arduino IDE nospiediet pogu Augšupielādēt un pagaidiet dažas sekundes, kamēr kods tiek apkopots un augšupielādēts jūsu dēlī.
- Pagaidiet ziņojumu “Augšupielāde pabeigta”.
ESP IP adreses atrašana
Pēc koda augšupielādes atveriet Serial Monitor ar bodu ātrumu 115200.Nospiediet ESP32 EN pogu (atiestatīt). ESP32 izveido savienojumu ar Wi-Fi un izvada ESP IP adresi seriālajā monitorā. Kopējiet šo IP adresi, jo jums tā ir nepieciešama, lai piekļūtu ESP32 web serveris.
Piekļūstot Web Serveris
Lai piekļūtu web serveri, atveriet savu pārlūkprogrammu, ielīmējiet ESP32 IP adresi, un jūs redzēsit šādu lapu.
Piezīme: Jūsu pārlūkprogrammai un ESP32 jābūt savienotiem ar vienu un to pašu LAN.Ja paskatās uz seriālo monitoru, varat redzēt, kas notiek fonā. ESP saņem HTTP pieprasījumu no jauna klienta (šajā gadījumā no jūsu pārlūkprogrammas).
Varat arī skatīt citu informāciju par HTTP pieprasījumu.
Demonstrācija
Tagad jūs varat pārbaudīt, vai jūsu web serveris darbojas pareizi. Noklikšķiniet uz pogām, lai vadītu gaismas diodes.Tajā pašā laikā varat apskatīt Serial Monitor, lai redzētu, kas notiek fonā. Piemēram,ampnoklikšķinot uz pogas, lai ieslēgtu GPIO 26, ESP32 saņem pieprasījumu uz /26/on. URL.
Kad ESP32 saņem šo pieprasījumu, tas ieslēdz GPIO 26 pievienoto LED un atjaunina tā stāvokli web lapā.
GPIO 27 poga darbojas līdzīgi. Pārbaudiet, vai tas darbojas pareizi.
Kā darbojas kods
Šajā sadaļā kods tiks sīkāk aplūkots, lai redzētu, kā tas darbojas.
Pirmā lieta, kas jums jādara, ir iekļaut WiFi bibliotēku.Kā minēts iepriekš, turpmākajās rindās dubultpēdiņās ir jāievieto savs ssid un parole.
Pēc tam jūs iestatāt savu web serveris uz portu 80.
Šajā rindā tiek izveidots mainīgais, lai saglabātu HTTP pieprasījuma galveni:
Pēc tam izveidojat papildu mainīgos, lai saglabātu pašreizējo izvadu stāvokli. Ja vēlaties pievienot vairāk izvadu un saglabāt tā stāvokli, jums ir jāizveido vairāk mainīgo.
Katrai izejai ir arī jāpiešķir GPIO. Šeit mēs izmantojam GPIO 26 un GPIO 27. Varat izmantot jebkuru citu piemērotu GPIO.
iestatīšana ()
Tagad pāriesim pie iestatīšanas (). Pirmkārt, atkļūdošanas nolūkos mēs sākam seriālo komunikāciju ar datu pārraides ātrumu 115200 XNUMX.Jūs arī definējat savus GPIO kā OUTPUT un iestatāt tos uz LOW.
Šīs rindas sāk Wi-Fi savienojumu ar WiFi.begin(ssid, parole), pagaidiet veiksmīgu savienojumu un izdrukājiet ESP IP adresi seriālajā monitorā.
cilpa ()
Ciklā () mēs programmējam, kas notiek, kad jauns klients izveido savienojumu ar web serveris.
ESP32 vienmēr uzklausa ienākošos klientus ar šādu līniju:Saņemot pieprasījumu no klienta, mēs saglabāsim ienākošos datus. Tālāk esošā while cilpa darbosies tik ilgi, kamēr klients būs savienots. Mēs neiesakām mainīt tālāk norādīto koda daļu, ja vien precīzi nezināt, ko darāt.
Nākamajā if un else paziņojumu sadaļā tiek pārbaudīta, kura poga tika nospiesta jūsu web lapu un attiecīgi kontrolē izejas. Kā redzējām iepriekš, mēs iesniedzam pieprasījumu par dažādiem URLs atkarībā no nospiestās pogas.
Piemēram,ampJa esat nospiedis pogu GPIO 26 ON, ESP32 saņem pieprasījumu uz /26/ON URL (šo informāciju varam redzēt seriālā monitora HTTP galvenē). Tātad, mēs varam pārbaudīt, vai galvenē ir izteiksme GET /26/on. Ja tas satur, mēs mainām mainīgo output26state uz ON, un ESP32 ieslēdz LED.
Tas darbojas līdzīgi citām pogām. Tātad, ja vēlaties pievienot vairāk izvadu, jums vajadzētu modificēt šo koda daļu, lai tās iekļautu.
HTML parādīšana web lapā
Nākamā lieta, kas jums jādara, ir izveidot web lapā. ESP32 nosūtīs atbildi uz jūsu pārlūkprogrammu ar HTML kodu, lai izveidotu web lapā.
The web lapa tiek nosūtīta klientam, izmantojot šo izteiksmi client.println(). Kā argumentu jāievada tas, ko vēlaties nosūtīt klientam.
Pirmā lieta, kas mums jānosūta, vienmēr ir nākamā rinda, kas norāda, ka mēs sūtām HTML.Pēc tam sekojošā rinda veido web lapa atsaucīga jebkurā web pārlūkprogramma.
Tālāk norādītais tiek izmantots, lai novērstu pieprasījumus favicon. – Jums nav jāuztraucas par šo līniju.
Stilēšana Web Lapa
Tālāk mums ir CSS teksts, lai veidotu pogas un stilus web lapas izskats.
Mēs izvēlamies Helvetica fontu, definējam saturu, kas jāparāda kā bloks un jāsaskaņo centrā.Mēs veidojam pogas ar krāsu #4CAF50, bez apmales, tekstu baltā krāsā un ar šo polsterējumu: 16 pikseļi 40 pikseļi. Mēs arī iestatījām teksta noformējumu uz None, definējam fonta lielumu, malu un kursoru uz rādītāju.
Mēs arī definējam otras pogas stilu ar visām pogas īpašībām, kuras esam definējuši iepriekš, bet ar citu krāsu. Šis būs izslēgšanas pogas stils.
Iestatīšana Web Lapas pirmais virsraksts
Nākamajā rindā varat iestatīt savu pirmo virsrakstu web lapā. Šeit mums ir “ESP32 Web Serveris”, taču jūs varat mainīt šo tekstu uz to, kas jums patīk.Parāda pogas un atbilstošo stāvokli
Pēc tam rakstiet rindkopu, lai parādītu GPIO 26 pašreizējo stāvokli. Kā redzat, mēs izmantojam mainīgo output26State, lai, mainoties šim mainīgajam, stāvoklis tiktu nekavējoties atjaunināts.Pēc tam atkarībā no pašreizējā GPIO stāvokļa tiek parādīta ieslēgšanas vai izslēgšanas poga. Ja pašreizējais GPIO stāvoklis ir izslēgts, mēs parādām pogu ON, ja nē, mēs parādām pogu OFF.
Mēs izmantojam to pašu procedūru GPIO 27.
Savienojuma aizvēršana
Visbeidzot, kad atbilde beidzas, mēs notīrām galvenes mainīgo un pārtraucam savienojumu ar klientu ar client.stop().
Iesaiņošana
Šajā apmācībā mēs esam parādījuši, kā izveidot a web serveris ar ESP32. Mēs esam parādījuši jums vienkāršu bijušoample, kas kontrolē divas gaismas diodes, bet ideja ir aizstāt šīs gaismas diodes ar releju vai jebkuru citu izvadi, kuru vēlaties kontrolēt.
Projekts 6 RGB LED Web Serveris
Šajā projektā mēs parādīsim, kā attālināti vadīt RGB LED ar ESP32 plati, izmantojot a web serveris ar krāsu atlasītāju.
Projekts beidziesview
Pirms darba sākšanas apskatīsim, kā šis projekts darbojas:
- ESP32 web serveris parāda krāsu atlasītāju.
- Izvēloties krāsu, jūsu pārlūkprogramma veic pieprasījumu a URL kas satur atlasītās krāsas R, G un B parametrus.
- Jūsu ESP32 saņem pieprasījumu un sadala katra krāsu parametra vērtību.
- Pēc tam tas nosūta PWM signālu ar atbilstošo vērtību GPIO, kas kontrolē RGB LED.
Kā darbojas RGB gaismas diodes?
Kopējā katoda RGB gaismas diodēs visām trim gaismas diodēm ir negatīvs savienojums (katods). Visi komplektā iekļautie ir kopējā katoda RGB.Kā izveidot dažādas krāsas?
Izmantojot RGB LED, jūs, protams, varat ražot sarkanu, zaļu un zilu gaismu, un, konfigurējot katras gaismas diodes intensitāti, varat ražot arī citas krāsas.
Piemēram,ample, lai radītu tīri zilu gaismu, zilajai gaismas diodei jāiestata visaugstākā intensitāte un zaļajai un sarkanajai gaismas diodei jāiestata zemākā intensitāte. Lai iegūtu baltu gaismu, visas trīs gaismas diodes iestatiet visaugstākajā intensitātē.
Krāsu sajaukšana
Lai iegūtu citas krāsas, varat apvienot trīs krāsas dažādās intensitātēs. Lai pielāgotu katras gaismas diodes intensitāti, varat izmantot PWM signālu.
Tā kā gaismas diodes atrodas ļoti tuvu viena otrai, mūsu acis redz krāsu kombinācijas rezultātu, nevis trīs krāsas atsevišķi.
Lai gūtu priekšstatu par to, kā apvienot krāsas, apskatiet šo tabulu.
Šī ir vienkāršākā krāsu sajaukšanas diagramma, taču tā sniedz priekšstatu, kā tā darbojas un kā iegūt dažādas krāsas.Nepieciešamas daļas
Šim projektam jums ir nepieciešamas šādas daļas:
- ESP32 DEVKIT V1 valde
- RGB LED
- 3x 220 omu rezistori
- Džemperu vadi
- Maizes dēlis
ShematisksKods
Mēs ieprogrammēsim ESP32, izmantojot Arduino IDE, tāpēc pirms turpināt, pārliecinieties, vai esat instalējis ESP32 pievienojumprogrammu: (Ja esat jau veicis šo darbību, varat pāriet uz nākamo darbību.)
- ESP32 papildinājuma instalēšana Arduino IDE
Pēc ķēdes montāžas atveriet kodu
Projekts_6_RGB_LED_Web_Server.ino arduino IDE.
Pirms koda augšupielādes neaizmirstiet ievietot tīkla akreditācijas datus, lai ESP varētu izveidot savienojumu ar jūsu vietējo tīklu.Kā kods darbojas
ESP32 skice izmanto WiFi.h bibliotēku.Nākamajās rindās ir definēti virknes mainīgie, lai saglabātu pieprasījuma R, G un B parametrus.
Nākamie četri mainīgie tiek izmantoti, lai vēlāk atšifrētu HTTP pieprasījumu.
Izveidojiet trīs mainīgos GPIO, kas kontrolēs joslas R, G un B parametrus. Šajā gadījumā mēs izmantojam GPIO 13, GPIO 12 un GPIO 14.
Šiem GPIO ir jāizvada PWM signāli, tāpēc mums vispirms ir jākonfigurē PWM rekvizīti. Iestatiet PWM signāla frekvenci uz 5000 Hz. Pēc tam katrai krāsai saistiet PWM kanālu
Visbeidzot, iestatiet PWM kanālu izšķirtspēju uz 8 bitiem
Izvēlnē setup () piešķiriet PWM rekvizītus PWM kanāliem
Pievienojiet PWM kanālus attiecīgajiem GPIO
Nākamajā koda sadaļā tiek parādīts krāsu atlasītājs jūsu ierīcē web lapu un veic pieprasījumu, pamatojoties uz jūsu izvēlēto krāsu.
Izvēloties krāsu, jūs saņemat pieprasījumu šādā formātā.
Tātad, mums ir jāsadala šī virkne, lai iegūtu R, G un B parametrus. Parametri tiek saglabāti mainīgajos redString, greenString un blueString, un to vērtības var būt no 0 līdz 255.Lai vadītu joslu ar ESP32, izmantojiet funkciju ledcWrite(), lai ģenerētu PWM signālus ar vērtībām, kas atšifrētas no HTTP. pieprasījumu.
Piezīme: Uzziniet vairāk par PWM ar ESP32: Project 3 ESP32 PWM (analogā izeja)
Lai vadītu sloksni ar ESP8266, mums vienkārši jāizmanto
funkcija analogWrite(), lai ģenerētu PWM signālus ar vērtībām, kas atšifrētas no HTPP pieprasījuma.
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
Tā kā mēs iegūstam vērtības virknes mainīgajā, mums tās jāpārvērš veselos skaitļos, izmantojot metodi toInt ().
Demonstrācija
Pēc tīkla akreditācijas datu ievietošanas atlasiet pareizo plati un COM portu un augšupielādējiet kodu savā ESP32. Augšupielādējiet kodu atsauces darbības.
Pēc augšupielādes atveriet seriālo monitoru ar bodu ātrumu 115200 XNUMX un nospiediet pogu ESP iespējot/atiestatīt. Jums vajadzētu iegūt dēļa IP adresi.Atveriet pārlūkprogrammu un ievietojiet ESP IP adresi. Tagad izmantojiet krāsu atlasītāju, lai izvēlētos RGB LED krāsu.
Pēc tam jums jānospiež poga "Mainīt krāsu", lai krāsa stātos spēkā.Lai izslēgtu RGB LED, izvēlieties melno krāsu.
Spēcīgākās krāsas (krāsu atlasītāja augšdaļā) ir tās, kas nodrošinās labākus rezultātus.
Projekts 7 ESP32 relejs Web Serveris
Releja izmantošana ar ESP32 ir lielisks veids, kā attālināti vadīt maiņstrāvas sadzīves tehniku. Šajā apmācībā ir paskaidrots, kā vadīt releja moduli ar ESP32.
Mēs apskatīsim, kā darbojas releja modulis, kā savienot releju ar ESP32 un izveidot web serveris, lai attālināti vadītu releju.
Iepazīstinām ar relejiem
Relejs ir elektriski darbināms slēdzis, un tāpat kā jebkuru citu slēdzi to var ieslēgt vai izslēgt, ļaujot strāvai iet cauri vai nē. To var vadīt ar zemu tilpumutages, piemēram, 3.3 V, ko nodrošina ESP32 GPIO, un ļauj mums kontrolēt lielu skaļumutages, piemēram, 12V, 24V vai tīkla tilpumstage (230 V Eiropā un 120 V ASV).Kreisajā pusē ir divi trīs ligzdu komplekti, lai savienotu lielu tilpumutages, un tapas labajā pusē (zems tilpumstage) izveidojiet savienojumu ar ESP32 GPIO.
Mains Voltage SavienojumiReleja modulim, kas parādīts iepriekšējā fotoattēlā, ir divi savienotāji, katrā no tiem ir trīs ligzdas: kopīgs (COM), normāli aizvērts (NC) un normāli atvērts (NO).
- COM: pievienojiet strāvu, kuru vēlaties kontrolēt (tīkla apjomstagun).
- NC (parasti aizvērts): parasti slēgtā konfigurācija tiek izmantota, ja vēlaties, lai relejs būtu aizvērts pēc noklusējuma. NC ir pievienoti COM kontakti, kas nozīmē, ka strāva plūst, ja vien nenosūtāt signālu no ESP32 uz releja moduli, lai atvērtu ķēdi un apturētu strāvas plūsmu.
- NĒ (parasti atvērts): parasti atvērtā konfigurācija darbojas otrādi: nav savienojuma starp NO un COM tapām, tāpēc ķēde tiek pārtraukta, ja vien nenosūtāt signālu no ESP32, lai aizvērtu ķēdi.
Vadības tapasZema tilpumatagvienā pusē ir četru tapu komplekts un trīs tapu komplekts. Pirmais komplekts sastāv no VCC un GND, lai ieslēgtu moduli, un ieejas 1 (IN1) un ieejas 2 (IN2), lai kontrolētu attiecīgi apakšējo un augšējo releju.
Ja jūsu releja modulim ir tikai viens kanāls, jums būs tikai viens IN kontakts. Ja jums ir četri kanāli, jums būs četras IN tapas un tā tālāk.
Signāls, ko nosūtāt uz IN tapām, nosaka, vai relejs ir aktīvs vai nē. Relejs tiek aktivizēts, kad ieeja ir zemāka par aptuveni 2 V. Tas nozīmē, ka jums būs šādi scenāriji:
- Parasti slēgta konfigurācija (NC):
- HIGH signāls – plūst strāva
- LOW signāls – strāva neplūst
- Parasti atvērta konfigurācija (NO):
- HIGH signāls – strāva neplūst
- LOW signāls – strāva plūst
Jums vajadzētu izmantot parasti slēgtu konfigurāciju, kad strāvai vajadzētu plūst lielāko daļu reižu, un jūs vēlaties to apturēt tikai reizēm.
Izmantojiet parasti atvērtu konfigurāciju, ja vēlaties, lai strāva plūst laiku pa laikam (piemēram,ample, ieslēdziet alamp laiku pa laikam).
Barošanas avota izvēleOtrais tapu komplekts sastāv no GND, VCC un JD-VCC tapām.
JD-VCC tapa nodrošina releja elektromagnētu. Ņemiet vērā, ka modulim ir džempera vāciņš, kas savieno VCC un JD-VCC tapas; šeit redzamā krāsa ir dzeltena, bet jūsu krāsa var būt citāda.
Kad džempera vāciņš ir uzlikts, VCC un JD-VCC tapas ir savienotas. Tas nozīmē, ka releja elektromagnēts tiek tieši darbināts no ESP32 barošanas tapas, tāpēc releja modulis un ESP32 ķēdes nav fiziski izolētas viena no otras.
Bez džempera vāciņa jums ir jānodrošina neatkarīgs barošanas avots, lai iedarbinātu releja elektromagnētu caur JD-VCC tapu. Šī konfigurācija fiziski izolē relejus no ESP32 ar moduļa iebūvēto optisko savienotāju, kas novērš ESP32 bojājumus elektrisko tapas gadījumā.
ShematisksBrīdinājums: Liela tilpuma izmantošanatage barošanas avoti var izraisīt nopietnus savainojumus.
Tāpēc lielas padeves tilpuma vietā tiek izmantotas 5 mm gaismas diodestage spuldzes eksperimentā. Ja neesat pazīstams ar tīkla ttagpajautājiet kādam, kurš jums palīdzēs. Programmējot ESP vai savienojot ķēdi, pārliecinieties, vai viss ir atvienots no elektrotīklatage.ESP32 bibliotēkas instalēšana
Lai izveidotu šo web serveri, mēs izmantojam ESPAsyncWebServera bibliotēka un AsyncTCP bibliotēka.
ESPAsync instalēšanaWebServera bibliotēka
Veiciet nākamās darbības, lai instalētu ESPAsyncWebServeris bibliotēka:
- Noklikšķiniet šeit, lai lejupielādētu ESPAsyncWebServera bibliotēka. Tev vajadzēja
.zip mapi mapē Lejupielādes - Izpakojiet .zip mapi, un jums vajadzētu iegūt ESPAsyncWebServera galvenā mape
- Pārdēvējiet savu mapi no ESPAsyncWebServeris-master uz ESPAsyncWebServeris
- Pārvietojiet ESPAsyncWebServera mape uz jūsu Arduino IDE instalācijas bibliotēku mapi
Alternatīvi, savā Arduino IDE varat doties uz Skice> Iekļaut
Bibliotēka > Pievienot .ZIP bibliotēku… un atlasiet tikko lejupielādēto bibliotēku.
AsyncTCP bibliotēkas instalēšana ESP32
The ESPAsyncWebServeris bibliotēka pieprasa AsyncTCP bibliotēka strādāt. Sekojiet
nākamās darbības, lai instalētu šo bibliotēku:
- Noklikšķiniet šeit, lai lejupielādētu AsyncTCP bibliotēku. Mapē Lejupielādes ir jābūt .zip mapei
- Izpakojiet .zip mapi, un jums vajadzētu iegūt AsyncTCP galveno mapi
1. Pārdēvējiet savu mapi no AsyncTCP-master uz AsyncTCP
3. Pārvietojiet mapi AsyncTCP uz savu Arduino IDE instalācijas bibliotēku mapi
4. Visbeidzot, atkārtoti atveriet savu Arduino IDE
Alternatīvi, savā Arduino IDE varat doties uz Skice> Iekļaut
Bibliotēka > Pievienot .ZIP bibliotēku… un atlasiet tikko lejupielādēto bibliotēku.
Kods
Mēs ieprogrammēsim ESP32, izmantojot Arduino IDE, tāpēc pirms turpināt, pārliecinieties, vai esat instalējis ESP32 pievienojumprogrammu: (Ja esat jau veicis šo darbību, varat pāriet uz nākamo darbību.)
ESP32 papildinājuma instalēšana Arduino IDE
Pēc nepieciešamo bibliotēku instalēšanas atveriet kodu Project_7_ESP32_Relay_Web_Server.ino arduino IDE.
Pirms koda augšupielādes neaizmirstiet ievietot tīkla akreditācijas datus, lai ESP varētu izveidot savienojumu ar jūsu vietējo tīklu.Demonstrācija
Pēc nepieciešamo izmaiņu veikšanas augšupielādējiet kodu savā ESP32.Augšupielādējiet kodu atsauces darbības.
Atveriet seriālo monitoru ar bodu ātrumu 115200 32 un nospiediet pogu ESP32 EN, lai iegūtu tā IP adresi. Pēc tam atveriet pārlūkprogrammu vietējā tīklā un ierakstiet ESPXNUMX IP adresi, lai piekļūtu web serveris.
Atveriet seriālo monitoru ar bodu ātrumu 115200 32 un nospiediet pogu ESP32 EN, lai iegūtu tā IP adresi. Pēc tam atveriet pārlūkprogrammu vietējā tīklā un ierakstiet ESPXNUMX IP adresi, lai piekļūtu web serveris.Piezīme: Jūsu pārlūkprogrammai un ESP32 jābūt savienotiem ar vienu un to pašu LAN.
Jums vajadzētu iegūt kaut ko šādu ar divām pogām kā releju skaitu, ko esat definējis savā kodā.Tagad varat izmantot pogas, lai vadītu relejus, izmantojot viedtālruni.
Projekts_8_Izvades_State_Synchronization_ Web_Serveris
Šis projekts parāda, kā kontrolēt ESP32 vai ESP8266 izejas, izmantojot a web serveri un fizisko pogu vienlaicīgi. Izvades stāvoklis tiek atjaunināts web lapā, vai tas tiek mainīts, izmantojot fizisko pogu vai web serveris.
Projekts beidziesview
Īsi apskatīsim, kā projekts darbojas.ESP32 vai ESP8266 mitina a web serveris, kas ļauj kontrolēt izvades stāvokli;
- Pašreizējais izvades stāvoklis tiek parādīts uz web serveris;
- ESP ir savienots arī ar fizisku spiedpogu, kas kontrolē to pašu izvadi;
- Ja maināt izvades stāvokli, izmantojot fizisko puhspogu, tā pašreizējais stāvoklis tiek atjaunināts arī uz web serveris.
Rezumējot, šis projekts ļauj kontrolēt to pašu izvadi, izmantojot a web serveris un spiedpoga vienlaicīgi. Ikreiz, kad mainās izvades stāvoklis, web serveris ir atjaunināts.
Nepieciešamas daļas
Šeit ir saraksts ar daļām, kas jums nepieciešamas, lai izveidotu ķēdi:
- ESP32 DEVKIT V1 valde
- 5 mm LED
- 220 omu rezistors
- Uzspied pogu
- 10k omu rezistors
- Maizes dēlis
- Džemperu vadi
ShematisksESP32 bibliotēkas instalēšana
Lai izveidotu šo web serveri, mēs izmantojam ESPAsyncWebServera bibliotēka un AsyncTCP bibliotēka. (Ja esat jau veicis šo darbību, varat pāriet uz nākamo darbību.)
ESPAsync instalēšanaWebServera bibliotēka
Veiciet nākamās darbības, lai instalētu ESPAsyncWebServera bibliotēka:
- Noklikšķiniet šeit, lai lejupielādētu ESPAsyncWebServera bibliotēka. Tev vajadzēja
.zip mapi mapē Lejupielādes - Izpakojiet .zip mapi, un jums vajadzētu iegūt ESPAsyncWebServera galvenā mape
- Pārdēvējiet savu mapi no ESPAsyncWebServeris-master uz ESPAsyncWebServeris
- Pārvietojiet ESPAsyncWebServera mape uz jūsu Arduino IDE instalācijas bibliotēku mapi
Alternatīvi, savā Arduino IDE varat doties uz Skice> Iekļaut
Bibliotēka > Pievienot .ZIP bibliotēku… un atlasiet tikko lejupielādēto bibliotēku.
AsyncTCP bibliotēkas instalēšana ESP32
ESPAsyncWebServera bibliotēkai ir nepieciešama AsyncTCP bibliotēka, lai tā darbotos. Lai instalētu šo bibliotēku, veiciet tālāk norādītās darbības.
- Noklikšķiniet šeit, lai lejupielādētu AsyncTCP bibliotēku. Mapē Lejupielādes ir jābūt .zip mapei
- Izpakojiet .zip mapi, un jums vajadzētu iegūt AsyncTCP galveno mapi
- Pārdēvējiet savu mapi no AsyncTCP-master uz AsyncTCP
- Pārvietojiet mapi AsyncTCP uz savu Arduino IDE instalācijas bibliotēku mapi
- Visbeidzot, atkārtoti atveriet savu Arduino IDE
Alternatīvi, savā Arduino IDE varat doties uz Skice> Iekļaut
Bibliotēka > Pievienot .ZIP bibliotēku… un atlasiet tikko lejupielādēto bibliotēku.
Kods
Mēs ieprogrammēsim ESP32, izmantojot Arduino IDE, tāpēc pirms turpināt, pārliecinieties, vai esat instalējis ESP32 pievienojumprogrammu: (Ja esat jau veicis šo darbību, varat pāriet uz nākamo darbību.)
ESP32 papildinājuma instalēšana Arduino IDE
Pēc nepieciešamo bibliotēku instalēšanas atveriet kodu
Projekts_8_Izvades_State_Synchronization_Web_Server.ino arduino IDE.
Pirms koda augšupielādes neaizmirstiet ievietot tīkla akreditācijas datus, lai ESP varētu izveidot savienojumu ar jūsu vietējo tīklu.
Kā darbojas kods
Pogas stāvoklis un izvades stāvoklis
LedState mainīgais satur LED izejas stāvokli. Pēc noklusējuma, kad web serveris startē, tas ir LOW.
ButtonState un lastButtonState tiek izmantoti, lai noteiktu, vai spiedpoga tika nospiesta vai nē.Poga (web serveris)
Mēs neiekļāvām HTML, lai izveidotu pogu mainīgajam index_html.
Tas ir tāpēc, ka mēs vēlamies to mainīt atkarībā no pašreizējā LED stāvokļa, ko var mainīt arī ar spiedpogu.
Mēs esam izveidojuši vietturi pogai %BUTTONPLACEHOLDER%, kas tiks aizstāta ar HTML tekstu, lai vēlāk kodā izveidotu pogu (tas tiek darīts procesora () funkcijā).procesors ()
Procesor() funkcija aizstāj visus vietturus HTML tekstā ar faktiskajām vērtībām. Pirmkārt, tā pārbauda, vai HTML tekstos ir kāds
vietturi %BUTTONPLACEHOLDER%.Pēc tam izsauciet funkciju theoutputState(), kas atgriež pašreizējo izvades stāvokli. Mēs to saglabājam mainīgajā outputStateValue.
Pēc tam izmantojiet šo vērtību, lai izveidotu HTML tekstu, lai parādītu pogu ar pareizo stāvokli:
HTTP GET pieprasījums mainīt izvades stāvokli (JavaScript)
Nospiežot pogu, tiek izsaukta funkcija toggleCheckbox(). Šī funkcija veiks pieprasījumu par dažādiem URLs, lai ieslēgtu vai izslēgtu LED.Lai ieslēgtu LED, tas veic pieprasījumu /update?state=1 URL:
Pretējā gadījumā tas veic pieprasījumu /update?state=0 URL.
HTTP GET pieprasījums atjaunināt stāvokli (JavaScript)
Lai atjauninātu izvades stāvokli web serveri, mēs izsaucam šo funkciju, kas veic jaunu pieprasījumu /state URL katru sekundi.Apstrādājiet pieprasījumus
Pēc tam mums ir jārisina tas, kas notiek, kad ESP32 vai ESP8266 saņem pieprasījumus par šiem URLs.
Kad saknē tiek saņemts pieprasījums /URL, mēs nosūtām HTML lapu, kā arī procesoru.Šajās rindās tiek pārbaudīts, vai esat saņēmis pieprasījumu vietnē /update?state=1 vai /update?state=0 URL un attiecīgi maina ledState.
Kad tiek saņemts pieprasījums /statā URL, mēs nosūtām pašreizējo izvades stāvokli:
cilpa ()
Ciklā () mēs atspējojam spiedpogu un ieslēdzam vai izslēdzam LED atkarībā no LEDState vērtības mainīgs.Demonstrācija
Augšupielādējiet kodu savā ESP32 platē. Augšupielādējiet koda atsauces darbības.
Pēc tam atveriet seriālo monitoru ar bodu ātrumu 115200 XNUMX. Nospiediet iebūvēto EN/RST pogu, lai iegūtu IP adresi.Atveriet pārlūkprogrammu savā lokālajā tīklā un ierakstiet ESP IP adresi. Jums vajadzētu būt piekļuvei web serveri, kā parādīts zemāk.
Piezīme: Jūsu pārlūkprogrammai un ESP32 jābūt savienotiem ar vienu un to pašu LAN.Jūs varat pārslēgt pogu uz web serveri, lai ieslēgtu LED.
To pašu LED var vadīt arī ar fizisko spiedpogu. Tās stāvoklis vienmēr tiks automātiski atjaunināts web serveris.
9. projekts ESP32 DHT11 Web Serveris
Šajā projektā jūs uzzināsit, kā izveidot asinhronu ESP32 web serveris ar DHT11, kas parāda temperatūru un mitrumu, izmantojot Arduino IDE.
Priekšnoteikumi
The web serveris mēs automātiski atjaunosim rādījumus bez nepieciešamības atsvaidzināt web lapā.
Izmantojot šo projektu, jūs uzzināsit:
- Kā nolasīt temperatūru un mitrumu no DHT sensoriem;
- Izveidojiet asinhronu web serveris, izmantojot ESPAsyncWebServera bibliotēka;
- Automātiski atjauniniet sensora rādījumus bez nepieciešamības atsvaidzināt web lapā.
Asinhrons Web Serveris
Lai izveidotu web serveri mēs izmantosim ESPAsyncWebServera bibliotēka kas nodrošina vienkāršu veidu, kā izveidot asinhronu web serveris. Asinhronā izveidošana web serverim ir vairākas advantages, kā minēts bibliotēkas GitHub lapā, piemēram:
- “Apstrādājiet vairāk nekā vienu savienojumu vienlaikus”;
- “Nosūtot atbildi, jūs uzreiz esat gatavs rīkoties ar citiem savienojumiem, kamēr serveris rūpējas par atbildes nosūtīšanu fonā”;
- “Vienkārša veidņu apstrādes programma veidņu apstrādei”;
Nepieciešamas daļas
Lai pabeigtu šo apmācību, jums ir nepieciešamas šādas daļas:
- ESP32 izstrādes plate
- DHT11 modulis
- Maizes dēlis
- Džemperu vadi
ShematisksBibliotēku instalēšana
Šim projektam ir jāinstalē dažas bibliotēkas:
- The DHT un Adafruit vienotais sensors Draiveru bibliotēkas, kas jālasa no DHT sensora.
- ESPAsyncWebServeris un Asinhronais TCP bibliotēkas, lai izveidotu asinhrono web serveris.
Lai instalētu šīs bibliotēkas, izpildiet tālāk sniegtos norādījumus.
DHT sensoru bibliotēkas instalēšana
Lai lasītu no DHT sensora, izmantojot Arduino IDE, jāinstalē DHT sensoru bibliotēka. Veiciet nākamās darbības, lai instalētu bibliotēku.
- Noklikšķiniet šeit, lai lejupielādētu DHT sensoru bibliotēku. Mapē Lejupielādes ir jābūt .zip mapei
- Izpakojiet .zip mapi, un jums vajadzētu iegūt DHT-sensor-library-master mapi
- Pārdēvējiet savu mapi no DHT-sensor-library-master uz DHT_sensor
- Pārvietojiet mapi DHT_sensor uz savu Arduino IDE instalācijas bibliotēku mapi
- Visbeidzot, atkārtoti atveriet savu Arduino IDE
Adafruit vienotā sensora draivera instalēšana
Jums arī jāinstalē Adafruit vienotā sensora draivera bibliotēka strādāt ar DHT sensoru. Veiciet nākamās darbības, lai instalētu bibliotēku.
- Noklikšķiniet šeit, lai lejupielādētu Adafruit Unified Sensor bibliotēku. Mapē Lejupielādes ir jābūt .zip mapei
- Izpakojiet .zip mapi, un jums vajadzētu iegūt mapi Adafruit_sensor-master
- Pārdēvējiet savu mapi no Adafruit_sensor-master uz Adafruit_sensor
- Pārvietojiet mapi Adafruit_sensor uz savu Arduino IDE instalācijas bibliotēku mapi
- Visbeidzot, atkārtoti atveriet savu Arduino IDE
ESPAsync instalēšanaWebServera bibliotēka
Veiciet nākamās darbības, lai instalētu ESPAsyncWebServeris bibliotēka:
- Noklikšķiniet šeit, lai lejupielādētu ESPAsyncWebServera bibliotēka. Tev vajadzēja
.zip mapi mapē Lejupielādes - Izpakojiet .zip mapi, un jums tas jādara
iegūstiet ESPAsyncWebServera galvenā mape - Pārdēvējiet savu mapi no ESPAsyncWebServeris-master uz ESPAsyncWebServeris
- Pārvietojiet ESPAsyncWebServera mape uz jūsu Arduino IDE instalācijas bibliotēku mapi
Async TCP bibliotēkas instalēšana ESP32
The ESPAsyncWebServeris bibliotēka pieprasa AsyncTCP bibliotēkai strādāt. Lai instalētu šo bibliotēku, veiciet tālāk norādītās darbības.
- Noklikšķiniet šeit, lai lejupielādētu AsyncTCP bibliotēku. Mapē Lejupielādes ir jābūt .zip mapei
- Izpakojiet .zip mapi, un jums vajadzētu iegūt AsyncTCP galveno mapi
- Pārdēvējiet savu mapi no AsyncTCP-master uz AsyncTCP
- Pārvietojiet mapi AsyncTCP uz savu Arduino IDE instalācijas bibliotēku mapi
- Visbeidzot, atkārtoti atveriet savu Arduino IDE
Kods
Mēs ieprogrammēsim ESP32, izmantojot Arduino IDE, tāpēc pirms turpināt, pārliecinieties, vai esat instalējis ESP32 pievienojumprogrammu: (Ja esat jau veicis šo darbību, varat pāriet uz nākamo darbību.)
ESP32 papildinājuma instalēšana Arduino IDE
Pēc nepieciešamo bibliotēku instalēšanas atveriet kodu
Projekts_9_ESP32_DHT11_Web_Server.ino arduino IDE.
Pirms koda augšupielādes neaizmirstiet ievietot tīkla akreditācijas datus, lai ESP varētu izveidot savienojumu ar jūsu vietējo tīklu.Kā darbojas kods
Nākamajās rindkopās mēs paskaidrosim, kā kods darbojas. Turpiniet lasīt, ja vēlaties uzzināt vairāk, vai pārejiet uz sadaļu Demonstrācija, lai redzētu gala rezultātu.
Bibliotēku importēšana
Pirmkārt, importējiet vajadzīgās bibliotēkas. WiFi, ESPAsyncWebLai izveidotu, ir nepieciešams serveris un ESPAsyncTCP web serveris. Adafruit_Sensor un DHT bibliotēkas ir nepieciešamas, lai lasītu no DHT11 vai DHT22 sensoriem.Mainīgo definīcija
Definējiet GPIO, ar kuru ir pievienota DHT datu tapa. Šajā gadījumā tas ir savienots ar GPIO 4.Pēc tam atlasiet izmantotā DHT sensora veidu. Mūsu bijušajāample, mēs izmantojam DHT22. Ja izmantojat citu veidu, jums vienkārši jāatsauc sensora komentāri un jākomentē visi pārējie.
Izveidojiet DHT objektu, izmantojot iepriekš definēto veidu un tapu.Izveidojiet asinhronoWebServera objekts 80. portā.
Izlasiet temperatūras un mitruma funkcijas
Mēs esam izveidojuši divas funkcijas: vienu temperatūras nolasīšanai Mēs esam izveidojuši divas funkcijas: vienu temperatūras nolasīšanai (readDHTTemperature()) un otru mitruma nolasīšanai (readDHTHumidity()).Sensora rādījumu iegūšana ir tikpat vienkārša kā lietošana Sensora rādījumu iegūšana ir tikpat vienkārša kā dht objekta readTemperature() un readHumidity() metožu izmantošana.
Mums ir arī nosacījums, kas atgriež divas domuzīmes (–), ja sensoram neizdodas iegūt rādījumus.
Nolasījumi tiek atgriezti kā virknes veids. Lai pludiņu pārveidotu par virkni, izmantojiet funkciju String().
Pēc noklusējuma mēs nolasām temperatūru Celsija grādos. Lai iegūtu temperatūru Fārenheita grādos, komentējiet temperatūru pēc Celsija un noņemiet komentārus no temperatūras Fārenheita grādos, lai jums būtu tālāk norādītā informācija.
Augšupielādējiet kodu
Tagad augšupielādējiet kodu savā ESP32. Pārliecinieties, vai esat izvēlējies pareizo plati un COM portu. Augšupielādējiet kodu atsauces darbības.
Pēc augšupielādes atveriet Serial Monitor ar bodu ātrumu 115200. Nospiediet ESP32 atiestatīšanas pogu. ESP32 IP adrese ir jādrukā seriālā uzraudzīt.Demonstrācija
Atveriet pārlūkprogrammu un ierakstiet ESP32 IP adresi. Jūsu web serverim jāparāda jaunākie sensora rādījumi.
Piezīme: Jūsu pārlūkprogrammai un ESP32 jābūt savienotiem ar vienu un to pašu LAN.
Ņemiet vērā, ka temperatūras un mitruma rādījumi tiek automātiski atjaunināti bez nepieciešamības atsvaidzināt web lapā.
Project_10_ESP32_OLED_Displejs
Šis projekts parāda, kā izmantot 0.96 collu SSD1306 OLED displeju ar ESP32, izmantojot Arduino IDE.
Iepazīstinām ar 0.96 collu OLED displeju
The OLED displejs Šajā apmācībā izmantosim SSD1306 modeli: vienkrāsains, 0.96 collu displejs ar 128 × 64 pikseļiem, kā parādīts nākamajā attēlā.OLED displejam nav nepieciešams fona apgaismojums, kas rada ļoti skaistu kontrastu tumšā vidē. Turklāt tā pikseļi patērē enerģiju tikai tad, kad tie ir ieslēgti, tāpēc OLED displejs patērē mazāk enerģijas, salīdzinot ar citiem displejiem.
Tā kā OLED displejs izmanto I2C sakaru protokolu, vadu pievienošana ir ļoti vienkārša. Kā atsauci varat izmantot šo tabulu.
OLED tapa | ESP32 |
Vin | 3.3V |
GND | GND |
SCL | GPIO 22 |
SDA | GPIO 21 |
ShematisksSSD1306 OLED bibliotēkas instalēšana – ESP32
Ir pieejamas vairākas bibliotēkas, lai kontrolētu OLED displeju ar ESP32.
Šajā apmācībā mēs izmantosim divas Adafruit bibliotēkas: Adafruit_SSD1306 bibliotēka un Adafruit_GFX bibliotēka.
Veiciet nākamās darbības, lai instalētu šīs bibliotēkas.
- Atveriet savu Arduino IDE un dodieties uz Skice> Iekļaut bibliotēku> Pārvaldīt bibliotēkas. Jāatveras bibliotēkas pārvaldniekam.
- Meklēšanas lodziņā ierakstiet “SSD1306” un instalējiet SSD1306 bibliotēku no Adafruit.
- Pēc SSD1306 bibliotēkas instalēšanas no Adafruit meklēšanas lodziņā ierakstiet “GFX” un instalējiet bibliotēku.
- Pēc bibliotēku instalēšanas restartējiet savu Arduino IDE.
Kods
Pēc nepieciešamo bibliotēku instalēšanas atveriet Project_10_ESP32_OLED_Display.ino arduino IDE. kodu
Mēs ieprogrammēsim ESP32, izmantojot Arduino IDE, tāpēc pirms turpināt, pārliecinieties, vai esat instalējis ESP32 papildinājumu: (Ja esat jau veicis šo darbību, varat pāriet uz nākamo darbību.)
ESP32 papildinājuma instalēšana Arduino IDEKā darbojas kods
Bibliotēku importēšana
Pirmkārt, jums ir jāimportē nepieciešamās bibliotēkas. Wire bibliotēka, lai izmantotu I2C, un Adafruit bibliotēkas, lai rakstītu displejā: Adafruit_GFX un Adafruit_SSD1306.Inicializējiet OLED displeju
Pēc tam jūs definējat savu OLED platumu un augstumu. Šajā bijušajāample, mēs izmantojam 128 × 64 OLED displeju. Ja izmantojat citus izmērus, varat to mainīt mainīgajos SCREEN_WIDTH un SCREEN_HEIGHT.Pēc tam inicializējiet displeja objektu ar platumu un augstumu, kas definēts iepriekš, izmantojot I2C sakaru protokolu (&Wire).
Parametrs (-1) nozīmē, ka jūsu OLED displejam nav RESET tapas. Ja jūsu OLED displejam ir RESET tapa, tam jābūt savienotam ar GPIO. Tādā gadījumā jums ir jānodod GPIO numurs kā parametrs.
Atkļūdošanas nolūkos izvēlnē setup () inicializējiet seriālo monitoru ar bodu ātrumu 115200 XNUMX.Inicializējiet OLED displeju ar start() metodi šādi:
Šis fragments arī izdrukā ziņojumu seriālajā monitorā, ja nevarētu izveidot savienojumu ar displeju.
Ja izmantojat citu OLED displeju, iespējams, būs jāmaina OLED adrese. Mūsu gadījumā adrese ir 0x3C.
Pēc displeja inicializācijas pievienojiet divu sekunžu aizkavi, lai OLED būtu pietiekami daudz laika inicializēt pirms teksta rakstīšanas:
Skaidrs displejs, iestatiet fonta lielumu, krāsu un rakstiet tekstu
Pēc displeja inicializācijas notīriet displeja buferi, izmantojot metodi clearDisplay().
Pirms teksta rakstīšanas ir jāiestata teksta izmērs, krāsa un vieta, kur teksts tiks parādīts OLED.
Iestatiet fonta lielumu, izmantojot setTextSize() metodi:Iestatiet fonta krāsu ar setTextColor() metodi:
WHITE iestata baltu fontu un melnu fonu.
Definējiet vietu, kur teksts sākas, izmantojot metodi setCursor(x,y). Šajā gadījumā mēs iestatām teksta sākumu ar (0,0) koordinātām – augšējā kreisajā stūrī.Visbeidzot, varat nosūtīt tekstu uz displeju, izmantojot metodi println() šādi
Pēc tam jums ir jāizsauc displeja() metode, lai faktiski parādītu tekstu ekrānā.
Adafruit OLED bibliotēka nodrošina noderīgas metodes teksta vienkāršai ritināšanai.
- startscrollright(0x00, 0x0F): ritiniet tekstu no kreisās puses uz labo
- startscrollleft(0x00, 0x0F): ritiniet tekstu no labās puses uz kreiso
- startscrolldiagright(0x00, 0x07): ritiniet tekstu no kreisā apakšējā stūra uz labo augšējo stūri startscrolldiagleft(0x00, 0x07): ritiniet tekstu no labā apakšējā stūra uz kreiso augšējo stūri
Augšupielādējiet kodu
Tagad augšupielādējiet kodu savā ESP32. Augšupielādējiet kodu atsauces darbības.
Pēc koda augšupielādes OLED displejā tiks parādīts ritināms teksts.
Dokumenti / Resursi
![]() |
LAFVIN ESP32 pamata sākuma komplekts [pdfLietošanas instrukcija ESP32 pamata sākuma komplekts, ESP32, pamata sākuma komplekts, sākuma komplekts |