Základný štartér ESP32
Súprava
Baliaci zoznam
Úvod do ESP32
Ste novým používateľom ESP32? Začnite tu! ESP32 je séria nízkonákladových a nízkoenergetických mikrokontrolérov System on a Chip (SoC) vyvinutých spoločnosťou Espressif, ktoré zahŕňajú bezdrôtové funkcie Wi-Fi a Bluetooth a dvojjadrový procesor. Ak poznáte ESP8266, ESP32 je jeho nástupcom, ktorý je nabitý množstvom nových funkcií.Špecifikácie ESP32
Ak chcete byť trochu technickejší a konkrétnejší, môžete sa pozrieť na nasledujúce podrobné špecifikácie ESP32 (zdroj: http://esp32.net/) – pre viac podrobností skontrolujte údajový list):
- Bezdrôtové pripojenie WiFi: rýchlosť prenosu dát 150.0 Mbps s HT40
- Bluetooth: BLE (Bluetooth Low Energy) a Bluetooth Classic
- Procesor: Tensilica Xtensa Dual-Core 32-bitový mikroprocesor LX6 s frekvenciou 160 alebo 240 MHz
- pamäť:
- ROM: 448 KB (pre bootovanie a základné funkcie)
- SRAM: 520 KB (pre dáta a pokyny)
- RTC fas SRAM: 8 KB (na ukladanie dát a hlavný CPU počas RTC bootovania z režimu hlbokého spánku)
- Pomalá RTC SRAM: 8 KB (pre koprocesorový prístup počas režimu hlbokého spánku) eFuse: 1 Kbit (z toho 256 bitov sa používa pre systém (MAC adresa a konfigurácia čipu) a zvyšných 768 bitov je vyhradených pre zákaznícke aplikácie, vrátane Flash-Encryption a Chip-ID)
Vstavaný blesk: flash pripojený interne cez IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 a SD_DATA_1 na ESP32-D2WD a ESP32-PICO-D4.
- 0 MiB (čipy ESP32-D0WDQ6, ESP32-D0WD a ESP32-S0WD)
- 2 MiB (čip ESP32-D2WD)
- 4 MiB (modul ESP32-PICO-D4 SiP)
Nízka spotreba energie: zaisťuje, že stále môžete používať konverzie ADC, naprample, počas hlbokého spánku.
Periférny vstup/výstup:
- periférne rozhranie s DMA, ktoré zahŕňa kapacitný dotyk
- ADC (analógovo-digitálny prevodník)
- DAC (digitálno-analógový prevodník)
- I²C (Inter-Integrated Circuit)
- UART (univerzálny asynchrónny prijímač/vysielač)
- SPI (Serial Peripheral Interface)
- I²S (Integrovaný medzičipový zvuk)
- RMII (redukované rozhranie nezávislé od médií)
- PWM (Pulse-Width Modulation)
Zabezpečenie: hardvérové akcelerátory pre AES a SSL/TLS
Vývojové dosky ESP32
ESP32 označuje holý čip ESP32. Termín „ESP32“ sa však používa aj na označenie vývojových dosiek ESP32. Používanie holých čipov ESP32 nie je jednoduché ani praktické, najmä pri učení, testovaní a prototypovaní. Väčšinu času budete chcieť použiť vývojovú dosku ESP32.
Ako referenciu budeme používať dosku ESP32 DEVKIT V1. Na obrázku nižšie je doska ESP32 DEVKIT V1, verzia s 30 GPIO pinmi.Špecifikácie – ESP32 DEVKIT V1
Nasledujúca tabuľka zobrazuje súhrn vlastností a špecifikácií dosky ESP32 DEVKIT V1 DOIT:
Počet jadier | 2 (dvojjadrový) |
Wi-Fi | 2.4 GHz až 150 Mbit/s |
Bluetooth | BLE (Bluetooth Low Energy) a starší Bluetooth |
Architektúra | 32 bitov |
Frekvencia hodín | Až 240 MHz |
RAM | 512 kB |
Špendlíky | 30 (v závislosti od modelu) |
Periférne zariadenia | Kapacitný dotyk, ADC (analógovo-digitálny prevodník), DAC (digitálny analógový prevodník), 12C (Inter-Integrated Circuit), UART (univerzálny asynchrónny prijímač/vysielač), CAN 2.0 (Controller Area Netwokr), SPI (Serial Peripheral Interface) , 12S (integrovaný inter-IC Zvuk), RMII (Reduced Media-Independent Interface), PWM (modulácia šírky impulzu) a ďalšie. |
Vstavané tlačidlá | Tlačidlá RESET a BOOT |
Vstavané LED diódy | vstavaná modrá LED pripojená k GPIO2; vstavaná červená LED, ktorá ukazuje, že doska je napájaná |
USB na UART most |
CP2102 |
Dodáva sa s rozhraním microUSB, ktoré môžete použiť na pripojenie dosky k počítaču na nahranie kódu alebo napájanie.
Používa čip CP2102 (USB na UART) na komunikáciu s počítačom cez COM port pomocou sériového rozhrania. Ďalším populárnym čipom je CH340. Skontrolujte, aký je prevodník čipov USB na UART na vašej doske, pretože budete musieť nainštalovať požadované ovládače, aby váš počítač mohol komunikovať s doskou (viac informácií o tom neskôr v tejto príručke).
Táto doska sa dodáva aj s tlačidlom RESET (môže byť označené EN) na reštart dosky a tlačidlom BOOT na uvedenie dosky do blikajúceho režimu (dostupné na príjem kódu). Upozorňujeme, že niektoré dosky nemusia mať tlačidlo BOOT.
Dodáva sa tiež so vstavanou modrou LED, ktorá je interne pripojená k GPIO 2. Táto LED je užitočná na ladenie, aby poskytla nejaký vizuálny fyzický výstup. K dispozícii je tiež červená LED dióda, ktorá sa rozsvieti, keď napájate dosku.Pinout ESP32
Medzi periférne zariadenia ESP32 patria:
- 18 kanálov analógovo-digitálneho prevodníka (ADC).
- 3 rozhrania SPI
- 3 rozhrania UART
- 2 rozhrania I2C
- 16 výstupné kanály PWM
- 2 digitálno-analógové prevodníky (DAC)
- 2 rozhrania I2S
- 10 GPIO s kapacitným snímaním
Funkcie ADC (analógovo-digitálny prevodník) a DAC (digitálno-analógový prevodník) sú priradené špecifickým statickým kolíkom. Môžete sa však rozhodnúť, ktoré piny sú UART, I2C, SPI, PWM atď. – stačí ich priradiť v kóde. Je to možné vďaka funkcii multiplexovania čipu ESP32.
Aj keď môžete definovať vlastnosti pinov v softvéri, existujú piny priradené predvolene, ako je znázornené na nasledujúcom obrázkuOkrem toho existujú kolíky so špecifickými vlastnosťami, vďaka ktorým sú vhodné alebo nevhodné pre konkrétny projekt. Nasledujúca tabuľka ukazuje, ktoré kolíky je najlepšie použiť ako vstupy, výstupy a na ktoré si treba dávať pozor.
Špendlíky zvýraznené zelenou farbou je možné použiť. Tie, ktoré sú zvýraznené žltou farbou, sú vhodné na použitie, ale musíte venovať pozornosť, pretože môžu mať neočakávané správanie, najmä pri zavádzaní. Piny zvýraznené červenou farbou sa neodporúčajú používať ako vstupy alebo výstupy.
GP IO | Vstup | Výstup | Poznámky |
0 | vytiahol hore | OK | výstupný signál PWM pri bootovaní, musí byť LOW, aby ste vstúpili do blikajúceho režimu |
1 | TX kolík | OK | výstup ladenia pri štarte |
2 | OK | OK | pripojený k zabudovanej LED, musí byť ponechaný plávajúci alebo LOW, aby ste vstúpili do blikajúceho režimu |
3 | OK | RX kolík | VYSOKÁ pri štarte |
4 | OK | OK | |
5 | OK | OK | výstupy PWM signálu pri štarte, popruhový kolík |
12 | OK | OK | topánka zlyhá, ak je vytiahnutá vysoko, popruhový špendlík |
13 | OK | OK | |
14 | OK | OK | výstup signálu PWM pri bootovaní |
15 | OK | OK | výstupy PWM signálu pri štarte, popruhový kolík |
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 | iba vstup | |
35 | OK | iba vstup | |
36 | OK | iba vstup | |
39 | OK | iba vstup |
Pokračujte v čítaní, kde nájdete podrobnejšie a hĺbkovú analýzu GPIO ESP32 a jeho funkcií.
Zadajte iba kolíky
GPIO 34 až 39 sú GPI – iba vstupné kolíky. Tieto kolíky nemajú vnútorné pull-up alebo pull-down odpory. Nedajú sa použiť ako výstupy, takže tieto piny používajte iba ako vstupy:
- GPIO 34
- GPIO 35
- GPIO 36
- GPIO 39
SPI blesk integrovaný na ESP-WROOM-32
GPIO 6 až GPIO 11 sú vystavené na niektorých vývojových doskách ESP32. Tieto piny sú však pripojené k integrovanému blesku SPI na čipe ESP-WROOM-32 a na iné použitie sa neodporúčajú. Preto vo svojich projektoch nepoužívajte tieto piny:
- GPIO 6 (SCK/CLK)
- GPIO 7 (SDO/SD0)
- GPIO 8 (SDI/SD1)
- GPIO 9 (SHD/SD2)
- GPIO 10 (SWP/SD3)
- GPIO 11 (CSC/CMD)
Kapacitné dotykové GPIO
ESP32 má 10 interných kapacitných dotykových senzorov. Tie dokážu zaznamenať zmeny vo všetkom, čo má elektrický náboj, ako je ľudská koža. Takže môžu detekovať variácie vyvolané dotykom GPIO prstom. Tieto kolíky možno jednoducho integrovať do kapacitných podložiek a nahradiť mechanické tlačidlá. Kapacitné dotykové kolíky možno použiť aj na prebudenie ESP32 z hlbokého spánku. Tieto interné dotykové senzory sú pripojené k týmto 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)
Analógovo-digitálny prevodník (ADC)
ESP32 má 18 x 12 bitov ADC vstupných kanálov (zatiaľ čo ESP8266 má len 1 x 10 bitov ADC). Toto sú GPIO, ktoré možno použiť ako ADC a príslušné kanály:
- 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)
Poznámka: Piny ADC2 nemožno použiť, keď sa používa Wi-Fi. Ak teda používate Wi-Fi a máte problém získať hodnotu z ADC2 GPIO, môžete namiesto toho zvážiť použitie ADC1 GPIO. To by malo vyriešiť váš problém.
Vstupné kanály ADC majú 12-bitové rozlíšenie. To znamená, že môžete získať analógové hodnoty v rozsahu od 0 do 4095, v ktorých 0 zodpovedá 0V a 4095 až 3.3V. Môžete tiež nastaviť rozlíšenie vašich kanálov na kóde a rozsahu ADC.
Piny ESP32 ADC nemajú lineárne správanie. Pravdepodobne nebudete schopní rozlíšiť medzi 0 a 0.1 V alebo medzi 3.2 a 3.3 V. Musíte to mať na pamäti pri používaní kolíkov ADC. Dosiahnete správanie podobné tomu, ktoré je znázornené na nasledujúcom obrázku.Digitálny na analógový prevodník (DAC)
Na ESP2 sú 8 x 32 bitové DAC kanály na konverziu digitálnych signálov na analógové voltage výstupy signálu. Toto sú kanály DAC:
- DAC1 (GPIO25)
- DAC2 (GPIO26)
RTC GPIO
Na ESP32 je podpora RTC GPIO. GPIO smerované do nízkoenergetického subsystému RTC možno použiť, keď je ESP32 v hlbokom spánku. Tieto RTC GPIO sa dajú použiť na prebudenie ESP32 z hlbokého spánku, keď je ultra nízka
Napájací (ULP) koprocesor je spustený. Nasledujúce GPIO možno použiť ako externý zdroj budenia.
- 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
Regulátor ESP32 LED PWM má 16 nezávislých kanálov, ktoré je možné nakonfigurovať na generovanie signálov PWM s rôznymi vlastnosťami. Všetky kolíky, ktoré môžu fungovať ako výstupy, možno použiť ako kolíky PWM (GPIO 34 až 39 nedokážu generovať PWM).
Ak chcete nastaviť signál PWM, musíte v kóde definovať tieto parametre:
- Frekvencia signálu;
- Pracovný cyklus;
- PWM kanál;
- GPIO, kde chcete vysielať signál.
I2C
ESP32 má dva I2C kanály a každý kolík môže byť nastavený ako SDA alebo SCL. Pri použití ESP32 s Arduino IDE sú predvolené I2C kolíky:
- GPIO 21 (SDA)
- GPIO 22 (SCL)
Ak chcete pri používaní knižnice drôtov použiť iné kolíky, stačí zavolať:
Wire.begin(SDA, SCL);
SPI
V predvolenom nastavení je mapovanie pinov pre SPI:
SPI | Mosi | Mišový | CLK | CS |
VSPI | GPIO 23 | GPIO 19 | GPIO 18 | GPIO 5 |
HSPI | GPIO 13 | GPIO 12 | GPIO 14 | GPIO 15 |
prerušenie
Všetky GPIO môžu byť nakonfigurované ako prerušenia.
Špendlíky
Čip ESP32 má nasledujúce páskovacie kolíky:
- GPIO 0 (na vstup do bootovacieho režimu musí byť LOW)
- GPIO 2 (počas zavádzania musí byť plávajúce alebo NÍZKE)
- GPIO 4
- GPIO 5 (počas zavádzania musí byť VYSOKÝ)
- GPIO 12 (počas zavádzania musí byť LOW)
- GPIO 15 (počas zavádzania musí byť VYSOKÝ)
Používajú sa na uvedenie ESP32 do režimu bootloader alebo blikania. Na väčšine vývojových dosiek so zabudovaným USB/Serial sa o stav týchto pinov nemusíte starať. Doska uvádza kolíky do správneho stavu pre režim blikania alebo zavádzania. Viac informácií o výbere režimu zavádzania ESP32 nájdete tu.
Ak však máte k týmto pinom pripojené periférne zariadenia, môžete mať problém s nahraním nového kódu, flashovaním ESP32 novým firmvérom alebo resetovaním dosky. Ak máte nejaké periférne zariadenia pripojené k upínacím kolíkom a máte problémy s nahrávaním kódu alebo blikaním ESP32, môže to byť spôsobené tým, že tieto periférne zariadenia bránia ESP32 vstúpiť do správneho režimu. Prečítajte si dokumentáciu výberu režimu zavádzania, ktorá vás navedie správnym smerom. Po resetovaní, prebliknutí alebo zavedení fungujú tieto piny podľa očakávania.
Piny HIGH pri zavádzaní
Niektoré GPIO zmenia svoj stav na HIGH alebo vydávajú PWM signály pri zavádzaní alebo resetovaní.
To znamená, že ak máte výstupy pripojené k týmto GPIO, môžete získať neočakávané výsledky, keď sa ESP32 resetuje alebo zavedie.
- GPIO 1
- GPIO 3
- GPIO 5
- GPIO 6 až GPIO 11 (pripojené k integrovanej SPI flash pamäti ESP32 – neodporúča sa používať).
- GPIO 14
- GPIO 15
Povoliť (EN)
Enable (EN) je aktivačný kolík 3.3V regulátora. Je vytiahnutý, takže pripojte k zemi, aby ste deaktivovali 3.3V regulátor. To znamená, že tento kolík pripojený k tlačidlu môžete použiť na reštartovanie ESP32, naprample.
Odber prúdu GPIO
Absolútny maximálny prúd odoberaný na GPIO je 40 mA podľa časti „Odporúčané prevádzkové podmienky“ v údajovom liste ESP32.
ESP32 vstavaný senzor s Hallovým efektom
ESP32 je tiež vybavený vstavaným snímačom Hallovho efektu, ktorý deteguje zmeny v magnetickom poli vo svojom okolí
ESP32 Arduino IDE
Existuje doplnok pre Arduino IDE, ktorý vám umožňuje programovať ESP32 pomocou Arduino IDE a jeho programovacieho jazyka. V tomto návode vám ukážeme, ako nainštalovať dosku ESP32 v Arduino IDE, či už používate Windows, Mac OS X alebo Linux.
Predpoklady: Nainštalované Arduino IDE
Pred začatím tohto postupu inštalácie musíte mať na počítači nainštalované Arduino IDE. Existujú dve verzie Arduino IDE, ktoré si môžete nainštalovať: verzia 1 a verzia 2.
Arduino IDE si môžete stiahnuť a nainštalovať kliknutím na nasledujúci odkaz: arduino.cc/en/Main/Software
Ktorú verziu Arduino IDE odporúčame? Momentálne sú nejaké plugins pre ESP32 (ako SPIFFS Filesystem Uploader Plugin), ktoré ešte nie sú podporované na Arduino 2. Ak teda plánujete v budúcnosti použiť SPIFFS plugin, odporúčame nainštalovať staršiu verziu 1.8.X. Ak ho chcete nájsť, stačí prejsť nadol na stránke softvéru Arduino.
Inštalácia doplnku ESP32 v Arduino IDE
Ak chcete nainštalovať dosku ESP32 do vášho Arduino IDE, postupujte podľa nasledujúcich pokynov:
- Vo svojom Arduino IDE prejdite na File> Predvoľby
- Do „Additional Board Manager“ zadajte nasledovné URLs” pole:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Potom kliknite na tlačidlo „OK“:Poznámka: ak už máte dosky ESP8266 URL, môžete oddeliť URLs čiarkou takto:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Otvorte správcu dosiek. Prejdite na Nástroje > Nástenka > Správca násteniek…Hľadať ESP32 a stlačte tlačidlo inštalácie pre „ESP32 od Espressif Systems“:
To je všetko. Mal by byť nainštalovaný po niekoľkých sekundách.
Nahrajte testovací kód
Pripojte dosku ESP32 k počítaču. S otvoreným Arduino IDE postupujte podľa týchto krokov:
- Vyberte svoju dosku v ponuke Nástroje > Doska (v mojom prípade je to modul ESP32 DEV)
- Vyberte port (ak nevidíte COM port vo vašom Arduino IDE, musíte nainštalovať ovládače VCP CP210x USB to UART Bridge):
- Otvorte nasledujúci príkladample pod File > Napramples > WiFi
(ESP32) > WiFiScan - Vo vašom Arduino IDE sa otvorí nová skica:
- Stlačte tlačidlo Upload v Arduino IDE. Počkajte niekoľko sekúnd, kým sa kód skompiluje a nahrá na vašu nástenku.
- Ak všetko prebehlo podľa očakávania, malo by sa zobraziť „Odovzdávanie dokončené“. správu.
- Otvorte Arduino IDE Serial Monitor s prenosovou rýchlosťou 115200:
- Stlačte tlačidlo aktivácie ESP32 na palube a mali by ste vidieť dostupné siete v blízkosti vášho ESP32:
Riešenie problémov
Ak sa pokúsite nahrať nový náčrt do vášho ESP32 a dostanete toto chybové hlásenie „Vyskytla sa závažná chyba: Nepodarilo sa pripojiť k ESP32: Časový limit vypršal… Pripájam sa…“. Znamená to, že váš ESP32 nie je v režime blikania/nahrávania.
Po výbere správneho názvu dosky a COM por postupujte podľa týchto krokov:
Podržte stlačené tlačidlo „BOOT“ na doske ESP32
- Stlačením tlačidla „Nahrať“ v Arduino IDE nahrajte svoj náčrt:
- Po zobrazení „Pripája sa...“ správu vo vašom Arduino IDE, uvoľnite prst z tlačidla „BOOT“:
- Potom by ste mali vidieť správu „Hotovo nahrávanie“.
To je všetko. Váš ESP32 by mal mať spustený nový náčrt. Stlačením tlačidla „ENABLE“ reštartujete ESP32 a spustíte nový nahraný náčrt.
Túto sekvenciu tlačidiel budete musieť zopakovať vždy, keď budete chcieť nahrať nový náčrt.
Projekt 1 ESP32 Vstupy Výstupy
V tejto príručke pre začiatočníkov sa naučíte čítať digitálne vstupy ako tlačidlový spínač a ovládať digitálne výstupy ako LED pomocou ESP32 s Arduino IDE.
Predpoklady
Naprogramujeme ESP32 pomocou Arduino IDE. Pred pokračovaním sa teda uistite, že máte nainštalovaný doplnok dosiek ESP32:
- Inštalácia doplnku ESP32 v Arduino IDE
ESP32 Ovládanie digitálnych výstupov
Najprv musíte nastaviť GPIO, ktoré chcete ovládať, ako OUTPUT. Použite funkciu pinMode() nasledovne:
pinMode(GPIO, OUTPUT);
Na ovládanie digitálneho výstupu stačí použiť funkciu digitalWrite(), ktorá akceptuje ako argumenty GPIO (číslo int), na ktoré odkazujete, a stav, buď HIGH alebo LOW.
digitalWrite(GPIO, STATE);
Všetky GPIO môžu byť použité ako výstupy okrem GPIO 6 až 11 (pripojené k integrovanému blesku SPI) a GPIO 34, 35, 36 a 39 (len vstup GPIO);
Zistite viac o ESP32 GPIO: Referenčná príručka ESP32 GPIO
Čítanie digitálnych vstupov ESP32
Najprv nastavte GPIO, ktoré chcete čítať, ako INPUT, pomocou funkcie pinMode() takto:
pinMode(GPIO, INPUT);
Na čítanie digitálneho vstupu, napríklad tlačidla, použite funkciu digitalRead(), ktorá akceptuje ako argument GPIO (číslo int), na ktoré odkazujete.
digitalRead (GPIO);
Všetky ESP32 GPIO môžu byť použité ako vstupy, okrem GPIO 6 až 11 (pripojené k integrovanému blesku SPI).
Zistite viac o ESP32 GPIO: Referenčná príručka ESP32 GPIO
Projekt naprample
Aby sme vám ukázali, ako používať digitálne vstupy a digitálne výstupy, zostavíme jednoduchý projekt naprample s tlačidlom a LED. Odčítame stav tlačidla a podľa toho rozsvietime LED, ako je znázornené na nasledujúcom obrázku.
Požadované diely
Tu je zoznam častí, ktoré potrebujete na zostavenie obvodu:
- ESP32 DEVKIT V1
- 5 mm LED
- Rezistor 220 Ohm
- tlačidlo
- 10k Ohm odpor
- Breadboard
- Štartovacie káble
Schematický diagram
Predtým, ako budete pokračovať, musíte zostaviť obvod s LED a tlačidlom.
LED pripojíme k GPIO 5 a tlačidlo k GPIO 4.kód
Otvorte kód Project_1_ESP32_Inputs_Outputs.ino v arduino IDEAko funguje kódex
V nasledujúcich dvoch riadkoch vytvoríte premenné na priradenie pinov:
Tlačidlo je pripojené k GPIO 4 a LED je pripojená k GPIO 5. Pri použití Arduino IDE s ESP32, 4 zodpovedá GPIO 4 a 5 zodpovedá GPIO 5.
Ďalej vytvoríte premennú na udržanie stavu tlačidla. V predvolenom nastavení je to 0 (nie je stlačené).
int buttonState = 0;
V setup() inicializujete tlačidlo ako INPUT a LED ako OUTPUT.
Na to použite funkciu pinMode(), ktorá akceptuje pin, na ktorý odkazujete, a režim: INPUT alebo OUTPUT.
pinMode(tlačidloPin, INPUT);
pinMode(ledPin, OUTPUT);
V slučke () čítate stav tlačidla a podľa toho nastavíte LED.
V ďalšom riadku si prečítate stav tlačidla a uložíte ho do premennej buttonState.
Ako sme už videli, používate funkciu digitalRead().
buttonState = digitalRead(buttonPin);
Nasledujúci príkaz if kontroluje, či je stav tlačidla HIGH. Ak je, zapne LED pomocou funkcie digitalWrite(), ktorá akceptuje ako argument ledPin a stav HIGH.
if (buttonState == HIGH)Ak stav tlačidla nie je HIGH, vypnete LED. Stačí nastaviť LOW ako druhý argument na vo funkcii digitalWrite().
Nahrávanie kódu
Pred kliknutím na tlačidlo nahrávania prejdite na Nástroje > Doska a vyberte dosku :DOIT ESP32 DEVKIT V1 doska.
Prejdite na Nástroje > Port a vyberte port COM, ku ktorému je ESP32 pripojený. Potom stlačte tlačidlo nahrávania a počkajte na správu „Hotovo nahrávanie“.Poznámka: Ak v okne ladenia vidíte veľa bodiek (pripája sa…__…__) a správu „Nepodarilo sa pripojiť k ESP32: Časový limit čakania na hlavičku paketu vypršal“, znamená to, že musíte stlačiť zabudovaný BOOT ESP32. tlačidlo za bodkami
sa začnú objavovať.Riešenie problémov
Demonštrácia
Po nahraní kódu otestujte svoj obvod. Vaša LED by sa mala rozsvietiť, keď stlačíte tlačidlo:A po uvoľnení vypnite:
Projekt 2 Analógové vstupy ESP32
Tento projekt ukazuje, ako čítať analógové vstupy s ESP32 pomocou Arduino IDE.
Analógové čítanie je užitočné na čítanie hodnôt z premenných odporov, ako sú potenciometre alebo analógové snímače.
Analógové vstupy (ADC)
Čítanie analógovej hodnoty pomocou ESP32 znamená, že môžete merať rôzne objemytage úrovne medzi 0 V a 3.3 V.
ZvtagNameraná hodnota sa potom priradí k hodnote medzi 0 a 4095, v ktorej 0 V zodpovedá 0 a 3.3 V zodpovedá 4095. Akýkoľvek obj.tage medzi 0 V a 3.3 V dostane zodpovedajúcu hodnotu medzi nimi.ADC je nelineárny
V ideálnom prípade by ste pri použití kolíkov ADC ESP32 očakávali lineárne správanie.
To sa však nedeje. Získate správanie, ktoré je znázornené v nasledujúcej tabuľke:Toto správanie znamená, že váš ESP32 nedokáže rozlíšiť 3.3 V od 3.2 V.
Získate rovnakú hodnotu pre oba objtages: 4095.
To isté platí pre veľmi nízke objtagHodnoty e: pre 0 V a 0.1 V dostanete rovnakú hodnotu: 0. Toto musíte mať na pamäti pri používaní pinov ESP32 ADC.
Funkcia analogRead().
Čítanie analógového vstupu pomocou ESP32 pomocou Arduino IDE je rovnako jednoduché ako pomocou funkcie analogRead(). Prijíma ako argument GPIO, ktorý si chcete prečítať:
analogRead(GPIO);
Na doske DEVKIT V15board (verzia s 1 GPIO) je k dispozícii iba 30 kusov.
Uchopte vývod dosky ESP32 a nájdite kolíky ADC. Tie sú na obrázku nižšie zvýraznené červeným okrajom.Tieto analógové vstupné kolíky majú 12-bitové rozlíšenie. To znamená, že keď čítate analógový vstup, jeho rozsah sa môže meniť od 0 do 4095.
Poznámka: Piny ADC2 nemožno použiť, keď sa používa Wi-Fi. Ak teda používate Wi-Fi a máte problém získať hodnotu z ADC2 GPIO, môžete namiesto toho zvážiť použitie ADC1 GPIO, čo by malo vyriešiť váš problém.
Aby sme videli, ako všetko spolu súvisí, urobíme jednoduchého example na čítanie analógovej hodnoty z potenciometra.
Požadované diely
Pre túto example, potrebujete nasledujúce časti:
- Doska ESP32 DEVKIT V1
- Potenciometer
- Breadboard
- Štartovacie káble
Schematický
Pripojte potenciometer k vášmu ESP32. Stredný kolík potenciometra by mal byť pripojený k GPIO 4. Ako referenciu môžete použiť nasledujúci schematický diagram.kód
ESP32 naprogramujeme pomocou Arduino IDE, takže sa pred pokračovaním uistite, že máte nainštalovaný doplnok ESP32: (Ak ste už urobili tento krok, môžete prejsť na ďalší krok.)
Inštalácia doplnku ESP32 v Arduino IDE
Otvorte kód Project_2_ESP32_Inputs_Outputs.ino v arduino IDETento kód jednoducho načíta hodnoty z potenciometra a vytlačí ich do sériového monitora.
V kóde začínate definovaním GPIO, ku ktorému je potenciometer pripojený. V tomto example, GPIO 4.V setup() inicializujte sériovú komunikáciu s prenosovou rýchlosťou 115200.
V loop() použite funkciu analogRead() na čítanie analógového vstupu z potPin.
Nakoniec vytlačte hodnoty načítané z potenciometra v sériovom monitore.
Nahrajte poskytnutý kód do vášho ESP32. Skontrolujte, či máte v ponuke Nástroje vybratú správnu dosku a port COM.
Testovanie Example
Po nahraní kódu a stlačení tlačidla reset ESP32 otvorte sériový monitor s prenosovou rýchlosťou 115200. Otáčajte potenciometer a sledujte zmeny hodnôt.Maximálna hodnota, ktorú získate, je 4095 a minimálna hodnota je 0.
Zabaliť sa
V tomto článku ste sa naučili, ako čítať analógové vstupy pomocou ESP32 s Arduino IDE. V súhrne:
- Doska ESP32 DEVKIT V1 DOIT (verzia s 30 kolíkmi) má 15 kolíkov ADC, ktoré môžete použiť na čítanie analógových vstupov.
- Tieto kolíky majú rozlíšenie 12 bitov, čo znamená, že môžete získať hodnoty od 0 do 4095.
- Ak chcete prečítať hodnotu v Arduino IDE, jednoducho použite funkciu analogRead().
- Piny ESP32 ADC nemajú lineárne správanie. Pravdepodobne nebudete schopní rozlíšiť medzi 0 a 0.1 V alebo medzi 3.2 a 3.3 V. Musíte to mať na pamäti pri používaní kolíkov ADC.
Project 3 ESP32 PWM (analógový výstup)
V tomto návode vám ukážeme, ako generovať PWM signály s ESP32 pomocou Arduino IDE. Ako exampZostavíme jednoduchý obvod, ktorý stlmí LED diódu pomocou LED PWM regulátora ESP32.ESP32 LED PWM ovládač
ESP32 má LED PWM regulátor so 16 nezávislými kanálmi, ktoré je možné nakonfigurovať na generovanie PWM signálov s rôznymi vlastnosťami.
Tu sú kroky, ktoré budete musieť vykonať na stlmenie LED pomocou PWM pomocou Arduino IDE:
- Najprv musíte vybrať kanál PWM. K dispozícii je 16 kanálov od 0 do 15.
- Potom musíte nastaviť frekvenciu signálu PWM. Pre LED je vhodné použiť frekvenciu 5000 Hz.
- Musíte tiež nastaviť rozlíšenie pracovného cyklu signálu: máte rozlíšenie od 1 do 16 bitov. Použijeme 8-bitové rozlíšenie, čo znamená, že jas LED môžete ovládať pomocou hodnoty od 0 do 255.
- Ďalej musíte určiť, na ktorých GPIO alebo GPIO sa signál zobrazí. Na to použijete nasledujúcu funkciu:
ledcAttachPin(GPIO, kanál)
Táto funkcia akceptuje dva argumenty. Prvým je GPIO, ktorý bude vysielať signál, a druhým je kanál, ktorý bude generovať signál. - Nakoniec na ovládanie jasu LED pomocou PWM použite nasledujúcu funkciu:
ledcWrite (kanál, pracovný cyklus)
Táto funkcia prijíma ako argumenty kanál, ktorý generuje signál PWM, a pracovný cyklus.
Požadované diely
Ak chcete postupovať podľa tohto návodu, potrebujete tieto časti:
- Doska ESP32 DEVKIT V1
- 5 mm LED
- Rezistor 220 Ohm
- Breadboard
- Štartovacie káble
Schematický
Zapojte LED do vášho ESP32 ako na nasledujúcom schematickom diagrame. LED by mala byť pripojená k GPIO 4.Poznámka: môžete použiť akýkoľvek kolík, ktorý chcete, pokiaľ môže fungovať ako výstup. Všetky kolíky, ktoré môžu fungovať ako výstupy, možno použiť ako kolíky PWM. Pre viac informácií o ESP32 GPIO si prečítajte: ESP32 Pinout Reference: Ktoré GPIO piny by ste mali použiť?
kód
ESP32 naprogramujeme pomocou Arduino IDE, takže sa pred pokračovaním uistite, že máte nainštalovaný doplnok ESP32: (Ak ste už urobili tento krok, môžete prejsť na ďalší krok.)
Inštalácia doplnku ESP32 v Arduino IDE
Otvorte kód Project_3_ESP32_PWM.ino v arduino IDEZačnete definovaním kolíka, ku ktorému je LED pripojená. V tomto prípade je LED pripojená k GPIO 4.
Potom nastavte vlastnosti signálu PWM. Definujete frekvenciu 5000 Hz, zvolíte kanál 0 na generovanie signálu a nastavíte rozlíšenie 8 bitov. Môžete si vybrať iné vlastnosti, iné ako tieto, na generovanie rôznych PWM signálov.
V setup() musíte nakonfigurovať LED PWM s vlastnosťami, ktoré ste definovali skôr pomocou funkcie ledcSetup(), ktorá akceptuje ako argumenty, ledChannel, frekvenciu a rozlíšenie, a to nasledovne:
Ďalej si musíte vybrať GPIO, z ktorého budete získavať signál. Na to použite funkciu ledcAttachPin(), ktorá akceptuje ako argumenty GPIO, kde chcete získať signál, a kanál, ktorý generuje signál. V tomto example, dostaneme signál v ledPin GPIO, ktorý zodpovedá GPIO 4. Kanál, ktorý generuje signál, je ledChannel, ktorý zodpovedá kanálu 0.
V slučke budete meniť pracovný cyklus medzi 0 a 255, aby ste zvýšili jas LED.
A potom medzi 255 a 0 na zníženie jasu.
Na nastavenie jasu LED stačí použiť funkciu ledcWrite(), ktorá akceptuje ako argumenty kanál, ktorý generuje signál, a pracovný cyklus.
Keďže používame 8-bitové rozlíšenie, pracovný cyklus bude riadený pomocou hodnoty od 0 do 255. Všimnite si, že vo funkcii ledcWrite() používame kanál, ktorý generuje signál, a nie GPIO.
Testovanie Example
Nahrajte kód do svojho ESP32. Uistite sa, že máte vybratú správnu dosku a COM port. Pozrite sa na svoj obvod. Mali by ste mať stmievač LED, ktorý zvyšuje a znižuje jas.
Projekt 4 ESP32 PIR pohybový senzor
Tento projekt ukazuje, ako detegovať pohyb pomocou ESP32 pomocou pohybového senzora PIR. Bzučiak spustí alarm, keď je detekovaný pohyb, a zastaví alarm, keď nie je zistený žiadny pohyb počas vopred nastaveného času (napríklad 4 sekundy)
Ako funguje snímač pohybu HC-SR501
.Princíp činnosti snímača HC-SR501 je založený na zmene infračerveného žiarenia na pohybujúci sa objekt. Aby bol objekt detekovaný snímačom HC-SR501, musí spĺňať dve požiadavky:
- Objekt vyžaruje infračervené žiarenie.
- Objekt sa pohybuje alebo sa trasie
Takže:
Ak objekt vyžaruje infračervený lúč, ale NEPOHYBUJE sa (napr. osoba stojí na mieste bez pohybu), snímač ho NIE JE detekovaný.
Ak sa objekt pohybuje, ale nevyžaruje infračervený lúč (napr. robot alebo vozidlo), NIE JE detekovaný snímačom.
Predstavujeme časovače
V tomto example predstavíme aj časovače. Chceme, aby LED zostala zapnutá počas vopred stanoveného počtu sekúnd po detekcii pohybu. Namiesto použitia funkcie delay(), ktorá blokuje váš kód a nedovolí vám robiť nič iné na určený počet sekúnd, by sme mali použiť časovač.Funkcia delay().
Mali by ste byť oboznámení s funkciou delay(), pretože je široko používaná. Použitie tejto funkcie je celkom jednoduché. Ako argument akceptuje jediné int číslo.
Toto číslo predstavuje čas v milisekundách, ktorý musí program čakať, kým prejde na ďalší riadok kódu.Keď urobíte delay (1000), váš program sa na tomto riadku zastaví na 1 sekundu.
delay() je blokovacia funkcia. Blokovacie funkcie bránia programu robiť čokoľvek iné, kým sa táto konkrétna úloha nedokončí. Ak potrebujete vykonať viacero úloh súčasne, nemôžete použiť delay().
Pri väčšine projektov by ste sa mali vyhnúť používaniu oneskorení a namiesto toho použiť časovače.
Funkcia millis().
Pomocou funkcie s názvom millis() môžete vrátiť počet milisekúnd, ktoré uplynuli od prvého spustenia programu.Prečo je táto funkcia užitočná? Pretože pomocou určitej matematiky môžete ľahko overiť, koľko času uplynulo bez toho, aby ste zablokovali svoj kód.
Požadované diely
Ak chcete postupovať podľa tohto návodu, potrebujete nasledujúce časti
- Doska ESP32 DEVKIT V1
- PIR pohybový senzor (HC-SR501)
- Aktívny bzučiak
- Štartovacie káble
- Breadboard
SchematickýPoznámka: Pracovný objtage HC-SR501 je 5V. Na napájanie použite kolík Vin.
kód
Pred pokračovaním v tomto návode by ste mali mať nainštalovaný doplnok ESP32 vo vašom Arduino IDE. Podľa jedného z nasledujúcich návodov nainštalujte ESP32 na Arduino IDE, ak ste tak ešte neurobili. (Ak ste už tento krok urobili, môžete prejsť na ďalší krok.)
Inštalácia doplnku ESP32 v Arduino IDE
Otvorte kód Project_4_ESP32_PIR_Motion_Sensor.ino v arduino IDE.
Demonštrácia
Nahrajte kód na dosku ESP32. Uistite sa, že ste vybrali správnu dosku a port COM. Nahrajte referenčné kroky kódu.
Otvorte sériový monitor s prenosovou rýchlosťou 115200.Presuňte ruku pred PIR senzor. Bzučiak by sa mal zapnúť a na sériovom monitore sa vytlačí správa „Detekovaný pohyb! Alarm bzučiaka“.
Po 4 sekundách by sa mal bzučiak vypnúť.
Projekt 5 prepínač ESP32 Web Server
V tomto projekte vytvoríte samostatný web server s ESP32, ktorý riadi výstupy (dve LED) pomocou programovacieho prostredia Arduino IDE. The web server reaguje na mobilné zariadenia a je možné k nemu pristupovať pomocou ľubovoľného zariadenia, ktoré slúži ako prehliadač v lokálnej sieti. Ukážeme vám, ako vytvoriť web server a ako kód funguje krok za krokom.
Projekt sa skončilview
Predtým, ako sa pustíte priamo do projektu, je dôležité načrtnúť, čo je naše web server urobí, takže je jednoduchšie postupovať podľa krokov neskôr.
- The web server, ktorý si postavíte, ovláda dve LED diódy pripojené k ESP32 GPIO 26 a GPIO 27;
- Máte prístup k ESP32 web server zadaním adresy IP ESP32 do prehliadača v lokálnej sieti;
- Kliknutím na tlačidlá na vašom web server môžete okamžite zmeniť stav každej LED.
Požadované diely
Pre tento tutoriál budete potrebovať nasledujúce časti:
- Doska ESP32 DEVKIT V1
- 2x 5mm LED
- 2x 200 Ohm odpor
- Breadboard
- Štartovacie káble
Schematický
Začnite zostavením okruhu. Pripojte dve LED diódy k ESP32, ako je znázornené na nasledujúcom schematickom diagrame – jedna LED je pripojená k GPIO 26 a druhá k GPIO 27.
Poznámka: Používame dosku ESP32 DEVKIT DOIT s 36 pinmi. Pred zostavením obvodu sa uistite, že ste skontrolovali pinout pre dosku, ktorú používate.kód
Tu uvádzame kód, ktorý vytvára ESP32 web server. Otvorte kód Project_5_ESP32_Switch _Web_Server.ino v arduino IDE, ale ešte ho nenahrávajte. Aby vám to fungovalo, musíte urobiť nejaké zmeny.
ESP32 naprogramujeme pomocou Arduino IDE, takže sa pred pokračovaním uistite, že máte nainštalovaný doplnok ESP32: (Ak ste už urobili tento krok, môžete prejsť na ďalší krok.)
Inštalácia doplnku ESP32 v Arduino IDE
Nastavenie sieťových poverení
Musíte upraviť nasledujúce riadky s vašimi sieťovými povereniami: SSID a heslo. Kód je dobre komentovaný, kde by ste mali vykonať zmeny.Nahrávanie kódu
Teraz môžete nahrať kód a web server bude fungovať okamžite.
Ak chcete nahrať kód do ESP32, postupujte podľa nasledujúcich krokov:
- Zapojte dosku ESP32 do počítača;
- V Arduino IDE vyberte svoju dosku v Tools > Board (v našom prípade používame dosku ESP32 DEVKIT DOIT);
- Vyberte port COM v ponuke Nástroje > Port.
- Stlačte tlačidlo Upload v Arduino IDE a počkajte niekoľko sekúnd, kým sa kód skompiluje a nahrá na vašu dosku.
- Počkajte na správu „Hotovo nahrávanie“.
Nájdenie IP adresy ESP
Po nahraní kódu otvorte sériový monitor s prenosovou rýchlosťou 115200.Stlačte tlačidlo ESP32 EN (reset). ESP32 sa pripojí k Wi-Fi a odošle IP adresu ESP na sériový monitor. Skopírujte túto IP adresu, pretože ju potrebujete na prístup k ESP32 web server.
Prístup k Web Server
Pre prístup k web server, otvorte prehliadač, vložte IP adresu ESP32 a uvidíte nasledujúcu stránku.
Poznámka: Váš prehliadač a ESP32 by mali byť pripojené k rovnakej sieti LAN.Ak sa pozriete na sériový monitor, môžete vidieť, čo sa deje na pozadí. ESP dostane požiadavku HTTP od nového klienta (v tomto prípade vášho prehliadača).
Môžete tiež vidieť ďalšie informácie o požiadavke HTTP.
Demonštrácia
Teraz môžete otestovať, či vaše web server funguje správne. Kliknutím na tlačidlá ovládate LED diódy.Zároveň sa môžete pozrieť na sériový monitor, aby ste videli, čo sa deje na pozadí. Napríkladample, keď kliknete na tlačidlo pre zapnutie GPIO 26, ESP32 dostane požiadavku na /26/on URL.
Keď ESP32 prijme túto požiadavku, zapne LED pripojenú k GPIO 26 a aktualizuje jej stav na web stránku.
Podobne funguje aj tlačidlo pre GPIO 27. Otestujte, či funguje správne.
Ako funguje kódex
V tejto časti sa bližšie pozrieme na kód, aby sme videli, ako to funguje.
Prvá vec, ktorú musíte urobiť, je zahrnúť knižnicu WiFi.Ako už bolo spomenuté, musíte vložiť svoje ssid a heslo do nasledujúcich riadkov do dvojitých úvodzoviek.
Potom si nastavte svoje web server na port 80.
Nasledujúci riadok vytvorí premennú na uloženie hlavičky HTTP požiadavky:
Ďalej vytvoríte pomocné premenné na uloženie aktuálneho stavu vašich výstupov. Ak chcete pridať ďalšie výstupy a uložiť jeho stav, musíte vytvoriť viac premenných.
Každému z vašich výstupov musíte tiež priradiť GPIO. Tu používame GPIO 26 a GPIO 27. Môžete použiť akékoľvek iné vhodné GPIO.
setup()
Teraz poďme do nastavenia (). Najprv spustíme sériovú komunikáciu s prenosovou rýchlosťou 115200 na účely ladenia.Môžete tiež definovať svoje GPIO ako OUTPUTs a nastaviť ich na LOW.
Nasledujúce riadky začínajú Wi-Fi pripojenie s WiFi.begin(ssid, heslo), počkajte na úspešné pripojenie a vytlačte IP adresu ESP na sériovom monitore.
slučka()
V loop() naprogramujeme, čo sa stane, keď nový klient vytvorí spojenie s web server.
ESP32 vždy počúva prichádzajúcich klientov s nasledujúcim riadkom:Po prijatí požiadavky od klienta uložíme prichádzajúce údaje. Slučka while, ktorá nasleduje, bude prebiehať dovtedy, kým bude klient pripojený. Neodporúčame meniť nasledujúcu časť kódu, pokiaľ presne neviete, čo robíte.
Ďalšia časť príkazov if a else kontroluje, ktoré tlačidlo bolo stlačené vo vašom web stránku a podľa toho riadi výstupy. Ako sme už videli, žiadosť podávame inak URLs v závislosti od stlačeného tlačidla.
Napríkladample, ak stlačíte tlačidlo GPIO 26 ON, ESP32 dostane požiadavku na /26/ON URL (Tieto informácie vidíme v hlavičke HTTP na sériovom monitore). Môžeme teda skontrolovať, či hlavička obsahuje výraz GET /26/on. Ak obsahuje, zmeníme premennú output26state na ON a ESP32 zapne LED.
Podobne to funguje aj pre ostatné tlačidlá. Takže, ak chcete pridať viac výstupov, mali by ste upraviť túto časť kódu tak, aby ich obsahovala.
Zobrazenie HTML web stránku
Ďalšia vec, ktorú musíte urobiť, je vytvoriť web stránku. ESP32 odošle do vášho prehliadača odpoveď s nejakým HTML kódom na zostavenie web stránku.
The web stránka sa odošle klientovi pomocou tohto výrazu client.println(). Ako argument by ste mali zadať, čo chcete klientovi poslať.
Prvá vec, ktorú by sme mali odoslať, je vždy nasledujúci riadok, ktorý označuje, že odosielame HTML.Potom nasledujúci riadok vytvorí web stránka responzívna v akomkoľvek web prehliadač.
A nasledujúce sa používa na zabránenie požiadavkám na favicon. – O túto linku sa nemusíte báť.
Úprava štýlu Web Stránka
Ďalej máme nejaký text CSS na štýl tlačidiel a web vzhľad stránky.
Vyberieme si font Helvetica, definujeme obsah, ktorý sa má zobraziť ako blok a zarovnať na stred.Tlačidlá štylizujeme farbou #4CAF50, bez okrajov, textom v bielej farbe a s touto výplňou: 16px 40px. Nastavíme tiež dekoráciu textu na žiadnu, definujeme veľkosť písma, okraj a kurzor na ukazovateľ.
Tiež definujeme štýl pre druhé tlačidlo so všetkými vlastnosťami tlačidla, ktoré sme definovali skôr, ale s inou farbou. Toto bude štýl pre tlačidlo vypnutia.
Nastavenie Web Prvý nadpis strany
V ďalšom riadku môžete nastaviť prvý nadpis svojho web stránku. Tu máme „ESP32 Web Server“, ale tento text môžete zmeniť na ľubovoľný.Zobrazenie tlačidiel a zodpovedajúceho stavu
Potom napíšete odsek na zobrazenie aktuálneho stavu GPIO 26. Ako vidíte, používame premennú output26State, takže stav sa aktualizuje okamžite, keď sa táto premenná zmení.Potom zobrazíme tlačidlo zapnutia alebo vypnutia v závislosti od aktuálneho stavu GPIO. Ak je aktuálny stav GPIO vypnutý, zobrazíme tlačidlo ON, ak nie, zobrazíme tlačidlo OFF.
Rovnaký postup používame pre GPIO 27.
Zatvorenie spojenia
Nakoniec, keď odpoveď skončí, vymažeme premennú hlavičky a zastavíme spojenie s klientom pomocou client.stop().
Zabaliť sa
V tomto návode sme vám ukázali, ako zostaviť a web server s ESP32. Ukázali sme vám jednoduchého example, ktorý ovláda dve LED diódy, ale myšlienkou je nahradiť tieto LED relé relé alebo iným výstupom, ktorý chcete ovládať.
Projekt 6 RGB LED Web Server
V tomto projekte vám ukážeme, ako na diaľku ovládať RGB LED s doskou ESP32 pomocou a web server s výberom farieb.
Projekt sa skončilview
Skôr ako začneme, pozrime sa, ako tento projekt funguje:
- ESP32 web server zobrazí výber farby.
- Keď si vyberiete farbu, váš prehliadač odošle požiadavku na a URL ktorý obsahuje parametre R, G a B vybranej farby.
- Váš ESP32 prijme požiadavku a rozdelí hodnotu pre každý parameter farby.
- Potom odošle signál PWM so zodpovedajúcou hodnotou do GPIO, ktoré riadia RGB LED.
Ako fungujú RGB LED?
V spoločnej katódovej RGB LED majú všetky tri LED spoločné záporné spojenie (katódu). Všetky zahrnuté v súprave sú RGB so spoločnou katódou.Ako vytvoriť rôzne farby?
S RGB LED môžete samozrejme produkovať červené, zelené a modré svetlo a konfiguráciou intenzity každej LED môžete produkovať aj iné farby.
NapríkladampAk chcete vytvoriť čisto modré svetlo, nastavili by ste modrú LED na najvyššiu intenzitu a zelenú a červenú LED na najnižšiu intenzitu. Pre biele svetlo by ste nastavili všetky tri LED diódy na najvyššiu intenzitu.
Miešanie farieb
Na výrobu iných farieb môžete kombinovať tri farby v rôznych intenzitách. Na nastavenie intenzity každej LED môžete použiť signál PWM.
Pretože LED diódy sú veľmi blízko seba, naše oči vidia výsledok kombinácie farieb, a nie jednotlivé tri farby.
Ak chcete mať predstavu o kombinovaní farieb, pozrite si nasledujúcu tabuľku.
Toto je najjednoduchšia tabuľka miešania farieb, ale poskytuje vám predstavu, ako to funguje a ako vyrábať rôzne farby.Požadované diely
Pre tento projekt potrebujete nasledujúce časti:
- Doska ESP32 DEVKIT V1
- RGB LED
- 3x 220 ohmové odpory
- Štartovacie káble
- Breadboard
Schematickýkód
ESP32 naprogramujeme pomocou Arduino IDE, takže sa pred pokračovaním uistite, že máte nainštalovaný doplnok ESP32: (Ak ste už urobili tento krok, môžete prejsť na ďalší krok.)
- Inštalácia doplnku ESP32 v Arduino IDE
Po zostavení obvodu otvorte kód
Project_6_RGB_LED_Web_Server.ino v arduino IDE.
Pred nahraním kódu nezabudnite vložiť svoje sieťové poverenia, aby sa ESP mohol pripojiť k vašej lokálnej sieti.Ako kód funguje
Skica ESP32 využíva knižnicu WiFi.h.Nasledujúce riadky definujú reťazcové premenné na uchovávanie parametrov R, G a B z požiadavky.
Nasledujúce štyri premenné sa použijú na neskoršie dekódovanie HTTP požiadavky.
Vytvorte tri premenné pre GPIO, ktoré budú riadiť parametre pásika R, G a B. V tomto prípade používame GPIO 13, GPIO 12 a GPIO 14.
Tieto GPIO potrebujú výstup signálov PWM, takže najprv musíme nakonfigurovať vlastnosti PWM. Nastavte frekvenciu signálu PWM na 5000 Hz. Potom pre každú farbu priraďte kanál PWM
A nakoniec nastavte rozlíšenie PWM kanálov na 8-bit
V setup() priraďte vlastnosti PWM kanálom PWM
Pripojte kanály PWM k príslušným GPIO
Nasledujúca časť kódu zobrazuje výber farby vo vašom web stránku a odošle požiadavku na základe farby, ktorú ste si vybrali.
Keď si vyberiete farbu, dostanete požiadavku v nasledujúcom formáte.
Takže musíme rozdeliť tento reťazec, aby sme získali parametre R, G a B. Parametre sú uložené v premenných redString, greenString a blueString a môžu mať hodnoty medzi 0 a 255.Na ovládanie prúžku pomocou ESP32 použite funkciu ledcWrite() na generovanie PWM signálov s hodnotami dekódovanými z HTTP žiadosť.
Poznámka: dozvedieť sa viac o PWM s ESP32: Project 3 ESP32 PWM (analógový výstup)
Na ovládanie prúžku pomocou ESP8266 stačí použiť
funkcia analogWrite() na generovanie signálov PWM s hodnotami dekódovanými z požiadavky HTPP.
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
Pretože získavame hodnoty v reťazcovej premennej, musíme ich previesť na celé čísla pomocou metódy toInt().
Demonštrácia
Po vložení vašich sieťových údajov vyberte správnu dosku a COM port a nahrajte kód do vášho ESP32. Nahrajte referenčné kroky kódu.
Po odovzdaní otvorte sériový monitor s prenosovou rýchlosťou 115200 a stlačte tlačidlo ESP Enable/Reset. Mali by ste získať IP adresu dosky.Otvorte prehliadač a vložte IP adresu ESP. Teraz pomocou nástroja na výber farieb vyberte farbu RGB LED.
Potom musíte stlačiť tlačidlo „Zmeniť farbu“, aby sa farba prejavila.Ak chcete vypnúť RGB LED, vyberte čiernu farbu.
Najsilnejšie farby (v hornej časti výberu farieb) poskytujú lepšie výsledky.
Projekt 7 relé ESP32 Web Server
Použitie relé s ESP32 je skvelý spôsob, ako ovládať AC domáce spotrebiče na diaľku. Tento tutoriál vysvetľuje, ako ovládať reléový modul pomocou ESP32.
Pozrieme sa, ako funguje reléový modul, ako pripojiť relé k ESP32 a postaviť a web server na diaľkové ovládanie relé.
Predstavujeme relé
Relé je elektricky ovládaný spínač a ako každý iný spínač, ktorý sa dá zapnúť alebo vypnúť, pričom prúd prechádza alebo nie. Dá sa ovládať s nízkym objtages, ako je 3.3 V poskytované ESP32 GPIO a umožňuje nám ovládať vysoké obj.tages ako 12V, 24V alebo sieťový objtage (230 V v Európe a 120 V v USA).Na ľavej strane sú dve sady troch zásuviek na pripojenie vysokého objtages a kolíky na pravej strane (nízkoobjtage) pripojte k ESP32 GPIO.
Sieť Voltage PripojeniaReléový modul zobrazený na predchádzajúcej fotografii má dva konektory, každý s tromi zásuvkami: spoločný (COM), normálne zatvorený (NC) a normálne otvorený (NO).
- COM: pripojte prúd, ktorý chcete ovládať (objtaga).
- NC (Normally Closed): normálne zatvorená konfigurácia sa používa, keď chcete, aby bolo relé predvolene zatvorené. NC sú kolíky COM pripojené, čo znamená, že prúd tečie, pokiaľ nepošlete signál z ESP32 do reléového modulu na otvorenie obvodu a zastavenie toku prúdu.
- NO (Normally Open): normálne otvorená konfigurácia funguje opačne: medzi kolíkmi NO a COM nie je žiadne spojenie, takže obvod je prerušený, pokiaľ nevyšlete signál z ESP32 na uzavretie obvodu.
Kontrolné kolíkyNízkoobjtagStrana má sadu štyroch kolíkov a sadu troch kolíkov. Prvá sada pozostáva z VCC a GND na napájanie modulu a vstupu 1 (IN1) a vstupu 2 (IN2) na ovládanie spodného a horného relé.
Ak má váš reléový modul iba jeden kanál, budete mať iba jeden IN pin. Ak máte štyri kanály, budete mať štyri piny IN atď.
Signál, ktorý posielate na piny IN, určuje, či je relé aktívne alebo nie. Relé sa spustí, keď vstup klesne pod približne 2V. To znamená, že budete mať nasledujúce scenáre:
- Normálne uzavretá konfigurácia (NC):
- Signál HIGH – tečie prúd
- LOW signál – netečie prúd
- Normálne otvorená konfigurácia (NO):
- Signál HIGH – netečie prúd
- NÍZKY signál – pretekajúci prúd
Normálne uzavretú konfiguráciu by ste mali použiť vtedy, keď by prúd mal tiecť väčšinu času a chcete ho zastaviť len občas.
Normálne otvorenú konfiguráciu použite, ak chcete, aby prúd tiekol príležitostne (naprample, zapnite alamp príležitostne).
Výber zdroja napájaniaDruhá sada kolíkov pozostáva z kolíkov GND, VCC a JD-VCC.
Pin JD-VCC napája elektromagnet relé. Všimnite si, že modul má prepojku spájajúcu kolíky VCC a JD-VCC; tu zobrazená je žltá, ale vaša môže mať inú farbu.
S nasadeným krytom prepojky sú kolíky VCC a JD-VCC spojené. To znamená, že reléový elektromagnet je napájaný priamo z napájacieho kolíka ESP32, takže reléový modul a obvody ESP32 nie sú od seba fyzicky izolované.
Bez krytky prepojky musíte poskytnúť nezávislý zdroj napájania na napájanie elektromagnetu relé cez kolík JD-VCC. Táto konfigurácia fyzicky izoluje relé od ESP32 so vstavaným optočlenom modulu, čo zabraňuje poškodeniu ESP32 v prípade elektrických špičiek.
SchematickýPOZOR: Použitie vysokého objtagNapájacie zdroje môžu spôsobiť vážne zranenie.
Preto sa používajú 5mm LED namiesto vysokého napájacieho objtage žiarovky v experimente. Ak nie ste oboznámení so sieťovým objtagPožiadajte niekoho, kto vám pomôže. Počas programovania ESP alebo zapojenia vášho obvodu sa uistite, že je všetko odpojené od siete objtage.Inštalácia knižnice pre ESP32
Toto postaviť web server, používame ESPAsyncWebServerová knižnica a knižnica AsyncTCP.
Inštalácia ESPAsyncWebServerová knižnica
Pri inštalácii postupujte podľa nasledujúcich krokov ESPAsyncWebServer knižnica:
- Kliknite sem a stiahnite si ESPAsyncWebServerová knižnica. Mali by ste mať
priečinok .zip v priečinku Stiahnuté súbory - Rozbaľte priečinok .zip a mali by ste získať ESPAsyncWebHlavný priečinok servera
- Premenujte svoj priečinok z ESPAsyncWebServer-master na ESPAsyncWebServer
- Presuňte ESPAsyncWebPriečinok servera do priečinka inštalačných knižníc Arduino IDE
Prípadne vo svojom Arduino IDE môžete prejsť na Sketch > Include
Knižnica > Pridať knižnicu .ZIP… a vyberte knižnicu, ktorú ste práve stiahli.
Inštalácia knižnice AsyncTCP pre ESP32
The ESPAsyncWebServer knižnica vyžaduje AsyncTCP knižnica do práce. Nasledujte
ďalšie kroky na inštaláciu tejto knižnice:
- Kliknutím sem stiahnete knižnicu AsyncTCP. V priečinku Stiahnuté súbory by ste mali mať priečinok .zip
- Rozbaľte priečinok .zip a mali by ste získať priečinok AsyncTCP-master
1. Premenujte svoj priečinok z AsyncTCP-master na AsyncTCP
3. Presuňte priečinok AsyncTCP do priečinka inštalačných knižníc Arduino IDE
4. Nakoniec znova otvorte svoje Arduino IDE
Prípadne vo svojom Arduino IDE môžete prejsť na Sketch > Include
Knižnica > Pridať knižnicu .ZIP… a vyberte knižnicu, ktorú ste práve stiahli.
kód
ESP32 naprogramujeme pomocou Arduino IDE, takže sa pred pokračovaním uistite, že máte nainštalovaný doplnok ESP32: (Ak ste už urobili tento krok, môžete prejsť na ďalší krok.)
Inštalácia doplnku ESP32 v Arduino IDE
Po nainštalovaní požadovaných knižníc otvorte kód Project_7_ESP32_Relay_Web_Server.ino v arduino IDE.
Pred nahraním kódu nezabudnite vložiť svoje sieťové poverenia, aby sa ESP mohol pripojiť k vašej lokálnej sieti.Demonštrácia
Po vykonaní potrebných zmien nahrajte kód do vášho ESP32.Odovzdajte referenčné kroky kódu.
Otvorte sériový monitor s prenosovou rýchlosťou 115200 a stlačením tlačidla ESP32 EN získajte jeho IP adresu. Potom otvorte prehliadač vo vašej lokálnej sieti a zadajte IP adresu ESP32, aby ste získali prístup k web server.
Otvorte sériový monitor s prenosovou rýchlosťou 115200 a stlačením tlačidla ESP32 EN získajte jeho IP adresu. Potom otvorte prehliadač vo vašej lokálnej sieti a zadajte IP adresu ESP32, aby ste získali prístup k web server.Poznámka: Váš prehliadač a ESP32 by mali byť pripojené k rovnakej sieti LAN.
Mali by ste dostať niečo nasledovné s dvomi tlačidlami, ako je počet relé, ktoré ste definovali vo svojom kóde.Teraz môžete pomocou tlačidiel ovládať relé pomocou smartfónu.
Project_8_Output_State_Synchronization_ Web_Server
Tento projekt ukazuje, ako ovládať výstupy ESP32 alebo ESP8266 pomocou a web server a fyzické tlačidlo súčasne. Stav výstupu sa aktualizuje na web stránku, či sa zmení cez fyzické tlačidlo resp web server.
Projekt sa skončilview
Poďme sa rýchlo pozrieť na to, ako projekt funguje.ESP32 alebo ESP8266 hostí a web server, ktorý vám umožňuje kontrolovať stav výstupu;
- Aktuálny stav výstupu je zobrazený na web server;
- ESP je tiež pripojené k fyzickému tlačidlu, ktoré ovláda rovnaký výstup;
- Ak zmeníte stav výstupu pomocou fyzického tlačidla, jeho aktuálny stav sa aktualizuje aj na web server.
Stručne povedané, tento projekt vám umožňuje ovládať rovnaký výstup pomocou a web server a tlačidlo súčasne. Kedykoľvek sa zmení stav výstupu, web server je aktualizovaný.
Požadované diely
Tu je zoznam častí, ktoré potrebujete na zostavenie obvodu:
- Doska ESP32 DEVKIT V1
- 5 mm LED
- 220 Ohm odpor
- tlačidlo
- 10k Ohm odpor
- Breadboard
- Štartovacie káble
SchematickýInštalácia knižnice pre ESP32
Toto postaviť web server, používame ESPAsyncWebKnižnica servera a knižnica AsyncTCP. (Ak ste tento krok už vykonali, môžete prejsť na ďalší krok.)
Inštalácia ESPAsyncWebServerová knižnica
Nainštalujte ESPAsync podľa nasledujúcich krokovWebServerová knižnica:
- Kliknite sem a stiahnite si ESPAsyncWebServerová knižnica. Mali by ste mať
priečinok .zip v priečinku Stiahnuté súbory - Rozbaľte priečinok .zip a mali by ste získať ESPAsyncWebHlavný priečinok servera
- Premenujte svoj priečinok z ESPAsyncWebServer-master na ESPAsyncWebServer
- Presuňte ESPAsyncWebPriečinok servera do priečinka inštalačných knižníc Arduino IDE
Prípadne vo svojom Arduino IDE môžete prejsť na Sketch > Include
Knižnica > Pridať knižnicu .ZIP… a vyberte knižnicu, ktorú ste práve stiahli.
Inštalácia knižnice AsyncTCP pre ESP32
ESPAsyncWebServerová knižnica vyžaduje na fungovanie knižnicu AsyncTCP. Ak chcete nainštalovať knižnicu, postupujte podľa nasledujúcich krokov:
- Kliknutím sem stiahnete knižnicu AsyncTCP. V priečinku Stiahnuté súbory by ste mali mať priečinok .zip
- Rozbaľte priečinok .zip a mali by ste získať priečinok AsyncTCP-master
- Premenujte svoj priečinok z AsyncTCP-master na AsyncTCP
- Presuňte priečinok AsyncTCP do priečinka inštalačných knižníc Arduino IDE
- Nakoniec znova otvorte svoje Arduino IDE
Prípadne vo svojom Arduino IDE môžete prejsť na Sketch > Include
Knižnica > Pridať knižnicu .ZIP… a vyberte knižnicu, ktorú ste práve stiahli.
kód
ESP32 naprogramujeme pomocou Arduino IDE, takže sa pred pokračovaním uistite, že máte nainštalovaný doplnok ESP32: (Ak ste už urobili tento krok, môžete prejsť na ďalší krok.)
Inštalácia doplnku ESP32 v Arduino IDE
Po nainštalovaní požadovaných knižníc otvorte kód
Project_8_Output_State_Synchronization_Web_Server.ino v arduino IDE.
Pred nahraním kódu nezabudnite vložiť svoje sieťové poverenia, aby sa ESP mohol pripojiť k vašej lokálnej sieti.
Ako funguje kódex
Stav tlačidla a stav výstupu
Premenná ledState obsahuje stav výstupu LED. Predvolene, keď je web server sa spustí, je NÍZKA.
ButtonState a lastButtonState sa používajú na zistenie, či bolo tlačidlo stlačené alebo nie.Tlačidlo (web server)
Nezahrnuli sme kód HTML na vytvorenie tlačidla v premennej index_html.
Je to preto, že ho chceme zmeniť v závislosti od aktuálneho stavu LED, ktorý je možné zmeniť aj pomocou tlačidla.
Vytvorili sme teda zástupný symbol pre tlačidlo %BUTTONPLACEHOLDER%, ktorý bude nahradený textom HTML, aby sa tlačidlo vytvorilo neskôr v kóde (to sa vykonáva vo funkcii procesor()).procesor()
Funkcia processor() nahradí všetky zástupné symboly v texte HTML skutočnými hodnotami. Najprv skontroluje, či HTML texty nejaké obsahujú
zástupné symboly %BUTTONPLACEHOLDER%.Potom zavolajte funkciu outputState(), ktorá vráti aktuálny stav výstupu. Uložíme ho do premennej outputStateValue.
Potom použite túto hodnotu na vytvorenie textu HTML na zobrazenie tlačidla so správnym stavom:
Požiadavka HTTP GET na zmenu stavu výstupu (JavaScript)
Keď stlačíte tlačidlo, zavolá sa funkcia toggleCheckbox(). Táto funkcia vytvorí požiadavku na iné URLs na zapnutie alebo vypnutie LED.Ak chcete zapnúť LED, vykoná požiadavku na /update?state=1 URL:
V opačnom prípade vytvorí požiadavku na /update?state=0 URL.
Požiadavka HTTP GET na aktualizáciu stavu (JavaScript)
Ak chcete, aby bol stav výstupu aktuálny web server, zavoláme nasledujúcu funkciu, ktorá vytvorí novú požiadavku na /state URL každú sekundu.Vybavujte požiadavky
Potom musíme zvládnuť, čo sa stane, keď ESP32 alebo ESP8266 dostane požiadavky na ne URLs.
Keď je prijatá požiadavka na root /URL, posielame HTML stránku aj spracovateľovi.Nasledujúce riadky skontrolujú, či ste dostali požiadavku na /update?state=1 alebo /update?state=0 URL a zodpovedajúcim spôsobom zmení ledState.
Keď je prijatá požiadavka na /state URL, posielame aktuálny stav výstupu:
slučka()
V slučke () vypneme tlačidlo a zapneme alebo vypneme LED v závislosti od hodnoty ledState premenlivý.Demonštrácia
Nahrajte kód na dosku ESP32. Nahrajte referenčné kroky kódu.
Potom otvorte sériový monitor s prenosovou rýchlosťou 115200. Stlačením tlačidla EN/RST na doske získate IP adresu.Otvorte prehliadač vo vašej lokálnej sieti a zadajte adresu IP ESP. Mali by ste mať prístup k web server, ako je uvedené nižšie.
Poznámka: Váš prehliadač a ESP32 by mali byť pripojené k rovnakej sieti LAN.Môžete prepínať tlačidlo na web servera zapnite LED.
Rovnakú LED môžete ovládať aj fyzickým tlačidlom. Jeho stav sa vždy automaticky aktualizuje na web server.
Projekt 9 ESP32 DHT11 Web Server
V tomto projekte sa naučíte, ako vytvoriť asynchrónny ESP32 web server s DHT11, ktorý zobrazuje teplotu a vlhkosť pomocou Arduino IDE.
Predpoklady
The web na serveri vytvoríme aktualizácie údajov automaticky bez potreby obnovovania web stránku.
S týmto projektom sa naučíte:
- Ako čítať teplotu a vlhkosť zo senzorov DHT;
- Zostavte asynchrónne web server pomocou ESPAsyncWebServerová knižnica;
- Aktualizujte hodnoty senzora automaticky bez potreby obnovovania web stránku.
Asynchrónne Web Server
Na vybudovanie web server, ktorý použijeme ESPAsyncWebServerová knižnica ktorý poskytuje jednoduchý spôsob vytvorenia asynchrónneho web server. Budovanie asynchrónneho web server má niekoľko výhodtagako je uvedené na stránke knižnice GitHub, ako napríklad:
- „Ovládať viac ako jedno pripojenie súčasne“;
- „Keď odošlete odpoveď, ste okamžite pripravení zvládnuť ďalšie pripojenia, zatiaľ čo server sa postará o odoslanie odpovede na pozadí“;
- „Jednoduchý nástroj na spracovanie šablón na spracovanie šablón“;
Požadované diely
Na dokončenie tohto tutoriálu potrebujete nasledujúce časti:
- Vývojová doska ESP32
- Modul DHT11
- Breadboard
- Štartovacie káble
SchematickýInštalácia knižníc
Pre tento projekt musíte nainštalovať niekoľko knižníc:
- The DHT a Senzor Adafruit Unified Knižnice ovládačov na čítanie zo snímača DHT.
- ESPAsyncWebServer a Async TCP knižnice na vytvorenie asynchrónneho web server.
Pri inštalácii týchto knižníc postupujte podľa nasledujúcich pokynov:
Inštalácia knižnice snímačov DHT
Ak chcete čítať zo senzora DHT pomocou Arduino IDE, musíte nainštalovať Knižnica snímačov DHT. Pri inštalácii knižnice postupujte podľa nasledujúcich krokov.
- Kliknite sem a stiahnite si knižnicu senzorov DHT. V priečinku Stiahnuté súbory by ste mali mať priečinok .zip
- Rozbaľte priečinok .zip a mali by ste získať hlavný priečinok DHT-sensor-library-master
- Premenujte svoj priečinok z DHT-sensor-library-master na DHT_sensor
- Presuňte priečinok DHT_sensor do priečinka inštalačných knižníc Arduino IDE
- Nakoniec znova otvorte svoje Arduino IDE
Inštalácia ovládača senzora Adafruit Unified
Musíte tiež nainštalovať Knižnica Adafruit Unified Sensor Driver pracovať so snímačom DHT. Pri inštalácii knižnice postupujte podľa nasledujúcich krokov.
- Kliknite sem a stiahnite si knižnicu Adafruit Unified Sensor. V priečinku Stiahnuté súbory by ste mali mať priečinok .zip
- Rozbaľte priečinok .zip a mali by ste získať priečinok Adafruit_sensor-master
- Premenujte svoj priečinok z Adafruit_sensor-master na Adafruit_sensor
- Presuňte priečinok Adafruit_sensor do priečinka inštalačných knižníc Arduino IDE
- Nakoniec znova otvorte svoje Arduino IDE
Inštalácia ESPAsyncWebServerová knižnica
Pri inštalácii postupujte podľa nasledujúcich krokov ESPAsyncWebServer knižnica:
- Kliknite sem a stiahnite si ESPAsyncWebServerová knižnica. Mali by ste mať
priečinok .zip v priečinku Stiahnuté súbory - Rozbaľte priečinok .zip a mali by ste
získať ESPAsyncWebHlavný priečinok servera - Premenujte svoj priečinok z ESPAsyncWebServer-master na ESPAsyncWebServer
- Presuňte ESPAsyncWebPriečinok servera do priečinka inštalačných knižníc Arduino IDE
Inštalácia knižnice Async TCP pre ESP32
The ESPAsyncWebServer knižnica vyžaduje AsyncTCP knižnica do práce. Ak chcete nainštalovať knižnicu, postupujte podľa nasledujúcich krokov:
- Kliknutím sem stiahnete knižnicu AsyncTCP. V priečinku Stiahnuté súbory by ste mali mať priečinok .zip
- Rozbaľte priečinok .zip a mali by ste získať priečinok AsyncTCP-master
- Premenujte svoj priečinok z AsyncTCP-master na AsyncTCP
- Presuňte priečinok AsyncTCP do priečinka inštalačných knižníc Arduino IDE
- Nakoniec znova otvorte svoje Arduino IDE
kód
ESP32 naprogramujeme pomocou Arduino IDE, takže sa pred pokračovaním uistite, že máte nainštalovaný doplnok ESP32: (Ak ste už urobili tento krok, môžete prejsť na ďalší krok.)
Inštalácia doplnku ESP32 v Arduino IDE
Po nainštalovaní požadovaných knižníc otvorte kód
Project_9_ESP32_DHT11_Web_Server.ino v arduino IDE.
Pred nahraním kódu nezabudnite vložiť svoje sieťové poverenia, aby sa ESP mohol pripojiť k vašej lokálnej sieti.Ako funguje kódex
V nasledujúcich odsekoch vysvetlíme, ako kód funguje. Pokračujte v čítaní, ak sa chcete dozvedieť viac, alebo prejdite do sekcie Ukážka a pozrite si konečný výsledok.
Importovanie knižníc
Najprv importujte požadované knižnice. WiFi, ESPAsyncWebNa zostavenie je potrebný server a ESPAsyncTCP web server. Adafruit_Sensor a knižnice DHT sú potrebné na čítanie zo senzorov DHT11 alebo DHT22.Definícia premenných
Definujte GPIO, ku ktorému je pripojený dátový kolík DHT. V tomto prípade je pripojený k GPIO 4.Potom vyberte typ snímača DHT, ktorý používate. V našom bývalomample, používame DHT22. Ak používate iný typ, stačí odkomentovať váš senzor a okomentovať všetky ostatné.
Vytvorte inštanciu objektu DHT s typom a pinom, ktorý sme definovali skôr.Vytvorte asyncWebObjekt servera na porte 80.
Prečítajte si časť Funkcie teploty a vlhkosti
Vytvorili sme dve funkcie: jednu na čítanie teploty Vytvorili sme dve funkcie: jednu na čítanie teploty (readDHTTemperature()) a druhú na čítanie vlhkosti (readDHTHumidity()).Získanie hodnôt snímača je také jednoduché ako používanie Získanie údajov snímača je také jednoduché ako použitie metód readTemperature() a readHumidity() na objekte dht.
Máme tiež podmienku, ktorá vráti dve pomlčky (–) v prípade, že snímač nedokáže získať údaje.
Hodnoty sa vrátia ako typ reťazca. Ak chcete previesť float na reťazec, použite funkciu String().
Štandardne odčítavame teplotu v stupňoch Celzia. Ak chcete získať teplotu v stupňoch Fahrenheita, okomentujte teplotu v stupňoch Celzia a zrušte komentár teploty vo stupňoch Fahrenheita, aby ste mali nasledovné:
Nahrajte kód
Teraz nahrajte kód do svojho ESP32. Uistite sa, že ste vybrali správnu dosku a port COM. Nahrajte referenčné kroky kódu.
Po odovzdaní otvorte sériový monitor s prenosovou rýchlosťou 115200. Stlačte tlačidlo resetovania ESP32. IP adresa ESP32 by mala byť vytlačená v seriáli monitorovať.Demonštrácia
Otvorte prehliadač a zadajte adresu IP ESP32. Váš web server by mal zobraziť najnovšie hodnoty senzorov.
Poznámka: Váš prehliadač a ESP32 by mali byť pripojené k rovnakej sieti LAN.
Všimnite si, že údaje o teplote a vlhkosti sa aktualizujú automaticky bez potreby obnovovania web stránku.
Project_10_ESP32_OLED_Display
Tento projekt ukazuje, ako používať 0.96-palcový OLED displej SSD1306 s ESP32 pomocou Arduino IDE.
Predstavujeme 0.96-palcový OLED displej
The OLED displej V tomto návode použijeme model SSD1306: jednofarebný 0.96-palcový displej s rozlíšením 128 × 64 pixelov, ako je znázornené na nasledujúcom obrázku.OLED displej nevyžaduje podsvietenie, čo má za následok veľmi pekný kontrast v tmavom prostredí. Navyše jeho pixely spotrebúvajú energiu iba vtedy, keď sú zapnuté, takže OLED displej spotrebuje menej energie v porovnaní s inými displejmi.
Pretože OLED displej používa komunikačný protokol I2C, zapojenie je veľmi jednoduché. Ako referenciu môžete použiť nasledujúcu tabuľku.
OLED pin | ESP32 |
Vin | 3.3 V |
GND | GND |
SCL | GPIO 22 |
SDA | GPIO 21 |
SchematickýInštalácia knižnice SSD1306 OLED – ESP32
Na ovládanie OLED displeja pomocou ESP32 je k dispozícii niekoľko knižníc.
V tomto návode použijeme dve knižnice Adafruit: Knižnica Adafruit_SSD1306 a Knižnica Adafruit_GFX.
Nainštalujte tieto knižnice podľa nasledujúcich krokov.
- Otvorte svoje Arduino IDE a prejdite na Sketch > Include Library > Manage Libraries. Mal by sa otvoriť Správca knižnice.
- Do vyhľadávacieho poľa zadajte „SSD1306“ a nainštalujte knižnicu SSD1306 od spoločnosti Adafruit.
- Po nainštalovaní knižnice SSD1306 od Adafruit zadajte do vyhľadávacieho poľa „GFX“ a nainštalujte knižnicu.
- Po nainštalovaní knižníc reštartujte svoje Arduino IDE.
kód
Po nainštalovaní požadovaných knižníc otvorte Project_10_ESP32_OLED_Display.ino v arduino IDE. kód
ESP32 naprogramujeme pomocou Arduino IDE, takže sa pred pokračovaním uistite, že máte nainštalovaný doplnok ESP32: (Ak ste už urobili tento krok, môžete prejsť na ďalší krok.)
Inštalácia doplnku ESP32 v Arduino IDEAko funguje kódex
Importovanie knižníc
Najprv musíte importovať potrebné knižnice. Knižnica Wire na používanie I2C a knižnice Adafruit na zápis na displej: Adafruit_GFX a Adafruit_SSD1306.Inicializujte OLED displej
Potom definujte svoju šírku a výšku OLED. V tomto example, používame 128×64 OLED displej. Ak používate iné veľkosti, môžete to zmeniť v premenných SCREEN_WIDTH a SCREEN_HEIGHT.Potom inicializujte objekt zobrazenia so šírkou a výškou definovanou skôr pomocou komunikačného protokolu I2C (&Wire).
Parameter (-1) znamená, že váš OLED displej nemá pin RESET. Ak váš OLED displej má RESET pin, mal by byť pripojený k GPIO. V takom prípade by ste mali zadať číslo GPIO ako parameter.
V setup() inicializujte Serial Monitor na prenosovú rýchlosť 115200 na účely ladenia.Inicializujte OLED displej pomocou metódy begin() takto:
Tento úryvok tiež vytlačí správu na sériovom monitore v prípade, že sa nebudeme môcť pripojiť k displeju.
V prípade, že používate iný OLED displej, možno budete musieť zmeniť OLED adresu. V našom prípade je adresa 0x3C.
Po inicializácii displeja pridajte dvojsekundové oneskorenie, aby mal OLED dostatok času na inicializáciu pred písaním textu:
Prehľadný displej, nastavenie veľkosti písma, farby a písanie textu
Po inicializácii obrazovky vymažte vyrovnávaciu pamäť obrazovky pomocou metódy clearDisplay():
Pred písaním textu je potrebné nastaviť veľkosť textu, farbu a kde sa bude text zobrazovať v OLED.
Nastavte veľkosť písma pomocou metódy setTextSize():Nastavte farbu písma pomocou metódy setTextColor():
WHITE nastaví biele písmo a čierne pozadie.
Pomocou metódy setCursor(x,y) definujte pozíciu, na ktorej začína text. V tomto prípade nastavujeme text tak, aby začínal na súradniciach (0,0) – v ľavom hornom rohu.Nakoniec môžete text odoslať na displej pomocou metódy println() nasledovne
Potom musíte zavolať metódu display(), aby sa text skutočne zobrazil na obrazovke.
Knižnica Adafruit OLED poskytuje užitočné metódy na jednoduché posúvanie textu.
- begincrollright(0x00, 0x0F): rolovanie textu zľava doprava
- begincrollleft(0x00, 0x0F): rolovanie textu sprava doľava
- begincrolldiagright(0x00, 0x07): posúvanie textu z ľavého dolného rohu do pravého horného rohu begincrolldiagleft(0x00, 0x07): posúvanie textu z pravého dolného rohu do ľavého horného rohu
Nahrajte kód
Teraz nahrajte kód do svojho ESP32.Odovzdajte referenčné kroky kódu.
Po nahraní kódu OLED zobrazí rolujúci text.
Dokumenty / zdroje
![]() |
Základná štartovacia súprava LAFVIN ESP32 [pdfNávod na obsluhu ESP32 Basic Starter Kit, ESP32, Basic Starter Kit, Starter Kit |