ESP32 Kianzisha Msingi
Kiti
Orodha ya Ufungashaji
Utangulizi wa ESP32
Mpya kwa ESP32? Anzia hapa! ESP32 ni mfululizo wa vidhibiti vidogo vya Mfumo wa gharama ya chini na wa chini kwenye Chip (SoC) vilivyotengenezwa na Espressif ambavyo vinajumuisha uwezo wa wireless wa Wi-Fi na Bluetooth na kichakataji cha msingi-mbili. Ikiwa unaifahamu ESP8266, ESP32 ndiyo mrithi wake, iliyosheheni vipengele vingi vipya.Maelezo ya ESP32
Ikiwa unataka kupata kiufundi zaidi na maalum, unaweza kuangalia maelezo yafuatayo ya ESP32 (chanzo: http://esp32.net/) - kwa maelezo zaidi, angalia hifadhidata):
- Muunganisho wa wireless wa WiFi: Kiwango cha data cha 150.0 Mbps na HT40
- Bluetooth: BLE (Bluetooth Low Energy) na Bluetooth Classic
- Kichakataji: Tensilica Xtensa Dual-Core 32-bit LX6 microprocessor, inayotumia 160 au 240 MHz
- Kumbukumbu:
- ROM: 448 KB (kwa uanzishaji na kazi za msingi)
- SRAM: 520 KB (kwa data na maagizo)
- RTC fas SRAM: 8 KB (kwa hifadhi ya data na CPU kuu wakati wa RTC Boot kutoka kwa hali ya usingizi mzito)
- SRAM ya polepole ya RTC: 8KB (kwa kichakataji mwenza wakati wa hali ya usingizi mzito) eFuse: 1 Kbit (ambayo biti 256 hutumika kwa mfumo (anwani ya MAC na usanidi wa chipu) na biti 768 zilizosalia zimehifadhiwa kwa ajili ya programu za mteja, ikiwa ni pamoja na. Usimbaji fiche wa Flash na Chip-ID)
Mweko uliopachikwa: mweko uliounganishwa ndani kupitia IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 na SD_DATA_1 kwenye ESP32-D2WD na ESP32-PICO-D4.
- 0 MiB (ESP32-D0WDQ6, ESP32-D0WD, na chipsi za ESP32-S0WD)
- 2 MiB (Chip ESP32-D2WD)
- 4 MiB (Moduli ya ESP32-PICO-D4 SiP)
Nguvu ya Chini: inahakikisha kuwa bado unaweza kutumia viongofu vya ADC, kwa mfanoample, wakati wa usingizi mzito.
Ingizo/Pato la Pembeni:
- kiolesura cha pembeni na DMA ambacho kinajumuisha mguso wa uwezo
- ADCs (Kigeuzi cha Analogi hadi Dijiti)
- DAC (Kigeuzi Dijiti-hadi-Analogi)
- I²C (Mzunguko Uliounganishwa)
- UART (Kipokezi/Kisambazaji cha Universal Asynchronous)
- SPI (Serial Pembeni Interface)
- I²S (Sauti Iliyounganishwa ya Chipu)
- RMII (Kiolesura Kilichopunguzwa cha Media-Independent)
- PWM (Urekebishaji wa upana wa Pulse)
Usalama: vichapuzi vya vifaa vya AES na SSL/TLS
Bodi za Maendeleo za ESP32
ESP32 inarejelea chip tupu cha ESP32. Hata hivyo, neno la "ESP32" pia linatumika kurejelea bodi za ukuzaji za ESP32. Kutumia chip tupu za ESP32 si rahisi au vitendo, haswa wakati wa kujifunza, kujaribu, na kutoa picha. Mara nyingi, utataka kutumia bodi ya ukuzaji ya ESP32.
Tutakuwa tukitumia ubao wa ESP32 DEVKIT V1 kama marejeleo. Picha iliyo hapa chini inaonyesha ubao wa ESP32 DEVKIT V1, toleo lenye pini 30 za GPIO.Maelezo - ESP32 DEVKIT V1
Jedwali lifuatalo linaonyesha muhtasari wa vipengele na vipimo vya bodi ya ESP32 DEVKIT V1 DOIT:
Idadi ya cores | 2 (msingi mbili) |
Wi-Fi | 2.4 GHz hadi 150 Mbits/s |
Bluetooth | BLE (Bluetooth Low Energy) na Bluetooth iliyopitwa na wakati |
Usanifu | 32 bits |
Mzunguko wa saa | Hadi 240 MHz |
RAM | 512 KB |
Pini | 30 (kulingana na mfano) |
Vifaa vya pembeni | Capacitive touch, ADC (kigeuzi cha analogi hadi dijitali), DAC (kigeuzi cha dijitali hadi cha analogi), 12C (Mzunguko Uliounganishwa-Inter-Integrated), UART (kipokezi/kisambazaji cha ulimwengu wote), CAN 2.0 (Netwokr ya Eneo la Mdhibiti), SPI (Msururu wa Kiolesura cha Pembeni) , 12S (Integrated Inter-IC Sauti), RMII (Kiolesura Kilichopunguzwa cha Media-Independent), PWM (urekebishaji wa upana wa mapigo), na zaidi. |
Vifungo vilivyojengwa | WEKA UPYA na vifungo vya BOOT |
LED zilizojengwa | LED ya bluu iliyojengwa iliyounganishwa na GPIO2; LED nyekundu iliyojengewa ndani inayoonyesha ubao unawashwa |
USB kwa UART daraja |
CP2102 |
Inakuja na kiolesura cha microUSB ambacho unaweza kutumia kuunganisha ubao kwenye kompyuta yako ili kupakia msimbo au kutumia nguvu.
Inatumia chip CP2102 (USB hadi UART) kuwasiliana na kompyuta yako kupitia lango la COM kwa kutumia kiolesura cha mfululizo. Chip nyingine maarufu ni CH340. Angalia ni kigeuzi kipi cha USB hadi UART kwenye ubao wako kwa sababu utahitaji kusakinisha viendeshi vinavyohitajika ili kompyuta yako iweze kuwasiliana na ubao (maelezo zaidi kuhusu hili baadaye katika mwongozo huu).
Ubao huu pia unakuja na kitufe cha RESET (kinaweza kuandikwa EN) ili kuanzisha upya ubao na kitufe cha BOOT ili kuweka ubao katika hali ya kuangaza (inapatikana kupokea msimbo). Kumbuka kwamba baadhi ya bodi inaweza kuwa na kifungo BOOT.
Pia inakuja na LED ya bluu iliyojengewa ndani ambayo imeunganishwa ndani kwa GPIO 2. LED hii ni muhimu kwa utatuzi ili kutoa aina fulani ya pato la kimwili. Pia kuna LED nyekundu inayowaka unapotoa nguvu kwenye ubao.Pinout ya ESP32
Vifaa vya pembeni vya ESP32 ni pamoja na:
- Njia 18 za Kubadilisha Analogi hadi Dijiti (ADC).
- 3 violesura vya SPI
- miingiliano 3 ya UART
- 2 violesura vya I2C
- Njia 16 za pato za PWM
- Vigeuzi 2 vya Dijitali hadi Analogi (DAC)
- 2 violesura vya I2S
- GPIO 10 za uwezo wa kuhisi
Vipengele vya ADC (kigeuzi cha analogi hadi dijitali) na DAC (kigeuzi cha dijitali hadi cha analogi) vimepewa pini maalum tuli. Hata hivyo, unaweza kuamua ni pini zipi ni UART, I2C, SPI, PWM, nk - unahitaji tu kuziweka kwenye msimbo. Hili linawezekana kutokana na kipengele cha kuzidisha cha chipu cha ESP32.
Ingawa unaweza kufafanua sifa za pini kwenye programu, kuna pini zilizopewa chaguo-msingi kama inavyoonyeshwa kwenye takwimu ifuatayo.Zaidi ya hayo, kuna pini zilizo na vipengele maalum vinavyowafanya kuwa wanafaa au sio kwa mradi fulani. Jedwali lifuatalo linaonyesha ni pini zipi zinafaa zaidi kutumia kama pembejeo, matokeo na zipi unahitaji kuwa waangalifu.
Pini zilizoangaziwa kwa kijani kibichi ni sawa kutumia. Zilizoangaziwa kwa manjano ni sawa kuzitumia, lakini unahitaji kuzingatia kwa sababu zinaweza kuwa na tabia isiyotarajiwa hasa kwenye buti. Pini zilizoangaziwa kwa rangi nyekundu hazipendekezwi kutumika kama pembejeo au matokeo.
GP IO | Ingizo | Pato | Vidokezo |
0 | vunjwa juu | OK | matokeo mawimbi ya PWM kwenye kuwasha, lazima iwe LOW ili kuingia katika hali ya kuwaka |
1 | Pini ya TX | OK | pato la kurekebisha kwenye buti |
2 | OK | OK | imeunganishwa kwenye ubao wa LED, lazima iachwe ikielea au CHINI ili kuingia katika hali ya kuwaka |
3 | OK | Pini ya RX | HIGH kwenye buti |
4 | OK | OK | |
5 | OK | OK | hutoa ishara ya PWM kwenye buti, pini ya kufunga |
12 | OK | OK | buti hushindwa ikivutwa juu, pini ya kufunga |
13 | OK | OK | |
14 | OK | OK | hutoa ishara ya PWM kwenye buti |
15 | OK | OK | hutoa ishara ya PWM kwenye buti, pini ya kufunga |
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 | pembejeo pekee | |
35 | OK | pembejeo pekee | |
36 | OK | pembejeo pekee | |
39 | OK | pembejeo pekee |
Endelea kusoma kwa undani zaidi na uchambuzi wa kina wa ESP32 GPIOs na kazi zake.
Ingiza pini pekee
GPIO 34 hadi 39 ni GPIs - ingiza pini pekee. Pini hizi hazina viunzi vya ndani vya kuvuta juu au kuteremsha. Haziwezi kutumika kama matokeo, kwa hivyo tumia pini hizi kama pembejeo tu:
- GPIO 34
- GPIO 35
- GPIO 36
- GPIO 39
SPI flash imeunganishwa kwenye ESP-WROOM-32
GPIO 6 hadi GPIO 11 zimefichuliwa katika baadhi ya mbao za ukuzaji za ESP32. Hata hivyo, pini hizi zimeunganishwa kwenye mwako jumuishi wa SPI kwenye chip ya ESP-WROOM-32 na hazipendekezwi kwa matumizi mengine. Kwa hivyo, usitumie pini hizi kwenye miradi yako:
- 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 touch GPIOs
ESP32 ina vihisi 10 vya ndani vya kugusa capacitive. Hizi zinaweza kuhisi tofauti katika kitu chochote kinachoshikilia chaji ya umeme, kama ngozi ya binadamu. Kwa hivyo wanaweza kugundua tofauti zinazosababishwa wakati wa kugusa GPIO kwa kidole. Pini hizi zinaweza kuunganishwa kwa urahisi kwenye usafi wa capacitive na kuchukua nafasi ya vifungo vya mitambo. Pini za kugusa zenye uwezo pia zinaweza kutumika kuamsha ESP32 kutoka kwa usingizi mzito. Sensorer hizo za mguso wa ndani zimeunganishwa kwa GPIO hizi:
- 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)
Kigeuzi cha Analogi hadi Dijitali (ADC)
ESP32 ina biti 18 x 12 njia za uingizaji za ADC (wakati ESP8266 ina biti 1x 10 ADC pekee). Hizi ndizo GPIO zinazoweza kutumika kama ADC na chaneli husika:
- 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)
Kumbuka: Pini za ADC2 haziwezi kutumika wakati Wi-Fi inatumika. Kwa hivyo, ikiwa unatumia Wi-Fi na unatatizika kupata thamani kutoka kwa ADC2 GPIO, unaweza kufikiria kutumia ADC1 GPIO badala yake. Hiyo inapaswa kutatua shida yako.
Njia za uingizaji za ADC zina azimio la 12-bit. Hii ina maana kwamba unaweza kupata usomaji wa analog kuanzia 0 hadi 4095, ambayo 0 inalingana na 0V na 4095 hadi 3.3V. Unaweza pia kuweka ubora wa vituo vyako kwenye msimbo na safu ya ADC.
Pini za ESP32 ADC hazina tabia ya mstari. Labda hutaweza kutofautisha kati ya 0 na 0.1V, au kati ya 3.2 na 3.3V. Unahitaji kukumbuka hilo unapotumia pini za ADC. Utapata tabia inayofanana na ile iliyoonyeshwa kwenye takwimu ifuatayo.Kigeuzi cha Dijitali hadi Analogi (DAC)
Kuna biti 2 x 8 chaneli za DAC kwenye ESP32 za kubadilisha mawimbi ya dijitali kuwa sauti ya analogi.tage matokeo ya ishara. Hizi ndizo njia za DAC:
- DAC1 (GPIO25)
- DAC2 (GPIO26)
RTC GPIOs
Kuna msaada wa RTC GPIO kwenye ESP32. GPIO zinazoelekezwa kwa mfumo mdogo wa RTC wa nishati ya chini zinaweza kutumika wakati ESP32 iko katika usingizi mzito. RTC GPIO hizi zinaweza kutumika kuamsha ESP32 kutoka kwa usingizi mzito wakati Kiwango cha Chini Zaidi
Kichakataji-shirikishi cha Power (ULP) kinafanya kazi. GPIO zifuatazo zinaweza kutumika kama chanzo cha nje cha kuamka.
- 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
Kidhibiti cha PWM cha LED cha ESP32 kina chaneli 16 zinazojitegemea ambazo zinaweza kusanidiwa ili kutoa mawimbi ya PWM yenye sifa tofauti. Pini zote zinazoweza kufanya kazi kama matokeo zinaweza kutumika kama pini za PWM (GPIOs 34 hadi 39 haziwezi kutoa PWM).
Ili kuweka ishara ya PWM, unahitaji kufafanua vigezo hivi katika msimbo:
- Mzunguko wa ishara;
- Mzunguko wa wajibu;
- chaneli ya PWM;
- GPIO ambapo unataka kutoa ishara.
I2C
ESP32 ina chaneli mbili za I2C na pini yoyote inaweza kuwekwa kama SDA au SCL. Unapotumia ESP32 na Arduino IDE, pini chaguo-msingi za I2C ni:
- GPIO 21 (SDA)
- GPIO 22 (SCL)
Ikiwa unataka kutumia pini zingine unapotumia maktaba ya waya, unahitaji tu kupiga simu:
Wire.begin(SDA, SCL);
SPI
Kwa chaguo-msingi, ramani ya siri ya SPI ni:
SPI | YAXNUMXCXNUMXL | MISO | CLK | CS |
VSPI | GPIO 23 | GPIO 19 | GPIO 18 | GPIO 5 |
HSPI | GPIO 13 | GPIO 12 | GPIO 14 | GPIO 15 |
Usumbufu
GPIO zote zinaweza kusanidiwa kama kukatizwa.
Pini za Kufunga
Chip ya ESP32 ina pini zifuatazo za kamba:
- GPIO 0 (lazima iwe LOW ili kuingiza hali ya kuwasha)
- GPIO 2 (lazima iwe inaelea au CHINI wakati wa kuwasha)
- GPIO 4
- GPIO 5 (lazima iwe JUU wakati wa kuwasha)
- GPIO 12 (lazima iwe LOW wakati wa kuwasha)
- GPIO 15 (lazima iwe JUU wakati wa kuwasha)
Hizi hutumika kuweka ESP32 kwenye bootloader au modi ya kuwaka. Kwenye bodi nyingi za usanidi zilizo na USB/Seri iliyojengewa ndani, huhitaji kuwa na wasiwasi kuhusu hali ya pini hizi. Ubao huweka pini katika hali sahihi kwa kuangaza au mode ya boot. Habari zaidi juu ya Uteuzi wa Njia ya Boot ya ESP32 inaweza kupatikana hapa.
Hata hivyo, ikiwa una vifaa vya pembeni vilivyounganishwa kwenye pini hizo, unaweza kuwa na shida kujaribu kupakia msimbo mpya, kuwasha ESP32 na programu dhibiti mpya, au kuweka upya ubao. Ikiwa una vifaa vya pembeni vilivyounganishwa kwenye pini za kufunga na unapata shida kupakia msimbo au kuwasha ESP32, inaweza kuwa kwa sababu vifaa hivyo vinazuia ESP32 kuingia katika hali sahihi. Soma nyaraka za Uteuzi wa Hali ya Boot ili kukuongoza katika mwelekeo sahihi. Baada ya kuweka upya, kuwaka, au kuwasha, pini hizo hufanya kazi inavyotarajiwa.
Pini HIGH kwenye Boot
Baadhi ya GPIO hubadilisha hali yao kuwa HIGH au mawimbi ya PWM ya kutoa kwenye kuwasha au kuweka upya.
Hii ina maana kwamba ikiwa una matokeo yaliyounganishwa kwa GPIO hizi unaweza kupata matokeo yasiyotarajiwa wakati ESP32 itaweka upya au kuwasha.
- GPIO 1
- GPIO 3
- GPIO 5
- GPIO 6 hadi GPIO 11 (imeunganishwa kwenye kumbukumbu ya ESP32 iliyounganishwa ya SPI - haipendekezwi kutumia).
- GPIO 14
- GPIO 15
Washa (EN)
Wezesha (EN) ni pini ya kuwasha ya kidhibiti 3.3V. Imevutwa juu, kwa hivyo unganisha chini ili kuzima kidhibiti cha 3.3V. Hii ina maana kwamba unaweza kutumia kipini hiki kilichounganishwa kwenye kitufe ili kuanzisha upya ESP32 yako, kwa mfanoample.
GPIO ya sasa imechorwa
Kiwango cha juu kabisa cha sasa kinachochorwa kwa kila GPIO ni 40mA kulingana na sehemu ya "Masharti ya Uendeshaji Yanayopendekezwa" katika hifadhidata ya ESP32.
Kihisi cha Madoido ya Ukumbi kilichojengwa ndani ya ESP32
ESP32 pia ina kihisi cha athari ya ukumbi kilichojengewa ndani ambacho hutambua mabadiliko katika uga wa sumaku katika mazingira yake
Kitambulisho cha ESP32 Arduino
Kuna programu jalizi ya IDE ya Arduino ambayo hukuruhusu kupanga ESP32 kwa kutumia Arduino IDE na lugha yake ya programu. Katika somo hili tutakuonyesha jinsi ya kusakinisha ubao wa ESP32 katika Arduino IDE iwe unatumia Windows, Mac OS X au Linux.
Masharti: IDE ya Arduino Imewekwa
Kabla ya kuanza utaratibu huu wa usakinishaji, unahitaji kuwa na Arduino IDE iliyosakinishwa kwenye kompyuta yako. Kuna matoleo mawili ya IDE ya Arduino unaweza kusakinisha: toleo la 1 na toleo la 2.
Unaweza kupakua na kusakinisha Arduino IDE kwa kubofya kiungo kifuatacho: arduino.cc/en/Main/Software
Je, ni toleo gani la Arduino IDE tunapendekeza? Kwa sasa, kuna baadhi plugins kwa ESP32 (kama SPIFFS FileSystem Uploader Plugin) ambazo bado hazitumiki kwenye Arduino 2. Kwa hivyo, ikiwa unakusudia kutumia programu-jalizi ya SPIFFS siku zijazo, tunapendekeza usakinishe toleo la zamani la 1.8.X. Unahitaji tu kusogeza chini kwenye ukurasa wa programu ya Arduino ili kuipata.
Inasakinisha programu jalizi ya ESP32 katika Arduino IDE
Ili kusakinisha ubao wa ESP32 kwenye Arduino IDE yako, fuata maagizo yafuatayo:
- Katika Arduino IDE yako, nenda kwa File> Mapendeleo
- Ingiza yafuatayo kwenye "Meneja wa Bodi ya Ziada URLs” uwanja:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Kisha, bofya kitufe cha "Sawa":Kumbuka: ikiwa tayari una bodi za ESP8266 URL, unaweza kutenganisha URLs na koma kama ifuatavyo:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Fungua Meneja wa Bodi. Nenda kwa Zana > Bodi > Kidhibiti cha Bodi...Tafuta ESP32 and press install button for the “ESP32 by Espressif Systems“:
Ni hayo tu. Inapaswa kusanikishwa baada ya sekunde chache.
Pakia Msimbo wa Jaribio
Chomeka ubao wa ESP32 kwenye kompyuta yako. Na Arduino IDE yako wazi, fuata hatua hizi:
- Chagua Bodi yako katika Zana > Menyu ya Bodi (kwa upande wangu ni Moduli ya ESP32 DEV)
- Chagua Mlango (ikiwa huoni Bandari ya COM kwenye Kitambulisho chako cha Arduino, unahitaji kusakinisha CP210x USB hadi UART Bridge VCP Drivers):
- Fungua ex ifuatayoampchini ya File > Mfamples > WiFi
(ESP32) > WiFiScan - Mchoro mpya unafunguka kwenye IDE yako ya Arduino:
- Bonyeza kitufe cha Kupakia kwenye IDE ya Arduino. Subiri sekunde chache wakati msimbo unakusanya na kupakiwa kwenye ubao wako.
- Ikiwa kila kitu kilikwenda kama ilivyotarajiwa, unapaswa kuona "Nimemaliza kupakia." ujumbe.
- Fungua Arduino IDE Serial Monitor kwa kiwango cha baud cha 115200:
- Bonyeza kitufe cha Washa kwenye ubao cha ESP32 na unapaswa kuona mitandao inayopatikana karibu na ESP32 yako:
Kutatua matatizo
Ukijaribu kupakia mchoro mpya kwa ESP32 yako na ukapata ujumbe huu wa hitilafu "Hitilafu mbaya imetokea: Imeshindwa kuunganisha kwa ESP32: Muda umekwisha... Inaunganisha...". Inamaanisha kuwa ESP32 yako haiko katika hali ya kuwaka/kupakia.
Kuwa na jina sahihi la bodi na COM iliyochaguliwa, fuata hatua hizi:
Shikilia kitufe cha "BOOT" kwenye ubao wako wa ESP32
- Bonyeza kitufe cha "Pakia" kwenye Arduino IDE ili kupakia mchoro wako:
- Baada ya kuona "Kuunganisha ...." ujumbe katika Arduino IDE yako, toa kidole kutoka kwa kitufe cha "BOOT":
- Baada ya hapo, unapaswa kuona ujumbe "Umemaliza kupakia".
Ni hayo tu. ESP32 yako inapaswa kuwa na mchoro mpya unaoendeshwa. Bonyeza kitufe cha "WEZESHA" ili kuanzisha upya ESP32 na kuendesha mchoro mpya uliopakiwa.
Pia itabidi kurudia mfuatano huo wa vitufe kila wakati unapotaka kupakia mchoro mpya.
Pato la Mradi wa 1 wa ESP32
Katika mwongozo huu wa jinsi ya kuanza utajifunza jinsi ya kusoma pembejeo za kidijitali kama vile kubadili vitufe na kudhibiti matokeo ya dijitali kama vile LED kwa kutumia ESP32 iliyo na Arduino IDE.
Masharti
Tutapanga ESP32 kwa kutumia Arduino IDE. Kwa hivyo, hakikisha kuwa umesakinisha programu jalizi ya bodi za ESP32 kabla ya kuendelea:
- Inasakinisha programu jalizi ya ESP32 katika Arduino IDE
ESP32 Dhibiti Matokeo ya Dijitali
Kwanza, unahitaji kuweka GPIO unayotaka kudhibiti kama OUTPUT. Tumia pinMode() kazi kama ifuatavyo:
pinMode(GPIO, OUTPUT);
Ili kudhibiti pato la dijiti unahitaji tu kutumia kitendakazi cha digitalWrite() , ambacho kinakubali kama hoja, GPIO (idadi ya int) unayorejelea, na hali, ama HIGH au LOW.
digitalWrite(GPIO, STATE);
GPIO zote zinaweza kutumika kama matokeo isipokuwa GPIO 6 hadi 11 (zilizounganishwa kwa mwako jumuishi wa SPI) na GPIO 34, 35, 36 na 39 (zinazoingiza GPIO pekee);
Jifunze zaidi kuhusu ESP32 GPIOs: Mwongozo wa Marejeleo wa ESP32 GPIO
ESP32 Soma Ingizo za Dijitali
Kwanza, weka GPIO unayotaka kusoma kama INPUT, ukitumia pinMode() kazi kama ifuatavyo:
pinMode(GPIO, INPUT);
Ili kusoma ingizo la dijiti, kama vile kitufe, unatumia chaguo za kukokotoa digitalRead(), ambayo inakubali kama hoja, GPIO (int number) unayorejelea.
digitalRead(GPIO);
ESP32 GPIO zote zinaweza kutumika kama pembejeo, isipokuwa GPIO 6 hadi 11 (zilizounganishwa kwenye mwako jumuishi wa SPI).
Jifunze zaidi kuhusu ESP32 GPIOs: Mwongozo wa Marejeleo wa ESP32 GPIO
Mradi Example
Ili kukuonyesha jinsi ya kutumia pembejeo za kidijitali na matokeo ya dijitali, tutaunda mradi rahisi wa zamaniample na kitufe cha kushinikiza na LED. Tutasoma hali ya kitufe cha kushinikiza na kuwasha taa ipasavyo kama inavyoonyeshwa kwenye takwimu ifuatayo.
Sehemu Inahitajika
Hapa kuna orodha ya sehemu ambazo unahitaji kuunda mzunguko:
- ESP32 DEVKIT V1
- 5 mm LED
- 220 Ohm kupinga
- Kitufe cha kushinikiza
- Kipinga cha 10k Ohm
- Ubao wa mkate
- Waya za kuruka
Mchoro wa Mpangilio
Kabla ya kuendelea, unahitaji kukusanyika mzunguko na LED na pushbutton.
Tutaunganisha LED kwa GPIO 5 na kitufe cha kushinikiza kwa GPIO 4.Kanuni
Fungua msimbo Project_1_ESP32_Inputs_Outputs.ino katika arduino IDEJinsi Kanuni Hufanya Kazi
Katika mistari miwili ifuatayo, unaunda vijiti vya kugawa pini:
Kitufe kimeunganishwa na GPIO 4 na LED imeunganishwa na GPIO 5. Unapotumia Arduino IDE na ESP32, 4 inalingana na GPIO 4 na 5 inalingana na GPIO 5.
Ifuatayo, unaunda kibadilishaji ili kushikilia hali ya kitufe. Kwa chaguo-msingi, ni 0 (haijashinikizwa).
int buttonState = 0;
Katika usanidi(), unaanzisha kitufe kama PEMBEJEO, na LED kama OUTPUT.
Kwa hilo, unatumia kitendakazi cha pinMode() ambacho kinakubali pini unayorejelea, na modi: INPUT au OUTPUT.
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
Kwenye kitanzi() ndipo unaposoma hali ya kitufe na kuweka LED ipasavyo.
Katika mstari unaofuata, unasoma hali ya kifungo na uihifadhi katika variable ya kifungoState.
Kama tulivyoona hapo awali, unatumia kitendakazi cha digitalRead().
buttonState = digitalRead(buttonPin);
Ifuatayo ikiwa taarifa, huangalia kama hali ya kitufe ni JUU. Ikiwa ni hivyo, huwasha taa kwa kutumia kitendakazi cha digitalWrite() ambacho kinakubali ledPin kama hoja, na hali ya HIGH.
ikiwa (buttonState == JUU)Ikiwa hali ya kifungo sio JUU, unaweka LED. Weka tu LOW kama hoja ya pili kwenye kitendakazi cha digitalWrite().
Inapakia Kanuni
Kabla ya kubofya kitufe cha kupakia, nenda kwenye Zana > Ubao, na uchague ubao :DOIT ESP32 DEVKIT V1 ubao.
Nenda kwa Zana > Bandari na uchague bandari ya COM ambayo ESP32 imeunganishwa. Kisha, bonyeza kitufe cha kupakia na usubiri ujumbe wa "Umemaliza kupakia".Kumbuka: Ukiona nukta nyingi (zinazounganisha…__…__) kwenye dirisha la utatuzi na ujumbe wa "Imeshindwa kuunganisha kwa ESP32: Muda umeisha kusubiri kichwa cha pakiti", hiyo inamaanisha unahitaji kubonyeza ESP32 kwenye ubao BOOT. kifungo baada ya dots
kuanza kuonekana.Utatuzi wa matatizo
Maonyesho
Baada ya kupakia msimbo, jaribu mzunguko wako. LED yako inapaswa kuwaka unapobonyeza kitufe cha kushinikiza:Na uzime unapoifungua:
Mradi wa 2 wa Pembejeo za Analogi za ESP32
Mradi huu unaonyesha jinsi ya kusoma pembejeo za analogi na ESP32 kwa kutumia Arduino IDE.
Usomaji wa analogi ni muhimu kusoma thamani kutoka kwa vipingamizi tofauti kama vile potentiometers, au vitambuzi vya analogi.
Ingizo za Analogi (ADC)
Kusoma thamani ya analogi na ESP32 inamaanisha unaweza kupima sauti inayotofautianatagviwango vya e kati ya 0 V na 3.3 V.
Juzuutage kipimo basi huwekwa kwa thamani kati ya 0 na 4095, ambapo 0 V inalingana na 0, na 3.3 V inalingana na 4095. Voltage yoyote.tage kati ya 0 V na 3.3 V itapewa thamani inayolingana kati yao.ADC haina mstari
Kwa kweli, ungetarajia tabia ya mstari wakati wa kutumia pini za ESP32 ADC.
Hata hivyo, hilo halifanyiki. Utakachopata ni tabia kama inavyoonyeshwa kwenye chati ifuatayo:Tabia hii inamaanisha kuwa ESP32 yako haiwezi kutofautisha 3.3 V na 3.2 V.
Utapata thamani sawa kwa voltagnambari: 4095.
Vile vile hufanyika kwa ujazo wa chini sanatagmaadili ya e: kwa 0 V na 0.1 V utapata thamani sawa: 0. Unahitaji kukumbuka hili unapotumia pini za ESP32 ADC.
analogRead() Kazi
Kusoma ingizo la analogi na ESP32 kwa kutumia Arduino IDE ni rahisi kama kutumia kitendakazi cha analogRead(). Inakubali kama hoja, GPIO unayotaka kusoma:
analogRead(GPIO);
15 pekee zinapatikana katika DEVKIT V1board (toleo lenye GPIO 30).
Kunyakua pinout yako ya ubao wa ESP32 na utafute pini za ADC. Hizi zimeangaziwa na mpaka mwekundu kwenye takwimu hapa chini.Pini hizi za pembejeo za analogi zina azimio la biti 12. Hii inamaanisha kuwa unaposoma ingizo la analogi, safu yake inaweza kutofautiana kutoka 0 hadi 4095.
Kumbuka: Pini za ADC2 haziwezi kutumika wakati Wi-Fi inatumika. Kwa hivyo, ikiwa unatumia Wi-Fi na unatatizika kupata thamani kutoka kwa ADC2 GPIO, unaweza kufikiria kutumia ADC1 GPIO badala yake, hiyo inapaswa kutatua tatizo lako.
Ili kuona jinsi kila kitu kinavyounganishwa, tutafanya mfano rahisiample kusoma thamani ya analogi kutoka kwa potentiometer.
Sehemu Inahitajika
Kwa huyu example, unahitaji sehemu zifuatazo:
- Bodi ya ESP32 DEVKIT V1
- Potentiometer
- Ubao wa mkate
- Waya za kuruka
Kimpango
Waya kipima nguvu kwa ESP32 yako. Pini ya kati ya potentiometer inapaswa kuunganishwa kwa GPIO 4. Unaweza kutumia mchoro wa kimkakati ufuatao kama rejeleo.Kanuni
Tutapanga ESP32 kwa kutumia Arduino IDE, kwa hivyo hakikisha kuwa umesakinisha programu jalizi ya ESP32 kabla ya kuendelea:(Ikiwa tayari umefanya hatua hii, unaweza kuruka hadi hatua inayofuata.)
Inasakinisha programu jalizi ya ESP32 katika Arduino IDE
Fungua msimbo Project_2_ESP32_Inputs_Outputs.ino katika arduino IDENambari hii inasoma tu maadili kutoka kwa potentiometer na kuchapisha maadili hayo kwenye Kifuatiliaji cha Ufuatiliaji.
Katika msimbo, unaanza kwa kufafanua GPIO potentiometer imeunganishwa. Katika hii example, GPIO 4.Katika usanidi(), anzisha mawasiliano ya mfululizo kwa kiwango cha baud cha 115200.
Katika kitanzi(), tumia kitendakazi cha analogRead() kusoma ingizo la analogi kutoka kwa potPin.
Hatimaye, chapisha maadili yaliyosomwa kutoka kwa potentiometer kwenye ufuatiliaji wa serial.
Pakia msimbo uliotolewa kwa ESP32 yako. Hakikisha kuwa umechagua ubao sahihi na mlango wa COM kwenye menyu ya Zana.
Kupima Example
Baada ya kupakia msimbo na kubonyeza kitufe cha kuweka upya ESP32, fungua Ufuatiliaji wa Serial kwa kiwango cha baud cha 115200. Zungusha potentiometer na uone maadili yanayobadilika.Thamani ya juu utakayopata ni 4095 na thamani ya chini ni 0.
Kuhitimisha
Katika nakala hii umejifunza jinsi ya kusoma pembejeo za analogi kwa kutumia ESP32 na Arduino IDE. Kwa muhtasari:
- Ubao wa ESP32 DEVKIT V1 DOIT (toleo lenye pini 30) una pini 15 za ADC unazoweza kutumia kusoma pembejeo za analogi.
- Pini hizi zina azimio la biti 12, ambayo inamaanisha unaweza kupata maadili kutoka 0 hadi 4095.
- Ili kusoma thamani katika IDE ya Arduino, unatumia tu kazi ya analogRead().
- Pini za ESP32 ADC hazina tabia ya mstari. Labda hutaweza kutofautisha kati ya 0 na 0.1V, au kati ya 3.2 na 3.3V. Unahitaji kukumbuka hilo unapotumia pini za ADC.
Mradi wa 3 ESP32 PWM (Pato la Analogi)
Katika somo hili tutakuonyesha jinsi ya kutengeneza mawimbi ya PWM kwa kutumia ESP32 kwa kutumia Arduino IDE. Kama exampna tutaunda sakiti rahisi ambayo hupunguza taa ya LED kwa kutumia kidhibiti cha LED cha PWM cha ESP32.Kidhibiti cha PWM cha LED cha ESP32
ESP32 ina kidhibiti cha LED PWM chenye chaneli 16 zinazojitegemea ambazo zinaweza kusanidiwa kutoa mawimbi ya PWM yenye sifa tofauti.
Hapa kuna hatua utalazimika kufuata ili kupunguza taa ya LED na PWM kwa kutumia Arduino IDE:
- Kwanza, unahitaji kuchagua kituo cha PWM. Kuna chaneli 16 kutoka 0 hadi 15.
- Kisha, unahitaji kuweka mzunguko wa ishara ya PWM. Kwa LED, mzunguko wa 5000 Hz ni sawa kutumia.
- Pia unahitaji kuweka azimio la mzunguko wa wajibu wa ishara: una maazimio kutoka biti 1 hadi 16. Tutatumia mwonekano wa 8-bit, kumaanisha kuwa unaweza kudhibiti mwangaza wa LED kwa kutumia thamani kutoka 0 hadi 255.
- Ifuatayo, unahitaji kutaja ni GPIO au GPIO gani ambayo ishara itaonekana. Kwa hiyo utatumia kazi ifuatayo:
ledcAttachPin(GPIO, chaneli)
Chaguo hili la kukokotoa linakubali hoja mbili. Ya kwanza ni GPIO ambayo itatoa ishara, na ya pili ni kituo ambacho kitatoa ishara. - Hatimaye, ili kudhibiti mwangaza wa LED kwa kutumia PWM, unatumia kazi ifuatayo:
LEDcWrite(channel, dutycycle)
Chaguo hili la kukokotoa linakubali kama hoja chaneli inayozalisha mawimbi ya PWM, na mzunguko wa wajibu.
Sehemu Inahitajika
Ili kufuata mafunzo haya unahitaji sehemu hizi:
- Bodi ya ESP32 DEVKIT V1
- 5 mm LED
- 220 Ohm kupinga
- Ubao wa mkate
- Waya za kuruka
Kimpango
Waya LED kwenye ESP32 yako kama ilivyo kwenye mchoro wa kimkakati ufuatao. LED inapaswa kushikamana na GPIO 4.Kumbuka: unaweza kutumia pini yoyote unayotaka, mradi tu inaweza kufanya kazi kama matokeo. Pini zote ambazo zinaweza kufanya kama matokeo zinaweza kutumika kama pini za PWM. Kwa habari zaidi kuhusu ESP32 GPIOs, soma: Rejea ya Pinout ya ESP32: Ni pini zipi za GPIO unapaswa kutumia?
Kanuni
Tutapanga ESP32 kwa kutumia Arduino IDE, kwa hivyo hakikisha kuwa umesakinisha programu jalizi ya ESP32 kabla ya kuendelea:(Ikiwa tayari umefanya hatua hii, unaweza kuruka hadi hatua inayofuata.)
Inasakinisha programu jalizi ya ESP32 katika Arduino IDE
Fungua msimbo Project_3_ESP32_PWM.ino katika arduino IDEUnaanza kwa kufafanua pini ambayo LED imeunganishwa. Katika kesi hii LED imeunganishwa kwa GPIO 4.
Kisha, unaweka sifa za ishara za PWM. Unafafanua mzunguko wa 5000 Hz, chagua chaneli 0 ili kutoa mawimbi, na kuweka azimio la biti 8. Unaweza kuchagua sifa nyingine, tofauti na hizi, ili kutoa ishara tofauti za PWM.
Katika usanidi(), unahitaji kusanidi LED PWM na mali ulizofafanua hapo awali kwa kutumia kitendakazi cha ledcSetup() ambacho kinakubali kama hoja, ledChannel, frequency, na azimio, kama ifuatavyo:
Ifuatayo, unahitaji kuchagua GPIO utapata ishara kutoka. Kwa hilo tumia kitendakazi cha ledcAttachPin() ambacho kinakubali kama hoja GPIO ambapo unataka kupata mawimbi, na chaneli inayozalisha mawimbi. Katika hii example, tutapata mawimbi katika ledPin GPIO, ambayo inalingana na GPIO 4. Chaneli inayotoa mawimbi ni ledChannel, inayolingana na chaneli 0.
Katika kitanzi, utabadilisha mzunguko wa wajibu kati ya 0 na 255 ili kuongeza mwangaza wa LED.
Na kisha, kati ya 255 na 0 ili kupunguza mwangaza.
Ili kuweka mwangaza wa LED, unahitaji tu kutumia kitendakazi cha ledcWrite() ambacho kinakubali kama hoja kituo kinachozalisha mawimbi, na mzunguko wa wajibu.
Tunapotumia azimio la biti 8, mzunguko wa wajibu utadhibitiwa kwa kutumia thamani kutoka 0 hadi 255. Kumbuka kuwa katika chaguo la kukokotoa ledcWrite() tunatumia chaneli inayozalisha mawimbi, na si GPIO.
Kupima Example
Pakia msimbo kwenye ESP32 yako. Hakikisha umechagua ubao sahihi na bandari ya COM. Angalia mzunguko wako. Unapaswa kuwa na LED hafifu ambayo huongeza na kupunguza mwangaza.
Mradi wa 4 ESP32 PIR Motion Sensorer
Mradi huu unaonyesha jinsi ya kutambua mwendo kwa kutumia ESP32 kwa kutumia kihisishi cha mwendo cha PIR. Buzzer italia kengele mwendo unapotambuliwa, na itasimamisha kengele wakati hakuna mwendo unaotambuliwa kwa muda uliowekwa mapema (kama vile sekunde 4)
Jinsi HC-SR501 Motion Sensorer Hufanya Kazi
.Kanuni ya kazi ya sensor ya HC-SR501 inategemea mabadiliko ya mionzi ya infrared kwenye kitu kinachosonga. Ili kutambuliwa na sensor ya HC-SR501, kitu lazima kikidhi mahitaji mawili:
- Kitu kinatoa njia ya infrared.
- Kitu kinasonga au kinatikisika
Kwa hivyo:
Ikiwa kitu kinatoa miale ya infrared lakini haisogei (kwa mfano, mtu husimama tuli bila kusonga), haigunduliwi na kihisi.
Ikiwa kitu kinasonga lakini HAITOI miale ya infrared (km, roboti au gari), HAITAGUNDULI na kihisi.
Tunakuletea Vipima Muda
Katika hii exampna pia tutawaletea vipima muda. Tunataka LED ibaki imewashwa kwa idadi iliyobainishwa mapema ya sekunde baada ya mwendo kutambuliwa. Badala ya kutumia kitendakazi cha delay() ambacho huzuia msimbo wako na haikuruhusu kufanya kitu kingine chochote kwa idadi iliyobainishwa ya sekunde, tunapaswa kutumia kipima muda.Kitendaji cha kuchelewesha ()
Unapaswa kufahamu kazi ya delay() kwani inatumika sana. Kitendaji hiki ni rahisi kutumia. Inakubali nambari moja ya int kama hoja.
Nambari hii inawakilisha muda katika milisekunde ambayo programu inabidi ingojee hadi iendelee kwenye safu inayofuata ya msimbo.Unapochelewesha (1000) programu yako inasimama kwenye laini hiyo kwa sekunde 1.
delay() ni kazi ya kuzuia. Kuzuia vitendaji huzuia programu kufanya kitu kingine chochote hadi kazi hiyo maalum ikamilike. Ikiwa unahitaji kazi nyingi kutokea kwa wakati mmoja, huwezi kutumia delay().
Kwa miradi mingi unapaswa kuepuka kutumia ucheleweshaji na badala yake utumie vipima muda.
Chaguo za millis()
Kwa kutumia kitendakazi kinachoitwa millis() unaweza kurudisha idadi ya milisekunde ambayo imepita tangu programu ilipoanza.Kwa nini kipengele hicho kinafaa? Kwa sababu kwa kutumia hesabu fulani, unaweza kuthibitisha kwa urahisi ni muda gani umepita bila kuzuia msimbo wako.
Sehemu Inahitajika
Ili kufuata somo hili unahitaji sehemu zifuatazo
- Bodi ya ESP32 DEVKIT V1
- Kihisi cha mwendo cha PIR (HC-SR501)
- Buzzer inayotumika
- Waya za kuruka
- Ubao wa mkate
KimpangoKumbuka: Voltage ya HC-SR501 ni 5V. Tumia pini ya Vin ili kuiwasha.
Kanuni
Kabla ya kuendelea na mafunzo haya unapaswa kusakinisha programu jalizi ya ESP32 kwenye Kitambulisho chako cha Arduino. Fuata mojawapo ya mafunzo yafuatayo ili kusakinisha ESP32 kwenye Arduino IDE, ikiwa bado hujafanya.(Ikiwa tayari umefanya hatua hii, unaweza kuruka hadi hatua inayofuata.)
Inasakinisha programu jalizi ya ESP32 katika Arduino IDE
Fungua msimbo Project_4_ESP32_PIR_Motion_Sensor.ino katika arduino IDE.
Maonyesho
Pakia msimbo kwenye ubao wako wa ESP32. Hakikisha umechagua ubao sahihi na mlango wa COM. Pakia hatua za marejeleo ya msimbo.
Fungua Kifuatiliaji cha Siri kwa kiwango cha baud cha 115200.Sogeza mkono wako mbele ya kihisi cha PIR. Buzzer inapaswa kuwasha, na ujumbe utachapishwa katika Kifuatiliaji cha Ufuatiliaji ukisema "Mwendo umetambuliwa! Kengele ya Buzzer".
Baada ya sekunde 4 buzzer inapaswa kuzima.
Mradi wa 5 ESP32 Swichi Web Seva
Katika mradi huu utaunda ilio web seva iliyo na ESP32 inayodhibiti matokeo (LED mbili) kwa kutumia mazingira ya programu ya Arduino IDE. The web seva inajibu kwa rununu na inaweza kufikiwa na kifaa chochote ambacho kama kivinjari kwenye mtandao wa ndani. Tutakuonyesha jinsi ya kuunda web seva na jinsi msimbo unavyofanya kazi hatua kwa hatua.
Mradi umekamilikaview
Kabla ya kwenda moja kwa moja kwenye mradi, ni muhimu kuelezea kile chetu web seva itafanya, ili iwe rahisi kufuata hatua baadaye.
- The web seva utaunda vidhibiti LED mbili zilizounganishwa kwa ESP32 GPIO 26 na GPIO 27;
- Unaweza kufikia ESP32 web seva kwa kuandika anwani ya IP ya ESP32 kwenye kivinjari kwenye mtandao wa ndani;
- Kwa kubofya vitufe vyako web seva unaweza kubadilisha mara moja hali ya kila LED.
Sehemu Inahitajika
Kwa somo hili utahitaji sehemu zifuatazo:
- Bodi ya ESP32 DEVKIT V1
- LED ya 2x5mm
- 2x 200 Ohm resistor
- Ubao wa mkate
- Waya za kuruka
Kimpango
Anza kwa kujenga mzunguko. Unganisha LED mbili kwenye ESP32 kama inavyoonyeshwa kwenye mchoro ufuatao wa mpangilio - LED moja iliyounganishwa kwa GPIO 26, na nyingine kwa GPIO 27.
Kumbuka: Tunatumia ubao wa ESP32 DEVKIT DOIT wenye pini 36. Kabla ya kuunganisha mzunguko, hakikisha kuwa umeangalia pinout kwa ubao unaotumia.Kanuni
Hapa tunatoa msimbo unaounda ESP32 web seva. Fungua msimbo Project_5_ESP32_Switch _Web_Server.ino katika arduino IDE, lakini usiipake bado. Unahitaji kufanya mabadiliko kadhaa ili kuifanya ikufae.
Tutapanga ESP32 kwa kutumia Arduino IDE, kwa hivyo hakikisha kuwa umesakinisha programu jalizi ya ESP32 kabla ya kuendelea:(Ikiwa tayari umefanya hatua hii, unaweza kuruka hadi hatua inayofuata.)
Inasakinisha programu jalizi ya ESP32 katika Arduino IDE
Kuweka Kitambulisho chako cha Mtandao
Unahitaji kurekebisha mistari ifuatayo na vitambulisho vya mtandao wako: SSID na nenosiri. Nambari imetolewa maoni vizuri juu ya wapi unapaswa kufanya mabadiliko.Inapakia Kanuni
Sasa, unaweza kupakia msimbo na na web seva itafanya kazi mara moja.
Fuata hatua zinazofuata ili kupakia msimbo kwenye ESP32:
- Chomeka ubao wako wa ESP32 kwenye kompyuta yako;
- Katika Arduino IDE chagua ubao wako katika Zana > Bodi (kwa upande wetu tunatumia ubao wa ESP32 DEVKIT DOIT);
- Chagua mlango wa COM katika Zana > Mlango.
- Bonyeza kitufe cha Pakia kwenye Kitambulisho cha Arduino na usubiri sekunde chache wakati msimbo unakusanya na kupakiwa kwenye ubao wako.
- Subiri ujumbe wa "Nimemaliza kupakia".
Kupata Anwani ya IP ya ESP
Baada ya kupakia msimbo, fungua Monitor ya Serial kwa kiwango cha baud cha 115200.Bonyeza kitufe cha ESP32 EN (weka upya). ESP32 inaunganishwa na Wi-Fi, na kutoa anwani ya IP ya ESP kwenye Kifuatiliaji cha Ufuatiliaji. Nakili anwani hiyo ya IP, kwa sababu unaihitaji ili kufikia ESP32 web seva.
Kufikia Web Seva
Ili kufikia web seva, fungua kivinjari chako, bandika anwani ya IP ya ESP32, na utaona ukurasa unaofuata.
Kumbuka: Kivinjari chako na ESP32 zinapaswa kuunganishwa kwenye LAN sawa.Ukiangalia Kifuatiliaji cha Ufuatiliaji, unaweza kuona kinachotokea chinichini. ESP inapokea ombi la HTTP kutoka kwa mteja mpya (katika kesi hii, kivinjari chako).
Unaweza pia kuona maelezo mengine kuhusu ombi la HTTP.
Maonyesho
Sasa unaweza kujaribu ikiwa yako web seva inafanya kazi vizuri. Bofya vitufe ili kudhibiti LEDs.Wakati huo huo, unaweza kuangalia Kifuatiliaji cha Ufuatiliaji ili kuona kinachoendelea chinichini. Kwa mfanoampna, unapobofya kitufe ili kuwasha GPIO 26, ESP32 inapokea ombi kwenye /26/on URL.
ESP32 inapopokea ombi hilo, huwasha LED iliyoambatishwa kwa GPIO 26 ON na kusasisha hali yake kwenye web ukurasa.
Kitufe cha GPIO 27 hufanya kazi kwa njia sawa. Jaribu kuwa inafanya kazi ipasavyo.
Jinsi Kanuni Hufanya Kazi
Katika sehemu hii itaangalia kwa karibu msimbo ili kuona jinsi inavyofanya kazi.
Jambo la kwanza unahitaji kufanya ni kujumuisha maktaba ya WiFi.Kama ilivyoelezwa hapo awali, unahitaji kuingiza ssid yako na nenosiri katika mistari ifuatayo ndani ya nukuu mbili.
Kisha, unaweka yako web seva kwa bandari 80.
Mstari ufuatao huunda kigezo cha kuhifadhi kichwa cha ombi la HTTP:
Ifuatayo, unaunda vigeu kisaidizi ili kuhifadhi hali ya sasa ya matokeo yako. Ikiwa unataka kuongeza matokeo zaidi na kuokoa hali yake, unahitaji kuunda vigezo zaidi.
Unahitaji pia kugawa GPIO kwa kila matokeo yako. Hapa tunatumia GPIO 26 na GPIO 27. Unaweza kutumia GPIO zingine zozote zinazofaa.
kuweka ()
Sasa, wacha tuende kwenye usanidi (). Kwanza, tunaanza mawasiliano ya serial kwa kiwango cha baud cha 115200 kwa madhumuni ya utatuzi.Pia unafafanua GPIO zako kama OUTPUT na kuziweka kwa CHINI.
Mistari ifuatayo huanza muunganisho wa Wi-Fi na WiFi.begin(ssid, password), subiri muunganisho uliofaulu na uchapishe anwani ya IP ya ESP kwenye Mfuatiliaji wa Serial.
kitanzi ()
Katika kitanzi () tunapanga kile kinachotokea wakati mteja mpya anaanzisha muunganisho na web seva.
ESP32 huwa inasikiliza wateja wanaoingia kwa kutumia laini ifuatayo:Ombi linapopokelewa kutoka kwa mteja, tutahifadhi data inayoingia. Kitanzi cha wakati kinachofuata kitaendelea kutumika mradi tu mteja aendelee kushikamana. Hatupendekezi kubadilisha sehemu ifuatayo ya msimbo isipokuwa kama unajua unachofanya.
Sehemu inayofuata ya taarifa za if na vinginevyo huangalia ni kitufe gani kilibonyezwa katika yako web page, na kudhibiti matokeo ipasavyo. Kama tulivyoona hapo awali, tunatoa ombi tofauti URLs kulingana na kitufe kilichobonyezwa.
Kwa mfanoampna, ikiwa umebonyeza kitufe cha GPIO 26 ON, ESP32 inapokea ombi kwenye /26/ON. URL (tunaweza kuona kwamba habari hiyo kwenye kichwa cha HTTP kwenye Monitor ya Serial). Kwa hivyo, tunaweza kuangalia ikiwa kichwa kina usemi GET /26/on. Ikiwa ina, tunabadilisha variable26state kuwa ON, na ESP32 huwasha LED.
Hii inafanya kazi vivyo hivyo kwa vifungo vingine. Kwa hivyo, ikiwa unataka kuongeza matokeo zaidi, unapaswa kurekebisha sehemu hii ya msimbo ili kujumuisha.
Inaonyesha HTML web ukurasa
Jambo la pili unahitaji kufanya, ni kuunda web ukurasa. ESP32 itatuma jibu kwa kivinjari chako na msimbo fulani wa HTML ili kuunda web ukurasa.
The web ukurasa hutumwa kwa mteja kwa kutumia kielelezo hiki cha client.println(). Unapaswa kuingiza unachotaka kutuma kwa mteja kama hoja.
Jambo la kwanza tunapaswa kutuma kila wakati ni laini ifuatayo, ambayo inaonyesha kuwa tunatuma HTML.Kisha, mstari ufuatao hufanya web ukurasa msikivu katika yoyote web kivinjari.
Na ifuatayo inatumika kuzuia maombi kwenye favicon. - Huna haja ya kuwa na wasiwasi kuhusu mstari huu.
Mtindo wa Web Ukurasa
Ifuatayo, tunayo maandishi ya CSS ya kuunda vitufe na web muonekano wa ukurasa.
Tunachagua fonti ya Helvetica, kufafanua maudhui yatakayoonyeshwa kama kizuizi na kupangiliwa katikati.Tunatengeneza vitufe vyetu kwa rangi ya #4CAF50, bila mpaka, maandishi katika rangi nyeupe, na kwa pedi hii: 16px 40px. Pia tunaweka mapambo ya maandishi kwa hakuna, fafanua saizi ya fonti, ukingo, na mshale kwa pointer.
Pia tunafafanua mtindo kwa kifungo cha pili, na sifa zote za kifungo ambacho tumefafanua hapo awali, lakini kwa rangi tofauti. Huu utakuwa mtindo wa kitufe cha kuzima.
Kuweka Web Ukurasa wa Kwanza wa Kichwa
Katika mstari unaofuata unaweza kuweka kichwa chako cha kwanza web ukurasa. Hapa tunayo "ESP32 Web Seva", lakini unaweza kubadilisha maandishi haya kuwa chochote unachopenda.Inaonyesha Vifungo na Hali Sambamba
Kisha, unaandika aya ili kuonyesha hali ya sasa ya GPIO 26. Kama unavyoona tunatumia utofauti wa output26State, ili hali isasishwe mara moja utofauti huu unapobadilika.Kisha, tunaonyesha kitufe cha kuwasha au kuzima, kulingana na hali ya sasa ya GPIO. Ikiwa hali ya sasa ya GPIO imezimwa, tunaonyesha kifungo cha ON, ikiwa sio, tunaonyesha kifungo cha OFF.
Tunatumia utaratibu sawa kwa GPIO 27.
Kufunga Muunganisho
Hatimaye, jibu linapoisha, tunafuta utofauti wa kichwa, na kusimamisha muunganisho na mteja kwa client.stop().
Kuhitimisha
Katika somo hili tumekuonyesha jinsi ya kuunda a web seva na ESP32. Tumekuonyesha ex rahisiample inayodhibiti taa mbili za LED, lakini wazo ni kubadilisha taa hizo na upeanaji tena, au matokeo mengine yoyote unayotaka kudhibiti.
Mradi wa 6 RGB LED Web Seva
Katika mradi huu tutakuonyesha jinsi ya kudhibiti kwa mbali RGB LED na ubao wa ESP32 kwa kutumia a web seva iliyo na kichagua rangi.
Mradi umekamilikaview
Kabla ya kuanza, hebu tuone jinsi mradi huu unavyofanya kazi:
- Sehemu ya ESP32 web seva inaonyesha kichagua rangi.
- Unapochagua rangi, kivinjari chako kinatuma ombi kwenye a URL ambayo ina vigezo vya R, G, na B vya rangi iliyochaguliwa.
- ESP32 yako inapokea ombi na kugawanya thamani kwa kila kigezo cha rangi.
- Kisha, hutuma ishara ya PWM yenye thamani inayolingana kwa GPIO zinazodhibiti RGB LED.
Je, RGB LEDs hufanya kazije?
Katika LED ya cathode ya RGB ya kawaida, LED zote tatu hushiriki muunganisho hasi (cathode). Zote zilizojumuishwa kwenye kit ni RGB ya cathode ya kawaida.Jinsi ya kuunda rangi tofauti?
Kwa LED ya RGB unaweza, bila shaka, kuzalisha mwanga nyekundu, kijani na bluu, na kwa kusanidi ukubwa wa kila LED, unaweza kutoa rangi nyingine pia.
Kwa mfanoample, ili kutoa mwanga wa buluu tu, ungeweka LED ya samawati kwa kiwango cha juu zaidi na taa za kijani kibichi na nyekundu kwa kiwango cha chini zaidi. Kwa mwanga mweupe, ungeweka LED zote tatu kwa kiwango cha juu zaidi.
Kuchanganya rangi
Ili kuzalisha rangi nyingine, unaweza kuchanganya rangi tatu kwa nguvu tofauti. Ili kurekebisha ukubwa wa kila LED unaweza kutumia ishara ya PWM.
Kwa sababu LEDs ziko karibu sana kwa kila mmoja, macho yetu huona matokeo ya mchanganyiko wa rangi, badala ya rangi tatu moja kwa moja.
Ili kuwa na wazo la jinsi ya kuchanganya rangi, angalia chati ifuatayo.
Hii ndiyo chati rahisi zaidi ya kuchanganya rangi, lakini inakupa wazo jinsi inavyofanya kazi na jinsi ya kuzalisha rangi tofauti.Sehemu Inahitajika
Kwa mradi huu unahitaji sehemu zifuatazo:
- Bodi ya ESP32 DEVKIT V1
- LED ya RGB
- 3x 220 ohm resistors
- Waya za kuruka
- Ubao wa mkate
KimpangoKanuni
Tutapanga ESP32 kwa kutumia Arduino IDE, kwa hivyo hakikisha kuwa umesakinisha programu jalizi ya ESP32 kabla ya kuendelea:(Ikiwa tayari umefanya hatua hii, unaweza kuruka hadi hatua inayofuata.)
- Inasakinisha programu jalizi ya ESP32 katika Arduino IDE
Baada ya kukusanya mzunguko, Fungua msimbo
Project_6_RGB_LED_Web_Server.ino katika arduino IDE.
Kabla ya kupakia msimbo, usisahau kuingiza kitambulisho cha mtandao wako ili ESP iweze kuunganisha kwenye mtandao wako wa karibu.Jinsi kanuni inavyofanya kazi
Mchoro wa ESP32 hutumia maktaba ya WiFi.h.Mistari ifuatayo inafafanua vigezo vya kamba kushikilia vigezo vya R, G, na B kutoka kwa ombi.
Vigezo vinne vinavyofuata vinatumika kusimbua ombi la HTTP baadaye.
Unda vigezo vitatu vya GPIO ambavyo vitadhibiti ukanda wa R, G, na B vigezo. Katika kesi hii tunatumia GPIO 13, GPIO 12, na GPIO 14.
GPIO hizi zinahitaji kutoa mawimbi ya PWM, kwa hivyo tunahitaji kusanidi sifa za PWM kwanza. Weka mzunguko wa ishara ya PWM hadi 5000 Hz. Kisha, unganisha chaneli ya PWM kwa kila rangi
Na hatimaye, weka azimio la njia za PWM kwa 8-bit
Katika usanidi(), toa sifa za PWM kwa chaneli za PWM
Ambatisha chaneli za PWM kwa GPIO zinazolingana
Sehemu ya msimbo ifuatayo inaonyesha kichagua rangi katika yako web ukurasa na kufanya ombi kulingana na rangi uliyochagua.
Unapochagua rangi, unapokea ombi na umbizo lifuatalo.
Kwa hivyo, tunahitaji kugawanya kamba hii ili kupata vigezo vya R, G, na B. Vigezo huhifadhiwa katika vijiti redString, greenString, na blueString na vinaweza kuwa na thamani kati ya 0 na 255.Ili kudhibiti ukanda kwa ESP32, tumia chaguo la kukokotoa ledcWrite() ili kutoa mawimbi ya PWM kwa thamani zilizotolewa msimbo kutoka kwa HTTP. ombi.
Kumbuka: pata maelezo zaidi kuhusu PWM ukitumia ESP32: Project 3 ESP32 PWM(Analog Output)
Ili kudhibiti ukanda na ESP8266, tunahitaji tu kutumia
chaguo za kukokotoa za analogWrite() ili kutoa mawimbi ya PWM kwa thamani zilizotolewa msimbo kutoka kwa ombi la HTPP.
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogiAndika(bluePin, blueString.toInt())
Kwa sababu tunapata maadili katika utofauti wa kamba, tunahitaji kuzibadilisha kuwa nambari kamili kwa kutumia toInt() mbinu.
Maonyesho
Baada ya kuingiza kitambulisho chako cha mtandao, chagua ubao sahihi na mlango wa COM na upakie msimbo kwenye hatua zako za marejeleo za msimbo wa ESP32. Pakia.
Baada ya kupakia, fungua Ufuatiliaji wa Serial kwa kiwango cha baud cha 115200 na ubofye kitufe cha ESP Wezesha/Rudisha. Unapaswa kupata anwani ya IP ya bodi.Fungua kivinjari chako na uweke anwani ya IP ya ESP. Sasa, tumia kiteua rangi kuchagua rangi ya RGB LED.
Kisha, unahitaji kushinikiza kitufe cha "Badilisha Rangi" ili rangi ianze kutumika.Ili kuzima RGB LED , chagua rangi nyeusi.
Rangi kali zaidi (juu ya kichagua rangi), ndizo zitatoa matokeo bora.
Mradi wa 7 ESP32 Relay Web Seva
Kutumia relay na ESP32 ni njia nzuri ya kudhibiti vifaa vya nyumbani vya AC ukiwa mbali. Mafunzo haya yanaelezea jinsi ya kudhibiti moduli ya relay kwa kutumia ESP32.
Tutaangalia jinsi moduli ya relay inavyofanya kazi, jinsi ya kuunganisha relay kwa ESP32 na kujenga web seva ya kudhibiti relay kwa mbali.
Tunakuletea Relay
Relay ni swichi inayoendeshwa kwa umeme na kama swichi nyingine yoyote, ambayo inaweza kuwashwa au kuzimwa, kuruhusu mkondo kupita au la. Inaweza kudhibitiwa kwa sauti ya chinitages, kama 3.3V iliyotolewa na ESP32 GPIOs na inaturuhusu kudhibiti sauti ya juu.tagni kama 12V, 24V au mains voltage (230V huko Uropa na 120V huko Amerika).Kwa upande wa kushoto, kuna seti mbili za soketi tatu za kuunganisha sauti ya juutages, na pini upande wa kulia (low-voltage) kuunganisha kwa ESP32 GPIOs.
Mains Voltage UunganishoModuli ya relay iliyoonyeshwa kwenye picha ya awali ina viunganisho viwili, kila moja na soketi tatu: kawaida (COM), Kawaida Imefungwa (NC), na Kawaida Open (NO).
- COM: unganisha mkondo unaotaka kudhibiti (mains voltage).
- NC (Inafungwa Kawaida): usanidi wa kawaida unaofungwa hutumiwa wakati unataka relay kufungwa kwa chaguo-msingi. NC ni pini za COM zimeunganishwa, kumaanisha mkondo unatiririka isipokuwa utume mawimbi kutoka kwa ESP32 hadi kwa moduli ya relay ili kufungua mzunguko na kusimamisha mtiririko wa sasa.
- HAPANA (Kawaida Fungua): usanidi wa kawaida wazi hufanya kazi kwa njia nyingine kote: hakuna uhusiano kati ya pini za NO na COM, kwa hivyo mzunguko umevunjwa isipokuwa utume ishara kutoka kwa ESP32 ili kufunga mzunguko.
Pini za KudhibitiKiwango cha chinitage side ina seti ya pini nne na seti ya pini tatu. Seti ya kwanza ina VCC na GND ili kuwasha moduli, na ingizo 1 (IN1) na ingizo 2 (IN2) ili kudhibiti relay za chini na za juu, mtawalia.
Iwapo sehemu yako ya relay ina chaneli moja tu, utakuwa na pini moja tu ya IN. Ikiwa una vituo vinne, utakuwa na pini nne za IN, na kadhalika.
Mawimbi unayotuma kwa pini za IN, huamua ikiwa relay inatumika au la. Relay inasababishwa wakati ingizo linakwenda chini ya 2V. Hii inamaanisha kuwa utakuwa na hali zifuatazo:
- Usanidi wa Kawaida Hufungwa (NC):
- Ishara ya HIGH - sasa inapita
- Ishara ya CHINI - sasa haitiririki
- Kawaida Fungua usanidi (NO):
- Ishara ya JUU - sasa haitiririki
- Ishara ya CHINI - sasa inapita
Unapaswa kutumia usanidi wa kawaida uliofungwa wakati mkondo unapaswa kutiririka mara nyingi, na ungependa kuusimamisha mara kwa mara.
Tumia usanidi uliofunguliwa kwa kawaida unapotaka mkondo utiririke mara kwa mara (kwa mfanoample, washa alamp mara kwa mara).
Uteuzi wa Ugavi wa NguvuSeti ya pili ya pini ina GND, VCC, na JD-VCC pini.
Pini ya JD-VCC inawezesha sumaku-umeme ya relay. Ona kwamba moduli ina kofia ya kuruka inayounganisha pini za VCC na JD-VCC; iliyoonyeshwa hapa ni ya manjano, lakini yako inaweza kuwa na rangi tofauti.
Kwa kofia ya jumper, pini za VCC na JD-VCC zimeunganishwa. Hiyo inamaanisha kuwa sumaku-umeme ya relay inaendeshwa moja kwa moja kutoka kwa pini ya nguvu ya ESP32, kwa hivyo moduli ya relay na saketi za ESP32 hazijatengwa kimwili kutoka kwa kila mmoja.
Bila kofia ya kuruka, unahitaji kutoa chanzo huru cha nguvu ili kuwasha sumaku-umeme ya relay kupitia pini ya JD-VCC. Usanidi huo hutenganisha relays kutoka kwa ESP32 kwa kutumia optocoupler iliyojengewa ndani ya moduli, ambayo huzuia uharibifu wa ESP32 ikiwa kuna miiba ya umeme.
KimpangoOnyo: Matumizi ya sauti ya juutagvifaa vya umeme vinaweza kusababisha majeraha makubwa.
Kwa hiyo, LED za 5mm hutumiwa badala ya usambazaji wa juu wa voltage balbu katika majaribio. Kama huna mazoea na mains voltagna kuuliza mtu ambaye ni kukusaidia nje. Wakati wa kupanga ESP au kuunganisha mzunguko wako hakikisha kuwa kila kitu kimetenganishwa na mtandao mkuutage.Inasakinisha Maktaba ya ESP32
Ili kujenga hii web seva, tunatumia ESPAsyncWebMaktaba ya seva na Maktaba ya AsyncTCP.
Inasakinisha ESPAsyncWebMaktaba ya seva
Fuata hatua zinazofuata ili kusakinisha ESPAsyncWebSeva maktaba:
- Bofya hapa ili kupakua ESPAsyncWebMaktaba ya seva. Unapaswa kuwa nayo
folda ya .zip katika folda yako ya Vipakuliwa - Fungua folda ya .zip na unapaswa kupata ESPAsyncWebFolda kuu ya seva
- Badilisha jina la folda yako kutoka ESPAsyncWebSeva-bwana hadi ESPAsyncWebSeva
- Hamisha ESPAsyncWebFolda ya seva kwenye folda yako ya maktaba ya usakinishaji ya Arduino IDE
Vinginevyo, katika Arduino IDE yako, unaweza kwenda kwa Mchoro > Jumuisha
Maktaba > Ongeza maktaba ya .ZIP... na uchague maktaba ambayo umepakua hivi punde.
Inasakinisha Maktaba ya AsyncTCP ya ESP32
The ESPAsyncWebSeva maktaba inahitaji AsyncTCP maktaba ya kufanya kazi. Fuata
hatua zifuatazo za kusakinisha maktaba hiyo:
- Bofya hapa ili kupakua maktaba ya AsyncTCP. Unapaswa kuwa na folda ya .zip kwenye folda yako ya Vipakuliwa
- Fungua folda ya .zip na unapaswa kupata folda kuu ya AsyncTCP
1. Badilisha jina la folda yako kutoka AsyncTCP-master hadi AsyncTCP
3. Hamisha folda ya AsyncTCP hadi kwenye folda yako ya maktaba ya usakinishaji ya IDE ya Arduino
4. Hatimaye, fungua upya IDE yako ya Arduino
Vinginevyo, katika Arduino IDE yako, unaweza kwenda kwa Mchoro > Jumuisha
Maktaba > Ongeza maktaba ya .ZIP... na uchague maktaba ambayo umepakua hivi punde.
Kanuni
Tutapanga ESP32 kwa kutumia Arduino IDE, kwa hivyo hakikisha kuwa umesakinisha programu jalizi ya ESP32 kabla ya kuendelea:(Ikiwa tayari umefanya hatua hii, unaweza kuruka hadi hatua inayofuata.)
Inasakinisha programu jalizi ya ESP32 katika Arduino IDE
Baada ya kusakinisha maktaba zinazohitajika, Fungua msimbo Project_7_ESP32_Relay_Web_Server.ino katika arduino IDE.
Kabla ya kupakia msimbo, usisahau kuingiza kitambulisho cha mtandao wako ili ESP iweze kuunganisha kwenye mtandao wako wa karibu.Maonyesho
Baada ya kufanya mabadiliko yanayohitajika, pakia msimbo kwenye hatua zako za marejeleo za msimbo wa ESP32. Pakia.
Fungua Serial Monitor kwa kiwango cha baud cha 115200 na ubonyeze kitufe cha ESP32 EN ili kupata anwani yake ya IP. Kisha, fungua kivinjari katika mtandao wako wa ndani na uandike anwani ya IP ya ESP32 ili kupata ufikiaji wa web seva.
Fungua Serial Monitor kwa kiwango cha baud cha 115200 na ubonyeze kitufe cha ESP32 EN ili kupata anwani yake ya IP. Kisha, fungua kivinjari katika mtandao wako wa ndani na uandike anwani ya IP ya ESP32 ili kupata ufikiaji wa web seva.Kumbuka: Kivinjari chako na ESP32 zinapaswa kuunganishwa kwenye LAN sawa.
Unapaswa kupata kitu kama ifuatavyo na vitufe viwili kama idadi ya relay ambazo umefafanua katika nambari yako.Sasa, unaweza kutumia vitufe ili kudhibiti relays yako kwa kutumia smartphone yako.
Project_8_Output_State_Synchronization_ Web_Seva
Mradi huu unaonyesha jinsi ya kudhibiti matokeo ya ESP32 au ESP8266 kwa kutumia a web seva na kitufe cha kimwili wakati huo huo. Hali ya pato inasasishwa kwenye web ukurasa ikiwa imebadilishwa kupitia kitufe halisi au web seva.
Mradi umekamilikaview
Hebu tuangalie kwa haraka jinsi mradi unavyofanya kazi.ESP32 au ESP8266 hupangisha a web seva ambayo hukuruhusu kudhibiti hali ya pato;
- Hali ya sasa ya pato inaonyeshwa kwenye web seva;
- ESP pia imeunganishwa kwa kitufe cha kusukuma kinachodhibiti matokeo sawa;
- Ukibadilisha hali ya pato kwa kutumia puhsbutton ya kimwili, hali yake ya sasa pia inasasishwa kwenye web seva.
Kwa muhtasari, mradi huu hukuruhusu kudhibiti pato sawa kwa kutumia a web seva na kitufe cha kushinikiza wakati huo huo. Wakati wowote hali ya pato inabadilika, faili ya web seva imesasishwa.
Sehemu Inahitajika
Hapa kuna orodha ya sehemu ambazo unahitaji kuunda mzunguko:
- Bodi ya ESP32 DEVKIT V1
- 5 mm LED
- Kipinga cha 220Ohm
- Kitufe cha kushinikiza
- Kipinga cha 10k Ohm
- Ubao wa mkate
- Waya za kuruka
KimpangoInasakinisha Maktaba ya ESP32
Ili kujenga hii web seva, tunatumia ESPAsyncWebMaktaba ya seva na Maktaba ya AsyncTCP.(Ikiwa tayari umefanya hatua hii, unaweza kuruka hadi hatua inayofuata.)
Inasakinisha ESPAsyncWebMaktaba ya seva
Fuata hatua zinazofuata ili kusakinisha ESPAsyncWebMaktaba ya seva:
- Bofya hapa ili kupakua ESPAsyncWebMaktaba ya seva. Unapaswa kuwa nayo
folda ya .zip katika folda yako ya Vipakuliwa - Fungua folda ya .zip na unapaswa kupata ESPAsyncWebFolda kuu ya seva
- Badilisha jina la folda yako kutoka ESPAsyncWebSeva-bwana hadi ESPAsyncWebSeva
- Hamisha ESPAsyncWebFolda ya seva kwenye folda yako ya maktaba ya usakinishaji ya Arduino IDE
Vinginevyo, katika Arduino IDE yako, unaweza kwenda kwa Mchoro > Jumuisha
Maktaba > Ongeza maktaba ya .ZIP... na uchague maktaba ambayo umepakua hivi punde.
Inasakinisha Maktaba ya AsyncTCP ya ESP32
Usawazishaji wa ESPAWebMaktaba ya seva inahitaji maktaba ya AsyncTCP kufanya kazi. Fuata hatua zifuatazo ili kusakinisha maktaba hiyo:
- Bofya hapa ili kupakua maktaba ya AsyncTCP. Unapaswa kuwa na folda ya .zip kwenye folda yako ya Vipakuliwa
- Fungua folda ya .zip na unapaswa kupata folda kuu ya AsyncTCP
- Badilisha jina la folda yako kutoka AsyncTCP-master hadi AsyncTCP
- Hamisha folda ya AsyncTCP hadi kwenye folda yako ya maktaba ya usakinishaji ya Arduino IDE
- Hatimaye, fungua upya IDE yako ya Arduino
Vinginevyo, katika Arduino IDE yako, unaweza kwenda kwa Mchoro > Jumuisha
Maktaba > Ongeza maktaba ya .ZIP... na uchague maktaba ambayo umepakua hivi punde.
Kanuni
Tutapanga ESP32 kwa kutumia Arduino IDE, kwa hivyo hakikisha kuwa umesakinisha programu jalizi ya ESP32 kabla ya kuendelea:(Ikiwa tayari umefanya hatua hii, unaweza kuruka hadi hatua inayofuata.)
Inasakinisha programu jalizi ya ESP32 katika Arduino IDE
Baada ya kusakinisha maktaba zinazohitajika, Fungua msimbo
Project_8_Output_State_Synchronization_Web_Server.ino katika arduino IDE.
Kabla ya kupakia msimbo, usisahau kuingiza kitambulisho cha mtandao wako ili ESP iweze kuunganisha kwenye mtandao wako wa karibu.
Jinsi Kanuni Hufanya Kazi
Hali ya Kitufe na Hali ya Pato
Tofauti ya ledState inashikilia hali ya matokeo ya LED. Kwa chaguo-msingi, wakati wa web seva inaanza, iko CHINI.
Hali ya kitufe na lastButtonState hutumika kutambua kama kitufe cha kubofya kilibonyezwa au la.Kitufe (web seva)
Hatukujumuisha HTML ili kuunda kitufe kwenye kigezo cha index_html.
Hiyo ni kwa sababu tunataka kuwa na uwezo wa kuibadilisha kulingana na hali ya sasa ya LED ambayo inaweza pia kubadilishwa na kitufe cha kushinikiza.
Kwa hivyo, tumeunda kishikilia nafasi kwa kitufe %BUTTONPLACEHOLDER% ambacho kitabadilishwa na maandishi ya HTML ili kuunda kitufe baadaye kwenye msimbo (hii inafanywa katika kitendakazi()).kichakataji ()
Kichakataji() chaguo za kukokotoa huchukua nafasi ya vishika nafasi vyovyote kwenye maandishi ya HTML na thamani halisi. Kwanza, inakagua ikiwa maandishi ya HTML yana yoyote
vishika nafasi %BUTTONPLACEHOLDER%.Kisha, piga theoutputState() kitendakazi ambacho kinarudisha hali ya sasa ya matokeo. Tunaihifadhi katika utofauti wa outputStateValue.
Baada ya hapo, tumia thamani hiyo kuunda maandishi ya HTML ili kuonyesha kitufe na hali sahihi:
Ombi la HTTP GET la Kubadilisha Hali ya Pato (JavaScript)
Unapobonyeza kitufe, kitendaji cha thetoggleCheckbox() kinaitwa. Chaguo hili la kukokotoa litafanya ombi kwa tofauti URLs kuwasha au kuzima LED.Ili kuwasha LED, inatuma ombi kwenye /update?state=1 URL:
Vinginevyo, inatoa ombi kwenye /update?state=0 URL.
Ombi la HTTP GET la Kusasisha Jimbo (JavaScript)
Ili kusasisha hali ya pato kwenye faili ya web seva, tunaita kazi ifuatayo ambayo hufanya ombi jipya kwenye /state URL kila sekunde.Shughulikia Maombi
Kisha, tunahitaji kushughulikia kile kinachotokea wakati ESP32 au ESP8266 inapokea maombi kwa hizo URLs.
Wakati ombi linapokelewa kwenye mzizi /URL, tunatuma ukurasa wa HTML pamoja na kichakataji.Laini zifuatazo huangalia kama ulipokea ombi kwenye /update?state=1 au /update?state=0 URL na kubadilisha led State ipasavyo.
Wakati ombi limepokelewa kwenye /state URL, tunatuma hali ya sasa ya pato:
kitanzi ()
Kwenye kitanzi(), tunapunguza kitufe cha kusukuma na kuwasha au kuzima LED kulingana na thamani ya ledState. kutofautiana.Maonyesho
Pakia msimbo kwenye ubao wako wa ESP32. Pakia hatua za marejeleo ya msimbo.
Kisha, fungua Kifuatiliaji cha Ufuatiliaji kwa kiwango cha baud cha 115200. Bonyeza kitufe cha EN/RST kwenye ubao ili kupata ni anwani ya IP.Fungua kivinjari kwenye mtandao wako wa karibu, na uandike anwani ya IP ya ESP. Unapaswa kupata ufikiaji wa web seva kama inavyoonyeshwa hapa chini.
Kumbuka: Kivinjari chako na ESP32 zinapaswa kuunganishwa kwenye LAN sawa.Unaweza kugeuza kitufe kwenye web seva ili kuwasha LED.
Unaweza pia kudhibiti LED sawa na kitufe cha kusukuma. Hali yake itasasishwa kiotomatiki kila wakati kwenye web seva.
Mradi wa 9 ESP32 DHT11 Web Seva
Katika mradi huu, utajifunza jinsi ya kuunda ESP32 isiyolingana web seva iliyo na DHT11 inayoonyesha halijoto na unyevunyevu kwa kutumia Arduino IDE.
Masharti
The web seva tutaunda masasisho ya usomaji kiotomatiki bila hitaji la kuonyesha upya web ukurasa.
Kwa mradi huu utajifunza:
- Jinsi ya kusoma hali ya joto na unyevu kutoka kwa sensorer za DHT;
- Jenga asynchronous web seva kwa kutumia ESPAsyncWebMaktaba ya seva;
- Sasisha usomaji wa vitambuzi kiotomatiki bila hitaji la kuonyesha upya web ukurasa.
Asynchronous Web Seva
Ili kujenga web seva tutatumia ESPAsyncWebMaktaba ya seva ambayo hutoa njia rahisi ya kujenga asynchronous web seva. Kujenga Asynchronous web seva ina advan kadhaatages kama ilivyotajwa kwenye ukurasa wa GitHub wa maktaba, kama vile:
- "Hushughulikia zaidi ya muunganisho mmoja kwa wakati mmoja";
- "Unapotuma jibu, uko tayari mara moja kushughulikia miunganisho mingine wakati seva inashughulikia kutuma jibu chinichini";
- "Injini rahisi ya usindikaji wa violezo vya kushughulikia violezo";
Sehemu Inahitajika
Ili kukamilisha somo hili unahitaji sehemu zifuatazo:
- Bodi ya maendeleo ya ESP32
- Sehemu ya DHT11
- Ubao wa mkate
- Waya za kuruka
KimpangoInasakinisha Maktaba
Unahitaji kusakinisha maktaba kadhaa kwa mradi huu:
- The DHT na Sensorer Iliyounganishwa ya Adafruit Maktaba za kiendeshi za kusoma kutoka kwa kihisi cha DHT.
- ESPAsyncWebSeva na Async TCP maktaba za kujenga asynchronous web seva.
Fuata maagizo yafuatayo ili kusakinisha maktaba hizo:
Inasakinisha Maktaba ya Sensor ya DHT
Ili kusoma kutoka kwa sensor ya DHT kwa kutumia Arduino IDE, unahitaji kusakinisha Maktaba ya kihisi cha DHT. Fuata hatua zinazofuata ili kusakinisha maktaba.
- Bofya hapa ili kupakua maktaba ya Sensor ya DHT. Unapaswa kuwa na folda ya .zip kwenye folda yako ya Vipakuliwa
- Fungua folda ya .zip na unapaswa kupata folda kuu ya DHT-sensor-library-master
- Badilisha jina la folda yako kutoka DHT-sensor-library-master hadi DHT_sensor
- Hamisha folda ya DHT_sensor hadi kwenye folda yako ya maktaba ya usakinishaji ya Arduino IDE
- Hatimaye, fungua upya IDE yako ya Arduino
Inasakinisha Kiendeshi cha Sensor ya Adafruit Unified
Pia unahitaji kufunga Maktaba ya Kiendeshi cha Kihisi cha Adafruit kufanya kazi na kihisi cha DHT. Fuata hatua zinazofuata ili kusakinisha maktaba.
- Bofya hapa ili kupakua maktaba ya Sensor ya Adafruit Unified. Unapaswa kuwa na folda ya .zip kwenye folda yako ya Vipakuliwa
- Fungua folda ya .zip na unapaswa kupata folda ya Adafruit_sensor-master
- Badilisha jina la folda yako kutoka Adafruit_sensor-master hadi Adafruit_sensor
- Hamisha folda ya Adafruit_sensor hadi kwenye folda yako ya maktaba ya usakinishaji ya Arduino IDE
- Hatimaye, fungua upya IDE yako ya Arduino
Inasakinisha ESPAsyncWebMaktaba ya seva
Fuata hatua zinazofuata ili kusakinisha ESPAsyncWebSeva maktaba:
- Bofya hapa ili kupakua ESPAsyncWebMaktaba ya seva. Unapaswa kuwa nayo
folda ya .zip katika folda yako ya Vipakuliwa - Fungua folda ya .zip na unapaswa
pata ESPAsyncWebFolda kuu ya seva - Badilisha jina la folda yako kutoka ESPAsyncWebSeva-bwana hadi ESPAsyncWebSeva
- Hamisha ESPAsyncWebFolda ya seva kwenye folda yako ya maktaba ya usakinishaji ya Arduino IDE
Inasakinisha Maktaba ya Async TCP ya ESP32
The ESPAsyncWebSeva maktaba inahitaji AsyncTCP maktaba ya kufanya kazi. Fuata hatua zifuatazo ili kusakinisha maktaba hiyo:
- Bofya hapa ili kupakua maktaba ya AsyncTCP. Unapaswa kuwa na folda ya .zip kwenye folda yako ya Vipakuliwa
- Fungua folda ya .zip na unapaswa kupata folda kuu ya AsyncTCP
- Badilisha jina la folda yako kutoka AsyncTCP-master hadi AsyncTCP
- Hamisha folda ya AsyncTCP hadi kwenye folda yako ya maktaba ya usakinishaji ya Arduino IDE
- Hatimaye, fungua upya IDE yako ya Arduino
Kanuni
Tutapanga ESP32 kwa kutumia Arduino IDE, kwa hivyo hakikisha kuwa umesakinisha programu jalizi ya ESP32 kabla ya kuendelea:(Ikiwa tayari umefanya hatua hii, unaweza kuruka hadi hatua inayofuata.)
Inasakinisha programu jalizi ya ESP32 katika Arduino IDE
Baada ya kusakinisha maktaba zinazohitajika, Fungua msimbo
Project_9_ESP32_DHT11_Web_Server.ino katika arduino IDE.
Kabla ya kupakia msimbo, usisahau kuingiza kitambulisho cha mtandao wako ili ESP iweze kuunganisha kwenye mtandao wako wa karibu.Jinsi Kanuni Hufanya Kazi
Katika aya zifuatazo tutaelezea jinsi kanuni inavyofanya kazi. Endelea kusoma ikiwa ungependa kujifunza zaidi au ruka hadi sehemu ya Maonyesho ili kuona matokeo ya mwisho.
Kuagiza maktaba
Kwanza, ingiza maktaba zinazohitajika. WiFi, ESPAsyncWebSeva na ESPAsyncTCP zinahitajika ili kuunda faili ya web seva. Adafruit_Sensor na maktaba za DHT zinahitajika ili kusoma kutoka kwa vitambuzi vya DHT11 au DHT22.Ufafanuzi wa vigezo
Bainisha GPIO ambayo pini ya data ya DHT imeunganishwa. Katika kesi hii, imeunganishwa na GPIO 4.Kisha, chagua aina ya kihisi cha DHT unayotumia. Katika ex wetuampna, tunatumia DHT22. Ikiwa unatumia aina nyingine, unahitaji tu kufuta kihisi chako na kutoa maoni kwa wengine wote.
Sakinisha kitu cha DHT kwa aina na pini ambayo tumefafanua hapo awali.Unda AsyncWebKitu cha seva kwenye bandari 80.
Soma Kazi za Joto na Unyevu
Tumeunda vipengele viwili vya kukokotoa: moja kusoma halijoto Tumeunda vipengele viwili vya kukokotoa: moja kusoma halijoto (readDHTEmperature()) na nyingine kusoma unyevunyevu (readDHTHumidity()).Kupata usomaji wa vitambuzi ni rahisi kama vile kutumia Kupata usomaji wa vitambuzi ni rahisi kama vile kutumia mbinu za readJoto() na readHumidity()kwenye kipengee cha dht.
Pia tuna hali ya kurejesha deshi mbili (–) iwapo kitambuzi kitashindwa kupata usomaji.
Usomaji hurejeshwa kama aina ya kamba. Ili kubadilisha kuelea kuwa kamba, tumia kazi ya Kamba ().
Kwa chaguomsingi, tunasoma halijoto katika nyuzi joto Selsiasi. Ili kupata halijoto katika digrii Fahrenheit, toa maoni kuhusu halijoto katika Selsiasi na uondoe halijoto katika Fahrenheit, ili uwe na yafuatayo:
Pakia Kanuni
Sasa, pakia msimbo kwenye ESP32 yako. Hakikisha umechagua ubao sahihi na mlango wa COM. Pakia hatua za marejeleo ya msimbo.
Baada ya kupakia, fungua Ufuatiliaji wa Ufuatiliaji kwa kiwango cha baud cha 115200. Bonyeza kitufe cha kuweka upya ESP32. Anwani ya IP ya ESP32 inapaswa kuchapishwa katika mfululizo kufuatilia.Maonyesho
Fungua kivinjari na uandike anwani ya IP ya ESP32. Wako web seva inapaswa kuonyesha usomaji wa hivi punde wa kihisi.
Kumbuka: Kivinjari chako na ESP32 zinapaswa kuunganishwa kwenye LAN sawa.
Kumbuka kuwa halijoto na unyevunyevu husasishwa kiotomatiki bila hitaji la kuonyesha upya web ukurasa.
Project_10_ESP32_OLED_Display
Mradi huu unaonyesha jinsi ya kutumia skrini ya 0.96 inch SSD1306 OLED yenye ESP32 kwa kutumia Arduino IDE.
Tunakuletea Onyesho la OLED la inchi 0.96
The Onyesho la OLED tutakayotumia katika somo hili ni modeli ya SSD1306: onyesho la rangi moja, inchi 0.96 na pikseli 128×64 kama inavyoonyeshwa kwenye takwimu ifuatayo.Onyesho la OLED halihitaji taa ya nyuma, ambayo husababisha utofautishaji mzuri sana katika mazingira ya giza. Zaidi ya hayo, pikseli zake hutumia nishati tu wakati zimewashwa, kwa hivyo onyesho la OLED hutumia nishati kidogo ikilinganishwa na skrini zingine.
Kwa sababu onyesho la OLED linatumia itifaki ya mawasiliano ya I2C, wiring ni rahisi sana. Unaweza kutumia jedwali lifuatalo kama kumbukumbu.
Pini ya OLED | ESP32 |
Vin | 3.3V |
GND | GND |
SCL | GPIO 22 |
SDA | GPIO 21 |
KimpangoKufunga maktaba ya OLED ya SSD1306 - ESP32
Kuna maktaba kadhaa zinazopatikana kudhibiti onyesho la OLED na ESP32.
Katika somo hili tutatumia maktaba mbili za Adafruit: Maktaba ya Adafruit_SSD1306 na Maktaba ya Adafruit_GFX.
Fuata hatua zinazofuata ili kusakinisha maktaba hizo.
- Fungua IDE yako ya Arduino na uende kwa Mchoro> Jumuisha Maktaba> Dhibiti Maktaba. Kidhibiti cha Maktaba kinapaswa kufungua.
- Andika "SSD1306" kwenye kisanduku cha kutafutia na usakinishe maktaba ya SSD1306 kutoka Adafruit.
- Baada ya kusakinisha maktaba ya SSD1306 kutoka Adafruit, chapa "GFX" kwenye kisanduku cha utafutaji na usakinishe maktaba.
- Baada ya kusakinisha maktaba, anzisha upya IDE yako ya Arduino.
Kanuni
Baada ya kusakinisha maktaba zinazohitajika, Fungua Project_10_ESP32_OLED_Display.ino katika arduino IDE. kanuni
Tutapanga ESP32 kwa kutumia Arduino IDE, kwa hivyo hakikisha kuwa umesakinisha programu jalizi ya ESP32 kabla ya kuendelea: (Ikiwa tayari umefanya hatua hii, unaweza kuruka hadi hatua inayofuata.)
Inasakinisha programu jalizi ya ESP32 katika Arduino IDEJinsi Kanuni Hufanya Kazi
Kuagiza maktaba
Kwanza, unahitaji kuagiza maktaba muhimu. Maktaba ya Waya ya kutumia I2C na maktaba za Adafruit kuandikia onyesho: Adafruit_GFX na Adafruit_SSD1306.Anzisha onyesho la OLED
Kisha, unafafanua upana na urefu wa OLED yako. Katika hii exampna, tunatumia onyesho la OLED la 128×64. Ikiwa unatumia saizi zingine, unaweza kubadilisha hiyo katika SCREEN_WIDTH, na SCREEN_HEIGHT vigezo.Kisha, anzisha kitu cha kuonyesha kwa upana na urefu uliofafanuliwa mapema kwa itifaki ya mawasiliano ya I2C (&Wire).
Kigezo cha (-1) kinamaanisha kuwa onyesho lako la OLED halina pini ya UPYA. Ikiwa onyesho lako la OLED lina pini ya RESET, inapaswa kuunganishwa kwa GPIO. Katika hali hiyo, unapaswa kupitisha nambari ya GPIO kama parameta.
Katika usanidi(), anzisha Kifuatiliaji cha Ufuatiliaji kwa kasi ya 115200 kwa madhumuni ya utatuzi.Anzisha onyesho la OLED kwa njia ya begin() kama ifuatavyo:
Kijisehemu hiki pia huchapisha ujumbe kwenye Kifuatiliaji cha Ufuatiliaji, ikiwa hatuwezi kuunganisha kwenye onyesho.
Iwapo unatumia onyesho tofauti la OLED, huenda ukahitaji kubadilisha anwani ya OLED. Kwa upande wetu, anwani ni 0x3C.
Baada ya kuanzisha onyesho, ongeza ucheleweshaji wa sekunde mbili, ili OLED iwe na muda wa kutosha wa kuanzisha kabla ya kuandika maandishi:
Onyesha wazi, weka saizi ya fonti, rangi na uandike maandishi
Baada ya kuanzisha onyesho, futa bafa ya onyesho kwa njia ya clearDisplay():
Kabla ya kuandika maandishi, unahitaji kuweka ukubwa wa maandishi, rangi na ambapo maandishi yataonyeshwa kwenye OLED.
Weka saizi ya fonti kwa kutumia setTextSize() njia:Weka rangi ya fonti na setTextColor() njia:
NYEUPE huweka fonti nyeupe na mandharinyuma nyeusi.
Bainisha mahali ambapo maandishi yanaanza kutumia njia ya setCursor(x,y). Katika kesi hii, tunaweka maandishi kuanza kwenye viwianishi vya (0,0) - kwenye kona ya juu kushoto.Hatimaye, unaweza kutuma maandishi kwenye onyesho kwa kutumia mbinu ya println(), kama ifuatavyo
Kisha, unahitaji kupiga simu display() njia ili kuonyesha maandishi kwenye skrini.
Maktaba ya OLED ya Adafruit hutoa mbinu muhimu za kusogeza maandishi kwa urahisi.
- startscrollright(0x00, 0x0F): tembeza maandishi kutoka kushoto kwenda kulia
- startscrollleft(0x00, 0x0F): sogeza maandishi kutoka kulia kwenda kushoto
- startscrolldiagright(0x00, 0x07): tembeza maandishi kutoka kona ya chini kushoto hadi kona ya juu kulia startscrolldiagleft(0x00, 0x07): tembeza maandishi kutoka kona ya chini kulia hadi kona ya juu kushoto
Pakia Kanuni
Sasa, pakia msimbo kwenye hatua zako za marejeleo za msimbo wa ESP32. Pakia.
Baada ya kupakia msimbo, OLED itaonyesha maandishi ya kusogeza.
Nyaraka / Rasilimali
![]() |
LAFVIN ESP32 Basic Starter Kit [pdf] Mwongozo wa Maelekezo ESP32 Basic Starter Kit, ESP32, Basic Starter Kit, Starter Kit |