ESP32 Basic Starter
Kit
Daim ntawv teev npe
ESP32 Taw qhia
Tshiab rau ESP32? Pib ntawm no! ESP32 yog ib qho ntawm cov nqi qis thiab qis zog ntawm Chip (SoC) microcontrollers tsim los ntawm Espressif uas suav nrog Wi-Fi thiab Bluetooth wireless muaj peev xwm thiab dual-core processor. Yog tias koj paub txog ESP8266, ESP32 yog nws qhov kev vam meej, muaj ntau yam tshiab.Specifications ntawm ESP32
Yog tias koj xav kom tau txais kev paub me ntsis ntxiv thiab tshwj xeeb, koj tuaj yeem saib cov lus qhia ntxaws ntxaws ntawm ESP32 (qhov chaw: http://esp32.net/) - kom paub meej ntxiv, tshawb xyuas cov ntaub ntawv):
- Kev sib txuas wireless WiFi: 150.0 Mbps cov ntaub ntawv tus nqi nrog HT40
- Bluetooth: BLE (Bluetooth Tsawg Zog) thiab Bluetooth Classic
- Tus Txheej Txheem: Tensilica Xtensa Dual-Core 32-ntsis LX6 microprocessor, khiav ntawm 160 lossis 240 MHz
- Nco:
- ROM: 448 KB (rau booting thiab core functions)
- SRAM: 520 KB (rau cov ntaub ntawv thiab cov lus qhia)
- RTC fas SRAM: 8 KB (rau cov ntaub ntawv khaws cia thiab CPU tseem ceeb thaum RTC khau raj los ntawm hom pw tsaug zog)
- RTC qeeb SRAM: 8KB (rau co-processor nkag mus rau lub sijhawm sib sib zog nqus pw tsaug zog hom) eFuse: 1 Kbit (ntawm uas 256 khoom siv rau lub kaw lus (MAC chaw nyob thiab nti teeb tsa) thiab qhov seem 768 khoom yog tshwj tseg rau cov neeg siv khoom siv, suav nrog Flash-Encryption thiab Chip-ID)
Embedded flash: flash txuas nrog sab hauv ntawm IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 thiab SD_DATA_1 ntawm ESP32-D2WD thiab ESP32-PICO-D4.
- 0 MiB (ESP32-D0WDQ6, ESP32-D0WD, thiab ESP32-S0WD chips)
- 2 MiB (ESP32-D2WD chip)
- 4 MiB (ESP32-PICO-D4 SiP module)
Tsawg Fais Fab: xyuas kom meej tias koj tseem tuaj yeem siv ADC hloov pauv, piv txwv liample, thaum pw tsaug zog.
Peripheral Input / Output:
- peripheral interface nrog DMA uas suav nrog capacitive kov
- ADCs (Analog-rau-Digital Converter)
- DACs (Digital-rau-Analog Converter)
- I²C (Inter-Integrated Circuit)
- UART (Universal Asynchronous Receiver / Transmitter)
- SPI (Serial Peripheral Interface)
- I²S (Integrated Interchip Suab)
- RMII (Txo Media-Independent Interface)
- PWM (Pulse-Width Modulation)
Kev ruaj ntseg: hardware accelerators rau AES thiab SSL/TLS
ESP32 Development Boards
ESP32 yog hais txog ESP32 nti. Txawm li cas los xij, lo lus "ESP32" kuj tseem siv los xa mus rau ESP32 pawg thawj coj loj hlob. Siv ESP32 liab qab chips tsis yog ib qho yooj yim los yog siv tau, tshwj xeeb tshaj yog thaum kawm, kuaj, thiab prototyping. Feem ntau, koj yuav xav siv ESP32 txhim kho pawg thawj coj saib.
Peb yuav siv lub rooj tsavxwm ESP32 DEVKIT V1 raws li kev siv.Cov duab hauv qab no qhia txog ESP32 DEVKIT V1 pawg thawj coj saib, version nrog 30 GPIO pins.Specifications - ESP32 DEVKIT V1
Cov lus hauv qab no qhia txog cov ntsiab lus ntawm ESP32 DEVKIT V1 DOIT board nta thiab specifications:
Tus naj npawb ntawm cov cores | 2 (dual core) |
Wi-nkaus | 2.4 GHz mus txog 150 Mbits / s |
Bluetooth | BLE (Bluetooth Tsawg Zog) thiab qub Bluetooth |
Kev tsim vaj tsev | 32 bits |
moos zaus | Mus txog 240 MHz |
RAM | 512 kb ua |
Pins | 30 (nyob ntawm tus qauv) |
Peripherals | Capacitive touch, ADC (analog to digital converter), DAC (digital to analog converter), 12C (Inter-Integrated Circuit), UART (universal asynchronous receiver/transmitter), CAN 2.0 (Controller Area Netwokr), SPI (Serial Peripheral Interface), 12S (Integrated Inter-IC) Suab), RMII (Txo Media-Independent Interface), PWM (mulse width modulation), thiab ntau dua. |
Built-in nyees khawm | RESET thiab BOOT khawm |
Built-in LEDs | built-in xiav LED txuas nrog GPIO2; built-in liab LED uas qhia tau hais tias lub rooj tsavxwm yog powered |
USB rau UART tus choj |
CP2102 |
Nws los nrog microUSB interface uas koj tuaj yeem siv los txuas lub rooj tsavxwm rau koj lub khoos phis tawj kom xa cov lej lossis siv lub zog.
Nws siv CP2102 nti (USB rau UART) sib txuas lus nrog koj lub computer ntawm COM chaw nres nkoj siv lub serial interface. Lwm cov nti nrov yog CH340. Tshawb xyuas dab tsi yog USB rau UART nti converter ntawm koj lub rooj tsavxwm vim koj yuav tsum tau nruab cov tsav tsheb uas xav tau kom koj lub khoos phis tawj tuaj yeem sib txuas lus nrog lub rooj tsavxwm (cov ntaub ntawv ntxiv txog qhov no tom qab hauv phau ntawv qhia no).
Lub Rooj Tswjhwm Saib no kuj los nrog lub pob RESET (tej zaum yuav sau npe EN) kom rov pib lub rooj tsavxwm thiab lub pob BOOT kom muab lub rooj tsavxwm rau hauv hom flashing (muaj kom tau txais code). Nco ntsoov tias qee lub boards yuav tsis muaj BOOT khawm.
Nws kuj tuaj nrog lub teeb xiav LED uas muaj kev sib txuas nrog GPIO 2. Qhov LED no muaj txiaj ntsig zoo rau kev debugging kom muab qee yam kev pom lub cev tawm. Kuj tseem muaj lub teeb liab LED teeb thaum koj muab lub zog rau lub rooj tsavxwm.ESP32 Pinout
ESP32 peripherals muaj xws li:
- 18 Analog-to-Digital Converter (ADC) raws
- 3 SPI interfaces
- 3 UART interfaces
- 2 I2C interfaces
- 16 PWM output channels
- 2 Digital-rau-Analog Converters (DAC)
- 2 I2S interfaces
- 10 Capacitive sensing GPIOs
Lub ADC (analog rau digital converter) thiab DAC (digital to analog converter) nta tau muab rau cov pins tshwj xeeb zoo li qub. Txawm li cas los xij, koj tuaj yeem txiav txim siab seb tus pins twg yog UART, I2C, SPI, PWM, thiab lwm yam - koj tsuas yog yuav tsum muab lawv rau hauv cov cai. Qhov no yog ua tau vim ESP32 nti lub multiplexing feature.
Txawm hais tias koj tuaj yeem txhais cov pins zog ntawm lub software, muaj cov pins muab los ntawm lub neej ntawd raws li qhia hauv daim duab hauv qab noTsis tas li ntawd, muaj cov pins nrog cov yam ntxwv tshwj xeeb uas ua rau lawv haum lossis tsis haum rau ib qhov project. Cov lus hauv qab no qhia tau hais tias tus pins twg yog qhov zoo tshaj plaws los siv los ua cov khoom siv, cov zis thiab qhov twg koj yuav tsum tau ceev faj.
Cov pins highlighted ntsuab yog OK siv. Cov uas tseem ceeb hauv daj yog siv tau, tab sis koj yuav tsum tau xyuam xim vim tias lawv yuav muaj tus cwj pwm tsis txaus ntseeg feem ntau ntawm khau raj. Cov pins tseem ceeb hauv liab tsis pom zoo siv los ua cov khoom siv lossis cov khoom tawm.
GP IB | Tswv yim | Tso zis | Sau ntawv |
0 | rub li | OK | outputs PWM teeb liab ntawm khau raj, yuav tsum yog LOW mus rau flashing hom |
1 | TX pin | OK | debug tso zis ntawm khau raj |
2 | OK | OK | txuas nrog on-board LED, yuav tsum tau sab laug los yog LOW nkag mus rau flashing hom |
3 | OK | RX pin | HIGH ntawm khau raj |
4 | OK | OK | |
5 | OK | OK | outputs PWM teeb liab ntawm khau raj, strapping pin |
12 | OK | OK | khau raj tsis yog rub siab, strapping pin |
13 | OK | OK | |
14 | OK | OK | outputs PWM signal at boot |
15 | OK | OK | outputs PWM teeb liab ntawm khau raj, strapping pin |
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 | input nkaus xwb | |
35 | OK | input nkaus xwb | |
36 | OK | input nkaus xwb | |
39 | OK | input nkaus xwb |
Txuas ntxiv nyeem kom paub meej ntxiv thiab tsom xam qhov tob ntawm ESP32 GPIOs thiab nws txoj haujlwm.
Input tsuas pins
GPIOs 34 txog 39 yog GPIs - cov tswv yim tsuas yog pins. Cov pins no tsis muaj qhov rub-up lossis rub-down resistors. Lawv tsis tuaj yeem siv los ua cov khoom tawm, yog li siv cov pins no tsuas yog cov khoom siv:
- PIB 34
- PIB 35
- PIB 36
- PIB 39
SPI flash ua ke ntawm ESP-WROOM-32
GPIO 6 rau GPIO 11 tau nthuav tawm hauv qee qhov kev txhim kho ESP32. Txawm li cas los xij, cov pins no txuas nrog kev sib xyaw SPI flash ntawm ESP-WROOM-32 nti thiab tsis pom zoo rau lwm yam kev siv. Yog li, tsis txhob siv cov pins hauv koj cov haujlwm:
- GPIO 6 (SCK/CLK)
- GPIO 7 (SDO / SD0)
- GPIO 8 (SDI / SD1)
- GPIO 9 (SHD / SD2)
- GPIO 10 (SWP/SD3)
- GPIO 11 (CSC/CMD)
Capacitive kov GPIOs
ESP32 muaj 10 sab hauv capacitive touch sensors. Cov no tuaj yeem paub qhov txawv ntawm txhua yam uas tuav cov nqi hluav taws xob, zoo li tib neeg daim tawv nqaij. Yog li lawv tuaj yeem tshawb pom qhov txawv txav tshwm sim thaum kov GPIOs nrog tus ntiv tes. Cov pins no tuaj yeem yooj yim ua ke rau hauv cov ntaub qhwv lub taub hau thiab hloov cov nyees khawm txhua yam. Lub capacitive kov pins kuj tuaj yeem siv los tsa ESP32 los ntawm kev pw tsaug zog. Cov touch sensors txuas nrog rau cov GPIOs no:
- T0 (GPIO 4)
- T1 (GPIO 0)
- T2 (GPIO 2)
- T3 (GPIO 15)
- T4 (GPIO 13)
- T5 (GPIO 12)
- T6 (GPIO 14)
- T7 (GPIO 27)
- T8 (GPIO 33)
- T9 (GPIO 32)
Analog rau Digital Converter (ADC)
ESP32 muaj 18 x 12 ntsis ADC input channels (thaum ESP8266 tsuas muaj 1x 10 ntsis ADC). Cov no yog GPIOs uas tuaj yeem siv los ua ADC thiab cov kev sib txuas:
- 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)
Nco tseg: ADC2 tus pins tsis tuaj yeem siv thaum siv Wi-Fi. Yog li, yog tias koj siv Wi-Fi thiab koj muaj teeb meem tau txais tus nqi los ntawm ADC2 GPIO, koj tuaj yeem xav siv ADC1 GPIO hloov. Qhov ntawd yuav tsum daws koj qhov teeb meem.
ADC input channels muaj 12-ntsis daws teeb meem. Qhov no txhais tau hais tias koj tuaj yeem tau txais kev nyeem analog ntawm 0 txog 4095, uas 0 sib raug rau 0V thiab 4095 txog 3.3V. Koj tuaj yeem teeb tsa qhov kev daws teeb meem ntawm koj cov channel ntawm cov cai thiab ADC ntau yam.
ESP32 ADC tus pins tsis muaj tus cwj pwm linear. Tej zaum koj yuav tsis paub qhov txawv ntawm 0 thiab 0.1V, lossis nruab nrab ntawm 3.2 thiab 3.3V. Koj yuav tsum nco ntsoov qhov ntawd thaum siv ADC tus pins. Koj yuav tau txais tus cwj pwm zoo ib yam li qhov pom hauv daim duab hauv qab no.Digital rau Analog Converter (DAC)
Muaj 2 x 8 ntsis DAC raws ntawm ESP32 los hloov cov cim digital rau hauv analog vol.tage teeb liab outputs. Cov no yog DAC channels:
- DAC1 (GPIO25)
- DAC2 (GPIO26)
RTC GPIOs
Muaj RTC GPIO kev txhawb nqa ntawm ESP32. Cov GPIOs xa mus rau RTC lub zog qis qis tuaj yeem siv tau thaum ESP32 nyob rau hauv kev pw tsaug zog. Cov RTC GPIOs no tuaj yeem siv los tsa ESP32 los ntawm kev pw tsaug zog thaum Ultra Low
Lub zog (ULP) co-processor tab tom khiav. Cov GPIOs hauv qab no tuaj yeem siv los ua qhov tsim tawm sab nraud.
- 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 maub los muaj 16 txoj kev ywj pheej uas tuaj yeem teeb tsa los tsim PWM cov cim nrog cov khoom sib txawv. Txhua tus pins uas tuaj yeem ua raws li cov zis tuaj yeem siv los ua PWM tus pins (GPIOs 34 txog 39 tsis tuaj yeem tsim PWM).
Txhawm rau teeb tsa PWM teeb liab, koj yuav tsum txhais cov kev ntsuas no hauv cov cai:
- Lub teeb liab zaus;
- Lub voj voog ua haujlwm;
- PWM channel;
- GPIO qhov twg koj xav kom tso tawm lub teeb liab.
I2C
ESP32 muaj ob txoj kev I2C thiab txhua tus pin tuaj yeem tsim los ua SDA lossis SCL. Thaum siv ESP32 nrog Arduino IDE, lub neej ntawd I2C pins yog:
- GPIO 21 (SDA)
- GPIO 22 (SCL)
Yog tias koj xav siv lwm tus pins thaum siv lub tsev qiv ntawv xaim, koj tsuas yog xav tau hu rau:
Wire.begin(SDA, SCL);
SPI
Los ntawm lub neej ntawd, tus pin mapping rau SPI yog:
SPI | MOSI | MISO | CLK | CS |
VSPI | PIB 23 | PIB 19 | PIB 18 | PIB 5 |
HSPI | PIB 13 | PIB 12 | PIB 14 | PIB 15 |
Kev cuam tshuam
Txhua GPIOs tuaj yeem teeb tsa ua kev cuam tshuam.
Strapping Pins
ESP32 nti muaj cov hauv qab no strapping pins:
- GPIO 0 (yuav tsum yog qis kom nkag mus rau hom khau raj)
- GPIO 2 (yuav tsum ntab lossis qis thaum khau raj)
- PIB 4
- GPIO 5 (yuav tsum siab thaum khau raj)
- GPIO 12 (yuav tsum qis thaum khau raj)
- GPIO 15 (yuav tsum siab thaum khau raj)
Cov no yog siv los muab ESP32 rau hauv bootloader lossis flashing hom. Nyob rau feem ntau cov kev loj hlob boards nrog built-in USB / Serial, koj tsis tas yuav txhawj txog lub xeev ntawm cov pins. Lub rooj tsavxwm tso cov pins rau hauv lub xeev txoj cai rau flashing lossis khau raj hom. Xav paub ntau ntxiv ntawm ESP32 Boot Hom Xaiv tuaj yeem pom ntawm no.
Txawm li cas los xij, yog tias koj muaj cov khoom siv txuas nrog cov pins, koj yuav muaj teeb meem sim upload cov lej tshiab, flashing ESP32 nrog cov firmware tshiab, lossis rov pib dua lub rooj tsavxwm. Yog tias koj muaj qee qhov khoom siv txuas nrog rau cov hlua khi thiab koj tau txais teeb meem uploading code lossis flashing ESP32, nws yuav yog vim tias cov khoom siv no tiv thaiv ESP32 los ntawm kev nkag mus rau txoj cai. Nyeem cov ntaub ntawv xaiv khau raj khau raj kom coj koj mus rau qhov yog. Tom qab rov pib dua, flashing, lossis booting, cov pins ua haujlwm raws li qhov xav tau.
Pins HIGH ntawm Boot
Qee qhov GPIOs hloov lawv lub xeev mus rau HIGH lossis tso tawm PWM cov cim ntawm khau raj lossis rov pib dua.
Qhov no txhais tau hais tias yog tias koj muaj cov txiaj ntsig txuas nrog cov GPIOs no koj tuaj yeem tau txais cov txiaj ntsig xav tau thaum ESP32 rov pib dua lossis khau raj.
- PIB 1
- PIB 3
- PIB 5
- GPIO 6 rau GPIO 11 (txuas mus rau ESP32 integrated SPI flash nco - tsis pom zoo siv).
- PIB 14
- PIB 15
Qhib (EN)
Enable (EN) yog 3.3V regulator's enable pin. Nws tau rub tawm, yog li txuas mus rau hauv av kom lov tes taw 3.3V regulator. Qhov no txhais tau tias koj tuaj yeem siv tus pin txuas nrog lub laub khawm kom rov pib dua koj ESP32, piv txwv liample.
GPIO tam sim no kos
Qhov siab tshaj plaws tam sim no tau kos ib GPIO yog 40mA raws li "Cov Cai Ua Haujlwm Pom Zoo" ntu hauv ESP32 datasheet.
ESP32 Built-In Hall Effect Sensor
ESP32 kuj tseem muaj lub teeb pom kev zoo hauv tsev uas pom cov kev hloov pauv hauv cov hlau nplaum hauv nws qhov chaw nyob ib puag ncig
ESP32 Arduino IDE
Muaj ib qho ntxiv rau Arduino IDE uas tso cai rau koj los tsim cov ESP32 siv Arduino IDE thiab nws cov lus programming. Hauv no nyeem peb yuav qhia koj yuav ua li cas rau nruab ESP32 board hauv Arduino IDE txawm tias koj siv Windows, Mac OS X lossis Linux.
Yam yuavtsum tau kawm uantej: Nruab Arduino IDE
Ua ntej pib txheej txheem kev teeb tsa no, koj yuav tsum muaj Arduino IDE nruab rau hauv koj lub computer. Muaj ob lub versions ntawm Arduino IDE koj tuaj yeem nruab: version 1 thiab version 2.
Koj tuaj yeem rub tawm thiab nruab Arduino IDE los ntawm nyem rau ntawm qhov txuas hauv qab no: arduino.cc/en/Main/Software
Qhov twg Arduino IDE version peb pom zoo? Tam sim no, muaj qee yam plugins rau ESP32 (zoo li SPIFFS Filesystem Uploader Plugin) uas tseem tsis tau txhawb nqa ntawm Arduino 2. Yog li, yog tias koj npaj siab yuav siv SPIFFS plugin yav tom ntej, peb pom zoo kom txhim kho cov cuab yeej cuab tam 1.8.X. Koj tsuas yog yuav tsum tau nqes mus rau ntawm Arduino software nplooj ntawv kom pom nws.
Txhim kho ESP32 Add-on hauv Arduino IDE
Txhawm rau nruab ESP32 pawg thawj coj saib hauv koj lub Arduino IDE, ua raws cov lus qhia nram qab no:
- Hauv koj lub Arduino IDE, mus rau File> nyiam
- Nkag mus rau hauv qab no rau hauv "Additional Board Manager URLs" field:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Tom qab ntawd, nyem lub pob "OK":Nco tseg: Yog tias koj twb muaj ESP8266 boards URL, koj tuaj yeem cais cov URLs nrog comma raws li hauv qab no:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Qhib cov Boards Manager. Mus rau Cov Cuab Yeej> Board> Boards Manager…Nrhiav rau ESP32 and press install button for the “ESP32 by Espressif Systems“:
Qhov ntawd yog nws. Nws yuav tsum tau ntsia tom qab ob peb feeb.
Upload Test Code
Txuas lub ESP32 board rau koj lub computer. Nrog koj Arduino IDE qhib, ua raws cov kauj ruam no:
- Xaiv koj lub Rooj Tswjhwm Saib hauv Cov Cuab Yeej> Board menu (hauv kuv rooj plaub nws yog ESP32 DEV Module)
- Xaiv qhov chaw nres nkoj (yog tias koj tsis pom COM Chaw nres nkoj hauv koj lub Arduino IDE, koj yuav tsum tau nruab CP210x USB rau UART Choj VCP Tsav Tsheb):
- Qhib cov nram qab no example sub File > Examples > WiFi
(ESP32) > WiFiScan - Ib daim duab tshiab qhib hauv koj lub Arduino IDE:
- Nias lub Upload khawm hauv Arduino IDE. Tos ob peb lub vib nas this thaum lub code compiles thiab uploads rau koj lub rooj tsavxwm.
- Yog tias txhua yam mus raws li qhov xav tau, koj yuav tsum pom qhov "Done uploading." lus.
- Qhib Arduino IDE Serial Monitor ntawm tus nqi baud ntawm 115200:
- Nias lub ESP32 on-board Enable khawm thiab koj yuav tsum pom cov tes hauj lwm muaj nyob ze koj ESP32:
Kev daws teeb meem
Yog tias koj sim upload cov duab kos tshiab rau koj ESP32 thiab koj tau txais cov lus yuam kev no "Ib qho yuam kev tuag tshwm sim: Ua tsis tiav txuas rau ESP32: Sijhawm tawm… Txuas…”. Nws txhais tau tias koj ESP32 tsis nyob hauv flashing / uploading hom.
Muaj lub npe ntawm pawg thawj coj saib zoo thiab COM por xaiv, ua raws li cov kauj ruam no:
Tuav-hauv lub pob "BOOT" hauv koj lub rooj tsavxwm ESP32
- Nias lub pob "Upload" hauv Arduino IDE kom xa koj cov duab kos:
- Tom qab koj pom "Kev Txuas ...". lus hauv koj Arduino IDE, tso tus ntiv tes los ntawm "BOOT" khawm:
- Tom qab ntawd, koj yuav tsum pom cov lus "Done uploading".
Qhov ntawd yog nws. Koj ESP32 yuav tsum muaj cov duab kos tshiab khiav. Nias lub pob "ENABLE" kom rov pib dua ESP32 thiab khiav cov duab kos tshiab.
Koj tseem yuav tau rov ua cov pob ntawd ua ntu zus txhua zaus koj xav rub tawm cov duab kos tshiab.
Project 1 ESP32 Inputs Outputs
Hauv phau ntawv qhia pib no koj yuav kawm paub nyeem cov tswv yim digital zoo li lub pob hloov thiab tswj cov txiaj ntsig digital zoo li LED siv ESP32 nrog Arduino IDE.
Yam yuavtsum tau kawm uantej
Peb mam li program ESP32 siv Arduino IDE. Yog li, xyuas kom tseeb tias koj muaj ESP32 boards add-on ntsia ua ntej pib:
- Txhim kho ESP32 Add-on hauv Arduino IDE
ESP32 Tswj Digital Outputs
Ua ntej, koj yuav tsum teeb tsa GPIO koj xav tswj raws li OUTPUT. Siv tus pinMode() ua haujlwm raws li hauv qab no:
pinMode(GPIO, OUTPUT);
Txhawm rau tswj cov txiaj ntsig digital koj tsuas yog yuav tsum siv digitalWrite() muaj nuj nqi, uas lees txais cov lus sib cav, GPIO (tus lej) koj xa mus rau, thiab lub xeev, HIGH lossis LOW.
digitalWrite(GPIO, STATE);
Tag nrho GPIOs tuaj yeem siv los ua cov khoom tawm tshwj tsis yog GPIOs 6 txog 11 (txuas mus rau kev sib xyaw SPI flash) thiab GPIOs 34, 35, 36 thiab 39 (tsuas yog GPIOs);
Kawm paub ntxiv txog ESP32 GPIOs: ESP32 GPIO Reference Guide
ESP32 Nyeem Digital Inputs
Ua ntej, teeb tsa GPIO koj xav nyeem ua INPUT, siv tus pinMode() ua haujlwm raws li hauv qab no:
pinMode(GPIO, INPUT);
Txhawm rau nyeem cov tswv yim digital, zoo li lub pob, koj siv digitalRead() ua haujlwm, uas lees txais kev sib cav, GPIO (tus lej) koj xa mus.
digitalRead(GPIO);
Txhua ESP32 GPIOs tuaj yeem siv los ua cov khoom siv, tshwj tsis yog GPIOs 6 txog 11 (txuas mus rau kev sib xyaw SPI flash).
Kawm paub ntxiv txog ESP32 GPIOs: ESP32 GPIO Reference Guide
Project Example
Txhawm rau qhia koj yuav ua li cas siv digital inputs thiab digital outputs, peb yuav tsim qhov project yooj yim example nrog lub laub khawm thiab LED. Peb mam li nyeem lub xeev ntawm lub laub khawm thiab teeb lub LED raws li tau piav qhia hauv daim duab hauv qab no.
Yam yuav tsum tau muaj
Nov yog cov npe ntawm cov khoom uas koj xav tau los tsim lub Circuit Court:
- ESP32 DEVKIT V1
- 5 hli LED
- 220 Ohm tus tiv thaiv
- Pob Tsoob
- 10k Ohm resistor
- Khoom noj khoom haus
- Jumper cov kab
Schematic daim duab
Ua ntej yuav mus, koj yuav tsum sib sau ua ke ib lub voj voog nrog LED thiab lub laub khawm.
Peb yuav txuas lub LED rau GPIO 5 thiab lub laub khawm rau GPIO 4.Code
Qhib qhov chaws Project_1_ESP32_Inputs_Outputs.ino hauv arduino IDETxoj Cai Ua Haujlwm li cas
Hauv ob kab hauv qab no, koj tsim qhov sib txawv los muab tus pins:
Lub khawm txuas nrog GPIO 4 thiab LED txuas nrog GPIO 5. Thaum siv Arduino IDE nrog ESP32, 4 sib raug rau GPIO 4 thiab 5 sib raug rau GPIO 5.
Tom ntej no, koj tsim qhov sib txawv los tuav lub xeev khawm. Los ntawm lub neej ntawd, nws yog 0 (tsis nias).
int buttonState = 0;
Hauv kev teeb tsa (), koj pib lub pob ua ib qho kev nkag, thiab LED raws li OUTPUT.
Rau qhov ntawd, koj siv tus pinMode() ua haujlwm uas lees txais tus pin koj xa mus, thiab hom: INPUT lossis OUTPUT.
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
Hauv lub voj () yog qhov uas koj nyeem lub xeev khawm thiab teeb lub LED raws li.
Nyob rau hauv kab tom ntej no, koj nyeem lub xeev khawm thiab txuag nws nyob rau hauv lub buttonState variable.
Raws li peb tau pom yav dhau los, koj siv digitalRead() ua haujlwm.
buttonState = digitalRead(buttonPin);
Cov lus hauv qab no yog cov lus qhia, xyuas seb lub xeev pob yog HIGH. Yog tias nws yog, nws tig lub LED ntawm kev siv digitalWrite() muaj nuj nqi uas lees txais raws li kev sib cav ntawm ledPin, thiab lub xeev HIGH.
yog tias (buttonState == HIGH)Yog tias lub xeev khawm tsis HIGH, koj teeb lub LED tawm. Tsuas yog teeb tsa LOW ua qhov kev sib cav thib ob rau hauv digitalWrite() ua haujlwm.
Uploading lub Code
Ua ntej nias lub khawm upload, mus rau Cov Cuab Yeej> Board, thiab xaiv lub rooj tsavxwm: DOIT ESP32 DEVKIT V1 board.
Mus rau Cov Cuab Yeej> Chaw nres nkoj thiab xaiv COM chaw nres nkoj ESP32 txuas nrog. Tom qab ntawd, nias lub pob upload thiab tos rau "Done uploading" lus.Nco tseg: Yog tias koj pom ntau cov dots (txuas… __… __) ntawm lub qhov rai debugging thiab "Tsis ua haujlwm txuas rau ESP32: Sijhawm tos rau pob ntawv header" cov lus, txhais tau tias koj yuav tsum nias lub ESP32 on-board BOOT khawm tom qab cov dots
pib tshwm. Kev daws teeb meem
Ua qauv qhia
Tom qab uploading code, sim koj lub voj voog. Koj lub LED yuav tsum teeb thaum koj nias lub laub khawm:Thiab tua thaum koj tso nws:
Project 2 ESP32 Analog Inputs
Qhov project no qhia yuav ua li cas nyeem analog inputs nrog ESP32 siv Arduino IDE.
Kev nyeem ntawv analog yog qhov tseem ceeb rau kev nyeem cov txiaj ntsig los ntawm cov khoom sib txawv xws li potentiometers, lossis analog sensors.
Analog Inputs (ADC)
Kev nyeem tus nqi analog nrog ESP32 txhais tau tias koj tuaj yeem ntsuas qhov sib txawv ntawm voltage theem ntawm 0 V thiab 3.3 V.
Qhov voltage ntsuas yog ces muab rau tus nqi ntawm 0 thiab 4095, nyob rau hauv uas 0 V sib raug rau 0, thiab 3.3 V sib raug rau 4095.tage ntawm 0 V thiab 3.3 V yuav muab tus nqi sib thooj nyob nruab nrab.ADC yog Non-linear
Qhov zoo tshaj plaws, koj yuav xav kom muaj tus cwj pwm tawm thaum siv ESP32 ADC pins.
Txawm li cas los xij, qhov ntawd tsis tshwm sim. Qhov koj yuav tau txais yog tus cwj pwm raws li qhia hauv kab ntawv hauv qab no:Tus cwj pwm no txhais tau tias koj ESP32 tsis tuaj yeem paub qhov txawv ntawm 3.3 V los ntawm 3.2 V.
Koj yuav tau txais tus nqi tib yam rau ob qho tib si voltagib: 4095.
Tib yam tshwm sim rau tsawg heev voltage qhov tseem ceeb: rau 0 V thiab 0.1 V koj yuav tau txais tib tus nqi: 0. Koj yuav tsum nco ntsoov qhov no thaum siv ESP32 ADC pins.
analogRead() Function
Nyeem ib qho analog tawm tswv yim nrog ESP32 siv Arduino IDE yog qhov yooj yim li kev siv analogRead() muaj nuj nqi. Nws lees txais kev sib cav, GPIO koj xav nyeem:
analogRead(GPIO);
Tsuas yog 15 muaj nyob rau hauv DEVKIT V1board (version nrog 30 GPIOs).
Rub koj lub ESP32 board pinout thiab nrhiav tus ADC pins. Cov no yog highlighted nrog ib tug liab ciam teb nyob rau hauv daim duab hauv qab no.Cov analog input pins muaj 12-ntsis daws teeb meem. Qhov no txhais tau tias thaum koj nyeem ib qho analog input, nws qhov ntau yuav txawv ntawm 0 txog 4095.
Nco tseg: ADC2 tus pins tsis tuaj yeem siv thaum siv Wi-Fi. Yog li, yog tias koj siv Wi-Fi thiab koj muaj teeb meem tau txais tus nqi los ntawm ADC2 GPIO, koj tuaj yeem xav siv ADC1 GPIO hloov, uas yuav tsum daws koj qhov teeb meem.
Txhawm rau pom tias txhua yam kev sib raug zoo li cas, peb yuav ua kom yooj yim example nyeem ib tug analog nqi ntawm ib tug potentiometer.
Yam yuav tsum tau muaj
Rau qhov no example, koj xav tau cov nram qab no:
- ESP32 DEVKIT V1 Board
- Potentiometer
- Khoom noj khoom haus
- Jumper cov kab
Schematic
Xa ib lub potentiometer rau koj ESP32. Lub potentiometer nruab nrab tus pin yuav tsum txuas nrog GPIO 4. Koj tuaj yeem siv cov duab kos duab hauv qab no ua ib qho kev siv.Code
Peb mam li program ESP32 siv Arduino IDE, yog li xyuas kom koj muaj ESP32 add-on ntsia ua ntej ua haujlwm: (Yog tias koj tau ua tiav cov kauj ruam no, koj tuaj yeem hla mus rau kauj ruam tom ntej.)
Txhim kho ESP32 Add-on hauv Arduino IDE
Qhib qhov chaws Project_2_ESP32_Inputs_Outputs.ino hauv arduino IDECov cai no tsuas yog nyeem cov txiaj ntsig ntawm potentiometer thiab luam tawm cov txiaj ntsig hauv Serial Monitor.
Hauv txoj cai, koj pib los ntawm kev txhais cov GPIO lub potentiometer txuas nrog. Hauv no example, GPIO 4.Hauv kev teeb tsa (), pib qhov kev sib txuas lus sib txuas ntawm tus nqi baud ntawm 115200.
Hauv lub voj (), siv qhov ua haujlwm analogRead() los nyeem cov lus qhia analog los ntawm potPin.
Thaum kawg, luam tawm cov txiaj ntsig tau nyeem los ntawm potentiometer hauv lub ntsuas ntsuas.
Upload tus lej muab rau koj ESP32. Xyuas kom tseeb tias koj muaj lub rooj tsavxwm zoo thiab COM chaw nres nkoj xaiv hauv cov cuab yeej ntawv qhia zaub mov.
Kev xeem Example
Tom qab uploading cov cai thiab nias lub pob pib dua ESP32, qhib Serial Monitor ntawm tus nqi baud ntawm 115200. Tig lub potentiometer thiab pom cov txiaj ntsig hloov.Tus nqi siab tshaj plaws uas koj yuav tau txais yog 4095 thiab qhov tsawg kawg nkaus tus nqi yog 0.
Wrapping Up
Hauv tsab xov xwm no koj tau kawm yuav ua li cas nyeem cov tswv yim analog siv ESP32 nrog Arduino IDE. Hauv cov ntsiab lus:
- Lub ESP32 DEVKIT V1 DOIT board (version nrog 30 pins) muaj 15 ADC tus pins koj tuaj yeem siv los nyeem analog inputs.
- Cov pins no muaj kev daws teeb meem ntawm 12 cov khoom, uas txhais tau tias koj tuaj yeem tau txais txiaj ntsig los ntawm 0 txog 4095.
- Txhawm rau nyeem tus nqi hauv Arduino IDE, koj tsuas yog siv analogRead() muaj nuj nqi.
- ESP32 ADC tus pins tsis muaj tus cwj pwm linear. Tej zaum koj yuav tsis paub qhov txawv ntawm 0 thiab 0.1V, lossis nruab nrab ntawm 3.2 thiab 3.3V. Koj yuav tsum nco ntsoov qhov ntawd thaum siv ADC tus pins.
Project 3 ESP32 PWM (Analog Output)
Hauv no nyeem peb yuav qhia koj yuav ua li cas tsim PWM cov cim nrog ESP32 siv Arduino IDE. Raws li ib tug examppeb yuav tsim ib lub voj voog yooj yim uas dims ib qho LED siv LED PWM tswj ntawm ESP32.ESP32 LED PWM Controller
ESP32 muaj LED PWM maub los nrog 16 txoj kev ywj pheej uas tuaj yeem teeb tsa los tsim PWM cov cim nrog cov khoom sib txawv.
Nov yog cov kauj ruam uas koj yuav tau ua raws kom dim LED nrog PWM siv Arduino IDE:
- Ua ntej, koj yuav tsum xaiv PWM channel. Muaj 16 channels ntawm 0 txog 15.
- Tom qab ntawd, koj yuav tsum teeb tsa PWM teeb liab zaus. Rau ib qho LED, qhov zaus ntawm 5000 Hz yog qhov zoo siv.
- Koj kuj yuav tsum tau teeb tsa lub teeb liab lub luag haujlwm kev daws teeb meem: koj muaj kev daws teeb meem los ntawm 1 txog 16 khoom. Peb yuav siv 8-ntsis daws teeb meem, uas txhais tau hais tias koj tuaj yeem tswj lub teeb ci LED siv tus nqi ntawm 0 txog 255.
- Tom ntej no, koj yuav tsum qhia kom meej rau qhov twg GPIO lossis GPIOs lub teeb liab yuav tshwm sim. Rau qhov koj yuav siv cov haujlwm hauv qab no:
ledcAttachPin(GPIO, channel)
Txoj haujlwm no lees txais ob qhov kev sib cav. Thawj yog GPIO uas yuav tso tawm cov teeb liab, thiab qhov thib ob yog cov channel uas yuav tsim cov teeb liab. - Thaum kawg, txhawm rau tswj lub teeb ci LED siv PWM, koj siv cov haujlwm hauv qab no:
ledcWrite(channel, luag hauj lwmcycle)
Txoj haujlwm no lees txais raws li kev sib cav ntawm cov channel uas tsim cov teeb liab PWM, thiab lub voj voog ua haujlwm.
Yam yuav tsum tau muaj
Ua raws li cov lus qhia no koj xav tau cov ntu no:
- ESP32 DEVKIT V1 Board
- 5 hli LED
- 220 Ohm tus tiv thaiv
- Khoom noj khoom haus
- Jumper cov kab
Schematic
Xaim ib qho LED rau koj ESP32 raws li hauv daim duab schematic hauv qab no. LED yuav tsum txuas nrog GPIO 4.Nco tseg: koj tuaj yeem siv txhua tus pin koj xav tau, tsuav nws tuaj yeem ua raws li cov zis. Txhua tus pins uas tuaj yeem ua raws li cov zis tuaj yeem siv los ua PWM tus pins. Yog xav paub ntxiv txog ESP32 GPIOs, nyeem: ESP32 Pinout Reference: Qhov twg GPIO pins koj yuav tsum siv?
Code
Peb mam li program ESP32 siv Arduino IDE, yog li xyuas kom koj muaj ESP32 add-on ntsia ua ntej ua haujlwm: (Yog tias koj tau ua tiav cov kauj ruam no, koj tuaj yeem hla mus rau kauj ruam tom ntej.)
Txhim kho ESP32 Add-on hauv Arduino IDE
Qhib cov code Project_3_ESP32_PWM.ino hauv arduino IDEKoj pib los ntawm kev txhais tus pin lub LED txuas rau. Hauv qhov no, LED txuas nrog GPIO 4.
Tom qab ntawd, koj teeb tsa PWM teeb liab cov khoom. Koj txhais cov zaus ntawm 5000 Hz, xaiv channel 0 los tsim cov teeb liab, thiab teeb tsa kev daws teeb meem ntawm 8 ntsis. Koj tuaj yeem xaiv lwm yam khoom, txawv dua li cov no, los tsim cov PWM sib txawv.
Hauv kev teeb tsa(), koj yuav tsum teeb tsa LED PWM nrog cov khoom koj tau teev tseg ua ntej los ntawm kev siv ledcSetup() muaj nuj nqi uas lees txais cov lus sib cav, ledChannel, zaus, thiab kev daws teeb meem, raws li hauv qab no:
Tom ntej no, koj yuav tsum xaiv GPIO koj yuav tau txais lub teeb liab los ntawm. Rau qhov ntawd siv ledcAttachPin() muaj nuj nqi uas lees txais raws li kev sib cav GPIO qhov twg koj xav tau lub teeb liab, thiab cov channel uas tsim cov teeb liab. Hauv no example, peb yuav tau txais lub teeb liab nyob rau hauv lub ledPin GPIO, uas sib raug rau GPIO 4. Cov channel uas generates lub teeb liab yog lub ledChannel, uas sib raug rau channel 0.
Nyob rau hauv lub voj, koj yuav txawv lub luag hauj lwm voj voog ntawm 0 thiab 255 kom lub LED brightness.
Thiab tom qab ntawd, ntawm 255 thiab 0 kom txo qhov ci.
Txhawm rau teeb tsa qhov ci ntsa iab ntawm LED, koj tsuas yog yuav tsum siv lub ledcWrite() muaj nuj nqi uas lees txais raws li kev sib cav ntawm cov channel uas tsim cov teeb liab, thiab lub voj voog ua haujlwm.
Raws li peb tab tom siv 8-ntsis daws teeb meem, lub voj voog lub luag haujlwm yuav raug tswj los ntawm tus nqi ntawm 0 txog 255. Nco ntsoov tias hauv ledcWrite() muaj nuj nqi peb siv cov channel uas tsim cov teeb liab, thiab tsis yog GPIO.
Kev xeem Example
Upload code rau koj ESP32. Nco ntsoov tias koj muaj lub rooj tsavxwm zoo thiab COM chaw nres nkoj xaiv. Saib ntawm koj lub voj voog. Koj yuav tsum muaj lub dimmer LED uas nce thiab txo qhov ci.
Project 4 ESP32 PIR Motion Sensor
Qhov project no qhia txog yuav ua li cas txhawm rau txheeb xyuas cov lus tsa suab nrog ESP32 siv lub PIR motion sensor.Lub buzzer yuav suab lub tswb thaum kuaj pom, thiab nres lub tswb thaum tsis muaj kev txav mus los rau lub sijhawm preset (xws li 4 vib nas this)
HC-SR501 Motion Sensor ua haujlwm li cas
.Lub hauv paus ntsiab lus ntawm kev ua haujlwm ntawm HC-SR501 sensor yog raws li kev hloov pauv ntawm cov hluav taws xob infrared ntawm cov khoom txav mus los.Yuav kom kuaj tau los ntawm HC-SR501 sensor, cov khoom yuav tsum ua tau raws li ob txoj cai:
- Cov khoom yog emitting txoj kev infrared.
- Cov khoom txav los yog co
Yog li:
Yog hais tias ib yam khoom yog emitting lub infrared rays tab sis tsis txav (piv txwv li, ib tug neeg sawv tseem tsis txav), nws yuav tsis pom los ntawm lub sensor.
Yog tias ib qho khoom txav mus, tiam sis tsis muaj qhov hluav taws xob infrared (xws li, neeg hlau lossis tsheb), nws tsis pom los ntawm lub sensor.
Qhia Timers
Hauv no example peb tseem yuav qhia timers. Peb xav kom lub LED nyob twj ywm rau ib tug predetermined tus naj npawb ntawm vib nas this tom qab kuaj pom. Es tsis txhob siv ncua sijhawm () ua haujlwm uas thaiv koj cov cai thiab tsis tso cai rau koj ua lwm yam rau tus lej txiav txim, peb yuav tsum siv lub sijhawm.Kev ncua ( ) ua haujlwm
Koj yuav tsum paub txog qhov ncua sijhawm () ua haujlwm raws li nws tau siv dav. Cov haujlwm no yog qhov yooj yim heev rau siv. Nws lees txais ib tus lej int nkaus xwb raws li kev sib cav.
Tus lej no sawv cev rau lub sijhawm nyob hauv milliseconds qhov program yuav tsum tau tos kom txog thaum tsiv mus rau kab txuas ntxiv.Thaum koj ncua (1000) koj qhov kev zov me nyuam nres ntawm kab ntawd rau 1 thib ob.
ncua ( ) yog qhov thaiv kev ua haujlwm. Kev thaiv cov haujlwm tiv thaiv ib qho kev pab cuam los ntawm kev ua lwm yam kom txog thaum qhov haujlwm tshwj xeeb no tiav. Yog tias koj xav tau ntau yam dej num tshwm sim tib lub sijhawm, koj siv tsis tau ncua ().
Rau feem ntau cov haujlwm koj yuav tsum tsis txhob siv ncua sijhawm thiab siv sijhawm hloov pauv.
millis() ua haujlwm
Siv ib txoj haujlwm hu ua millis() koj tuaj yeem xa rov qab tus lej milliseconds uas tau dhau los txij li qhov kev pab cuam thawj zaug pib.Vim li cas qhov haujlwm ntawd tseem ceeb? Vim tias los ntawm kev siv qee qhov lej, koj tuaj yeem tshawb xyuas tau yooj yim npaum li cas lub sijhawm dhau los yam tsis thaiv koj cov lej.
Yam yuav tsum tau muaj
Ua raws li cov lus qhia no koj xav tau cov hauv qab no
- ESP32 DEVKIT V1 Board
- PIR suab sensor (HC-SR501)
- Nquag Buzzer
- Jumper cov kab
- Khoom noj khoom haus
SchematicNco tseg: Kev ua haujlwm voltage ntawm HC-SR501 yog 5V. Siv Vin pin los ua kom muaj zog.
Code
Ua ntej pib nrog qhov kev qhia no koj yuav tsum muaj ESP32 add-on ntsia hauv koj Arduino IDE. Ua raws li ib qho ntawm cov lus qhia hauv qab no rau nruab ESP32 ntawm Arduino IDE, yog tias koj tsis tau ua tiav.
Txhim kho ESP32 Add-on hauv Arduino IDE
Qhib qhov chaws Project_4_ESP32_PIR_Motion_Sensor.ino hauv arduino IDE.
Ua qauv qhia
Upload code rau koj lub rooj tsavxwm ESP32. Nco ntsoov tias koj muaj lub rooj tsavxwm zoo thiab COM chaw nres nkoj xaiv.Upload code siv cov kauj ruam.
Qhib Serial Monitor ntawm tus nqi baud ntawm 115200.Txav koj txhais tes rau pem hauv ntej ntawm PIR sensor. Lub buzzer yuav tsum tig rau, thiab cov lus tau luam tawm hauv Serial Monitor hais tias "Kev txav chaw pom! Buzzer tswb".
Tom qab 4 vib nas this, lub buzzer yuav tsum tua.
Project 5 ESP32 Hloov Web Server
Nyob rau hauv qhov project no koj yuav tsim ib tug standalone web server nrog ESP32 uas tswj cov zis (ob lub LEDs) siv Arduino IDE programming ib puag ncig. Cov web server yog mobile teb thiab tuaj yeem nkag tau nrog txhua yam khoom siv uas yog browser ntawm lub network hauv zos. Peb mam li qhia koj yuav ua li cas los tsim lub web server thiab yuav ua li cas cov cai ua haujlwm ib ntus.
Project Tshajview
Ua ntej yuav ncaj nraim mus rau qhov project, nws yog ib qho tseem ceeb uas yuav tau piav qhia txog qhov peb web server yuav ua, kom nws yooj yim dua ua raws cov kauj ruam tom qab.
- Cov web neeg rau zaub mov koj yuav tsim tswj ob LEDs txuas nrog ESP32 GPIO 26 thiab GPIO 27;
- Koj tuaj yeem nkag mus rau ESP32 web neeg rau zaub mov los ntawm kev ntaus ESP32 IP chaw nyob ntawm tus browser hauv lub network hauv zos;
- Los ntawm txhaj cov nyees khawm ntawm koj web server koj tuaj yeem hloov pauv lub xeev ntawm txhua LED.
Yam yuav tsum tau muaj
Rau qhov kev qhia no koj yuav xav tau cov hauv qab no:
- ESP32 DEVKIT V1 Board
- 2 x 5 mm LED
- 2 x 200 Ohm resistor
- Khoom noj khoom haus
- Jumper cov kab
Schematic
Pib los ntawm kev tsim lub voj voog. Txuas ob lub LEDs rau ESP32 raws li qhia hauv daim duab kos duab hauv qab no - ib qho LED txuas nrog GPIO 26, thiab lwm qhov rau GPIO 27.
Nco tseg: Peb tab tom siv ESP32 DEVKIT DOIT board nrog 36 tus pins. Ua ntej sib dhos lub voj voog, nco ntsoov xyuas lub pinout rau lub rooj tsavxwm koj siv.Code
Ntawm no peb muab cov cai uas tsim ESP32 web server. Qhib qhov chaws Project_5_ESP32_Switch _Web_Server.ino hauv arduino IDE, tab sis tsis txhob upload nws tseem. Koj yuav tsum ua qee qhov kev hloov pauv kom nws ua haujlwm rau koj.
Peb mam li program ESP32 siv Arduino IDE, yog li xyuas kom koj muaj ESP32 add-on ntsia ua ntej ua haujlwm: (Yog tias koj tau ua tiav cov kauj ruam no, koj tuaj yeem hla mus rau kauj ruam tom ntej.)
Txhim kho ESP32 Add-on hauv Arduino IDE
Teem Koj Cov Ntawv Pov Thawj Network
Koj yuav tsum hloov kho cov kab hauv qab no nrog koj cov ntaub ntawv pov thawj network: SSID thiab lo lus zais. Cov cai tau pom zoo rau qhov twg koj yuav tsum hloov pauv.Uploading lub Code
Tam sim no, koj tuaj yeem upload tus lej thiab thiab cov web server yuav ua haujlwm tam sim ntawd.
Ua raws li cov kauj ruam tom ntej kom upload code rau ESP32:
- Txuas koj lub rooj tsavxwm ESP32 hauv koj lub computer;
- Hauv Arduino IDE xaiv koj lub rooj tsavxwm hauv Cov Cuab Yeej> Board (hauv peb rooj plaub peb siv ESP32 DEVKIT DOIT board);
- Xaiv qhov chaw nres nkoj COM hauv Cov Cuab Yeej> Chaw nres nkoj.
- Nias lub Upload khawm hauv Arduino IDE thiab tos ob peb lub vib nas this thaum lub code compiles thiab uploads rau koj lub rooj tsavxwm.
- Tos rau "Done uploading" lus.
Nrhiav ESP IP Chaw Nyob
Tom qab uploading cov cai, qhib Serial Monitor ntawm tus nqi baud ntawm 115200.Nias lub pob ESP32 EN (rov pib dua). ESP32 txuas rau Wi-Fi, thiab tso tawm ESP IP chaw nyob ntawm Serial Monitor. Luam qhov chaw nyob IP, vim tias koj xav tau nws nkag mus rau ESP32 web server.
Nkag mus rau Web Server
Nkag mus rau qhov web neeg rau zaub mov, qhib koj lub browser, muab tshuaj txhuam ESP32 IP chaw nyob, thiab koj yuav pom cov nplooj ntawv nram qab no.
Nco tseg: Koj tus browser thiab ESP32 yuav tsum txuas nrog tib LAN.Yog tias koj saib ntawm Serial Monitor, koj tuaj yeem pom tias muaj dab tsi tshwm sim hauv keeb kwm yav dhau. ESP tau txais HTTP thov los ntawm tus neeg siv khoom tshiab (qhov no, koj tus browser).
Koj tuaj yeem pom lwm cov ntaub ntawv hais txog HTTP thov.
Ua qauv qhia
Tam sim no koj tuaj yeem sim yog koj li web server ua haujlwm zoo. Nyem cov nyees khawm los tswj cov LEDs.Tib lub sijhawm, koj tuaj yeem saib ntawm Serial Monitor kom pom tias muaj dab tsi tshwm sim hauv keeb kwm yav dhau. Rau example, thaum koj nias lub pob kom tig GPIO 26 ON, ESP32 tau txais kev thov ntawm /26/on URL.
Thaum ESP32 tau txais qhov kev thov ntawd, nws tig lub LED txuas nrog GPIO 26 ON thiab hloov kho nws lub xeev ntawm web nplooj.
Lub pob rau GPIO 27 ua haujlwm zoo ib yam. Kuaj tias nws ua haujlwm zoo.
Txoj Cai Ua Haujlwm li cas
Hauv seem no yuav ua tib zoo saib cov cai kom pom tias nws ua haujlwm li cas.
Thawj qhov koj yuav tsum tau ua yog suav nrog lub tsev qiv ntawv WiFi.Raws li tau hais dhau los, koj yuav tsum tau ntxig koj ssid thiab lo lus zais hauv cov kab hauv qab no hauv ob nqe lus.
Ces, koj teev koj web server rau chaw nres nkoj 80.
Cov kab hauv qab no tsim qhov sib txawv los khaws cov header ntawm HTTP thov:
Tom ntej no, koj tsim auxiliar variables khaws cia lub xeev tam sim no ntawm koj outputs. Yog tias koj xav ntxiv cov zis ntau ntxiv thiab txuag nws lub xeev, koj yuav tsum tsim kom muaj ntau qhov sib txawv.
Koj kuj yuav tsum tau muab GPIO rau txhua qhov ntawm koj cov txiaj ntsig. Ntawm no peb siv GPIO 26 thiab GPIO 27. Koj tuaj yeem siv lwm yam GPIOs tsim nyog.
teeb tsa()
Tam sim no, cia peb mus rau hauv kev teeb tsa (). Ua ntej, peb pib sib txuas lus sib txuas ntawm tus nqi baud ntawm 115200 rau kev debugging lub hom phiaj.Koj kuj txhais tau tias koj GPIOs ua OUTPUTs thiab teem rau LOW.
Cov kab hauv qab no pib qhov kev sib txuas ntawm Wi-Fi nrog WiFi.begin(ssid, lo lus zais), tos kom muaj kev sib txuas zoo thiab luam tawm ESP IP chaw nyob hauv Serial Monitor.
voj()
Nyob rau hauv lub voj () peb program dab tsi tshwm sim thaum tus neeg siv tshiab tsim kev sib txuas nrog rau web server.
ESP32 yeej ib txwm mloog rau cov neeg tuaj nrog cov kab hauv qab no:Thaum qhov kev thov tau txais los ntawm tus neeg siv khoom, peb yuav khaws cov ntaub ntawv tuaj. Lub voj voog uas tom qab ntawd yuav ua haujlwm ntev npaum li tus neeg siv khoom txuas nrog. Peb tsis pom zoo kom hloov cov lej hauv qab no tshwj tsis yog tias koj paub tseeb tias koj ua dab tsi.
Tshooj tom ntej ntawm yog thiab lwm cov nqe lus xyuas seb lub pob twg raug nias hauv koj web nplooj, thiab tswj cov zis raws li. Raws li peb tau pom yav dhau los, peb thov rau qhov sib txawv URLs nyob ntawm lub pob nyem.
Rau example, yog tias koj tau nias lub pob GPIO 26 ON, ESP32 tau txais kev thov ntawm /26/ON URL (peb tuaj yeem pom cov ntaub ntawv ntawd ntawm HTTP header ntawm Serial Monitor). Yog li, peb tuaj yeem tshawb xyuas seb lub header muaj cov lus qhia GET / 26 / on. Yog tias nws muaj, peb hloov qhov output26state hloov pauv mus rau ON, thiab ESP32 tig lub LED rau.
Qhov no ua haujlwm zoo ib yam rau lwm cov nyees khawm. Yog li, yog tias koj xav ntxiv cov txiaj ntsig ntxiv, koj yuav tsum hloov kho qhov ntu ntawm cov cai kom suav nrog lawv.
Displaying HTML web nplooj
Lwm yam uas koj yuav tsum tau ua, yog tsim lub web nplooj. ESP32 yuav xa cov lus teb rau koj tus browser nrog qee tus lej HTML los tsim cov web nplooj.
Cov web nplooj ntawv raug xa mus rau tus neeg siv khoom siv no nthuav qhia client.println(). Koj yuav tsum sau qhov koj xav xa mus rau tus neeg siv khoom raws li kev sib cav.
Thawj qhov peb yuav tsum xa yog ib txwm kab hauv qab no, uas qhia tias peb xa HTML.Tom qab ntawd, cov kab hauv qab no ua rau web nplooj teb nyob rau hauv ib qho twg web browser.
Thiab cov hauv qab no yog siv los tiv thaiv kev thov ntawm favicon. - Koj tsis tas yuav txhawj txog kab no.
Styling cov Web Nplooj
Tom ntej no, peb muaj qee cov ntawv CSS rau style cov nyees khawm thiab cov web nplooj ntawv tsos.
Peb xaiv Helvetica font, txhais cov ntsiab lus los tso tawm kom pom raws li qhov thaiv thiab ua raws li qhov chaw.Peb style peb cov nyees khawm nrog # 4CAF50 xim, tsis muaj ciam teb, ntawv hauv xim dawb, thiab nrog cov padding no: 16px 40px. Peb kuj tau teeb tsa cov ntawv kho kom zoo nkauj kom tsis muaj ib qho, txhais cov ntawv loj, cov npoo, thiab tus cursor rau tus pointer.
Peb kuj txhais cov style rau ib lub pob thib ob, nrog rau tag nrho cov khoom ntawm lub pob peb tau txhais ua ntej, tab sis nrog cov xim sib txawv. Qhov no yuav yog qhov style rau lub khawm off.
Kev teeb tsa Web Page Thawj Lub Ntsiab Lus
Hauv kab tom ntej no koj tuaj yeem teeb tsa thawj lub ntsiab lus ntawm koj web nplooj. Ntawm no peb muaj "ESP32 Web Server", tab sis koj tuaj yeem hloov cov ntawv no rau yam koj nyiam.Tso cov nyees khawm thiab lub xeev sib thooj
Tom qab ntawd, koj sau ib nqe lus los tso saib GPIO 26 lub xeev tam sim no. Raws li koj tuaj yeem pom peb siv cov output26State hloov pauv, kom lub xeev hloov kho tam sim ntawd thaum qhov hloov pauv no.Tom qab ntawd, peb tso saib lub khawm rau lossis tawm, nyob ntawm lub xeev tam sim no ntawm GPIO. Yog tias lub xeev tam sim no ntawm GPIO raug kaw, peb pom lub pob ON, yog tias tsis yog, peb tso tawm khawm OFF.
Peb siv tib txoj kev rau GPIO 27.
Kaw qhov kev sib txuas
Thaum kawg, thaum cov lus teb xaus, peb tshem tawm qhov hloov pauv ntawm lub taub hau, thiab nres kev sib txuas nrog tus neeg siv khoom nrog client.stop().
Wrapping Up
Nyob rau hauv no nyeem peb twb qhia koj yuav ua li cas los tsim ib tug web server nrog ESP32. Peb tau qhia koj ib qho yooj yim example uas tswj ob LEDs, tab sis lub tswv yim yog los hloov cov LEDs nrog ib tug relay, los yog lwm yam tso zis koj xav tswj.
Project 6 RGB LED Web Server
Hauv qhov project no peb yuav qhia koj yuav ua li cas tswj lub RGB LED nrog lub rooj tsavxwm ESP32 siv a web server nrog tus xaiv xim.
Project Tshajview
Ua ntej pib, cia saib seb qhov project no ua haujlwm li cas:
- Lub ESP32 web server qhia cov xim xaiv.
- Thaum koj xaiv xim, koj tus browser ua qhov kev thov ntawm a URL uas muaj R, G, thiab B tsis nyob ntawm cov xim xaiv.
- Koj ESP32 tau txais qhov kev thov thiab faib tus nqi rau txhua qhov xim tsis muaj xim.
- Tom qab ntawd, nws xa PWM teeb liab nrog tus nqi sib xws rau GPIOs uas tswj RGB LED.
RGB LEDs ua haujlwm li cas?
Nyob rau hauv ib qho cathode RGB LED, tag nrho peb LEDs sib koom qhov kev sib txuas tsis zoo (cathode).Tag nrho cov khoom muaj nyob hauv cov khoom siv yog hom-cathode RGB.Yuav tsim cov xim sib txawv li cas?
Nrog RGB LED koj tuaj yeem, tau kawg, tsim lub teeb liab, ntsuab, thiab xiav, thiab los ntawm kev teeb tsa kev siv ntawm txhua lub LED, koj tuaj yeem tsim lwm yam xim thiab.
Rau example, los tsim lub teeb xiav nkaus xwb, koj yuav teeb lub xiav LED mus rau qhov siab tshaj plaws thiab cov ntsuab thiab liab LEDs rau qhov qis tshaj plaws. Rau lub teeb dawb, koj yuav teeb tag nrho peb lub LEDs rau qhov siab tshaj plaws.
Kev sib xyaw xim
Txhawm rau tsim lwm cov xim, koj tuaj yeem muab peb cov xim sib txawv. Txhawm rau kho qhov kev siv ntawm txhua LED koj tuaj yeem siv PWM teeb liab.
Vim tias cov LEDs nyob ze rau ib leeg, peb ob lub qhov muag pom qhov tshwm sim ntawm kev sib xyaw ntawm cov xim, tsis yog peb xim ib leeg.
Kom muaj lub tswv yim yuav ua li cas muab cov xim sib xyaw, ua tib zoo saib ntawm daim duab hauv qab no.
Qhov no yog daim ntawv qhia sib xyaw xim yooj yim tshaj plaws, tab sis muab koj lub tswv yim nws ua haujlwm li cas thiab tsim cov xim sib txawv.Yam yuav tsum tau muaj
Rau qhov project no koj xav tau cov hauv qab no:
- ESP32 DEVKIT V1 Board
- RGB LED teeb
- 3 x 220 ohm resistors
- Jumper cov kab
- Khoom noj khoom haus
SchematicCode
Peb mam li program ESP32 siv Arduino IDE, yog li xyuas kom koj muaj ESP32 add-on ntsia ua ntej ua haujlwm: (Yog tias koj tau ua tiav cov kauj ruam no, koj tuaj yeem hla mus rau kauj ruam tom ntej.)
- Txhim kho ESP32 Add-on hauv Arduino IDE
Tom qab sib dhos lub voj voog, Qhib qhov chaws
Project_6_RGB_LED_Web_Server.ino hauv arduino IDE.
Ua ntej uploading tus lej, tsis txhob hnov qab ntxig koj cov ntaub ntawv pov thawj network kom ESP tuaj yeem txuas rau koj lub network hauv zos.Txoj cai ua haujlwm li cas
Daim duab ESP32 siv lub tsev qiv ntawv WiFi.h.Cov kab hauv qab no txhais cov hlua sib txawv los tuav R, G, thiab B tsis tau los ntawm qhov kev thov.
Plaub qhov sib txawv tom ntej no yog siv los txiav txim siab HTTP thov tom qab.
Tsim peb qhov sib txawv rau GPIOs uas yuav tswj cov kab nrib R, G, thiab B. Hauv qhov no, peb siv GPIO 13, GPIO 12, thiab GPIO 14.
Cov GPIOs no yuav tsum tso tawm PWM cov cim, yog li peb yuav tsum tau teeb tsa PWM cov khoom ua ntej. Teem lub PWM teeb liab zaus rau 5000 Hz. Tom qab ntawd, koom nrog PWM channel rau txhua xim
Thiab thaum kawg, teeb tsa qhov kev daws teeb meem ntawm PWM raws rau 8-ntsis
Hauv kev teeb tsa(), muab lub zog PWM rau PWM raws
Txuas cov PWM channel rau cov GPIOs sib xws
Tshooj cai hauv qab no qhia cov xim xaiv hauv koj li web nplooj ntawv thiab ua kev thov raws li xim koj tau xaiv.
Thaum koj xaiv xim, koj tau txais ib daim ntawv thov nrog cov hom hauv qab no.
Yog li, peb yuav tsum tau faib cov hlua no kom tau txais R, G, thiab B tsis. Cov tsis tau txais kev cawmdim hauv redString, greenString, thiab blueString variables thiab tuaj yeem muaj qhov tseem ceeb ntawm 0 thiab 255.Txhawm rau tswj cov sawb nrog ESP32, siv ledcWrite() ua haujlwm los tsim PWM cov cim nrog cov txiaj ntsig txiav txim siab los ntawm HTTP thov.
Nco tseg: Learn more about PWM with ESP32: Project 3 ESP32 PWM(Analog Output)
Txhawm rau tswj cov sawb nrog ESP8266, peb tsuas yog yuav tsum siv
lub analogWrite() muaj nuj nqi los tsim PWM cov cim nrog cov txiaj ntsig txiav txim siab los ntawm HTPP thov.
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
Vim tias peb tau txais cov txiaj ntsig hauv txoj hlua sib txawv, peb yuav tsum hloov lawv mus rau cov lej siv tus qauv toInt() .
Ua qauv qhia
Tom qab tso koj cov ntaub ntawv pov thawj hauv lub network, xaiv lub rooj tsav xwm sab xis thiab COM chaw nres nkoj thiab xa cov lej rau koj ESP32.Upload code siv cov kauj ruam.
Tom qab uploading, qhib Serial Monitor ntawm tus nqi baud ntawm 115200 thiab nias lub pob ESP Enable/Reset khawm. Koj yuav tsum tau txais board IP chaw nyob.Qhib koj tus browser thiab ntxig rau ESP IP chaw nyob. Tam sim no, siv cov xim xaiv xaiv xim rau RGB LED.
Tom qab ntawd, koj yuav tsum nias lub pob "Hloov xim" kom cov xim ua haujlwm.Txhawm rau tua RGB LED, xaiv cov xim dub.
Cov xim muaj zog tshaj plaws (nyob rau sab saum toj ntawm cov xim xaiv), yog cov uas yuav tsim cov txiaj ntsig zoo dua.
Project 7 ESP32 Relay Web Server
Siv lub relay nrog ESP32 yog ib txoj hauv kev zoo los tswj AC cov khoom siv hauv tsev nyob deb. Qhov kev qhia no piav qhia yuav ua li cas tswj lub relay module nrog ESP32.
Peb mam li saib yuav ua li cas lub relay module ua haujlwm, yuav ua li cas txuas lub relay mus rau ESP32 thiab tsim ib qho web server tswj lub relay remotely.
Taw qhia Relays
Lub relay yog ib qho hluav taws xob hloov hluav taws xob thiab zoo li lwm yam hloov pauv, nws tuaj yeem qhib lossis kaw, cia tam sim no mus los tsis tau. Nws tuaj yeem tswj tau nrog qis voltages, zoo li 3.3V muab los ntawm ESP32 GPIOs thiab tso cai rau peb los tswj lub siab vol.tages zoo li 12V, 24V lossis mains voltage (230V hauv Tebchaws Europe thiab 120V hauv Tebchaws Meskas).Nyob rau sab laug, muaj ob txheej ntawm peb lub qhov (socket) los txuas siab voltages, thiab cov pins ntawm sab xis (low-voltage) txuas rau ESP32 GPIOs.
Cov Voltage Kev Sib TxuasLub relay module qhia nyob rau hauv daim duab dhau los muaj ob qhov txuas, txhua qhov muaj peb lub qhov (socket): common (COM), Nquag kaw (NC), thiab Nquag Qhib (NO).
- COM: txuas rau tam sim no koj xav tswj (tseem ceeb voltagthiab).
- NC (Ib txwm Kaw): qhov kev teeb tsa ib txwm raug kaw yog siv thaum koj xav kom lub relay kaw los ntawm lub neej ntawd. Lub NC yog COM pins txuas nrog, txhais tau hais tias qhov tam sim no ntws tshwj tsis yog tias koj xa lub teeb liab los ntawm ESP32 mus rau lub relay module qhib lub Circuit Court thiab nres tam sim no ntws.
- TSIS MUAJ (Nquag Qhib): qhov ib txwm qhib kev teeb tsa ua haujlwm rau lwm txoj hauv kev: tsis muaj kev sib txuas ntawm NO thiab COM pins, yog li lub voj voog tawg tshwj tsis yog koj xa lub teeb liab los ntawm ESP32 kom kaw lub voj voog.
Tswj PinsThe low-voltage sab muaj ib txheej ntawm plaub tus pins thiab ib txheej ntawm peb tus pins. Thawj txheej muaj VCC thiab GND los txhawb lub module, thiab cov tswv yim 1 (IN1) thiab cov tswv yim 2 (IN2) los tswj cov hauv qab thiab sab saum toj relays, feem.
Yog tias koj lub relay module tsuas muaj ib qho channel, koj tsuas muaj ib tus PIN xwb. Yog tias koj muaj plaub channel, koj yuav muaj plaub IN pins, thiab lwm yam.
Lub teeb liab koj xa mus rau IN pins, txiav txim siab seb lub relay puas ua haujlwm lossis tsis ua. Lub relay yog tshwm sim thaum lub tswv yim mus rau hauv qab txog 2V. Qhov no txhais tau tias koj yuav muaj cov xwm txheej hauv qab no:
- Nquag Kaw configuration (NC):
- HIGH teeb liab - tam sim no ntws
- LOW teeb liab - tam sim no tsis ntws
- Nquag Qhib configuration (NO):
- HIGH teeb liab - tam sim no tsis ntws
- LOW teeb liab - tam sim no hauv ntws
Koj yuav tsum siv qhov kev teeb tsa ib txwm kaw thaum lub sijhawm tam sim no yuav tsum ntws feem ntau, thiab koj tsuas xav nres nws qee zaus.
Siv ib txwm qhib configuration thaum koj xav kom cov tam sim no ntws qee zaus (example, tig alamp qee zaus).
Kev xaiv fais fabCov pins thib ob muaj GND, VCC, thiab JD-VCC pins.
JD-VCC tus pin powers lub electromagnet ntawm relay. Daim ntawv ceeb toom tias lub module muaj jumper cap txuas VCC thiab JD-VCC pins; qhov pom ntawm no yog daj, tab sis koj li yuav yog xim txawv.
Nrog lub jumper cap rau, VCC thiab JD-VCC pins txuas nrog. Qhov ntawd txhais tau hais tias tus relay electromagnet yog ncaj qha los ntawm ESP32 lub hwj chim tus pin, yog li cov relay module thiab ESP32 circuits tsis nyob ib leeg ntawm ib leeg.
Yog tsis muaj lub jumper cap, koj yuav tsum muab lub zog ywj pheej los txhawb lub zog ntawm relay electromagnet los ntawm JD-VCC tus pin. Qhov kev teeb tsa lub cev cais cov relays los ntawm ESP32 nrog lub module built-in optocoupler, uas tiv thaiv kev puas tsuaj rau ESP32 thaum muaj hluav taws xob spikes.
SchematicCeeb toom: Kev siv high voltage cov khoom siv fais fab tuaj yeem ua rau raug mob hnyav.
Yog li ntawd, 5mm LEDs yog siv los hloov cov khoom siv siab voltage qhov muag teev hauv qhov kev sim. Yog koj tsis paub nrog mains voltage thov ib tug neeg uas yuav pab tau koj. Thaum lub programming ESP los yog xaim koj lub voj voog kom paub tseeb tias txhua yam raug txiav tawm ntawm lub mains voltage.Txhim kho lub tsev qiv ntawv rau ESP32
Yuav tsim qhov no web server, peb siv ESPAsyncWebServer library thiab AsyncTCP Library.
Txhim kho ESPAsyncWebServer qiv
Ua raws li cov kauj ruam tom ntej rau nruab lub ESPAsyncWebServer tsev qiv ntawv:
- Nyem qhov no mus download tau ESPAsyncWebServer qiv. Koj yuav tsum muaj
ib lub .zip nplaub tshev hauv koj daim nplaub tshev Downloads - Unzip lub .zip nplaub tshev thiab koj yuav tsum tau ESPAsyncWebServer-master folder
- Hloov npe koj daim nplaub tshev los ntawm ESPAsyncWebServer-master rau ESPAsyncWebServer
- Txav mus rau ESPAsyncWebServer folder rau koj Arduino IDE installation cov tsev qiv ntawv nplaub tshev
Xwb, hauv koj lub Arduino IDE, koj tuaj yeem mus rau Sketch> suav nrog
Lub tsev qiv ntawv> Ntxiv .ZIP tsev qiv ntawv… thiab xaiv lub tsev qiv ntawv uas koj nyuam qhuav rub tawm.
Txhim kho AsyncTCP Library rau ESP32
Cov ESPAsyncWebServer tsev qiv ntawv xav tau AsyncTCP tsev qiv ntawv ua haujlwm. Ua raws
cov kauj ruam tom ntej rau nruab lub tsev qiv ntawv:
- Nyem qhov no mus download tau lub tsev qiv ntawv AsyncTCP. Koj yuav tsum muaj .zip nplaub tshev hauv koj daim nplaub tshev Downloads
- Unzip lub .zip nplaub tshev thiab koj yuav tsum tau AsyncTCP-master nplaub tshev
1. Rename koj lub nplaub tshev los ntawm AsyncTCP-master rau AsyncTCP
3. Txav mus rau AsyncTCP nplaub tshev rau koj Arduino IDE installation cov tsev qiv ntawv nplaub tshev
4. Thaum kawg, rov qhib koj lub Arduino IDE
Xwb, hauv koj lub Arduino IDE, koj tuaj yeem mus rau Sketch> suav nrog
Lub tsev qiv ntawv> Ntxiv .ZIP tsev qiv ntawv… thiab xaiv lub tsev qiv ntawv uas koj nyuam qhuav rub tawm.
Code
Peb mam li program ESP32 siv Arduino IDE, yog li xyuas kom koj muaj ESP32 add-on ntsia ua ntej ua haujlwm: (Yog tias koj tau ua tiav cov kauj ruam no, koj tuaj yeem hla mus rau kauj ruam tom ntej.)
Txhim kho ESP32 Add-on hauv Arduino IDE
Tom qab txhim kho cov tsev qiv ntawv xav tau, Qhib qhov chaws Project_7_ESP32_Relay_Web_Server.ino hauv arduino IDE.
Ua ntej uploading tus lej, tsis txhob hnov qab ntxig koj cov ntaub ntawv pov thawj network kom ESP tuaj yeem txuas rau koj lub network hauv zos.Ua qauv qhia
Tom qab ua qhov tsim nyog hloov pauv, xa cov lej rau koj ESP32.Upload code siv cov kauj ruam.
Qhib Serial Monitor ntawm tus nqi baud ntawm 115200 thiab nias lub pob ESP32 EN kom tau nws qhov chaw nyob IP.Tom qab ntawd, qhib qhov browser hauv koj lub network hauv zos thiab ntaus ESP32 IP chaw nyob kom nkag mus rau qhov chaw nyob. web server.
Qhib Serial Monitor ntawm tus nqi baud ntawm 115200 thiab nias lub pob ESP32 EN kom tau nws qhov chaw nyob IP.Tom qab ntawd, qhib qhov browser hauv koj lub network hauv zos thiab ntaus ESP32 IP chaw nyob kom nkag mus rau qhov chaw nyob. web server.Nco tseg: Koj tus browser thiab ESP32 yuav tsum txuas nrog tib LAN.
Koj yuav tsum tau txais ib yam dab tsi raws li hauv qab no nrog rau ob lub nyees khawm raws li tus naj npawb ntawm relays koj tau teev tseg hauv koj cov cai.Tam sim no, koj tuaj yeem siv cov nyees khawm los tswj koj cov relays siv koj lub smartphone.
Project_8_Output_State_Synchronization_ Web_Server
Qhov project no qhia txog yuav ua li cas tswj ESP32 lossis ESP8266 cov zis siv a web server thiab lub cev khawm ib txhij. Lub xeev cov zis tau hloov kho rau ntawm web nplooj ntawv seb nws puas hloov ntawm lub cev khawm lossis web server.
Project Tshajview
Cia wb mus saib seb qhov project ua haujlwm li cas.ESP32 lossis ESP8266 hosts a web server uas tso cai rau koj los tswj lub xeev ntawm cov zis;
- Lub xeev tso zis tam sim no yog tso tawm rau ntawm web neeg rau zaub mov;
- ESP kuj tseem txuas nrog lub khawm lub cev uas tswj tau tib qhov tso zis;
- Yog tias koj hloov lub xeev tso zis siv lub cev puhsbutton, nws lub xeev tam sim no kuj tau hloov kho rau ntawm web server.
Hauv cov ntsiab lus, qhov project no tso cai rau koj los tswj cov khoom siv tib yam siv a web server thiab nias khawm ib txhij. Thaum twg cov zis lub xeev hloov, lub web server hloov tshiab.
Yam yuav tsum tau muaj
Nov yog cov npe ntawm cov khoom uas koj xav tau los tsim lub Circuit Court:
- ESP32 DEVKIT V1 Board
- 5 hli LED
- 220 Ohm resistor
- Pob Tsoob
- 10k Ohm resistor
- Khoom noj khoom haus
- Jumper cov kab
SchematicTxhim kho lub tsev qiv ntawv rau ESP32
Yuav tsim qhov no web server, peb siv ESPAsyncWebCov tsev qiv ntawv neeg rau zaub mov thiab AsyncTCP Library.(Yog tias koj tau ua tiav cov kauj ruam no, koj tuaj yeem hla mus rau kauj ruam tom ntej.)
Txhim kho ESPAsyncWebServer qiv
Ua raws li cov kauj ruam tom ntej rau nruab ESPAsyncWebServer Library:
- Nyem qhov no mus download tau ESPAsyncWebServer qiv. Koj yuav tsum muaj
ib lub .zip nplaub tshev hauv koj daim nplaub tshev Downloads - Unzip lub .zip nplaub tshev thiab koj yuav tsum tau ESPAsyncWebServer-master folder
- Hloov npe koj daim nplaub tshev los ntawm ESPAsyncWebServer-master rau ESPAsyncWebServer
- Txav mus rau ESPAsyncWebServer folder rau koj Arduino IDE installation cov tsev qiv ntawv nplaub tshev
Xwb, hauv koj lub Arduino IDE, koj tuaj yeem mus rau Sketch> suav nrog
Lub tsev qiv ntawv> Ntxiv .ZIP tsev qiv ntawv… thiab xaiv lub tsev qiv ntawv uas koj nyuam qhuav rub tawm.
Txhim kho AsyncTCP Library rau ESP32
ESPAsyncWebLub tsev qiv ntawv neeg rau zaub mov xav kom lub tsev qiv ntawv AsyncTCP ua haujlwm. Ua raws li cov kauj ruam tom ntej txhawm rau nruab lub tsev qiv ntawv:
- Nyem qhov no mus download tau lub tsev qiv ntawv AsyncTCP. Koj yuav tsum muaj .zip nplaub tshev hauv koj daim nplaub tshev Downloads
- Unzip lub .zip nplaub tshev thiab koj yuav tsum tau AsyncTCP-master nplaub tshev
- Hloov npe koj daim nplaub tshev los ntawm AsyncTCP-master rau AsyncTCP
- Txav mus rau AsyncTCP nplaub tshev rau koj Arduino IDE installation cov tsev qiv ntawv nplaub tshev
- Thaum kawg, rov qhib koj Arduino IDE
Xwb, hauv koj lub Arduino IDE, koj tuaj yeem mus rau Sketch> suav nrog
Lub tsev qiv ntawv> Ntxiv .ZIP tsev qiv ntawv… thiab xaiv lub tsev qiv ntawv uas koj nyuam qhuav rub tawm.
Code
Peb mam li program ESP32 siv Arduino IDE, yog li xyuas kom koj muaj ESP32 add-on ntsia ua ntej ua haujlwm: (Yog tias koj tau ua tiav cov kauj ruam no, koj tuaj yeem hla mus rau kauj ruam tom ntej.)
Txhim kho ESP32 Add-on hauv Arduino IDE
Tom qab txhim kho cov tsev qiv ntawv xav tau, Qhib cov cai
Project_8_Output_State_Synchronization_Web_Server.ino hauv arduino IDE.
Ua ntej uploading tus lej, tsis txhob hnov qab ntxig koj cov ntaub ntawv pov thawj network kom ESP tuaj yeem txuas rau koj lub network hauv zos.
Txoj Cai Ua Haujlwm li cas
Button State thiab Output State
Lub ledState kuj sib txawv tuav lub LED tso zis lub xeev. Rau lub neej ntawd, thaum lub web server pib, nws yog LOW.
Lub buttonState thiab lastButtonState yog siv los xyuas seb lub laub khawm tau nias los yog tsis.Khawm (web server)
Peb tsis suav nrog HTML los tsim lub pob ntawm qhov sib txawv index_html.
Tias yog vim li cas peb xav kom hloov tau nws nyob ntawm qhov tam sim no LED lub xeev uas tuaj yeem hloov nrog lub laub khawm.
Yog li, peb tau tsim qhov chaw rau lub pob %BUTTONPLACEHOLDER% uas yuav hloov nrog HTML ntawv los tsim lub pob tom qab ntawm cov cai (qhov no yog ua tiav hauv processor() muaj nuj nqi).processor()
Lub processor() muaj nuj nqi hloov cov chaw tso rau ntawm HTML ntawv nrog cov nqi tiag. Ua ntej, nws xyuas seb cov ntawv HTML puas muaj ib qho twg
chaw tuav %BUTTONPLACEHOLDER%.Tom qab ntawd, hu rau theoutputState() muaj nuj nqi uas rov qab rau lub xeev cov zis tam sim no. Peb txuag nws nyob rau hauv outputStateValue sib txawv.
Tom qab ntawd, siv tus nqi ntawd los tsim cov ntawv HTML los tso saib lub pob nrog lub xeev txoj cai:
HTTP Tau Txais Kev Thov Hloov Lub Xeev (JavaScript)
Thaum koj nias lub pob, thetoggleCheckbox() muaj nuj nqi hu ua. Cov haujlwm no yuav ua rau qhov kev thov sib txawv URLs tig lub LED rau lossis tawm.Txhawm rau qhib lub LED, nws ua rau kev thov ntawm /update?state=1 URL:
Txwv tsis pub, nws ua rau kev thov ntawm /update?state=0 URL.
HTTP GET Thov kom Hloov Kho Lub Xeev (JavaScript)
Txhawm rau kom cov zis lub xeev hloov tshiab ntawm lub web server, peb hu rau cov haujlwm hauv qab no uas ua rau kev thov tshiab ntawm / xeev URL txhua thib ob.Kov Thov
Tom qab ntawd, peb yuav tsum daws qhov tshwm sim thaum ESP32 lossis ESP8266 tau txais kev thov rau cov URLs.
Thaum qhov kev thov tau txais ntawm lub hauv paus /URL, peb xa cov nplooj ntawv HTML nrog rau cov processor.Cov kab hauv qab no xyuas seb koj puas tau txais kev thov ntawm /update?state=1 lossis /update?state=0 URL thiab hloov lub ledState raws li.
Thaum tau txais qhov kev thov ntawm / xeev URL, peb xa cov zis tam sim no:
voj()
Nyob rau hauv lub voj (), peb debounce lub laub khawm thiab tig lub LED rau los yog tawm nyob ntawm seb tus nqi ntawm lub ledState sib txawv.Ua qauv qhia
Upload code rau koj lub rooj tsavxwm ESP32.Upload code siv cov kauj ruam.
Tom qab ntawd, qhib Serial Monitor ntawm tus nqi baud ntawm 115200. Nias lub khawm on-board EN/RST kom tau txais yog IP chaw nyob.Qhib lub browser ntawm koj lub network hauv zos, thiab ntaus ESP IP chaw nyob. Koj yuav tsum muaj kev nkag mus rau lub web server raws li qhia hauv qab no.
Nco tseg: Koj tus browser thiab ESP32 yuav tsum txuas nrog tib LAN.Koj tuaj yeem toggle lub pob ntawm qhov web server kom tig lub LED rau.
Koj tuaj yeem tswj tau tib lub LED nrog lub cev lub cev. Nws lub xeev yuav ib txwm muab kho tshiab rau ntawm lub web server.
Project 9 ESP32 DHT11 Web Server
Hauv qhov project no, koj yuav kawm yuav ua li cas los tsim ib qho asynchronous ESP32 web server nrog DHT11 uas qhia qhov kub thiab av noo siv Arduino IDE.
Yam yuavtsum tau kawm uantej
Cov web server peb mam li tsim kho tshiab cov kev nyeem ntawv tsis tas yuav rov ua dua tshiab web nplooj.
Nrog rau qhov project no koj yuav kawm:
- Yuav ua li cas nyeem qhov kub thiab av noo los ntawm DHT sensors;
- Tsim ib qho asynchronous web server siv lub ESPAsyncWebServer qiv;
- Hloov kho lub sensor nyeem ntawv txiav tsis tas yuav rov ua dua tshiab web nplooj.
Asynchronous Web Server
Tsim lub web server peb yuav siv lub ESPAsyncWebServer qiv uas muab txoj hauv kev yooj yim los tsim ib qho asynchronous web server. Tsim ib qho asynchronous web server muaj ob peb advantages raws li tau hais hauv lub tsev qiv ntawv GitHub nplooj ntawv, xws li:
- "Kov ntau dua ib qho kev sib txuas tib lub sijhawm";
- "Thaum koj xa cov lus teb, koj tau npaj tam sim ntawd los daws lwm yam kev sib txuas thaum lub server tab tom saib xyuas xa cov lus teb hauv keeb kwm yav dhau";
- "Yooj yim template ua cav los lis templates";
Yam yuav tsum tau muaj
Txhawm rau ua kom tiav qhov kev qhia no koj xav tau cov hauv qab no:
- ESP32 kev txhim kho pawg thawj coj saib
- DHT11 Module
- Khoom noj khoom haus
- Jumper cov kab
SchematicTxhim kho Libraries
Koj yuav tsum nruab ob peb lub tsev qiv ntawv rau qhov project no:
- Cov DHT thiab cov Adafruit Unified Sensor Cov tsev qiv ntawv tsav tsheb los nyeem los ntawm DHT sensor.
- ESPAsyncWebServer thiab Async TCP cov tsev qiv ntawv los tsim cov asynchronous web server.
Ua raws li cov lus qhia hauv qab no txhawm rau txhim kho cov tsev qiv ntawv:
Txhim kho DHT Sensor Library
Txhawm rau nyeem los ntawm DHT sensor siv Arduino IDE, koj yuav tsum tau nruab qhov DHT sensor tsev qiv ntawv. Ua raws li cov kauj ruam tom ntej rau nruab lub tsev qiv ntawv.
- Nyem qhov no mus download tau lub tsev qiv ntawv DHT Sensor. Koj yuav tsum muaj .zip nplaub tshev hauv koj daim nplaub tshev Downloads
- Unzip lub .zip nplaub tshev thiab koj yuav tsum tau DHT-sensor-library-master folder
- Hloov npe koj daim nplaub tshev los ntawm DHT-sensor-library-master rau DHT_sensor
- Txav mus rau DHT_sensor nplaub tshev rau koj Arduino IDE installation cov tsev qiv ntawv nplaub tshev
- Thaum kawg, rov qhib koj Arduino IDE
Txhim kho Adafruit Unified Sensor Tsav Tsheb
Koj tseem yuav tau nruab lub Adafruit Unified Sensor Driver Library ua haujlwm nrog DHT sensor. Ua raws li cov kauj ruam tom ntej rau nruab lub tsev qiv ntawv.
- Nyem qhov no mus download tau lub tsev qiv ntawv Adafruit Unified Sensor. Koj yuav tsum muaj .zip nplaub tshev hauv koj daim nplaub tshev Downloads
- Unzip lub .zip nplaub tshev thiab koj yuav tsum tau Adafruit_sensor-master nplaub tshev
- Hloov npe koj lub nplaub tshev los ntawm Adafruit_sensor-master rau Adafruit_sensor
- Txav mus rau Adafruit_sensor nplaub tshev rau koj Arduino IDE installation cov tsev qiv ntawv nplaub tshev
- Thaum kawg, rov qhib koj Arduino IDE
Txhim kho ESPAsyncWebServer qiv
Ua raws li cov kauj ruam tom ntej rau nruab lub ESPAsyncWebServer tsev qiv ntawv:
- Nyem qhov no mus download tau ESPAsyncWebServer qiv. Koj yuav tsum muaj
ib lub .zip nplaub tshev hauv koj daim nplaub tshev Downloads - Unzip lub .zip nplaub tshev thiab koj yuav tsum
tau ESPAsyncWebServer-master folder - Hloov npe koj daim nplaub tshev los ntawm ESPAsyncWebServer-master rau ESPAsyncWebServer
- Txav mus rau ESPAsyncWebServer folder rau koj Arduino IDE installation cov tsev qiv ntawv nplaub tshev
Txhim kho Async TCP Library rau ESP32
Cov ESPAsyncWebServer tsev qiv ntawv xav tau AsyncTCP tsev qiv ntawv ua haujlwm. Ua raws li cov kauj ruam tom ntej txhawm rau nruab lub tsev qiv ntawv:
- Nyem qhov no mus download tau lub tsev qiv ntawv AsyncTCP. Koj yuav tsum muaj .zip nplaub tshev hauv koj daim nplaub tshev Downloads
- Unzip lub .zip nplaub tshev thiab koj yuav tsum tau AsyncTCP-master nplaub tshev
- Hloov npe koj daim nplaub tshev los ntawm AsyncTCP-master rau AsyncTCP
- Txav mus rau AsyncTCP nplaub tshev rau koj Arduino IDE installation cov tsev qiv ntawv nplaub tshev
- Thaum kawg, rov qhib koj Arduino IDE
Code
Peb mam li program ESP32 siv Arduino IDE, yog li xyuas kom koj muaj ESP32 add-on ntsia ua ntej ua haujlwm: (Yog tias koj tau ua tiav cov kauj ruam no, koj tuaj yeem hla mus rau kauj ruam tom ntej.)
Txhim kho ESP32 Add-on hauv Arduino IDE
Tom qab txhim kho cov tsev qiv ntawv xav tau, Qhib cov cai
Project_9_ESP32_DHT11_Web_Server.ino hauv arduino IDE.
Ua ntej uploading tus lej, tsis txhob hnov qab ntxig koj cov ntaub ntawv pov thawj network kom ESP tuaj yeem txuas rau koj lub network hauv zos.Txoj Cai Ua Haujlwm li cas
Hauv kab lus hauv qab no peb yuav piav qhia tias txoj cai ua haujlwm li cas. Mus nyeem ntawv yog tias koj xav kawm ntxiv lossis dhia mus rau ntu Kev Ua Si kom pom qhov kawg.
Ntshuam cov tsev qiv ntawv
Ua ntej, import cov tsev qiv ntawv xav tau. WiFi, ESPAsyncWebServer thiab ESPAsyncTCP yog xav tau los tsim cov web server. Adafruit_Sensor thiab DHT cov tsev qiv ntawv yuav tsum tau nyeem los ntawm DHT11 lossis DHT22 sensors.Variables txhais
Txhais lub GPIO uas DHT cov ntaub ntawv tus pin txuas nrog. Hauv qhov no, nws txuas nrog GPIO 4.Tom qab ntawd, xaiv hom DHT sensor koj siv. Hauv peb tus example, peb siv DHT22. Yog tias koj siv lwm hom, koj tsuas yog yuav tsum tsis tawm tswv yim koj lub sensor thiab tawm tswv yim tag nrho lwm tus.
Instantiate ib yam khoom DHT nrog hom thiab tus pin peb tau txhais ua ntej.Tsim ib qho AsyncWebServer object ntawm chaw nres nkoj 80.
Nyeem Cov Cuab Yeej Cuab Yeej thiab Humidity
Peb tau tsim ob txoj haujlwm: ib qho los nyeem qhov ntsuas kub Peb tau tsim ob txoj haujlwm: ib qho los nyeem qhov ntsuas kub (nyeemDHTTemperature()) thiab lwm qhov los nyeem cov av noo (nyeemDHTHumidity()).Tau txais kev nyeem ntawv sensor yog qhov yooj yim li kev siv Tau txais kev nyeem ntawv sensor yog qhov yooj yim xws li siv readTemperature() thiab readHumidity() cov txheej txheem ntawm cov khoom dht.
Peb kuj muaj ib qho xwm txheej uas rov qab ob zaug (–) yog tias lub sensor tsis tau txais cov ntawv nyeem.
Cov ntawv nyeem tau xa rov qab raws li hom hlua. Txhawm rau hloov cov ntab mus rau ib txoj hlua, siv txoj hlua () ua haujlwm
Los ntawm lub neej ntawd, peb nyeem qhov ntsuas kub hauv Celsius degrees. Txhawm rau kom tau txais qhov ntsuas kub hauv Fahrenheit degrees, hais qhov ntsuas kub hauv Celsius thiab tsis pom qhov ntsuas kub hauv Fahrenheit, kom koj muaj cov hauv qab no:
Upload lub Code
Tam sim no, upload tus lej rau koj ESP32. Nco ntsoov tias koj muaj lub rooj tsavxwm zoo thiab COM chaw nres nkoj xaiv.Upload code siv cov kauj ruam.
Tom qab uploading, qhib Serial Monitor ntawm tus nqi baud ntawm 115200. Nias lub pob pib dua ESP32. ESP32 IP chaw nyob yuav tsum tau luam tawm nyob rau hauv serial saib xyuas.Ua qauv qhia
Qhib browser thiab ntaus ESP32 IP chaw nyob. Koj web neeg rau zaub mov yuav tsum tso saib qhov tseeb sensor nyeem ntawv.
Nco tseg: Koj tus browser thiab ESP32 yuav tsum txuas nrog tib LAN.
Daim ntawv ceeb toom tias qhov ntsuas kub thiab av noo tau hloov kho tsis tas yuav tsum tau ua kom rov ua dua tshiab web nplooj.
Project_10_ESP32_OLED_Display
Qhov project no qhia txog kev siv 0.96 nti SSD1306 OLED zaub nrog ESP32 siv Arduino IDE.
Qhia 0.96 nti OLED zaub
Cov OLED zaub uas peb yuav siv nyob rau hauv no nyeem yog SSD1306 qauv: ib tug monocolor, 0.96 nti zaub nrog 128 × 64 pixels raws li qhia nyob rau hauv daim duab hauv qab no.OLED zaub tsis xav tau backlight, uas ua rau muaj qhov sib txawv zoo heev hauv qhov chaw tsaus. Tsis tas li ntawd, nws cov pixels siv lub zog tsuas yog thaum lawv nyob, yog li OLED zaub siv lub zog tsawg dua thaum piv rau lwm cov duab.
Vim tias OLED zaub siv I2C kev sib txuas lus raws tu qauv, kev xaim yog yooj yim heev. Koj tuaj yeem siv cov lus hauv qab no ua ib qho kev siv.
OLED Pin | ESP32 |
Vin | 3.3v XNUMX |
GND | GND |
SCL | PIB 22 |
SDA | PIB 21 |
SchematicTxhim kho SSD1306 OLED Library - ESP32
Muaj ntau lub tsev qiv ntawv muaj los tswj OLED zaub nrog ESP32.
Hauv no nyeem peb yuav siv ob lub tsev qiv ntawv Adafruit: Adafruit_SSD1306 tsev qiv ntawv thiab Tsev qiv ntawv Adafruit_GFX.
Ua raws cov kauj ruam tom ntej no txhawm rau txhim kho cov tsev qiv ntawv.
- Qhib koj lub Arduino IDE thiab mus rau Sketch> suav nrog Lub Tsev Qiv> Tswj Cov Tsev Qiv Ntawv. Lub Library Manager yuav tsum qhib.
- Ntaus "SSD1306" hauv lub thawv tshawb nrhiav thiab nruab SSD1306 tsev qiv ntawv los ntawm Adafruit.
- Tom qab txhim kho SSD1306 lub tsev qiv ntawv los ntawm Adafruit, ntaus "GFX" hauv lub thawv tshawb nrhiav thiab nruab lub tsev qiv ntawv.
- Tom qab txhim kho cov tsev qiv ntawv, rov pib koj Arduino IDE.
Code
Tom qab txhim kho cov tsev qiv ntawv xav tau, Qhib qhov Project_10_ESP32_OLED_Display.ino hauv arduino IDE. code
Peb mam li program ESP32 siv Arduino IDE, yog li xyuas kom koj muaj ESP32 add-on ntsia ua ntej pib ua haujlwm: (Yog tias koj tau ua tiav cov kauj ruam no, koj tuaj yeem hla mus rau kauj ruam tom ntej.)
Txhim kho ESP32 Add-on hauv Arduino IDETxoj Cai Ua Haujlwm li cas
Ntshuam cov tsev qiv ntawv
Ua ntej, koj yuav tsum tau import cov tsev qiv ntawv tsim nyog. Lub tsev qiv ntawv hlau siv I2C thiab Adafruit cov tsev qiv ntawv los sau rau cov zaub: Adafruit_GFX thiab Adafruit_SSD1306.Pib lub OLED zaub
Tom qab ntawd, koj txhais koj OLED qhov dav thiab qhov siab. Hauv no example, peb tab tom siv 128 × 64 OLED zaub. Yog tias koj siv lwm qhov ntau thiab tsawg, koj tuaj yeem hloov qhov ntawd hauv SCREEN_WIDTH, thiab SCREEN_HEIGHT hloov pauv.Tom qab ntawd, pib ib qho khoom siv nrog qhov dav thiab qhov siab uas tau teev tseg ua ntej nrog I2C kev sib txuas lus raws tu qauv (&Wire).
Qhov (-1) parameter txhais tau hais tias koj lub OLED zaub tsis muaj RESET tus pin. Yog tias koj lub OLED zaub muaj tus pin RESET, nws yuav tsum txuas nrog GPIO. Nyob rau hauv tas li ntawd, koj yuav tsum xeem dhau GPIO tus naj npawb raws li ib tug parameter.
Hauv kev teeb tsa (), pib qhov Serial Monitor ntawm baud raute ntawm 115200 rau kev debugging lub hom phiaj.Pib lub OLED zaub nrog pib () txoj kev raws li hauv qab no:
Cov snippet no tseem luam tawm cov lus ntawm Serial Monitor, yog tias peb tsis tuaj yeem txuas rau cov zaub.
Yog tias koj siv OLED zaub sib txawv, koj yuav tau hloov qhov chaw nyob OLED. Hauv peb qhov xwm txheej, qhov chaw nyob yog 0x3C.
Tom qab pib lub vijtsam, ntxiv ob lub sijhawm ncua sijhawm, kom OLED muaj sijhawm txaus los pib ua ntej sau ntawv:
Clear zaub, teem font loj, xim thiab sau ntawv
Tom qab pib cov zaub, tshem cov zaub tsis nrog clearDisplay() txoj kev:
Ua ntej sau ntawv, koj yuav tsum teeb tsa cov ntawv loj, xim thiab qhov twg cov ntawv yuav raug tso tawm hauv OLED.
Teem lub font loj siv txoj kev setTextSize():Teem xim font nrog setTextColor() txoj kev:
WHITE teev dawb font thiab dub keeb kwm yav dhau.
Txhais txoj haujlwm uas cov ntawv pib siv txoj kev setCursor(x,y). Hauv qhov no, peb tab tom teeb tsa cov ntawv pib ntawm (0,0) kev sib koom ua ke - nyob rau sab saum toj sab laug.Thaum kawg, koj tuaj yeem xa cov ntawv mus rau cov zaub siv cov txheej txheem println() raws li hauv qab no
Tom qab ntawd, koj yuav tsum hu rau cov zaub () txoj kev los ua kom pom cov ntawv ntawm lub vijtsam.
Lub tsev qiv ntawv Adafruit OLED muab cov txheej txheem muaj txiaj ntsig kom yooj yim scroll cov ntawv.
- startscrollright(0x00, 0x0F): scroll ntawv los ntawm sab laug mus rau sab xis
- startscrollleft(0x00, 0x0F): scroll ntawv los ntawm sab xis mus rau sab laug
- startscrolldiagright(0x00, 0x07): scroll ntawv los ntawm sab laug hauv qab ces kaum mus rau sab xis lub ces kaum startscrolldiagleft(0x00, 0x07): scroll ntawv los ntawm sab xis hauv qab ces kaum mus rau sab laug ces kaum
Upload lub Code
Tam sim no, upload tus lej rau koj ESP32.Upload code siv cov kauj ruam.
Tom qab uploading code, OLED yuav tso saib cov ntawv scrolling.
Cov ntaub ntawv / Cov ntaub ntawv
![]() |
LAFVIN ESP32 Basic Starter Kit [ua pdf] Phau ntawv qhia ESP32 Basic Starter Kit, ESP32, Cov khoom pib pib, Cov khoom pib pib |