ESP32 põhiline starter
komplekt
Pakkimisnimekiri
ESP32 Sissejuhatus
Kas uus ESP32 kasutaja? Alusta siit! ESP32 on Espressifi välja töötatud odavate ja väikese energiatarbega süsteemi mikrokontrollerite (SoC) seeria, mis sisaldab Wi-Fi ja Bluetoothi traadita võimalusi ning kahetuumalist protsessorit. Kui olete ESP8266-ga tuttav, on ESP32 selle järglane, mis on täis palju uusi funktsioone.ESP32 spetsifikatsioonid
Kui soovite saada veidi tehnilisemat ja spetsiifilisemat, võite heita pilgu järgmistele ESP32 üksikasjalikele spetsifikatsioonidele (allikas: http://esp32.net/) — lisateabe saamiseks kontrolli andmelehte):
- Traadita ühenduvus WiFi: HT150.0-ga andmesidekiirus 40 Mbps
- Bluetooth: BLE (Bluetooth Low Energy) ja Bluetooth Classic
- Protsessor: Tensilica Xtensa kahetuumaline 32-bitine LX6 mikroprotsessor, töötab sagedusel 160 või 240 MHz
- Mälu:
- ROM: 448 KB (käivitamiseks ja põhifunktsioonide jaoks)
- SRAM: 520 KB (andmete ja juhiste jaoks)
- RTC fas SRAM: 8 KB (andmete salvestamiseks ja põhiprotsessori jaoks RTC alglaadimise ajal sügavast unerežiimist)
- RTC aeglane SRAM: 8KB (kaasprotsessori juurdepääsuks sügava une režiimis) eFuse: 1 Kbit (millest 256 bitti kasutatakse süsteemi jaoks (MAC-aadressi ja kiibi konfiguratsioon) ja ülejäänud 768 bitti on reserveeritud kliendirakendustele, sealhulgas Flash-krüpteerimine ja kiibi ID)
Sisseehitatud välklamp: välklamp on sisemiselt ühendatud IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 ja SD_DATA_1 kaudu ESP32-D2WD ja ESP32-PICO-D4.
- 0 MiB (ESP32-D0WDQ6, ESP32-D0WD ja ESP32-S0WD kiibid)
- 2 MiB (ESP32-D2WD kiip)
- 4 MiB (ESP32-PICO-D4 SiP-moodul)
Väike võimsus: tagab, et saate endiselt kasutada ADC-konversioone, ntample, sügava une ajal.
Välisseadmete sisend/väljund:
- perifeerne liides DMA-ga, mis sisaldab mahtuvuslikku puutetundlikkust
- ADC-d (analoog-digitaalmuundur)
- DAC-id (digitaal-analoogmuundur)
- I²C (integreeritud vooluahel)
- UART (universaalne asünkroonne vastuvõtja/saatja)
- SPI (Serial Peripheral Interface)
- I²S (integreeritud kiipidevaheline heli)
- RMII (vähendatud meediast sõltumatu liides)
- PWM (impulsi laiuse modulatsioon)
Turvalisus: riistvarakiirendid AES ja SSL/TLS jaoks
ESP32 arendusnõukogud
ESP32 viitab tühjale ESP32 kiibile. Kuid terminit ESP32 kasutatakse ka ESP32 arendusplaatide tähistamiseks. ESP32 paljaste kiipide kasutamine ei ole lihtne ega praktiline, eriti õppimise, testimise ja prototüüpide loomisel. Enamasti soovite kasutada ESP32 arendusplaati.
Kasutame viitena ESP32 DEVKIT V1 plaati. Alloleval pildil on ESP32 DEVKIT V1 plaat, versioon 30 GPIO kontaktiga.Tehnilised andmed – ESP32 DEVKIT V1
Järgmises tabelis on ESP32 DEVKIT V1 DOIT plaadi funktsioonide ja spetsifikatsioonide kokkuvõte.
Südamike arv | 2 (kahetuumaline) |
Wi-Fi | 2.4 GHz kuni 150 Mbit/s |
Bluetooth | BLE (Bluetooth Low Energy) ja pärand Bluetooth |
Arhitektuur | 32 bitti |
Kella sagedus | Kuni 240 MHz |
RAM | 512 KB |
Pins | 30 (olenevalt mudelist) |
Välisseadmed | Mahtuvuslik puutetundlik, ADC (analoog-digitaalmuundur), DAC (digitaal-analoogmuundur), 12C (integreeritud vooluring), UART (universaalne asünkroonne vastuvõtja/saatja), CAN 2.0 (kontrolleripiirkonna võrguvõrk), SPI (jadaliides) , 12S (integreeritud inter-IC Heli), RMII (vähendatud meediast sõltumatu liides), PWM (impulsi laiuse modulatsioon) ja palju muud. |
Sisseehitatud nupud | RESET ja BOOT nupud |
Sisseehitatud LED-id | sisseehitatud sinine LED, mis on ühendatud GPIO2-ga; sisseehitatud punane LED, mis näitab, et tahvli toide on |
USB UART-i sild |
CP2102 |
Sellel on microUSB-liides, mida saate kasutada tahvli arvutiga ühendamiseks, et koodi üles laadida või toidet kasutada.
See kasutab CP2102 kiipi (USB kuni UART), et suhelda teie arvutiga COM-pordi kaudu jadaliidese abil. Teine populaarne kiip on CH340. Kontrollige, mis on teie tahvli USB-UART-kiibi muundur, sest peate installima vajalikud draiverid, et teie arvuti saaks plaadiga suhelda (selle kohta leiate lisateavet hiljem selles juhendis).
Selle plaadiga on kaasas ka RESET-nupp (võib olla tähisega EN) plaadi taaskäivitamiseks ja BOOT-nupp, mis lülitab plaadi vilkumisse (saadaval koodi vastuvõtmiseks). Pange tähele, et mõnel plaadil ei pruugi BOOT nuppu olla.
Sellel on ka sisseehitatud sinine LED, mis on sisemiselt ühendatud GPIO 2-ga. See LED on kasulik silumiseks, et anda mingi visuaalne füüsiline väljund. Seal on ka punane LED, mis süttib, kui toite tahvlile.ESP32 Pinout
ESP32 välisseadmete hulka kuuluvad:
- 18 Analog-to-Digital Converter (ADC) kanalit
- 3 SPI liidest
- 3 UART liidest
- 2 I2C liidest
- 16 PWM väljundkanalit
- 2 digitaal-analoogmuundurit (DAC)
- 2 I2S liidest
- 10 mahtuvusliku sensoriga GPIO-d
Funktsioonid ADC (analoog-digitaalmuundur) ja DAC (digitaal-analoogmuundur) on määratud kindlatele staatilistele kontaktidele. Siiski saate otsustada, millised kontaktid on UART, I2C, SPI, PWM jne – peate need lihtsalt koodis määrama. See on võimalik tänu ESP32 kiibi multipleksimisfunktsioonile.
Kuigi saate tarkvaras tihvtide omadusi määrata, on vaikimisi määratud viigud, nagu on näidatud järgmisel jooniselLisaks on spetsiaalsete funktsioonidega tihvtid, mis muudavad need konkreetse projekti jaoks sobivaks või mitte. Järgmises tabelis on näidatud, milliseid kontakte on kõige parem kasutada sisendite ja väljundina ning milliste kontaktidega peate olema ettevaatlik.
Roheliselt esile tõstetud tihvtid on kasutamiseks sobivad. Kollasega esiletõstetud mudelid on kasutamiseks sobivad, kuid peate olema tähelepanelik, kuna need võivad olla ootamatud peamiselt käivitamisel. Punasega esiletõstetud kontakte ei soovitata kasutada sisendite või väljundidena.
GP IO | Sisend | Väljund | Märkmed |
0 | üles tõmmatud | OK | väljastab alglaadimisel PWM-signaali, peab vilkumisrežiimi sisenemiseks olema LOW |
1 | TX pin | OK | silumisväljund alglaadimisel |
2 | OK | OK | ühendatud pardal oleva LED-iga, tuleb vilkumise režiimi sisenemiseks jätta vedelema või LOW |
3 | OK | RX pin | KÕRGE alglaadimisel |
4 | OK | OK | |
5 | OK | OK | väljastab PWM-signaali alglaadimisel, rihmatihvt |
12 | OK | OK | kõrgele tõmbamisel saabas ei tööta, rihmatihvt |
13 | OK | OK | |
14 | OK | OK | väljastab alglaadimisel PWM-signaali |
15 | OK | OK | väljastab PWM-signaali alglaadimisel, rihmatihvt |
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 | ainult sisend | |
35 | OK | ainult sisend | |
36 | OK | ainult sisend | |
39 | OK | ainult sisend |
Jätkake lugemist ESP32 GPIO-de ja selle funktsioonide üksikasjalikumaks ja põhjalikumaks analüüsiks.
Sisestage ainult tihvtid
GPIO-d 34 kuni 39 on GPI-d – ainult sisendviigud. Nendel tihvtidel ei ole sisemisi üles- ega allatõmbetakisteid. Neid ei saa kasutada väljunditena, seega kasutage neid kontakte ainult sisenditena:
- GPIO 34
- GPIO 35
- GPIO 36
- GPIO 39
ESP-WROOM-32-sse integreeritud SPI-välklamp
GPIO 6 kuni GPIO 11 on mõnedes ESP32 arendusplaatides avaldatud. Need tihvtid on aga ühendatud ESP-WROOM-32 kiibi integreeritud SPI-välklambiga ja neid ei soovitata kasutada muul viisil. Seega ärge kasutage oma projektides neid tihvte:
- GPIO 6 (SCK/CLK)
- GPIO 7 (SDO/SD0)
- GPIO 8 (SDI/SD1)
- GPIO 9 (SHD/SD2)
- GPIO 10 (SWP/SD3)
- GPIO 11 (CSC/CMD)
Mahtuvuslikud puutetundlikud GPIO-d
ESP32-l on 10 sisemist mahtuvuslikku puuteandurit. Need võivad tajuda muutusi kõiges, mis omab elektrilaengut, näiteks inimese nahas. Nii saavad nad tuvastada GPIO-de sõrmega puudutamisel tekkivaid variatsioone. Neid tihvte saab hõlpsasti integreerida mahtuvuslikesse padjadesse ja asendada mehaanilisi nuppe. Mahtuvuslikke puutetihvte saab kasutada ka ESP32 sügavast unest äratamiseks. Need sisemised puuteandurid on ühendatud järgmiste GPIO-dega:
- 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)
Analoog-digitaalmuundur (ADC)
ESP32-l on 18 x 12-bitised ADC-sisendkanalid (ESP8266-l on aga ainult 1x10-bitine ADC). Need on GPIO-d, mida saab kasutada ADC ja vastavate kanalitena:
- 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)
Märkus. ADC2 kontakte ei saa kasutada, kui kasutatakse Wi-Fi. Seega, kui kasutate WiFi-t ja teil on probleeme ADC2 GPIO-st väärtuse hankimisega, võite selle asemel kaaluda ADC1 GPIO kasutamist. See peaks teie probleemi lahendama.
ADC sisendkanalitel on 12-bitine eraldusvõime. See tähendab, et saate analoognäidud vahemikus 0 kuni 4095, milles 0 vastab 0 V ja 4095 kuni 3.3 V. Samuti saate määrata oma kanalite eraldusvõime koodi ja ADC vahemikus.
ESP32 ADC kontaktid ei käitu lineaarselt. Tõenäoliselt ei suuda te vahet teha 0 ja 0.1 V või 3.2 ja 3.3 V vahel. Peate seda ADC tihvtide kasutamisel meeles pidama. Saate käituda, mis sarnaneb järgmisel joonisel kujutatule.Digitaal-analoogmuundur (DAC)
ESP2-l on 8 x 32-bitised DAC-kanalid digitaalsete signaalide teisendamiseks analoogvoldikstage signaali väljundid. Need on DAC-kanalid:
- DAC1 (GPIO25)
- DAC2 (GPIO26)
RTC GPIO-d
ESP32-l on RTC GPIO tugi. RTC vähese energiatarbega alamsüsteemi suunatavaid GPIO-sid saab kasutada siis, kui ESP32 on sügavas unes. Neid RTC GPIO-sid saab kasutada ESP32 sügavast unest äratamiseks, kui see on ülimadal
Toite (ULP) kaasprotsessor töötab. Järgmisi GPIO-sid saab kasutada välise äratusallikana.
- RTC_GPIO0 (GPIO36)
- RTC_GPIO3 (GPIO39)
- RTC_GPIO4 (GPIO34)
- RTC_GPIO5 (GPIO35)
- RTC_GPIO6 (GPIO25)
- RTC_GPIO7 (GPIO26)
- RTC_GPIO8 (GPIO33)
- RTC_GPIO9 (GPIO32)
- RTC_GPIO10 (GPIO4)
- RTC_GPIO11 (GPIO0)
- RTC_GPIO12 (GPIO2)
- RTC_GPIO13 (GPIO15)
- RTC_GPIO14 (GPIO13)
- RTC_GPIO15 (GPIO12)
- RTC_GPIO16 (GPIO14)
- RTC_GPIO17 (GPIO27)
PWM
ESP32 LED PWM-kontrolleril on 16 sõltumatut kanalit, mida saab konfigureerida genereerima erinevate omadustega PWM-signaale. Kõiki kontakte, mis võivad toimida väljundina, saab kasutada PWM-viikudena (GPIO-d 34–39 ei saa PWM-i genereerida).
PWM-signaali seadistamiseks peate koodis määratlema järgmised parameetrid:
- signaali sagedus;
- Töötsükkel;
- PWM kanal;
- GPIO, kuhu soovite signaali väljastada.
I2C
ESP32-l on kaks I2C kanalit ja iga viigu saab määrata SDA- või SCL-i. ESP32 kasutamisel koos Arduino IDE-ga on vaikimisi I2C tihvtid:
- GPIO 21 (SDA)
- GPIO 22 (SCL)
Kui soovite traatteegi kasutamisel kasutada muid kontakte, peate lihtsalt helistama:
Wire.begin(SDA, SCL);
SPI
Vaikimisi on SPI tihvtide vastendamine järgmine:
SPI | MOSI | MISO | CLK | CS |
VSPI | GPIO 23 | GPIO 19 | GPIO 18 | GPIO 5 |
HSPI | GPIO 13 | GPIO 12 | GPIO 14 | GPIO 15 |
Katkestab
Kõiki GPIO-sid saab konfigureerida katkestusteks.
Kinnitusnõelad
ESP32 kiibil on järgmised kinnitustihvtid:
- GPIO 0 (käivitusrežiimi sisenemiseks peab olema LOW)
- GPIO 2 (peab alglaadimise ajal olema ujuv või madal)
- GPIO 4
- GPIO 5 (peab alglaadimise ajal olema HIGH)
- GPIO 12 (peab alglaadimise ajal olema LOW)
- GPIO 15 (peab alglaadimise ajal olema HIGH)
Neid kasutatakse ESP32 alglaaduri või vilkumise režiimi panemiseks. Enamiku sisseehitatud USB/jada-USB-ga arendusplaatide puhul ei pea te nende kontaktide oleku pärast muretsema. Tahvel seab tihvtid vilkumise või alglaadimisrežiimi jaoks õigesse olekusse. Lisateavet ESP32 alglaadimisrežiimi valiku kohta leiate siit.
Kui teil on aga nende tihvtidega ühendatud välisseadmed, võib teil tekkida probleeme uue koodi üleslaadimisega, ESP32 uue püsivara vilkumisega või plaadi lähtestamisega. Kui teil on rihmatihvtidega ühendatud välisseadmed ja teil on probleeme koodi üleslaadimisega või ESP32 vilkumisega, võib põhjuseks olla see, et need välisseadmed takistavad ESP32 õigesse režiimi sisenemast. Lugege alglaadimisrežiimi valiku dokumentatsiooni, et teid õiges suunas juhtida. Pärast lähtestamist, vilkumist või käivitamist töötavad need kontaktid ootuspäraselt.
Pins HIGH at Boot
Mõned GPIO-d muudavad alglaadimisel või lähtestamisel oma oleku HIGH-le või väljastavad PWM-signaale.
See tähendab, et kui teil on nende GPIO-dega ühendatud väljundid, võite ESP32 lähtestamisel või algkäivitamisel saada ootamatuid tulemusi.
- GPIO 1
- GPIO 3
- GPIO 5
- GPIO 6 kuni GPIO 11 (ühendatud ESP32 integreeritud SPI-välkmäluga – pole soovitatav kasutada).
- GPIO 14
- GPIO 15
Luba (EN)
Luba (EN) on 3.3 V regulaatori lubamispistik. See on üles tõmmatud, nii et ühendage 3.3 V regulaatori keelamiseks maandusega. See tähendab, et saate kasutada seda surunupuga ühendatud tihvti ESP32 taaskäivitamiseks, ntample.
GPIO vool võetud
ESP40 andmelehe jaotise „Soovitatavad töötingimused” kohaselt on GPIO absoluutne maksimaalne vool 32 mA.
ESP32 sisseehitatud Halli efekti andur
ESP32-l on ka sisseehitatud saaliefekti andur, mis tuvastab muutusi ümbritsevas magnetväljas
ESP32 Arduino IDE
Arduino IDE jaoks on lisandmoodul, mis võimaldab teil programmeerida ESP32, kasutades Arduino IDE-d ja selle programmeerimiskeelt. Selles õpetuses näitame teile, kuidas installida ESP32 plaat Arduino IDE-sse olenemata sellest, kas kasutate Windowsi, Mac OS X-i või Linuxi.
Eeltingimused: Arduino IDE installitud
Enne selle installiprotseduuri alustamist peab teil olema arvutisse installitud Arduino IDE. Arduino IDE-st saate installida kaks versiooni: versioon 1 ja versioon 2.
Arduino IDE saate alla laadida ja installida, klõpsates järgmisel lingil: arduino.cc/en/Main/Software
Millist Arduino IDE versiooni soovitame? Hetkel on selliseid plugins ESP32 jaoks (nagu SPIFFS FileSystem Uploader Plugin), mida Arduino 2 veel ei toeta. Seega, kui kavatsete tulevikus SPIFFS-i pistikprogrammi kasutada, soovitame installida pärandversiooni 1.8.X. Selle leidmiseks peate lihtsalt Arduino tarkvara lehel allapoole kerima.
ESP32 lisandmooduli installimine Arduino IDE-sse
ESP32 plaadi installimiseks oma Arduino IDE-sse järgige järgmisi juhiseid.
- Minge oma Arduino IDE-s aadressile File> Eelistused
- Sisestage jaotisesse „Täiendav juhatuse juht URLs” väli:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Seejärel klõpsake nuppu "OK":Märkus. kui teil on ESP8266 tahvlid juba olemas URL, saate eraldada URLs komaga järgmiselt:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Avage tahvlite haldur. Avage Tööriistad > Juhatus > Tahvlite haldur…Otsi ESP32 and press install button for the “ESP32 by Espressif Systems“:
See on kõik. See tuleks installida mõne sekundi pärast.
Laadige üles testikood
Ühendage ESP32 plaat arvutiga. Kui teie Arduino IDE on avatud, toimige järgmiselt.
- Valige menüüst Tööriistad > Tahvel oma tahvel (minu puhul on see ESP32 DEV moodul)
- Valige port (kui te oma Arduino IDE-s COM-porti ei näe, peate installima CP210x USB UART Bridge VCP draiveritesse):
- Avage järgmine example all File > Ntamples > WiFi
(ESP32) > WiFiScan - Teie Arduino IDE-s avaneb uus visand:
- Vajutage Arduino IDE-s nuppu Laadi üles. Oodake mõni sekund, kuni kood kompileeritakse ja teie tahvlile üles laaditakse.
- Kui kõik läks ootuspäraselt, peaksite nägema teadet „Üleslaadimine on lõpetatud”. sõnum.
- Avage Arduino IDE jadamonitor edastuskiirusega 115200:
- Vajutage ESP32 sisseehitatud nuppu Luba ja peaksite nägema ESP32 läheduses saadaolevaid võrke:
Veaotsing
Kui proovite oma ESP32-sse uut visandit üles laadida ja kuvatakse tõrketeade "Ilmnes saatuslik tõrge: ESP32-ga ühenduse loomine ebaõnnestus: Aeg lõppes... Ühendamine...". See tähendab, et teie ESP32 ei ole vilkumise/üleslaadimise režiimis.
Kui olete valinud õige plaadi nime ja COM-i, toimige järgmiselt.
Hoidke ESP32 plaadil all nuppu "BOOT".
- Visandi üleslaadimiseks vajutage Arduino IDE-s nuppu Laadi üles:
- Kui näete teadet „Ühendamine…”. Sõnum oma Arduino IDE-s vabastage sõrm nupult „BOOT”:
- Pärast seda peaksite nägema teadet "Üleslaadimine on lõpetatud".
See on kõik. Teie ESP32 uus eskiis peaks töötama. ESP32 taaskäivitamiseks ja uue üleslaaditud visandi käivitamiseks vajutage nuppu "LUBA".
Samuti peate seda nuppude järjestust kordama iga kord, kui soovite uue visandi üles laadida.
Projekt 1 ESP32 sisendid Väljundid
Sellest alustamise juhendist saate teada, kuidas lugeda digitaalseid sisendeid (nt nupplülitit) ja juhtida digitaalseid väljundeid (nt LED), kasutades ESP32 koos Arduino IDE-ga.
Eeldused
Programmeerime ESP32 Arduino IDE abil. Seega veenduge, et ESP32 plaatide lisandmoodul oleks enne jätkamist installitud:
- ESP32 lisandmooduli installimine Arduino IDE-sse
ESP32 digitaalväljundite juhtimine
Esiteks peate määrama GPIO, mida soovite VÄLJUNDINA juhtida. Kasutage funktsiooni pinMode() järgmiselt:
pinMode(GPIO, OUTPUT);
Digitaalse väljundi juhtimiseks peate lihtsalt kasutama funktsiooni digitalWrite(), mis aktsepteerib argumentidena, GPIO-d (int number), millele viitate, ja olekut, kas HIGH või LOW.
digitalWrite (GPIO, OLEK);
Väljunditena saab kasutada kõiki GPIO-sid, välja arvatud GPIOd 6 kuni 11 (ühendatud integreeritud SPI-välklambiga) ja GPIOd 34, 35, 36 ja 39 (ainult sisend GPIO-d);
Lisateavet ESP32 GPIO-de kohta: ESP32 GPIO teatmik
ESP32 digitaalsete sisendite lugemiseks
Esmalt määrake GPIO, mida soovite lugeda, väärtuseks INPUT, kasutades funktsiooni pinMode() järgmiselt:
pinMode (GPIO, INPUT);
Digitaalse sisendi, nagu nupu, lugemiseks kasutate funktsiooni digitalRead(), mis aktsepteerib argumendina GPIO-d (int number), millele viitate.
digitaalne lugemine (GPIO);
Kõiki ESP32 GPIO-sid saab kasutada sisenditena, välja arvatud GPIOd 6 kuni 11 (ühendatud integreeritud SPI-välklambiga).
Lisateavet ESP32 GPIO-de kohta: ESP32 GPIO teatmik
Projekt Example
Et näidata teile, kuidas kasutada digitaalseid sisendeid ja digitaalseid väljundeid, koostame lihtsa projekti, ntample surunupu ja LED-iga. Loeme surunupu olekut ja süttib LED vastavalt järgmisel joonisel näidatud viisil.
Vajalikud osad
Siin on nimekiri osadest, mida vooluringi ehitamiseks vajate:
- ESP32 DEVKIT V1
- 5 mm LED
- 220 oomi takisti
- Vajuta nuppu
- 10k oomi takisti
- Leivalaud
- Jumper juhtmed
Skemaatiline diagramm
Enne jätkamist peate kokku panema LED-i ja surunupuga vooluringi.
Ühendame LED-i GPIO 5-ga ja surunupu GPIO-ga 4.Kood
Avage arduino IDE-s kood Project_1_ESP32_Inputs_Outputs.inoKuidas kood töötab
Järgmisel kahel real loote tihvtide määramiseks muutujad:
Nupp on ühendatud GPIO 4-ga ja LED on ühendatud GPIO 5-ga. Kui kasutate Arduino IDE-d koos ESP32-ga, siis 4 vastab GPIO 4-le ja 5 vastab GPIO 5-le.
Järgmisena loote muutuja nupu oleku hoidmiseks. Vaikimisi on see 0 (pole vajutatud).
int buttonState = 0;
Funktsioonis Setup () lähtestate nupu SISSENNA ja LED-i VÄLJUNDina.
Selleks kasutate funktsiooni pinMode(), mis aktsepteerib viidatud tihvti ja režiimi: INPUT või OUTPUT.
pinMode(nuppPin, INPUT);
pinMode(ledPin, OUTPUT);
In the loop() on koht, kus saate lugeda nupu olekut ja seadistada LED-i vastavalt.
Järgmisel real loete nupu olekut ja salvestate selle muutujasse buttonState.
Nagu varem nägime, kasutate funktsiooni digitalRead().
nupuOlek = digitaalneRead(nupunõel);
Järgmine if-lause kontrollib, kas nupu olek on HIGH. Kui see on nii, lülitab see LED-i sisse, kasutades funktsiooni digitalWrite(), mis aktsepteerib argumendina ledPin-i ja olekut HIGH.
if (buttonState == HIGH)Kui nupu olek ei ole HIGH, lülitate LED-i välja. Lihtsalt määrake funktsioonis digitalWrite() teiseks argumendiks LOW.
Koodi üleslaadimine
Enne üleslaadimisnupul klõpsamist avage Tööriistad > Tahvel ja valige tahvel :DOIT ESP32 DEVKIT V1.
Avage Tööriistad > Port ja valige COM-port, millega ESP32 on ühendatud. Seejärel vajutage üleslaadimisnuppu ja oodake teadet „Laadimine on lõpetatud”.Märkus. Kui näete silumisaknas palju punkte (ühendatakse…__…__) ja teadet „ESP32-ga ühenduse loomine ebaõnnestus: paketi päise ootel on aegunud”, tähendab see, et peate vajutama ESP32 pardal olevat BOOT. nuppu pärast täppe
hakkab ilmuma.Veaotsing
Demonstratsioon
Pärast koodi üleslaadimist testige oma vooluringi. Teie LED peaks süttima, kui vajutate nuppu:Ja lülitage see välja, kui selle vabastate:
Projekt 2 ESP32 analoogsisendid
See projekt näitab, kuidas lugeda analoogsisendeid ESP32-ga, kasutades Arduino IDE-d.
Analooglugemine on kasulik muutuvate takistite, näiteks potentsiomeetrite või analoogandurite väärtuste lugemiseks.
Analoogsisendid (ADC)
Analoogväärtuse lugemine ESP32 abil tähendab, et saate mõõta erinevat mahtutage tasemed vahemikus 0 V kuni 3.3 V.
VoltagMõõdetud väärtus määratakse seejärel väärtusele vahemikus 0 kuni 4095, milles 0 V vastab 0-le ja 3.3 V vastab 4095-le.tage vahemikus 0 V kuni 3.3 V antakse vastav väärtus vahepeal.ADC on mittelineaarne
Ideaalis eeldaksite ESP32 ADC tihvtide kasutamisel lineaarset käitumist.
Seda aga ei juhtu. Saate sellise käitumise, nagu on näidatud järgmises tabelis:Selline käitumine tähendab, et teie ESP32 ei suuda eristada 3.3 V pinget 3.2 V pingest.
Saate mõlema mahu puhul sama väärtusetages: 4095.
Sama juhtub väga madala mahugatage väärtused: 0 V ja 0.1 V korral saate sama väärtuse: 0. Peate seda ESP32 ADC kontaktide kasutamisel meeles pidama.
AnalogRead() Funktsioon
Analoogsisendi lugemine ESP32-ga Arduino IDE abil on sama lihtne kui funktsiooni analoogRead () kasutamine. See aktsepteerib argumendina GPIO-d, mida soovite lugeda:
analoogRead (GPIO);
Ainult 15 on saadaval DEVKIT V1-plaadil (30 GPIO-ga versioon).
Haarake oma ESP32 plaadi pistikupesa ja leidke ADC tihvtid. Need on alloleval joonisel punase äärisega esile tõstetud.Nendel analoogsisendi kontaktidel on 12-bitine eraldusvõime. See tähendab, et analoogsisendi lugemisel võib selle vahemik varieeruda vahemikus 0 kuni 4095.
Märkus. ADC2 kontakte ei saa kasutada, kui kasutatakse Wi-Fi-ühendust. Seega, kui kasutate WiFi-ühendust ja teil on probleeme ADC2 GPIO-st väärtuse hankimisega, võite kaaluda selle asemel ADC1 GPIO kasutamist, mis peaks teie probleemi lahendama.
Et näha, kuidas kõik omavahel seostub, teeme lihtsa eksample analoogväärtuse lugemiseks potentsiomeetrilt.
Vajalikud osad
Selle eksample, vajate järgmisi osi:
- ESP32 DEVKIT V1 juhatus
- Potentsiomeeter
- Leivalaud
- Jumper juhtmed
Skemaatiline
Ühendage potentsiomeeter oma ESP32-ga. Potentsiomeetri keskmine tihvt tuleks ühendada GPIO 4-ga. Viitena saate kasutada järgmist skeemi.Kood
Programmeerime ESP32, kasutades Arduino IDE-d, nii et enne jätkamist veenduge, et teil oleks ESP32 lisandmoodul installitud: (Kui olete selle sammu juba teinud, võite järgmise sammu juurde liikuda.)
ESP32 lisandmooduli installimine Arduino IDE-sse
Avage arduino IDE-s kood Project_2_ESP32_Inputs_Outputs.inoSee kood lihtsalt loeb väärtused potentsiomeetrilt ja prindib need väärtused jadamonitorisse.
Koodis alustate GPIO määratlemisest, millega potentsiomeeter on ühendatud. Selles eksample, GPIO 4.Funktsioonis setup() initsialiseerige jadaühendus edastuskiirusega 115200.
Loop() puhul kasutage analoogsisendi lugemiseks potPinist funktsiooni analogRead().
Lõpuks printige jadamonitori potentsiomeetrilt loetud väärtused.
Laadige saadud kood üles oma ESP32-le. Veenduge, et menüüs Tööriistad oleks valitud õige plaat ja COM-port.
Eksperimendi testimineample
Pärast koodi üleslaadimist ja ESP32 lähtestamisnupu vajutamist avage Serial Monitor boodikiirusel 115200. Pöörake potentsiomeetrit ja vaadake väärtuste muutumist.Maksimaalne saadav väärtus on 4095 ja minimaalne väärtus on 0.
Pakkimine
Sellest artiklist õppisite, kuidas lugeda analoogsisendeid, kasutades ESP32 koos Arduino IDE-ga. Kokkuvõttes:
- ESP32 DEVKIT V1 DOIT plaadil (30 viiguga versioon) on 15 ADC viiku, mida saate kasutada analoogsisendite lugemiseks.
- Nende kontaktide eraldusvõime on 12 bitti, mis tähendab, et saate väärtusi vahemikus 0 kuni 4095.
- Arduino IDE väärtuse lugemiseks kasutage lihtsalt funktsiooni analogRead ().
- ESP32 ADC kontaktid ei käitu lineaarselt. Tõenäoliselt ei suuda te vahet teha 0 ja 0.1 V või 3.2 ja 3.3 V vahel. Peate seda ADC tihvtide kasutamisel meeles pidama.
Project 3 ESP32 PWM (analoogväljund)
Selles õpetuses näitame teile, kuidas luua PWM-signaale ESP32-ga, kasutades Arduino IDE-d. Nagu endineampEhitame ESP32 LED PWM kontrolleri abil lihtsa vooluringi, mis hämardab LED-i.ESP32 LED PWM kontroller
ESP32-l on 16 sõltumatu kanaliga LED PWM-kontroller, mida saab konfigureerida genereerima erinevate omadustega PWM-signaale.
LED-i hämardamiseks PWM-iga Arduino IDE abil peate järgima järgmisi samme:
- Esiteks peate valima PWM-kanali. Seal on 16 kanalit vahemikus 0 kuni 15.
- Seejärel peate määrama PWM-signaali sageduse. LED-i jaoks on 5000 Hz sagedus hea kasutada.
- Samuti peate määrama signaali töötsükli eraldusvõime: teil on eraldusvõime vahemikus 1 kuni 16 bitti. Kasutame 8-bitist eraldusvõimet, mis tähendab, et saate LED-i heledust juhtida väärtusega 0 kuni 255.
- Järgmisena peate määrama, millistele GPIO-dele või GPIO-dele signaal kuvatakse. Selleks kasutate järgmist funktsiooni:
ledcAttachPin (GPIO, kanal)
See funktsioon aktsepteerib kahte argumenti. Esimene on GPIO, mis signaali väljastab, ja teine kanal, mis signaali genereerib. - Lõpuks kasutage LED-i heleduse juhtimiseks PWM-i abil järgmist funktsiooni:
ledcWrite(kanal, töötsükkel)
See funktsioon aktsepteerib argumentidena PWM-signaali genereerivat kanalit ja töötsüklit.
Vajalikud osad
Selle õpetuse järgimiseks vajate järgmisi osi:
- ESP32 DEVKIT V1 juhatus
- 5mm LED
- 220 oomi takisti
- Leivalaud
- Jumper juhtmed
Skemaatiline
Ühendage LED oma ESP32-ga, nagu on näidatud järgmisel skemaatilisel diagrammil. LED peaks olema ühendatud GPIO-ga 4.Märkus. võite kasutada mis tahes soovitud tihvti, kui see võib toimida väljundina. Kõiki kontakte, mis võivad toimida väljundina, saab kasutada PWM-viikudena. Lisateabe saamiseks ESP32 GPIO-de kohta lugege: ESP32 pinouti viide: milliseid GPIO-tihvte peaksite kasutama?
Kood
Programmeerime ESP32, kasutades Arduino IDE-d, nii et enne jätkamist veenduge, et teil oleks ESP32 lisandmoodul installitud: (Kui olete selle sammu juba teinud, võite järgmise sammu juurde liikuda.)
ESP32 lisandmooduli installimine Arduino IDE-sse
Avage arduino IDE-s kood Project_3_ESP32_PWM.inoAlustuseks määrate tihvti, mille külge LED on kinnitatud. Sel juhul on LED ühendatud GPIO 4 külge.
Seejärel määrate PWM-signaali omadused. Määrate sageduseks 5000 Hz, valite signaali genereerimiseks kanali 0 ja määrate eraldusvõime 8 bitti. Erinevate PWM-signaalide genereerimiseks saate valida nendest erinevaid omadusi.
Funktsioonis setup () peate konfigureerima LED PWM-i atribuutidega, mille olete varem määratlenud, kasutades funktsiooni ledcSetup (), mis aktsepteerib argumentidena ledChanneli, sagedust ja eraldusvõimet järgmiselt:
Järgmisena peate valima GPIO, millelt signaali saate. Selleks kasutage funktsiooni ledcAttachPin(), mis aktsepteerib argumentidena GPIO-d, kust soovite signaali saada, ja signaali genereeriva kanali. Selles eksample, saame signaali ledPin GPIO-sse, mis vastab GPIO 4-le. Kanal, mis genereerib signaali, on ledChannel, mis vastab kanalile 0.
Silmuses muudate LED-i heleduse suurendamiseks töötsüklit vahemikus 0 kuni 255.
Ja seejärel heleduse vähendamiseks vahemikus 255 kuni 0.
LED-i heleduse määramiseks peate lihtsalt kasutama funktsiooni ledcWrite(), mis aktsepteerib argumentidena signaali genereerivat kanalit ja töötsüklit.
Kuna me kasutame 8-bitist eraldusvõimet, juhitakse töötsüklit väärtusega 0 kuni 255. Pange tähele, et funktsiooni ledcWrite() puhul kasutame signaali genereerivat kanalit, mitte GPIO-d.
Eksperimendi testimineample
Laadige kood üles oma ESP32-sse. Veenduge, et valitud oleks õige plaat ja COM-port. Vaata oma vooluringi. Teil peaks olema dimmer LED, mis suurendab ja vähendab heledust.
Projekt 4 ESP32 PIR liikumisandur
See projekt näitab, kuidas PIR-liikumisanduri abil ESP32-ga liikumist tuvastada. Liikumise tuvastamisel annab helisignaal helisignaali ja peatab häire, kui eelseadistatud aja (nt 4 sekundi) jooksul liikumist ei tuvastata.
Kuidas HC-SR501 liikumisandur töötab
.Anduri HC-SR501 tööpõhimõte põhineb infrapunakiirguse muutumisel liikuval objektil. Et HC-SR501 sensor tuvastaks, peab objekt vastama kahele nõudele:
- Objekt kiirgab infrapunakiirgust.
- Objekt liigub või väriseb
Niisiis:
Kui objekt kiirgab infrapunakiirt, kuid EI liigu (nt inimene seisab liikumatult paigal), EI tuvasta andur seda.
Kui objekt liigub, kuid EI kiirga infrapunakiirt (nt robot või sõiduk), EI tuvasta andur seda.
Tutvustame taimereid
Selles eksamptutvustame ka taimereid. Soovime, et LED jääks pärast liikumise tuvastamist põlema etteantud arvu sekunditeks. Selle asemel, et kasutada funktsiooni delay(), mis blokeerib teie koodi ja ei luba teil teatud arvu sekundite jooksul midagi muud teha, peaksime kasutama taimerit.Funktsioon delay()
Peaksite olema tuttav funktsiooni delay()-ga, kuna seda kasutatakse laialdaselt. Seda funktsiooni on üsna lihtne kasutada. See aktsepteerib argumendina ühte sisendarvu.
See arv tähistab aega millisekundites, mille programm peab ootama, kuni järgmise koodireale liikumiseni.Kui teete viivituse (1000), peatub programm sellel real 1 sekundiks.
delay() on blokeerimisfunktsioon. Blokeerimisfunktsioonid takistavad programmil midagi muud tegemast, kuni see konkreetne ülesanne on lõpetatud. Kui teil on vaja korraga mitut ülesannet, ei saa te funktsiooni delay() kasutada.
Enamiku projektide puhul peaksite vältima viivituste kasutamist ja kasutama selle asemel taimereid.
Funktsioon millis().
Funktsiooni millis() abil saate tagastada millisekundite arvu, mis on möödunud programmi esmakordsest käivitamisest.Miks see funktsioon kasulik on? Kuna matemaatikat kasutades saate hõlpsalt kontrollida, kui palju aega on möödunud ilma koodi blokeerimata.
Vajalikud osad
Selle õpetuse järgimiseks vajate järgmisi osi
- ESP32 DEVKIT V1 juhatus
- PIR liikumisandur (HC-SR501)
- Aktiivne summer
- Jumper juhtmed
- Leivalaud
SkemaatilineMärkus. TöövoldtagHC-SR501 e on 5 V. Kasutage selle toiteks Vin-tihvti.
Kood
Enne selle õpetuse jätkamist peaks teie Arduino IDE-sse installima ESP32 lisandmooduli. ESP32 installimiseks Arduino IDE-sse järgige ühte järgmistest õpetustest, kui te pole seda juba teinud. (Kui olete selle sammu juba teinud, võite järgmise sammu juurde liikuda.)
ESP32 lisandmooduli installimine Arduino IDE-sse
Avage arduino IDE-s kood Project_4_ESP32_PIR_Motion_Sensor.ino.
Demonstratsioon
Laadige kood üles oma ESP32 plaadile. Veenduge, et valitud oleks õige plaat ja COM-port. Laadige üles koodi viitejuhised.
Avage Serial Monitor andmeedastuskiirusega 115200.Liigutage oma käsi PIR-anduri ette. Sumisti peaks sisse lülituma ja jadamonitorisse prinditakse teade „Motion detected!Buzzer alarm”.
4 sekundi pärast peaks helisignaal välja lülituma.
Projekt 5 ESP32 lüliti Web Server
Selles projektis loote eraldiseisva web server ESP32-ga, mis juhib väljundeid (kaks LED-i), kasutades Arduino IDE programmeerimiskeskkonda. The web server on mobiilne ja sellele pääseb juurde mis tahes seadmega, mis on kohaliku võrgu brauser. Näitame teile, kuidas luua web server ja kuidas kood toimib samm-sammult.
Projekt läbiview
Enne otse projekti juurde asumist on oluline visandada, mida meie web server teeb seda, et oleks hiljem lihtsam neid samme järgida.
- The web ehitatav server juhib kahte LED-i, mis on ühendatud ESP32 GPIO 26 ja GPIO 27-ga;
- Saate juurdepääsu ESP32-le web server, tippides kohaliku võrgu brauseris ESP32 IP-aadressi;
- Klõpsates nuppe oma web serveris saate koheselt muuta iga LED-i olekut.
Vajalikud osad
Selle õpetuse jaoks vajate järgmisi osi:
- ESP32 DEVKIT V1 juhatus
- 2x 5mm LED
- 2x 200 oomi takisti
- Leivalaud
- Jumper juhtmed
Skemaatiline
Alusta vooluringi ehitamisest. Ühendage kaks LED-i ESP32-ga, nagu on näidatud järgmisel skemaatilisel diagrammil – üks LED on ühendatud GPIO 26-ga ja teine GPIO 27-ga.
Märkus. Kasutame ESP32 DEVKIT DOIT plaati, millel on 36 kontakti. Enne vooluringi kokkupanemist kontrollige kindlasti kasutatava plaadi pistikupesa.Kood
Siin pakume koodi, mis loob ESP32 web server. Avage kood Project_5_ESP32_Switch _Web_Server.ino arduino IDE-s, kuid ärge seda veel üles laadige. Peate tegema mõned muudatused, et see teie jaoks toimiks.
Programmeerime ESP32, kasutades Arduino IDE-d, nii et enne jätkamist veenduge, et teil oleks ESP32 lisandmoodul installitud: (Kui olete selle sammu juba teinud, võite järgmise sammu juurde liikuda.)
ESP32 lisandmooduli installimine Arduino IDE-sse
Võrgumandaatide seadistamine
Peate oma võrgumandaatidega muutma järgmisi ridu: SSID ja parool. Kood on hästi kommenteeritud selle kohta, kus peaksite muudatusi tegema.Koodi üleslaadimine
Nüüd saate üles laadida koodi ja ja web server hakkab kohe tööle.
Koodi ESP32 üleslaadimiseks järgige järgmisi samme.
- Ühendage ESP32 plaat arvutiga;
- Arduino IDE-s valige oma tahvel menüüst Tööriistad > Tahvel (meie puhul kasutame ESP32 DEVKIT DOIT plaati);
- Valige COM-port menüüs Tööriistad > Port.
- Vajutage Arduino IDE-s nuppu Laadi üles ja oodake mõni sekund, kuni kood kompileerib ja teie tahvlile üles laadib.
- Oodake teadet „Üleslaadimine on lõpetatud”.
ESP IP-aadressi leidmine
Pärast koodi üleslaadimist avage Serial Monitor boodikiirusega 115200.Vajutage ESP32 EN nuppu (lähtestamine). ESP32 ühendub Wi-Fi-ga ja väljastab ESP IP-aadressi jadamonitorile. Kopeerige see IP-aadress, kuna vajate seda ESP32-le juurdepääsuks web server.
Juurdepääs Web Server
Et pääseda juurde web server, avage brauser, kleepige ESP32 IP-aadress ja näete järgmist lehte.
Märkus. Teie brauser ja ESP32 peaksid olema ühendatud sama LAN-iga.Kui vaatate Serial Monitori, näete, mis taustal toimub. ESP saab HTTP-päringu uuelt kliendilt (antud juhul teie brauserilt).
Näete ka muud teavet HTTP-päringu kohta.
Demonstratsioon
Nüüd saate testida, kas teie web server töötab korralikult. LED-ide juhtimiseks klõpsake nuppudel.Samal ajal saate vaadata Serial Monitori, et näha, mis taustal toimub. NäiteksampKui klõpsate nuppu GPIO 26 SISSE lülitamiseks, saab ESP32 /26/on päringu URL.
Kui ESP32 selle taotluse saab, lülitab see GPIO 26-ga ühendatud LED-i sisse ja värskendab oma olekut web lehel.
GPIO 27 nupp töötab sarnaselt. Testige, kas see töötab korralikult.
Kuidas kood töötab
Selles jaotises vaatleme koodi lähemalt, et näha, kuidas see töötab.
Esimene asi, mida peate tegema, on WiFi raamatukogu lisamine.Nagu varem mainitud, peate sisestama oma ssid-i ja parooli järgmistele ridadele jutumärkide sisse.
Seejärel määrate oma web serverist porti 80.
Järgmine rida loob muutuja HTTP-päringu päise salvestamiseks:
Järgmisena loote oma väljundite hetkeoleku salvestamiseks abimuutujad. Kui soovite lisada rohkem väljundeid ja salvestada selle olekut, peate looma rohkem muutujaid.
Samuti peate igale väljundile määrama GPIO. Siin kasutame GPIO 26 ja GPIO 27. Võite kasutada mis tahes muid sobivaid GPIO-sid.
setup()
Liigume nüüd seadistusse (). Esiteks alustame silumise eesmärgil jadasidet edastuskiirusega 115200.Samuti määratlete oma GPIO-d VÄLJUNDITENA ja määrate nende väärtuseks LOW.
Järgmised read alustavad Wi-Fi-ühendust funktsiooniga WiFi.begin(ssid, parool), oodake edukat ühendust ja printige Serial Monitoris ESP IP-aadress.
loop ()
Loop()-s programmeerime, mis juhtub, kui uus klient loob ühenduse rakendusega web server.
ESP32 kuulab alati sissetulevaid kliente järgmise reaga:Kui kliendilt päring saabub, salvestame sissetulevad andmed. Järgnev while-tsükkel töötab seni, kuni klient püsib ühenduses. Me ei soovita koodi järgmist osa muuta, kui te ei tea täpselt, mida teete.
Järgmine if- ja else-lausete jaotis kontrollib, millist nuppu teie rakenduses vajutati web lehele ja juhib väljundeid vastavalt. Nagu oleme varem näinud, esitame taotluse erinevatel teemadel URLs olenevalt vajutatud nupust.
NäiteksampKui olete vajutanud nuppu GPIO 26 ON, saab ESP32 päringu /26/ON URL (näeme, et see teave on Serial Monitori HTTP-päises). Seega saame kontrollida, kas päis sisaldab väljendit GET /26/on. Kui see sisaldab, muudame muutuja output26state väärtuseks ON ja ESP32 lülitab LED-i sisse.
See toimib samamoodi ka teiste nuppude puhul. Seega, kui soovite lisada rohkem väljundeid, peaksite muutma seda koodi osa, et need kaasata.
HTML-i kuvamine web lehel
Järgmine asi, mida peate tegema, on luua web lehel. ESP32 saadab teie brauserile vastuse koos HTML-koodiga, et luua web lehel.
The web leht saadetakse kliendile, kasutades seda väljendit client.println(). Argumendina peaksite sisestama selle, mida soovite kliendile saata.
Esimene asi, mida peaksime saatma, on alati järgmine rida, mis näitab, et saadame HTML-i.Seejärel teeb järgmine rida web leht tundlik mis tahes web brauser.
Ja järgmist kasutatakse faviconi päringute vältimiseks. – Te ei pea selle liini pärast muretsema.
Stiili kujundamine Web Lehekülg
Järgmisena on meil CSS-teksti nuppude ja stiili kujundamiseks web lehe välimus.
Valime Helvetica fondi, määratleme plokina kuvatava sisu ja joondame selle keskele.Stiilime oma nupud värviga #4CAF50, ilma ääristeta, valge tekstiga ja sellise polsterdusega: 16px 40px. Samuti määrasime tekstidekoratsiooni väärtuseks None, määrame fondi suuruse, veerise ja kursori kursorile.
Samuti määratleme teise nupu stiili koos kõigi varem määratletud nupu omadustega, kuid erineva värviga. See on väljalülitusnupu stiil.
Seadistades Web Lehekülje esimene pealkiri
Järgmisel real saate määrata oma esimese pealkirja web lehel. Siin on „ESP32 Web Server”, kuid saate selle teksti muuta, mis teile meeldib.Nuppude ja vastava oleku kuvamine
Seejärel kirjutate lõigu, et kuvada GPIO 26 praegune olek. Nagu näete, kasutame muutujat output26State, nii et olek värskendatakse muutuja muutumisel koheselt.Seejärel kuvame olenevalt GPIO praegusest olekust sisse- või väljalülitusnupu. Kui GPIO praegune olek on välja lülitatud, näitame nuppu ON, kui mitte, siis nuppu OFF.
Kasutame sama protseduuri GPIO 27 jaoks.
Ühenduse sulgemine
Lõpuks, kui vastus on lõppenud, tühjendame päise muutuja ja peatame ühenduse kliendiga kliendiga client.stop().
Pakkimine
Selles õpetuses oleme teile näidanud, kuidas luua a web server ESP32-ga. Näitasime teile lihtsat endistample, mis juhib kahte LED-i, kuid idee on asendada need LED-id relee või mõne muu väljundiga, mida soovite juhtida.
Projekt 6 RGB LED Web Server
Selles projektis näitame teile, kuidas RGB LED-i kaugjuhtida ESP32 plaadiga, kasutades a web värvivalijaga server.
Projekt läbiview
Enne alustamist vaatame, kuidas see projekt töötab:
- ESP32 web server kuvab värvivalija.
- Kui valite värvi, esitab teie brauser päringu a URL mis sisaldab valitud värvi R-, G- ja B-parameetreid.
- Teie ESP32 võtab päringu vastu ja jagab väärtuse iga värviparameetri jaoks.
- Seejärel saadab see vastava väärtusega PWM-signaali GPIO-dele, mis juhivad RGB LED-i.
Kuidas RGB LED-id töötavad?
Ühise katoodiga RGB LED-i puhul on kõigil kolmel LED-il negatiivne ühendus (katood). Kõik komplekti kuuluvad ühise katoodiga RGB-d.Kuidas luua erinevaid värve?
RGB LED-iga saab loomulikult toota punast, rohelist ja sinist valgust ning iga LED-i intensiivsust seadistades saab toota ka teisi värve.
NäiteksampPuhtalt sinise valguse saamiseks peaksite sinise LED-i seadma suurima intensiivsusega ning rohelise ja punase LED-i madalaima intensiivsusega. Valge valguse jaoks seadke kõik kolm LED-i kõrgeimale intensiivsusele.
Värvide segamine
Teiste värvide saamiseks võite kombineerida kolme erineva intensiivsusega värvi. Iga LED-i intensiivsuse reguleerimiseks saate kasutada PWM-signaali.
Kuna LED-id on üksteisele väga lähedal, näevad meie silmad värvide kombinatsiooni tulemust, mitte kolme värvi eraldi.
Et saada aimu, kuidas värve kombineerida, vaadake järgmist tabelit.
See on kõige lihtsam värvide segamise tabel, kuid annab aimu, kuidas see toimib ja kuidas erinevaid värve toota.Vajalikud osad
Selle projekti jaoks vajate järgmisi osi:
- ESP32 DEVKIT V1 juhatus
- RGB LED
- 3x 220 oomi takistit
- Jumper juhtmed
- Leivalaud
SkemaatilineKood
Programmeerime ESP32, kasutades Arduino IDE-d, nii et enne jätkamist veenduge, et teil oleks ESP32 lisandmoodul installitud: (Kui olete selle sammu juba teinud, võite järgmise sammu juurde liikuda.)
- ESP32 lisandmooduli installimine Arduino IDE-sse
Pärast vooluringi kokkupanemist avage kood
Projekt_6_RGB_LED_Web_Server.ino arduino IDE-s.
Enne koodi üleslaadimist ärge unustage sisestada oma võrgumandaate, et ESP saaks teie kohaliku võrguga ühenduse luua.Kuidas kood töötab
ESP32 visand kasutab WiFi.h teeki.Järgmised read määratlevad stringimuutujad päringu R-, G- ja B-parameetrite hoidmiseks.
Järgmised neli muutujat kasutatakse HTTP-päringu hilisemaks dekodeerimiseks.
Looge GPIO-de jaoks kolm muutujat, mis juhivad riba R, G ja B parameetreid. Sel juhul kasutame GPIO 13, GPIO 12 ja GPIO 14.
Need GPIO-d peavad väljastama PWM-signaale, seega peame esmalt konfigureerima PWM-i atribuudid. Seadke PWM-signaali sagedus 5000 Hz. Seejärel seostage iga värvi jaoks PWM-kanal
Ja lõpuks määrake PWM-kanalite eraldusvõime 8-bitiseks
Määrake jaotises setup () PWM-kanalitele PWM-i atribuudid
Ühendage PWM-kanalid vastavate GPIO-dega
Järgmises koodijaotises kuvatakse teie värvivalija web lehele ja esitab teie valitud värvi põhjal päringu.
Kui valite värvi, saate järgmises vormingus päringu.
Seega peame selle stringi poolitama, et saada R-, G- ja B-parameetrid. Parameetrid salvestatakse muutujatesse redString, greenString ja blueString ning nende väärtused võivad olla vahemikus 0 kuni 255.Riba juhtimiseks ESP32 abil kasutage funktsiooni ledcWrite(), et genereerida HTTP-st dekodeeritud väärtustega PWM-signaale. nõuda.
Märkus. Lisateavet ESP32-ga PWM-i kohta: Projekt 3 ESP32 PWM (analoogväljund)
Riba juhtimiseks ESP8266-ga peame lihtsalt kasutama
funktsioon analogWrite() PWM-signaalide genereerimiseks HTPP-päringust dekodeeritud väärtustega.
analoogWrite(redPin, redString.toInt());
analoogWrite(rohelinePin, rohelineString.toInt());
analoogWrite(bluePin, blueString.toInt())
Kuna me saame väärtused stringimuutujas, peame need meetodi toInt() abil täisarvudeks teisendama.
Demonstratsioon
Pärast võrgumandaatide sisestamist valige õige plaat ja COM-port ning laadige kood üles oma ESP32-sse. Laadige üles koodi viitejuhised.
Pärast üleslaadimist avage Serial Monitor boodikiirusel 115200 ja vajutage ESP lubamise/lähtestamise nuppu. Peaksite saama tahvli IP-aadressi.Avage brauser ja sisestage ESP IP-aadress. Nüüd kasutage RGB LED-i värvi valimiseks värvivalijat.
Seejärel peate värvi jõustumiseks vajutama nuppu "Muuda värvi".RGB LED-i väljalülitamiseks valige must värv.
Tugevamad värvid (värvivalija ülaosas) on need, mis annavad paremaid tulemusi.
Projekt 7 ESP32 relee Web Server
Relee kasutamine koos ESP32-ga on suurepärane võimalus vahelduvvoolu kodumasinate kaugjuhtimiseks. See õpetus selgitab, kuidas juhtida releemoodulit ESP32 abil.
Vaatame, kuidas releemoodul töötab, kuidas ühendada relee ESP32-ga ja ehitada web server relee kaugjuhtimiseks.
Tutvustame releed
Relee on elektriliselt töötav lüliti ja nagu iga teinegi lüliti, saab seda sisse või välja lülitada, kas voolul läbi minna või mitte. Seda saab juhtida madala helitugevusegatagnagu ESP3.3 GPIO-de pakutav 32 V pinge ja võimaldab meil juhtida kõrget helitugevusttagnäiteks 12V, 24V või vooluvõrktage (Euroopas 230 V ja USA-s 120 V).Vasakul küljel on kaks kolme pistikupesa komplekti suure helitugevuse ühendamisekstages ja paremal küljel olevad tihvtid (madal voltage) looge ühendus ESP32 GPIO-dega.
Mains Voltage ÜhendusedEelmisel fotol näidatud releemoodulil on kaks pistikut, millest igaühel on kolm pistikupesa: ühine (COM), normaalselt suletud (NC) ja normaalselt avatud (NO).
- COM: ühendage vool, mida soovite juhtida (toitevõrktagja).
- NC (tavaliselt suletud): tavaliselt suletud konfiguratsiooni kasutatakse siis, kui soovite, et relee oleks vaikimisi suletud. NC on COM-viigud on ühendatud, mis tähendab, et vool voolab, välja arvatud juhul, kui saadate ESP32-lt signaali releemoodulile, et avada vooluring ja peatada vooluvool.
- NO (tavaliselt avatud): normaalselt avatud konfiguratsioon töötab vastupidi: NO ja COM kontaktide vahel puudub ühendus, nii et vooluahel on katki, kui te ei saada ESP32-lt signaali ahela sulgemiseks.
JuhtnõeladMadalamahulinetagküljel on nelja tihvti komplekt ja kolme tihvti komplekt. Esimene komplekt koosneb VCC-st ja GND-st mooduli sisselülitamiseks ning sisendist 1 (IN1) ja sisendist 2 (IN2) vastavalt alumise ja ülemise relee juhtimiseks.
Kui teie releemoodulil on ainult üks kanal, on teil ainult üks IN viik. Kui teil on neli kanalit, on teil neli sisendit ja nii edasi.
Signaal, mille saadate IN kontaktidele, määrab, kas relee on aktiivne või mitte. Relee käivitub, kui sisend langeb alla umbes 2 V. See tähendab, et teil on järgmised stsenaariumid.
- Tavaliselt suletud konfiguratsioon (NC):
- HIGH signaal – vool liigub
- LOW signaal – vool ei voola
- Tavaliselt avatud konfiguratsioon (EI):
- HIGH signaal – vool ei voola
- LOW signaal – vool voolab
Peaksite kasutama tavapäraselt suletud konfiguratsiooni, kui vool peaks enamuse kordadest voolama ja soovite selle vaid aeg-ajalt peatada.
Kasutage tavaliselt avatud konfiguratsiooni, kui soovite, et vool aeg-ajalt voolaks (ntample, lülita sisse alamp aeg-ajalt).
Toiteallika valikTeine tihvtide komplekt koosneb GND, VCC ja JD-VCC tihvtidest.
JD-VCC tihvt annab toite relee elektromagnetile. Pange tähele, et moodulil on VCC ja JD-VCC kontakte ühendav hüppaja kork; siin näidatud on kollane, kuid teie oma võib olla teist värvi.
Kui hüppaja kate on peal, on VCC ja JD-VCC kontaktid ühendatud. See tähendab, et relee elektromagneti toiteallikaks on otse ESP32 toitepistik, nii et releemoodul ja ESP32 ahelad ei ole üksteisest füüsiliselt isoleeritud.
Ilma hüppaja korgita peate varustama sõltumatu toiteallika relee elektromagneti sisselülitamiseks JD-VCC tihvti kaudu. See konfiguratsioon isoleerib füüsiliselt releed ESP32-st mooduli sisseehitatud optroniiga, mis hoiab ära ESP32 kahjustamise elektriliste piikide korral.
SkemaatilineHoiatus: Suure mahu kasutaminetage toiteallikad võivad põhjustada tõsiseid vigastusi.
Seetõttu kasutatakse suure toitevõimsuse asemel 5 mm LED-etage pirnid katses. Kui te ei ole kursis võrguvoldigatagKüsige kelleltki, kes teid aitama peaks. ESP programmeerimise või vooluahela juhtmestiku ühendamise ajal veenduge, et kõik oleks vooluvõrgust lahti ühendatudtage.ESP32 raamatukogu installimine
Selle ehitamiseks web server, kasutame ESPAsynciWebServeriteek ja AsyncTCP teek.
ESPAsynci installimineWebServeri raamatukogu
Järgige installimiseks järgmisi samme ESPAsyncWebServer raamatukogu:
- ESPAsynci allalaadimiseks klõpsake siinWebServeri raamatukogu. Oleks pidanud
.zip kausta allalaadimiste kaustas - Pakkige ZIP-kaust lahti ja peaksite hankima ESPAsynciWebServer-peakaust
- Nimetage oma kaust ESPAsyncis ümberWebServer-master ESPAsyncileWebServer
- Teisaldage ESPAsyncWebServeri kaust teie Arduino IDE installiraamatukogude kausta
Teise võimalusena võite oma Arduino IDE-s minna valikusse Sketch> Include
Teek > Lisa ZIP-teek… ja valige äsja alla laaditud teek.
AsyncTCP teegi installimine ESP32 jaoks
The ESPAsyncWebServer raamatukogu nõuab AsyncTCP raamatukogu tööle. Jälgi
järgmised sammud selle teegi installimiseks:
- AsyncTCP teegi allalaadimiseks klõpsake siin. Allalaadimiste kaustas peaks olema ZIP-kaust
- Pakkige ZIP-kaust lahti ja peaksite saama AsyncTCP-peakausta
1. Nimetage kaust AsyncTCP-master ümber AsyncTCP-ks
3. Teisaldage AsyncTCP kaust oma Arduino IDE installiteekide kausta
4. Lõpuks avage uuesti oma Arduino IDE
Teise võimalusena võite oma Arduino IDE-s minna valikusse Sketch> Include
Teek > Lisa ZIP-teek… ja valige äsja alla laaditud teek.
Kood
Programmeerime ESP32, kasutades Arduino IDE-d, nii et enne jätkamist veenduge, et teil oleks ESP32 lisandmoodul installitud: (Kui olete selle sammu juba teinud, võite järgmise sammu juurde liikuda.)
ESP32 lisandmooduli installimine Arduino IDE-sse
Pärast vajalike teekide installimist avage kood Project_7_ESP32_Relay_Web_Server.ino arduino IDE-s.
Enne koodi üleslaadimist ärge unustage sisestada oma võrgumandaate, et ESP saaks teie kohaliku võrguga ühenduse luua.Demonstratsioon
Pärast vajalike muudatuste tegemist laadige kood üles oma ESP32-sse. Laadige koodi viitejuhised üles.
Avage Serial Monitor boodikiirusega 115200 ja vajutage selle IP-aadressi saamiseks nuppu ESP32 EN. Seejärel avage oma kohalikus võrgus brauser ja sisestage ESP32 IP-aadress, et pääseda juurde web server.
Avage Serial Monitor boodikiirusega 115200 ja vajutage selle IP-aadressi saamiseks nuppu ESP32 EN. Seejärel avage oma kohalikus võrgus brauser ja sisestage ESP32 IP-aadress, et pääseda juurde web server.Märkus. Teie brauser ja ESP32 peaksid olema ühendatud sama LAN-iga.
Kahe nupuga peaksite koodis määratletud releede arvuna saama midagi järgmist.Nüüd saate nuppe kasutada releede juhtimiseks nutitelefoni abil.
Projekt_8_Output_State_Sünkroniseerimine_ Web_Server
See projekt näitab, kuidas juhtida ESP32 või ESP8266 väljundeid, kasutades a web server ja füüsiline nupp korraga. Väljundi olekut värskendatakse web lehel, kas seda muudetakse füüsilise nupu või web server.
Projekt läbiview
Vaatame lühidalt, kuidas projekt töötab.ESP32 või ESP8266 majutab a web server, mis võimaldab teil kontrollida väljundi olekut;
- Praegune väljundolek kuvatakse ekraanil web server;
- ESP on ühendatud ka füüsilise surunupuga, mis juhib sama väljundit;
- Kui muudate väljundi olekut füüsilise puhsnupu abil, värskendatakse ka selle praegust olekut web server.
Kokkuvõttes võimaldab see projekt juhtida sama väljundit, kasutades a web server ja surunupp korraga. Kui väljundi olek muutub, kuvatakse web serverit värskendatakse.
Vajalikud osad
Siin on nimekiri osadest, mida vooluringi ehitamiseks vajate:
- ESP32 DEVKIT V1 juhatus
- 5 mm LED
- 220 oomi takisti
- Vajuta nuppu
- 10k oomi takisti
- Leivalaud
- Jumper juhtmed
SkemaatilineESP32 raamatukogu installimine
Selle ehitamiseks web server, kasutame ESPAsynciWebServeriteek ja AsyncTCP teek. (Kui olete selle sammu juba teinud, võite järgmise sammu juurde liikuda.)
ESPAsynci installimineWebServeri raamatukogu
ESPAsynci installimiseks järgige järgmisi sammeWebServeriteek:
- ESPAsynci allalaadimiseks klõpsake siinWebServeri raamatukogu. Oleks pidanud
.zip kausta allalaadimiste kaustas - Pakkige ZIP-kaust lahti ja peaksite hankima ESPAsynciWebServer-peakaust
- Nimetage oma kaust ESPAsyncis ümberWebServer-master ESPAsyncileWebServer
- Teisaldage ESPAsyncWebServeri kaust teie Arduino IDE installiraamatukogude kausta
Teise võimalusena võite oma Arduino IDE-s minna valikusse Sketch> Include
Teek > Lisa ZIP-teek… ja valige äsja alla laaditud teek.
AsyncTCP teegi installimine ESP32 jaoks
ESPAsyncWebServeriteek nõuab töötamiseks AsyncTCP teeki. Teegi installimiseks järgige järgmisi samme.
- AsyncTCP teegi allalaadimiseks klõpsake siin. Allalaadimiste kaustas peaks olema ZIP-kaust
- Pakkige ZIP-kaust lahti ja peaksite saama AsyncTCP-peakausta
- Nimetage oma kaust ümber AsyncTCP-masterist AsyncTCP-ks
- Teisaldage AsyncTCP kaust oma Arduino IDE installiteekide kausta
- Lõpuks avage oma Arduino IDE uuesti
Teise võimalusena võite oma Arduino IDE-s minna valikusse Sketch> Include
Teek > Lisa ZIP-teek… ja valige äsja alla laaditud teek.
Kood
Programmeerime ESP32, kasutades Arduino IDE-d, nii et enne jätkamist veenduge, et teil oleks ESP32 lisandmoodul installitud: (Kui olete selle sammu juba teinud, võite järgmise sammu juurde liikuda.)
ESP32 lisandmooduli installimine Arduino IDE-sse
Pärast vajalike teekide installimist avage kood
Projekt_8_Output_State_Sünkroniseerimine_Web_Server.ino arduino IDE-s.
Enne koodi üleslaadimist ärge unustage sisestada oma võrgumandaate, et ESP saaks teie kohaliku võrguga ühenduse luua.
Kuidas kood töötab
Nupu olek ja väljundi olek
LEDState muutuja hoiab LED-i väljundi olekut. Vaikimisi, kui web server käivitub, see on LOW.
Nuppe buttonState ja lastButtonState kasutatakse selleks, et tuvastada, kas nuppu vajutati või mitte.Nupp (web server)
Me ei lisanud muutuja index_html nupu loomiseks HTML-i.
Selle põhjuseks on asjaolu, et tahame seda muuta sõltuvalt LED-i praegusest olekust, mida saab muuta ka surunupuga.
Niisiis, oleme loonud nupule %BUTTONPLACEHOLDER% kohahoidja, mis asendatakse HTML-tekstiga, et luua nupp hiljem koodis (seda tehakse protsessori () funktsioonis).protsessor ()
Funktsioon protsessor() asendab kõik HTML-teksti kohahoidjad tegelike väärtustega. Esiteks kontrollib see, kas HTML-tekstid sisaldavad midagi
kohahoidjad %BUTTONPLACEHOLDER%.Seejärel kutsuge välja funktsioon theoutputState(), mis tagastab praeguse väljundi oleku. Salvestame selle muutujas outputStateValue.
Pärast seda kasutage seda väärtust HTML-teksti loomiseks, et kuvada nupp õiges olekus:
HTTP GET-i taotlus väljundoleku muutmiseks (JavaScript)
Kui vajutate nuppu, kutsutakse välja funktsioontoggleCheckbox(). See funktsioon esitab päringu erinevatele kohtadele URLs LED-i sisse- või väljalülitamiseks.LED-i sisselülitamiseks esitab see päringu /update?state=1 URL:
Vastasel juhul esitab see päringu /update?state=0 URL.
HTTP GET-i oleku värskendamise taotlus (JavaScript)
Väljundi oleku ajakohastamiseks web server, kutsume välja järgmise funktsiooni, mis teeb /state uue päringu URL iga sekund.Käsitlege taotlusi
Seejärel peame tegelema sellega, mis juhtub, kui ESP32 või ESP8266 saab nende kohta päringuid. URLs.
Kui taotlus saabub juur /URL, saadame nii HTML-lehe kui ka protsessori.Järgmised read kontrollivad, kas saite päringu aadressil /update?state=1 või /update?state=0 URL ja muudab vastavalt LED-olekut.
Kui päring saabub aadressil /state URL, saadame praeguse väljundi oleku:
loop ()
Silmuses () põrutame nupule tagasi ja lülitame LED-i sisse või välja sõltuvalt ledState'i väärtusest muutuv.Demonstratsioon
Laadige kood üles oma ESP32 plaadile. Laadige üles koodi viitejuhised.
Seejärel avage Serial Monitor boodikiirusega 115200. IP-aadressi saamiseks vajutage pardal olevat EN/RST nuppu.Avage oma kohalikus võrgus brauser ja tippige ESP IP-aadress. Teil peaks olema juurdepääs web server, nagu allpool näidatud.
Märkus. Teie brauser ja ESP32 peaksid olema ühendatud sama LAN-iga.Saate nuppu ümber lülitada web server LED-i sisselülitamiseks.
Sama LED-i saab juhtida ka füüsilise nupuga. Selle olekut värskendatakse alati automaatselt web server.
Projekt 9 ESP32 DHT11 Web Server
Selles projektis saate teada, kuidas luua asünkroonset ESP32 web server DHT11-ga, mis kuvab temperatuuri ja niiskuse Arduino IDE abil.
Eeldused
The web server loob näitude värskendused automaatselt, ilma et oleks vaja neid värskendada web lehel.
Selle projektiga saate teada:
- Kuidas lugeda DHT-anduritelt temperatuuri ja niiskust;
- Ehitage asünkroonne web server kasutades ESPAsyncWebServeri raamatukogu;
- Värskendage anduri näitu automaatselt, ilma et oleks vaja värskendada web lehel.
Asünkroonne Web Server
Et ehitada web serverit kasutame ESPAsyncWebServeri raamatukogu mis pakub lihtsat viisi asünkroonse loomiseks web server. Asünkroonse ehitamine web serveril on mitu advantagnagu on mainitud teegi GitHubi lehel, näiteks:
- "Käsitlege rohkem kui ühte ühendust korraga";
- "Kui saadate vastuse, olete kohe valmis käsitlema muid ühendusi, samal ajal kui server hoolitseb taustal vastuse saatmise eest";
- "Lihtne mallide töötlemise mootor mallide käsitlemiseks";
Vajalikud osad
Selle õpetuse lõpetamiseks vajate järgmisi osi:
- ESP32 arendusplaat
- DHT11 moodul
- Leivalaud
- Jumper juhtmed
SkemaatilineTeekide installimine
Selle projekti jaoks peate installima paar teeki:
- The DHT ja Adafruit Unified Sensor Draiveri teegid DHT-andurilt lugemiseks.
- ESPAsyncWebServer ja Asünkroonne TCP raamatukogud asünkroonse loomiseks web server.
Nende teekide installimiseks järgige järgmisi juhiseid.
DHT-anduri raamatukogu installimine
DHT-andurilt lugemiseks Arduino IDE abil peate installima DHT-anduri raamatukogu. Teegi installimiseks järgige järgmisi samme.
- DHT-anduri raamatukogu allalaadimiseks klõpsake siin. Allalaadimiste kaustas peaks olema ZIP-kaust
- Pakkige ZIP-kaust lahti ja peaksite saama DHT-sensor-library-master kausta
- Nimetage kaust ümber DHT-sensor-library-master nimest DHT_sensor
- Teisaldage kaust DHT_sensor oma Arduino IDE installiraamatukogude kausta
- Lõpuks avage oma Arduino IDE uuesti
Adafruit Unified Sensori draiveri installimine
Samuti peate installima Adafruit Unified Sensor Driveri raamatukogu DHT-anduriga töötamiseks. Teegi installimiseks järgige järgmisi samme.
- Adafruit Unified Sensori teegi allalaadimiseks klõpsake siin. Allalaadimiste kaustas peaks olema ZIP-kaust
- Pakkige ZIP-kaust lahti ja peaksite saama kausta Adafruit_sensor-master
- Nimetage oma kaust ümber kaustast Adafruit_sensor-master kaustaks Adafruit_sensor
- Teisaldage kaust Adafruit_sensor oma Arduino IDE installiteekide kausta
- Lõpuks avage oma Arduino IDE uuesti
ESPAsynci installimineWebServeri raamatukogu
Järgige installimiseks järgmisi samme ESPAsyncWebServer raamatukogu:
- ESPAsynci allalaadimiseks klõpsake siinWebServeri raamatukogu. Oleks pidanud
.zip kausta allalaadimiste kaustas - Pakkige ZIP-kaust lahti ja peaksite seda tegema
hankige ESPAsyncWebServer-peakaust - Nimetage oma kaust ESPAsyncis ümberWebServer-master ESPAsyncileWebServer
- Teisaldage ESPAsyncWebServeri kaust teie Arduino IDE installiraamatukogude kausta
Async TCP teegi installimine ESP32 jaoks
The ESPAsyncWebServer raamatukogu nõuab AsyncTCP raamatukogu tööle. Teegi installimiseks järgige järgmisi samme.
- AsyncTCP teegi allalaadimiseks klõpsake siin. Allalaadimiste kaustas peaks olema ZIP-kaust
- Pakkige ZIP-kaust lahti ja peaksite saama AsyncTCP-peakausta
- Nimetage oma kaust ümber AsyncTCP-masterist AsyncTCP-ks
- Teisaldage AsyncTCP kaust oma Arduino IDE installiteekide kausta
- Lõpuks avage oma Arduino IDE uuesti
Kood
Programmeerime ESP32, kasutades Arduino IDE-d, nii et enne jätkamist veenduge, et teil oleks ESP32 lisandmoodul installitud: (Kui olete selle sammu juba teinud, võite järgmise sammu juurde liikuda.)
ESP32 lisandmooduli installimine Arduino IDE-sse
Pärast vajalike teekide installimist avage kood
Projekt_9_ESP32_DHT11_Web_Server.ino arduino IDE-s.
Enne koodi üleslaadimist ärge unustage sisestada oma võrgumandaate, et ESP saaks teie kohaliku võrguga ühenduse luua.Kuidas kood töötab
Järgmistes lõikudes selgitame, kuidas kood töötab. Jätkake lugemist, kui soovite rohkem teada saada, või hüpata lõpptulemuse vaatamiseks jaotisesse Demonstratsioon.
Teekide importimine
Esiteks importige vajalikud teegid. WiFi, ESPAsyncWebSelle loomiseks on vaja serverit ja ESPAsyncTCP-d web server. Andurite DHT11 või DHT22 lugemiseks on vaja Adafruit_Sensor ja DHT teeke.Muutujate määratlus
Määrake GPIO, millega DHT andmepistik on ühendatud. Sel juhul on see ühendatud GPIO 4-ga.Seejärel valige kasutatav DHT-anduri tüüp. Meie endisesample, me kasutame DHT22. Kui kasutate muud tüüpi, peate lihtsalt oma anduri kommentaarid tühistama ja kommenteerima kõiki teisi.
Looge DHT-objekt varem määratletud tüübi ja tihvtiga.Looge asünkroonimineWebServeri objekt pordis 80.
Lugege temperatuuri ja niiskuse funktsioone
Oleme loonud kaks funktsiooni: ühe temperatuuri lugemiseks Oleme loonud kaks funktsiooni: ühe temperatuuri lugemiseks (readDHTTemperature()) ja teise niiskuse lugemiseks (readDHTHumidity()).Anduri näitude hankimine on sama lihtne kui kasutamine Anduri näitude hankimine on sama lihtne kui meetodite readTemperature() ja readHumidity() kasutamine dht-objektil.
Meil on ka tingimus, mis tagastab kaks kriipsu (–), kui andur ei saa näitu.
Näidud tagastatakse stringitüübina. Ujuki stringiks teisendamiseks kasutage funktsiooni String().
Vaikimisi loeme temperatuuri Celsiuse kraadides. Temperatuuri määramiseks Fahrenheiti kraadides kommenteerige temperatuuri Celsiuse järgi ja tühistage temperatuur Fahrenheiti kraadides, nii et teil on järgmine teave.
Laadige kood üles
Nüüd laadige kood üles oma ESP32-sse. Veenduge, et valitud oleks õige plaat ja COM-port. Laadige üles koodi viitejuhised.
Pärast üleslaadimist avage Serial Monitor boodikiirusega 115200. Vajutage ESP32 lähtestamisnuppu. ESP32 IP-aadress tuleks printida seerias jälgida.Demonstratsioon
Avage brauser ja tippige ESP32 IP-aadress. Sinu web server peaks kuvama anduri viimaseid näitu.
Märkus. Teie brauser ja ESP32 peaksid olema ühendatud sama LAN-iga.
Pange tähele, et temperatuuri ja niiskuse näitu värskendatakse automaatselt, ilma et oleks vaja värskendada web lehel.
Project_10_ESP32_OLED_Ekraan
See projekt näitab, kuidas kasutada 0.96-tollist SSD1306 OLED-ekraani koos ESP32-ga, kasutades Arduino IDE-d.
Tutvustame 0.96-tollist OLED-ekraani
The OLED ekraan Selles õpetuses kasutame mudelit SSD1306: ühevärviline, 0.96-tolline ekraan eraldusvõimega 128 × 64 pikslit, nagu on näidatud järgmisel joonisel.OLED-ekraan ei vaja taustvalgustust, mis annab hämaras keskkonnas väga kena kontrasti. Lisaks tarbivad selle pikslid energiat ainult siis, kui need on sisse lülitatud, nii et OLED-ekraan tarbib teiste ekraanidega võrreldes vähem energiat.
Kuna OLED-ekraan kasutab I2C sideprotokolli, on juhtmete ühendamine väga lihtne. Viitena saate kasutada järgmist tabelit.
OLED pin | ESP32 |
Vin | 3.3V |
GND | GND |
SCL | GPIO 22 |
SDA | GPIO 21 |
SkemaatilineSSD1306 OLED raamatukogu installimine – ESP32
OLED-ekraani ESP32 abil juhtimiseks on saadaval mitu teeki.
Selles õpetuses kasutame kahte Adafruiti teeki: Adafruit_SSD1306 teek ja Adafruit_GFX teek.
Nende teekide installimiseks järgige järgmisi samme.
- Avage oma Arduino IDE ja minge Sketch> Include Library> Manage Libraries. Raamatukogu haldur peaks avanema.
- Tippige otsingukasti "SSD1306" ja installige Adafruiti SSD1306 teek.
- Pärast SSD1306 teegi installimist Adafruitist tippige otsingukasti "GFX" ja installige teek.
- Pärast teekide installimist taaskäivitage oma Arduino IDE.
Kood
Pärast vajalike teekide installimist avage arduino IDE-s Project_10_ESP32_OLED_Display.ino. kood
Programmeerime ESP32 Arduino IDE abil, nii et enne jätkamist veenduge, et teil oleks ESP32 lisandmoodul installitud: (Kui olete selle sammu juba teinud, võite järgmise sammu juurde liikuda.)
ESP32 lisandmooduli installimine Arduino IDE-sseKuidas kood töötab
Teekide importimine
Esiteks peate importima vajalikud teegid. Wire'i teek I2C kasutamiseks ja Adafruit'i teegid ekraanile kirjutamiseks: Adafruit_GFX ja Adafruit_SSD1306.Lähtestage OLED-ekraan
Seejärel määrate oma OLED-i laiuse ja kõrguse. Selles eksample, kasutame 128 × 64 OLED-ekraani. Kui kasutate muid suurusi, saate seda muuta muutujates SCREEN_WIDTH ja SCREEN_HEIGHT.Seejärel lähtestage kuvaobjekt laiuse ja kõrgusega, mis on varem I2C sideprotokolliga (&Wire) määratletud.
Parameeter (-1) tähendab, et teie OLED-ekraanil puudub RESET-pin. Kui teie OLED-ekraanil on RESET-pin, tuleks see ühendada GPIO-ga. Sel juhul peaksite parameetrina edastama GPIO-numbri.
Funktsioonis setup() initsialiseerige jadamonitor silumiseks kiirusega 115200.Lähtestage OLED-ekraan meetodiga begin() järgmiselt.
See jupp prindib ka jadamonitorile teate juhuks, kui me ei saa kuvariga ühendust luua.
Kui kasutate teist OLED-ekraani, peate võib-olla muutma OLED-aadressi. Meie puhul on aadressiks 0x3C.
Pärast kuva lähtestamist lisage kahesekundiline viivitus, et OLED-il oleks enne teksti kirjutamist piisavalt aega lähtestamiseks:
Selge ekraan, määrake fondi suurus, värv ja kirjutage tekst
Pärast kuva lähtestamist tühjendage kuvapuhver meetodiga clearDisplay().
Enne teksti kirjutamist peate määrama teksti suuruse, värvi ja koha, kus tekst OLED-is kuvatakse.
Määrake fondi suurus meetodi setTextSize() abil:Määrake fondi värv meetodiga setTextColor():
VALGE määrab valge fondi ja musta tausta.
Määrake koht, kust tekst algab, kasutades meetodit setCursor(x,y). Sel juhul paneme teksti algama (0,0) koordinaatidest – ülemises vasakus nurgas.Lõpuks saate teksti println() meetodi abil ekraanile saata järgmiselt
Seejärel peate teksti ekraanil kuvamiseks välja kutsuma meetodi display().
Adafruit OLED teek pakub kasulikke meetodeid teksti hõlpsaks kerimiseks.
- startscrollright(0x00, 0x0F): kerige teksti vasakult paremale
- startscrollleft(0x00, 0x0F): kerige teksti paremalt vasakule
- startscrolldiagright(0x00, 0x07): kerige teksti vasakust alumisest nurgast paremasse ülemisse nurka startscrolldiagleft(0x00, 0x07): kerige teksti paremast alumisest nurgast vasakusse ülemisse nurka
Laadige kood üles
Nüüd laadige kood üles oma ESP32-sse. Laadige üles koodi viitejuhised.
Pärast koodi üleslaadimist kuvab OLED kerivat teksti.
Dokumendid / Ressursid
![]() |
LAFVIN ESP32 põhiline stardikomplekt [pdfKasutusjuhend ESP32 põhiline stardikomplekt, ESP32, põhiline stardikomplekt, stardikomplekt |