ESP32 Basic ræsir
Kit
Pökkunarlisti
ESP32 Inngangur
Nýr í ESP32? Byrjaðu hér! ESP32 er röð ódýrra og orkulítils System on a Chip (SoC) örstýringa þróaðar af Espressif sem innihalda þráðlausa Wi-Fi og Bluetooth möguleika og tvíkjarna örgjörva. Ef þú þekkir ESP8266 er ESP32 arftaki hans, hlaðinn mörgum nýjum eiginleikum.ESP32 upplýsingar
Ef þú vilt verða aðeins tæknilegri og nákvæmari geturðu skoðað eftirfarandi nákvæmar upplýsingar um ESP32 (heimild: http://esp32.net/)—fyrir frekari upplýsingar, athugaðu gagnablaðið):
- Þráðlaus tenging WiFi: 150.0 Mbps gagnahraði með HT40
- Bluetooth: BLE (Bluetooth Low Energy) og Bluetooth Classic
- Örgjörvi: Tensilica Xtensa Dual-Core 32-bita LX6 örgjörvi, keyrandi á 160 eða 240 MHz
- Minni:
- ROM: 448 KB (fyrir ræsingu og kjarnaaðgerðir)
- SRAM: 520 KB (fyrir gögn og leiðbeiningar)
- RTC fas SRAM: 8 KB (fyrir gagnageymslu og aðal örgjörva við RTC ræsingu úr djúpsvefnham)
- RTC hægur SRAM: 8KB (fyrir aðgang að meðvinnsluaðila í djúpsvefnham) eFuse: 1 Kbit (þar af eru 256 bitar notaðir fyrir kerfið (MAC vistfang og flísstilling) og 768 bitar sem eftir eru eru fráteknir fyrir forrit viðskiptavina, þar á meðal Flash-encryption og Chip-ID)
Innbyggt flass: flass tengt innra með IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 og SD_DATA_1 á ESP32-D2WD og ESP32-PICO-D4.
- 0 MiB (ESP32-D0WDQ6, ESP32-D0WD og ESP32-S0WD flísar)
- 2 MiB (ESP32-D2WD flís)
- 4 MiB (ESP32-PICO-D4 SiP mát)
Low Power: tryggir að þú getir enn notað ADC viðskipti, til dæmisample, í djúpum svefni.
Jaðarinntak/úttak:
- jaðarviðmót með DMA sem inniheldur rafrýmd snertingu
- ADC (analog-to-digital breytir)
- DAC (Digital-to-Analog Converter)
- I²C (Inter-Integrated Circuit)
- UART (Universal Ósamstilltur móttakari/sendi)
- SPI (Serial Peripheral Interface)
- I²S (Integrated Interchip Sound)
- RMII (Reduced Media-Independent Interface)
- PWM (Puls-Width Modulation)
Öryggi: vélbúnaðarhraðlar fyrir AES og SSL/TLS
ESP32 þróunartöflur
ESP32 vísar til beina ESP32 flíssins. Hins vegar er „ESP32“ hugtakið einnig notað til að vísa til ESP32 þróunarborða. Það er hvorki auðvelt né hagnýtt að nota ESP32 beina flís, sérstaklega þegar þú lærir, prófar og er frumgerð. Oftast viltu nota ESP32 þróunarborð.
Við munum nota ESP32 DEVKIT V1 borðið sem viðmið. Myndin hér að neðan sýnir ESP32 DEVKIT V1 borðið, útgáfu með 30 GPIO pinna.Tæknilýsing – ESP32 DEVKIT V1
Eftirfarandi tafla sýnir samantekt á ESP32 DEVKIT V1 DOIT borðeiginleikum og forskriftum:
Fjöldi kjarna | 2 (tví kjarna) |
Wi-Fi | 2.4 GHz allt að 150 Mbit/s |
Bluetooth | BLE (Bluetooth Low Energy) og eldri Bluetooth |
Arkitektúr | 32 bita |
Klukkutíðni | Allt að 240 MHz |
vinnsluminni | 512 KB |
Pinnar | 30 (fer eftir gerð) |
Jaðartæki | Rafrýmd snerting, ADC (hliðræn í stafræn breytir), DAC (stafræn til hliðstæða breytir), 12C (Inter-Integrated Circuit), UART (alhliða ósamstilltur móttakari/sendi), CAN 2.0 (Controller Area Netwokr), SPI (Serial Peripheral Interface), 12S (Integrated Inter-IC Hljóð), RMII (Reduced Media-Independent Interface), PWM (púlsbreiddarmótun) og fleira. |
Innbyggðir takkar | RESET og BOOT hnappar |
Innbyggðir LED | innbyggður blár LED tengdur við GPIO2; innbyggð rauð LED sem sýnir að verið er að kveikja á töflunni |
USB til UART brú |
CP2102 |
Það kemur með microUSB tengi sem þú getur notað til að tengja borðið við tölvuna þína til að hlaða inn kóða eða setja á rafmagn.
Það notar CP2102 flöguna (USB til UART) til að hafa samskipti við tölvuna þína í gegnum COM tengi með raðviðmóti. Annar vinsæll flís er CH340. Athugaðu hvað er USB til UART flögubreytirinn á borðinu þínu vegna þess að þú þarft að setja upp nauðsynlega rekla svo að tölvan þín geti átt samskipti við borðið (nánari upplýsingar um þetta síðar í þessari handbók).
Þetta borð kemur einnig með RESET hnappi (má vera merktur EN) til að endurræsa töfluna og BOOT hnapp til að setja töfluna í blikkandi stillingu (hægt að fá kóða). Athugaðu að sum bretti eru kannski ekki með BOOT hnapp.
Það kemur einnig með innbyggðu bláu LED sem er innbyrðis tengdur við GPIO 2. Þessi LED er gagnlegur fyrir kembiforrit til að gefa einhvers konar sjónrænt líkamlegt úttak. Það er líka rautt ljósdíóða sem kviknar þegar þú gefur rafmagn til borðsins.ESP32 Pinout
ESP32 jaðartækin innihalda:
- 18 Analog-to-Digital Converter (ADC) rásir
- 3 SPI tengi
- 3 UART tengi
- 2 I2C tengi
- 16 PWM úttaksrásir
- Tveir stafrænir í hliðrænir breytir (DAC)
- 2 I2S tengi
- 10 rafrýmd skynjun GPIOs
ADC (analog to digital converter) og DAC (digital to analog converter) eiginleikunum er úthlutað til ákveðinna statískra pinna. Hins vegar geturðu ákveðið hvaða pinnar eru UART, I2C, SPI, PWM osfrv - þú þarft bara að úthluta þeim í kóðanum. Þetta er mögulegt vegna multiplexing eiginleika ESP32 flíssins.
Þó að þú getir skilgreint eiginleika pinna í hugbúnaðinum, þá eru pinnar úthlutað sjálfgefið eins og sýnt er á eftirfarandi myndAð auki eru pinnar með sérstaka eiginleika sem gera þá hentuga eða ekki fyrir tiltekið verkefni. Eftirfarandi tafla sýnir hvaða pinna er best að nota sem inntak, úttak og hverja þú þarft að vera varkár.
Það er í lagi að nota pinnana sem eru auðkenndir með grænu. Þeir sem eru auðkenndir með gulu eru í lagi að nota, en þú þarft að fylgjast með því að þeir gætu haft óvænta hegðun aðallega við ræsingu. Ekki er mælt með því að nota pinnana sem eru auðkenndir með rauðu sem inntak eða útgangur.
GP IO | Inntak | Framleiðsla | Skýringar |
0 | dreginn upp | OK | gefur út PWM merki við ræsingu, verður að vera LÁTT til að fara í blikkandi stillingu |
1 | TX pinna | OK | kemba úttak við ræsingu |
2 | OK | OK | tengt við ljósdíóða um borð, verður að vera á floti eða LÁGT til að fara í blikkandi stillingu |
3 | OK | RX pinna | HÁTT við stígvél |
4 | OK | OK | |
5 | OK | OK | gefur út PWM merki við ræsingu, gjörvulegur pinna |
12 | OK | OK | stígvélin bilar ef dregin er hátt, festa pinna |
13 | OK | OK | |
14 | OK | OK | gefur út PWM merki við ræsingu |
15 | OK | OK | gefur út PWM merki við ræsingu, gjörvulegur pinna |
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 | eingöngu inntak | |
35 | OK | eingöngu inntak | |
36 | OK | eingöngu inntak | |
39 | OK | eingöngu inntak |
Haltu áfram að lesa til að fá ítarlegri og ítarlegri greiningu á ESP32 GPIO og virkni þeirra.
Inntak aðeins pinna
GPIOs 34 til 39 eru GPIs - inntakspinnar eingöngu. Þessir pinnar eru ekki með innri uppdráttar- eða niðurdráttarviðnám. Ekki er hægt að nota þá sem úttak, svo notaðu þessa pinna aðeins sem inntak:
- GPIO 34
- GPIO 35
- GPIO 36
- GPIO 39
SPI flass innbyggt í ESP-WROOM-32
GPIO 6 til GPIO 11 eru sýndar á sumum ESP32 þróunartöflum. Hins vegar eru þessir pinnar tengdir innbyggðu SPI flassinu á ESP-WROOM-32 flísinni og er ekki mælt með þeim til annarra nota. Svo, ekki nota þessa pinna í verkefnum þínum:
- GPIO 6 (SCK/CLK)
- GPIO 7 (SDO/SD0)
- GPIO 8 (SDI/SD1)
- GPIO 9 (SHD/SD2)
- GPIO 10 (SWP/SD3)
- GPIO 11 (CSC/CMD)
Rafrýmd snerti-GPIO
ESP32 er með 10 innri rafrýmd snertiskynjara. Þeir geta skynjað afbrigði í öllu sem hefur rafhleðslu, eins og húð manna. Þannig að þeir geta greint afbrigði af völdum þegar þeir snerta GPIO með fingri. Þessa pinna má auðveldlega samþætta í rafrýmd púða og skipta um vélræna hnappa. Rafrýmd snertipinnana er einnig hægt að nota til að vekja ESP32 úr djúpum svefni. Þessir innri snertiskynjarar eru tengdir þessum 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)
Analog til Digital Converter (ADC)
ESP32 er með 18 x 12 bita ADC inntaksrásir (á meðan ESP8266 er aðeins með 1x 10 bita ADC). Þetta eru GPIO sem hægt er að nota sem ADC og viðkomandi rásir:
- 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)
Athugið: Ekki er hægt að nota ADC2 pinna þegar Wi-Fi er notað. Svo, ef þú ert að nota Wi-Fi og átt í vandræðum með að fá verðmæti frá ADC2 GPIO, gætirðu íhugað að nota ADC1 GPIO í staðinn. Það ætti að leysa vandamál þitt.
ADC inntaksrásirnar eru með 12 bita upplausn. Þetta þýðir að þú getur fengið hliðstæða lestur á bilinu 0 til 4095, þar sem 0 samsvarar 0V og 4095 til 3.3V. Þú getur líka stillt upplausn rásanna þinna á kóðanum og ADC-sviðinu.
ESP32 ADC pinnar hafa ekki línulega hegðun. Þú munt líklega ekki geta greint á milli 0 og 0.1V, eða á milli 3.2 og 3.3V. Þú þarft að hafa það í huga þegar þú notar ADC pinna. Þú munt fá svipaða hegðun og sýnd er á eftirfarandi mynd.Stafrænn í hliðrænn breytir (DAC)
Það eru 2 x 8 bita DAC rásir á ESP32 til að umbreyta stafrænum merkjum í analog voltage merki úttak. Þetta eru DAC rásirnar:
- DAC1 (GPIO25)
- DAC2 (GPIO26)
RTC GPIO
Það er RTC GPIO stuðningur á ESP32. Hægt er að nota GPIO sem er flutt til RTC lágstyrks undirkerfisins þegar ESP32 er í djúpum svefni. Þessar RTC GPIO er hægt að nota til að vekja ESP32 úr djúpum svefni þegar Ultra Low
Power (ULP) co-processor er í gangi. Eftirfarandi GPIO er hægt að nota sem ytri vakningargjafa.
- 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 stjórnandi hefur 16 sjálfstæðar rásir sem hægt er að stilla til að búa til PWM merki með mismunandi eiginleika. Hægt er að nota alla pinna sem geta virkað sem úttak sem PWM pinna (GPIO 34 til 39 geta ekki búið til PWM).
Til að stilla PWM merki þarftu að skilgreina þessar breytur í kóðanum:
- Tíðni merkis;
- Vinnulota;
- PWM rás;
- GPIO þar sem þú vilt gefa út merkið.
I2C
ESP32 hefur tvær I2C rásir og hægt er að stilla hvaða pinna sem er sem SDA eða SCL. Þegar ESP32 er notað með Arduino IDE eru sjálfgefna I2C pinnar:
- GPIO 21 (SDA)
- GPIO 22 (SCL)
Ef þú vilt nota aðra pinna þegar þú notar vírsafnið þarftu bara að hringja í:
Wire.begin(SDA, SCL);
SPI
Sjálfgefið er pinnavörpun fyrir SPI:
SPI | MOSI | MISO | CLK | CS |
VSPI | GPIO 23 | GPIO 19 | GPIO 18 | GPIO 5 |
HSPI | GPIO 13 | GPIO 12 | GPIO 14 | GPIO 15 |
Truflar
Hægt er að stilla allar GPIO sem truflanir.
Festingarpinnar
ESP32 flísinn er með eftirfarandi spennapinnum:
- GPIO 0 (verður að vera LÁGT til að fara í ræsiham)
- GPIO 2 (verður að vera fljótandi eða LÁGT við ræsingu)
- GPIO 4
- GPIO 5 (verður að vera HÁTT við ræsingu)
- GPIO 12 (verður að vera LÁGT við ræsingu)
- GPIO 15 (verður að vera HÁTT við ræsingu)
Þetta er notað til að setja ESP32 í ræsiforrit eða blikkandi stillingu. Á flestum þróunartöflum með innbyggðum USB/Serial þarftu ekki að hafa áhyggjur af ástandi þessara pinna. Stjórnin setur pinnana í rétt ástand til að blikka eða ræsa. Nánari upplýsingar um ESP32 Boot Mode Val er að finna hér.
Hins vegar, ef þú ert með jaðartæki tengd þessum pinna, gætirðu átt í vandræðum með að reyna að hlaða upp nýjum kóða, blikka ESP32 með nýjum fastbúnaði eða endurstilla borðið. Ef þú ert með jaðartæki tengd við bandpinnana og þú átt í vandræðum með að hlaða inn kóða eða blikka ESP32, gæti það verið vegna þess að þessi jaðartæki koma í veg fyrir að ESP32 fari í réttan hátt. Lestu skjölin fyrir val á ræsistillingu til að leiðbeina þér í rétta átt. Eftir endurstillingu, blikkandi eða ræsingu virka þessir pinnar eins og búist var við.
Pinnar HÁTT við Boot
Sumir GPIOs breyta ástandi sínu í HIGH eða gefa út PWM merki við ræsingu eða endurstillingu.
Þetta þýðir að ef þú ert með úttak tengd þessum GPIO geturðu fengið óvæntar niðurstöður þegar ESP32 endurstillir eða ræsir.
- GPIO 1
- GPIO 3
- GPIO 5
- GPIO 6 til GPIO 11 (tengt við ESP32 samþætta SPI flassminni – ekki mælt með notkun).
- GPIO 14
- GPIO 15
Virkja (EN)
Enable (EN) er virkjunarpinna 3.3V þrýstijafnarans. Það er dregið upp, svo tengdu við jörðu til að slökkva á 3.3V þrýstijafnara. Þetta þýðir að þú getur notað þennan pinna sem er tengdur við þrýstihnapp til að endurræsa ESP32 þinn, til dæmisample.
GPIO straumur dreginn
Alger hámarksstraumur sem dreginn er á hvern GPIO er 40mA samkvæmt hlutanum „Mælt rekstrarskilyrði“ í ESP32 gagnablaðinu.
ESP32 Innbyggður Hall Effect Sensor
ESP32 er einnig með innbyggðan hall effect skynjara sem skynjar breytingar á segulsviði í umhverfi sínu
ESP32 Arduino IDE
Það er viðbót fyrir Arduino IDE sem gerir þér kleift að forrita ESP32 með því að nota Arduino IDE og forritunarmál þess. Í þessari kennslu munum við sýna þér hvernig á að setja upp ESP32 borðið í Arduino IDE hvort sem þú ert að nota Windows, Mac OS X eða Linux.
Forkröfur: Arduino IDE uppsett
Áður en þú byrjar þessa uppsetningaraðferð þarftu að hafa Arduino IDE uppsett á tölvunni þinni. Það eru tvær útgáfur af Arduino IDE sem þú getur sett upp: útgáfa 1 og útgáfa 2.
Þú getur halað niður og sett upp Arduino IDE með því að smella á eftirfarandi hlekk: arduino.cc/en/Main/Software
Hvaða Arduino IDE útgáfu mælum við með? Í augnablikinu eru nokkrar plugins fyrir ESP32 (eins og SPIFFS Filesystem Uploader Plugin) sem eru ekki enn studdar á Arduino 2. Þannig að ef þú ætlar að nota SPIFFS viðbótina í framtíðinni mælum við með því að setja upp eldri útgáfu 1.8.X. Þú þarft bara að fletta niður á Arduino hugbúnaðarsíðuna til að finna það.
Setur upp ESP32 viðbót í Arduino IDE
Til að setja upp ESP32 borðið í Arduino IDE skaltu fylgja þessum næstu leiðbeiningum:
- Í Arduino IDE, farðu til File> Óskir
- Sláðu inn eftirfarandi í „Viðbótarstjórnarstjóri URLs" reiturinn:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Smelltu síðan á „OK“ hnappinn:Athugið: ef þú ert nú þegar með ESP8266 borðin URL, þú getur aðskilið URLs með kommu sem hér segir:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Opnaðu stjórnanda. Farðu í Tools > Board > Board Manager…Leitaðu að ESP32 and press install button for the “ESP32 by Espressif Systems“:
Það er það. Það ætti að vera sett upp eftir nokkrar sekúndur.
Hladdu upp prófkóða
Tengdu ESP32 borðið við tölvuna þína. Með Arduino IDE þinn opinn skaltu fylgja þessum skrefum:
- Veldu borðið þitt í Tools > Board valmyndinni (í mínu tilfelli er það ESP32 DEV Module)
- Veldu tengið (ef þú sérð ekki COM tengið í Arduino IDE þarftu að setja upp CP210x USB til UART Bridge VCP rekla):
- Opnaðu eftirfarandi tdample undir File > Dæmiamples > WiFi
(ESP32) > WiFiScan - Ný skissa opnast í Arduino IDE:
- Ýttu á Hlaða upp hnappinn í Arduino IDE. Bíddu í nokkrar sekúndur á meðan kóðinn safnar saman og hleður upp á borðið þitt.
- Ef allt gekk eins og búist var við ættirðu að sjá „Hlaðið upp“. skilaboð.
- Opnaðu Arduino IDE Serial Monitor á baudratanum 115200:
- Ýttu á ESP32 virkjunarhnappinn um borð og þú ættir að sjá netkerfin sem eru í boði nálægt ESP32 þínum:
Úrræðaleit
Ef þú reynir að hlaða upp nýrri skissu á ESP32 þinn og þú færð þessi villuskilaboð "Bráðskekkjuvilla kom: Mistókst að tengjast ESP32: Tími rann út... Tengist...". Það þýðir að ESP32 þinn er ekki í blikkandi/hleðsluham.
Fylgdu þessum skrefum með réttu nafni borðs og COM fyrir valið:
Haltu inni „BOOT“ hnappinum á ESP32 borðinu þínu
- Ýttu á „Hlaða upp“ hnappinn í Arduino IDE til að hlaða upp skissunni þinni:
- Eftir að þú sérð „Tengist...“ skilaboð í Arduino IDE, slepptu fingrinum frá „BOOT“ hnappinum:
- Eftir það ættirðu að sjá skilaboðin „Lokið að hlaða upp“
Það er það. ESP32 þinn ætti að vera með nýja skissuna í gangi. Ýttu á „VIRKJA“ hnappinn til að endurræsa ESP32 og keyra nýju skissuna sem hlaðið var upp.
Þú verður líka að endurtaka þessa hnapparöð í hvert skipti sem þú vilt hlaða upp nýrri skissu.
Verkefni 1 ESP32 Inntak Úttak
Í þessari byrjunarhandbók muntu læra hvernig á að lesa stafræn inntak eins og hnapprofa og stjórna stafrænum útgangi eins og LED með því að nota ESP32 með Arduino IDE.
Forkröfur
Við munum forrita ESP32 með Arduino IDE. Svo, vertu viss um að þú hafir ESP32 borðviðbótina uppsett áður en þú heldur áfram:
- Setur upp ESP32 viðbót í Arduino IDE
ESP32 stjórnar stafrænum útgangi
Fyrst þarftu að stilla GPIO sem þú vilt stjórna sem OUTPUT. Notaðu pinMode() aðgerðina sem hér segir:
pinMode (GPIO, OUTPUT);
Til að stjórna stafrænu úttaki þarftu bara að nota digitalWrite() aðgerðina, sem samþykkir sem rök, GPIO (int tala) sem þú ert að vísa til og ástandið, annað hvort HIGH eða LOW.
digitalWrite(GPIO, STATE);
Hægt er að nota alla GPIO sem útganga nema GPIO 6 til 11 (tengd við innbyggða SPI flassið) og GPIO 34, 35, 36 og 39 (eingöngu inntaks GPIOs);
Lærðu meira um ESP32 GPIO: ESP32 GPIO Reference Guide
ESP32 lesa stafræn inntak
Fyrst skaltu stilla GPIO sem þú vilt lesa sem INPUT með því að nota pinMode() aðgerðina sem hér segir:
pinMode (GPIO, INNPUT);
Til að lesa stafrænt inntak, eins og hnapp, notarðu digitalRead() aðgerðina, sem samþykkir sem rök, GPIO (int tala) sem þú ert að vísa til.
digitalRead(GPIO);
Hægt er að nota alla ESP32 GPIO sem inntak, nema GPIO 6 til 11 (tengd við innbyggða SPI flassið).
Lærðu meira um ESP32 GPIO: ESP32 GPIO Reference Guide
Verkefni Example
Til að sýna þér hvernig á að nota stafræn inntak og stafræn úttak, munum við byggja einfalt verkefni tdample með þrýstihnappi og LED. Við lesum stöðu þrýstihnappsins og kveikjum á LED í samræmi við það eins og sýnt er á eftirfarandi mynd.
Varahlutir nauðsynlegir
Hér er listi yfir þá hluta sem þú þarft til að byggja upp hringrásina:
- ESP32 DEVKIT V1
- 5 mm LED
- 220 Ohm viðnám
- Knappur
- 10k Ohm viðnám
- Brauðbretti
- Jumper vír
Skýringarmynd
Áður en þú heldur áfram þarftu að setja saman hringrás með LED og þrýstihnappi.
Við munum tengja LED við GPIO 5 og þrýstihnappinn við GPIO 4.Kóði
Opnaðu kóðann Project_1_ESP32_Inputs_Outputs.ino í arduino IDEHvernig kóðinn virkar
Í eftirfarandi tveimur línum býrðu til breytur til að úthluta pinna:
Hnappurinn er tengdur við GPIO 4 og ljósdíóðan er tengd við GPIO 5. Þegar Arduino IDE er notað með ESP32 samsvarar 4 GPIO 4 og 5 samsvarar GPIO 5.
Næst býrðu til breytu til að halda hnappastöðunni. Sjálfgefið er það 0 (ekki ýtt á).
int buttonState = 0;
Í uppsetningunni() frumstillirðu hnappinn sem INNPUT og LED sem OUTPUT.
Til þess notarðu pinMode() aðgerðina sem tekur við pinnanum sem þú ert að vísa í, og stillinguna: INPUT eða OUTPUT.
pinMode(hnappurPin, INPUT);
pinMode(ledPin, OUTPUT);
Í lykkjunni () er þar sem þú lest stöðu hnappsins og stillir LED í samræmi við það.
Í næstu línu lestu stöðu hnappsins og vistar hann í breytunni buttonState.
Eins og við höfum séð áður notarðu digitalRead() aðgerðina.
buttonState = digitalRead(buttonPin);
Eftirfarandi if staðhæfing, athugar hvort hnappastaðan sé HÁTT. Ef það er það kveikir það á LED með því að nota digitalWrite() fallið sem samþykkir ledPin og ástandið HIGH sem rök.
if (hnappurState == HIGH)Ef ástand hnappsins er ekki HÁTT, slökktirðu á LED. Stilltu bara LOW sem önnur rök á í digitalWrite() fallinu.
Að hlaða upp kóðanum
Áður en þú smellir á upphleðsluhnappinn skaltu fara í Tools > Board og velja borðið :DOIT ESP32 DEVKIT V1 borð.
Farðu í Tools > Port og veldu COM tengið sem ESP32 er tengdur við. Ýttu síðan á upphleðsluhnappinn og bíddu eftir skilaboðunum „Lokið að hlaða upp“.Athugið: Ef þú sérð fullt af punktum (tengist...__...__) í villuleitarglugganum og skilaboðin „Mistókst að tengjast ESP32: Tímamörk beðið eftir pakkahaus“ þýðir það að þú þarft að ýta á ESP32 BOOT hnappinn um borð á eftir punktunum
byrja að birtast. Úrræðaleit
Sýning
Eftir að hafa hlaðið upp kóðanum skaltu prófa hringrásina þína. LED ætti að kvikna þegar þú ýtir á þrýstihnappinn:Og slökktu á því þegar þú sleppir því:
Verkefni 2 ESP32 hliðræn inntak
Þetta verkefni sýnir hvernig á að lesa hliðræn inntak með ESP32 með Arduino IDE.
Analog lestur er gagnlegur til að lesa gildi úr breytilegum viðnámum eins og potentiometers eða hliðstæðum skynjurum.
Analog inntak (ADC)
Að lesa hliðrænt gildi með ESP32 þýðir að þú getur mælt mismunandi magntage stig á milli 0 V og 3.3 V.
Binditage mæld er síðan úthlutað gildi á milli 0 og 4095, þar sem 0 V samsvarar 0, og 3.3 V samsvarar 4095. Hvaða rúmmál sem er.tage á milli 0 V og 3.3 V mun fá samsvarandi gildi þar á milli.ADC er ólínulegt
Helst myndirðu búast við línulegri hegðun þegar þú notar ESP32 ADC pinna.
Það gerist hins vegar ekki. Það sem þú færð er hegðun eins og sýnt er á eftirfarandi töflu:Þessi hegðun þýðir að ESP32 þinn er ekki fær um að greina 3.3 V frá 3.2 V.
Þú færð sama gildi fyrir bæði binditagsímanúmer: 4095.
Sama gerist fyrir mjög lágt voltage gildi: fyrir 0 V og 0.1 V færðu sama gildi: 0. Þú þarft að hafa þetta í huga þegar þú notar ESP32 ADC pinna.
analogRead() aðgerð
Að lesa hliðrænt inntak með ESP32 með Arduino IDE er eins einfalt og að nota analogRead() aðgerðina. Það samþykkir sem rök, GPIO sem þú vilt lesa:
analogRead(GPIO);
Aðeins 15 eru fáanlegar í DEVKIT V1board (útgáfa með 30 GPIO).
Gríptu ESP32 töfluna þína og finndu ADC pinnana. Þetta eru auðkennd með rauðum ramma á myndinni hér að neðan.Þessir hliðrænu inntakspinnar eru með 12 bita upplausn. Þetta þýðir að þegar þú lest hliðrænt inntak getur svið þess verið breytilegt frá 0 til 4095.
Athugið: ADC2 pinna er ekki hægt að nota þegar Wi-Fi er notað. Svo, ef þú ert að nota Wi-Fi og átt í vandræðum með að fá verðmæti úr ADC2 GPIO, gætirðu íhugað að nota ADC1 GPIO í staðinn, það ætti að leysa vandamálið þitt.
Til að sjá hvernig allt tengist saman munum við búa til einfalt fyrrverandiample til að lesa hliðrænt gildi úr styrkleikamæli.
Varahlutir nauðsynlegir
Fyrir þetta frvample, þú þarft eftirfarandi hluta:
- ESP32 DEVKIT V1 borð
- Potentiometer
- Brauðbretti
- Jumper vír
Teikning
Tengdu potentiometer við ESP32 þinn. Miðpinninn á potentiometer ætti að vera tengdur við GPIO 4. Þú getur notað eftirfarandi skýringarmynd sem viðmið.Kóði
Við munum forrita ESP32 með Arduino IDE, svo vertu viss um að þú hafir ESP32 viðbótina uppsetta áður en þú heldur áfram: (Ef þú hefur þegar gert þetta skref geturðu sleppt því í næsta skref.)
Setur upp ESP32 viðbót í Arduino IDE
Opnaðu kóðann Project_2_ESP32_Inputs_Outputs.ino í arduino IDEÞessi kóði les einfaldlega gildin úr potentiometernum og prentar þau gildi í Serial Monitor.
Í kóðanum byrjarðu á því að skilgreina GPIO sem potentiometer er tengdur við. Í þessu frvample, GPIO 4.Í uppsetningunni(), frumstillið raðsamskipti á baudratanum 115200.
Í lykkjunni(), notaðu analogRead() aðgerðina til að lesa hliðrænt inntak frá potPin.
Að lokum skaltu prenta gildin sem lesin eru af styrkleikamælinum í raðskjánum.
Hladdu upp kóðanum sem gefinn er upp á ESP32 þinn. Gakktu úr skugga um að þú hafir valið rétt borð og COM tengi í valmyndinni Verkfæri.
Er að prófa Example
Eftir að hafa hlaðið upp kóðanum og ýtt á ESP32 endurstillingarhnappinn, opnaðu Serial Monitor á baudratanum 115200. Snúðu potentiometernum og sjáðu gildin breytast.Hámarksgildið sem þú færð er 4095 og lágmarksgildið er 0.
Umbúðir
Í þessari grein hefur þú lært hvernig á að lesa hliðræn inntak með því að nota ESP32 með Arduino IDE. Í stuttu máli:
- ESP32 DEVKIT V1 DOIT borðið (útgáfa með 30 pinna) hefur 15 ADC pinna sem þú getur notað til að lesa hliðræn inntak.
- Þessir pinnar eru með 12 bita upplausn, sem þýðir að þú getur fengið gildi frá 0 til 4095.
- Til að lesa gildi í Arduino IDE notarðu einfaldlega analogRead() aðgerðina.
- ESP32 ADC pinnar hafa ekki línulega hegðun. Þú munt líklega ekki geta greint á milli 0 og 0.1V, eða á milli 3.2 og 3.3V. Þú þarft að hafa það í huga þegar þú notar ADC pinna.
Verkefni 3 ESP32 PWM (hliðræn úttak)
Í þessari kennslu munum við sýna þér hvernig á að búa til PWM merki með ESP32 með Arduino IDE. Sem fyrrverandiampVið munum byggja einfalda hringrás sem deyfir LED með LED PWM stýringu ESP32.ESP32 LED PWM stjórnandi
ESP32 er með LED PWM stjórnandi með 16 sjálfstæðum rásum sem hægt er að stilla til að búa til PWM merki með mismunandi eiginleika.
Hér eru skrefin sem þú þarft að fylgja til að dimma LED með PWM með Arduino IDE:
- Fyrst þarftu að velja PWM rás. Það eru 16 rásir frá 0 til 15.
- Þá þarftu að stilla PWM merkjatíðni. Fyrir LED er tíðnin 5000 Hz í lagi að nota.
- Þú þarft líka að stilla upplausn vaktferils merkisins: þú hefur upplausn frá 1 til 16 bita. Við munum nota 8-bita upplausn, sem þýðir að þú getur stjórnað LED birtustigi með því að nota gildi frá 0 til 255.
- Næst þarftu að tilgreina hvaða GPIO eða GPIO merkið mun birtast á. Til þess muntu nota eftirfarandi aðgerð:
ledcAttachPin(GPIO, rás)
Þessi aðgerð tekur við tveimur rökum. Fyrsta er GPIO sem mun gefa út merkið og annað er rásin sem mun búa til merkið. - Að lokum, til að stjórna LED birtustigi með PWM, notar þú eftirfarandi aðgerð:
ledcWrite(rás, dutycycle)
Þessi aðgerð samþykkir sem rök rásina sem býr til PWM merkið og vinnulotuna.
Varahlutir nauðsynlegir
Til að fylgja þessari kennslu þarftu þessa hluta:
- ESP32 DEVKIT V1 borð
- 5mm LED
- 220 Ohm viðnám
- Brauðbretti
- Jumper vír
Teikning
Tengdu LED við ESP32 þinn eins og í eftirfarandi skýringarmynd. Ljósdíóðan ætti að vera tengd við GPIO 4.Athugið: þú getur notað hvaða pinna sem þú vilt, svo lengi sem það getur virkað sem úttak. Hægt er að nota alla pinna sem geta virkað sem úttak sem PWM pinna. Fyrir frekari upplýsingar um ESP32 GPIOs, lestu: ESP32 Pinout Reference: Hvaða GPIO pinna ættir þú að nota?
Kóði
Við munum forrita ESP32 með Arduino IDE, svo vertu viss um að þú hafir ESP32 viðbótina uppsetta áður en þú heldur áfram: (Ef þú hefur þegar gert þetta skref geturðu sleppt því í næsta skref.)
Setur upp ESP32 viðbót í Arduino IDE
Opnaðu kóðann Project_3_ESP32_PWM.ino í arduino IDEÞú byrjar á því að skilgreina pinna sem LED er fest við. Í þessu tilviki er ljósdíóðan tengd við GPIO 4.
Síðan stillirðu PWM merkjaeiginleikana. Þú skilgreinir tíðnina 5000 Hz, velur rás 0 til að búa til merkið og stillir upplausnina 8 bita. Þú getur valið aðra eiginleika, öðruvísi en þessar, til að búa til mismunandi PWM merki.
Í uppsetningunni() þarftu að stilla LED PWM með þeim eiginleikum sem þú hefur skilgreint áður með því að nota ledcSetup() aðgerðina sem samþykkir sem rök, ledChannel, tíðnina og upplausnina, eins og hér segir:
Næst þarftu að velja GPIO sem þú færð merki frá. Notaðu til þess aðgerðina ledcAttachPin() sem samþykkir sem rök GPIO þar sem þú vilt fá merkið og rásina sem býr til merkið. Í þessu frvample, við fáum merkið í ledPin GPIO, sem samsvarar GPIO 4. Rásin sem myndar merkið er ledChannel, sem samsvarar rás 0.
Í lykkjunni muntu breyta vinnulotunni á milli 0 og 255 til að auka LED birtustigið.
Og svo á milli 255 og 0 til að minnka birtustigið.
Til að stilla birtustig ljósdíóðunnar þarftu bara að nota ledcWrite() fallið sem tekur við rásinni sem er að búa til merkið og vinnulotuna sem rök.
Þar sem við erum að nota 8-bita upplausn, verður vinnulotunni stjórnað með því að nota gildi frá 0 til 255. Athugaðu að í ledcWrite() fallinu notum við rásina sem býr til merkið, en ekki GPIO.
Er að prófa Example
Hladdu upp kóðanum á ESP32. Gakktu úr skugga um að þú hafir valið rétt borð og COM tengi. Horfðu á hringrásina þína. Þú ættir að hafa dimmer LED sem eykur og lækkar birtustig.
Project 4 ESP32 PIR hreyfiskynjari
Þetta verkefni sýnir hvernig á að greina hreyfingu með ESP32 með því að nota PIR hreyfiskynjara. Smiðurinn gefur frá sér viðvörun þegar hreyfing greinist og stöðvar vekjarann þegar engin hreyfing greinist í fyrirfram ákveðinn tíma (eins og 4 sekúndur)
Hvernig HC-SR501 hreyfiskynjari virkar
.Vinnureglan HC-SR501 skynjara byggist á breytingu á innrauðri geislun á hlutnum sem hreyfist. Til að HC-SR501 skynjarinn greini hann þarf hluturinn að uppfylla tvær kröfur:
- Hluturinn sendir frá sér innrauða leiðina.
- Hluturinn hreyfist eða hristist
Svo:
Ef hlutur sendir frá sér innrauða geislann en hreyfist EKKI (td manneskja stendur kyrr án þess að hreyfa sig) skynjar hann EKKI.
Ef hlutur er á hreyfingu en gefur EKKI frá sér innrauða geislann (td vélmenni eða farartæki), skynjarinn greinir hann EKKI.
Við kynnum tímamæla
Í þessu frvampVið munum einnig kynna tímamæla. Við viljum að ljósdíóðan haldist kveikt í fyrirfram ákveðinn fjölda sekúndna eftir að hreyfing greinist. Í stað þess að nota delay() aðgerð sem lokar kóðann þinn og leyfir þér ekki að gera neitt annað í ákveðinn fjölda sekúndna, ættum við að nota tímamælir.Delay() fallið
Þú ættir að kannast við delay() aðgerðina þar sem hún er mikið notuð. Þessi aðgerð er frekar einföld í notkun. Það samþykkir eina int tölu sem rök.
Þessi tala táknar tímann í millisekúndum sem forritið þarf að bíða þar til það heldur áfram í næstu kóðalínu.Þegar þú sefur (1000) stoppar forritið þitt á þeirri línu í 1 sekúndu.
delay() er lokunaraðgerð. Lokunaraðgerðir koma í veg fyrir að forrit geri eitthvað annað þar til því tiltekna verkefni er lokið. Ef þú þarft að mörg verkefni eigi sér stað á sama tíma geturðu ekki notað delay().
Fyrir flest verkefni ættir þú að forðast að nota tafir og nota tímamæla í staðinn.
Millis() fallið
Með því að nota fall sem kallast millis() geturðu skilað fjölda millisekúndna sem hafa liðið frá því forritið byrjaði fyrst.Hvers vegna er þessi aðgerð gagnleg? Vegna þess að með því að nota einhverja stærðfræði geturðu auðveldlega staðfest hversu langur tími hefur liðið án þess að loka kóðanum þínum.
Varahlutir nauðsynlegir
Til að fylgja þessari kennslu þarftu eftirfarandi hluta
- ESP32 DEVKIT V1 borð
- PIR hreyfiskynjari (HC-SR501)
- Virkur suður
- Jumper vír
- Brauðbretti
TeikningAthugið: Vinnandi binditage af HC-SR501 er 5V. Notaðu Vin pinna til að knýja hann.
Kóði
Áður en þú heldur áfram með þessa kennslu ættirðu að hafa ESP32 viðbótina uppsetta í Arduino IDE. Fylgdu einni af eftirfarandi námskeiðum til að setja upp ESP32 á Arduino IDE, ef þú hefur ekki þegar gert það.(Ef þú hefur þegar gert þetta skref geturðu sleppt því í næsta skref.)
Setur upp ESP32 viðbót í Arduino IDE
Opnaðu kóðann Project_4_ESP32_PIR_Motion_Sensor.ino í arduino IDE.
Sýning
Hladdu upp kóðanum á ESP32 borðið þitt. Gakktu úr skugga um að þú hafir valið rétta borðið og COM tengið. Hladdu upp kóða tilvísunarskrefum.
Opnaðu Serial Monitor á baudratanum 115200.Færðu hönd þína fyrir framan PIR skynjarann. Hljóðmerki ætti að kveikja á og skilaboðin eru prentuð í raðskjánum sem segir „Hreyfing uppgötvað!
Eftir 4 sekúndur ætti hljóðmerki að slökkva á sér.
Verkefni 5 ESP32 Switch Web Server
Í þessu verkefni muntu búa til sjálfstætt web miðlara með ESP32 sem stjórnar útgangi (tvær LED) með Arduino IDE forritunarumhverfi. The web miðlarinn er móttækilegur fyrir farsíma og hægt er að nálgast hann með hvaða tæki sem er sem vafra á staðarnetinu. Við munum sýna þér hvernig á að búa til web miðlara og hvernig kóðinn virkar skref fyrir skref.
Verkefni lokiðview
Áður en farið er beint í verkefnið er mikilvægt að gera grein fyrir því hvað okkar web þjónn mun gera það, svo að auðveldara sé að fylgja skrefunum síðar.
- The web þjónn sem þú munt byggja stýrir tveimur LED tengdum við ESP32 GPIO 26 og GPIO 27;
- Þú getur fengið aðgang að ESP32 web miðlara með því að slá inn ESP32 IP töluna í vafra á staðarnetinu;
- Með því að smella á hnappana á þínu web miðlara þú getur þegar í stað breytt stöðu hvers LED.
Varahlutir nauðsynlegir
Fyrir þessa kennslu þarftu eftirfarandi hluta:
- ESP32 DEVKIT V1 borð
- 2x 5mm LED
- 2x 200 Ohm viðnám
- Brauðbretti
- Jumper vír
Teikning
Byrjaðu á því að byggja hringrásina. Tengdu tvær ljósdíóður við ESP32 eins og sýnt er á eftirfarandi skýringarmynd – önnur ljósdíóða tengd GPIO 26 og hin við GPIO 27.
Athugið: Við erum að nota ESP32 DEVKIT DOIT borðið með 36 pinna. Áður en þú setur hringrásina saman skaltu ganga úr skugga um að þú athugar pinout fyrir borðið sem þú ert að nota.Kóði
Hér gefum við kóðann sem býr til ESP32 web miðlara. Opnaðu kóðann Project_5_ESP32_Switch _Web_Server.ino í arduino IDE, en ekki hlaða því upp ennþá. Þú þarft að gera nokkrar breytingar til að það virki fyrir þig.
Við munum forrita ESP32 með Arduino IDE, svo vertu viss um að þú hafir ESP32 viðbótina uppsetta áður en þú heldur áfram: (Ef þú hefur þegar gert þetta skref geturðu sleppt því í næsta skref.)
Setur upp ESP32 viðbót í Arduino IDE
Að stilla netupplýsingarnar þínar
Þú þarft að breyta eftirfarandi línum með netskilríkjum þínum: SSID og lykilorð. Kóðinn er vel skrifaður um hvar þú ættir að gera breytingarnar.Að hlaða upp kóðanum
Nú geturðu hlaðið upp kóðanum og og web þjónninn virkar strax.
Fylgdu næstu skrefum til að hlaða upp kóða á ESP32:
- Tengdu ESP32 borðið í tölvuna þína;
- Í Arduino IDE veldu borðið þitt í Tools > Board (í okkar tilfelli erum við að nota ESP32 DEVKIT DOIT borðið);
- Veldu COM tengið í Tools > Port.
- Ýttu á Upload takkann í Arduino IDE og bíddu í nokkrar sekúndur á meðan kóðinn safnar saman og hleður upp á borðið þitt.
- Bíddu eftir skilaboðunum „Lokið að hlaða upp“.
Að finna ESP IP tölu
Eftir að kóðanum hefur verið hlaðið upp skaltu opna Serial Monitor á baudratanum 115200.Ýttu á ESP32 EN hnappinn (endurstilla). ESP32 tengist Wi-Fi og gefur út ESP IP tölu á raðskjánum. Afritaðu þessa IP tölu, því þú þarft hana til að fá aðgang að ESP32 web miðlara.
Aðgangur að Web Server
Til að fá aðgang að web netþjónn, opnaðu vafrann þinn, límdu ESP32 IP töluna og þú munt sjá eftirfarandi síðu.
Athugið: Vafrinn þinn og ESP32 ættu að vera tengdir við sama staðarnetið.Ef þú skoðar Serial Monitor geturðu séð hvað er að gerast í bakgrunni. ESP fær HTTP beiðni frá nýjum viðskiptavini (í þessu tilviki, vafranum þínum).
Þú getur líka séð aðrar upplýsingar um HTTP beiðnina.
Sýning
Nú geturðu prófað hvort þitt web þjónninn virkar rétt. Smelltu á hnappana til að stjórna LED.Á sama tíma geturðu kíkt á Serial Monitor til að sjá hvað er að gerast í bakgrunninum. Til dæmisample, þegar þú smellir á hnappinn til að kveikja á GPIO 26, fær ESP32 beiðni á /26/on URL.
Þegar ESP32 fær þessa beiðni kveikir hann á LED sem er tengdur við GPIO 26 og uppfærir stöðu sína á web síðu.
Hnappurinn fyrir GPIO 27 virkar á svipaðan hátt. Prófaðu að það virki rétt.
Hvernig kóðinn virkar
Í þessum hluta mun þú skoða kóðann nánar til að sjá hvernig hann virkar.
Það fyrsta sem þú þarft að gera er að hafa WiFi bókasafnið með.Eins og áður hefur komið fram þarftu að setja inn ssid og lykilorð í eftirfarandi línur innan tvöföldu gæsalappanna.
Síðan stillirðu þitt web þjónn í port 80.
Eftirfarandi lína býr til breytu til að geyma haus HTTP beiðninnar:
Næst býrðu til hjálparbreytur til að geyma núverandi stöðu úttakanna þinna. Ef þú vilt bæta við fleiri úttakum og vista stöðu þess þarftu að búa til fleiri breytur.
Þú þarft líka að tengja GPIO á hvern útgang þinn. Hér erum við að nota GPIO 26 og GPIO 27. Þú getur notað hvaða aðra viðeigandi GPIO.
uppsetning()
Nú skulum við fara í uppsetninguna(). Í fyrsta lagi hefjum við raðsamskipti á baudratanum 115200 í villuleitarskyni.Þú skilgreinir líka GPIO sem OUTPUTs og stillir þá á LOW.
Eftirfarandi línur hefja Wi-Fi tenginguna með WiFi.begin(ssid, lykilorð), bíddu eftir að tengingin gangi vel og prentaðu ESP IP töluna í Serial Monitor.
lykkja()
Í lykkjunni() forritum við hvað gerist þegar nýr viðskiptavinur kemur á tengingu við web miðlara.
ESP32 er alltaf að hlusta eftir komandi viðskiptavinum með eftirfarandi línu:Þegar beiðni berst frá viðskiptavini munum við vista gögnin sem berast. While lykkjan sem fylgir mun vera í gangi svo lengi sem viðskiptavinurinn er tengdur. Við mælum ekki með því að breyta eftirfarandi hluta kóðans nema þú vitir nákvæmlega hvað þú ert að gera.
Næsti hluti af if og else yfirlýsingum athugar hvaða hnapp var ýtt á í þínu web síðu og stjórnar úttakinu í samræmi við það. Eins og við höfum séð áður gerum við beiðni um mismunandi URLs eftir því hvaða hnapp er ýtt á.
Til dæmisampef þú hefur ýtt á GPIO 26 ON hnappinn fær ESP32 beiðni á /26/ON URL (við getum séð að þessar upplýsingar eru á HTTP hausnum á Serial Monitor). Þannig að við getum athugað hvort hausinn inniheldur tjáninguna GET /26/on. Ef það inniheldur breytum við output26state breytunni í ON og ESP32 kveikir á LED.
Þetta virkar svipað fyrir aðra hnappa. Svo, ef þú vilt bæta við fleiri úttakum, ættirðu að breyta þessum hluta kóðans til að innihalda þær.
Sýnir HTML web síðu
Það næsta sem þú þarft að gera er að búa til web síðu. ESP32 mun senda svar í vafrann þinn með HTML kóða til að byggja upp web síðu.
The web síða er send til viðskiptavinarins með því að nota þessa tjáningu client.println(). Þú ættir að slá inn það sem þú vilt senda til viðskiptavinarins sem rök.
Það fyrsta sem við ættum að senda er alltaf eftirfarandi lína, sem gefur til kynna að við séum að senda HTML.Síðan gerir eftirfarandi lína að web síðu móttækilegur í hvaða web vafra.
Og eftirfarandi er notað til að koma í veg fyrir beiðnir á favicon. — Þú þarft ekki að hafa áhyggjur af þessari línu.
Stíll á Web Bls
Næst höfum við smá CSS texta til að stilla hnappana og web útlit síðunnar.
Við veljum Helvetica leturgerðina, skilgreinum efnið sem á að birtast sem blokk og stillt í miðju.Við stílum hnappana okkar með #4CAF50 litnum, án ramma, texta í hvítum lit og með þessari bólstrun: 16px 40px. Við stillum líka textaskreytinguna á ekkert, skilgreinum leturstærðina, spássíuna og bendilinn á bendilinn.
Við skilgreinum líka stíl fyrir annan hnapp, með öllum eiginleikum hnappsins sem við höfum skilgreint áður, en með öðrum lit. Þetta verður stíllinn fyrir slökkvihnappinn.
Stilling á Web Page First Heading
Í næstu línu geturðu stillt fyrstu fyrirsögn þína web síðu. Hér höfum við „ESP32 Web Server“, en þú getur breytt þessum texta í það sem þú vilt.Sýnir hnappa og samsvarandi ástand
Síðan skrifarðu málsgrein til að sýna núverandi ástand GPIO 26. Eins og þú sérð notum við output26State breytuna, þannig að ástandið uppfærist samstundis þegar þessi breyta breytist.Síðan birtum við kveikt eða slökkt takkann, allt eftir núverandi stöðu GPIO. Ef slökkt er á núverandi stöðu GPIO sýnum við ON hnappinn, ef ekki, sýnum við OFF hnappinn.
Við notum sömu aðferð fyrir GPIO 27.
Að loka tengingunni
Að lokum, þegar svarinu lýkur, hreinsum við hausbreytuna og hættum tengingunni við biðlarann með client.stop().
Umbúðir
Í þessari kennslu höfum við sýnt þér hvernig á að byggja upp a web miðlara með ESP32. Við höfum sýnt þér einfalt fyrrverandiample sem stjórnar tveimur LED, en hugmyndin er að skipta út þeim LED með gengi, eða öðrum útgangi sem þú vilt stjórna.
Project 6 RGB LED Web Server
Í þessu verkefni munum við sýna þér hvernig á að fjarstýra RGB LED með ESP32 borði með því að nota a web þjónn með litavali.
Verkefni lokiðview
Áður en byrjað er, skulum við sjá hvernig þetta verkefni virkar:
- ESP32 web þjónn sýnir litavali.
- Þegar þú velur lit gerir vafrinn þinn beiðni um a URL sem inniheldur R, G og B færibreytur valins litar.
- ESP32 þinn tekur á móti beiðninni og skiptir gildinu fyrir hverja litabreytu.
- Síðan sendir það PWM merki með samsvarandi gildi til GPIO sem stjórna RGB LED.
Hvernig virka RGB LED?
Í sameiginlegri bakskaut RGB LED, deila allar þrjár LED neikvæða tengingu (bakskaut). Allt sem er innifalið í settinu eru sameiginlegt bakskaut RGB.Hvernig á að búa til mismunandi liti?
Með RGB LED geturðu auðvitað framleitt rautt, grænt og blátt ljós og með því að stilla styrk hvers LED geturðu líka framleitt aðra liti.
Til dæmisample, til að framleiða eingöngu blátt ljós, myndirðu stilla bláa LED á hæsta styrkleika og grænu og rauðu LED á lægsta styrkleika. Fyrir hvítt ljós myndirðu stilla allar þrjár LED-ljósin á hæsta styrkleika.
Blöndun lita
Til að framleiða aðra liti geturðu sameinað litina þrjá í mismunandi styrkleika. Til að stilla styrk hvers LED geturðu notað PWM merki.
Vegna þess að LED-ljósin eru mjög nálægt hver öðrum sjá augu okkar niðurstöðuna af samsetningu litanna, frekar en litina þrjá hver fyrir sig.
Til að hafa hugmynd um hvernig á að sameina litina skaltu skoða eftirfarandi töflu.
Þetta er einfaldasta litablöndunartöfluna, en gefur þér hugmynd um hvernig það virkar og hvernig á að framleiða mismunandi liti.Varahlutir nauðsynlegir
Fyrir þetta verkefni þarftu eftirfarandi hluta:
- ESP32 DEVKIT V1 borð
- RGB LED
- 3x 220 ohm viðnám
- Jumper vír
- Brauðbretti
TeikningKóði
Við munum forrita ESP32 með Arduino IDE, svo vertu viss um að þú hafir ESP32 viðbótina uppsetta áður en þú heldur áfram: (Ef þú hefur þegar gert þetta skref geturðu sleppt því í næsta skref.)
- Setur upp ESP32 viðbót í Arduino IDE
Eftir að hringrásin hefur verið sett saman skaltu opna kóðann
Project_6_RGB_LED_Web_Server.ino í arduino IDE.
Áður en þú hleður upp kóðanum skaltu ekki gleyma að setja inn netupplýsingar þínar svo að ESP geti tengst staðarnetinu þínu.Hvernig kóðinn virkar
ESP32 skissan notar WiFi.h bókasafnið.Eftirfarandi línur skilgreina strengjabreytur til að halda R, G og B breytum frá beiðninni.
Næstu fjórar breytur eru notaðar til að afkóða HTTP beiðnina síðar.
Búðu til þrjár breytur fyrir GPIO sem munu stjórna ræmunni R, G og B breytum. Í þessu tilfelli erum við að nota GPIO 13, GPIO 12 og GPIO 14.
Þessar GPIOs þurfa að gefa út PWM merki, svo við þurfum að stilla PWM eiginleikana fyrst. Stilltu PWM merki tíðnina á 5000 Hz. Tengdu síðan PWM rás fyrir hvern lit
Og að lokum, stilltu upplausn PWM rásanna á 8-bita
Í uppsetningunni (), úthlutaðu PWM eiginleikum PWM rásanna
Tengdu PWM rásirnar við samsvarandi GPIO
Eftirfarandi kóðahluti sýnir litavalið í þínu web síðu og gerir beiðni byggða á litnum sem þú hefur valið.
Þegar þú velur lit færðu beiðni með eftirfarandi sniði.
Þannig að við þurfum að skipta þessum streng til að fá R, G og B færibreyturnar. Færibreyturnar eru vistaðar í redString, greenString og blueString breytum og geta haft gildi á milli 0 og 255.Til að stjórna ræmunni með ESP32, notaðu ledcWrite() aðgerðina til að búa til PWM merki með gildunum sem eru afkóðuð frá HTTP beiðni.
Athugið: Lærðu meira um PWM með ESP32: Project 3 ESP32 PWM (Analog Output)
Til að stjórna ræmunni með ESP8266 þurfum við bara að nota
analogWrite() aðgerðina til að búa til PWM merki með gildunum sem eru afkóðuð úr HTPP beiðninni.
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
Vegna þess að við fáum gildin í strengjabreytu þurfum við að breyta þeim í heiltölur með því að nota toInt() aðferðina.
Sýning
Eftir að þú hefur sett inn netupplýsingarnar þínar skaltu velja rétta borðið og COM tengið og hlaða kóðanum inn á ESP32. Hladdu upp kóða tilvísunarskrefum.
Eftir upphleðslu skaltu opna Serial Monitor á baudratanum 115200 og ýta á ESP Enable/Reset hnappinn. Þú ættir að fá IP tölu borðsins.Opnaðu vafrann þinn og settu ESP IP töluna inn. Notaðu nú litavali til að velja lit fyrir RGB LED.
Síðan þarftu að ýta á „Breyta lit“ hnappinn til að liturinn taki gildi.Til að slökkva á RGB LED skaltu velja svarta litinn.
Sterkustu litirnir (efst í litavínslunni) eru þeir sem gefa betri niðurstöður.
Verkefni 7 ESP32 Relay Web Server
Notkun gengis með ESP32 er frábær leið til að fjarstýra AC heimilistækjum. Þessi einkatími útskýrir hvernig á að stjórna gengiseiningu með ESP32.
Við munum skoða hvernig gengiseining virkar, hvernig á að tengja gengið við ESP32 og byggja upp web miðlara til að stjórna gengi fjarstýrt.
Við kynnum Relays
Relay er rafknúinn rofi og eins og hver annar rofi, hann sem hægt er að kveikja eða slökkva á, láta strauminn fara í gegnum eða ekki. Það er hægt að stjórna með lágu voltages, eins og 3.3V sem ESP32 GPIOs veita og gerir okkur kleift að stjórna háumtager eins og 12V, 24V eða rafmagnsstyrkurtage (230V í Evrópu og 120V í Bandaríkjunum).Vinstra megin eru tvö sett af þremur innstungum til að tengja hástyrktages, og pinnarnir hægra megin (low-voltage) tengdu við ESP32 GPIO.
Mains Voltage TengingarGengiseiningin sem sýnd er á fyrri myndinni er með tveimur tengjum, hvert með þremur innstungum: algengt (COM), venjulega lokað (NC) og venjulega opið (NO).
- COM: tengdu strauminn sem þú vilt stjórna (straummagntagog).
- NC (venjulega lokað): venjulega lokað stillingin er notuð þegar þú vilt að genginu sé lokað sjálfgefið. NC eru COM pinnar tengdir, sem þýðir að straumurinn flæðir nema þú sendir merki frá ESP32 til gengiseiningarinnar til að opna hringrásina og stöðva straumflæðið.
- NEI (venjulega opið): venjulega opna stillingin virkar á hinn veginn: það er engin tenging á milli NO og COM pinna, þannig að hringrásin er rofin nema þú sendir merki frá ESP32 um að loka hringrásinni.
StýripinnarThe low-voltagÁ hliðinni er sett af fjórum pinnum og sett af þremur pinnum. Fyrsta settið samanstendur af VCC og GND til að kveikja á einingunni, og inntak 1 (IN1) og inntak 2 (IN2) til að stjórna neðsta og efsta genginu, í sömu röð.
Ef gengiseiningin þín hefur aðeins eina rás, muntu hafa bara einn IN pinna. Ef þú ert með fjórar rásir, muntu hafa fjóra IN pinna, og svo framvegis.
Merkið sem þú sendir til IN pinna, ákvarðar hvort gengið er virkt eða ekki. Relayið er ræst þegar inntakið fer undir um 2V. Þetta þýðir að þú munt hafa eftirfarandi aðstæður:
- Venjulega lokað stilling (NC):
- HÁTT merki - straumur flæðir
- LÁGT merki – straumur flæðir ekki
- Venjulega opin stilling (NO):
- HÁTT merki - straumur flæðir ekki
- LÁGT merki – straumur í flæði
Þú ættir að nota venjulega lokaða stillingu þegar straumurinn ætti að flæða oftast og þú vilt aðeins stöðva það stundum.
Notaðu venjulega opna stillingu þegar þú vilt að straumurinn flæði stundum (tdample, kveiktu á alamp stundum).
Val á aflgjafaAnnað sett af pinna samanstendur af GND, VCC og JD-VCC pinna.
JD-VCC pinninn knýr rafsegul gengisins. Taktu eftir því að einingin er með tengihettu sem tengir VCC og JD-VCC pinnana; sá sem sýndur er hér er gulur en þinn gæti verið í öðrum lit.
Með tengihettuna á eru VCC og JD-VCC pinnar tengdir. Það þýðir að gengi rafsegullinn er beint knúinn frá ESP32 rafmagnspinnanum, þannig að gengiseiningin og ESP32 hringrásin eru ekki líkamlega einangruð frá hvor annarri.
Án stökkvarhettunnar þarftu að útvega sjálfstæðan aflgjafa til að knýja rafsegul gengisins í gegnum JD-VCC pinna. Sú uppsetning einangrar liðamótin líkamlega frá ESP32 með innbyggðum optocoupler einingarinnar, sem kemur í veg fyrir skemmdir á ESP32 ef um er að ræða rafstrauma.
TeikningViðvörun: Notkun á háum binditagAflgjafar geta valdið alvarlegum meiðslum.
Þess vegna eru 5mm LED notaðir í stað þess að nota mikið framboðtage perur í tilrauninni. Ef þú ert ekki kunnugur mains voltage spurðu einhvern sem á að hjálpa þér. Á meðan þú forritar ESP eða tengir rafrásina þína skaltu ganga úr skugga um að allt sé aftengt frá rafmagnitage.Setja upp bókasafnið fyrir ESP32
Til að byggja þetta web miðlara, notum við ESPAsyncWebServer bókasafn og AsyncTCP Library.
Að setja upp ESPAsyncWebServer bókasafn
Fylgdu næstu skrefum til að setja upp ESPAsyncWebServer bókasafn:
- Smelltu hér til að hlaða niður ESPAsyncWebServer bókasafn. Þú ættir að hafa
.zip möppu í niðurhalsmöppunni þinni - Taktu upp .zip möppuna og þú ættir að fá ESPAsyncWebServer-master mappa
- Endurnefna möppuna þína frá ESPAsyncWebServer-master til ESPAsyncWebServer
- Færðu ESPAsyncWebMiðlaramöppu í Arduino IDE uppsetningarbókasafnamöppuna þína
Að öðrum kosti, í Arduino IDE, geturðu farið í Sketch> Include
Bókasafn > Bæta við .ZIP bókasafni... og veldu bókasafnið sem þú varst að hlaða niður.
Að setja upp AsyncTCP bókasafnið fyrir ESP32
The ESPAsyncWebServer bókasafn krefst þess AsyncTCP bókasafn til að vinna. Fylgstu með
næstu skref til að setja upp það bókasafn:
- Smelltu hér til að hlaða niður AsyncTCP bókasafninu. Þú ættir að hafa .zip möppu í niðurhalsmöppunni þinni
- Taktu upp .zip möppuna og þú ættir að fá AsyncTCP-master möppuna
1. Endurnefna möppuna þína úr AsyncTCP-master í AsyncTCP
3. Færðu AsyncTCP möppuna í Arduino IDE uppsetningarbókasafnsmöppuna þína
4. Að lokum skaltu opna Arduino IDE aftur
Að öðrum kosti, í Arduino IDE, geturðu farið í Sketch> Include
Bókasafn > Bæta við .ZIP bókasafni... og veldu bókasafnið sem þú varst að hlaða niður.
Kóði
Við munum forrita ESP32 með Arduino IDE, svo vertu viss um að þú hafir ESP32 viðbótina uppsetta áður en þú heldur áfram: (Ef þú hefur þegar gert þetta skref geturðu sleppt því í næsta skref.)
Setur upp ESP32 viðbót í Arduino IDE
Eftir að hafa sett upp nauðsynleg söfn, opnaðu kóðann Project_7_ESP32_Relay_Web_Server.ino í arduino IDE.
Áður en þú hleður upp kóðanum skaltu ekki gleyma að setja inn netupplýsingar þínar svo að ESP geti tengst staðarnetinu þínu.Sýning
Eftir að hafa gert nauðsynlegar breytingar skaltu hlaða kóðanum upp á ESP32. Hladdu upp kóða tilvísunarskrefum.
Opnaðu Serial Monitor á baudratanum 115200 og ýttu á ESP32 EN hnappinn til að fá IP tölu hans. Opnaðu síðan vafra á staðarnetinu þínu og sláðu inn ESP32 IP töluna til að fá aðgang að web miðlara.
Opnaðu Serial Monitor á baudratanum 115200 og ýttu á ESP32 EN hnappinn til að fá IP tölu hans. Opnaðu síðan vafra á staðarnetinu þínu og sláðu inn ESP32 IP töluna til að fá aðgang að web miðlara.Athugið: Vafrinn þinn og ESP32 ættu að vera tengdir við sama staðarnetið.
Þú ættir að fá eitthvað sem hér segir með eins og tvo hnappa sem fjölda liða sem þú hefur skilgreint í kóðanum þínum.Nú geturðu notað hnappana til að stjórna liðamótunum þínum með snjallsímanum þínum.
Project_8_Output_State_Synchronization_ Web_þjónn
Þetta verkefni sýnir hvernig á að stjórna ESP32 eða ESP8266 úttakinu með því að nota a web miðlara og líkamlegan hnapp samtímis. Framleiðsluástandið er uppfært á web síðu hvort því er breytt með líkamlegum hnappi eða web miðlara.
Verkefni lokiðview
Lítum fljótt á hvernig verkefnið virkar.ESP32 eða ESP8266 hýsir a web miðlara sem gerir þér kleift að stjórna stöðu úttaks;
- Núverandi úttaksstaða er sýnd á web þjónn;
- ESP er einnig tengt við líkamlegan þrýstihnapp sem stjórnar sama útgangi;
- Ef þú breytir úttaksstöðu með því að nota líkamlega hnappinn, er núverandi ástand hans einnig uppfært á web miðlara.
Í stuttu máli, þetta verkefni gerir þér kleift að stjórna sömu framleiðslu með því að nota a web miðlara og þrýstihnappur samtímis. Alltaf þegar úttaksástandið breytist, er web þjónninn er uppfærður.
Varahlutir nauðsynlegir
Hér er listi yfir þá hluta sem þú þarft til að byggja upp hringrásina:
- ESP32 DEVKIT V1 borð
- 5 mm LED
- 220Ohm viðnám
- Knappur
- 10k Ohm viðnám
- Brauðbretti
- Jumper vír
TeikningSetja upp bókasafnið fyrir ESP32
Til að byggja þetta web miðlara, notum við ESPAsyncWebServer bókasafn og AsyncTCP Library.(Ef þú hefur þegar gert þetta skref geturðu sleppt því í næsta skref.)
Að setja upp ESPAsyncWebServer bókasafn
Fylgdu næstu skrefum til að setja upp ESPAsyncWebServer bókasafn:
- Smelltu hér til að hlaða niður ESPAsyncWebServer bókasafn. Þú ættir að hafa
.zip möppu í niðurhalsmöppunni þinni - Taktu upp .zip möppuna og þú ættir að fá ESPAsyncWebServer-master mappa
- Endurnefna möppuna þína frá ESPAsyncWebServer-master til ESPAsyncWebServer
- Færðu ESPAsyncWebMiðlaramöppu í Arduino IDE uppsetningarbókasafnamöppuna þína
Að öðrum kosti, í Arduino IDE, geturðu farið í Sketch> Include
Bókasafn > Bæta við .ZIP bókasafni... og veldu bókasafnið sem þú varst að hlaða niður.
Að setja upp AsyncTCP bókasafnið fyrir ESP32
ESPAsyncWebServer bókasafn krefst þess að AsyncTCP bókasafnið virki. Fylgdu næstu skrefum til að setja upp það bókasafn:
- Smelltu hér til að hlaða niður AsyncTCP bókasafninu. Þú ættir að hafa .zip möppu í niðurhalsmöppunni þinni
- Taktu upp .zip möppuna og þú ættir að fá AsyncTCP-master möppuna
- Endurnefna möppuna þína úr AsyncTCP-master í AsyncTCP
- Færðu AsyncTCP möppuna í Arduino IDE uppsetningarbókasafnsmöppuna þína
- Að lokum skaltu opna Arduino IDE aftur
Að öðrum kosti, í Arduino IDE, geturðu farið í Sketch> Include
Bókasafn > Bæta við .ZIP bókasafni... og veldu bókasafnið sem þú varst að hlaða niður.
Kóði
Við munum forrita ESP32 með Arduino IDE, svo vertu viss um að þú hafir ESP32 viðbótina uppsetta áður en þú heldur áfram: (Ef þú hefur þegar gert þetta skref geturðu sleppt því í næsta skref.)
Setur upp ESP32 viðbót í Arduino IDE
Eftir að hafa sett upp nauðsynleg söfn, Opnaðu kóðann
Project_8_Output_State_Synchronization_Web_Server.ino í arduino IDE.
Áður en þú hleður upp kóðanum skaltu ekki gleyma að setja inn netupplýsingar þínar svo að ESP geti tengst staðarnetinu þínu.
Hvernig kóðinn virkar
Hnapparstaða og úttaksstaða
LedState breytan heldur LED úttaksstöðunni. Fyrir sjálfgefið, þegar web miðlarinn byrjar, hann er LÁGUR.
buttonState og lastButtonState eru notuð til að greina hvort ýtt hafi verið á þrýstihnappinn eða ekki.Hnappur (web netþjónn)
Við settum ekki HTML til að búa til hnappinn á index_html breytunni.
Það er vegna þess að við viljum geta breytt því eftir núverandi LED stöðu sem einnig er hægt að breyta með þrýstihnappinum.
Þannig að við höfum búið til staðgengil fyrir hnappinn %BUTTONPLACEHOLDER% sem verður skipt út fyrir HTML texta til að búa til hnappinn síðar á kóðanum (þetta er gert í vinnsluforritinu()).örgjörvi()
Örgjörva() aðgerðin kemur í stað allra staðgengja á HTML textanum fyrir raunveruleg gildi. Í fyrsta lagi athugar það hvort HTML textarnir innihaldi eitthvað
staðgenglar %BUTTONPLACEHOLDER%.Hringdu síðan í theoutputState() fallið sem skilar núverandi úttaksstöðu. Við vistum það í outputStateValue breytunni.
Eftir það skaltu nota það gildi til að búa til HTML textann til að sýna hnappinn með réttu ástandi:
HTTP GET beiðni um að breyta úttaksstöðu (JavaScript)
Þegar þú ýtir á hnappinn er thetoggleCheckbox() fallið kallað. Þessi aðgerð mun gera beiðni um mismunandi URLs til að kveikja eða slökkva á LED.Til að kveikja á LED, það gerir beiðni á /update?state=1 URL:
Annars gerir það beiðni á /update?state=0 URL.
HTTP GET beiðni um að uppfæra ástand (JavaScript)
Til að halda framleiðslustöðu uppfærðu á web þjónn, köllum við eftirfarandi aðgerð sem gerir nýja beiðni á /state URL hverri sekúndu.Meðhöndla beiðnir
Síðan þurfum við að takast á við hvað gerist þegar ESP32 eða ESP8266 fá beiðnir um þá URLs.
Þegar beiðni berst á rót /URL, sendum HTML síðuna ásamt örgjörvanum.Eftirfarandi línur athuga hvort þú hafir fengið beiðni á /update?state=1 eða /update?state=0 URL og breytir leiddi ríkinu í samræmi við það.
Þegar beiðni berst á /ríki URL, sendum við núverandi úttaksstöðu:
lykkja()
Í lykkjunni(), sleppum við þrýstihnappnum og kveikjum eða slökkum á ljósdíóðunni eftir gildi ledState breytilegt.Sýning
Hladdu kóðanum inn á ESP32 borðið þitt. Hladdu upp kóða tilvísunarskrefum.
Opnaðu síðan Serial Monitor á baudratanum 115200. Ýttu á EN/RST hnappinn um borð til að fá IP tölu.Opnaðu vafra á staðarnetinu þínu og sláðu inn ESP IP töluna. Þú ættir að hafa aðgang að web miðlara eins og sýnt er hér að neðan.
Athugið: Vafrinn þinn og ESP32 ættu að vera tengdir við sama staðarnetið.Þú getur skipt um hnappinn á web miðlara til að kveikja á LED.
Þú getur líka stjórnað sömu LED með líkamlegum þrýstihnappi. Staða þess verður alltaf uppfærð sjálfkrafa á web miðlara.
Verkefni 9 ESP32 DHT11 Web Server
Í þessu verkefni muntu læra hvernig á að smíða ósamstilltan ESP32 web miðlara með DHT11 sem sýnir hitastig og rakastig með Arduino IDE.
Forkröfur
The web þjónn sem við munum byggja uppfærir lestur sjálfkrafa án þess að þurfa að endurnýja web síðu.
Með þessu verkefni lærir þú:
- Hvernig á að lesa hitastig og raka frá DHT skynjara;
- Byggja ósamstillt web þjónn sem notar ESPAsyncWebServer bókasafn;
- Uppfærðu skynjaralestur sjálfkrafa án þess að þurfa að endurnýja web síðu.
Ósamstilltur Web Server
Til að byggja upp web miðlara sem við munum nota ESPAsyncWebServer bókasafn sem veitir auðvelda leið til að byggja upp ósamstillt web miðlara. Byggja ósamstillt web þjónn hefur nokkra advantageins og getið er á GitHub síðu bókasafnsins, svo sem:
- „Haldið um fleiri en eina tengingu á sama tíma“;
- „Þegar þú sendir svarið ertu strax tilbúinn til að sinna öðrum tengingum á meðan þjónninn sér um að senda svarið í bakgrunni“;
- „Einföld sniðmátsvinnsluvél til að meðhöndla sniðmát“;
Varahlutir nauðsynlegir
Til að klára þessa kennslu þarftu eftirfarandi hluta:
- ESP32 þróunarborð
- DHT11 mát
- Brauðbretti
- Jumper vír
TeikningAð setja upp bókasöfn
Þú þarft að setja upp nokkur bókasöfn fyrir þetta verkefni:
- The DHT og Adafruit Unified Sensor Bílstjóri bókasöfn til að lesa frá DHT skynjara.
- ESPAsyncWebServer og Ósamstilltur TCP bókasöfn til að byggja upp ósamstilltu web miðlara.
Fylgdu næstu leiðbeiningum til að setja upp þessi bókasöfn:
Að setja upp DHT skynjarasafnið
Til að lesa úr DHT skynjaranum með Arduino IDE þarftu að setja upp DHT skynjara bókasafn. Fylgdu næstu skrefum til að setja upp bókasafnið.
- Smelltu hér til að hlaða niður DHT Sensor bókasafninu. Þú ættir að hafa .zip möppu í niðurhalsmöppunni þinni
- Taktu upp .zip möppuna og þú ættir að fá DHT-sensor-library-master möppuna
- Endurnefna möppuna þína úr DHT-sensor-library-master í DHT_sensor
- Færðu DHT_sensor möppuna í Arduino IDE uppsetningarbókasafnsmöppuna þína
- Að lokum skaltu opna Arduino IDE aftur
Að setja upp Adafruit Unified Sensor Driver
Þú þarft líka að setja upp Adafruit Unified Sensor Driver bókasafn til að vinna með DHT skynjara. Fylgdu næstu skrefum til að setja upp bókasafnið.
- Smelltu hér til að hlaða niður Adafruit Unified Sensor bókasafninu. Þú ættir að hafa .zip möppu í niðurhalsmöppunni þinni
- Taktu upp .zip möppuna og þú ættir að fá Adafruit_sensor-master möppuna
- Endurnefna möppuna þína úr Adafruit_sensor-master í Adafruit_sensor
- Færðu Adafruit_sensor möppuna í Arduino IDE uppsetningarbókasafnsmöppuna þína
- Að lokum skaltu opna Arduino IDE aftur
Að setja upp ESPAsyncWebServer bókasafn
Fylgdu næstu skrefum til að setja upp ESPAsyncWebServer bókasafn:
- Smelltu hér til að hlaða niður ESPAsyncWebServer bókasafn. Þú ættir að hafa
.zip möppu í niðurhalsmöppunni þinni - Taktu upp .zip möppuna og þú ættir að gera það
fáðu ESPAsyncWebServer-master mappa - Endurnefna möppuna þína frá ESPAsyncWebServer-master til ESPAsyncWebServer
- Færðu ESPAsyncWebMiðlaramöppu í Arduino IDE uppsetningarbókasafnamöppuna þína
Að setja upp Async TCP bókasafnið fyrir ESP32
The ESPAsyncWebServer bókasafn krefst þess AsyncTCP bókasafn til að vinna. Fylgdu næstu skrefum til að setja upp það bókasafn:
- Smelltu hér til að hlaða niður AsyncTCP bókasafninu. Þú ættir að hafa .zip möppu í niðurhalsmöppunni þinni
- Taktu upp .zip möppuna og þú ættir að fá AsyncTCP-master möppuna
- Endurnefna möppuna þína úr AsyncTCP-master í AsyncTCP
- Færðu AsyncTCP möppuna í Arduino IDE uppsetningarbókasafnsmöppuna þína
- Að lokum skaltu opna Arduino IDE aftur
Kóði
Við munum forrita ESP32 með Arduino IDE, svo vertu viss um að þú hafir ESP32 viðbótina uppsetta áður en þú heldur áfram: (Ef þú hefur þegar gert þetta skref geturðu sleppt því í næsta skref.)
Setur upp ESP32 viðbót í Arduino IDE
Eftir að hafa sett upp nauðsynleg söfn, Opnaðu kóðann
Project_9_ESP32_DHT11_Web_Server.ino í arduino IDE.
Áður en þú hleður upp kóðanum skaltu ekki gleyma að setja inn netupplýsingar þínar svo að ESP geti tengst staðarnetinu þínu.Hvernig kóðinn virkar
Í eftirfarandi málsgreinum munum við útskýra hvernig kóðinn virkar. Haltu áfram að lesa ef þú vilt læra meira eða hoppaðu í sýnikennsluhlutann til að sjá lokaniðurstöðuna.
Flytja inn bókasöfn
Fyrst skaltu flytja inn nauðsynleg bókasöfn. WiFi, ESPAsyncWebÞörf er á netþjóni og ESPAsyncTCP til að byggja upp web miðlara. Adafruit_Sensor og DHT bókasöfnin eru nauðsynleg til að lesa úr DHT11 eða DHT22 skynjara.Skilgreining breytu
Skilgreindu GPIO sem DHT gagnapinninn er tengdur við. Í þessu tilfelli er það tengt við GPIO 4.Veldu síðan tegund DHT skynjara sem þú ert að nota. Í okkar fyrrverandiample, við erum að nota DHT22. Ef þú ert að nota aðra tegund þarftu bara að afskrifa skynjarann þinn og gera athugasemdir við alla hina.
Staðfestu DHT hlut með gerðinni og pinnanum sem við höfum skilgreint áður.Búðu til ósamstillinguWebMiðlarahlutur á port 80.
Lestu hita- og rakavirkni
Við höfum búið til tvær aðgerðir: eina til að lesa hitastigið Við höfum búið til tvær aðgerðir: eina til að lesa hitastigið (readDHTTemperature()) og hina til að lesa rakastig (readDHTHumidity()).Að fá skynjaralestur er eins einfalt og að nota Að fá skynjaralestur er eins einfalt og að nota readTemperature() og readHumidity() aðferðirnar á dht hlutnum.
Við höfum líka ástand sem skilar tveimur strikum (–) ef skynjarinn nær ekki álestrinum.
Lestrunum er skilað sem strengjagerð. Til að breyta floti í streng, notaðu String() fallið
Sjálfgefið er að við lesum hitastigið í gráðum á Celsíus. Til að fá hitastigið í Fahrenheit gráðum, skrifaðu ummæli um hitastigið í Celsíus og afskrifaðu hitastigið í Fahrenheit, þannig að þú hafir eftirfarandi:
Hladdu upp kóðanum
Nú skaltu hlaða upp kóðanum á ESP32 þinn. Gakktu úr skugga um að þú hafir valið rétta borðið og COM tengið. Hladdu upp kóða tilvísunarskrefum.
Eftir upphleðslu skaltu opna Serial Monitor á baudratanum 115200. Ýttu á ESP32 endurstillingarhnappinn. ESP32 IP tölu ætti að vera prentuð í raðnúmerinu fylgjast með.Sýning
Opnaðu vafra og sláðu inn ESP32 IP tölu. Þinn web þjónn ætti að sýna nýjustu mælingar skynjara.
Athugið: Vafrinn þinn og ESP32 ættu að vera tengdir við sama staðarnetið.
Taktu eftir því að hita- og rakamælingar eru uppfærðar sjálfkrafa án þess að þurfa að endurnýja web síðu.
Project_10_ESP32_OLED_Display
Þetta verkefni sýnir hvernig á að nota 0.96 tommu SSD1306 OLED skjáinn með ESP32 með Arduino IDE.
Við kynnum 0.96 tommu OLED skjá
The OLED skjár sem við munum nota í þessari kennslu er SSD1306 líkanið: einlitur, 0.96 tommu skjár með 128×64 pixlum eins og sýnt er á eftirfarandi mynd.OLED skjárinn þarfnast ekki baklýsingu, sem skilar sér í mjög fallegri birtuskilum í dimmu umhverfi. Að auki neyta pixlar þess aðeins orku þegar kveikt er á þeim, þannig að OLED skjárinn eyðir minni orku samanborið við aðra skjái.
Vegna þess að OLED skjárinn notar I2C samskiptareglur er raflögn mjög einföld. Þú getur notað eftirfarandi töflu sem viðmið.
OLED pinna | ESP32 |
Vin | 3.3V |
GND | GND |
SCL | GPIO 22 |
SDA | GPIO 21 |
TeikningSetur upp SSD1306 OLED bókasafn – ESP32
Það eru nokkur bókasöfn í boði til að stjórna OLED skjánum með ESP32.
Í þessari kennslu munum við nota tvö Adafruit bókasöfn: Adafruit_SSD1306 bókasafn og Adafruit_GFX bókasafn.
Fylgdu næstu skrefum til að setja upp þessi bókasöfn.
- Opnaðu Arduino IDE þinn og farðu í Sketch> Include Library> Manage Libraries. Bókasafnsstjóri ætti að opna.
- Sláðu inn „SSD1306“ í leitarreitinn og settu upp SSD1306 bókasafnið frá Adafruit.
- Eftir að hafa sett upp SSD1306 bókasafnið frá Adafruit skaltu slá inn „GFX“ í leitarreitinn og setja upp bókasafnið.
- Eftir að hafa sett upp bókasöfnin skaltu endurræsa Arduino IDE.
Kóði
Eftir að hafa sett upp nauðsynleg söfn, opnaðu Project_10_ESP32_OLED_Display.ino í arduino IDE. kóða
Við forritum ESP32 með Arduino IDE, svo vertu viss um að þú hafir ESP32 viðbótina uppsetta áður en þú heldur áfram: (Ef þú hefur þegar gert þetta skref geturðu sleppt því í næsta skref.)
Setur upp ESP32 viðbót í Arduino IDEHvernig kóðinn virkar
Flytja inn bókasöfn
Fyrst þarftu að flytja inn nauðsynleg bókasöfn. Wire bókasafnið til að nota I2C og Adafruit bókasöfnin til að skrifa á skjáinn: Adafruit_GFX og Adafruit_SSD1306.Frumstilla OLED skjáinn
Síðan skilgreinir þú OLED breidd og hæð. Í þessu frvample, við erum að nota 128×64 OLED skjá. Ef þú ert að nota aðrar stærðir geturðu breytt því í breytunum SCREEN_WIDTH og SCREEN_HEIGHT.Síðan skaltu frumstilla skjáhlut með breidd og hæð sem skilgreind var áður með I2C samskiptareglum (&Wire).
(-1) færibreytan þýðir að OLED skjárinn þinn er ekki með RESET pinna. Ef OLED skjárinn þinn er með RESET pinna ætti hann að vera tengdur við GPIO. Í því tilviki ættir þú að gefa GPIO númerið sem færibreytu.
Í uppsetningunni(), frumstilltu Serial Monitor á baud raute 115200 í villuleitarskyni.Frumstilltu OLED skjáinn með byrjun() aðferðinni sem hér segir:
Þessi bút prentar einnig skilaboð á raðskjánum, ef við getum ekki tengst skjánum.
Ef þú ert að nota annan OLED skjá gætirðu þurft að breyta OLED heimilisfanginu. Í okkar tilviki er heimilisfangið 0x3C.
Eftir að hafa frumstillt skjáinn skaltu bæta við tveggja sekúndna seinkun, svo að OLED hafi nægan tíma til að frumstilla áður en þú skrifar texta:
Hreinsaðu skjáinn, stilltu leturstærð, lit og skrifaðu texta
Eftir að hafa frumstillt skjáinn, hreinsaðu biðminni skjásins með clearDisplay() aðferðinni:
Áður en þú skrifar texta þarftu að stilla textastærð, lit og hvar textinn birtist í OLED.
Stilltu leturstærðina með því að nota setTextSize() aðferðina:Stilltu leturlitinn með setTextColor() aðferðinni:
WHITE setur hvítt letur og svartan bakgrunn.
Skilgreindu staðsetninguna þar sem textinn byrjar með því að nota setCursor(x,y) aðferðina. Í þessu tilviki erum við að stilla textann til að byrja á (0,0) hnitunum - efst í vinstra horninu.Að lokum geturðu sent textann á skjáinn með því að nota println() aðferðina, eins og hér segir
Síðan þarftu að hringja í display() aðferðina til að birta textann í raun á skjánum.
Adafruit OLED bókasafnið veitir gagnlegar aðferðir til að fletta texta auðveldlega.
- startscrollright(0x00, 0x0F): skrunaðu texta frá vinstri til hægri
- startscrollleft(0x00, 0x0F): skrunaðu texta frá hægri til vinstri
- startscrolldiagright(0x00, 0x07): skrunaðu texta frá vinstra neðra horni í hægra efra horn startscrolldiagleft(0x00, 0x07): skrunaðu texta frá hægra neðra horni í vinstra efra horn
Hladdu upp kóðanum
Nú skaltu hlaða kóðanum inn á ESP32. Hladdu upp kóða tilvísunarskrefum.
Eftir að kóðanum hefur verið hlaðið upp mun OLED birta skruntexta.
Skjöl / auðlindir
![]() |
LAFVIN ESP32 Basic Starter Kit [pdfLeiðbeiningarhandbók ESP32 Basic Starter Kit, ESP32, Basic Starter Kit, Starter Kit |