ESP32 Debaz Starter
Twous
Lis anbalaj
ESP32 Entwodiksyon
Nouvo nan ESP32? Kòmanse isit la! ESP32 a se yon seri mikwokontroleur ki pa koute chè ak ki ba-pouvwa (System on a Chip) (SoC) devlope pa Espressif ki gen ladan Wi-Fi ak Bluetooth kapasite san fil ak processeur doub-nwayo. Si w abitye ak ESP8266 a, ESP32 a se siksesè li, chaje ak anpil nouvo karakteristik.Espesifikasyon ESP32
Si ou vle jwenn yon ti jan plis teknik ak espesifik, ou ka pran yon gade nan espesifikasyon detaye sa yo nan ESP32 la (sous: http://esp32.net/)—pou plis detay, tcheke fichye done a):
- Koneksyon san fil WiFi: 150.0 Mbps pousantaj done ak HT40
- Bluetooth: BLE (Bluetooth Low Energy) ak Bluetooth Classic
- Processeur: Tensilica Xtensa Dual-Core 32-bit LX6 mikroprosesè, kouri nan 160 oswa 240 MHz
- memwa:
- ROM: 448 KB (pou demaraj ak fonksyon debaz)
- SRAM: 520 KB (pou done ak enstriksyon)
- RTC fas SRAM: 8 KB (pou depo done ak CPU prensipal pandan RTC Boot soti nan mòd nan gwo dòmi)
- RTC ralanti SRAM: 8KB (pou ko-prosesè aksè pandan mòd dòmi gwo twou san fon) eFuse: 1 Kbit (nan yo 256 Bits yo itilize pou sistèm nan (adrès MAC ak konfigirasyon chip) ak 768 Bits ki rete yo rezève pou aplikasyon kliyan, ki gen ladan Flash-Chiffrer ak Chip-ID)
Flash entegre: flash konekte entèn atravè IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 ak SD_DATA_1 sou ESP32-D2WD ak ESP32-PICO-D4.
- 0 MiB (ESP32-D0WDQ6, ESP32-D0WD, ak ESP32-S0WD chips)
- 2 MiB (chip ESP32-D2WD)
- 4 MiB (modil ESP32-PICO-D4 SiP)
Low Power: asire ke ou ka toujou itilize konvèsyon ADC, pou egzanpample, pandan dòmi pwofon.
Antre / Sòti periferik:
- koòdone periferik ak DMA ki gen ladan manyen kapasitif
- ADCs (Analog-to-Digital Converter)
- DACs (Digital-to-Analog Converter)
- I²C (awondisman entè-entegre)
- UART (Reseptè/Transmetè Asynchrone Inivèsèl)
- SPI (Serial Peripheral Interface)
- I²S (Son Entegre Interchip)
- RMII (Redwi Entèfas Media-Endepandan)
- PWM (Modilasyon batman kè-lajè)
Sekirite: akseleratè pyès ki nan konpitè pou AES ak SSL/TLS
ESP32 Komisyon Konsèy Devlopman
ESP32 refere a chip ESP32 vid la. Sepandan, tèm "ESP32" yo itilize tou pou refere a tablo devlopman ESP32. Sèvi ak ESP32 chips vid se pa fasil oswa pratik, espesyalman lè w ap aprann, tès, ak pwototip. Pifò nan tan an, ou pral vle sèvi ak yon tablo devlopman ESP32.
Nou pral sèvi ak tablo ESP32 DEVKIT V1 kòm referans. Foto ki anba a montre tablo ESP32 DEVKIT V1, vèsyon ak 30 broch GPIO.Espesifikasyon - ESP32 DEVKIT V1
Tablo sa a montre yon rezime karakteristik ak espesifikasyon tablo ESP32 DEVKIT V1 DOIT:
Kantite nwayo | 2 (double nwayo) |
Wi-Fi | 2.4 GHz jiska 150 Mbit/s |
Bluetooth | BLE (Bluetooth Low Energy) ak Bluetooth eritaj |
Achitekti | 32 bit |
Frekans revèy | Jiska 240 MHz |
RAM | 512 KB |
Broch | 30 (depann sou modèl la) |
Periferik | Kapasitif manyen, ADC (analòg konvètisè dijital), DAC (dijital konvètisè analòg), 12C (Inter-Integrated Circuit), UART (inivèsèl reseptè/transmetè asynchrone), CAN 2.0 (Kontwòl Zòn Netwokr), SPI (Serial Peripheral Interface), 12S (Integrated Inter-IC Son), RMII (Reduced Media-Endepandan Entèfas), PWM (modilasyon lajè batman kè), ak plis ankò. |
Bouton entegre | Bouton RESET ak BOOT |
Bati-an dirije | bati-an ki ap dirije ble ki konekte ak GPIO2; bati-an wouj dirije ki montre tablo a ap mache |
USB nan UART pon |
CP2102 |
Li vini ak yon koòdone microUSB ke ou ka itilize pou konekte tablo a nan òdinatè w lan pou telechaje kòd oswa aplike pouvwa.
Li itilize chip CP2102 (USB pou UART) pou kominike ak òdinatè w lan atravè yon pò COM lè l sèvi avèk yon koòdone seri. Yon lòt chip popilè se CH340 la. Tcheke ki sa ki USB konvètisè chip UART sou tablo w la paske w ap bezwen enstale chofè ki nesesè yo pou òdinatè w lan ka kominike ak tablo a (plis enfòmasyon sou sa pita nan gid sa a).
Tablo sa a tou vini ak yon bouton RESET (ki ka make EN) pou rekòmanse tablo a ak yon bouton BOOT pou mete tablo a nan mòd flache (disponib pou resevwa kòd). Remake byen ke kèk tablo ka pa gen yon bouton BOOT.
Li tou vini ak yon bati-an ki ap dirije ble ki se entèn konekte ak GPIO 2. Sa a ki ap dirije se itil pou debogaj bay kèk sòt de pwodiksyon vizyèl fizik. Genyen tou yon LED wouj ki limen lè ou bay pouvwa a tablo a.ESP32 Pinout
Periferik ESP32 yo enkli:
- 18 chanèl konvètè analog-a-dijital (ADC).
- 3 entèfas SPI
- 3 koòdone UART
- 2 interfaces I2C
- 16 chanèl pwodiksyon PWM
- 2 konvètisè dijital-a-analòg (DAC)
- 2 interfaces I2S
- 10 GPIO deteksyon kapasitif
Karakteristik ADC (analòg pou konvètisè dijital) ak DAC (dijital pou konvètisè analòg) yo asiyen nan broch estatik espesifik. Sepandan, ou ka deside ki broch yo se UART, I2C, SPI, PWM, elatriye - ou jis bezwen bay yo nan kòd la. Sa a se posib akòz karakteristik multiplex ESP32 chip la.
Malgre ke ou ka defini pwopriyete yo broch sou lojisyèl an, gen broch asiyen pa default jan yo montre nan figi sa aAnplis de sa, gen broch ak karakteristik espesifik ki fè yo apwopriye oswa ou pa pou yon pwojè an patikilye. Tablo ki anba la a montre ki broch ki pi bon pou itilize kòm antre, rezilta ak kiyès ou bezwen pran prekosyon.
Broch yo make an vèt yo OK pou itilize. Sa yo make an jòn yo OK pou itilize, men ou bezwen peye atansyon paske yo ka gen yon konpòtman inatandi sitou nan bòt. Broch yo make an wouj yo pa rekòmande pou itilize kòm antre oswa rezilta.
GP IO | Antre | Sòti | Nòt |
0 | rale moute | OK | soti siyal PWM nan bòt, yo dwe BAS pou antre nan mòd flache |
1 | PIN TX | OK | debug pwodiksyon nan bòt |
2 | OK | OK | konekte ak sou-tablo ki ap dirije, yo dwe kite k ap flote oswa LOW antre nan mòd flache |
3 | OK | PIN RX | HIGH nan bòt |
4 | OK | OK | |
5 | OK | OK | Sorti siyal PWM nan bòt, pin strapping |
12 | OK | OK | bòt echwe si rale wo, attache pin |
13 | OK | OK | |
14 | OK | OK | soti siyal PWM nan bòt |
15 | OK | OK | Sorti siyal PWM nan bòt, pin strapping |
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 | opinyon sèlman | |
35 | OK | opinyon sèlman | |
36 | OK | opinyon sèlman | |
39 | OK | opinyon sèlman |
Kontinye lekti pou yon analiz plis detay ak pwofondè sou ESP32 GPIO yo ak fonksyon li yo.
Antre sèlman broch
GPIO 34 a 39 yo se GPIs - antre sèlman broch. Broch sa yo pa gen rezistans entèn pull-up oswa pull-down. Yo pa ka itilize kòm rezilta, kidonk sèvi ak broch sa yo sèlman kòm antre:
- GPIO 34
- GPIO 35
- GPIO 36
- GPIO 39
SPI flash entegre sou ESP-WROOM-32 la
GPIO 6 a GPIO 11 yo ekspoze nan kèk tablo devlopman ESP32. Sepandan, broch sa yo konekte ak flash SPI entegre sou chip ESP-WROOM-32 la epi yo pa rekòmande pou lòt itilizasyon. Kidonk, pa sèvi ak broch sa yo nan pwojè ou yo:
- GPIO 6 (SCK/CLK)
- GPIO 7 (SDO/SD0)
- GPIO 8 (SDI/SD1)
- GPIO 9 (SHD/SD2)
- GPIO 10 (SWP/SD3)
- GPIO 11 (CSC/CMD)
Kapasitif manyen GPIOs
ESP32 a gen 10 detèktè manyen kapasitif entèn yo. Sa yo ka santi varyasyon nan nenpòt bagay ki kenbe yon chaj elektrik, tankou po imen an. Se konsa, yo ka detekte varyasyon pwovoke lè yo manyen GPIO yo ak yon dwèt. Broch sa yo ka fasilman entegre nan kousinen kapasitif epi ranplase bouton mekanik. Broch manyen kapasitif yo ka itilize tou pou reveye ESP32 nan dòmi byen fon. Detèktè manyen entèn sa yo konekte ak GPIO sa yo:
- T0 (GPIO 4)
- T1 (GPIO 0)
- T2 (GPIO 2)
- T3 (GPIO 15)
- T4 (GPIO 13)
- T5 (GPIO 12)
- T6 (GPIO 14)
- T7 (GPIO 27)
- T8 (GPIO 33)
- T9 (GPIO 32)
Analòg dijital konnvètè (ADC)
ESP32 a gen 18 x 12 bits ADC chanèl antre (pandan ke ESP8266 a sèlman gen 1x 10 bits ADC). Sa yo se GPIO yo ki ka itilize kòm ADC ak chanèl respektif:
- 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)
Nòt: ADC2 broch pa ka itilize lè yo itilize Wi-Fi. Se konsa, si w ap itilize Wi-Fi epi w ap gen pwoblèm pou jwenn valè a nan yon GPIO ADC2, ou ka konsidere itilize yon GPIO ADC1 pito. Sa ta dwe rezoud pwoblèm ou.
Chanèl opinyon ADC yo gen yon rezolisyon 12-bit. Sa vle di ke ou ka jwenn lekti analòg ki sòti nan 0 a 4095, nan ki 0 koresponn ak 0V ak 4095 a 3.3V. Ou kapab tou mete rezolisyon an nan chanèl ou yo sou kòd la ak seri a ADC.
PIN ESP32 ADC yo pa gen yon konpòtman lineyè. Ou pral pwobableman pa yo pral kapab fè distenksyon ant 0 ak 0.1V, oswa ant 3.2 ak 3.3V. Ou bezwen kenbe sa nan tèt ou lè w ap itilize broch ADC yo. Ou pral jwenn yon konpòtman ki sanble ak sa ki montre nan figi sa a.Konvètè dijital analòg (DAC)
Gen 2 x 8 bits DAC chanèl sou ESP32 a konvèti siyal dijital nan vol analògtage sortie siyal. Sa yo se chanèl DAC yo:
- DAC1 (GPIO25)
- DAC2 (GPIO26)
RTC GPIOs
Gen sipò RTC GPIO sou ESP32 la. Yo ka itilize GPIO yo nan sous-sistèm RTC ki ba-pouvwa lè ESP32 nan dòmi byen fon. RTC GPIOs sa yo ka itilize pou reveye ESP32 nan gwo dòmi lè Ultra Low la
Ko-prosesè pouvwa (ULP) ap kouri. GPIO sa yo ka itilize kòm yon sous reveye ekstèn.
- 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 kontwolè a gen 16 chanèl endepandan ki ka konfigirasyon pou jenere siyal PWM ak pwopriyete diferan. Tout broch ki ka aji kòm rezilta yo ka itilize kòm broch PWM (GPIOs 34 a 39 pa ka jenere PWM).
Pou mete yon siyal PWM, ou bezwen defini paramèt sa yo nan kòd la:
- frekans siyal la;
- Sik devwa;
- PWM chanèl;
- GPIO kote ou vle pwodiksyon siyal la.
I2C
ESP32 a gen de chanèl I2C ak nenpòt PIN ka mete kòm SDA oswa SCL. Lè w ap itilize ESP32 a ak Arduino IDE, broch I2C default yo se:
- GPIO 21 (SDA)
- GPIO 22 (SCL)
Si ou vle sèvi ak lòt broch lè w ap itilize bibliyotèk fil la, ou jis bezwen rele:
Wire.begin (SDA, SCL);
SPI
Pa default, kat jeyografik la pou SPI se:
SPI | MOSI | MISO | CLK | CS |
VSPI | GPIO 23 | GPIO 19 | GPIO 18 | GPIO 5 |
HSPI | GPIO 13 | GPIO 12 | GPIO 14 | GPIO 15 |
Entèwonp
Tout GPIO yo ka configuré kòm entèwonp.
Broch tach
Chip ESP32 a gen broch sa yo:
- GPIO 0 (dwe ba pou antre nan mòd bòt)
- GPIO 2 (dwe k ap flote oswa LOW pandan bòt)
- GPIO 4
- GPIO 5 (dwe wo pandan demaraj)
- GPIO 12 (dwe ba pandan demaraj)
- GPIO 15 (dwe wo pandan demaraj)
Yo itilize sa yo pou mete ESP32 nan bootloader oswa mòd flache. Sou pifò tablo devlopman ki gen USB / Serial entegre, ou pa bezwen enkyete sou eta a nan broch sa yo. Komisyon Konsèy la mete broch yo nan eta a dwat pou flache oswa mòd bòt. Ou ka jwenn plis enfòmasyon sou Seleksyon Mode Bòt ESP32 isit la.
Sepandan, si ou gen periferik ki konekte ak broch sa yo, ou ka gen pwoblèm pou w eseye telechaje nouvo kòd, flache ESP32 a ak nouvo firmwèr, oswa reset tablo a. Si ou gen kèk periferik ki konekte ak broch yo atache epi w ap jwenn pwoblèm pou telechaje kòd oswa fè flache ESP32 a, li ka paske periferik sa yo anpeche ESP32 a antre nan mòd nan dwa. Li dokiman Seleksyon Mode Bòt la pou gide w nan bon direksyon an. Apre reset, flache, oswa demaraj, broch sa yo travay jan yo espere.
Pins HIGH nan bòt
Gen kèk GPIO yo chanje eta yo nan HIGH oswa pwodiksyon siyal PWM nan bòt oswa reset.
Sa vle di ke si ou gen rezilta ki konekte ak GPIO sa yo ou ka jwenn rezilta inatandi lè ESP32 a reset oswa bòt.
- GPIO 1
- GPIO 3
- GPIO 5
- GPIO 6 pou GPIO 11 (konekte ak ESP32 entegre SPI flash memwa - pa rekòmande pou itilize).
- GPIO 14
- GPIO 15
Pèmèt (EN)
Pèmèt (EN) se peny pèmèt regilatè 3.3V la. Li rale moute, kidonk konekte ak tè a enfim regilatè a 3.3V. Sa vle di ke ou ka itilize peny sa a ki konekte nan yon bouton pou rekòmanse ESP32 ou a, pou egzanpample.
GPIO aktyèl trase
Aktyèl maksimòm absoli trase pou chak GPIO se 40mA dapre seksyon "Kondisyon Fonksyònman Rekòmande" nan fichye done ESP32 la.
ESP32 Capteur efè Hall entegre
ESP32 a tou gen yon Capteur efè sal entegre ki detekte chanjman nan jaden mayetik nan anviwònman li yo
ESP32 Arduino IDE
Gen yon adisyon pou Arduino IDE ki pèmèt ou pwograme ESP32 lè l sèvi avèk Arduino IDE ak langaj pwogramasyon li yo. Nan leson patikilye sa a nou pral montre w kouman enstale tablo ESP32 nan Arduino IDE si w ap itilize Windows, Mac OS X oswa Linux.
Kondisyon: Arduino IDE Enstale
Anvan ou kòmanse pwosedi enstalasyon sa a, ou bezwen gen Arduino IDE enstale sou òdinatè w lan. Gen de vèsyon Arduino IDE ou ka enstale: vèsyon 1 ak vèsyon 2.
Ou ka telechaje ak enstale Arduino IDE lè w klike sou lyen sa a: arduino.cc/en/Main/Software
Ki vèsyon Arduino IDE nou rekòmande? Nan moman sa a, gen kèk plugins pou ESP32 a (tankou SPIFFS FileSystem Uploader Plugin) ki poko sipòte sou Arduino 2. Se konsa, si ou gen entansyon itilize SPIFFS Plugin nan alavni, nou rekòmande enstale vèsyon an eritaj 1.8.X. Ou jis bezwen desann sou paj lojisyèl Arduino pou jwenn li.
Enstale ESP32 Add-on nan Arduino IDE
Pou enstale tablo ESP32 nan IDE Arduino ou a, swiv enstriksyon sa yo:
- Nan IDE Arduino ou, ale nan File> Preferans
- Antre sa ki annapre yo nan "Manadjè Konsèy Adisyonèl la URLs" jaden:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Lè sa a, klike sou "OK" bouton an:Nòt: si ou deja genyen planch ESP8266 yo URL, ou ka separe a URLs ak yon vigil jan sa a:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Louvri Manadjè Boards la. Ale nan Zouti > Komisyon Konsèy > Manadjè Boards...Chèche pou ESP32 and press install button for the “ESP32 by Espressif Systems“:
Se sa. Li ta dwe enstale apre kèk segonn.
Telechaje kòd tès la
Ploge tablo ESP32 a nan òdinatè w lan. Avèk IDE Arduino ou a louvri, swiv etap sa yo:
- Chwazi Komisyon Konsèy ou a nan Zouti> Meni Komisyon Konsèy (nan ka mwen an, li se ESP32 DEV Modil la)
- Chwazi pò a (si ou pa wè pò COM nan IDE Arduino ou a, ou bezwen enstale CP210x USB a UART Bridge VCP Drivers):
- Louvri egzanp sa aample anba File > Egzamples > WiFi
(ESP32) > WiFiScan - Yon nouvo chema ouvè nan IDE Arduino ou a:
- Peze bouton an Telechaje nan Arduino IDE la. Tann kèk segond pandan y ap konpile kòd la epi telechaje sou tablo w la.
- Si tout bagay te ale jan yo espere, ou ta dwe wè yon "Fè telechaje". mesaj.
- Louvri Arduino IDE Serial Monitè a nan yon vitès baud 115200:
- Peze bouton Enable ESP32 abò a epi ou ta dwe wè rezo ki disponib toupre ESP32 ou a:
Depanaj
Si w eseye telechaje yon nouvo chema nan ESP32 ou a epi w ap resevwa mesaj erè sa a "Yon erè fatal te fèt: Echwe pou konekte ak ESP32: Timed out... Konekte...". Sa vle di ke ESP32 ou a pa nan mòd flache / telechaje.
Èske w gen bon non tablo a ak COM por chwazi, swiv etap sa yo:
Kenbe bouton "BOOT" nan tablo ESP32 ou a
- Peze bouton "Télécharger" nan Arduino IDE pou telechaje chema ou a:
- Apre w fin wè "Konekte...." mesaj nan IDE Arduino ou a, lage dwèt la nan bouton "BOOT" la:
- Apre sa, ou ta dwe wè mesaj la "Fè téléchargement".
Se sa. ESP32 ou a ta dwe gen nouvo desen an kouri. Peze bouton "PÈMITE" pou rekòmanse ESP32 a epi kouri nouvo trase telechaje a.
Ou pral oblije repete tou sekans bouton sa a chak fwa ou vle telechaje yon nouvo chema.
Pwojè 1 ESP32 Antre Sorti
Nan gid pou kòmanse sa a ou pral aprann kijan pou li opinyon dijital tankou yon switch bouton epi kontwole rezilta dijital tankou yon dirije lè l sèvi avèk ESP32 a ak Arduino IDE.
Prekondisyon
Nou pral pwograme ESP32 a lè l sèvi avèk Arduino IDE. Se konsa, asire w ke ou gen ESP32 tablo ajoute-sou enstale anvan ou kontinye:
- Enstale ESP32 Add-on nan Arduino IDE
ESP32 Kontwòl Sorti Digital
Premyèman, ou bezwen mete GPIO ou vle kontwole kòm yon OUTPUT. Sèvi ak fonksyon pinMode() jan sa a:
pinMode (GPIO, OUTPUT);
Pou kontwole yon pwodiksyon dijital ou jis bezwen sèvi ak digitalWrite() fonksyon, ki aksepte kòm agiman, GPIO (nimewo int) w ap refere a, ak eta a, swa HIGH oswa LOW.
digitalWrite(GPIO, ETA);
Tout GPIO yo ka itilize kòm rezilta eksepte GPIOs 6 a 11 (konekte ak flash SPI entegre) ak GPIOs 34, 35, 36 ak 39 (antre sèlman GPIOs);
Aprann plis sou ESP32 GPIO yo: Gid Referans ESP32 GPIO
ESP32 Li Antre dijital
Premyèman, mete GPIO ou vle li kòm INPUT, lè l sèvi avèk fonksyon pinMode() jan sa a:
pinMode (GPIO, INPUT);
Pou li yon opinyon dijital, tankou yon bouton, ou itilize digitalRead() fonksyon, ki aksepte kòm agiman, GPIO (nimewo int) w ap refere a.
digitalRead (GPIO);
Tout ESP32 GPIO yo ka itilize kòm antre, eksepte GPIO 6 a 11 (konekte ak flash SPI entegre).
Aprann plis sou ESP32 GPIO yo: Gid Referans ESP32 GPIO
Pwojè Egzample
Pou montre w kouman yo sèvi ak dijital entrées ak sorties dijital, nou pral konstwi yon senp pwojè example ak yon bouton ak yon LED. Nou pral li eta a nan bouton an epi limen LED a kòmsadwa jan ilistre nan figi sa a.
Pati obligatwa
Men yon lis pati ou bezwen pou konstwi kous la:
- ESP32 DEVKIT V1
- 5 mm dirije
- 220 Ohm rezistans
- Bouton
- 10k Ohm rezistans
- Breadboard
- Fil kavalye
Dyagram chema
Anvan ou kontinye, ou bezwen rasanble yon sikwi ak yon dirije ak yon bouton.
Nou pral konekte LED la ak GPIO 5 ak bouton an pou GPIO 4.Kòd
Louvri kòd Project_1_ESP32_Inputs_Outputs.ino nan arduino IDEKijan Kòd la ap travay
Nan de liy sa yo, ou kreye varyab pou asiyen broch:
Bouton an konekte ak GPIO 4 epi dirije a konekte ak GPIO 5. Lè w ap itilize Arduino IDE ak ESP32 a, 4 koresponn ak GPIO 4 ak 5 koresponn ak GPIO 5.
Apre sa, ou kreye yon varyab pou kenbe eta bouton an. Pa default, li se 0 (pa peze).
int buttonState = 0;
Nan konfigirasyon an (), ou inisyalize bouton an kòm yon INPUT, ak dirije a kòm yon SOTI.
Pou sa, ou sèvi ak fonksyon pinMode() ki aksepte PIN w ap refere a, ak mòd la: INPUT oswa OUTPUT.
pinMode (boutonPin, INPUT);
pinMode (ledPin, OUTPUT);
Nan bouk la () se kote ou li eta a bouton epi mete dirije a kòmsadwa.
Nan pwochen liy lan, ou li eta bouton an epi sove li nan varyab buttonState.
Kòm nou te wè deja, ou itilize fonksyon digitalRead().
buttonState = digitalRead (buttonPin);
Deklarasyon si sa a, tcheke si eta bouton an HIGH. Si li se, li vire LED la sou lè l sèvi avèk digitalWrite() fonksyon ki aksepte kòm agiman ledPin la, ak eta a HIGH.
si (boutonState == HIGH)Si eta bouton an pa HIGH, ou mete LED la koupe. Jis mete LOW kòm yon dezyèm agiman nan fonksyon digitalWrite().
Téléchargement kòd la
Anvan ou klike sou bouton an telechaje, ale nan Zouti > Komisyon Konsèy, epi chwazi tablo a: DOIT ESP32 DEVKIT V1 tablo.
Ale nan Zouti > Port epi chwazi pò COM ESP32 a konekte. Lè sa a, peze bouton an telechaje epi tann pou mesaj la "Fè telechaje".Remak: Si ou wè anpil pwen (konekte…__…__) sou fenèt debogaj la ak mesaj “Echwe pou konekte avèk ESP32: Timed out waiting for packet header” mesaj la, sa vle di ou bezwen peze bouton BOOT ESP32 sou tablo a apre pwen yo.
kòmanse parèt.Depanaj
Demonstrasyon
Apre w fin telechaje kòd la, teste kous ou a. LED ou a ta dwe limen lè ou peze bouton an:Epi fèmen lè ou lage li:
Pwojè 2 ESP32 Antre analòg
Pwojè sa a montre kijan pou li antre analòg ak ESP32 lè l sèvi avèk Arduino IDE.
Lekti analòg itil pou li valè ki soti nan rezistans varyab tankou potansyomèt, oswa detèktè analòg.
Antre analòg (ADC)
Lekti yon valè analòg ak ESP32 a vle di ou ka mezire varye voltage nivo ant 0 V ak 3.3 V.
Vol latagLè sa a, yo mezire e yo asiyen nan yon valè ant 0 ak 4095, kote 0 V koresponn ak 0, ak 3.3 V koresponn ak 4095.tage ant 0 V ak 3.3 V yo pral bay valè korespondan an ant.ADC se ki pa lineyè
Idealman, ou ta atann yon konpòtman lineyè lè w ap itilize broch ESP32 ADC yo.
Sepandan, sa pa rive. Sa w ap jwenn se yon konpòtman jan yo montre nan tablo sa a:Konpòtman sa a vle di ke ESP32 ou a pa kapab fè distenksyon ant 3.3 V ak 3.2 V.
Ou pral jwenn menm valè pou tou de voltagès: 4095.
Menm bagay la tou rive pou vol trè batage valè: pou 0 V ak 0.1 V ou pral jwenn menm valè a: 0. Ou bezwen kenbe sa a nan tèt ou lè w ap itilize broch ESP32 ADC yo.
analogRead() Fonksyon
Lekti yon opinyon analòg ak ESP32 lè l sèvi avèk Arduino IDE a se senp tankou lè l sèvi avèk fonksyon an analogRead(). Li aksepte kòm agiman, GPIO ou vle li:
analogRead(GPIO);
Se sèlman 15 ki disponib nan DEVKIT V1board la (vèsyon ak 30 GPIOs).
Pran pinout tablo ESP32 ou a epi lokalize broch ADC yo. Sa yo make ak yon fwontyè wouj nan figi ki anba a.Pins opinyon analòg sa yo gen rezolisyon 12-bit. Sa vle di ke lè ou li yon opinyon analòg, ranje li yo ka varye ant 0 ak 4095.
Remak: broch ADC2 pa ka itilize lè yo itilize Wi-Fi. Se konsa, si w ap itilize Wi-Fi epi w ap gen pwoblèm pou jwenn valè nan yon ADC2 GPIO, ou ka konsidere itilize yon ADC1 GPIO olye de sa, sa ta dwe rezoud pwoblèm ou an.
Pou wè ki jan tout bagay mare ansanm, nou pral fè yon ansyen senpample pou li yon valè analòg nan yon potansyomèt.
Pati obligatwa
Pou ansyen sa aample, ou bezwen pati sa yo:
- ESP32 DEVKIT V1 Komisyon Konsèy
- Potansyomètr
- Breadboard
- Fil kavalye
schematic
Fil yon potansyomèt nan ESP32 ou. Yo ta dwe konekte peny mitan potansyomèt la ak GPIO 4. Ou ka itilize dyagram chema sa a kòm referans.Kòd
Nou pral pwograme ESP32 a lè l sèvi avèk Arduino IDE, kidonk asire w ke ou gen ESP32 ajoute-sou enstale anvan ou kontinye: (Si ou te deja fè etap sa a, ou ka sote nan pwochen etap la.)
Enstale ESP32 Add-on nan Arduino IDE
Louvri kòd Project_2_ESP32_Inputs_Outputs.ino nan arduino IDEKòd sa a tou senpleman li valè ki soti nan potansyomèt la epi enprime valè sa yo nan Serial Monitor la.
Nan kòd la, ou kòmanse pa defini GPIO potansyomèt la konekte ak. Nan ansyen sa aample, GPIO 4.Nan konfigirasyon an (), inisyalize yon kominikasyon seri nan yon vitès baud 115200.
Nan bouk(), sèvi ak analogRead() fonksyon an pou li opinyon analòg nan potPin la.
Finalman, enprime valè yo li nan potansyomèt la nan monitè seri a.
Telechaje kòd yo bay nan ESP32 ou a. Asire w ke ou gen bon tablo a ak pò COM chwazi nan meni an Zouti.
Tès Example
Apre w fin telechaje kòd la epi peze bouton reset ESP32 la, louvri Serial Monitor nan yon vitès baud 115200. Vire potansyomèt la epi wè valè yo ap chanje.Valè maksimòm ou pral jwenn se 4095 ak valè minimòm lan se 0.
Anbalaj
Nan atik sa a ou te aprann kijan pou li entrées analòg lè l sèvi avèk ESP32 a ak Arduino IDE la. An rezime:
- Tablo ESP32 DEVKIT V1 DOIT (vèsyon ak 30 broch) gen 15 broch ADC ou ka itilize pou li antre analòg.
- Broch sa yo gen yon rezolisyon 12 bit, ki vle di ou ka jwenn valè soti nan 0 a 4095.
- Pou li yon valè nan Arduino IDE, ou senpleman itilize analogRead() fonksyon an.
- PIN ESP32 ADC yo pa gen yon konpòtman lineyè. Ou pral pwobableman pa yo pral kapab fè distenksyon ant 0 ak 0.1V, oswa ant 3.2 ak 3.3V. Ou bezwen kenbe sa nan tèt ou lè w ap itilize broch ADC yo.
Pwojè 3 ESP32 PWM (Pòti analòg)
Nan leson patikilye sa a nou pral montre w kouman pou jenere siyal PWM ak ESP32 lè l sèvi avèk Arduino IDE. Kòm yon ansyenampNou pral bati yon sikwi senp ki dim yon LED lè l sèvi avèk LED PWM kontwolè ESP32 la.ESP32 dirije PWM Kontwolè
ESP32 a gen yon kontwolè PWM ki ap dirije ak 16 chanèl endepandan ki ka konfigirasyon pou jenere siyal PWM ak pwopriyete diferan.
Men etap sa yo ou pral oblije swiv pou dim yon LED ak PWM lè l sèvi avèk Arduino IDE la:
- Premyèman, ou bezwen chwazi yon chanèl PWM. Gen 16 chanèl ant 0 a 15.
- Lè sa a, ou bezwen mete frekans siyal PWM la. Pou yon LED, yon frekans 5000 Hz se amann pou itilize.
- Ou bezwen tou mete rezolisyon sik devwa siyal la: ou gen rezolisyon ki soti nan 1 a 16 bit. Nou pral sèvi ak rezolisyon 8-bit, ki vle di ou ka kontwole klète ki ap dirije lè l sèvi avèk yon valè soti nan 0 a 255.
- Apre sa, ou bezwen presize sou ki GPIO oswa GPIO siyal la ap parèt. Pou sa w ap itilize fonksyon sa a:
ledcAttachPin (GPIO, chanèl)
Fonksyon sa a aksepte de agiman. Premye a se GPIO ki pral pwodwi siyal la, ak dezyèm lan se kanal la ki pral jenere siyal la. - Finalman, pou kontwole klète ki ap dirije lè l sèvi avèk PWM, ou sèvi ak fonksyon sa a:
ledcWrite (chanèl, dutycycle)
Fonksyon sa a aksepte kòm agiman chanèl ki ap jenere siyal PWM a, ak sik devwa a.
Pati obligatwa
Pou swiv leson patikilye sa a ou bezwen pati sa yo:
- ESP32 DEVKIT V1 Komisyon Konsèy
- 5mm ki ap dirije
- 220 Ohm rezistans
- Breadboard
- Fil kavalye
schematic
Branche yon LED nan ESP32 ou a jan nan dyagram chema sa a. Dirije a ta dwe konekte ak GPIO 4.Nòt: ou ka itilize nenpòt peny ou vle, osi lontan ke li ka aji kòm yon pwodiksyon. Tout broch ki ka aji kòm rezilta yo ka itilize kòm broch PWM. Pou plis enfòmasyon sou ESP32 GPIO yo, li: ESP32 Pinout Referans: Ki broch GPIO ou ta dwe itilize?
Kòd
Nou pral pwograme ESP32 a lè l sèvi avèk Arduino IDE, kidonk asire w ke ou gen ESP32 ajoute-sou enstale anvan ou kontinye: (Si ou te deja fè etap sa a, ou ka sote nan pwochen etap la.)
Enstale ESP32 Add-on nan Arduino IDE
Louvri kòd Project_3_ESP32_PWM.ino nan arduino IDEOu kòmanse pa defini PIN ki ap dirije a tache. Nan ka sa a, dirije a tache ak GPIO 4.
Lè sa a, ou mete pwopriyete siyal PWM yo. Ou defini yon frekans 5000 Hz, chwazi kanal 0 pou jenere siyal la, epi mete yon rezolisyon 8 bit. Ou ka chwazi lòt pwopriyete, diferan pase sa yo, pou jenere diferan siyal PWM.
Nan konfigirasyon (), ou bezwen konfigirasyon LED PWM ak pwopriyete yo ou te defini pi bonè lè l sèvi avèk fonksyon ledcSetup () ki aksepte kòm agiman, ledChannel la, frekans lan, ak rezolisyon an, jan sa a:
Apre sa, ou bezwen chwazi GPIO ou pral jwenn siyal la. Pou sa sèvi ak ledcAttachPin() fonksyon an ki aksepte kòm agiman GPIO kote ou vle jwenn siyal la, ak kanal la ki ap jenere siyal la. Nan ansyen sa aample, nou pral jwenn siyal la nan ledPin GPIO a, ki koresponn ak GPIO 4. Kanal la ki jenere siyal la se ledChannel la, ki koresponn ak kanal 0.
Nan bouk la, ou pral varye sik devwa a ant 0 ak 255 pou ogmante klète ki ap dirije a.
Lè sa a, ant 255 ak 0 diminye klète a.
Pou mete klète ki ap dirije a, ou jis bezwen sèvi ak fonksyon ledcWrite() ki aksepte kòm agiman chanèl ki ap jenere siyal la, ak sik devwa a.
Kòm nou ap itilize rezolisyon 8-bit, sik devwa a pral kontwole lè l sèvi avèk yon valè soti nan 0 a 255. Remake byen ke nan fonksyon an ledcWrite () nou itilize kanal la ki se génération siyal la, epi yo pa GPIO la.
Tès Example
Voye kòd la sou ESP32 ou. Asire w ke ou gen bon tablo a ak pò COM chwazi. Gade kous ou a. Ou ta dwe gen yon dimmer LED ki ogmante ak diminye klète.
Pwojè 4 ESP32 PIR Mouvman Capteur
Pwojè sa a montre ki jan yo detekte mouvman ak ESP32 a lè l sèvi avèk yon Capteur mouvman PIR. buzzer a pral sonnen yon alam lè yo detekte mouvman, epi li sispann alam la lè pa detekte mouvman pou yon tan prereglaj (tankou 4 segonn)
Ki jan HC-SR501 Capteur Mouvman ap travay
.Prensip k ap travay nan Capteur HC-SR501 baze sou chanjman nan radyasyon enfrawouj sou objè a k ap deplase. Pou detekte Capteur HC-SR501 la, objè a dwe ranpli de kondisyon:
- Objè a ap emèt fason enfrawouj la.
- Objè a ap deplase oswa tranble
Se konsa:
Si yon objè ap emèt reyon enfrawouj la men li pa deplase (egzanp, yon moun kanpe san deplase), li pa detekte pa detèktè a.
Si yon objè ap deplase men li pa emèt reyon enfrawouj la (pa egzanp, robo oswa machin), li PA detekte pa detèktè a.
Entwodwi Timer
Nan ansyen sa aample nou pral tou prezante timers. Nou vle dirije a rete limen pou yon kantite segonn predetèmine apre yo fin detekte mouvman. Olye pou nou sèvi ak yon fonksyon reta () ki bloke kòd ou a epi ki pa pèmèt ou fè nenpòt lòt bagay pou yon kantite segonn detèmine, nou ta dwe itilize yon revèy.Fonksyon an reta ().
Ou ta dwe abitye ak fonksyon reta () kòm li lajman itilize. Fonksyon sa a trè fasil pou itilize. Li aksepte yon sèl nimewo int kòm yon agiman.
Nimewo sa a reprezante tan an milisgond pwogram nan dwe tann jiskaske li ale nan pwochen liy kòd la.Lè ou fè reta (1000) pwogram ou a sispann sou liy sa a pou 1 segonn.
delay () se yon fonksyon bloke. Fonksyon bloke anpeche yon pwogram fè nenpòt lòt bagay jiskaske travay patikilye sa a fini. Si ou bezwen plizyè travay ki fèt an menm tan, ou pa ka sèvi ak reta ().
Pou pifò pwojè ou ta dwe evite itilize reta epi sèvi ak revèy pito.
Fonksyon millis().
Sèvi ak yon fonksyon ki rele millis() ou ka retounen kantite milisgond ki te pase depi premye pwogram lan te kòmanse.Poukisa fonksyon sa a itil? Paske lè w sèvi ak kèk matematik, ou ka fasilman verifye konbyen tan ki pase san yo pa bloke kòd ou a.
Pati obligatwa
Pou swiv leson patikilye sa a ou bezwen pati sa yo
- ESP32 DEVKIT V1 Komisyon Konsèy
- Capteur mouvman PIR (HC-SR501)
- Aktif buzzer
- Fil kavalye
- Breadboard
schematicNòt: Vol travay latage nan HC-SR501 se 5V. Sèvi ak PIN Vin nan pouvwa li.
Kòd
Anvan ou kontinye ak leson patikilye sa a, ou ta dwe gen ESP32 ajoute-sou enstale nan IDE Arduino ou. Swiv youn nan leson patikilye sa yo pou enstale ESP32 sou IDE Arduino a, si ou poko fè sa deja. (Si ou te deja fè etap sa a, ou ka sote nan pwochen etap la.)
Enstale ESP32 Add-on nan Arduino IDE
Louvri kòd Project_4_ESP32_PIR_Motion_Sensor.ino nan arduino IDE.
Demonstrasyon
Voye kòd la sou tablo ESP32 ou a. Asire w ke ou gen bon tablo a ak pò COM te chwazi.Télécharger etap referans kòd.
Louvri monitè seri a nan yon vitès baud 115200.Deplase men ou devan Capteur PIR la. Buzzer la ta dwe limen, epi mesaj la enprime nan Serial Monitor ki di "Mouvman detekte! Alam Buzzer".
Apre 4 segonn buzzer a ta dwe etenn.
Pwojè 5 ESP32 switch Web Sèvè
Nan pwojè sa a ou pral kreye yon otonòm web sèvè ak yon ESP32 ki kontwole pwodiksyon (de poul) lè l sèvi avèk anviwònman pwogramasyon Arduino IDE. La web sèvè se mobil reponn epi yo ka jwenn aksè ak nenpòt aparèy ki kòm yon navigatè sou rezo lokal la. Nou pral montre w kijan pou kreye web sèvè ak kijan kòd la ap travay etap pa etap.
Pwojè finiview
Anvan ou ale tou dwat nan pwojè a, li enpòtan dekri sa nou an web sèvè ap fè, se konsa ke li pi fasil yo swiv etap sa yo pita sou.
- La web sèvè ou pral bati kontwole de LED ki konekte nan ESP32 GPIO 26 ak GPIO 27;
- Ou ka jwenn aksè nan ESP32 la web sèvè pa tape adrès IP ESP32 la sou yon navigatè nan rezo lokal la;
- Lè w klike sou bouton ou yo web sèvè ou ka imedyatman chanje eta a nan chak dirije.
Pati obligatwa
Pou leson patikilye sa a ou pral bezwen pati sa yo:
- ESP32 DEVKIT V1 Komisyon Konsèy
- 2x 5mm dirije
- 2x 200 Ohm rezistans
- Breadboard
- Fil kavalye
schematic
Kòmanse pa bati kous la. Konekte de dirije nan ESP32 jan yo montre nan dyagram chema sa a - youn ki konekte ak GPIO 26, ak lòt la nan GPIO 27.
Nòt: Nou itilize tablo ESP32 DEVKIT DOIT ak 36 broch. Anvan ou rasanble kous la, asire w ke ou tcheke pinout pou tablo w ap itilize a.Kòd
Isit la nou bay kòd ki kreye ESP32 la web sèvè. Louvri kòd Project_5_ESP32_Switch _Web_Server.ino nan arduino IDE, men pa telechaje li ankò. Ou bezwen fè kèk chanjman pou fè li travay pou ou.
Nou pral pwograme ESP32 a lè l sèvi avèk Arduino IDE, kidonk asire w ke ou gen ESP32 ajoute-sou enstale anvan ou kontinye: (Si ou te deja fè etap sa a, ou ka sote nan pwochen etap la.)
Enstale ESP32 Add-on nan Arduino IDE
Mete kalifikasyon rezo w yo
Ou bezwen modifye liy sa yo ak kalifikasyon rezo ou: SSID ak modpas. Kòd la byen kòmante sou ki kote ou ta dwe fè chanjman yo.Téléchargement kòd la
Koulye a, ou ka telechaje kòd la ak ak la web sèvè ap travay imedyatman.
Swiv pwochen etap yo pou telechaje kòd sou ESP32 la:
- Ploge tablo ESP32 ou a nan òdinatè w lan;
- Nan Arduino IDE chwazi tablo ou a nan Zouti> Komisyon Konsèy (nan ka nou an nou ap itilize tablo a ESP32 DEVKIT DOIT);
- Chwazi pò COM nan Zouti > Port.
- Peze bouton an Telechaje nan Arduino IDE epi tann kèk segonn pandan y ap konpile kòd la epi telechaje sou tablo ou a.
- Tann mesaj "Fè telechaje" la.
Jwenn adrès IP ESP
Apre w fin telechaje kòd la, louvri Serial Monitor nan yon vitès baud 115200.Peze bouton ESP32 EN (reset). ESP32 a konekte ak Wi-Fi, epi li bay adrès IP ESP la sou Serial Monitor. Kopi adrès IP sa a, paske ou bezwen li pou jwenn aksè nan ESP32 la web sèvè.
Aksè a Web Sèvè
Pou jwenn aksè nan web sèvè, ouvri navigatè w la, kole adrès IP ESP32 a, epi w ap wè paj sa a.
Nòt: Navigatè w la ak ESP32 ta dwe konekte ak menm LAN.Si ou gade nan Serial Monitor, ou ka wè sa k ap pase sou background nan. ESP a resevwa yon demann HTTP nan men yon nouvo kliyan (nan ka sa a, navigatè ou a).
Ou ka wè tou lòt enfòmasyon sou demann HTTP an.
Demonstrasyon
Koulye a, ou ka teste si ou web sèvè a ap travay byen. Klike sou bouton yo pou kontwole LED yo.An menm tan an, ou ka pran yon gade nan Serial Monitor la pou wè sa k ap pase nan background nan. Pou egzanpampLè w klike sou bouton an pou limen GPIO 26, ESP32 resevwa yon demann sou /26/on. URL.
Lè ESP32 a resevwa demann sa a, li vire LED ki tache ak GPIO 26 ON epi mete ajou eta li sou la. web paj.
Bouton pou GPIO 27 travay menm jan an. Teste ke li ap travay byen.
Kijan Kòd la ap travay
Nan seksyon sa a pral pran yon gade pi pre nan kòd la yo wè ki jan li fonksyone.
Premye bagay ou bezwen fè se enkli bibliyotèk la WiFi.Kòm mansyone deja, ou bezwen mete ssid ou ak modpas ou nan liy sa yo andedan sitasyon doub yo.
Lè sa a, ou mete ou web sèvè nan pò 80.
Liy sa a kreye yon varyab pou estoke header demann HTTP an:
Apre sa, ou kreye varyab oksilyè pou estoke eta aktyèl pwodiksyon ou yo. Si ou vle ajoute plis rezilta epi sove eta li yo, ou bezwen kreye plis varyab.
Ou bezwen tou bay yon GPIO nan chak nan pwodiksyon ou yo. Isit la nou ap itilize GPIO 26 ak GPIO 27. Ou ka sèvi ak nenpòt lòt apwopriye GPIOs.
konfigirasyon ()
Koulye a, ann ale nan konfigirasyon an (). Premyèman, nou kòmanse yon kominikasyon seri nan yon vitès baud 115200 pou rezon debogaj.Ou tou defini GPIOs ou kòm OUTPUTs Et mete yo pou LOW.
Liy sa yo kòmanse koneksyon Wi-Fi ak WiFi.begin(ssid, modpas), tann pou yon koneksyon siksè epi enprime adrès IP ESP nan Serial Monitor la.
bouk ()
Nan bouk () nou pwograme sa k ap pase lè yon nouvo kliyan etabli yon koneksyon ak la web sèvè.
ESP32 a toujou ap koute kliyan k ap vini ak liy sa a:Lè yo resevwa yon demann nan men yon kliyan, nou pral sove done k ap rantre yo. Bouk while ki swiv la ap kouri osi lontan ke kliyan an rete konekte. Nou pa rekòmande pou chanje pati sa a nan kòd la sof si ou konnen egzakteman sa w ap fè.
Seksyon kap vini an nan deklarasyon si ak lòt bagay tcheke ki bouton yo te peze nan ou web paj, ak kontwole rezilta yo kòmsadwa. Kòm nou te wè deja, nou fè yon demann sou diferan URLs depann sou bouton an bourade.
Pou egzanpample, si ou te peze bouton an GPIO 26 ON, ESP32 a resevwa yon demann sou /26/ON a. URL (nou ka wè enfòmasyon sa yo sou header HTTP sou Serial Monitor). Se konsa, nou ka tcheke si header la gen ekspresyon GET /26/on. Si li gen ladan l, nou chanje varyab output26state a ON, epi ESP32 a limen dirije.
Sa a travay menm jan an pou lòt bouton yo. Se konsa, si ou vle ajoute plis rezilta, ou ta dwe modifye pati sa a nan kòd la enkli yo.
Montre HTML la web paj
Pwochen bagay ou bezwen fè, se kreye a web paj. ESP32 a pral voye yon repons nan navigatè ou a ak kèk kòd HTML yo bati a web paj.
La web paj voye bay kliyan an lè l sèvi avèk sa a eksprime client.println(). Ou ta dwe antre sa ou vle voye bay kliyan an kòm yon agiman.
Premye bagay nou ta dwe voye se toujou liy sa a, ki endike ke nou ap voye HTML.Lè sa a, liy sa a fè a web paj reponn nan nenpòt web navigatè.
Ak sa ki annapre yo itilize pou anpeche demann sou favicon la. – Ou pa bezwen enkyete sou liy sa a.
Styling la Web Paj
Apre sa, nou gen kèk tèks CSS style bouton yo ak la web aparans paj la.
Nou chwazi font la Helvetica, defini kontni an yo dwe parèt kòm yon blòk ak aliyen nan sant la.Nou style bouton nou yo ak koulè #4CAF50, san fwontyè, tèks an koulè blan, ak padding sa a: 16px 40px. Nou menm tou nou mete dekorasyon tèks la nan okenn, defini gwosè a font, maj la, ak kurseur a nan yon konsèy.
Nou menm tou nou defini style la pou yon dezyèm bouton, ak tout pwopriyete yo nan bouton an nou te defini pi bonè, men ak yon koulè diferan. Sa a pral style la pou bouton an koupe.
Mete la Web Paj Premye Tit
Nan liy kap vini an ou ka mete premye tit ou a web paj. Isit la nou gen "ESP32 Web Sèvè”, men ou ka chanje tèks sa a nan kèlkeswa sa ou renmen.Montre bouton yo ak eta korespondan
Lè sa a, ou ekri yon paragraf pou montre eta aktyèl GPIO 26 la. Kòm ou ka wè nou itilize varyab output26State, pou eta a mete ajou imedyatman lè varyab sa a chanje.Lè sa a, nou montre bouton an oswa bouton an, tou depann de eta aktyèl la nan GPIO la. Si eta aktyèl la nan GPIO a koupe, nou montre bouton an ON, si se pa, nou montre bouton an OFF.
Nou itilize menm pwosedi a pou GPIO 27.
Fèmen Koneksyon an
Finalman, lè repons lan fini, nou klè varyab header la, epi sispann koneksyon an ak kliyan an ak client.stop().
Anbalaj
Nan leson patikilye sa a nou te montre w kijan pou konstwi yon web sèvè ak ESP32 la. Nou te montre w yon ansyen senpample ki kontwole de poul, men lide a se ranplase poul sa yo ak yon relè, oswa nenpòt lòt pwodiksyon ou vle kontwole.
Pwojè 6 RGB dirije Web Sèvè
Nan pwojè sa a nou pral montre w kouman pou w kontwole adistans yon LED RGB ak yon tablo ESP32 lè l sèvi avèk yon web sèvè ak yon seleksyon koulè.
Pwojè finiview
Anvan w kòmanse, ann wè ki jan pwojè sa a fonksyone:
- ESP32 la web sèvè montre yon seleksyon koulè.
- Lè ou chwazi yon koulè, navigatè ou a fè yon demann sou yon URL ki gen paramèt R, G, ak B koulè yo chwazi a.
- ESP32 ou a resevwa demann lan epi divize valè pou chak paramèt koulè.
- Lè sa a, li voye yon siyal PWM ak valè ki koresponn lan nan GPIO yo ki ap kontwole RGB LED la.
Ki jan RGB LED yo travay?
Nan yon katod komen RGB dirije, tout twa dirije pataje yon koneksyon negatif (katòd).Tout ki enkli nan twous la se komen-katod RGB.Ki jan yo kreye koulè diferan?
Avèk yon LED RGB ou ka, nan kou, pwodwi wouj, vèt, ak ble limyè, epi pa konfigirasyon entansite a nan chak dirije, ou ka pwodwi lòt koulè tou.
Pou egzanpample, pou pwodwi piman ble limyè, ou ta mete ble a entansite ki pi wo ak vèt ak wouj pou entansite ki pi ba. Pou yon limyè blan, ou ta mete tout twa LED yo nan entansite ki pi wo a.
Melanje koulè
Pou pwodwi lòt koulè, ou ka konbine twa koulè yo nan diferan entansite. Pou ajiste entansite chak dirije ou ka itilize yon siyal PWM.
Paske LED yo trè pre youn ak lòt, je nou wè rezilta konbinezon an nan koulè, olye ke twa koulè yo endividyèlman.
Pou gen yon lide sou ki jan yo konbine koulè yo, pran yon gade nan tablo sa a.
Sa a se tablo a melanje koulè ki pi senp, men li ba ou yon lide ki jan li fonksyone ak ki jan yo pwodwi koulè diferan.Pati obligatwa
Pou pwojè sa a ou bezwen pati sa yo:
- ESP32 DEVKIT V1 Komisyon Konsèy
- RGB dirije
- 3x 220 ohm rezistans
- Fil kavalye
- Breadboard
schematicKòd
Nou pral pwograme ESP32 a lè l sèvi avèk Arduino IDE, kidonk asire w ke ou gen ESP32 ajoute-sou enstale anvan ou kontinye: (Si ou te deja fè etap sa a, ou ka sote nan pwochen etap la.)
- Enstale ESP32 Add-on nan Arduino IDE
Apre rasanble kous la, Louvri kòd la
Pwojè_6_RGB_LED_Web_Server.ino nan arduino IDE.
Anvan w telechaje kòd la, pa bliye mete kalifikasyon rezo w pou ESP a kapab konekte ak rezo lokal ou a.Ki jan kòd la ap travay
Eskiz ESP32 a sèvi ak bibliyotèk WiFi.h.Liy sa yo defini varyab fisèl pou kenbe paramèt R, G, ak B nan demann lan.
Kat pwochen varyab yo itilize pou dekode demann HTTP an pita.
Kreye twa varyab pou GPIO yo ki pral kontwole bann paramèt R, G, ak B yo. Nan ka sa a nou ap itilize GPIO 13, GPIO 12, ak GPIO 14.
GPIO sa yo bezwen pwodiksyon siyal PWM, kidonk nou bezwen konfigirasyon pwopriyete PWM yo an premye. Mete frekans siyal PWM a 5000 Hz. Lè sa a, asosye yon chanèl PWM pou chak koulè
Epi finalman, mete rezolisyon chanèl PWM yo sou 8-bit
Nan konfigirasyon an (), bay pwopriyete PWM yo nan chanèl PWM yo
Tache chanèl PWM yo ak GPIO korespondan yo
Seksyon kòd ki anba la a montre seleksyon koulè a nan ou web paj epi fè yon demann ki baze sou koulè ou te chwazi a.
Lè ou chwazi yon koulè, ou resevwa yon demann ak fòma sa a.
Se konsa, nou bezwen divize fisèl sa a pou jwenn paramèt R, G, ak B yo. Paramèt yo sove nan varyab redString, greenString, ak blueString epi yo ka gen valè ant 0 ak 255.Pou kontwole teren an ak ESP32, sèvi ak fonksyon ledcWrite() pou jenere siyal PWM ak valè ki dekode soti nan HTTP. demann.
Nòt: aprann plis sou PWM ak ESP32: Pwojè 3 ESP32 PWM (Sòti analòg)
Pou kontwole teren an ak ESP8266 a, nou jis bezwen sèvi ak
analogWrite() fonksyon an pou jenere siyal PWM ak valè yo dekode nan demann HTPP la.
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
Paske nou jwenn valè yo nan yon varyab fisèl, nou bezwen konvèti yo nan nonm antye lè l sèvi avèk metòd la toInt().
Demonstrasyon
Apre w fin mete kalifikasyon rezo w yo, chwazi bon tablo a ak pò COM epi telechaje kòd la nan ESP32 ou. Upload etap referans kòd la.
Apre w fin telechaje, louvri Serial Monitor nan yon vitès baud 115200 epi peze bouton ESP la pèmèt / Reyajiste. Ou ta dwe jwenn adrès IP tablo a.Louvri navigatè w la epi mete adrès IP ESP la. Koulye a, sèvi ak seleksyon an koulè yo chwazi yon koulè pou dirije RGB la.
Lè sa a, ou bezwen peze bouton an "Chanje koulè" pou koulè a pran efè.Pou etenn ki ap dirije RGB la, chwazi koulè nwa a.
Koulè ki pi fò yo (nan tèt koulè seleksyon an), se yo menm ki pral pwodwi pi bon rezilta.
Pwojè 7 ESP32 Relay Web Sèvè
Sèvi ak yon relè ak ESP32 a se yon bon fason pou kontwole AC aparèy nan kay la adistans. Tutorial sa a eksplike kijan pou kontwole yon modil relè ak ESP32 la.
Nou pral gade ki jan yon modil relè travay, ki jan yo konekte relè a nan ESP32 a ak bati yon web sèvè pou kontwole yon relè adistans.
Entwodwi rle
Yon relè se yon switch ki fonksyone elektrik epi tankou nenpòt lòt switch, li ki ka vire sou oswa koupe, kite aktyèl la ale nan oswa ou pa. Li ka kontwole ak ba voltages, tankou 3.3V yo bay nan ESP32 GPIO yo ak pèmèt nou kontwole segondè voltagse tankou 12V, 24V oswa prensipal voltage (230V an Ewòp ak 120V nan peyi Etazini).Sou bò gòch, genyen de ansanm de twa sockets pou li konekte li anwo nan syèl la voltages, ak broch yo sou bò dwat la (ba-voltage) konekte ak ESP32 GPIO yo.
Mains Voltage KoneksyonModil relè yo montre nan foto anvan an gen de konektè, yo chak ak twa priz: komen (COM), Nòmalman Fèmen (NC), ak Nòmalman Louvri (NO).
- COM: konekte kouran an ou vle kontwole (secteur voltagak).
- NC (Nòmalman fèmen): konfigirasyon nòmalman fèmen yo itilize lè ou vle relè a fèmen pa default. NC yo se PIN COM ki konekte, sa vle di aktyèl la ap koule sof si ou voye yon siyal soti nan ESP32 nan modil la relè yo louvri kous la epi sispann koule aktyèl la.
- NON (Nòmalman Louvri): konfigirasyon nòmalman louvri a ap travay nan yon lòt fason alantou: pa gen okenn koneksyon ant PIN yo NO ak COM, kidonk kous la kase sof si ou voye yon siyal nan ESP32 a fèmen kous la.
Kontwòl PinsA ba-voltagE bò gen yon seri kat broch ak yon seri twa broch. Premye seri a konsiste de VCC ak GND pou pouvwa moute modil la, ak opinyon 1 (IN1) ak opinyon 2 (IN2) pou kontwole rle anba ak anwo yo, respektivman.
Si modil relè ou a gen yon sèl kanal, w ap gen yon sèl PIN IN. Si ou gen kat chanèl, ou pral gen kat IN broch, ak sou sa.
Siyal ou voye nan broch IN yo, detèmine si relè a aktif oswa ou pa. Se relè a deklanche lè opinyon an ale pi ba pase apeprè 2V. Sa vle di ke ou pral gen senaryo sa yo:
- Konfigirasyon nòmalman fèmen (NC):
- HIGH siyal - kouran ap koule
- LOW siyal - aktyèl pa ap koule tankou dlo
- Nòmalman Louvri konfigirasyon (NON):
- HIGH siyal - aktyèl pa ap koule
- LOW siyal - kouran nan ap koule tankou dlo
Ou ta dwe itilize yon konfigirasyon nòmalman fèmen lè aktyèl la ta dwe ap koule tankou dlo pi fò nan fwa yo, epi ou sèlman vle sispann li detanzantan.
Sèvi ak yon konfigirasyon nòmalman louvri lè ou vle kouran an koule detanzantan (pa egzanpample, vire sou alamp detanzantan).
Seleksyon ekipman pou pouvwaDezyèm seri broch la konsiste de broch GND, VCC, ak JD-VCC.
PIN JD-VCC a pouvwa elektwomayet relè a. Remake ke modil la gen yon bouchon kavalye ki konekte VCC ak JD-VCC broch yo; youn ki montre la a se jòn, men ou ka gen yon koulè diferan.
Avèk bouchon an kavalye sou, broch VCC ak JD-VCC yo konekte. Sa vle di elektwomayet relè a dirèkteman mache nan PIN pouvwa ESP32, kidonk modil relè a ak sikui ESP32 yo pa izole fizikman youn ak lòt.
San bouchon kavalye a, ou bezwen bay yon sous pouvwa endepandan pou pouvwa moute elektwomayèt relè a atravè PIN JD-VCC la. Konfigirasyon sa a izole fizikman relè yo soti nan ESP32 a ak optokouple modil la entegre, ki anpeche domaj nan ESP32 a nan ka ta gen Spikes elektrik.
schematicAvètisman: Sèvi ak gwo voltagPwovizyon elektrik yo ka lakòz blesi grav.
Se poutèt sa, 5mm poul yo itilize olye pou yo gwo ekipman pou voltage anpoul nan eksperyans la. Si ou pa abitye ak prensipal voltage mande yon moun ki pou ede w. Pandan w ap pwograme ESP a oswa branche sikwi w la, asire w ke tout bagay dekonekte ak kouran elektrik voltage.Enstale Bibliyotèk la pou ESP32
Pou konstwi sa web sèvè, nou itilize ESPAsync laWebBibliyotèk sèvè ak Bibliyotèk AsyncTCP.
Enstale ESPAsync laWebBibliyotèk sèvè
Swiv pwochen etap yo pou enstale ESPAsyncWebSèvè bibliyotèk:
- Klike la a pou telechaje ESPAsync laWebBibliyotèk sèvè. Ou ta dwe genyen
yon katab .zip nan katab Downloads ou a - Dekonprime katab .zip la epi ou ta dwe jwenn ESPAsyncWebKatab sèvè-mèt
- Chanje non katab ou a soti nan ESPAsyncWebSèvè-mèt nan ESPAsyncWebSèvè
- Deplase ESPAsync laWebKatab sèvè nan katab bibliyotèk enstalasyon Arduino IDE ou a
Altènativman, nan IDE Arduino ou a, ou ka ale nan Sketch> Mete
Bibliyotèk > Ajoute bibliyotèk .Zip… epi chwazi bibliyotèk ou sot telechaje a.
Enstale Bibliyotèk AsyncTCP pou ESP32
La ESPAsyncWebSèvè bibliyotèk mande a AsyncTCP bibliyotèk pou travay. Swiv
pwochen etap yo pou enstale bibliyotèk sa a:
- Klike la a pou telechaje bibliyotèk AsyncTCP la. Ou ta dwe gen yon katab .zip nan katab Downloads ou a
- Dekonprime katab la .zip epi ou ta dwe jwenn katab AsyncTCP-master
1. Chanje non katab ou soti nan AsyncTCP-master pou AsyncTCP
3. Deplase katab AsyncTCP a nan katab bibliyotèk enstalasyon Arduino IDE ou a
4. Finalman, re-louvri IDE Arduino ou a
Altènativman, nan IDE Arduino ou a, ou ka ale nan Sketch> Mete
Bibliyotèk > Ajoute bibliyotèk .Zip… epi chwazi bibliyotèk ou sot telechaje a.
Kòd
Nou pral pwograme ESP32 a lè l sèvi avèk Arduino IDE, kidonk asire w ke ou gen ESP32 ajoute-sou enstale anvan ou kontinye: (Si ou te deja fè etap sa a, ou ka sote nan pwochen etap la.)
Enstale ESP32 Add-on nan Arduino IDE
Apre enstale bibliyotèk ki nesesè yo, Louvri kòd Project_7_ESP32_Relay_Web_Server.ino nan arduino IDE.
Anvan w telechaje kòd la, pa bliye mete kalifikasyon rezo w pou ESP a kapab konekte ak rezo lokal ou a.Demonstrasyon
Apre w fin fè chanjman ki nesesè yo, telechaje kòd la nan ESP32 ou a.
Louvri Serial Monitè a nan yon vitès baud 115200 epi peze bouton ESP32 EN pou jwenn adrès IP li. Apre sa, louvri yon navigatè nan rezo lokal ou a epi tape adrès IP ESP32 la pou jwenn aksè a. web sèvè.
Louvri Serial Monitè a nan yon vitès baud 115200 epi peze bouton ESP32 EN pou jwenn adrès IP li. Apre sa, louvri yon navigatè nan rezo lokal ou a epi tape adrès IP ESP32 la pou jwenn aksè a. web sèvè.Nòt: Navigatè w la ak ESP32 ta dwe konekte ak menm LAN.
Ou ta dwe jwenn yon bagay jan sa a ak kòm de bouton kòm kantite rle ou te defini nan kòd ou a.Koulye a, ou ka itilize bouton yo pou kontwole relè ou yo lè l sèvi avèk smartphone ou.
Pwojè_8_Synchronization_State_Output_ Web_Sèvè
Pwojè sa a montre kijan pou kontwole rezilta ESP32 oswa ESP8266 lè l sèvi avèk yon web sèvè ak yon bouton fizik ansanm. Eta pwodiksyon an mete ajou sou la web paj si wi ou non li chanje atravè bouton fizik oswa web sèvè.
Pwojè finiview
Ann pran yon gade rapid sou fason pwojè a ap travay.ESP32 oswa ESP8266 gen tout pouvwa a web sèvè ki pèmèt ou kontwole eta a nan yon pwodiksyon;
- Eta pwodiksyon aktyèl la parèt sou la web sèvè;
- ESP a konekte tou ak yon bouton fizik ki kontwole menm pwodiksyon an;
- Si ou chanje eta pwodiksyon an lè l sèvi avèk bouton fizik la, eta aktyèl li yo tou mete ajou sou la web sèvè.
An rezime, pwojè sa a pèmèt ou kontwole pwodiksyon an menm lè l sèvi avèk yon web sèvè ak yon bouton pouse ansanm. Chak fwa eta pwodiksyon an chanje, la web sèvè a mete ajou.
Pati obligatwa
Men yon lis pati ou bezwen pou konstwi kous la:
- ESP32 DEVKIT V1 Komisyon Konsèy
- 5 mm dirije
- 220Ohm rezistans
- Bouton
- 10k Ohm rezistans
- Breadboard
- Fil kavalye
schematicEnstale Bibliyotèk la pou ESP32
Pou konstwi sa web sèvè, nou itilize ESPAsync laWebBibliyotèk sèvè ak Bibliyotèk AsyncTCP.(Si ou te deja fè etap sa a, ou ka sote nan pwochen etap la.)
Enstale ESPAsync laWebBibliyotèk sèvè
Swiv pwochen etap yo pou enstale ESPAsync laWebBibliyotèk sèvè:
- Klike la a pou telechaje ESPAsync laWebBibliyotèk sèvè. Ou ta dwe genyen
yon katab .zip nan katab Downloads ou a - Dekonprime katab .zip la epi ou ta dwe jwenn ESPAsyncWebKatab sèvè-mèt
- Chanje non katab ou a soti nan ESPAsyncWebSèvè-mèt nan ESPAsyncWebSèvè
- Deplase ESPAsync laWebKatab sèvè nan katab bibliyotèk enstalasyon Arduino IDE ou a
Altènativman, nan IDE Arduino ou a, ou ka ale nan Sketch> Mete
Bibliyotèk > Ajoute bibliyotèk .Zip… epi chwazi bibliyotèk ou sot telechaje a.
Enstale Bibliyotèk AsyncTCP pou ESP32
ESPAsync laWebBibliyotèk sèvè mande pou bibliyotèk AsyncTCP pou travay. Swiv pwochen etap sa yo pou enstale bibliyotèk sa a:
- Klike la a pou telechaje bibliyotèk AsyncTCP la. Ou ta dwe gen yon katab .zip nan katab Downloads ou a
- Dekonprime katab la .zip epi ou ta dwe jwenn katab AsyncTCP-master
- Chanje non katab ou soti nan AsyncTCP-master pou AsyncTCP
- Deplase katab AsyncTCP a nan katab bibliyotèk enstalasyon Arduino IDE ou a
- Finalman, re-louvri IDE Arduino ou a
Altènativman, nan IDE Arduino ou a, ou ka ale nan Sketch> Mete
Bibliyotèk > Ajoute bibliyotèk .Zip… epi chwazi bibliyotèk ou sot telechaje a.
Kòd
Nou pral pwograme ESP32 a lè l sèvi avèk Arduino IDE, kidonk asire w ke ou gen ESP32 ajoute-sou enstale anvan ou kontinye: (Si ou te deja fè etap sa a, ou ka sote nan pwochen etap la.)
Enstale ESP32 Add-on nan Arduino IDE
Apre enstale bibliyotèk ki nesesè yo, Louvri kòd la
Pwojè_8_Synchronization_State_Output_Web_Server.ino nan arduino IDE.
Anvan w telechaje kòd la, pa bliye mete kalifikasyon rezo w pou ESP a kapab konekte ak rezo lokal ou a.
Kijan Kòd la ap travay
Eta Bouton ak Eta Sòti
Varyab ledState kenbe eta pwodiksyon ki ap dirije a. Pou default, lè a web sèvè kòmanse, li ba.
ButtonState ak lastButtonState yo itilize pou detekte si yo te peze bouton an oswa ou pa.bouton (web sèvè)
Nou pa mete HTML pou kreye bouton sou varyab index_html la.
Sa a se paske nou vle pou kapab chanje li depann sou eta aktyèl la ki ap dirije ki kapab tou chanje ak bouton an.
Se konsa, nou te kreye yon kote pou bouton %BUTTONPLACEHOLDER% ki pral ranplase ak tèks HTML pou kreye bouton an pita sou kòd la (sa fè nan fonksyon processeur()).processeur ()
Fonksyon processeur() la ranplase nenpòt kote ki genyen sou tèks HTML la ak valè aktyèl yo. Premyèman, li tcheke si tèks HTML yo genyen nenpòt
placeholders % BUTTONPLACEHOLDER %.Lè sa a, rele fonksyon theoutputState() ki retounen eta pwodiksyon aktyèl la. Nou sove li nan varyab outputStateValue.
Apre sa, sèvi ak valè sa a pou kreye tèks HTML pou montre bouton an ak eta a dwat:
HTTP GET Demann pou Chanje Eta Sòti (JavaScript)
Lè w peze bouton an, yo rele fonksyon toggleCheckbox(). Fonksyon sa a pral fè yon demann sou diferan URLs vire LED a sou oswa koupe.Pou limen LED a, li fè yon demann sou /update?state=1 URL:
Sinon, li fè yon demann sou /update?state=0 URL.
HTTP GET Demann pou Mizajou Eta (JavaScript)
Pou kenbe eta pwodiksyon an mete ajou sou la web sèvè, nou rele fonksyon sa a ki fè yon nouvo demann sou /state la URL chak segonn.Manyen Demann yo
Lè sa a, nou bezwen okipe sa k ap pase lè ESP32 oswa ESP8266 resevwa demann sou sa yo URLs.
Lè yo resevwa yon demann sou rasin lan /URL, nou voye paj HTML la ansanm ak processeur a.Liy sa yo tcheke si ou te resevwa yon demann sou /update?state=1 oswa /update?state=0. URL epi chanje ledState kòmsadwa.
Lè yo resevwa yon demann sou /eta a URL, nou voye eta aktyèl pwodiksyon an:
bouk ()
Nan bouk la (), nou debouse bouton an epi limen oswa etenn ki ap dirije a depann sou valè ledState la. varyab.Demonstrasyon
Voye kòd la sou tablo ESP32 ou a. Telechaje etap referans kòd la.
Lè sa a, louvri Serial Monitè a nan yon vitès baud 115200. Peze sou-tablo EN/RST bouton an pou jwenn se adrès IP.Louvri yon navigatè sou rezo lokal ou a, epi tape adrès IP ESP la. Ou ta dwe gen aksè a web sèvè jan yo montre anba a.
Nòt: Navigatè w la ak ESP32 ta dwe konekte ak menm LAN.Ou ka aktive bouton an sou la web sèvè pou limen LED la.
Ou kapab tou kontwole menm dirije ak bouton fizik la. Eta li yo ap toujou mete ajou otomatikman sou la web sèvè.
Pwojè 9 ESP32 DHT11 Web Sèvè
Nan pwojè sa a, ou pral aprann kijan pou konstwi yon ESP32 asynchrone web sèvè ak DHT11 ki montre tanperati ak imidite lè l sèvi avèk Arduino IDE.
Prekondisyon
La web sèvè nou pral konstwi mizajou lekti yo otomatikman san yo pa bezwen rafrechi a web paj.
Avèk pwojè sa a ou pral aprann:
- Ki jan yo li tanperati ak imidite nan detèktè DHT;
- Bati yon asynchrone web sèvè lè l sèvi avèk la ESPAsyncWebBibliyotèk sèvè;
- Mete ajou lekti Capteur yo otomatikman san yo pa bezwen rafrechi web paj.
Asynchrone Web Sèvè
Pou konstwi a web sèvè nou pral sèvi ak ESPAsyncWebBibliyotèk sèvè ki bay yon fason fasil pou konstwi yon asynchrone web sèvè. Bati yon asynchrone web sèvè gen plizyè advantagjan yo mansyone nan paj GitHub bibliyotèk la, tankou:
- "Jere plis pase yon koneksyon an menm tan";
- "Lè ou voye repons lan, ou imedyatman pare pou okipe lòt koneksyon pandan sèvè a ap pran swen pou voye repons lan nan background nan";
- "Senp motè pwosesis modèl pou okipe modèl";
Pati obligatwa
Pou konplete leson patikilye sa a ou bezwen pati sa yo:
- ESP32 tablo devlopman
- DHT11 Modil
- Breadboard
- Fil kavalye
schematicEnstale bibliyotèk
Ou bezwen enstale yon koup nan bibliyotèk pou pwojè sa a:
- La DHT ak la Adafruit Inifye Capteur Bibliyotèk chofè pou li nan Capteur DHT a.
- ESPAsyncWebSèvè epi Async TCP bibliyotèk pou konstwi asynchrone a web sèvè.
Swiv pwochen enstriksyon yo pou enstale bibliyotèk sa yo:
Enstale Bibliyotèk Capteur DHT
Pou li soti nan Capteur DHT a lè l sèvi avèk Arduino IDE, ou bezwen enstale a Bibliyotèk Capteur DHT. Swiv pwochen etap yo pou enstale bibliyotèk la.
- Klike la a pou telechaje bibliyotèk DHT Sensor. Ou ta dwe gen yon katab .zip nan katab Downloads ou a
- Dekonprime katab .zip la epi ou ta dwe jwenn katab DHT-sensor-library-master
- Chanje non katab ou a soti nan DHT-sensor-library-master pou DHT_sensor
- Deplase katab DHT_sensor a nan katab bibliyotèk enstalasyon Arduino IDE ou a
- Finalman, re-louvri IDE Arduino ou a
Enstale Adafruit Unified Sensor Driver la
Ou bezwen tou enstale a Adafruit Unified Sensor Driver bibliyotèk pou travay ak Capteur DHT a. Swiv pwochen etap yo pou enstale bibliyotèk la.
- Klike la a pou telechaje bibliyotèk Adafruit Unified Sensor. Ou ta dwe gen yon katab .zip nan katab Downloads ou a
- Dekonprime katab la .zip epi ou ta dwe jwenn katab Adafruit_sensor-master
- Chanje non katab ou soti nan Adafruit_sensor-master pou Adafruit_sensor
- Deplase katab Adafruit_sensor nan katab bibliyotèk enstalasyon Arduino IDE ou a
- Finalman, re-louvri IDE Arduino ou a
Enstale ESPAsync laWebBibliyotèk sèvè
Swiv pwochen etap yo pou enstale ESPAsyncWebSèvè bibliyotèk:
- Klike la a pou telechaje ESPAsync laWebBibliyotèk sèvè. Ou ta dwe genyen
yon katab .zip nan katab Downloads ou a - Dekonprime katab la .zip epi ou ta dwe
jwenn ESPAsyncWebKatab sèvè-mèt - Chanje non katab ou a soti nan ESPAsyncWebSèvè-mèt nan ESPAsyncWebSèvè
- Deplase ESPAsync laWebKatab sèvè nan katab bibliyotèk enstalasyon Arduino IDE ou a
Enstale Bibliyotèk Async TCP pou ESP32
La ESPAsyncWebSèvè bibliyotèk mande a AsyncTCP bibliyotèk pou travay. Swiv pwochen etap sa yo pou enstale bibliyotèk sa a:
- Klike la a pou telechaje bibliyotèk AsyncTCP la. Ou ta dwe gen yon katab .zip nan katab Downloads ou a
- Dekonprime katab la .zip epi ou ta dwe jwenn katab AsyncTCP-master
- Chanje non katab ou soti nan AsyncTCP-master pou AsyncTCP
- Deplase katab AsyncTCP a nan katab bibliyotèk enstalasyon Arduino IDE ou a
- Finalman, re-louvri IDE Arduino ou a
Kòd
Nou pral pwograme ESP32 a lè l sèvi avèk Arduino IDE, kidonk asire w ke ou gen ESP32 ajoute-sou enstale anvan ou kontinye: (Si ou te deja fè etap sa a, ou ka sote nan pwochen etap la.)
Enstale ESP32 Add-on nan Arduino IDE
Apre enstale bibliyotèk ki nesesè yo, Louvri kòd la
Project_9_ESP32_DHT11_Web_Server.ino nan arduino IDE.
Anvan w telechaje kòd la, pa bliye mete kalifikasyon rezo w pou ESP a kapab konekte ak rezo lokal ou a.Kijan Kòd la ap travay
Nan paragraf sa yo nou pral eksplike kijan kòd la fonksyone. Kontinye lekti si ou vle aprann plis oswa ale nan seksyon Demonstrasyon an pou wè rezilta final la.
Enpòte bibliyotèk
Premyèman, enpòte bibliyotèk ki nesesè yo. WiFi a, ESPAsyncWebSèvè ak ESPAsyncTCP yo bezwen pou konstwi a web sèvè. Adafruit_Sensor ak bibliyotèk DHT yo bezwen pou li nan detèktè DHT11 oswa DHT22 yo.Definisyon varyab yo
Defini GPIO ke PIN done DHT a konekte ak. Nan ka sa a, li konekte ak GPIO 4.Lè sa a, chwazi kalite Capteur DHT w ap itilize a. Nan ansyen nou anample, nou ap itilize DHT22 la. Si w ap itilize yon lòt kalite, ou jis bezwen dekomantè Capteur ou a epi fè kòmantè tout lòt yo.
Enstansye yon objè DHT ak kalite a ak PIN nou te defini pi bonè.Kreye yon AsyncWebObjè sèvè sou pò 80.
Li Fonksyon Tanperati ak Imidite
Nou te kreye de fonksyon: youn pou li tanperati a Nou te kreye de fonksyon: youn pou li tanperati a (readDHTTemperature()) ak lòt la pou li imidite (readDHTHumidity()).Jwenn lekti Capteur se osi senp ke lè l sèvi avèk Jwenn lekti Capteur se osi senp ke lè l sèvi avèk metòd readTemperature() ak readHumidity() sou objè dht la.
Nou gen tou yon kondisyon ki retounen de tirè (-) nan ka Capteur a echwe pou jwenn lekti yo.
Lekti yo retounen kòm kalite fisèl. Pou konvèti yon flote nan yon fisèl, sèvi ak fonksyon an String().
Pa default, nou ap li tanperati a an degre Sèlsiyis. Pou w ka jwenn tanperati a an Fahrenheit degre, kòmante tanperati a an Sèlsiyis epi retire tanperati a an Fahrenheit, pou w gen bagay sa yo:
Telechaje Kòd la
Koulye a, telechaje kòd la nan ESP32 ou. Asire w ke ou gen bon tablo a ak pò COM te chwazi.Télécharger etap referans kòd.
Apre w fin telechaje, louvri Serial Monitor nan yon vitès baud 115200. Peze bouton reset ESP32 la. Adrès IP ESP32 a ta dwe enprime nan seri a kontwole.Demonstrasyon
Louvri yon navigatè epi tape adrès IP ESP32 la. Ou web sèvè ta dwe montre dènye lekti detèktè yo.
Nòt: Navigatè w la ak ESP32 ta dwe konekte ak menm LAN.
Remake ke lekti tanperati ak imidite yo mete ajou otomatikman san yo pa bezwen rafrechi web paj.
Project_10_ESP32_OLED_Display
Pwojè sa a montre kijan pou itilize ekspozisyon OLED SSD0.96 1306 pous ak ESP32 lè l sèvi avèk Arduino IDE.
Entwodwi 0.96 pous OLED Display
La OLED ekspozisyon ke nou pral itilize nan leson patikilye sa a se modèl SSD1306 la: yon monokolor, ekspozisyon 0.96 pous ak 128 × 64 piksèl jan yo montre nan figi sa a.Ekspozisyon OLED a pa mande pou ekleraj, sa ki lakòz yon kontras trè bèl nan anviwònman nwa. Anplis de sa, piksèl li yo konsome enèji sèlman lè yo sou, kidonk ekspozisyon OLED konsome mwens pouvwa lè yo konpare ak lòt ekspozisyon.
Paske ekspozisyon OLED a sèvi ak pwotokòl kominikasyon I2C, fil elektrik trè senp. Ou ka itilize tablo sa a kòm referans.
OLED PIN | ESP32 |
Vin | 3.3V |
GND | GND |
SCL | GPIO 22 |
SDA | GPIO 21 |
schematicEnstale SSD1306 OLED Bibliyotèk - ESP32
Gen plizyè bibliyotèk ki disponib pou kontwole ekspozisyon OLED ak ESP32 la.
Nan leson patikilye sa a nou pral sèvi ak de bibliyotèk Adafruit: Adafruit_SSD1306 bibliyotèk epi Bibliyotèk Adafruit_GFX.
Swiv pwochen etap yo pou enstale bibliyotèk sa yo.
- Louvri IDE Arduino ou a epi ale nan Sketch> Mete Bibliyotèk> Jere Bibliyotèk. Manadjè Bibliyotèk la ta dwe louvri.
- Tape "SSD1306" nan bwat rechèch la epi enstale bibliyotèk SSD1306 ki soti nan Adafruit.
- Apre enstale bibliyotèk SSD1306 ki soti nan Adafruit, tape "GFX" nan bwat rechèch la epi enstale bibliyotèk la.
- Apre enstale bibliyotèk yo, rekòmanse IDE Arduino ou a.
Kòd
Apre enstale bibliyotèk ki nesesè yo, Louvri Project_10_ESP32_OLED_Display.ino nan arduino IDE. kòd
Nou pral pwograme ESP32 a lè l sèvi avèk Arduino IDE, kidonk asire w ke ou gen ESP32 ajoute-sou enstale anvan ou kontinye: (Si ou te deja fè etap sa a, ou ka sote nan pwochen etap la.)
Enstale ESP32 Add-on nan Arduino IDEKijan Kòd la ap travay
Enpòte bibliyotèk
Premyèman, ou bezwen enpòte bibliyotèk ki nesesè yo. Bibliyotèk Fil pou itilize I2C ak bibliyotèk Adafruit pou ekri nan ekspozisyon an: Adafruit_GFX ak Adafruit_SSD1306.Inisyalize ekspozisyon OLED la
Lè sa a, ou defini lajè OLED ou ak wotè. Nan ansyen sa aample, nou ap itilize yon ekspozisyon OLED 128×64. Si w ap itilize lòt gwosè, ou ka chanje sa nan varyab SCREEN_WIDTH, ak SCREEN_HEIGHT.Lè sa a, inisyalize yon objè ekspozisyon ak lajè ak wotè defini pi bonè ak pwotokòl kominikasyon I2C (&Fil).
Paramèt (-1) la vle di ke ekspozisyon OLED ou a pa gen yon PIN RESET. Si ekspozisyon OLED ou a gen yon PIN RESET, li ta dwe konekte ak yon GPIO. Nan ka sa a, ou ta dwe pase nimewo GPIO la kòm yon paramèt.
Nan konfigirasyon an (), inisyalize Serial Monitè a nan yon vitès baud nan 115200 pou rezon debogaj.Inisyalize ekspozisyon OLED ak metòd begin() jan sa a:
Frag sa a tou enprime yon mesaj sou Serial Monitor, nan ka nou pa kapab konekte ak ekspozisyon an.
Nan ka w ap itilize yon ekspozisyon OLED diferan, ou ka bezwen chanje adrès OLED la. Nan ka nou an, adrès la se 0x3C.
Apre inisyalize ekspozisyon an, ajoute yon reta de dezyèm, pou OLED a gen ase tan pou inisyalize anvan ekri tèks:
Ekspozisyon klè, mete gwosè font, koulè epi ekri tèks
Apre inisyalize ekspozisyon an, netwaye tanpon ekspozisyon an ak metòd clearDisplay():
Anvan ekri tèks, ou bezwen mete gwosè tèks la, koulè ak kote tèks la pral parèt nan OLED la.
Mete gwosè font la lè l sèvi avèk metòd setTextSize():Mete koulè font la ak metòd setTextColor():
WHITE mete polis blan ak background nwa.
Defini pozisyon kote tèks la kòmanse lè l sèvi avèk metòd setCursor(x,y). Nan ka sa a, nou ap mete tèks la kòmanse nan kowòdone yo (0,0) - nan kwen an tèt gòch.Finalman, ou ka voye tèks la nan ekspozisyon an lè l sèvi avèk metòd println(), jan sa a
Lè sa a, ou bezwen rele metòd ekspozisyon () pou aktyèlman montre tèks la sou ekran an.
Bibliyotèk Adafruit OLED bay metòd itil pou woule tèks fasil.
- startscrollright(0x00, 0x0F): woulo liv tèks de goch a dwat
- startscrollleft(0x00, 0x0F): woulo liv tèks de dwat a goch
- startscrolldiagright(0x00, 0x07): woulo liv tèks soti nan kwen anba gòch rive nan kwen anwo adwat startscrolldiagleft(0x00, 0x07): woulo liv tèks soti nan kwen anba dwat rive nan kwen anwo gòch
Telechaje Kòd la
Koulye a, telechaje kòd la nan ESP32 ou. Upload etap referans kòd.
Apre w fin telechaje kòd la, OLED a ap montre tèks defile.
Dokiman / Resous
![]() |
LAFVIN ESP32 Basic Starter Kit [pdfManyèl Enstriksyon ESP32 Twous debaz pou kòmanse, ESP32, Twous debaz debaz, Twous pou kòmanse |