Základní startér ESP32
Kit
Seznam balení
Úvod do ESP32
Jste v ESP32 noví? Začněte zde! ESP32 je řada levných a nízkoenergetických mikrokontrolérů System on a Chip (SoC) vyvinutých společností Espressif, které zahrnují bezdrátové funkce Wi-Fi a Bluetooth a dvoujádrový procesor. Pokud znáte ESP8266, ESP32 je jeho nástupce, nabitý spoustou nových funkcí.Specifikace ESP32
Pokud chcete být trochu techničtější a konkrétnější, můžete se podívat na následující podrobné specifikace ESP32 (zdroj: http://esp32.net/) – další podrobnosti zkontrolujte datový list):
- Bezdrátové připojení WiFi: rychlost přenosu dat 150.0 Mbps s HT40
- Bluetooth: BLE (Bluetooth Low Energy) a Bluetooth Classic
- Procesor: Tensilica Xtensa Dual-Core 32bitový mikroprocesor LX6, běžící na 160 nebo 240 MHz
- Paměť:
- ROM: 448 KB (pro bootování a základní funkce)
- SRAM: 520 KB (pro data a pokyny)
- RTC fas SRAM: 8 KB (pro ukládání dat a hlavní CPU během RTC bootování z režimu hlubokého spánku)
- Pomalá RTC SRAM: 8 KB (pro koprocesorový přístup v režimu hlubokého spánku) eFuse: 1 Kbit (z toho 256 bitů je použito pro systém (MAC adresa a konfigurace čipu) a zbývajících 768 bitů je vyhrazeno pro zákaznické aplikace, vč. Flash-Encryption a Chip-ID)
Vestavěný flash: flash připojený interně přes 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)
Low Power: zajišťuje, že můžete stále používat převody ADC, napřample, během hlubokého spánku.
Periferní vstup/výstup:
- periferní rozhraní s DMA, které zahrnuje kapacitní dotyk
- ADC (Analogově-digitální převodník)
- DAC (digitální-analogový převodník)
- I²C (Inter-Integrated Circuit)
- UART (Universal Asynchronous Receiver/Transmitter)
- SPI (Serial Peripheral Interface)
- I²S (Integrovaný mezičipový zvuk)
- RMII (redukované rozhraní nezávislé na médiích)
- PWM (Pulse-Width Modulation)
Zabezpečení: hardwarové akcelerátory pro AES a SSL/TLS
Vývojové desky ESP32
ESP32 označuje holý čip ESP32. Termín „ESP32“ se však také používá k označení vývojových desek ESP32. Používání holých čipů ESP32 není snadné ani praktické, zejména při učení, testování a prototypování. Většinu času budete chtít použít vývojovou desku ESP32.
Jako referenci použijeme desku ESP32 DEVKIT V1. Na obrázku níže je deska ESP32 DEVKIT V1, verze s 30 piny GPIO.Specifikace – ESP32 DEVKIT V1
Následující tabulka ukazuje souhrn funkcí a specifikací desky ESP32 DEVKIT V1 DOIT:
Počet jader | 2 (dvoujádrové) |
Wi-Fi | 2.4 GHz až 150 Mbit/s |
Bluetooth | BLE (Bluetooth Low Energy) a starší Bluetooth |
Architektura | 32 bitů |
Frekvence hodin | Až 240 MHz |
BERAN | 512 kB |
špendlíky | 30 (v závislosti na modelu) |
Periferní zařízení | Kapacitní dotyk, ADC (analogově digitální převodník), DAC (digitální analogový převodník), 12C (Inter-Integrated Circuit), UART (univerzální asynchronní přijímač/vysílač), CAN 2.0 (Controller Area Netwokr), SPI (Serial Peripheral Interface) , 12S (Integrovaný inter-IC Zvuk), RMII (Reduced Media-Independent Interface), PWM (pulzní šířková modulace) a další. |
Vestavěná tlačítka | Tlačítka RESET a BOOT |
Vestavěné LED diody | vestavěná modrá LED připojená k GPIO2; vestavěná červená LED, která ukazuje, že je deska napájena |
USB na UART most |
CP2102 |
Dodává se s rozhraním microUSB, které můžete použít k připojení desky k počítači pro nahrání kódu nebo napájení.
Pro komunikaci s vaším počítačem přes COM port pomocí sériového rozhraní využívá čip CP2102 (USB to UART). Dalším oblíbeným čipem je CH340. Zkontrolujte, jaký je převodník čipu USB na UART na vaší desce, protože budete muset nainstalovat požadované ovladače, aby váš počítač mohl komunikovat s deskou (více informací o tom později v této příručce).
Tato deska je také dodávána s tlačítkem RESET (může být označeno EN) pro restart desky a tlačítkem BOOT pro uvedení desky do režimu blikání (dostupné pro příjem kódu). Všimněte si, že některé desky nemusí mít tlačítko BOOT.
Dodává se také s vestavěnou modrou LED, která je vnitřně připojena k GPIO 2. Tato LED je užitečná pro ladění, aby poskytla nějaký vizuální fyzický výstup. Je zde také červená LED, která se rozsvítí, když desku napájíte.Pinout ESP32
Mezi periferie ESP32 patří:
- 18 kanálů analogově-digitálního převodníku (ADC).
- 3 SPI rozhraní
- 3 rozhraní UART
- 2 I2C rozhraní
- 16 výstupní kanály PWM
- 2 digitálně-analogové převodníky (DAC)
- 2 rozhraní I2S
- 10 GPIO s kapacitním snímáním
Funkce ADC (analogově-digitální převodník) a DAC (digitální-analogový převodník) jsou přiřazeny konkrétním statickým kolíkům. Můžete se však rozhodnout, které piny jsou UART, I2C, SPI, PWM atd. – stačí je přiřadit v kódu. To je možné díky funkci multiplexování čipu ESP32.
I když můžete definovat vlastnosti pinů v softwaru, existují piny přiřazené ve výchozím nastavení, jak je znázorněno na následujícím obrázkuKromě toho existují kolíky se specifickými vlastnostmi, díky kterým jsou vhodné nebo nevhodné pro konkrétní projekt. Následující tabulka ukazuje, jaké piny je nejlepší použít jako vstupy, výstupy a na které si musíte dávat pozor.
Špendlíky zvýrazněné zeleně lze použít. Ty, které jsou zvýrazněny žlutě, lze použít, ale musíte věnovat pozornost, protože mohou mít neočekávané chování, zejména při spouštění. Červeně zvýrazněné kolíky se nedoporučuje používat jako vstupy nebo výstupy.
GP IO | Vstup | Výstup | Poznámky |
0 | vytáhl nahoru | OK | výstupy PWM signálu při bootování, musí být LOW pro přechod do režimu blikání |
1 | TX pin | OK | výstup ladění při bootování |
2 | OK | OK | připojený k palubní LED, musí být ponechán plovoucí nebo LOW pro přechod do režimu blikání |
3 | OK | RX kolík | VYSOKÁ při startu |
4 | OK | OK | |
5 | OK | OK | výstupy PWM signálu při startu, páskovací kolík |
12 | OK | OK | bota selže, pokud je vytažena vysoko, páskový špendlík |
13 | OK | OK | |
14 | OK | OK | výstup signálu PWM při bootování |
15 | OK | OK | výstupy PWM signálu při startu, páskovací 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 | pouze vstup | |
35 | OK | pouze vstup | |
36 | OK | pouze vstup | |
39 | OK | pouze vstup |
Pokračujte ve čtení pro podrobnější a hloubkovou analýzu ESP32 GPIO a jeho funkcí.
Zadejte pouze piny
GPIO 34 až 39 jsou GPI – pouze vstupní piny. Tyto piny nemají vnitřní pull-up nebo pull-down rezistory. Nemohou být použity jako výstupy, proto použijte tyto piny pouze jako vstupy:
- GPIO 34
- GPIO 35
- GPIO 36
- GPIO 39
SPI blesk integrovaný na ESP-WROOM-32
GPIO 6 až GPIO 11 jsou vystaveny na některých vývojových deskách ESP32. Tyto piny jsou však připojeny k integrovanému blesku SPI na čipu ESP-WROOM-32 a pro jiné použití se nedoporučují. Takže ve svých projektech nepoužívejte tyto 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 senzorů. Ty mohou vnímat změny v čemkoli, co má elektrický náboj, jako je lidská kůže. Mohou tak detekovat variace vyvolané dotykem GPIO prstem. Tyto piny lze snadno integrovat do kapacitních podložek a nahradit mechanická tlačítka. Kapacitní dotykové kolíky lze také použít k probuzení ESP32 z hlubokého spánku. Tyto interní dotykové senzory jsou připojeny 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)
Analogově digitální převodník (ADC)
ESP32 má 18 x 12 bitů ADC vstupních kanálů (zatímco ESP8266 má pouze 1 x 10 bitů ADC). Toto jsou GPIO, které lze použít jako ADC a pří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 nelze použít při použití Wi-Fi. Pokud tedy používáte Wi-Fi a máte potíže se získáním hodnoty z ADC2 GPIO, můžete místo toho zvážit použití ADC1 GPIO. To by mělo vyřešit váš problém.
Vstupní kanály ADC mají 12bitové rozlišení. To znamená, že můžete získat analogové hodnoty v rozsahu od 0 do 4095, kde 0 odpovídá 0V a 4095 až 3.3V. Můžete také nastavit rozlišení vašich kanálů na kódu a rozsahu ADC.
Piny ADC ESP32 nemají lineární chování. Pravděpodobně nebudete schopni rozlišit mezi 0 a 0.1 V nebo mezi 3.2 a 3.3 V. Musíte to mít na paměti při používání pinů ADC. Získáte chování podobné tomu, které je znázorněno na následujícím obrázku.Digitální převodník na analogový (DAC)
Na ESP2 jsou 8 x 32 bitové DAC kanály pro převod digitálních signálů na analogové voltage signálové výstupy. Toto jsou kanály DAC:
- DAC1 (GPIO25)
- DAC2 (GPIO26)
RTC GPIO
Na ESP32 je podpora RTC GPIO. GPIO směrované do nízkoenergetického subsystému RTC lze použít, když je ESP32 v hlubokém spánku. Tyto RTC GPIO lze použít k probuzení ESP32 z hlubokého spánku, když je Ultra Low
Koprocesor napájení (ULP) běží. Následující GPIO lze použít jako externí zdroj probuzení.
- 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
Ovladač ESP32 LED PWM má 16 nezávislých kanálů, které lze nakonfigurovat tak, aby generovaly signály PWM s různými vlastnostmi. Všechny piny, které mohou fungovat jako výstupy, lze použít jako piny PWM (GPIO 34 až 39 neumí generovat PWM).
Chcete-li nastavit signál PWM, musíte v kódu definovat tyto parametry:
- Frekvence signálu;
- Pracovní cyklus;
- PWM kanál;
- GPIO, kam chcete vyvést signál.
I2C
ESP32 má dva I2C kanály a jakýkoli pin lze nastavit jako SDA nebo SCL. Při použití ESP32 s Arduino IDE jsou výchozí I2C piny:
- GPIO 21 (SDA)
- GPIO 22 (SCL)
Pokud chcete při používání knihovny drátů použít jiné piny, stačí zavolat:
Wire.begin(SDA, SCL);
SPI
Ve výchozím nastavení je mapování pinů pro SPI:
SPI | LELKOVAT | MISO | CLK | CS |
VSPI | GPIO 23 | GPIO 19 | GPIO 18 | GPIO 5 |
HSPI | GPIO 13 | GPIO 12 | GPIO 14 | GPIO 15 |
Přerušení
Všechny GPIO lze nakonfigurovat jako přerušení.
Špendlíky
Čip ESP32 má následující páskovací kolíky:
- GPIO 0 (pro vstup do spouštěcího režimu musí být LOW)
- GPIO 2 (při bootování musí být plovoucí nebo LOW)
- GPIO 4
- GPIO 5 (při spouštění musí být VYSOKÝ)
- GPIO 12 (při bootování musí být NÍZKÁ)
- GPIO 15 (při spouštění musí být VYSOKÝ)
Ty se používají k uvedení ESP32 do režimu bootloaderu nebo flashování. Na většině vývojových desek s vestavěným USB/Serial se o stav těchto pinů nemusíte starat. Deska uvádí piny do správného stavu pro blikání nebo bootovací režim. Více informací o výběru režimu spouštění ESP32 naleznete zde.
Pokud však máte periferie připojené k těmto pinům, můžete mít potíže při pokusu o nahrání nového kódu, flashování ESP32 novým firmwarem nebo resetování desky. Pokud máte nějaké periferie připojené k páskovacím kolíkům a máte potíže s nahráváním kódu nebo blikáním ESP32, může to být proto, že tyto periferie brání ESP32 vstoupit do správného režimu. Přečtěte si dokumentaci k výběru režimu spouštění, která vás navede správným směrem. Po resetování, flashování nebo bootování tyto piny fungují podle očekávání.
Piny HIGH při spouštění
Některé GPIO změní svůj stav na HIGH nebo vydávají PWM signály při bootování nebo resetu.
To znamená, že pokud máte výstupy připojené k těmto GPIO, můžete získat neočekávané výsledky, když se ESP32 resetuje nebo zavede.
- GPIO 1
- GPIO 3
- GPIO 5
- GPIO 6 až GPIO 11 (připojeno k integrované SPI flash paměti ESP32 – nedoporučuje se používat).
- GPIO 14
- GPIO 15
Povolit (EN)
Enable (EN) je aktivační kolík 3.3V regulátoru. Je vytažen, takže připojte k zemi, abyste deaktivovali regulátor 3.3V. To znamená, že tento pin připojený k tlačítku můžete použít k restartování ESP32, napřample.
Odebíraný proud GPIO
Absolutní maximální proud odebíraný na GPIO je 40 mA podle části „Doporučené provozní podmínky“ v datovém listu ESP32.
ESP32 vestavěný senzor s Hallovým efektem
ESP32 je také vybaven vestavěným snímačem Hallova efektu, který detekuje změny magnetického pole ve svém okolí
ESP32 Arduino IDE
Existuje doplněk pro Arduino IDE, který vám umožňuje programovat ESP32 pomocí Arduino IDE a jeho programovacího jazyka. V tomto tutoriálu vám ukážeme, jak nainstalovat desku ESP32 v Arduino IDE, ať už používáte Windows, Mac OS X nebo Linux.
Předpoklady: Nainstalované Arduino IDE
Před zahájením této instalační procedury musíte mít na svém počítači nainstalované Arduino IDE. Existují dvě verze Arduino IDE, které můžete nainstalovat: verze 1 a verze 2.
Arduino IDE si můžete stáhnout a nainstalovat kliknutím na následující odkaz: arduino.cc/en/Main/Software
Jakou verzi Arduino IDE doporučujeme? V současné době jsou nějaké plugins pro ESP32 (jako SPIFFS Filesystem Uploader Plugin), které zatím nejsou podporovány na Arduinu 2. Pokud tedy hodláte v budoucnu používat plugin SPIFFS, doporučujeme nainstalovat starší verzi 1.8.X. Stačí se posouvat dolů na stránce softwaru Arduino, abyste to našli.
Instalace doplňku ESP32 v Arduino IDE
Chcete-li nainstalovat desku ESP32 do vašeho Arduino IDE, postupujte podle následujících pokynů:
- Ve vašem Arduino IDE přejděte na File> Předvolby
- Do „Additional Board Manager“ zadejte následující URLpole s”:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Poté klikněte na tlačítko „OK“:Poznámka: pokud již máte desky ESP8266 URL, můžete oddělit URLs čárkou takto:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Otevřete Správce desek. Přejděte na Nástroje > Nástěnka > Správce nástěnek…Hledat ESP32 and press install button for the “ESP32 by Espressif Systems“:
To je vše. Měl by být nainstalován po několika sekundách.
Nahrajte testovací kód
Připojte desku ESP32 k počítači. S otevřeným Arduino IDE postupujte takto:
- Vyberte svou desku v nabídce Nástroje > Deska (v mém případě je to modul ESP32 DEV)
- Vyberte port (pokud nevidíte COM port ve vašem Arduino IDE, musíte nainstalovat ovladače VCP CP210x USB to UART Bridge):
- Otevřete následující příkladample pod File > Přamples > WiFi
(ESP32) > WiFiScan - Ve vašem Arduino IDE se otevře nová skica:
- Stiskněte tlačítko Upload v Arduino IDE. Počkejte několik sekund, než se kód zkompiluje a nahraje na vaši nástěnku.
- Pokud vše proběhlo podle očekávání, mělo by se zobrazit „Nahrávání dokončeno“. zpráva.
- Otevřete Arduino IDE Serial Monitor s přenosovou rychlostí 115200:
- Stiskněte tlačítko aktivace ESP32 na palubě a měli byste vidět sítě dostupné v blízkosti vašeho ESP32:
Odstraňování problémů
Pokud se pokusíte nahrát novou skicu do ESP32 a zobrazí se tato chybová zpráva „Došlo k fatální chybě: Nepodařilo se připojit k ESP32: Vypršel časový limit… Připojování…“. Znamená to, že váš ESP32 není v režimu blikání/nahrávání.
Po výběru správného názvu desky a COM por postupujte takto:
Podržte tlačítko „BOOT“ na desce ESP32
- Stisknutím tlačítka „Nahrát“ v IDE Arduino nahrajte svou skicu:
- Poté, co se zobrazí „Připojování…“. zprávy ve vašem Arduino IDE, uvolněte prst z tlačítka „BOOT“:
- Poté by se měla zobrazit zpráva „Nahrávání dokončeno“.
To je vše. Váš ESP32 by měl mít spuštěnou novou skicu. Stisknutím tlačítka „ENABLE“ restartujte ESP32 a spusťte novou nahranou skicu.
Tuto sekvenci tlačítek budete také muset opakovat pokaždé, když budete chtít nahrát nový náčrt.
Projekt 1 ESP32 Vstupy Výstupy
V této příručce Začínáme se dozvíte, jak číst digitální vstupy, jako je tlačítkový spínač, a ovládat digitální výstupy jako LED pomocí ESP32 s Arduino IDE.
Předpoklady
Naprogramujeme ESP32 pomocí Arduino IDE. Než budete pokračovat, ujistěte se, že máte nainstalovaný doplněk desek ESP32:
- Instalace doplňku ESP32 v Arduino IDE
ESP32 Ovládání digitálních výstupů
Nejprve musíte nastavit GPIO, které chcete ovládat, jako OUTPUT. Použijte funkci pinMode() následovně:
pinMode(GPIO, OUTPUT);
K ovládání digitálního výstupu stačí použít funkci digitalWrite(), která přijímá jako argumenty GPIO (číslo int), na které odkazujete, a stav, buď HIGH nebo LOW.
digitalWrite(GPIO, STATE);
Všechny GPIO mohou být použity jako výstupy kromě GPIO 6 až 11 (připojené k integrovanému SPI flash) a GPIO 34, 35, 36 a 39 (pouze vstup GPIO);
Další informace o ESP32 GPIO: Referenční příručka ESP32 GPIO
Čtení digitálních vstupů ESP32
Nejprve nastavte GPIO, které chcete číst, jako INPUT, pomocí funkce pinMode() následovně:
pinMode(GPIO, INPUT);
Chcete-li číst digitální vstup, jako je tlačítko, použijte funkci digitalRead(), která přijímá jako argument GPIO (číslo int), na které odkazujete.
digitální čtení (GPIO);
Jako vstupy lze použít všechny GPIO ESP32, kromě GPIO 6 až 11 (připojeno k integrovanému blesku SPI).
Další informace o ESP32 GPIO: Referenční příručka ESP32 GPIO
Projekt Přample
Abychom vám ukázali, jak používat digitální vstupy a digitální výstupy, vytvoříme jednoduchý projekt napřample s tlačítkem a LED. Načteme stav tlačítka a podle toho rozsvítíme LED, jak je znázorněno na následujícím obrázku.
Potřebné díly
Zde je seznam dílů, které potřebujete k sestavení obvodu:
- ESP32 DEVKIT V1
- 5mm LED
- Odpor 220 ohmů
- Stiskněte tlačítko
- 10k Ohm odpor
- Breadboard
- Startovací dráty
Schematický diagram
Než budete pokračovat, musíte sestavit obvod s LED a tlačítkem.
Připojíme LED k GPIO 5 a tlačítko k GPIO 4.Kód
Otevřete kód Project_1_ESP32_Inputs_Outputs.ino v arduino IDEJak kodex funguje
Na následujících dvou řádcích vytvoříte proměnné pro přiřazení pinů:
Tlačítko je připojeno k GPIO 4 a LED je připojena k GPIO 5. Při použití Arduino IDE s ESP32, 4 odpovídá GPIO 4 a 5 odpovídá GPIO 5.
Dále vytvoříte proměnnou pro udržení stavu tlačítka. Ve výchozím nastavení je to 0 (nestisknuto).
int buttonState = 0;
V setup() inicializujete tlačítko jako INPUT a LED jako OUTPUT.
K tomu použijte funkci pinMode(), která přijímá pin, na který odkazujete, a režim: INPUT nebo OUTPUT.
pinMode(tlačítkoPin, INPUT);
pinMode(ledPin, OUTPUT);
V loop() čtete stav tlačítka a podle toho nastavíte LED.
Na dalším řádku si přečtete stav tlačítka a uložíte jej do proměnné buttonState.
Jak jsme viděli dříve, použijete funkci digitalRead().
buttonState = digitalRead(buttonPin);
Následující příkaz if kontroluje, zda je stav tlačítka HIGH. Pokud ano, rozsvítí LED pomocí funkce digitalWrite(), která přijímá jako argument ledPin a stav HIGH.
if (buttonState == HIGH)Pokud stav tlačítka není VYSOKÝ, vypnete LED. Stačí nastavit LOW jako druhý argument na ve funkci digitalWrite().
Nahrávání kódu
Než kliknete na tlačítko nahrát, přejděte na Nástroje > Deska a vyberte desku :DOIT ESP32 DEVKIT V1 deska.
Přejděte na Nástroje > Port a vyberte port COM, ke kterému je ESP32 připojeno. Poté stiskněte tlačítko nahrávání a počkejte na zprávu „Nahrávání dokončeno“.Poznámka: Pokud v okně ladění vidíte mnoho teček (připojování…__…__) a zprávu „Nepodařilo se připojit k ESP32: Vypršel časový limit čekání na hlavičku paketu“, znamená to, že musíte stisknout ESP32 onboard BOOT tlačítko za tečkami
začnou se objevovat.Odstraňování problémů
Demonstrace
Po nahrání kódu otestujte svůj obvod. Vaše LED by se měla rozsvítit, když stisknete tlačítko:A vypněte, když jej pustíte:
Projekt 2 Analogové vstupy ESP32
Tento projekt ukazuje, jak číst analogové vstupy s ESP32 pomocí Arduino IDE.
Analogové čtení je užitečné pro čtení hodnot z proměnných rezistorů, jako jsou potenciometry nebo analogové senzory.
Analogové vstupy (ADC)
Čtení analogové hodnoty pomocí ESP32 znamená, že můžete měřit různé objemytage úrovně mezi 0 V a 3.3 V.
Voltage naměřené je pak přiřazeno k hodnotě mezi 0 a 4095, ve které 0 V odpovídá 0 a 3.3 V odpovídá 4095. Libovolný objemtage mezi 0 V a 3.3 V bude dána odpovídající hodnota mezi nimi.ADC je nelineární
V ideálním případě byste při použití pinů ESP32 ADC očekávali lineární chování.
To se však neděje. Získáte chování, které je znázorněno v následující tabulce:Toto chování znamená, že váš ESP32 není schopen rozlišit 3.3 V od 3.2 V.
Získáte stejnou hodnotu pro oba objtages: 4095.
Totéž se děje pro velmi nízké objtagHodnoty e: pro 0 V a 0.1 V získáte stejnou hodnotu: 0. Tuto skutečnost musíte mít na paměti při použití pinů ADC ESP32.
Funkce analogRead().
Čtení analogového vstupu pomocí ESP32 pomocí Arduino IDE je stejně jednoduché jako pomocí funkce analogRead(). Přijímá jako argument GPIO, který chcete číst:
analogRead(GPIO);
Pouze 15 je k dispozici na desce DEVKIT V1board (verze s 30 GPIO).
Uchopte vývod desky ESP32 a najděte kolíky ADC. Ty jsou na obrázku níže zvýrazněny červeným okrajem.Tyto analogové vstupní piny mají 12bitové rozlišení. To znamená, že když čtete analogový vstup, jeho rozsah se může lišit od 0 do 4095.
Poznámka: Piny ADC2 nelze použít při použití Wi-Fi. Pokud tedy používáte Wi-Fi a máte potíže se získáním hodnoty z ADC2 GPIO, můžete místo toho zvážit použití ADC1 GPIO, což by váš problém mělo vyřešit.
Abychom viděli, jak vše souvisí dohromady, uděláme jednoduchého example pro čtení analogové hodnoty z potenciometru.
Potřebné díly
Pro tento example, potřebujete následující díly:
- Deska ESP32 DEVKIT V1
- Potenciometr
- Breadboard
- Startovací dráty
Schématický
Připojte potenciometr k vašemu ESP32. Střední pin potenciometru by měl být připojen ke GPIO 4. Jako referenci můžete použít následující schéma.Kód
ESP32 naprogramujeme pomocí Arduino IDE, takže se před pokračováním ujistěte, že máte nainstalovaný doplněk ESP32: (Pokud jste tento krok již provedli, můžete přeskočit k dalšímu kroku.)
Instalace doplňku ESP32 v Arduino IDE
Otevřete kód Project_2_ESP32_Inputs_Outputs.ino v arduino IDETento kód jednoduše načte hodnoty z potenciometru a vytiskne je do sériového monitoru.
V kódu začínáte definováním GPIO, ke kterému je potenciometr připojen. V tomto example, GPIO 4.V setup() inicializujte sériovou komunikaci s přenosovou rychlostí 115200.
V loop() použijte funkci analogRead() ke čtení analogového vstupu z potPin.
Nakonec vytiskněte hodnoty načtené z potenciometru v sériovém monitoru.
Nahrajte poskytnutý kód do vašeho ESP32. Ujistěte se, že jste vybrali správnou desku a COM port v nabídce Nástroje.
Testování Example
Po nahrání kódu a stisknutí resetovacího tlačítka ESP32 otevřete sériový monitor s přenosovou rychlostí 115200. Otáčejte potenciometrem a sledujte změny hodnot.Maximální hodnota, kterou získáte, je 4095 a minimální hodnota je 0.
Zabalit se
V tomto článku jste se naučili, jak číst analogové vstupy pomocí ESP32 s Arduino IDE. Souhrnně:
- Deska ESP32 DEVKIT V1 DOIT (verze s 30 piny) má 15 pinů ADC, které můžete použít ke čtení analogových vstupů.
- Tyto piny mají rozlišení 12 bitů, což znamená, že můžete získat hodnoty od 0 do 4095.
- Chcete-li přečíst hodnotu v Arduino IDE, jednoduše použijte funkci analogRead().
- Piny ADC ESP32 nemají lineární chování. Pravděpodobně nebudete schopni rozlišit mezi 0 a 0.1 V nebo mezi 3.2 a 3.3 V. Musíte to mít na paměti při používání pinů ADC.
Project 3 ESP32 PWM (analogový výstup)
V tomto tutoriálu vám ukážeme, jak generovat PWM signály s ESP32 pomocí Arduino IDE. Jako exampVytvoříme jednoduchý obvod, který stmívá LED pomocí LED PWM regulátoru ESP32.ESP32 LED PWM ovladač
ESP32 má LED PWM regulátor s 16 nezávislými kanály, které lze nakonfigurovat tak, aby generovaly PWM signály s různými vlastnostmi.
Zde jsou kroky, které budete muset provést, abyste ztlumili LED pomocí PWM pomocí Arduino IDE:
- Nejprve musíte vybrat kanál PWM. K dispozici je 16 kanálů od 0 do 15.
- Poté musíte nastavit frekvenci signálu PWM. Pro LED je vhodné použít frekvenci 5000 Hz.
- Musíte také nastavit rozlišení pracovního cyklu signálu: máte rozlišení od 1 do 16 bitů. Použijeme 8bitové rozlišení, což znamená, že jas LED můžete ovládat pomocí hodnoty od 0 do 255.
- Dále musíte určit, na kterých GPIO nebo GPIO se signál objeví. K tomu použijete následující funkci:
ledcAttachPin(GPIO, kanál)
Tato funkce přijímá dva argumenty. První je GPIO, který bude vydávat signál, a druhý je kanál, který bude signál generovat. - A konečně, pro ovládání jasu LED pomocí PWM použijte následující funkci:
ledcWrite (kanál, pracovní cyklus)
Tato funkce přijímá jako argumenty kanál, který generuje signál PWM, a pracovní cyklus.
Potřebné díly
Abyste mohli postupovat podle tohoto návodu, potřebujete tyto části:
- Deska ESP32 DEVKIT V1
- 5mm LED
- Odpor 220 ohmů
- Breadboard
- Startovací dráty
Schématický
Připojte LED k vašemu ESP32 jako na následujícím schématu. LED by měla být připojena ke GPIO 4.Poznámka: můžete použít jakýkoli pin, který chcete, pokud může fungovat jako výstup. Všechny piny, které mohou fungovat jako výstupy, lze použít jako piny PWM. Pro více informací o ESP32 GPIO si přečtěte: ESP32 Pinout Reference: Které GPIO piny byste měli použít?
Kód
ESP32 naprogramujeme pomocí Arduino IDE, takže se před pokračováním ujistěte, že máte nainstalovaný doplněk ESP32: (Pokud jste tento krok již provedli, můžete přeskočit k dalšímu kroku.)
Instalace doplňku ESP32 v Arduino IDE
Otevřete kód Project_3_ESP32_PWM.ino v arduino IDEZačnete definováním kolíku, ke kterému je LED připojena. V tomto případě je LED připojena k GPIO 4.
Potom nastavte vlastnosti signálu PWM. Definujete frekvenci 5000 Hz, zvolíte kanál 0 pro generování signálu a nastavíte rozlišení 8 bitů. Pro generování různých PWM signálů si můžete vybrat jiné vlastnosti, než jsou tyto.
V setup() musíte nakonfigurovat LED PWM s vlastnostmi, které jste definovali dříve pomocí funkce ledcSetup(), která přijímá jako argumenty, ledChannel, frekvenci a rozlišení, a to následovně:
Dále musíte vybrat GPIO, ze kterého budete přijímat signál. K tomu použijte funkci ledcAttachPin(), která přijímá jako argumenty GPIO, odkud chcete získat signál, a kanál, který signál generuje. V tomto example, získáme signál v ledPin GPIO, který odpovídá GPIO 4. Kanál, který generuje signál, je ledChannel, který odpovídá kanálu 0.
Ve smyčce budete měnit pracovní cyklus mezi 0 a 255, abyste zvýšili jas LED.
A poté mezi 255 a 0 pro snížení jasu.
Chcete-li nastavit jas LED, stačí použít funkci ledcWrite(), která přijímá jako argumenty kanál, který generuje signál, a pracovní cyklus.
Protože používáme 8bitové rozlišení, pracovní cyklus bude řízen pomocí hodnoty od 0 do 255. Všimněte si, že ve funkci ledcWrite() používáme kanál, který generuje signál, a ne GPIO.
Testování Example
Nahrajte kód do svého ESP32. Ujistěte se, že máte zvolenou správnou desku a COM port. Podívejte se na svůj obvod. Měli byste mít stmívací LED, která zvyšuje a snižuje jas.
Projekt 4 ESP32 PIR pohybový senzor
Tento projekt ukazuje, jak detekovat pohyb pomocí ESP32 pomocí pohybového senzoru PIR. Bzučák spustí alarm, když je detekován pohyb, a zastaví alarm, když není detekován žádný pohyb po přednastavenou dobu (např. 4 sekundy)
Jak funguje snímač pohybu HC-SR501
.Princip činnosti senzoru HC-SR501 je založen na změně infračerveného záření na pohybující se objekt. Aby byl objekt detekován senzorem HC-SR501, musí splňovat dva požadavky:
- Objekt vysílá infračervenou cestou.
- Objekt se pohybuje nebo se třese
Tak:
Pokud objekt vyzařuje infračervený paprsek, ale NEPOHYBUJE se (např. osoba stojí na místě, aniž by se hýbal), senzor jej NENÍ detekován.
Pokud se objekt pohybuje, ale nevyzařuje infračervený paprsek (např. robot nebo vozidlo), NENÍ jej senzorem detekován.
Představujeme časovače
V tomto example také představíme časovače. Chceme, aby LED zůstala svítit po předem stanovený počet sekund po detekci pohybu. Místo použití funkce delay(), která blokuje váš kód a nedovolí vám dělat nic jiného po určitý počet sekund, bychom měli použít časovač.Funkce delay().
Měli byste být obeznámeni s funkcí delay(), protože je široce používána. Použití této funkce je docela jednoduché. Jako argument přijímá jediné int číslo.
Toto číslo představuje dobu v milisekundách, kterou musí program čekat, než přejde na další řádek kódu.Když uděláte delay(1000), váš program se na tomto řádku zastaví na 1 sekundu.
delay() je blokovací funkce. Blokovací funkce zabraňují programu dělat cokoli jiného, dokud není tento konkrétní úkol dokončen. Pokud potřebujete, aby proběhlo více úloh současně, nemůžete použít delay().
U většiny projektů byste se měli vyhnout použití zpoždění a místo toho použít časovače.
Funkce millis().
Pomocí funkce nazvané millis() můžete vrátit počet milisekund, které uplynuly od prvního spuštění programu.Proč je tato funkce užitečná? Protože pomocí nějaké matematiky můžete snadno ověřit, kolik času uplynulo, aniž byste zablokovali svůj kód.
Potřebné díly
Abyste mohli postupovat podle tohoto návodu, potřebujete následující části
- Deska ESP32 DEVKIT V1
- PIR pohybový senzor (HC-SR501)
- Aktivní bzučák
- Startovací dráty
- Breadboard
SchématickýPoznámka: Pracovní svtage HC-SR501 je 5V. K napájení použijte pin Vin.
Kód
Než budete pokračovat v tomto tutoriálu, měli byste mít nainstalovaný doplněk ESP32 ve vašem Arduino IDE. Podle jednoho z následujících návodů nainstalujte ESP32 na Arduino IDE, pokud jste to ještě neudělali. (Pokud jste tento krok již provedli, můžete přeskočit k dalšímu kroku.)
Instalace doplňku ESP32 v Arduino IDE
Otevřete kód Project_4_ESP32_PIR_Motion_Sensor.ino v arduino IDE.
Demonstrace
Nahrajte kód na desku ESP32. Ujistěte se, že jste vybrali správnou desku a COM port. Nahrajte referenční kroky kódu.
Otevřete Serial Monitor s přenosovou rychlostí 115200.Přesuňte ruku před PIR senzor. Měl by se zapnout bzučák a na sériovém monitoru se vytiskne zpráva „Detekován pohyb! Alarm bzučáku“.
Po 4 sekundách by se měl bzučák vypnout.
Projekt 5 přepínač ESP32 Web Server
V tomto projektu vytvoříte samostatný web server s ESP32, který ovládá výstupy (dvě LED) pomocí programovacího prostředí Arduino IDE. The web server je mobilní a lze k němu přistupovat z jakéhokoli zařízení, které je v místní síti jako prohlížeč. Ukážeme vám, jak vytvořit web server a jak kód funguje krok za krokem.
Projekt skončilview
Než půjdete přímo k projektu, je důležité nastínit, co je naše web server udělá, takže je snazší postupovat podle kroků později.
- The web server, který si postavíte, ovládá dvě LED diody připojené k ESP32 GPIO 26 a GPIO 27;
- Můžete přistupovat k ESP32 web server zadáním adresy IP ESP32 do prohlížeče v místní síti;
- Kliknutím na tlačítka na vašem web serveru můžete okamžitě změnit stav každé LED.
Potřebné díly
Pro tento tutoriál budete potřebovat následující díly:
- Deska ESP32 DEVKIT V1
- 2x 5mm LED
- 2x rezistor 200 ohmů
- Breadboard
- Startovací dráty
Schématický
Začněte stavbou okruhu. Připojte dvě LED diody k ESP32, jak je znázorněno na následujícím schématu – jedna LED je připojena k GPIO 26 a druhá k GPIO 27.
Poznámka: Používáme desku ESP32 DEVKIT DOIT s 36 piny. Před sestavením obvodu se ujistěte, že jste zkontrolovali pinout desky, kterou používáte.Kód
Zde poskytujeme kód, který vytváří ESP32 web server. Otevřete kód Project_5_ESP32_Switch _Web_Server.ino v arduino IDE, ale zatím jej nenahrávejte. Aby vám to fungovalo, musíte provést nějaké změny.
ESP32 naprogramujeme pomocí Arduino IDE, takže se před pokračováním ujistěte, že máte nainstalovaný doplněk ESP32: (Pokud jste tento krok již provedli, můžete přeskočit k dalšímu kroku.)
Instalace doplňku ESP32 v Arduino IDE
Nastavení síťových přihlašovacích údajů
Musíte upravit následující řádky se svými síťovými přihlašovacími údaji: SSID a heslo. Kód je dobře okomentován, kde byste měli provést změny.Nahrávání kódu
Nyní můžete nahrát kód a web server bude fungovat okamžitě.
Pro nahrání kódu do ESP32 postupujte podle následujících kroků:
- Zapojte desku ESP32 do počítače;
- V Arduino IDE vyberte svou desku v Tools > Board (v našem případě používáme desku ESP32 DEVKIT DOIT);
- Vyberte port COM v nabídce Nástroje > Port.
- Stiskněte tlačítko Upload v Arduino IDE a počkejte několik sekund, než se kód zkompiluje a nahraje na vaši desku.
- Počkejte na zprávu „Nahrávání dokončeno“.
Zjištění IP adresy ESP
Po nahrání kódu otevřete Serial Monitor s přenosovou rychlostí 115200.Stiskněte tlačítko ESP32 EN (reset). ESP32 se připojí k Wi-Fi a odešle IP adresu ESP na sériový monitor. Zkopírujte tuto IP adresu, protože ji potřebujete pro přístup k ESP32 web server.
Přístup k Web Server
Pro přístup k web serveru, otevřete prohlížeč, vložte IP adresu ESP32 a uvidíte následující stránku.
Poznámka: Váš prohlížeč a ESP32 by měly být připojeny ke stejné LAN.Pokud se podíváte na sériový monitor, můžete vidět, co se děje na pozadí. ESP obdrží požadavek HTTP od nového klienta (v tomto případě vašeho prohlížeče).
Můžete také zobrazit další informace o požadavku HTTP.
Demonstrace
Nyní můžete otestovat, zda vaše web server funguje správně. Klikněte na tlačítka pro ovládání LED.Zároveň se můžete podívat na sériový monitor, abyste viděli, co se děje na pozadí. Napřample, když kliknete na tlačítko pro zapnutí GPIO 26, ESP32 obdrží požadavek na /26/on URL.
Když ESP32 přijme tento požadavek, zapne LED připojenou k GPIO 26 a aktualizuje svůj stav na web strana.
Podobně funguje tlačítko pro GPIO 27. Otestujte, zda funguje správně.
Jak kodex funguje
V této části se blíže podíváme na kód, abyste viděli, jak to funguje.
První věc, kterou musíte udělat, je zahrnout knihovnu WiFi.Jak již bylo zmíněno, musíte vložit své ssid a heslo do následujících řádků do dvojitých uvozovek.
Poté si nastavte svůj web server na port 80.
Následující řádek vytvoří proměnnou pro uložení záhlaví požadavku HTTP:
Dále vytvoříte pomocné proměnné pro uložení aktuálního stavu vašich výstupů. Pokud chcete přidat další výstupy a uložit jeho stav, musíte vytvořit více proměnných.
Každému z vašich výstupů musíte také přiřadit GPIO. Zde používáme GPIO 26 a GPIO 27. Můžete použít jakékoli jiné vhodné GPIO.
nastavení()
Nyní pojďme do setup(). Nejprve zahájíme sériovou komunikaci s přenosovou rychlostí 115200 pro účely ladění.Své GPIO také definujete jako OUTPUTs a nastavíte je na LOW.
Následující řádky zahájí připojení Wi-Fi pomocí WiFi.begin(ssid, heslo), počkejte na úspěšné připojení a vytiskněte IP adresu ESP na sériovém monitoru.
smyčka()
V loop() naprogramujeme, co se stane, když nový klient naváže spojení s web server.
ESP32 vždy naslouchá příchozím klientům s následujícím řádkem:Když obdržíme požadavek od klienta, uložíme příchozí data. Smyčka while, která následuje, poběží tak dlouho, dokud klient zůstane připojen. Nedoporučujeme měnit následující část kódu, pokud přesně nevíte, co děláte.
Další část příkazů if a else kontroluje, které tlačítko bylo stisknuto ve vašem web stránku a podle toho řídí výstupy. Jak jsme viděli dříve, žádáme o jiné URLs v závislosti na stisknutém tlačítku.
Napřample, pokud stisknete tlačítko GPIO 26 ON, ESP32 obdrží požadavek na /26/ON URL (můžeme vidět, že tato informace v záhlaví HTTP na Serial Monitor). Můžeme tedy zkontrolovat, zda hlavička obsahuje výraz GET /26/on. Pokud obsahuje, změníme proměnnou output26state na ON a ESP32 rozsvítí LED.
U ostatních tlačítek to funguje podobně. Pokud tedy chcete přidat další výstupy, měli byste upravit tuto část kódu tak, aby je obsahovala.
Zobrazení HTML web strana
Další věc, kterou musíte udělat, je vytvořit web strana. ESP32 odešle do vašeho prohlížeče odpověď s nějakým HTML kódem pro sestavení web strana.
The web stránka je odeslána klientovi pomocí tohoto výrazu client.println(). Měli byste zadat, co chcete poslat klientovi jako argument.
První věc, kterou bychom měli odeslat, je vždy následující řádek, který označuje, že posíláme HTML.Poté následující řádek vytvoří web stránka responzivní v libovolném web prohlížeč.
A následující se používá k zamezení požadavků na favicon. – O tuto linku se nemusíte starat.
Stylování Web Strana
Dále máme nějaký text CSS pro stylování tlačítek a web vzhled stránky.
Zvolíme font Helvetica, definujeme obsah, který se má zobrazit jako blok a zarovnat na střed.Naše tlačítka stylujeme barvou #4CAF50, bez ohraničení, textem v bílé barvě as tímto odsazením: 16px 40px. Nastavíme také dekoraci textu na none, definujeme velikost písma, okraj a kurzor na ukazatel.
Také definujeme styl pro druhé tlačítko se všemi vlastnostmi tlačítka, které jsme definovali dříve, ale s jinou barvou. Toto bude styl tlačítka vypnutí.
Nastavení Web První nadpis stránky
V dalším řádku můžete nastavit první nadpis svého web strana. Zde máme „ESP32 Web Server“, ale tento text můžete změnit na libovolný.Zobrazení tlačítek a odpovídajícího stavu
Poté napíšete odstavec pro zobrazení aktuálního stavu GPIO 26. Jak můžete vidět, používáme proměnnou output26State, takže stav se aktualizuje okamžitě, když se tato proměnná změní.Poté zobrazíme tlačítko zapnutí nebo vypnutí v závislosti na aktuálním stavu GPIO. Pokud je aktuální stav GPIO vypnutý, zobrazíme tlačítko ON, pokud ne, zobrazíme tlačítko OFF.
Stejný postup používáme pro GPIO 27.
Uzavření připojení
Nakonec, když odpověď skončí, vymažeme proměnnou hlavičky a zastavíme spojení s klientem pomocí client.stop().
Zabalit se
V tomto tutoriálu jsme vám ukázali, jak vytvořit a web server s ESP32. Ukázali jsme vám jednoduchého example, který ovládá dvě LED, ale myšlenkou je nahradit tyto LED relé nebo jiným výstupem, který chcete ovládat.
Projekt 6 RGB LED Web Server
V tomto projektu vám ukážeme, jak vzdáleně ovládat RGB LED s deskou ESP32 pomocí a web server s výběrem barvy.
Projekt skončilview
Než začneme, podívejme se, jak tento projekt funguje:
- ESP32 web server zobrazí výběr barvy.
- Když vyberete barvu, váš prohlížeč odešle požadavek na a URL který obsahuje parametry R, G a B vybrané barvy.
- Váš ESP32 přijme požadavek a rozdělí hodnotu pro každý parametr barvy.
- Poté odešle PWM signál s odpovídající hodnotou do GPIO, které řídí RGB LED.
Jak fungují RGB LED?
V RGB LED se společnou katodou sdílejí všechny tři LED záporné spojení (katodu). Všechny součásti sady jsou RGB se společnou katodou.Jak vytvořit různé barvy?
S RGB LED můžete samozřejmě produkovat červené, zelené a modré světlo a konfigurací intenzity každé LED můžete vytvářet i jiné barvy.
NapřampChcete-li produkovat čistě modré světlo, nastavili byste modrou LED na nejvyšší intenzitu a zelenou a červenou LED na nejnižší intenzitu. Pro bílé světlo byste nastavili všechny tři LED na nejvyšší intenzitu.
Míchání barev
Chcete-li vytvořit jiné barvy, můžete kombinovat tři barvy v různé intenzitě. Pro nastavení intenzity každé LED můžete použít PWM signál.
Protože jsou LED diody velmi blízko u sebe, naše oči vidí výsledek kombinace barev spíše než tři barvy jednotlivě.
Chcete-li mít představu, jak barvy kombinovat, podívejte se na následující tabulku.
Toto je nejjednodušší tabulka míchání barev, ale dává vám představu, jak to funguje a jak vyrábět různé barvy.Potřebné díly
Pro tento projekt potřebujete následující díly:
- Deska ESP32 DEVKIT V1
- RGB LED
- 3x 220 ohm rezistory
- Startovací dráty
- Breadboard
SchématickýKód
ESP32 naprogramujeme pomocí Arduino IDE, takže se před pokračováním ujistěte, že máte nainstalovaný doplněk ESP32: (Pokud jste tento krok již provedli, můžete přeskočit k dalšímu kroku.)
- Instalace doplňku ESP32 v Arduino IDE
Po sestavení obvodu otevřete kód
Project_6_RGB_LED_Web_Server.ino v arduino IDE.
Před nahráním kódu nezapomeňte vložit své síťové přihlašovací údaje, aby se ESP mohl připojit k vaší místní síti.Jak kód funguje
Skica ESP32 využívá knihovnu WiFi.h.Následující řádky definují řetězcové proměnné pro uložení parametrů R, G a B z požadavku.
Další čtyři proměnné se používají k pozdějšímu dekódování požadavku HTTP.
Vytvořte tři proměnné pro GPIO, které budou řídit parametry R, G a B proužku. V tomto případě používáme GPIO 13, GPIO 12 a GPIO 14.
Tyto GPIO potřebují vydávat signály PWM, takže musíme nejprve nakonfigurovat vlastnosti PWM. Nastavte frekvenci signálu PWM na 5000 Hz. Poté pro každou barvu přidružte kanál PWM
A nakonec nastavte rozlišení PWM kanálů na 8 bitů
V setup() přiřaďte vlastnosti PWM kanálům PWM
Připojte PWM kanály k odpovídajícím GPIO
Následující část kódu zobrazuje výběr barvy ve vašem web stránku a vytvoří požadavek na základě barvy, kterou jste vybrali.
Když vyberete barvu, obdržíte požadavek v následujícím formátu.
Musíme tedy tento řetězec rozdělit, abychom získali parametry R, G a B. Parametry jsou uloženy v proměnných redString, greenString a blueString a mohou mít hodnoty mezi 0 a 255.Pro ovládání proužku pomocí ESP32 použijte funkci ledcWrite() pro generování PWM signálů s hodnotami dekódovanými z HTTP žádost.
Poznámka: zjistěte více o PWM s ESP32: Project 3 ESP32 PWM (analogový výstup)
K ovládání proužku pomocí ESP8266 stačí použít
funkce analogWrite() pro generování PWM signálů s hodnotami dekódovanými z požadavku HTPP.
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
Protože získáváme hodnoty v řetězcové proměnné, musíme je převést na celá čísla pomocí metody toInt().
Demonstrace
Po vložení vašich síťových přihlašovacích údajů vyberte správnou desku a COM port a nahrajte kód do vašeho ESP32.Nahrajte referenční kroky kódu.
Po nahrání otevřete Serial Monitor s přenosovou rychlostí 115200 a stiskněte tlačítko ESP Enable/Reset. Měli byste získat IP adresu desky.Otevřete prohlížeč a vložte IP adresu ESP. Nyní pomocí nástroje pro výběr barvy vyberte barvu RGB LED.
Poté musíte stisknout tlačítko „Změnit barvu“, aby se barva projevila.Chcete-li RGB LED vypnout, vyberte černou barvu.
Nejsilnější barvy (v horní části výběru barvy) poskytnou lepší výsledky.
Relé projektu 7 ESP32 Web Server
Použití relé s ESP32 je skvělý způsob, jak ovládat AC domácí spotřebiče na dálku. Tento tutoriál vysvětluje, jak ovládat reléový modul pomocí ESP32.
Podíváme se na to, jak funguje reléový modul, jak připojit relé k ESP32 a postavit a web server pro vzdálené ovládání relé.
Představujeme relé
Relé je elektricky ovládaný spínač a jako každý jiný spínač lze zapnout nebo vypnout, přičemž proud prochází nebo ne. Lze jej ovládat pomocí nízkého objtages, jako je 3.3 V poskytované ESP32 GPIO a umožňuje nám ovládat vysoké obj.tages jako 12V, 24V nebo síťový objtage (230 V v Evropě a 120 V v USA).Na levé straně jsou dvě sady po třech zásuvkách pro připojení vysokého objtages a kolíky na pravé straně (nízkovoltage) připojte se k ESP32 GPIO.
Síť Voltage PřipojeníReléový modul zobrazený na předchozí fotografii má dva konektory, každý se třemi zásuvkami: společný (COM), normálně zavřený (NC) a normálně otevřený (NO).
- COM: připojte proud, který chcete ovládat (síťový objtagE).
- NC (Normally Closed): Konfigurace normálně sepnutá se používá, když chcete, aby bylo relé standardně sepnuto. Piny NC jsou připojeny, což znamená, že proud teče, pokud nevyšlete signál z ESP32 do reléového modulu, abyste otevřeli obvod a zastavili tok proudu.
- NO (Normally Open): normálně otevřená konfigurace funguje obráceně: mezi piny NO a COM není žádné spojení, takže obvod je přerušený, pokud nevyšlete signál z ESP32 k uzavření obvodu.
Kontrolní kolíkyNízkoobjemovýtagStrana má sadu čtyř kolíků a sadu tří kolíků. První sada se skládá z VCC a GND pro napájení modulu a vstupu 1 (IN1) a vstupu 2 (IN2) pro ovládání spodního a horního relé.
Pokud má váš reléový modul pouze jeden kanál, budete mít pouze jeden pin IN. Pokud máte čtyři kanály, budete mít čtyři piny IN a tak dále.
Signál, který posíláte na piny IN, určuje, zda je relé aktivní nebo ne. Relé se spustí, když vstup klesne pod přibližně 2V. To znamená, že budete mít následující scénáře:
- Normálně zavřená konfigurace (NC):
- Signál HIGH – teče proud
- Signál LOW – neteče proud
- Normálně otevřená konfigurace (NO):
- Signál HIGH – neteče proud
- LOW signál – protékající proud
Měli byste použít normálně uzavřenou konfiguraci, když by měl proud téci většinu času a chcete jej zastavit jen občas.
Normálně otevřenou konfiguraci použijte, když chcete, aby proud protékal příležitostně (napřample, zapni alamp občas).
Výběr zdroje napájeníDruhá sada kolíků se skládá z kolíků GND, VCC a JD-VCC.
Vývod JD-VCC napájí elektromagnet relé. Všimněte si, že modul má propojku spojující kolíky VCC a JD-VCC; zde zobrazená je žlutá, ale vaše může mít jinou barvu.
S nasazenou krytkou propojky jsou propojeny kolíky VCC a JD-VCC. To znamená, že elektromagnet relé je napájen přímo z napájecího kolíku ESP32, takže modul relé a obvody ESP32 nejsou od sebe fyzicky izolovány.
Bez krytky propojky musíte zajistit nezávislý zdroj napájení pro napájení elektromagnetu relé přes kolík JD-VCC. Tato konfigurace fyzicky izoluje relé od ESP32 pomocí vestavěného optočlenu modulu, což zabraňuje poškození ESP32 v případě elektrických špiček.
SchématickýVarování: Použití vysokého objtagNapájecí zdroje mohou způsobit vážné zranění.
Proto se místo vysokého napájecího obj. používají 5mm LEDtage žárovky v experimentu. Pokud nejste obeznámeni s mains voltagzeptejte se někoho, kdo vám má pomoci. Při programování ESP nebo zapojování vašeho obvodu se ujistěte, že je vše odpojeno od sítě voltage.Instalace knihovny pro ESP32
Tohle postavit web server, používáme ESPAsyncWebServerová knihovna a AsyncTCP Library.
Instalace ESPAsyncWebServerová knihovna
Při instalaci postupujte podle následujících kroků ESPAsyncWebServer knihovna:
- Klikněte zde pro stažení ESPAsyncWebServerová knihovna. Měl bys mít
složku .zip ve složce Stažené soubory - Rozbalte složku .zip a měli byste získat ESPAsyncWebHlavní složka serveru
- Přejmenujte svou složku z ESPAsyncWebServer-master na ESPAsyncWebServer
- Přesuňte ESPAsyncWebSložka serveru do složky instalačních knihoven Arduino IDE
Případně ve vašem Arduino IDE můžete přejít na Sketch > Include
Knihovna > Přidat knihovnu .ZIP… a vyberte knihovnu, kterou jste právě stáhli.
Instalace knihovny AsyncTCP pro ESP32
The ESPAsyncWebServer knihovna vyžaduje AsyncTCP knihovna do práce. Následovat
další kroky k instalaci této knihovny:
- Kliknutím sem stáhnete knihovnu AsyncTCP. Ve složce Stažené soubory byste měli mít složku .zip
- Rozbalte složku .zip a měli byste získat složku AsyncTCP-master
1. Přejmenujte složku z AsyncTCP-master na AsyncTCP
3. Přesuňte složku AsyncTCP do složky instalačních knihoven Arduino IDE
4. Nakonec znovu otevřete své Arduino IDE
Případně ve vašem Arduino IDE můžete přejít na Sketch > Include
Knihovna > Přidat knihovnu .ZIP… a vyberte knihovnu, kterou jste právě stáhli.
Kód
ESP32 naprogramujeme pomocí Arduino IDE, takže se před pokračováním ujistěte, že máte nainstalovaný doplněk ESP32: (Pokud jste tento krok již provedli, můžete přeskočit k dalšímu kroku.)
Instalace doplňku ESP32 v Arduino IDE
Po instalaci požadovaných knihoven otevřete kód Project_7_ESP32_Relay_Web_Server.ino v arduino IDE.
Před nahráním kódu nezapomeňte vložit své síťové přihlašovací údaje, aby se ESP mohl připojit k vaší místní síti.Demonstrace
Po provedení nezbytných změn nahrajte kód do referenčních kroků ESP32.Nahrát kód.
Otevřete Serial Monitor s přenosovou rychlostí 115200 a stisknutím tlačítka ESP32 EN získejte jeho IP adresu. Poté otevřete prohlížeč v místní síti a zadejte IP adresu ESP32, abyste získali přístup k web server.
Otevřete Serial Monitor s přenosovou rychlostí 115200 a stisknutím tlačítka ESP32 EN získejte jeho IP adresu. Poté otevřete prohlížeč v místní síti a zadejte IP adresu ESP32, abyste získali přístup k web server.Poznámka: Váš prohlížeč a ESP32 by měly být připojeny ke stejné LAN.
Měli byste získat něco následujícího se dvěma tlačítky, jako je počet relé, které jste definovali ve svém kódu.Nyní můžete pomocí tlačítek ovládat relé pomocí smartphonu.
Project_8_Output_State_Synchronization_ Web_Server
Tento projekt ukazuje, jak ovládat výstupy ESP32 nebo ESP8266 pomocí a web server a fyzické tlačítko současně. Stav výstupu se aktualizuje na web stránku, zda se změní pomocí fyzického tlačítka nebo web server.
Projekt skončilview
Pojďme se v rychlosti podívat na to, jak projekt funguje.ESP32 nebo ESP8266 hostí a web server, který umožňuje řídit stav výstupu;
- Aktuální stav výstupu je zobrazen na web server;
- ESP je také připojen k fyzickému tlačítku, které ovládá stejný výstup;
- Pokud změníte stav výstupu pomocí fyzického tlačítka, jeho aktuální stav se také aktualizuje na web server.
Stručně řečeno, tento projekt vám umožňuje ovládat stejný výstup pomocí a web server a tlačítko současně. Kdykoli se změní stav výstupu, web server je aktualizován.
Potřebné díly
Zde je seznam dílů, které potřebujete k sestavení obvodu:
- Deska ESP32 DEVKIT V1
- 5mm LED
- odpor 220 ohmů
- Stiskněte tlačítko
- 10k Ohm odpor
- Breadboard
- Startovací dráty
SchématickýInstalace knihovny pro ESP32
Tohle postavit web server, používáme ESPAsyncWebKnihovna serveru a knihovna AsyncTCP. (Pokud jste tento krok již provedli, můžete přeskočit k dalšímu kroku.)
Instalace ESPAsyncWebServerová knihovna
Při instalaci ESPAsync postupujte podle následujících krokůWebServerová knihovna:
- Klikněte zde pro stažení ESPAsyncWebServerová knihovna. Měl bys mít
složku .zip ve složce Stažené soubory - Rozbalte složku .zip a měli byste získat ESPAsyncWebHlavní složka serveru
- Přejmenujte svou složku z ESPAsyncWebServer-master na ESPAsyncWebServer
- Přesuňte ESPAsyncWebSložka serveru do složky instalačních knihoven Arduino IDE
Případně ve vašem Arduino IDE můžete přejít na Sketch > Include
Knihovna > Přidat knihovnu .ZIP… a vyberte knihovnu, kterou jste právě stáhli.
Instalace knihovny AsyncTCP pro ESP32
ESPAsyncWebKnihovna serveru vyžaduje, aby knihovna AsyncTCP fungovala. Pro instalaci této knihovny postupujte podle následujících kroků:
- Kliknutím sem stáhnete knihovnu AsyncTCP. Ve složce Stažené soubory byste měli mít složku .zip
- Rozbalte složku .zip a měli byste získat složku AsyncTCP-master
- Přejmenujte složku z AsyncTCP-master na AsyncTCP
- Přesuňte složku AsyncTCP do složky instalačních knihoven Arduino IDE
- Nakonec znovu otevřete své Arduino IDE
Případně ve vašem Arduino IDE můžete přejít na Sketch > Include
Knihovna > Přidat knihovnu .ZIP… a vyberte knihovnu, kterou jste právě stáhli.
Kód
ESP32 naprogramujeme pomocí Arduino IDE, takže se před pokračováním ujistěte, že máte nainstalovaný doplněk ESP32: (Pokud jste tento krok již provedli, můžete přeskočit k dalšímu kroku.)
Instalace doplňku ESP32 v Arduino IDE
Po instalaci požadovaných knihoven otevřete kód
Project_8_Output_State_Synchronization_Web_Server.ino v arduino IDE.
Před nahráním kódu nezapomeňte vložit své síťové přihlašovací údaje, aby se ESP mohl připojit k vaší místní síti.
Jak kodex funguje
Stav tlačítka a stav výstupu
Proměnná ledState uchovává stav výstupu LED. Pro výchozí, když web server se spustí, je NÍZKÁ.
ButtonState a lastButtonState se používají ke zjištění, zda bylo tlačítko stisknuto nebo ne.Tlačítko (web server)
Nezahrnuli jsme HTML k vytvoření tlačítka v proměnné index_html.
To proto, že chceme mít možnost jej změnit v závislosti na aktuálním stavu LED, který lze také změnit pomocí tlačítka.
Vytvořili jsme tedy zástupný symbol pro tlačítko %BUTTONPLACEHOLDER%, který bude nahrazen textem HTML, aby se tlačítko vytvořilo později v kódu (to se provádí ve funkci procesor()).procesor()
Funkce procesor() nahradí všechny zástupné symboly v textu HTML skutečnými hodnotami. Nejprve zkontroluje, zda HTML texty nějaké obsahují
zástupné symboly %BUTTONPLACEHOLDER%.Poté zavolejte funkci outputState(), která vrátí aktuální stav výstupu. Uložíme do proměnné outputStateValue.
Poté použijte tuto hodnotu k vytvoření textu HTML pro zobrazení tlačítka se správným stavem:
Požadavek HTTP GET na změnu stavu výstupu (JavaScript)
Když stisknete tlačítko, zavolá se funkce toggleCheckbox(). Tato funkce vytvoří požadavek na jiný URLs pro zapnutí nebo vypnutí LED.Pro rozsvícení LED provede požadavek na /update?state=1 URL:
V opačném případě vytvoří požadavek na /update?state=0 URL.
Požadavek HTTP GET na aktualizaci stavu (JavaScript)
Chcete-li udržovat aktuální stav výstupu na web server, zavoláme následující funkci, která vytvoří nový požadavek na /state URL každou vteřinu.Zpracovat požadavky
Potom musíme zvládnout, co se stane, když ESP32 nebo ESP8266 obdrží požadavky na ně URLs.
Když je přijat požadavek na root /URL, zasíláme HTML stránku i zpracovateli.Následující řádky zkontrolují, zda jste obdrželi požadavek na /update?state=1 nebo /update?state=0 URL a podle toho změní ledState.
Když je přijat požadavek na /state URL, posíláme aktuální stav výstupu:
smyčka()
Ve smyčce () vypneme tlačítko a zapneme nebo vypneme LED v závislosti na hodnotě ledState variabilní.Demonstrace
Nahrajte kód na vaši desku ESP32. Nahrajte referenční kroky pro kód.
Poté otevřete sériový monitor s přenosovou rychlostí 115200. Stisknutím integrovaného tlačítka EN/RST získáte IP adresu.Otevřete prohlížeč v místní síti a zadejte adresu IP ESP. Měli byste mít přístup k web server, jak je uvedeno níže.
Poznámka: Váš prohlížeč a ESP32 by měly být připojeny ke stejné LAN.Můžete přepínat tlačítko na web serveru pro rozsvícení LED.
Stejnou LED můžete ovládat také fyzickým tlačítkem. Jeho stav bude vždy automaticky aktualizován na web server.
Projekt 9 ESP32 DHT11 Web Server
V tomto projektu se naučíte, jak vytvořit asynchronní ESP32 web server s DHT11, který zobrazuje teplotu a vlhkost pomocí Arduino IDE.
Předpoklady
The web serveru budeme vytvářet aktualizace načtení automaticky bez nutnosti obnovovat web strana.
S tímto projektem se naučíte:
- Jak číst teplotu a vlhkost ze senzorů DHT;
- Sestavte asynchronní web server pomocí ESPAsyncWebServerová knihovna;
- Aktualizujte hodnoty senzoru automaticky bez nutnosti obnovovat web strana.
Asynchronní Web Server
K vybudování web server, který použijeme ESPAsyncWebServerová knihovna který poskytuje snadný způsob, jak vytvořit asynchronní web server. Budování asynchronního web server má několik výhodtages, jak je uvedeno na stránce knihovny GitHub, jako například:
- „Obsluhovat více než jedno připojení současně“;
- „Když odešlete odpověď, jste okamžitě připraveni zvládnout další připojení, zatímco server se postará o odeslání odpovědi na pozadí“;
- „Jednoduchý nástroj pro zpracování šablon pro zpracování šablon“;
Potřebné díly
K dokončení tohoto tutoriálu potřebujete následující části:
- Vývojová deska ESP32
- Modul DHT11
- Breadboard
- Startovací dráty
SchématickýInstalace knihoven
Pro tento projekt musíte nainstalovat několik knihoven:
- The DHT a Senzor Adafruit Unified Knihovny ovladačů ke čtení ze senzoru DHT.
- ESPAsyncWebServer a Asynchronní TCP knihovny k sestavení asynchronního web server.
Při instalaci těchto knihoven postupujte podle následujících pokynů:
Instalace knihovny snímačů DHT
Chcete-li číst ze senzoru DHT pomocí Arduino IDE, musíte nainstalovat Knihovna senzorů DHT. Při instalaci knihovny postupujte podle následujících kroků.
- Kliknutím sem stáhnete knihovnu senzorů DHT. Ve složce Stažené soubory byste měli mít složku .zip
- Rozbalte složku .zip a měli byste získat složku DHT-sensor-library-master
- Přejmenujte svou složku z DHT-sensor-library-master na DHT_sensor
- Přesuňte složku DHT_sensor do složky instalačních knihoven Arduino IDE
- Nakonec znovu otevřete své Arduino IDE
Instalace ovladače Adafruit Unified Sensor Driver
Musíte také nainstalovat Knihovna Adafruit Unified Sensor Driver pro práci se senzorem DHT. Při instalaci knihovny postupujte podle následujících kroků.
- Klikněte sem a stáhněte si knihovnu Adafruit Unified Sensor. Ve složce Stažené soubory byste měli mít složku .zip
- Rozbalte složku .zip a měli byste získat složku Adafruit_sensor-master
- Přejmenujte svou složku z Adafruit_sensor-master na Adafruit_sensor
- Přesuňte složku Adafruit_sensor do složky instalačních knihoven Arduino IDE
- Nakonec znovu otevřete své Arduino IDE
Instalace ESPAsyncWebServerová knihovna
Při instalaci postupujte podle následujících kroků ESPAsyncWebServer knihovna:
- Klikněte zde pro stažení ESPAsyncWebServerová knihovna. Měl bys mít
složku .zip ve složce Stažené soubory - Rozbalte složku .zip a měli byste
získat ESPAsyncWebHlavní složka serveru - Přejmenujte svou složku z ESPAsyncWebServer-master na ESPAsyncWebServer
- Přesuňte ESPAsyncWebSložka serveru do složky instalačních knihoven Arduino IDE
Instalace knihovny Async TCP pro ESP32
The ESPAsyncWebServer knihovna vyžaduje AsyncTCP knihovna do práce. Pro instalaci této knihovny postupujte podle následujících kroků:
- Kliknutím sem stáhnete knihovnu AsyncTCP. Ve složce Stažené soubory byste měli mít složku .zip
- Rozbalte složku .zip a měli byste získat složku AsyncTCP-master
- Přejmenujte složku z AsyncTCP-master na AsyncTCP
- Přesuňte složku AsyncTCP do složky instalačních knihoven Arduino IDE
- Nakonec znovu otevřete své Arduino IDE
Kód
ESP32 naprogramujeme pomocí Arduino IDE, takže se před pokračováním ujistěte, že máte nainstalovaný doplněk ESP32: (Pokud jste tento krok již provedli, můžete přeskočit k dalšímu kroku.)
Instalace doplňku ESP32 v Arduino IDE
Po instalaci požadovaných knihoven otevřete kód
Project_9_ESP32_DHT11_Web_Server.ino v arduino IDE.
Před nahráním kódu nezapomeňte vložit své síťové přihlašovací údaje, aby se ESP mohl připojit k vaší místní síti.Jak kodex funguje
V následujících odstavcích vysvětlíme, jak kód funguje. Pokračujte ve čtení, pokud se chcete dozvědět více, nebo přejděte do sekce Ukázka a podívejte se na konečný výsledek.
Import knihoven
Nejprve importujte požadované knihovny. WiFi, ESPAsyncWebK sestavení je potřeba server a ESPAsyncTCP web server. Adafruit_Sensor a knihovny DHT jsou potřebné pro čtení ze senzorů DHT11 nebo DHT22.Definice proměnných
Definujte GPIO, ke kterému je připojen datový kolík DHT. V tomto případě je připojen k GPIO 4.Poté vyberte typ senzoru DHT, který používáte. V naší example, používáme DHT22. Pokud používáte jiný typ, stačí odkomentovat váš senzor a okomentovat všechny ostatní.
Vytvořte instanci objektu DHT s typem a pinem, který jsme definovali dříve.Vytvořte asynchronníWebObjekt serveru na portu 80.
Přečtěte si o funkcích teploty a vlhkosti
Vytvořili jsme dvě funkce: jednu pro čtení teploty Vytvořili jsme dvě funkce: jednu pro čtení teploty (readDHTTemperature()) a druhou pro čtení vlhkosti (readDHTHumidity()).Získávání hodnot senzoru je stejně jednoduché jako použití Získávání hodnot senzoru je stejně jednoduché jako použití metod readTemperature() a readHumidity() na objektu dht.
Máme také podmínku, která vrací dvě pomlčky (–) v případě, že senzor selže při získávání hodnot.
Hodnoty jsou vráceny jako typ řetězce. Chcete-li převést float na řetězec, použijte funkci String().
Standardně čteme teplotu ve stupních Celsia. Chcete-li získat teplotu ve stupních Fahrenheita, okomentujte teplotu ve stupních Celsia a odečtěte teplotu ve stupních Fahrenheita, abyste získali následující:
Nahrajte kód
Nyní nahrajte kód do svého ESP32. Ujistěte se, že jste vybrali správnou desku a COM port. Nahrajte referenční kroky kódu.
Po nahrání otevřete sériový monitor s přenosovou rychlostí 115200. Stiskněte resetovací tlačítko ESP32. IP adresa ESP32 by měla být vytištěna v seriálu monitor.Demonstrace
Otevřete prohlížeč a zadejte adresu IP ESP32. Vaše web server by měl zobrazovat nejnovější hodnoty senzoru.
Poznámka: Váš prohlížeč a ESP32 by měly být připojeny ke stejné LAN.
Všimněte si, že naměřené hodnoty teploty a vlhkosti se aktualizují automaticky, aniž by bylo nutné je obnovovat web strana.
Project_10_ESP32_OLED_Display
Tento projekt ukazuje, jak používat 0.96palcový OLED displej SSD1306 s ESP32 pomocí Arduino IDE.
Představujeme 0.96palcový OLED displej
The OLED displej V tomto tutoriálu použijeme model SSD1306: jednobarevný 0.96palcový displej s rozlišením 128 × 64 pixelů, jak je znázorněno na následujícím obrázku.OLED displej nevyžaduje podsvícení, což má za následek velmi pěkný kontrast v tmavém prostředí. Navíc jeho pixely spotřebovávají energii, pouze když jsou zapnuté, takže OLED displej spotřebovává méně energie než ostatní displeje.
Protože OLED displej používá komunikační protokol I2C, je zapojení velmi jednoduché. Jako referenci můžete použít následující tabulku.
OLED pin | ESP32 |
Vin | 3.3V |
GND | GND |
SCL | GPIO 22 |
SDA | GPIO 21 |
SchématickýInstalace knihovny SSD1306 OLED – ESP32
Pro ovládání OLED displeje pomocí ESP32 je k dispozici několik knihoven.
V tomto tutoriálu použijeme dvě knihovny Adafruit: Knihovna Adafruit_SSD1306 a Knihovna Adafruit_GFX.
Při instalaci těchto knihoven postupujte podle následujících kroků.
- Otevřete své Arduino IDE a přejděte na Sketch > Include Library > Manage Libraries. Měl by se otevřít Správce knihovny.
- Do vyhledávacího pole zadejte „SSD1306“ a nainstalujte knihovnu SSD1306 od Adafruit.
- Po instalaci knihovny SSD1306 od Adafruit zadejte do vyhledávacího pole „GFX“ a nainstalujte knihovnu.
- Po instalaci knihoven restartujte své Arduino IDE.
Kód
Po instalaci požadovaných knihoven otevřete Project_10_ESP32_OLED_Display.ino v arduino IDE. kód
ESP32 naprogramujeme pomocí Arduino IDE, takže se před pokračováním ujistěte, že máte nainstalovaný doplněk ESP32: (Pokud jste tento krok již provedli, můžete přeskočit k dalšímu kroku.)
Instalace doplňku ESP32 v Arduino IDEJak kodex funguje
Import knihoven
Nejprve je třeba importovat potřebné knihovny. Knihovna Wire pro použití I2C a knihovny Adafruit pro zápis na displej: Adafruit_GFX a Adafruit_SSD1306.Inicializujte OLED displej
Poté definujete šířku a výšku OLED. V tomto example, používáme 128×64 OLED displej. Pokud používáte jiné velikosti, můžete to změnit v proměnných SCREEN_WIDTH a SCREEN_HEIGHT.Poté inicializujte objekt zobrazení s šířkou a výškou definovanou dříve pomocí komunikačního protokolu I2C (&Wire).
Parametr (-1) znamená, že váš OLED displej nemá RESET pin. Pokud váš OLED displej má RESET pin, měl by být připojen ke GPIO. V takovém případě byste měli předat číslo GPIO jako parametr.
V setup() inicializujte Serial Monitor na přenosovou rychlost 115200 pro účely ladění.Inicializujte OLED displej pomocí metody begin() takto:
Tento úryvek také vytiskne zprávu na sériovém monitoru pro případ, že bychom se nemohli připojit k displeji.
V případě, že používáte jiný OLED displej, možná budete muset změnit OLED adresu. V našem případě je adresa 0x3C.
Po inicializaci displeje přidejte dvousekundové zpoždění, aby měl OLED dostatek času na inicializaci před psaním textu:
Přehledný displej, nastavení velikosti písma, barvy a psaní textu
Po inicializaci displeje vymažte vyrovnávací paměť displeje pomocí metody clearDisplay():
Před psaním textu je potřeba nastavit velikost textu, barvu a kde se bude text zobrazovat v OLED.
Nastavte velikost písma pomocí metody setTextSize():Nastavte barvu písma pomocí metody setTextColor():
WHITE nastaví bílé písmo a černé pozadí.
Pomocí metody setCursor(x,y) definujte pozici, kde text začíná. V tomto případě nastavujeme text tak, aby začínal na souřadnicích (0,0) – v levém horním rohu.Nakonec můžete text odeslat na displej pomocí metody println() následovně
Potom musíte zavolat metodu display(), aby se text skutečně zobrazil na obrazovce.
Knihovna Adafruit OLED poskytuje užitečné metody pro snadné posouvání textu.
- begincrollright(0x00, 0x0F): rolování textu zleva doprava
- begincrollleft(0x00, 0x0F): rolování textu zprava doleva
- begincrolldiagright(0x00, 0x07): rolování textu z levého dolního rohu do pravého horního rohu begincrolldiagleft(0x00, 0x07): rolování textu z pravého dolního rohu do levého horního rohu
Nahrajte kód
Nyní nahrajte kód do referenčních kroků ESP32.Upload kódu.
Po nahrání kódu OLED zobrazí rolující text.
Dokumenty / zdroje
![]() |
Základní startovací sada LAFVIN ESP32 [pdfNávod k obsluze ESP32 Basic Starter Kit, ESP32, Basic Starter Kit, Starter Kit |