ESP32 आधारभूत स्टार्टर
किट
प्याकिङ सूची
ESP32 परिचय
ESP32 मा नयाँ हुनुहुन्छ? यहाँ सुरु गर्नुहोस्! ESP32 एक चिप (SoC) माइक्रोकन्ट्रोलरहरूमा कम लागत र कम-शक्ति प्रणालीको एक श्रृंखला हो जुन Espressif द्वारा विकसित गरिएको छ जसमा Wi-Fi र ब्लुटुथ वायरलेस क्षमताहरू र डुअल-कोर प्रोसेसर समावेश छ। यदि तपाईं ESP8266 सँग परिचित हुनुहुन्छ भने, ESP32 यसको उत्तराधिकारी हो, धेरै नयाँ सुविधाहरूले भरिएको छ।ESP32 निर्दिष्टीकरणहरू
यदि तपाइँ अलि बढी प्राविधिक र विशिष्ट प्राप्त गर्न चाहानुहुन्छ भने, तपाइँ ESP32 को निम्न विस्तृत विवरणहरू हेर्न सक्नुहुन्छ (स्रोत: http://esp32.net/) — थप विवरणहरूको लागि, डाटाशीट जाँच गर्नुहोस्):
- वायरलेस कनेक्टिविटी वाइफाइ: HT150.0 सँग 40 Mbps डाटा दर
- ब्लुटुथ: BLE (ब्लुटुथ कम ऊर्जा) र ब्लुटुथ क्लासिक
- प्रोसेसर: Tensilica Xtensa Dual-Core 32-bit LX6 माइक्रोप्रोसेसर, 160 वा 240 MHz मा चलिरहेको
- मेमोरी:
- ROM: 448 KB (बुटिङ र मुख्य कार्यहरूको लागि)
- SRAM: 520 KB (डेटा र निर्देशनहरूको लागि)
- RTC fas SRAM: 8 KB (डेटा भण्डारण र मुख्य CPU को लागि RTC बुटको समयमा गहिरो-स्लीप मोडबाट)
- RTC ढिलो SRAM: 8KB (गहिरो-स्लीप मोडको समयमा सह-प्रोसेसर पहुँचको लागि) eFuse: 1 Kbit (जसमध्ये 256 बिटहरू प्रणालीको लागि प्रयोग गरिन्छ (MAC ठेगाना र चिप कन्फिगरेसन) र बाँकी 768 बिटहरू ग्राहक अनुप्रयोगहरूका लागि आरक्षित छन्, सहित फ्ल्यास-इन्क्रिप्शन र चिप-आईडी)
इम्बेडेड फ्ल्यास: फ्लैश IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 र SD_DATA_1 ESP32-D2WD र ESP32-PICO-D4 मार्फत आन्तरिक रूपमा जडान गरिएको छ।
- ० MiB (ESP0-D32WDQ0, ESP6-D32WD, र ESP0-S32WD चिप्स)
- २ MiB (ESP2-D32WD चिप)
- ४ MiB (ESP4-PICO-D32 SiP मोड्युल)
कम पावर: सुनिश्चित गर्दछ कि तपाइँ अझै पनि ADC रूपान्तरणहरू प्रयोग गर्न सक्नुहुन्छ, पूर्वको लागिampले, गहिरो निद्राको समयमा।
परिधीय इनपुट/आउटपुट:
- DMA को साथ परिधीय इन्टरफेस जसमा capacitive touch समावेश छ
- ADCs (एनालग-देखि-डिजिटल कन्भर्टर)
- DACs (डिजिटल-देखि-एनालग कन्भर्टर)
- I²C (अन्तर-एकीकृत सर्किट)
- UART (युनिभर्सल एसिन्क्रोनस रिसीभर/ट्रान्समिटर)
- SPI (सिरियल पेरिफेरल इन्टरफेस)
- I²S (एकीकृत इन्टरचिप ध्वनि)
- RMII (रिड्युस्ड मिडिया-इन्डिपेन्डेन्ट इन्टरफेस)
- PWM (पल्स-विडथ मोड्युलेसन)
सुरक्षा: AES र SSL/TLS का लागि हार्डवेयर एक्सेलेरेटरहरू
ESP32 विकास बोर्डहरू
ESP32 ले बेयर ESP32 चिपलाई जनाउँछ। यद्यपि, "ESP32" शब्द ESP32 विकास बोर्डहरूलाई सन्दर्भ गर्न पनि प्रयोग गरिन्छ। ESP32 बेयर चिप्स प्रयोग गर्न सजिलो वा व्यावहारिक छैन, विशेष गरी जब सिक्ने, परीक्षण, र प्रोटोटाइप। धेरै जसो समय, तपाइँ ESP32 विकास बोर्ड प्रयोग गर्न चाहानुहुन्छ।
हामी सन्दर्भको रूपमा ESP32 DEVKIT V1 बोर्ड प्रयोग गर्नेछौं। तलको चित्रले ESP32 DEVKIT V1 बोर्ड, 30 GPIO पिनहरू भएको संस्करण देखाउँछ।निर्दिष्टीकरण - ESP32 DEVKIT V1
निम्न तालिकाले ESP32 DEVKIT V1 DOIT बोर्ड सुविधाहरू र विशिष्टताहरूको सारांश देखाउँछ:
कोर को संख्या | २ (डुअल कोर) |
Wi-Fi | २.४ GHz १५० Mbits/s सम्म |
ब्लुटुथ | BLE (ब्लुटुथ कम ऊर्जा) र पुरानो ब्लुटुथ |
वास्तुकला | 32 बिट |
घडी आवृत्ति | ५० मेगाहर्ट्ज सम्म |
RAM | 512 KB |
पिनहरू | 30 (मोडेलमा निर्भर गर्दै) |
परिधि | क्यापेसिटिव टच, ADC (एनालॉग देखि डिजिटल कन्भर्टर), DAC (डिजिटल देखि एनालग कन्भर्टर), 12C (इन्टर-इन्टिग्रेटेड सर्किट), UART (युनिभर्सल एसिन्क्रोनस रिसीभर/ट्रान्समिटर), CAN 2.0 (कन्ट्रोलर एरिया नेटवोकर), SPI (सिरियल पेरिफेरल इन्टरफेस) , 12S (एकीकृत अन्तर-आईसी ध्वनि), RMII (कम मिडिया-स्वतन्त्र इन्टरफेस), PWM (पल्स चौडाइ मोडुलेशन), र थप। |
निर्मित बटनहरू | रिसेट र बुट बटनहरू |
बिल्ट-इन LEDs | GPIO2 मा जडान गरिएको निर्मित नीलो LED; बोर्डलाई पावर भइरहेको देखाउने निर्मित रातो LED |
UART मा USB पुल |
CP2102 |
यो एक माइक्रोUSB इन्टरफेसको साथ आउँछ जुन तपाईंले कोड अपलोड गर्न वा पावर लागू गर्न बोर्डलाई आफ्नो कम्प्युटरमा जडान गर्न प्रयोग गर्न सक्नुहुन्छ।
यसले सिरियल इन्टरफेस प्रयोग गरेर COM पोर्ट मार्फत तपाईंको कम्प्युटरसँग सञ्चार गर्न CP2102 चिप (USB देखि UART) प्रयोग गर्दछ। अर्को लोकप्रिय चिप CH340 हो। तपाईंको बोर्डमा USB देखि UART चिप कन्भर्टर के हो भनेर जाँच गर्नुहोस् किनभने तपाईंले आवश्यक ड्राइभरहरू स्थापना गर्नुपर्नेछ ताकि तपाईंको कम्प्युटरले बोर्डसँग सञ्चार गर्न सकोस् (यसको बारेमा थप जानकारी यस गाइडमा पछि)।
यो बोर्डमा बोर्ड रिस्टार्ट गर्न RESET बटन (EN लेबल गरिएको हुन सक्छ) र बोर्डलाई फ्ल्यासिङ मोडमा राख्न BOOT बटन (कोड प्राप्त गर्न उपलब्ध) पनि आउँछ। ध्यान दिनुहोस् कि केही बोर्डहरूमा BOOT बटन नहुन सक्छ।
यो GPIO 2 मा आन्तरिक रूपमा जडान गरिएको नीलो LED सँग पनि आउँछ। यो LED कुनै प्रकारको दृश्य भौतिक आउटपुट दिन डिबगिङको लागि उपयोगी छ। त्यहाँ एउटा रातो LED पनि छ जुन तपाईंले बोर्डमा पावर प्रदान गर्दा उज्यालो हुन्छ।ESP32 पिनआउट
ESP32 परिधीयहरू समावेश छन्:
- 18 एनालग-देखि-डिजिटल कन्भर्टर (ADC) च्यानलहरू
- 3 SPI इन्टरफेसहरू
- २ UART इन्टरफेसहरू
- 2 I2C इन्टरफेसहरू
- 16 PWM आउटपुट च्यानलहरू
- २ डिजिटल देखि एनालग कन्भर्टरहरू (DAC)
- 2 I2S इन्टरफेसहरू
- 10 Capacitive sensing GPIOs
ADC (डिजिटल कन्भर्टरमा एनालग) र DAC (डिजिटल देखि एनालग कन्भर्टर) सुविधाहरू विशिष्ट स्थिर पिनहरूमा तोकिएका छन्। जे होस्, तपाइँ कुन पिनहरू UART, I2C, SPI, PWM, आदि हुन् भनेर निर्णय गर्न सक्नुहुन्छ - तपाइँले तिनीहरूलाई कोडमा तोक्न आवश्यक छ। यो ESP32 चिपको मल्टिप्लेक्सिङ सुविधाको कारणले सम्भव छ।
यद्यपि तपाइँ सफ्टवेयरमा पिन गुणहरू परिभाषित गर्न सक्नुहुन्छ, निम्न चित्रमा देखाइए अनुसार पूर्वनिर्धारित रूपमा पिनहरू तोकिएका छन्।थप रूपमा, त्यहाँ विशेष सुविधाहरू भएका पिनहरू छन् जसले तिनीहरूलाई विशेष परियोजनाको लागि उपयुक्त वा होइन। निम्न तालिकाले कुन पिनहरू इनपुट, आउटपुटको रूपमा प्रयोग गर्नका लागि उत्तम हो र कुनलाई तपाइँ सतर्क हुन आवश्यक छ भनेर देखाउँछ।
हरियोमा हाइलाइट गरिएका पिनहरू प्रयोग गर्न ठीक छन्। पहेंलोमा हाइलाइट गरिएकाहरू प्रयोग गर्न ठीक छन्, तर तपाईंले ध्यान दिन आवश्यक छ किनभने तिनीहरूसँग मुख्य रूपमा बुटमा अप्रत्याशित व्यवहार हुन सक्छ। रातोमा हाइलाइट गरिएका पिनहरूलाई इनपुट वा आउटपुटको रूपमा प्रयोग गर्न सिफारिस गरिँदैन।
GP IO | इनपुट | आउटपुट | नोटहरू |
0 | माथि तानियो | OK | बुटमा PWM सिग्नल आउटपुट गर्दछ, फ्ल्यासिङ मोडमा प्रवेश गर्न कम हुनुपर्छ |
1 | TX पिन | OK | बुटमा डिबग आउटपुट |
2 | OK | OK | अन-बोर्ड LED मा जडान गरिएको छ, फ्ल्याशिङ मोडमा प्रवेश गर्न फ्लोटिंग वा कम छोड्नु पर्छ |
3 | OK | RX पिन | बुटमा उच्च |
4 | OK | OK | |
5 | OK | OK | बुट, स्ट्र्यापिङ पिनमा PWM सिग्नल आउटपुट गर्दछ |
12 | OK | OK | माथि, स्ट्र्यापिङ पिन तान्दा बुट असफल हुन्छ |
13 | OK | OK | |
14 | OK | OK | बुटमा PWM सिग्नल आउटपुट गर्दछ |
15 | OK | OK | बुट, स्ट्र्यापिङ पिनमा PWM सिग्नल आउटपुट गर्दछ |
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 | इनपुट मात्र | |
35 | OK | इनपुट मात्र | |
36 | OK | इनपुट मात्र | |
39 | OK | इनपुट मात्र |
ESP32 GPIOs र यसको कार्यहरूको थप विवरण र गहन विश्लेषणको लागि पढ्न जारी राख्नुहोस्।
इनपुट मात्र पिन
GPIOs 34 देखि 39 GPI हरू हुन् - इनपुट मात्र पिन। यी पिनहरूमा आन्तरिक पुल-अप वा पुल-डाउन प्रतिरोधकहरू छैनन्। तिनीहरूलाई आउटपुटको रूपमा प्रयोग गर्न सकिँदैन, त्यसैले यी पिनहरूलाई इनपुटको रूपमा मात्र प्रयोग गर्नुहोस्:
- GPIO ०
- GPIO ०
- GPIO ०
- GPIO ०
SPI फ्लैश ESP-WROOM-32 मा एकीकृत
GPIO 6 देखि GPIO 11 केही ESP32 विकास बोर्डहरूमा खुलासा गरिएको छ। यद्यपि, यी पिनहरू ESP-WROOM-32 चिपमा एकीकृत SPI फ्ल्याससँग जोडिएका छन् र अन्य प्रयोगहरूको लागि सिफारिस गरिँदैन। त्यसोभए, तपाइँको परियोजनाहरूमा यी पिनहरू प्रयोग नगर्नुहोस्:
- 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 मा 10 आन्तरिक क्यापेसिटिव टच सेन्सरहरू छन्। यसले मानव छाला जस्तै विद्युतीय चार्ज हुने कुनै पनि कुरामा भिन्नताहरू महसुस गर्न सक्छ। त्यसैले तिनीहरूले औंलाले GPIOs छुँदा प्रेरित भिन्नताहरू पत्ता लगाउन सक्छन्। यी पिनहरू सजिलैसँग क्यापेसिटिव प्याडहरूमा एकीकृत गर्न सकिन्छ र मेकानिकल बटनहरू बदल्न सकिन्छ। ESP32 लाई गहिरो निद्राबाट जगाउनको लागि क्यापेसिटिव टच पिनहरू पनि प्रयोग गर्न सकिन्छ। ती आन्तरिक टच सेन्सरहरू यी GPIO सँग जडान भएका छन्:
- T0 (GPIO 4)
- T1 (GPIO 0)
- T2 (GPIO 2)
- T3 (GPIO 15)
- T4 (GPIO 13)
- T5 (GPIO 12)
- T6 (GPIO 14)
- T7 (GPIO 27)
- T8 (GPIO 33)
- T9 (GPIO 32)
डिजिटल कन्भर्टर (एडीसी) लाई एनालग
ESP32 सँग 18 x 12 बिट ADC इनपुट च्यानलहरू छन् (जबकि ESP8266 मा 1x 10 बिट ADC मात्र छ)। यी GPIO हरू हुन् जुन ADC र सम्बन्धित च्यानलहरूको रूपमा प्रयोग गर्न सकिन्छ:
- 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)
नोट: Wi-Fi प्रयोग गर्दा ADC2 पिनहरू प्रयोग गर्न सकिँदैन। त्यसोभए, यदि तपाइँ Wi-Fi प्रयोग गर्दै हुनुहुन्छ र तपाइँलाई ADC2 GPIO बाट मूल्य प्राप्त गर्न समस्या भइरहेको छ भने, तपाइँ यसको सट्टा ADC1 GPIO प्रयोग गर्ने विचार गर्न सक्नुहुन्छ। यसले तपाईको समस्या समाधान गर्नुपर्छ।
ADC इनपुट च्यानलहरूसँग 12-बिट रिजोल्युसन छ। यसको मतलब तपाईले 0 देखि 4095 सम्मको एनालग रिडिङहरू प्राप्त गर्न सक्नुहुन्छ, जसमा 0 0V र 4095 देखि 3.3V सँग मेल खान्छ। तपाइँ कोड र ADC दायरामा तपाइँको च्यानलहरूको रिजोलुसन पनि सेट गर्न सक्नुहुन्छ।
ESP32 ADC पिनहरूसँग रैखिक व्यवहार छैन। तपाईं सम्भवतः 0 र 0.1V बीच, वा 3.2 र 3.3V बीच भेद गर्न सक्षम हुनुहुने छैन। तपाईंले एडीसी पिनहरू प्रयोग गर्दा यो मनमा राख्न आवश्यक छ। तपाईंले निम्न चित्रमा देखाइएको जस्तै व्यवहार पाउनुहुनेछ।डिजिटल देखि एनालग रूपान्तरण (DAC)
डिजिटल सिग्नलहरूलाई एनालग भोल्युममा रूपान्तरण गर्न ESP2 मा 8 x 32 बिट DAC च्यानलहरू छन्।tagई सिग्नल आउटपुटहरू। यी हुन् DAC च्यानलहरू:
- DAC1 (GPIO25)
- DAC2 (GPIO26)
RTC GPIOs
ESP32 मा RTC GPIO समर्थन छ। ESP32 गहिरो निद्रामा हुँदा RTC कम पावर उपप्रणालीमा रुट गरिएका GPIOs प्रयोग गर्न सकिन्छ। यी RTC GPIO हरू ESP32 लाई गहिरो निद्राबाट उठाउन प्रयोग गर्न सकिन्छ जब अल्ट्रा कम
पावर (ULP) को-प्रोसेसर चलिरहेको छ। निम्न GPIO हरू बाहिरी जगेडा स्रोतको रूपमा प्रयोग गर्न सकिन्छ।
- 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 नियन्त्रकसँग 16 स्वतन्त्र च्यानलहरू छन् जुन विभिन्न गुणहरूसँग PWM संकेतहरू उत्पन्न गर्न कन्फिगर गर्न सकिन्छ। आउटपुटको रूपमा काम गर्न सक्ने सबै पिनहरू PWM पिनको रूपमा प्रयोग गर्न सकिन्छ (GPIOs 34 देखि 39 ले PWM उत्पन्न गर्न सक्दैन)।
PWM सिग्नल सेट गर्न, तपाईंले कोडमा यी प्यारामिटरहरू परिभाषित गर्न आवश्यक छ:
- सिग्नल आवृत्ति;
- कर्तव्य चक्र;
- PWM च्यानल;
- GPIO जहाँ तपाईं सिग्नल आउटपुट गर्न चाहनुहुन्छ।
I2C
ESP32 मा दुई I2C च्यानलहरू छन् र कुनै पनि पिन SDA वा SCL को रूपमा सेट गर्न सकिन्छ। Arduino IDE सँग ESP32 प्रयोग गर्दा, पूर्वनिर्धारित I2C पिनहरू हुन्:
- GPIO 21 (SDA)
- GPIO 22 (SCL)
यदि तपाइँ तार लाइब्रेरी प्रयोग गर्दा अन्य पिनहरू प्रयोग गर्न चाहनुहुन्छ भने, तपाइँलाई कल गर्न आवश्यक छ:
Wire.begin(SDA, SCL);
SPI
पूर्वनिर्धारित रूपमा, SPI को लागि पिन म्यापिङ हो:
SPI | मोसी | MISO | CLK | CS |
VSPI | GPIO ० | GPIO ० | GPIO ० | GPIO ० |
HSPI | GPIO ० | GPIO ० | GPIO ० | GPIO ० |
अवरोधहरू
सबै GPIO हरू अवरोधहरूको रूपमा कन्फिगर गर्न सकिन्छ।
स्ट्र्यापिङ पिनहरू
ESP32 चिपमा निम्न स्ट्र्यापिङ पिनहरू छन्:
- GPIO 0 (बुट मोडमा प्रवेश गर्न कम हुनुपर्छ)
- GPIO 2 (बुट गर्दा फ्लोटिंग वा कम हुनुपर्छ)
- GPIO ०
- GPIO 5 (बुट गर्दा उच्च हुनुपर्छ)
- GPIO 12 (बुट गर्दा कम हुनुपर्छ)
- GPIO 15 (बुट गर्दा उच्च हुनुपर्छ)
यी ESP32 लाई बूटलोडर वा फ्ल्यासिङ मोडमा राख्न प्रयोग गरिन्छ। बिल्ट-इन USB/सिरियलको साथ धेरै विकास बोर्डहरूमा, तपाईंले यी पिनहरूको अवस्थाको बारेमा चिन्ता लिनु पर्दैन। फ्ल्यासिङ वा बुट मोडका लागि बोर्डले पिनहरूलाई सही अवस्थामा राख्छ। ESP32 बुट मोड चयनमा थप जानकारी यहाँ फेला पार्न सकिन्छ।
यद्यपि, यदि तपाइँसँग ती पिनहरूमा जोडिएको परिधिहरू छन् भने, तपाइँलाई नयाँ कोड अपलोड गर्न, नयाँ फर्मवेयरको साथ ESP32 फ्ल्यास गर्न, वा बोर्ड रिसेट गर्न समस्या हुन सक्छ। यदि तपाइँसँग स्ट्र्यापिङ पिनहरूमा जडान भएका केही बाह्य उपकरणहरू छन् र तपाइँलाई कोड अपलोड गर्न वा ESP32 फ्ल्याश गर्न समस्या भइरहेको छ भने, यो हुन सक्छ किनभने ती बाह्यहरूले ESP32 लाई सही मोडमा प्रवेश गर्नबाट रोकिरहेका छन्। तपाईलाई सही दिशामा मार्गदर्शन गर्न बुट मोड चयन कागजात पढ्नुहोस्। रिसेट, फ्ल्यासिङ, वा बुटिङ पछि, ती पिनहरूले अपेक्षित रूपमा काम गर्छन्।
बुटमा उच्च पिनहरू
केही GPIO ले बुट वा रिसेटमा आफ्नो स्थिति उच्च वा आउटपुट PWM संकेतहरूमा परिवर्तन गर्दछ।
यसको मतलब यो हो कि यदि तपाइँसँग यी GPIO हरूमा जडान गरिएका आउटपुटहरू छन् भने तपाइँले ESP32 रिसेट वा बुट गर्दा अनपेक्षित परिणामहरू प्राप्त गर्न सक्नुहुन्छ।
- GPIO ०
- GPIO ०
- GPIO ०
- GPIO 6 देखि GPIO 11 (ESP32 एकीकृत SPI फ्लैश मेमोरीमा जडान गरिएको - प्रयोग गर्न सिफारिस गरिएको छैन)।
- GPIO ०
- GPIO ०
सक्षम (EN)
सक्षम (EN) 3.3V नियामकको सक्षम पिन हो। यो तानिएको छ, त्यसैले 3.3V नियामक असक्षम गर्न जमीनमा जडान गर्नुहोस्। यसको मतलब यो हो कि तपाइँ तपाइँको ESP32 लाई पुन: सुरु गर्न पुशबटनमा जडान गरिएको यो पिन प्रयोग गर्न सक्नुहुन्छ, पूर्वका लागिample।
GPIO वर्तमान कोरिएको
ESP40 डाटाशीटमा "सिफारिस गरिएको सञ्चालन सर्तहरू" खण्ड अनुसार प्रति GPIO को पूर्ण अधिकतम वर्तमान 32mA हो।
ESP32 बिल्ट-इन हल प्रभाव सेन्सर
ESP32 मा एक निर्मित हल प्रभाव सेन्सर पनि छ जसले यसको वरपरको चुम्बकीय क्षेत्रमा परिवर्तनहरू पत्ता लगाउँदछ।
ESP32 Arduino IDE
त्यहाँ Arduino IDE को लागि एक एड-अन छ जसले तपाईंलाई Arduino IDE र यसको प्रोग्रामिङ भाषा प्रयोग गरेर ESP32 प्रोग्राम गर्न अनुमति दिन्छ। यस ट्यूटोरियलमा हामी तपाइँलाई कसरी Arduino IDE मा ESP32 बोर्ड स्थापना गर्ने भनेर देखाउनेछौं चाहे तपाइँ Windows, Mac OS X वा Linux प्रयोग गर्दै हुनुहुन्छ।
आवश्यकताहरू: Arduino IDE स्थापित
यो स्थापना प्रक्रिया सुरु गर्नु अघि, तपाइँलाई तपाइँको कम्प्युटरमा Arduino IDE स्थापित गर्न आवश्यक छ। त्यहाँ Arduino IDE को दुई संस्करणहरू छन् जुन तपाईंले स्थापना गर्न सक्नुहुन्छ: संस्करण 1 र संस्करण 2।
तपाइँ निम्न लिङ्कमा क्लिक गरेर Arduino IDE डाउनलोड र स्थापना गर्न सक्नुहुन्छ: arduino.cc/en/Main/Software
हामी कुन Arduino IDE संस्करण सिफारिस गर्छौं? हाल, त्यहाँ केही छन् plugins ESP32 को लागि (SPIFFS जस्तै) File(system Uploader Plugin) जुन Arduino 2 मा अझै समर्थित छैन। त्यसैले, यदि तपाईं भविष्यमा SPIFFS प्लगइन प्रयोग गर्ने विचारमा हुनुहुन्छ भने, हामी लेगेसी संस्करण 1.8.X स्थापना गर्न सिफारिस गर्छौं। यसलाई फेला पार्न तपाईंले Arduino सफ्टवेयर पृष्ठमा तल स्क्रोल गर्न आवश्यक छ।
Arduino IDE मा ESP32 एड-अन स्थापना गर्दै
तपाईंको Arduino IDE मा ESP32 बोर्ड स्थापना गर्न, यी निम्न निर्देशनहरू पालना गर्नुहोस्:
- तपाईंको Arduino IDE मा, जानुहोस् File> प्राथमिकताहरू
- "अतिरिक्त बोर्ड प्रबन्धक" मा निम्न प्रविष्ट गर्नुहोस् URLs" क्षेत्र:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
त्यसपछि, "ठीक" बटन क्लिक गर्नुहोस्:नोट: यदि तपाईंसँग पहिले नै ESP8266 बोर्डहरू छन् भने URL, तपाईं अलग गर्न सक्नुहुन्छ URLनिम्नानुसार अल्पविराम सहित s:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
बोर्ड प्रबन्धक खोल्नुहोस्। उपकरणहरू > बोर्ड > बोर्ड प्रबन्धकमा जानुहोस्...खोज्नुहोस् ESP32 and press install button for the “ESP32 by Espressif Systems“:
यत्ति हो। यो केही सेकेन्ड पछि स्थापना हुनुपर्छ।
परीक्षण कोड अपलोड गर्नुहोस्
आफ्नो कम्प्युटरमा ESP32 बोर्ड प्लग गर्नुहोस्। तपाईंको Arduino IDE खोल्दा, यी चरणहरू पालना गर्नुहोस्:
- उपकरण > बोर्ड मेनुमा आफ्नो बोर्ड चयन गर्नुहोस् (मेरो केसमा यो ESP32 DEV मोड्युल हो)
- पोर्ट चयन गर्नुहोस् (यदि तपाईंले आफ्नो Arduino IDE मा COM पोर्ट देख्नुभएन भने, तपाईंले UART Bridge VCP ड्राइभरहरूमा CP210x USB स्थापना गर्न आवश्यक छ):
- निम्न पूर्व खोल्नुहोस्ampले मुनि File > पूर्वamples > WiFi
(ESP32) > WiFiScan - तपाईंको Arduino IDE मा नयाँ स्केच खुल्छ:
- Arduino IDE मा अपलोड बटन थिच्नुहोस्। कोड कम्पाइल र तपाईंको बोर्डमा अपलोड हुँदा केही सेकेन्ड पर्खनुहोस्।
- यदि सबै कुरा अपेक्षा गरे अनुसार भयो भने, तपाईंले "अपलोड भयो" देख्नुपर्छ। सन्देश।
- 115200 को बाउड दरमा Arduino IDE सिरियल मनिटर खोल्नुहोस्:
- ESP32 अन-बोर्ड सक्षम बटन थिच्नुहोस् र तपाईंले आफ्नो ESP32 नजिकै उपलब्ध नेटवर्कहरू देख्नुपर्छ:
समस्या निवारण
यदि तपाइँ तपाइँको ESP32 मा नयाँ स्केच अपलोड गर्ने प्रयास गर्नुहुन्छ र तपाइँले यो त्रुटि सन्देश पाउनुहुन्छ "एक घातक त्रुटि देखा पर्यो: ESP32 मा जडान गर्न असफल भयो: समय सकियो... जडान गर्दै..."। यसको मतलब तपाईको ESP32 फ्ल्यासिङ/अपलोडिङ मोडमा छैन।
सही बोर्ड नाम र COM por चयन भएको, यी चरणहरू पालना गर्नुहोस्:
तपाईंको ESP32 बोर्डमा "BOOT" बटन होल्ड-डाउन गर्नुहोस्
- आफ्नो स्केच अपलोड गर्न Arduino IDE मा "अपलोड" बटन थिच्नुहोस्:
- तपाईंले "जडान गर्दै..." हेरेपछि तपाईंको Arduino IDE मा सन्देश, "BOOT" बटनबाट औंला छोड्नुहोस्:
- त्यस पछि, तपाईंले "अपलोड भयो" सन्देश देख्नुपर्छ
त्यही भयो। तपाईंको ESP32 मा नयाँ स्केच चलिरहेको हुनुपर्छ। ESP32 पुन: सुरु गर्न र नयाँ अपलोड गरिएको स्केच चलाउन "सक्षम गर्नुहोस्" बटन थिच्नुहोस्।
तपाईंले नयाँ स्केच अपलोड गर्न चाहनुहुँदा प्रत्येक पटक त्यो बटन अनुक्रम दोहोर्याउनु पर्नेछ।
परियोजना 1 ESP32 इनपुट आउटपुट
यो सुरु गर्ने मार्गनिर्देशनमा तपाईंले बटन स्विच जस्तै डिजिटल इनपुटहरू कसरी पढ्ने र Arduino IDE सँग ESP32 प्रयोग गरेर LED जस्ता डिजिटल आउटपुटहरू कसरी नियन्त्रण गर्ने भनेर सिक्नुहुनेछ।
पूर्व शर्तहरू
हामी Arduino IDE प्रयोग गरेर ESP32 कार्यक्रम गर्नेछौं। त्यसोभए, अगाडि बढ्नु अघि तपाइँसँग ESP32 बोर्डहरू एड-अन स्थापना भएको निश्चित गर्नुहोस्:
- Arduino IDE मा ESP32 एड-अन स्थापना गर्दै
ESP32 नियन्त्रण डिजिटल आउटपुट
पहिले, तपाईंले GPIO सेट गर्न आवश्यक छ जुन तपाईं आउटपुटको रूपमा नियन्त्रण गर्न चाहनुहुन्छ। निम्नानुसार pinMode() प्रकार्य प्रयोग गर्नुहोस्:
पिनमोड (GPIO, आउटपुट);
डिजिटल आउटपुट नियन्त्रण गर्नको लागि तपाईले मात्र डिजिटल राइट() प्रकार्य प्रयोग गर्न आवश्यक छ, जुन तर्कको रूपमा स्वीकार गर्दछ, तपाईले उल्लेख गरिरहनुभएको GPIO (int नम्बर), र राज्य, उच्च वा कम।
digitalWrite (GPIO, STATE);
GPIOs 6 देखि 11 (एकीकृत SPI फ्लैशमा जडान गरिएको) र GPIOs 34, 35, 36 र 39 (इनपुट मात्र GPIOs) बाहेक सबै GPIO हरू आउटपुटको रूपमा प्रयोग गर्न सकिन्छ;
ESP32 GPIO को बारेमा थप जान्नुहोस्: ESP32 GPIO सन्दर्भ गाइड
ESP32 डिजिटल इनपुटहरू पढ्नुहोस्
पहिले, तपाईंले INPUT को रूपमा पढ्न चाहनुभएको GPIO सेट गर्नुहोस्, निम्न रूपमा pinMode() प्रकार्य प्रयोग गरेर:
पिनमोड (GPIO, INPUT);
डिजिटल इनपुट पढ्नको लागि, बटन जस्तै, तपाईले डिजिटल रिड() प्रकार्य प्रयोग गर्नुहुन्छ, जसले तर्कको रूपमा स्वीकार गर्दछ, तपाईले उल्लेख गरिरहनुभएको GPIO (int number)।
digitalRead (GPIO);
सबै ESP32 GPIO हरू इनपुटको रूपमा प्रयोग गर्न सकिन्छ, GPIOs 6 देखि 11 (एकीकृत SPI फ्लैशमा जडान गरिएको) बाहेक।
ESP32 GPIO को बारेमा थप जान्नुहोस्: ESP32 GPIO सन्दर्भ गाइड
परियोजना पूर्वample
डिजिटल इनपुटहरू र डिजिटल आउटपुटहरू कसरी प्रयोग गर्ने भनेर देखाउनको लागि, हामी एउटा साधारण परियोजना पूर्व निर्माण गर्नेछौंample एक पुशबटन र एक एलईडी संग। हामी पुशबटनको अवस्था पढ्नेछौं र निम्न चित्रमा चित्रण गरे अनुसार LED लाई उज्यालो पार्नेछौं।
भागहरू आवश्यक छ
यहाँ सर्किट निर्माण गर्न को लागी आवश्यक भागहरु को एक सूची छ:
- ESP32 DEVKIT V1
- 5 मिमी एलईडी
- 220० ओम प्रतिरोधक
- पुशबटन
- 10k ओम प्रतिरोधक
- ब्रेडबोर्ड
- जम्पर तारहरू
योजनाबद्ध रेखाचित्र
अगाडि बढ्नु अघि, तपाईंले एलईडी र पुशबटनको साथ सर्किट जम्मा गर्न आवश्यक छ।
हामी LED लाई GPIO 5 मा र पुसबटन लाई GPIO मा जडान गर्नेछौं 4.कोड
arduino IDE मा Project_1_ESP32_Inputs_Outputs.ino कोड खोल्नुहोस्कोडले कसरी काम गर्छ
निम्न दुई रेखाहरूमा, तपाईंले पिनहरू तोक्नका लागि चरहरू सिर्जना गर्नुहुन्छ:
बटन GPIO 4 मा जडान गरिएको छ र LED GPIO 5 मा जडान गरिएको छ। ESP32 सँग Arduino IDE प्रयोग गर्दा, 4 GPIO 4 सँग मेल खान्छ र 5 GPIO 5 सँग मेल खान्छ।
अर्को, तपाइँ बटन स्थिति होल्ड गर्न एक चर सिर्जना गर्नुहोस्। पूर्वनिर्धारित रूपमा, यो ० हो (थिचिएको छैन)।
int buttonState = 0;
सेटअप() मा, तपाईंले बटनलाई INPUT को रूपमा र LED लाई आउटपुटको रूपमा प्रारम्भ गर्नुहुन्छ।
त्यसको लागि, तपाईंले pinMode() प्रकार्य प्रयोग गर्नुहुन्छ जुन तपाईंले उल्लेख गरिरहनुभएको पिन स्वीकार गर्दछ, र मोड: INPUT वा OUTPUT।
पिनमोड (बटनपिन, INPUT);
पिनमोड(led पिन, आउटपुट);
in loop() जहाँ तपाइँ बटनको अवस्था पढ्नुहुन्छ र तदनुसार LED सेट गर्नुहुन्छ।
अर्को पङ्क्तिमा, तपाईंले बटनको अवस्था पढ्नुहुन्छ र यसलाई बटन स्टेट चरमा बचत गर्नुहोस्।
हामीले पहिले देख्यौं, तपाईले digitalRead() प्रकार्य प्रयोग गर्नुहुन्छ।
buttonState = digitalRead(buttonPin);
निम्न if कथन, बटन स्थिति उच्च छ कि छैन जाँच गर्दछ। यदि यो हो भने, यसले डिजिटलराइट() प्रकार्य प्रयोग गरेर LED अन गर्छ जसले तर्कको रूपमा ledPin, र राज्य उच्चलाई स्वीकार गर्दछ।
यदि (बटन स्टेट == उच्च)यदि बटन स्थिति उच्च छैन भने, तपाइँ LED बन्द सेट गर्नुहोस्। DigitalWrite() प्रकार्यमा दोस्रो तर्कको रूपमा LOW सेट गर्नुहोस्।
कोड अपलोड गर्दै
अपलोड बटन क्लिक गर्नु अघि, उपकरण > बोर्डमा जानुहोस्, र बोर्ड चयन गर्नुहोस् : DOIT ESP32 DEVKIT V1 बोर्ड।
उपकरण > पोर्टमा जानुहोस् र ESP32 जडान भएको COM पोर्ट चयन गर्नुहोस्। त्यसपछि, अपलोड बटन थिच्नुहोस् र "अपलोड भयो" सन्देशको लागि पर्खनुहोस्।नोट: यदि तपाईंले डिबगिङ सञ्झ्यालमा धेरै थोप्लाहरू (जडान गर्दै..._____) देख्नुभयो र "ESP32 मा जडान गर्न असफल भयो: प्याकेट हेडरको लागि समय समाप्त भयो" सन्देश, यसको मतलब तपाईंले ESP32 on-board BOOT थिच्नु पर्छ। थोप्ला पछि बटन
देखा पर्न सुरु गर्नुहोस्।समस्या निवारण
प्रदर्शन
कोड अपलोड गरेपछि, आफ्नो सर्किट परीक्षण गर्नुहोस्। जब तपाइँ पुशबटन थिच्नुहुन्छ तपाइँको LED उज्यालो हुनुपर्छ:र जब तपाइँ यसलाई जारी गर्नुहुन्छ बन्द गर्नुहोस्:
परियोजना 2 ESP32 एनालग इनपुटहरू
यस परियोजनाले Arduino IDE प्रयोग गरेर ESP32 सँग एनालग इनपुटहरू कसरी पढ्ने भनेर देखाउँछ।
एनालॉग पढाइ चर प्रतिरोधकहरू जस्तै potentiometers, वा एनालग सेन्सरहरूबाट मानहरू पढ्न उपयोगी छ।
एनालग इनपुट (ADC)
ESP32 सँग एनालग मान पढ्नु भनेको तपाईले फरक मात्रा मापन गर्न सक्नुहुन्छtage स्तरहरू 0 V र 3.3 V बीचको।
भोल्युमtage मापन पछि 0 र 4095 बीचको मान तोकिएको छ, जसमा 0 V 0 सँग मेल खान्छ, र 3.3 V 4095 सँग मेल खान्छ। कुनै पनि भोल्युमtage 0 V र 3.3 V को बीचमा सम्बन्धित मान दिइनेछ।ADC गैर-रेखीय छ
आदर्श रूपमा, तपाईले ESP32 ADC पिनहरू प्रयोग गर्दा रैखिक व्यवहारको अपेक्षा गर्नुहुनेछ।
तर, त्यस्तो हुँदैन । तपाईले के पाउनुहुनेछ निम्न चार्टमा देखाइएको व्यवहार हो:यो व्यवहारको अर्थ हो कि तपाईको ESP32 ले 3.3 V बाट 3.2 V छुट्याउन सक्दैन।
तपाईले दुबै भोल्युमको लागि समान मान पाउनुहुनेछtagछ: ४०९५।
धेरै कम भोल्युमको लागि पनि त्यस्तै हुन्छtage मानहरू: 0 V र 0.1 V को लागि तपाईंले समान मान प्राप्त गर्नुहुनेछ: 0। तपाईंले ESP32 ADC पिनहरू प्रयोग गर्दा यो मनमा राख्न आवश्यक छ।
analogRead() प्रकार्य
Arduino IDE प्रयोग गरेर ESP32 सँग एनालग इनपुट पढ्ने analogRead() प्रकार्य प्रयोग गरे जस्तै सरल छ। यसले तर्कको रूपमा स्वीकार गर्दछ, तपाईले पढ्न चाहनुभएको GPIO:
analogRead (GPIO);
DEVKIT V15board मा 1 मात्र उपलब्ध छन् (30 GPIO को साथ संस्करण)।
आफ्नो ESP32 बोर्ड पिनआउट समात्नुहोस् र ADC पिनहरू पत्ता लगाउनुहोस्। यी तलको चित्रमा रातो किनाराको साथ हाइलाइट गरिएका छन्।यी एनालग इनपुट पिनहरूसँग 12-बिट रिजोल्युसन छ। यसको मतलब जब तपाइँ एनालग इनपुट पढ्नुहुन्छ, यसको दायरा 0 देखि 4095 सम्म फरक हुन सक्छ।
नोट: Wi-Fi प्रयोग गर्दा ADC2 पिनहरू प्रयोग गर्न सकिँदैन। त्यसोभए, यदि तपाइँ Wi-Fi प्रयोग गर्दै हुनुहुन्छ र तपाइँलाई ADC2 GPIO बाट मूल्य प्राप्त गर्न समस्या भइरहेको छ भने, तपाइँ यसको सट्टा ADC1 GPIO प्रयोग गर्ने विचार गर्न सक्नुहुन्छ, यसले तपाइँको समस्या समाधान गर्नुपर्छ।
सबै कुरा कसरी एकसाथ जोडिएको छ भनेर हेर्नको लागि, हामी एक साधारण पूर्व बनाउनेछौंampपोटेन्टियोमिटरबाट एनालग मान पढ्न।
भागहरू आवश्यक छ
यसका लागि पूर्वampले, तपाईंलाई निम्न भागहरू चाहिन्छ:
- ESP32 DEVKIT V1 बोर्ड
- आतिथ्यमीटर
- ब्रेडबोर्ड
- जम्पर तारहरू
योजनाबद्ध
आफ्नो ESP32 मा एक potentiometer तार। potentiometer मध्य पिन GPIO 4 मा जडान हुनुपर्छ। तपाईंले सन्दर्भको रूपमा निम्न योजनाबद्ध रेखाचित्र प्रयोग गर्न सक्नुहुन्छ।कोड
हामी Arduino IDE प्रयोग गरेर ESP32 कार्यक्रम गर्नेछौं, त्यसैले अगाडि बढ्नु अघि ESP32 एड-अन स्थापना भएको सुनिश्चित गर्नुहोस्: (यदि तपाईंले यो चरण पहिले नै गरिसक्नुभएको छ भने, तपाईं अर्को चरणमा जान सक्नुहुन्छ।)
Arduino IDE मा ESP32 एड-अन स्थापना गर्दै
arduino IDE मा Project_2_ESP32_Inputs_Outputs.ino कोड खोल्नुहोस्यो कोडले केवल पोटेन्टियोमिटरबाट मानहरू पढ्छ र ती मानहरूलाई सिरियल मनिटरमा छाप्छ।
कोडमा, तपाईंले GPIO परिभाषित गरेर सुरु गर्नुहुन्छ जुन पोटेन्टियोमिटर जोडिएको छ। यस मा पूर्वample, GPIO 4.सेटअप () मा, 115200 को बाउड दरमा एक सीरियल संचार सुरु गर्नुहोस्।
लुप () मा, potPin बाट एनालग इनपुट पढ्न analogRead() प्रकार्य प्रयोग गर्नुहोस्।
अन्तमा, सिरियल मनिटरमा potentiometer बाट पढिएको मानहरू छाप्नुहोस्।
तपाईंको ESP32 मा प्रदान गरिएको कोड अपलोड गर्नुहोस्। सुनिश्चित गर्नुहोस् कि तपाइँसँग सही बोर्ड र COM पोर्ट उपकरण मेनुमा चयन गरिएको छ।
Ex परीक्षण गर्दैample
कोड अपलोड गरिसकेपछि र ESP32 रिसेट बटन थिचेपछि, 115200 को बाउड दरमा सिरियल मनिटर खोल्नुहोस्। पोटेन्टियोमिटर घुमाउनुहोस् र मानहरू परिवर्तन भएको हेर्नुहोस्।तपाईंले प्राप्त गर्नुहुने अधिकतम मान ४०९५ र न्यूनतम मान ० हो।
लपेट्दै
यस लेखमा तपाईंले Arduino IDE सँग ESP32 प्रयोग गरेर एनालग इनपुटहरू कसरी पढ्ने भनेर सिक्नुभयो। संक्षेपमा:
- ESP32 DEVKIT V1 DOIT बोर्ड (30 पिन भएको संस्करण) मा 15 ADC पिनहरू छन् जुन तपाईंले एनालग इनपुटहरू पढ्न प्रयोग गर्न सक्नुहुन्छ।
- यी पिनहरूसँग 12 बिटको रिजोल्युसन छ, जसको मतलब तपाईंले 0 देखि 4095 सम्म मानहरू प्राप्त गर्न सक्नुहुन्छ।
- Arduino IDE मा मान पढ्नको लागि, तपाइँ केवल analogRead() प्रकार्य प्रयोग गर्नुहोस्।
- ESP32 ADC पिनहरूसँग रैखिक व्यवहार छैन। तपाईं सम्भवतः 0 र 0.1V बीच, वा 3.2 र 3.3V बीच भेद गर्न सक्षम हुनुहुने छैन। तपाईंले एडीसी पिनहरू प्रयोग गर्दा यो मनमा राख्न आवश्यक छ।
परियोजना 3 ESP32 PWM (एनालग आउटपुट)
यस ट्यूटोरियलमा हामी तपाईंलाई Arduino IDE प्रयोग गरेर ESP32 सँग PWM संकेतहरू कसरी उत्पन्न गर्ने भनेर देखाउनेछौं। पूर्वको रूपमाample हामी ESP32 को LED PWM नियन्त्रक प्रयोग गरेर LED घटाउने साधारण सर्किट निर्माण गर्नेछौं।ESP32 एलईडी PWM नियन्त्रक
ESP32 सँग 16 स्वतन्त्र च्यानलहरूसँग एलईडी PWM नियन्त्रक छ जुन विभिन्न गुणहरूसँग PWM संकेतहरू उत्पन्न गर्न कन्फिगर गर्न सकिन्छ।
Arduino IDE प्रयोग गरेर PWM सँग LED मधुरो गर्न तपाईंले पालना गर्नुपर्ने चरणहरू यहाँ छन्:
- पहिले, तपाईंले PWM च्यानल छनौट गर्न आवश्यक छ। त्यहाँ 16 देखि 0 सम्म 15 च्यानलहरू छन्।
- त्यसपछि, तपाईंले PWM संकेत आवृत्ति सेट गर्न आवश्यक छ। LED को लागि, 5000 Hz को फ्रिक्वेन्सी प्रयोग गर्न ठीक छ।
- तपाईंले सिग्नलको कर्तव्य चक्र रिजोल्युसन पनि सेट गर्न आवश्यक छ: तपाईंसँग 1 देखि 16 बिट सम्मको रिजोल्युसनहरू छन्। हामी 8-बिट रिजोल्युसन प्रयोग गर्नेछौं, जसको मतलब तपाईंले 0 देखि 255 सम्मको मान प्रयोग गरेर LED चमक नियन्त्रण गर्न सक्नुहुन्छ।
- अर्को, तपाईंले कुन GPIO वा GPIO हरूमा संकेत देखा पर्नेछ निर्दिष्ट गर्न आवश्यक छ। यसको लागि तपाइँ निम्न प्रकार्य प्रयोग गर्नुहुनेछ:
ledcAttachPin (GPIO, च्यानल)
यो प्रकार्यले दुई तर्कहरू स्वीकार गर्दछ। पहिलो GPIO हो जसले सिग्नल आउटपुट गर्नेछ, र दोस्रो च्यानल हो जसले सिग्नल उत्पन्न गर्नेछ। - अन्तमा, PWM प्रयोग गरेर एलईडी चमक नियन्त्रण गर्न, तपाइँ निम्न प्रकार्य प्रयोग गर्नुहुन्छ:
ledcWrite (च्यानल, dutycycle)
यस प्रकार्यले PWM संकेत उत्पन्न गर्ने च्यानल र कर्तव्य चक्रलाई तर्कको रूपमा स्वीकार गर्दछ।
भागहरू आवश्यक छ
यो ट्यूटोरियल पछ्याउन तपाईंलाई यी भागहरू चाहिन्छ:
- ESP32 DEVKIT V1 बोर्ड
- Mm मिमी एलईडी
- 220० ओम प्रतिरोधक
- ब्रेडबोर्ड
- जम्पर तारहरू
योजनाबद्ध
निम्न योजनाबद्ध रेखाचित्रमा जस्तै तपाईंको ESP32 मा एलईडी तार गर्नुहोस्। एलईडी GPIO मा जडान हुनुपर्छ 4.नोट: तपाईंले चाहेको कुनै पनि पिन प्रयोग गर्न सक्नुहुन्छ, जबसम्म यसले आउटपुटको रूपमा काम गर्न सक्छ। आउटपुटको रूपमा काम गर्न सक्ने सबै पिनहरू PWM पिनको रूपमा प्रयोग गर्न सकिन्छ। ESP32 GPIO को बारेमा थप जानकारीको लागि, पढ्नुहोस्: ESP32 पिनआउट सन्दर्भ: तपाईंले कुन GPIO पिनहरू प्रयोग गर्नुपर्छ?
कोड
हामी Arduino IDE प्रयोग गरेर ESP32 कार्यक्रम गर्नेछौं, त्यसैले अगाडि बढ्नु अघि ESP32 एड-अन स्थापना भएको सुनिश्चित गर्नुहोस्: (यदि तपाईंले यो चरण पहिले नै गरिसक्नुभएको छ भने, तपाईं अर्को चरणमा जान सक्नुहुन्छ।)
Arduino IDE मा ESP32 एड-अन स्थापना गर्दै
arduino IDE मा Project_3_ESP32_PWM.ino कोड खोल्नुहोस्तपाइँ LED जोडिएको पिन परिभाषित गरेर सुरु गर्नुहोस्। यस अवस्थामा LED GPIO 4 मा जोडिएको छ।
त्यसपछि, तपाईंले PWM संकेत गुणहरू सेट गर्नुभयो। तपाईंले 5000 हर्ट्जको फ्रिक्वेन्सी परिभाषित गर्नुहोस्, सिग्नल उत्पन्न गर्न च्यानल 0 छनौट गर्नुहोस्, र 8 बिटको रिजोल्युसन सेट गर्नुहोस्। तपाईले अन्य गुणहरू छनौट गर्न सक्नुहुन्छ, यी भन्दा फरक, विभिन्न PWM संकेतहरू उत्पन्न गर्न।
सेटअप() मा, तपाईंले LED PWM लाई पहिले परिभाषित गरेको गुणहरूसँग कन्फिगर गर्न आवश्यक छ ledcSetup() प्रकार्य प्रयोग गरेर जुन तर्कहरू, ledChannel, फ्रिक्वेन्सी, र रिजोल्युसनको रूपमा स्वीकार गर्दछ, निम्नानुसार:
अर्को, तपाईंले GPIO छनौट गर्न आवश्यक छ जुन तपाईंले सिग्नल प्राप्त गर्नुहुनेछ। त्यसका लागि ledcAttachPin() प्रकार्य प्रयोग गर्नुहोस् जसले तर्कको रूपमा स्वीकार गर्दछ जुन GPIO जहाँ तपाइँ सिग्नल प्राप्त गर्न चाहानुहुन्छ, र च्यानल जसले सिग्नल उत्पन्न गरिरहेको छ। यस मा पूर्वample, हामीले GPIO 4 सँग मेल खाने ledPin GPIO मा सिग्नल प्राप्त गर्नेछौं। सिग्नल उत्पन्न गर्ने च्यानल ledChannel हो, जुन च्यानल 0 सँग मेल खान्छ।
लूपमा, तपाईंले LED चमक बढाउनको लागि 0 र 255 बीचको कर्तव्य चक्र फरक पार्नुहुनेछ।
र त्यसपछि, 255 र 0 बीचको चमक घटाउन।
LED को चमक सेट गर्न को लागी, तपाईले केवल ledcWrite() प्रकार्य प्रयोग गर्न आवश्यक छ जसले सिग्नल उत्पन्न गर्ने च्यानल र कर्तव्य चक्रलाई तर्कको रूपमा स्वीकार गर्दछ।
हामीले ८-बिट रिजोल्युसन प्रयोग गरिरहँदा, शुल्क चक्र ० देखि २५५ सम्मको मान प्रयोग गरेर नियन्त्रण गरिनेछ। नोट गर्नुहोस् कि ledcWrite() प्रकार्यमा हामीले GPIO होइन, सिग्नल उत्पन्न गर्ने च्यानल प्रयोग गर्छौं।
Ex परीक्षण गर्दैample
आफ्नो ESP32 मा कोड अपलोड गर्नुहोस्। निश्चित गर्नुहोस् कि तपाइँसँग सही बोर्ड र COM पोर्ट चयन गरिएको छ। आफ्नो सर्किट हेर्नुहोस्। तपाईंसँग डिमर एलईडी हुनुपर्छ जसले चमक बढाउँछ र घटाउँछ।
परियोजना 4 ESP32 PIR मोशन सेन्सर
यस परियोजनाले PIR गति सेन्सर प्रयोग गरेर ESP32 सँग गति कसरी पत्ता लगाउने भनेर देखाउँछ। गति पत्ता लगाउँदा बजरले अलार्म बजाउनेछ, र प्रिसेट समय (जस्तै 4 सेकेन्ड) को लागि कुनै गति पत्ता नलागेको बेला अलार्म बन्द गर्नुहोस्।
HC-SR501 मोशन सेन्सरले कसरी काम गर्छ
.HC-SR501 सेन्सरको कार्य सिद्धान्त चलिरहेको वस्तुमा इन्फ्रारेड विकिरणको परिवर्तनमा आधारित छ। HC-SR501 सेन्सरद्वारा पत्ता लगाउनको लागि, वस्तुले दुई आवश्यकताहरू पूरा गर्नुपर्छ:
- वस्तुले इन्फ्रारेड तरिकाले उत्सर्जन गरिरहेको छ।
- वस्तु चलिरहेको वा हल्लिरहेको छ
त्यसैले:
यदि कुनै वस्तुले इन्फ्रारेड किरण उत्सर्जन गरिरहेको छ तर चलिरहेको छैन (जस्तै, एक व्यक्ति नहिँडी स्थिर रहन्छ), यो सेन्सरले पत्ता लगाउँदैन।
यदि कुनै वस्तु चलिरहेको छ तर इन्फ्रारेड किरण उत्सर्जन गरिरहेको छैन (जस्तै, रोबोट वा सवारी), यो सेन्सर द्वारा पत्ता लगाइएको छैन।
टाइमरहरू प्रस्तुत गर्दै
यस मा पूर्वample हामी टाइमरहरू पनि परिचय गर्नेछौं। हामी LED गति पत्ता लगाए पछि सेकेन्ड को पूर्वनिर्धारित संख्या को लागी रहन चाहन्छौं। तपाइँको कोड ब्लक गर्ने र तपाइँलाई निश्चित संख्याको सेकेन्डको लागि अरू केहि गर्न अनुमति नदिने delay() प्रकार्य प्रयोग गर्नुको सट्टा, हामीले टाइमर प्रयोग गर्नुपर्छ।ढिलाइ() प्रकार्य
तपाईं delay() प्रकार्यसँग परिचित हुनुपर्दछ किनकि यो व्यापक रूपमा प्रयोग गरिन्छ। यो प्रकार्य प्रयोग गर्न धेरै सीधा छ। यसले तर्कको रूपमा एकल int नम्बर स्वीकार गर्दछ।
यो संख्याले मिलिसेकेन्डमा कोडको अर्को लाइनमा जाँदासम्म प्रोग्रामले कुर्नु पर्ने समयलाई प्रतिनिधित्व गर्दछ।जब तपाइँ ढिलाइ गर्नुहुन्छ (1000) तपाइँको कार्यक्रम 1 सेकेन्डको लागि त्यो लाइनमा रोकिन्छ।
delay() अवरुद्ध प्रकार्य हो। अवरुद्ध कार्यहरूले कार्यक्रमलाई त्यो विशेष कार्य पूरा नभएसम्म अरू केही गर्नबाट रोक्छ। यदि तपाइँलाई एकै समयमा धेरै कार्यहरू हुन आवश्यक छ भने, तपाइँ ढिलाइ () प्रयोग गर्न सक्नुहुन्न।
धेरैजसो परियोजनाहरूको लागि तपाईंले ढिलाइहरू प्रयोग गर्नबाट जोगिनु पर्छ र यसको सट्टा टाइमरहरू प्रयोग गर्नुपर्छ।
मिलिस() प्रकार्य
millis() नामक प्रकार्य प्रयोग गरेर तपाईंले कार्यक्रम सुरु भएदेखि बितिसकेका मिलिसेकेन्डहरूको सङ्ख्या फर्काउन सक्नुहुन्छ।त्यो कार्य किन उपयोगी छ? किनभने केही गणित प्रयोग गरेर, तपाइँ सजिलैसँग तपाइँको कोड ब्लक नगरी कति समय बितिसकेको छ भनेर प्रमाणित गर्न सक्नुहुन्छ।
भागहरू आवश्यक छ
यो ट्यूटोरियल पछ्याउन तपाईंलाई निम्न भागहरू चाहिन्छ
- ESP32 DEVKIT V1 बोर्ड
- PIR गति सेन्सर (HC-SR501)
- सक्रिय बजर
- जम्पर तारहरू
- ब्रेडबोर्ड
योजनाबद्धनोट: कार्य भोल्युमtagHC-SR501 को e 5V हो। यसलाई पावर गर्न Vin पिन प्रयोग गर्नुहोस्।
कोड
यस ट्यूटोरियलको साथ अगाडि बढ्नु अघि तपाइँसँग तपाइँको Arduino IDE मा ESP32 एड-अन स्थापित हुनुपर्छ। Arduino IDE मा ESP32 स्थापना गर्न निम्न ट्यूटोरियलहरू मध्ये एउटा पछ्याउनुहोस्, यदि तपाईंले पहिले नै गर्नुभएको छैन भने। (यदि तपाईंले यो चरण पहिले नै गरिसक्नुभएको छ भने, तपाईं अर्को चरणमा जान सक्नुहुन्छ।)
Arduino IDE मा ESP32 एड-अन स्थापना गर्दै
arduino IDE मा Project_4_ESP32_PIR_Motion_Sensor.ino कोड खोल्नुहोस्।
प्रदर्शन
तपाईंको ESP32 बोर्डमा कोड अपलोड गर्नुहोस्। निश्चित गर्नुहोस् कि तपाइँसँग सही बोर्ड र COM पोर्ट चयन गरिएको छ। कोड सन्दर्भ चरणहरू अपलोड गर्नुहोस्।
115200 को बाउड दरमा सिरियल मनिटर खोल्नुहोस्।आफ्नो हात PIR सेन्सर अगाडि सार्नुहोस्। बजर खोल्नु पर्छ, र सन्देश "गति पत्ता लाग्यो! बजर अलार्म" भनेर सिरियल मनिटरमा छापिएको छ।
4 सेकेन्ड पछि बजर बन्द गर्नुपर्छ।
परियोजना ५ ESP5 स्विच Web सर्भर
यस परियोजनामा तपाईंले स्ट्यान्डअलोन सिर्जना गर्नुहुनेछ web ESP32 को साथ सर्भर जसले Arduino IDE प्रोग्रामिङ वातावरण प्रयोग गरेर आउटपुटहरू (दुई LEDs) नियन्त्रण गर्दछ। द web सर्भर मोबाइल उत्तरदायी छ र स्थानीय नेटवर्कमा ब्राउजरको रूपमा कुनै पनि उपकरणसँग पहुँच गर्न सकिन्छ। हामी तपाईंलाई कसरी सिर्जना गर्ने भनेर देखाउनेछौं web सर्भर र कसरी कोडले चरण-दर-चरण काम गर्दछ।
परियोजना सकियोview
सीधा परियोजनामा जानु अघि, यो हाम्रो के हो रूपरेखा महत्त्वपूर्ण छ web सर्भरले गर्नेछ, ताकि पछि चरणहरू पछ्याउन सजिलो हुन्छ।
- द web तपाईंले ESP32 GPIO 26 र GPIO 27 मा जडान भएका दुई LEDs नियन्त्रणहरू निर्माण गर्ने सर्भर;
- तपाईं ESP32 पहुँच गर्न सक्नुहुन्छ web स्थानीय नेटवर्कमा ब्राउजरमा ESP32 IP ठेगाना टाइप गरेर सर्भर;
- आफ्नो मा बटन क्लिक गरेर web सर्भर तपाइँ तुरुन्तै प्रत्येक एलईडी को स्थिति परिवर्तन गर्न सक्नुहुन्छ।
भागहरू आवश्यक छ
यस ट्यूटोरियलको लागि तपाईलाई निम्न भागहरू चाहिन्छ:
- ESP32 DEVKIT V1 बोर्ड
- 2x 5mm एलईडी
- 2x 200 ओम प्रतिरोधक
- ब्रेडबोर्ड
- जम्पर तारहरू
योजनाबद्ध
सर्किट निर्माण गरेर सुरु गर्नुहोस्। निम्न योजनाबद्ध रेखाचित्रमा देखाइए अनुसार दुईवटा LEDs ESP32 मा जडान गर्नुहोस् - एउटा LED GPIO 26 मा जडान गरिएको छ, र अर्को GPIO 27 मा।
नोट: हामी 32 पिनको साथ ESP36 DEVKIT DOIT बोर्ड प्रयोग गर्दैछौं। सर्किट जम्मा गर्नु अघि, तपाईंले प्रयोग गरिरहनुभएको बोर्डको लागि पिनआउट जाँच गर्नुहोस्।कोड
यहाँ हामी कोड प्रदान गर्दछौं जसले ESP32 सिर्जना गर्दछ web सर्भर। Project_5_ESP32_Switch _ कोड खोल्नुहोस्।Webarduino IDE मा _Server.ino, तर अहिले अपलोड नगर्नुहोस्। यसलाई तपाईंको लागि काम गर्नको लागि तपाईंले केही परिवर्तनहरू गर्न आवश्यक छ।
हामी Arduino IDE प्रयोग गरेर ESP32 कार्यक्रम गर्नेछौं, त्यसैले अगाडि बढ्नु अघि ESP32 एड-अन स्थापना भएको सुनिश्चित गर्नुहोस्: (यदि तपाईंले यो चरण पहिले नै गरिसक्नुभएको छ भने, तपाईं अर्को चरणमा जान सक्नुहुन्छ।)
Arduino IDE मा ESP32 एड-अन स्थापना गर्दै
तपाईंको नेटवर्क प्रमाणहरू सेट गर्दै
तपाईंले आफ्नो नेटवर्क प्रमाणहरूसँग निम्न लाइनहरू परिमार्जन गर्न आवश्यक छ: SSID र पासवर्ड। तपाईंले परिवर्तनहरू कहाँ गर्नुपर्छ भन्नेमा कोड राम्रोसँग टिप्पणी गरिएको छ।कोड अपलोड गर्दै
अब, तपाइँ कोड अपलोड गर्न सक्नुहुन्छ र र web सर्भरले तुरुन्तै काम गर्नेछ।
ESP32 मा कोड अपलोड गर्नका लागि निम्न चरणहरू पालना गर्नुहोस्:
- तपाईको कम्प्युटरमा तपाईको ESP32 बोर्ड प्लग गर्नुहोस्;
- Arduino IDE मा Tools > Board मा आफ्नो बोर्ड चयन गर्नुहोस् (हाम्रो अवस्थामा हामी ESP32 DEVKIT DOIT बोर्ड प्रयोग गर्दैछौं);
- उपकरण > पोर्टमा COM पोर्ट चयन गर्नुहोस्।
- Arduino IDE मा अपलोड बटन थिच्नुहोस् र कोड कम्पाइल र तपाईंको बोर्डमा अपलोड हुँदा केही सेकेन्ड पर्खनुहोस्।
- "अपलोड भयो" सन्देशको लागि पर्खनुहोस्।
ESP आईपी ठेगाना खोज्दै
कोड अपलोड गरेपछि, 115200 को बाउड दरमा सिरियल मनिटर खोल्नुहोस्।ESP32 EN बटन थिच्नुहोस् (रिसेट)। ESP32 Wi-Fi मा जडान हुन्छ, र सिरियल मनिटरमा ESP IP ठेगाना आउटपुट गर्दछ। त्यो IP ठेगाना प्रतिलिपि गर्नुहोस्, किनकि तपाईंलाई ESP32 पहुँच गर्न आवश्यक छ web सर्भर।
पहुँच गर्दै Web सर्भर
पहुँच गर्न web सर्भर, आफ्नो ब्राउजर खोल्नुहोस्, ESP32 IP ठेगाना टाँस्नुहोस्, र तपाईंले निम्न पृष्ठ देख्नुहुनेछ।
नोट: तपाईंको ब्राउजर र ESP32 एउटै LAN मा जडान हुनुपर्छ।यदि तपाइँ सिरियल मनिटरमा एक नजर राख्नुहुन्छ भने, तपाइँ पृष्ठभूमिमा के भइरहेको छ हेर्न सक्नुहुन्छ। ESP ले नयाँ क्लाइन्टबाट HTTP अनुरोध प्राप्त गर्दछ (यस अवस्थामा, तपाइँको ब्राउजर)।
तपाईले HTTP अनुरोधको बारेमा अन्य जानकारी पनि हेर्न सक्नुहुन्छ।
प्रदर्शन
अब तपाइँ परीक्षण गर्न सक्नुहुन्छ यदि तपाइँको web सर्भर ठीकसँग काम गरिरहेको छ। LEDs नियन्त्रण गर्न बटन क्लिक गर्नुहोस्।एकै समयमा, तपाइँ पृष्ठभूमिमा के भइरहेको छ हेर्नको लागि सिरियल मनिटरमा एक नजर लिन सक्नुहुन्छ। पूर्वका लागिampले, जब तपाईंले GPIO 26 अन गर्न बटन क्लिक गर्नुहुन्छ, ESP32 ले /26/on मा अनुरोध प्राप्त गर्दछ। URL.
जब ESP32 ले त्यो अनुरोध प्राप्त गर्छ, यसले GPIO 26 मा संलग्न LED लाई अन गर्छ र यसको स्थिति अपडेट गर्छ। web पृष्ठ।
GPIO 27 को लागि बटन समान रूपमा काम गर्दछ। यो ठीकसँग काम गरिरहेको छ कि जाँच गर्नुहोस्।
कोडले कसरी काम गर्छ
यस खण्डमा यसले कसरी काम गर्छ भनेर हेर्नको लागि कोडलाई नजिकबाट हेर्नेछ।
तपाईंले गर्नु पर्ने पहिलो कुरा भनेको वाइफाइ लाइब्रेरी समावेश गर्नु हो।पहिले नै उल्लेख गरिएझैं, तपाईले आफ्नो ssid र पासवर्डलाई डबल उद्धरण भित्र निम्न लाइनहरूमा घुसाउनु पर्छ।
त्यसपछि, तपाईंले आफ्नो सेट web पोर्ट 80 मा सर्भर।
निम्न रेखाले HTTP अनुरोधको हेडर भण्डारण गर्न एउटा चर सिर्जना गर्दछ:
अर्को, तपाइँ तपाइँको आउटपुटको हालको स्थिति भण्डारण गर्न सहायक चरहरू सिर्जना गर्नुहुन्छ। यदि तपाइँ थप आउटपुटहरू थप्न र यसको अवस्था बचत गर्न चाहनुहुन्छ भने, तपाइँले थप चरहरू सिर्जना गर्न आवश्यक छ।
तपाईंले आफ्नो प्रत्येक आउटपुटमा GPIO तोक्नुपर्छ। यहाँ हामी GPIO 26 र GPIO 27 प्रयोग गर्दैछौं। तपाईले कुनै पनि उपयुक्त GPIO प्रयोग गर्न सक्नुहुन्छ।
सेटअप ()
अब, सेटअप () मा जाऔं। पहिले, हामी डिबगिङ उद्देश्यका लागि 115200 को बाउड दरमा सीरियल संचार सुरु गर्छौं।तपाइँ तपाइँको GPIO लाई OUTPUTs को रूपमा परिभाषित गर्नुहोस् र तिनीहरूलाई कम मा सेट गर्नुहोस्।
निम्न रेखाहरूले WiFi.begin(ssid, password) सँग Wi-Fi जडान सुरु गर्छ, सफल जडानको लागि पर्खनुहोस् र सिरियल मनिटरमा ESP IP ठेगाना छाप्नुहोस्।
लुप()
loop() मा हामी नयाँ क्लाइन्टसँग जडान स्थापना गर्दा के हुन्छ भनेर प्रोग्राम गर्छौं web सर्भर।
ESP32 ले सधैं निम्न लाइनको साथ आगमन ग्राहकहरूको लागि सुनिरहेको छ:जब ग्राहकबाट अनुरोध प्राप्त हुन्छ, हामी आगमन डेटा बचत गर्नेछौं। जबसम्म ग्राहक जडान रहन्छ तबसम्म निम्न लूप चलिरहेको हुन्छ। हामी कोडको निम्न भाग परिवर्तन गर्न सिफारिस गर्दैनौं जबसम्म तपाइँ तपाइँ के गर्दै हुनुहुन्छ भन्ने कुरा थाहा छैन।
if र else कथनहरूको अर्को खण्डले तपाइँको कुन बटन थिचिएको थियो भनेर जाँच गर्दछ web पृष्ठ, र तदनुसार आउटपुटहरू नियन्त्रण गर्दछ। हामीले पहिले हेरेका छौं, हामी फरक-फरकमा अनुरोध गर्छौं URLबटन थिचिएको आधारमा।
पूर्वका लागिampयदि तपाईंले GPIO 26 ON बटन थिच्नुभएको छ भने, ESP32 ले /26/ON मा अनुरोध प्राप्त गर्दछ। URL (हामी सिरियल मनिटरमा HTTP हेडरमा त्यो जानकारी देख्न सक्छौं)। त्यसैले, हामी हेडरमा GET /26/on अभिव्यक्ति छ कि छैन भनेर जाँच गर्न सक्छौं। यदि यसमा छ भने, हामी output26state चरलाई ON मा परिवर्तन गर्छौं, र ESP32 ले LED अन गर्छ।
यो अन्य बटन को लागी समान काम गर्दछ। त्यसोभए, यदि तपाइँ थप आउटपुटहरू थप्न चाहनुहुन्छ भने, तपाइँ तिनीहरूलाई समावेश गर्न कोडको यो भाग परिमार्जन गर्नुपर्छ।
HTML प्रदर्शन गर्दै web पृष्ठ
तपाईले गर्नु पर्ने अर्को कुरा, सिर्जना गर्नु हो web पृष्ठ। ESP32 ले तपाइँको ब्राउजरमा केहि HTML कोड निर्माण गर्नको लागि प्रतिक्रिया पठाउनेछ web पृष्ठ।
द web यो अभिव्यक्त client.println() प्रयोग गरेर ग्राहकलाई पृष्ठ पठाइन्छ। तपाईले ग्राहकलाई तर्कको रूपमा पठाउन चाहनुभएको कुरा प्रविष्ट गर्नुपर्छ।
हामीले पठाउनु पर्ने पहिलो कुरा सधैं निम्न रेखा हो, जसले संकेत गर्दछ कि हामीले HTML पठाउँदैछौं।त्यसपछि, निम्न रेखा बनाउँछ web पृष्ठ कुनै पनि मा उत्तरदायी web ब्राउजर।
र फेभिकनमा अनुरोधहरू रोक्न निम्न प्रयोग गरिन्छ। - तपाईंले यो लाइनको बारेमा चिन्ता लिनु पर्दैन।
स्टाइल गर्दै Web पृष्ठ
अर्को, बटनहरू र स्टाइल गर्न हामीसँग केही CSS पाठ छ web पृष्ठ उपस्थिति।
हामी हेल्भेटिका फन्ट छनोट गर्छौं, ब्लकको रूपमा देखाइने सामग्रीलाई परिभाषित गर्छौं र केन्द्रमा पङ्क्तिबद्ध गर्छौं।हामी हाम्रा बटनहरूलाई #4CAF50 रङ, बिना बोर्डर, सेतो रङमा पाठ, र यो प्याडिङ: 16px 40px सँग स्टाइल गर्छौं। हामीले पाठ-सजावटलाई कुनै पनि सेट गर्दैनौं, फन्ट साइज, मार्जिन, र कर्सरलाई सूचकमा परिभाषित गर्छौं।
हामीले दोस्रो बटनको लागि शैली पनि परिभाषित गर्छौं, हामीले पहिले परिभाषित गरेका बटनका सबै गुणहरूसँग, तर फरक रङसँग। यो बन्द बटनको लागि शैली हुनेछ।
सेटिङ Web पृष्ठको पहिलो शीर्षक
अर्को लाइनमा तपाइँ तपाइँको पहिलो शीर्षक सेट गर्न सक्नुहुन्छ web पृष्ठ। यहाँ हामीसँग “ESP32” छ। Web "सर्भर", तर तपाईंले यो पाठलाई आफूले चाहेको जस्तो परिवर्तन गर्न सक्नुहुन्छ।बटनहरू र सम्बन्धित राज्य प्रदर्शन गर्दै
त्यसपछि, तपाईंले GPIO 26 हालको अवस्था देखाउन एउटा अनुच्छेद लेख्नुहुन्छ। तपाईले देख्न सक्नुहुने रूपमा हामीले output26State चर प्रयोग गर्छौं, ताकि यो चर परिवर्तन हुँदा राज्य तुरुन्तै अपडेट हुन्छ।त्यसपछि, हामी GPIO को हालको अवस्थाको आधारमा अन वा अफ बटन प्रदर्शन गर्छौं। यदि GPIO को हालको अवस्था बन्द छ भने, हामी अन बटन देखाउँछौं, यदि होइन भने, हामी अफ बटन प्रदर्शन गर्छौं।
हामी GPIO 27 को लागि उही प्रक्रिया प्रयोग गर्छौं।
जडान बन्द गर्दै
अन्तमा, जब प्रतिक्रिया समाप्त हुन्छ, हामी हेडर चर खाली गर्छौं, र client.stop() को साथ क्लाइन्टसँग जडान रोक्छौं।
लपेट्दै
यस ट्यूटोरियलमा हामीले तपाईंलाई कसरी निर्माण गर्ने भनेर देख्यौं web ESP32 संग सर्भर। हामीले तपाइँलाई एक साधारण पूर्व देखाउनुभएको छample जसले दुई एलईडीहरू नियन्त्रण गर्दछ, तर विचार भनेको ती एलईडीहरूलाई रिले, वा तपाईंले नियन्त्रण गर्न चाहनुभएको कुनै अन्य आउटपुटको साथ बदल्नु हो।
परियोजना ६ RGB LED Web सर्भर
यस परियोजनामा हामी तपाइँलाई ESP32 बोर्डको प्रयोग गरेर टाढाबाट कसरी RGB LED नियन्त्रण गर्ने भनेर देखाउनेछौं। web रङ पिकरको साथ सर्भर।
परियोजना सकियोview
सुरु गर्नु अघि, यो परियोजना कसरी काम गर्छ हेरौं:
- ESP32 web सर्भरले रङ पिकर देखाउँछ।
- जब तपाईंले रङ छनौट गर्नुहुन्छ, तपाईंको ब्राउजरले a मा अनुरोध गर्दछ URL जसमा चयन गरिएको रङको R, G, र B प्यारामिटरहरू समावेश छन्।
- तपाईंको ESP32 ले अनुरोध प्राप्त गर्दछ र प्रत्येक रङ प्यारामिटरको लागि मान विभाजित गर्दछ।
- त्यसपछि, यसले RGB LED लाई नियन्त्रण गर्ने GPIO लाई सम्बन्धित मानको साथ PWM सिग्नल पठाउँछ।
RGB LED ले कसरी काम गर्छ?
साझा क्याथोड RGB LED मा, सबै तीन LED ले नकारात्मक जडान (क्याथोड) साझा गर्दछ। किटमा समावेश गरिएका सबै साझा-क्याथोड RGB हुन्।कसरी विभिन्न रंगहरू सिर्जना गर्ने?
एक RGB LED को साथ तपाईले, निस्सन्देह, रातो, हरियो र नीलो बत्ती उत्पादन गर्न सक्नुहुन्छ, र प्रत्येक LED को तीव्रता कन्फिगर गरेर, तपाईले अन्य रंगहरू पनि उत्पादन गर्न सक्नुहुन्छ।
पूर्वका लागिampले, विशुद्ध नीलो प्रकाश उत्पादन गर्न, तपाईंले नीलो एलईडीलाई उच्चतम तीव्रतामा र हरियो र रातो एलईडीहरूलाई सबैभन्दा कम तीव्रतामा सेट गर्नुहुनेछ। सेतो प्रकाशको लागि, तपाईंले सबै तीनवटा एलईडीहरूलाई उच्चतम तीव्रतामा सेट गर्नुहुनेछ।
रङहरू मिसाउँदै
अन्य रङहरू उत्पादन गर्न, तपाईं विभिन्न तीव्रताहरूमा तीन रङहरू संयोजन गर्न सक्नुहुन्छ। प्रत्येक एलईडीको तीव्रता समायोजन गर्न तपाईंले PWM संकेत प्रयोग गर्न सक्नुहुन्छ।
एलईडीहरू एकअर्काको धेरै नजिक भएकाले, हाम्रा आँखाहरूले तीनवटा रङहरू व्यक्तिगत रूपमा नभई रंगहरूको संयोजनको परिणाम देख्छन्।
रङहरू कसरी संयोजन गर्ने भन्ने बारे एक विचारको लागि, निम्न चार्टमा हेर्नुहोस्।
यो सबैभन्दा सरल रङ मिक्सिङ चार्ट हो, तर यसले तपाईंलाई कसरी काम गर्छ र विभिन्न रङहरू कसरी उत्पादन गर्ने भन्ने कुरा दिन्छ।भागहरू आवश्यक छ
यस परियोजनाको लागि तपाईंलाई निम्न भागहरू चाहिन्छ:
- ESP32 DEVKIT V1 बोर्ड
- आरजीबी एलईडी
- 3x 220 ओम प्रतिरोधकहरू
- जम्पर तारहरू
- ब्रेडबोर्ड
योजनाबद्धकोड
हामी Arduino IDE प्रयोग गरेर ESP32 कार्यक्रम गर्नेछौं, त्यसैले अगाडि बढ्नु अघि ESP32 एड-अन स्थापना भएको सुनिश्चित गर्नुहोस्: (यदि तपाईंले यो चरण पहिले नै गरिसक्नुभएको छ भने, तपाईं अर्को चरणमा जान सक्नुहुन्छ।)
- Arduino IDE मा ESP32 एड-अन स्थापना गर्दै
सर्किट संयोजन पछि, कोड खोल्नुहोस्
परियोजना_६_RGB_LED_Webarduino IDE मा _Server.ino।
कोड अपलोड गर्नु अघि, आफ्नो नेटवर्क प्रमाणहरू सम्मिलित गर्न नबिर्सनुहोस् ताकि ESP तपाईंको स्थानीय नेटवर्कमा जडान हुन सक्छ।कोडले कसरी काम गर्छ
ESP32 स्केचले WiFi.h पुस्तकालय प्रयोग गर्दछ।निम्न रेखाहरूले अनुरोधबाट R, G, र B प्यारामिटरहरू समात्न स्ट्रिङ चरहरू परिभाषित गर्दछ।
अर्को चार चरहरू पछि HTTP अनुरोध डिकोड गर्न प्रयोग गरिन्छ।
GPIO को लागि तीन चरहरू सिर्जना गर्नुहोस् जसले स्ट्रिप R, G, र B प्यारामिटरहरू नियन्त्रण गर्नेछ। यस अवस्थामा हामी GPIO 13, GPIO 12, र GPIO 14 प्रयोग गर्दैछौं।
यी GPIOs लाई PWM संकेतहरू आउटपुट गर्न आवश्यक छ, त्यसैले हामीले पहिले PWM गुणहरू कन्फिगर गर्न आवश्यक छ। PWM सिग्नल फ्रिक्वेन्सी 5000 Hz मा सेट गर्नुहोस्। त्यसपछि, प्रत्येक रङको लागि PWM च्यानल जोड्नुहोस्
र अन्तमा, PWM च्यानलहरूको रिजोल्युसन 8-बिटमा सेट गर्नुहोस्
सेटअप (), PWM च्यानलहरूमा PWM गुणहरू असाइन गर्नुहोस्
PWM च्यानलहरू सम्बन्धित GPIO मा संलग्न गर्नुहोस्
निम्न कोड खण्डले तपाईंको मा रङ पिकर प्रदर्शन गर्दछ web पृष्ठ र तपाईंले छनौट गर्नुभएको रङको आधारमा अनुरोध गर्दछ।
जब तपाइँ रङ छान्नुहुन्छ, तपाइँ निम्न ढाँचाको साथ अनुरोध प्राप्त गर्नुहुन्छ।
त्यसोभए, हामीले R, G, र B प्यारामिटरहरू प्राप्त गर्न यो स्ट्रिङ विभाजित गर्न आवश्यक छ। प्यारामिटरहरू redString, greenString, र blueString चरहरूमा सुरक्षित हुन्छन् र 0 र 255 बीचको मानहरू हुन सक्छन्।ESP32 सँग स्ट्रिप नियन्त्रण गर्न, HTTP बाट डिकोड गरिएका मानहरूसँग PWM संकेतहरू उत्पन्न गर्न ledcWrite() प्रकार्य प्रयोग गर्नुहोस्। अनुरोध।
नोट: ESP32 को साथ PWM को बारे मा थप जान्नुहोस्: Project 3 ESP32 PWM (एनालॉग आउटपुट)
ESP8266 को साथ पट्टी नियन्त्रण गर्न, हामीले मात्र प्रयोग गर्न आवश्यक छ
HTPP अनुरोधबाट डिकोड गरिएका मानहरूसँग PWM संकेतहरू उत्पन्न गर्न analogWrite() प्रकार्य।
analogWrite(redPin, redString.toInt());
analogWrite(greenPin, greenString.toInt());
analogWrite(bluePin, blueString.toInt())
किनभने हामीले स्ट्रिङ भेरिएबलमा मानहरू पाउँछौं, हामीले toInt() विधि प्रयोग गरेर तिनीहरूलाई पूर्णांकमा रूपान्तरण गर्न आवश्यक छ।
प्रदर्शन
तपाईंको नेटवर्क प्रमाणहरू सम्मिलित गरेपछि, दायाँ बोर्ड र COM पोर्ट चयन गर्नुहोस् र तपाईंको ESP32 मा कोड अपलोड गर्नुहोस्। कोड सन्दर्भ चरणहरू अपलोड गर्नुहोस्।
अपलोड गरेपछि, 115200 को बाउड दरमा सिरियल मनिटर खोल्नुहोस् र ESP सक्षम/रिसेट बटन थिच्नुहोस्। तपाईंले बोर्ड आईपी ठेगाना प्राप्त गर्नुपर्छ।आफ्नो ब्राउजर खोल्नुहोस् र ESP IP ठेगाना घुसाउनुहोस्। अब, RGB LED को लागि रङ छनौट गर्न रङ पिकर प्रयोग गर्नुहोस्।
त्यसपछि, रंग प्रभाव पार्नको लागि तपाईंले "रङ परिवर्तन गर्नुहोस्" बटन थिच्नु पर्छ।RGB LED बन्द गर्न कालो रङ चयन गर्नुहोस्।
बलियो रङहरू (रङ पिकरको शीर्षमा), ती हुन् जसले राम्रो परिणामहरू उत्पादन गर्नेछ।
परियोजना ७ ESP7 रिले Web सर्भर
ESP32 को साथ रिले प्रयोग गर्नु AC घरेलु उपकरणहरू टाढाबाट नियन्त्रण गर्ने उत्कृष्ट तरिका हो। यो ट्यूटोरियलले ESP32 सँग रिले मोड्युल कसरी नियन्त्रण गर्ने भनेर बताउँछ।
हामी कसरी रिले मोड्युलले काम गर्छ, कसरी रिलेलाई ESP32 मा जडान गर्ने र एउटा निर्माण गर्ने भनेर हेर्नेछौं। web सर्भर टाढैबाट रिले नियन्त्रण गर्न।
रिले प्रस्तुत गर्दै
रिले एक विद्युतीय रूपमा संचालित स्विच हो र कुनै अन्य स्विच जस्तै, यो चालू वा बन्द गर्न सकिन्छ, वर्तमान मार्फत जान वा नगर्न। यसलाई कम मात्रामा नियन्त्रण गर्न सकिन्छtages, ESP3.3 GPIOs द्वारा प्रदान गरिएको 32V जस्तै र हामीलाई उच्च मात्रा नियन्त्रण गर्न अनुमति दिन्छ।tages जस्तै 12V, 24V वा mains voltage (युरोपमा 230V र अमेरिकामा 120V)।बायाँ छेउमा, उच्च भोल्युम जडान गर्न तीनवटा सकेटहरूको दुई सेटहरू छन्tages, र दायाँ छेउमा पिनहरू (low-voltage) ESP32 GPIO मा जडान गर्नुहोस्।
मुख्य भोल्युमtagई जडानहरुअघिल्लो फोटोमा देखाइएको रिले मोड्युलमा दुई कनेक्टरहरू छन्, प्रत्येकमा तीनवटा सकेटहरू छन्: सामान्य (COM), सामान्य रूपमा बन्द (NC), र सामान्यतया खुला (NO)।
- COM: तपाईंले नियन्त्रण गर्न चाहनुभएको वर्तमान जडान गर्नुहोस् (मुख्य खण्डtage)
- NC (सामान्य रूपमा बन्द): सामान्य रूपमा बन्द कन्फिगरेसन प्रयोग गरिन्छ जब तपाईं पूर्वनिर्धारित रूपमा रिले बन्द गर्न चाहनुहुन्छ। NCहरू COM पिनहरू जडान भएका छन्, यसको अर्थ तपाईंले सर्किट खोल्न र वर्तमान प्रवाह रोक्नको लागि ESP32 बाट रिले मोड्युलमा सिग्नल पठाउनुभएन भने वर्तमान प्रवाह भइरहेको छ।
- NO (सामान्य रूपमा खोल्नुहोस्): सामान्य रूपमा खुला कन्फिगरेसनले अर्को तरिकाले काम गर्दछ: NO र COM पिनहरू बीच कुनै जडान छैन, त्यसैले तपाईंले ESP32 बाट सर्किट बन्द गर्नको लागि संकेत पठाउनुभएन भने सर्किट टुटेको छ।
पिन नियन्त्रणकम मात्राtage साइडमा चार पिनको सेट र तीन पिनको सेट हुन्छ। पहिलो सेटमा मोड्युललाई पावर अप गर्न VCC र GND, र तल र शीर्ष रिलेहरू नियन्त्रण गर्नको लागि इनपुट 1 (IN1) र इनपुट 2 (IN2) समावेश हुन्छ।
यदि तपाईंको रिले मोड्युलमा एउटा मात्र च्यानल छ भने, तपाईंसँग एउटा मात्र IN पिन हुनेछ। यदि तपाईंसँग चार च्यानलहरू छन् भने, तपाईंसँग चार IN पिनहरू छन्, र यस्तै।
तपाईंले IN पिनहरूमा पठाउनुहुने सङ्केतले रिले सक्रिय छ वा छैन भनी निर्धारण गर्छ। इनपुट लगभग 2V तल जाँदा रिले ट्रिगर हुन्छ। यसको मतलब तपाईंसँग निम्न परिदृश्यहरू हुनेछन्:
- सामान्यतया बन्द कन्फिगरेसन (NC):
- उच्च संकेत - वर्तमान प्रवाह भइरहेको छ
- कम संकेत - वर्तमान प्रवाह भइरहेको छैन
- सामान्यतया खुला कन्फिगरेसन (NO):
- उच्च संकेत - वर्तमान प्रवाह भइरहेको छैन
- कम संकेत - प्रवाह मा वर्तमान
तपाईँले सामान्य रूपमा बन्द कन्फिगरेसन प्रयोग गर्नुपर्छ जब वर्तमान धेरै पटक प्रवाह हुनुपर्छ, र तपाइँ यसलाई कहिलेकाहीं रोक्न चाहनुहुन्छ।
जब तपाइँ कहिले काँही वर्तमान प्रवाह गर्न चाहनुहुन्छ भने सामान्यतया खुला कन्फिगरेसन प्रयोग गर्नुहोस् (पूर्वको लागिample, al अन गर्नुहोस्amp कहिलेकाहीं)।
विद्युत आपूर्ति चयनपिनको दोस्रो सेटमा GND, VCC, र JD-VCC पिनहरू हुन्छन्।
JD-VCC पिनले रिलेको विद्युत चुम्बकलाई शक्ति दिन्छ। ध्यान दिनुहोस् कि मोड्युलमा VCC र JD-VCC पिनहरू जोड्ने जम्पर क्याप छ; यहाँ देखाइएको एउटा पहेंलो छ, तर तपाईंको फरक रंग हुन सक्छ।
जम्पर क्याप अन भएकोमा, VCC र JD-VCC पिनहरू जोडिएका छन्। यसको मतलब रिले इलेक्ट्रोम्याग्नेट प्रत्यक्ष रूपमा ESP32 पावर पिनबाट संचालित हुन्छ, त्यसैले रिले मोड्युल र ESP32 सर्किटहरू शारीरिक रूपमा एकअर्काबाट अलग हुँदैनन्।
जम्पर क्याप बिना, तपाईले JD-VCC पिन मार्फत रिलेको इलेक्ट्रोम्याग्नेटलाई पावर गर्नको लागि एक स्वतन्त्र शक्ति स्रोत प्रदान गर्न आवश्यक छ। त्यो कन्फिगरेसनले भौतिक रूपमा ESP32 बाट मोड्युलको बिल्ट-इन ओप्टोकपलरको साथ रिलेहरूलाई अलग गर्छ, जसले विद्युतीय स्पाइकको अवस्थामा ESP32 लाई क्षति हुनबाट रोक्छ।
योजनाबद्धचेतावनी: उच्च मात्रा को प्रयोगtage बिजुली आपूर्तिले गम्भीर चोट पुर्याउन सक्छ।
त्यसैले, उच्च आपूर्ति भोल्युमको सट्टा 5mm LEDs प्रयोग गरिन्छtage प्रयोगमा बल्बहरू। यदि तपाईं mains vol. सँग परिचित हुनुहुन्न भनेtage कसैलाई सोध्नुहोस् जसले तपाईंलाई मद्दत गर्न चाहन्छ। ESP प्रोग्रामिङ गर्दा वा तपाईंको सर्किट तारिङ गर्दा सबै कुरा मुख्य भोल्युमबाट विच्छेद भएको सुनिश्चित गर्नुहोस्tage.ESP32 को लागि पुस्तकालय स्थापना गर्दै
यो निर्माण गर्न web सर्भरमा, हामी ESPAsync प्रयोग गर्छौंWebसर्भर लाइब्रेरी र AsyncTCP लाइब्रेरी।
ESPAsync स्थापना गर्दैWebसर्भर लाइब्रेरी
स्थापना गर्न अर्को चरणहरू पालना गर्नुहोस् ESPAsyncWebसर्भर पुस्तकालय:
- ESPAsync डाउनलोड गर्न यहाँ क्लिक गर्नुहोस्।Webसर्भर लाइब्रेरी। तपाईंसँग हुनुपर्छ
तपाईंको डाउनलोड फोल्डरमा .zip फोल्डर - .zip फोल्डर अनजिप गर्नुहोस् र तपाईंले ESPAsync पाउनुहुनेछWebसर्भर-मास्टर फोल्डर
- ESPAsync बाट आफ्नो फोल्डरको नाम बदल्नुहोस्Webसर्भर-मास्टर देखि ESPAsync सम्मWebसर्भर
- ESPAsync सार्नुहोस्Webतपाईंको Arduino IDE स्थापना पुस्तकालय फोल्डरमा सर्भर फोल्डर
वैकल्पिक रूपमा, तपाईंको Arduino IDE मा, तपाईं स्केच > समावेश गर्न सक्नुहुन्छ
पुस्तकालय > .ZIP पुस्तकालय थप्नुहोस्... र तपाईंले भर्खरै डाउनलोड गर्नुभएको पुस्तकालय चयन गर्नुहोस्।
ESP32 को लागि AsyncTCP लाइब्रेरी स्थापना गर्दै
द ESPAsyncWebसर्भर पुस्तकालय आवश्यक छ एसिन्क्रोनस टीसीपी पुस्तकालय काम गर्न। पालना गर्नुहोस्
त्यो पुस्तकालय स्थापना गर्न अर्को चरणहरू:
- AsyncTCP पुस्तकालय डाउनलोड गर्न यहाँ क्लिक गर्नुहोस्। तपाईँको डाउनलोड फोल्डरमा .zip फोल्डर हुनुपर्छ
- .zip फोल्डर अनजिप गर्नुहोस् र तपाईंले AsyncTCP-master फोल्डर प्राप्त गर्नुपर्छ
1. आफ्नो फोल्डरलाई AsyncTCP-master बाट AsyncTCP मा पुन: नामाकरण गर्नुहोस्
3. AsyncTCP फोल्डरलाई तपाईंको Arduino IDE स्थापना पुस्तकालय फोल्डरमा सार्नुहोस्
4. अन्तमा, आफ्नो Arduino IDE पुन: खोल्नुहोस्
वैकल्पिक रूपमा, तपाईंको Arduino IDE मा, तपाईं स्केच > समावेश गर्न सक्नुहुन्छ
पुस्तकालय > .ZIP पुस्तकालय थप्नुहोस्... र तपाईंले भर्खरै डाउनलोड गर्नुभएको पुस्तकालय चयन गर्नुहोस्।
कोड
हामी Arduino IDE प्रयोग गरेर ESP32 कार्यक्रम गर्नेछौं, त्यसैले अगाडि बढ्नु अघि ESP32 एड-अन स्थापना भएको सुनिश्चित गर्नुहोस्: (यदि तपाईंले यो चरण पहिले नै गरिसक्नुभएको छ भने, तपाईं अर्को चरणमा जान सक्नुहुन्छ।)
Arduino IDE मा ESP32 एड-अन स्थापना गर्दै
आवश्यक पुस्तकालयहरू स्थापना गरेपछि, Project_7_ESP32_Relay_ कोड खोल्नुहोस्।Webarduino IDE मा _Server.ino।
कोड अपलोड गर्नु अघि, आफ्नो नेटवर्क प्रमाणहरू सम्मिलित गर्न नबिर्सनुहोस् ताकि ESP तपाईंको स्थानीय नेटवर्कमा जडान हुन सक्छ।प्रदर्शन
आवश्यक परिवर्तनहरू गरेपछि, कोडलाई तपाईंको ESP32 मा अपलोड गर्नुहोस्। कोड सन्दर्भ चरणहरू अपलोड गर्नुहोस्।
115200 को बाउड दरमा सिरियल मनिटर खोल्नुहोस् र यसको आईपी ठेगाना प्राप्त गर्न ESP32 EN बटन थिच्नुहोस्। त्यसपछि, आफ्नो स्थानीय नेटवर्कमा ब्राउजर खोल्नुहोस् र पहुँच प्राप्त गर्न ESP32 आईपी ठेगाना टाइप गर्नुहोस्। web सर्भर।
115200 को बाउड दरमा सिरियल मनिटर खोल्नुहोस् र यसको आईपी ठेगाना प्राप्त गर्न ESP32 EN बटन थिच्नुहोस्। त्यसपछि, आफ्नो स्थानीय नेटवर्कमा ब्राउजर खोल्नुहोस् र पहुँच प्राप्त गर्न ESP32 आईपी ठेगाना टाइप गर्नुहोस्। web सर्भर।नोट: तपाईंको ब्राउजर र ESP32 एउटै LAN मा जडान हुनुपर्छ।
तपाईंले आफ्नो कोडमा परिभाषित गर्नुभएको रिलेहरूको सङ्ख्याको रूपमा दुईवटा बटनहरूसँग निम्नानुसार केही प्राप्त गर्नुपर्छ।अब, तपाईं आफ्नो स्मार्टफोन प्रयोग गरेर आफ्नो रिले नियन्त्रण गर्न बटन प्रयोग गर्न सक्नुहुन्छ।
परियोजना_८_आउटपुट_स्टेट_सिंक्रोनाइजेसन_ Web_सर्भर
यस परियोजनाले ESP32 वा ESP8266 आउटपुटहरू कसरी नियन्त्रण गर्ने भनेर देखाउँछ a web सर्भर र भौतिक बटन एकै साथ। आउटपुट स्थिति मा अद्यावधिक गरिएको छ web पृष्ठ चाहे यो भौतिक बटन मार्फत परिवर्तन गरिएको हो वा web सर्भर।
परियोजना सकियोview
परियोजनाले कसरी काम गर्छ भनेर द्रुत रूपमा हेरौं।ESP32 वा ESP8266 ले एक होस्ट गर्दछ web सर्भर जसले तपाईंलाई आउटपुटको अवस्था नियन्त्रण गर्न अनुमति दिन्छ;
- हालको आउटपुट स्थिति मा प्रदर्शित हुन्छ web सर्भर;
- ESP एक भौतिक पुशबटनसँग पनि जोडिएको छ जसले समान आउटपुटलाई नियन्त्रण गर्दछ;
- यदि तपाईंले भौतिक puhsbutton प्रयोग गरेर आउटपुट स्थिति परिवर्तन गर्नुभयो भने, यसको हालको अवस्था पनि मा अद्यावधिक हुन्छ web सर्भर।
संक्षेपमा, यो परियोजनाले तपाईंलाई एउटै आउटपुट प्रयोग गरेर नियन्त्रण गर्न अनुमति दिन्छ web सर्भर र एक साथ एक पुश बटन। जब पनि आउटपुट अवस्था परिवर्तन हुन्छ, web सर्भर अद्यावधिक गरिएको छ।
भागहरू आवश्यक छ
यहाँ सर्किट निर्माण गर्न को लागी आवश्यक भागहरु को एक सूची छ:
- ESP32 DEVKIT V1 बोर्ड
- 5 मिमी एलईडी
- 220Ohm प्रतिरोधक
- पुशबटन
- 10k ओम प्रतिरोधक
- ब्रेडबोर्ड
- जम्पर तारहरू
योजनाबद्धESP32 को लागि पुस्तकालय स्थापना गर्दै
यो निर्माण गर्न web सर्भरमा, हामी ESPAsync प्रयोग गर्छौंWebसर्भर लाइब्रेरी र AsyncTCP लाइब्रेरी। (यदि तपाईंले यो चरण पहिले नै गरिसक्नुभएको छ भने, तपाईं अर्को चरणमा जान सक्नुहुन्छ।)
ESPAsync स्थापना गर्दैWebसर्भर लाइब्रेरी
ESPAsync स्थापना गर्न अर्को चरणहरू पालना गर्नुहोस्Webसर्भर लाइब्रेरी:
- ESPAsync डाउनलोड गर्न यहाँ क्लिक गर्नुहोस्।Webसर्भर लाइब्रेरी। तपाईंसँग हुनुपर्छ
तपाईंको डाउनलोड फोल्डरमा .zip फोल्डर - .zip फोल्डर अनजिप गर्नुहोस् र तपाईंले ESPAsync पाउनुहुनेछWebसर्भर-मास्टर फोल्डर
- ESPAsync बाट आफ्नो फोल्डरको नाम बदल्नुहोस्Webसर्भर-मास्टर देखि ESPAsync सम्मWebसर्भर
- ESPAsync सार्नुहोस्Webतपाईंको Arduino IDE स्थापना पुस्तकालय फोल्डरमा सर्भर फोल्डर
वैकल्पिक रूपमा, तपाईंको Arduino IDE मा, तपाईं स्केच > समावेश गर्न सक्नुहुन्छ
पुस्तकालय > .ZIP पुस्तकालय थप्नुहोस्... र तपाईंले भर्खरै डाउनलोड गर्नुभएको पुस्तकालय चयन गर्नुहोस्।
ESP32 को लागि AsyncTCP लाइब्रेरी स्थापना गर्दै
ESPAsyncWebसर्भर लाइब्रेरीलाई काम गर्न AsyncTCP लाइब्रेरी आवश्यक पर्दछ। त्यो लाइब्रेरी स्थापना गर्न निम्न चरणहरू पालना गर्नुहोस्:
- AsyncTCP पुस्तकालय डाउनलोड गर्न यहाँ क्लिक गर्नुहोस्। तपाईँको डाउनलोड फोल्डरमा .zip फोल्डर हुनुपर्छ
- .zip फोल्डर अनजिप गर्नुहोस् र तपाईंले AsyncTCP-master फोल्डर प्राप्त गर्नुपर्छ
- आफ्नो फोल्डरलाई AsyncTCP-master बाट AsyncTCP मा पुन: नामाकरण गर्नुहोस्
- AsyncTCP फोल्डरलाई तपाईंको Arduino IDE स्थापना पुस्तकालय फोल्डरमा सार्नुहोस्
- अन्तमा, आफ्नो Arduino IDE पुन: खोल्नुहोस्
वैकल्पिक रूपमा, तपाईंको Arduino IDE मा, तपाईं स्केच > समावेश गर्न सक्नुहुन्छ
पुस्तकालय > .ZIP पुस्तकालय थप्नुहोस्... र तपाईंले भर्खरै डाउनलोड गर्नुभएको पुस्तकालय चयन गर्नुहोस्।
कोड
हामी Arduino IDE प्रयोग गरेर ESP32 कार्यक्रम गर्नेछौं, त्यसैले अगाडि बढ्नु अघि ESP32 एड-अन स्थापना भएको सुनिश्चित गर्नुहोस्: (यदि तपाईंले यो चरण पहिले नै गरिसक्नुभएको छ भने, तपाईं अर्को चरणमा जान सक्नुहुन्छ।)
Arduino IDE मा ESP32 एड-अन स्थापना गर्दै
आवश्यक पुस्तकालयहरू स्थापना गरेपछि, कोड खोल्नुहोस्
परियोजना_८_आउटपुट_स्टेट_सिंक्रोनाइजेसन_Webarduino IDE मा _Server.ino।
कोड अपलोड गर्नु अघि, आफ्नो नेटवर्क प्रमाणहरू सम्मिलित गर्न नबिर्सनुहोस् ताकि ESP तपाईंको स्थानीय नेटवर्कमा जडान हुन सक्छ।
कोडले कसरी काम गर्छ
बटन स्टेट र आउटपुट स्टेट
ledState चरले LED आउटपुट स्थिति राख्छ। पूर्वनिर्धारितको लागि, जब web सर्भर सुरु हुन्छ, यो कम छ।
बटनस्टेट र लास्टबटनस्टेटलाई पुशबटन थिचिएको थियो वा होइन भनेर पत्ता लगाउन प्रयोग गरिन्छ।बटन (web सर्भर)
हामीले index_html चरमा बटन सिर्जना गर्न HTML समावेश गरेका छैनौं।
त्यो किनभने हामी यसलाई हालको एलईडी अवस्थाको आधारमा परिवर्तन गर्न सक्षम हुन चाहन्छौं जुन पुशबटनसँग पनि परिवर्तन गर्न सकिन्छ।
त्यसोभए, हामीले बटन %BUTTONPLACEHOLDER% को लागि प्लेसहोल्डर सिर्जना गरेका छौं जुन पछि कोडमा बटन सिर्जना गर्न HTML पाठको साथ बदलिनेछ (यो प्रोसेसर() प्रकार्यमा गरिन्छ)।प्रोसेसर()
प्रोसेसर() प्रकार्यले HTML पाठमा कुनै पनि प्लेसहोल्डरहरूलाई वास्तविक मानहरूसँग बदल्छ। पहिले, यसले HTML पाठहरूमा कुनै समावेश छ कि छैन भनेर जाँच गर्दछ
प्लेसहोल्डरहरू %BUTTONPLACEHOLDER%।त्यसपछि, theoutputState() प्रकार्यलाई कल गर्नुहोस् जसले हालको आउटपुट अवस्था फर्काउँछ। हामीले यसलाई outputStateValue चरमा बचत गर्छौं।
त्यस पछि, सही स्थितिको साथ बटन प्रदर्शन गर्न HTML पाठ सिर्जना गर्न त्यो मान प्रयोग गर्नुहोस्:
HTTP GET आउटपुट स्थिति परिवर्तन गर्न अनुरोध (जाभास्क्रिप्ट)
जब तपाईंले बटन थिच्नुहुन्छ, thetoggleCheckbox() प्रकार्य कल हुन्छ। यो प्रकार्यले फरक-फरकमा अनुरोध गर्नेछ URLLED खोल्न वा बन्द गर्न।LED खोल्नको लागि, यसले /update?state=1 मा अनुरोध गर्दछ। URL:
अन्यथा, यसले /update?state=0 मा अनुरोध गर्दछ। URL.
HTTP GET राज्य अद्यावधिक गर्न अनुरोध (जाभास्क्रिप्ट)
मा आउटपुट स्थिति अद्यावधिक राख्न web सर्भरमा, हामी निम्न प्रकार्यलाई कल गर्छौं जसले /state मा नयाँ अनुरोध गर्दछ URL प्रत्येक सेकेन्ड।अनुरोधहरू ह्यान्डल गर्नुहोस्
त्यसपछि, हामीले ESP32 वा ESP8266 ले ती बारे अनुरोधहरू प्राप्त गर्दा के हुन्छ भनेर ह्यान्डल गर्न आवश्यक छ URLs.
जब रूटमा अनुरोध प्राप्त हुन्छ /URL, हामी HTML पृष्ठ साथै प्रोसेसर पठाउँछौं।निम्न लाइनहरूले तपाईंले /update?state=1 वा /update?state=0 मा अनुरोध प्राप्त गर्नुभयो कि भएन भनेर जाँच गर्दछ। URL र तदनुसार ledState परिवर्तन गर्दछ।
/state मा अनुरोध प्राप्त हुँदा URL, हामी हालको आउटपुट स्थिति पठाउँछौं:
लुप()
लुप() मा, हामी पुशबटन डिबाउन गर्छौं र ledState को मानमा निर्भर गर्दै LED अन वा अफ गर्छौं। चर।प्रदर्शन
आफ्नो ESP32 बोर्डमा कोड अपलोड गर्नुहोस्।कोड सन्दर्भ चरणहरू अपलोड गर्नुहोस्।
त्यसपछि, 115200 को बाउड दरमा सिरियल मनिटर खोल्नुहोस्। IP ठेगाना प्राप्त गर्न अन-बोर्ड EN/RST बटन थिच्नुहोस्।आफ्नो स्थानीय नेटवर्कमा ब्राउजर खोल्नुहोस्, र ESP IP ठेगाना टाइप गर्नुहोस्। तपाईंसँग पहुँच हुनुपर्दछ web तल देखाइएको रूपमा सर्भर।
नोट: तपाईंको ब्राउजर र ESP32 एउटै LAN मा जडान हुनुपर्छ।तपाईं मा बटन टगल गर्न सक्नुहुन्छ web LED अन गर्न सर्भर।
तपाईं भौतिक पुशबटनको साथ समान एलईडी नियन्त्रण गर्न सक्नुहुन्छ। यसको स्थिति सधैं स्वचालित रूपमा अद्यावधिक हुनेछ web सर्भर।
परियोजना ९ ESP9 DHT32 Web सर्भर
यस परियोजनामा, तपाइँ कसरी एक एसिन्क्रोनस ESP32 निर्माण गर्ने सिक्नुहुनेछ web DHT11 सँग सर्भर जसले Arduino IDE प्रयोग गरेर तापमान र आर्द्रता देखाउँछ।
पूर्व शर्तहरू
द web सर्भर हामी रिफ्रेस गर्न आवश्यकता बिना स्वचालित रूपमा पठनहरू अद्यावधिक गर्नेछौं web पृष्ठ।
यस परियोजनाको साथ तपाईंले सिक्नुहुनेछ:
- DHT सेन्सरबाट तापक्रम र आर्द्रता कसरी पढ्ने;
- एक एसिन्क्रोनस निर्माण गर्नुहोस् web सर्भर प्रयोग गरेर ESPAsyncWebसर्भर लाइब्रेरी;
- सेन्सर रिडिङहरू रिफ्रेस गर्न आवश्यकता बिना स्वचालित रूपमा अद्यावधिक गर्नुहोस् web पृष्ठ।
एसिन्क्रोनस Web सर्भर
निर्माण गर्न web सर्भर हामी प्रयोग गर्नेछौं ESPAsyncWebसर्भर लाइब्रेरी जसले एसिन्क्रोनस निर्माण गर्न सजिलो तरिका प्रदान गर्दछ web सर्भर। एक एसिन्क्रोनस निर्माण web सर्भरमा धेरै advan छtages पुस्तकालय GitHub पृष्ठमा उल्लेख गरिएको छ, जस्तै:
- "एकै समयमा एक भन्दा बढी जडानहरू ह्यान्डल गर्नुहोस्";
- "जब तपाइँ प्रतिक्रिया पठाउनुहुन्छ, तपाइँ तुरुन्तै अन्य जडानहरू ह्यान्डल गर्न तयार हुनुहुन्छ जब सर्भरले पृष्ठभूमिमा प्रतिक्रिया पठाउने हेरचाह गरिरहेको छ";
- "टेम्प्लेटहरू ह्यान्डल गर्न सरल टेम्प्लेट प्रशोधन इन्जिन";
भागहरू आवश्यक छ
यो ट्युटोरियल पूरा गर्न तपाईंलाई निम्न भागहरू चाहिन्छ:
- ESP32 विकास बोर्ड
- DHT11 मोड्युल
- ब्रेडबोर्ड
- जम्पर तारहरू
योजनाबद्धपुस्तकालयहरू स्थापना गर्दै
तपाईंले यस परियोजनाको लागि केही पुस्तकालयहरू स्थापना गर्न आवश्यक छ:
- द DHT र एडफ्रुट युनिफाइड सेन्सर DHT सेन्सरबाट पढ्नको लागि चालक पुस्तकालयहरू।
- ESPAsyncWebसर्भर र Async TCP पुस्तकालयहरू एसिन्क्रोनस निर्माण गर्न web सर्भर।
ती पुस्तकालयहरू स्थापना गर्न निम्न निर्देशनहरू पालना गर्नुहोस्:
DHT सेन्सर लाइब्रेरी स्थापना गर्दै
Arduino IDE प्रयोग गरेर DHT सेन्सरबाट पढ्नको लागि, तपाईंले स्थापना गर्न आवश्यक छ DHT सेन्सर पुस्तकालय। पुस्तकालय स्थापना गर्न अर्को चरणहरू पालना गर्नुहोस्।
- DHT सेन्सर पुस्तकालय डाउनलोड गर्न यहाँ क्लिक गर्नुहोस्। तपाईँको डाउनलोड फोल्डरमा .zip फोल्डर हुनुपर्छ
- .zip फोल्डर अनजिप गर्नुहोस् र तपाईंले DHT-sensor-library-master फोल्डर प्राप्त गर्नुपर्छ
- आफ्नो फोल्डरलाई DHT-sensor-library-master बाट DHT_sensor मा पुन: नामाकरण गर्नुहोस्
- DHT_sensor फोल्डरलाई आफ्नो Arduino IDE स्थापना पुस्तकालय फोल्डरमा सार्नुहोस्
- अन्तमा, आफ्नो Arduino IDE पुन: खोल्नुहोस्
Adafruit एकीकृत सेन्सर चालक स्थापना गर्दै
तपाइँ पनि स्थापना गर्न आवश्यक छ Adafruit एकीकृत सेन्सर चालक पुस्तकालय DHT सेन्सरसँग काम गर्न। पुस्तकालय स्थापना गर्न अर्को चरणहरू पालना गर्नुहोस्।
- Adafruit एकीकृत सेन्सर पुस्तकालय डाउनलोड गर्न यहाँ क्लिक गर्नुहोस्। तपाईँको डाउनलोड फोल्डरमा .zip फोल्डर हुनुपर्छ
- .zip फोल्डर अनजिप गर्नुहोस् र तपाईंले Adafruit_sensor-master फोल्डर प्राप्त गर्नुपर्छ
- आफ्नो फोल्डरलाई Adafruit_sensor-master बाट Adafruit_sensor मा पुन: नामाकरण गर्नुहोस्
- Adafruit_sensor फोल्डरलाई आफ्नो Arduino IDE स्थापना पुस्तकालय फोल्डरमा सार्नुहोस्
- अन्तमा, आफ्नो Arduino IDE पुन: खोल्नुहोस्
ESPAsync स्थापना गर्दैWebसर्भर लाइब्रेरी
स्थापना गर्न अर्को चरणहरू पालना गर्नुहोस् ESPAsyncWebसर्भर पुस्तकालय:
- ESPAsync डाउनलोड गर्न यहाँ क्लिक गर्नुहोस्।Webसर्भर लाइब्रेरी। तपाईंसँग हुनुपर्छ
तपाईंको डाउनलोड फोल्डरमा .zip फोल्डर - .zip फोल्डर अनजिप गर्नुहोस् र तपाईंले गर्नुपर्छ
ESPAsync प्राप्त गर्नुहोस्Webसर्भर-मास्टर फोल्डर - ESPAsync बाट आफ्नो फोल्डरको नाम बदल्नुहोस्Webसर्भर-मास्टर देखि ESPAsync सम्मWebसर्भर
- ESPAsync सार्नुहोस्Webतपाईंको Arduino IDE स्थापना पुस्तकालय फोल्डरमा सर्भर फोल्डर
ESP32 को लागि Async TCP लाइब्रेरी स्थापना गर्दै
द ESPAsyncWebसर्भर पुस्तकालय आवश्यक छ एसिन्क्रोनस टीसीपी पुस्तकालय काम गर्न। त्यो पुस्तकालय स्थापना गर्न अर्को चरणहरू पालना गर्नुहोस्:
- AsyncTCP पुस्तकालय डाउनलोड गर्न यहाँ क्लिक गर्नुहोस्। तपाईँको डाउनलोड फोल्डरमा .zip फोल्डर हुनुपर्छ
- .zip फोल्डर अनजिप गर्नुहोस् र तपाईंले AsyncTCP-master फोल्डर प्राप्त गर्नुपर्छ
- आफ्नो फोल्डरलाई AsyncTCP-master बाट AsyncTCP मा पुन: नामाकरण गर्नुहोस्
- AsyncTCP फोल्डरलाई तपाईंको Arduino IDE स्थापना पुस्तकालय फोल्डरमा सार्नुहोस्
- अन्तमा, आफ्नो Arduino IDE पुन: खोल्नुहोस्
कोड
हामी Arduino IDE प्रयोग गरेर ESP32 कार्यक्रम गर्नेछौं, त्यसैले अगाडि बढ्नु अघि ESP32 एड-अन स्थापना भएको सुनिश्चित गर्नुहोस्: (यदि तपाईंले यो चरण पहिले नै गरिसक्नुभएको छ भने, तपाईं अर्को चरणमा जान सक्नुहुन्छ।)
Arduino IDE मा ESP32 एड-अन स्थापना गर्दै
आवश्यक पुस्तकालयहरू स्थापना गरेपछि, कोड खोल्नुहोस्
परियोजना_९_ESP9_DHT32_Webarduino IDE मा _Server.ino।
कोड अपलोड गर्नु अघि, आफ्नो नेटवर्क प्रमाणहरू सम्मिलित गर्न नबिर्सनुहोस् ताकि ESP तपाईंको स्थानीय नेटवर्कमा जडान हुन सक्छ।कोडले कसरी काम गर्छ
निम्न अनुच्छेदहरूमा हामी कोडले कसरी काम गर्छ भनेर व्याख्या गर्नेछौं। यदि तपाइँ थप जान्न चाहनुहुन्छ भने पढ्न जारी राख्नुहोस् वा अन्तिम परिणाम हेर्न प्रदर्शन सेक्सनमा जानुहोस्।
पुस्तकालयहरू आयात गर्दै
पहिले, आवश्यक पुस्तकालयहरू आयात गर्नुहोस्। WiFi, ESPAsyncWebसर्भर र ESPAsyncTCP निर्माण गर्न आवश्यक छ web सर्भर। Adafruit_Sensor र DHT पुस्तकालयहरू DHT11 वा DHT22 सेन्सरहरूबाट पढ्न आवश्यक छ।चर परिभाषा
DHT डाटा पिन जडान भएको GPIO परिभाषित गर्नुहोस्। यस अवस्थामा, यो GPIO 4 मा जडान भएको छ।त्यसपछि, तपाईंले प्रयोग गरिरहनुभएको DHT सेन्सर प्रकार चयन गर्नुहोस्। हाम्रो पूर्व माampले, हामी DHT22 प्रयोग गर्दैछौं। यदि तपाइँ अर्को प्रकार प्रयोग गर्दै हुनुहुन्छ भने, तपाइँले आफ्नो सेन्सरलाई अनकमेन्ट गर्न र अरू सबैलाई टिप्पणी गर्न आवश्यक छ।
हामीले पहिले परिभाषित गरेको प्रकार र पिनको साथ DHT वस्तु इन्स्ट्यान्टियट गर्नुहोस्।एसिन्क्रोनस सिर्जना गर्नुहोस्Webपोर्ट ८० मा सर्भर वस्तु।
तापक्रम र आर्द्रता कार्यहरू पढ्नुहोस्
हामीले दुई प्रकार्यहरू सिर्जना गरेका छौं: एउटा तापक्रम पढ्नको लागि हामीले दुईवटा प्रकार्यहरू सिर्जना गरेका छौं: एउटा तापक्रम पढ्न (readDHTTtemperature()) र अर्को आर्द्रता पढ्न (readDHTHumidity())।सेन्सर रिडिङहरू प्राप्त गर्न जत्तिकै सरल छ सेन्सर रीडिङहरू प्राप्त गर्न dht वस्तुमा readTemperature() र readHumidity() विधिहरू प्रयोग गरे जत्तिकै सरल छ।
सेन्सरले रिडिङहरू प्राप्त गर्न असफल भएमा दुईवटा ड्यासहरू (–) फर्काउने अवस्था पनि हामीसँग छ।
पढाइहरू स्ट्रिङ प्रकारको रूपमा फर्काइन्छ। फ्लोटलाई स्ट्रिङमा रूपान्तरण गर्न, String() प्रकार्य प्रयोग गर्नुहोस्
पूर्वनिर्धारित रूपमा, हामी तापमान सेल्सियस डिग्रीमा पढिरहेका छौं। फरेनहाइट डिग्री मा तापमान प्राप्त गर्न, सेल्सियस मा तापमान टिप्पणी र फारेनहाइट मा तापमान uncomment, ताकि तपाईं निम्न छन्:
कोड अपलोड गर्नुहोस्
अब, आफ्नो ESP32 मा कोड अपलोड गर्नुहोस्। निश्चित गर्नुहोस् कि तपाइँसँग सही बोर्ड र COM पोर्ट चयन गरिएको छ। कोड सन्दर्भ चरणहरू अपलोड गर्नुहोस्।
अपलोड गरेपछि, 115200 को बाउड दरमा सिरियल मनिटर खोल्नुहोस्। ESP32 रिसेट बटन थिच्नुहोस्। ESP32 IP ठेगाना सिरियलमा छापिएको हुनुपर्छ निगरानी।प्रदर्शन
ब्राउजर खोल्नुहोस् र ESP32 IP ठेगाना टाइप गर्नुहोस्। तपाईको web सर्भरले नवीनतम सेन्सर पढाइहरू प्रदर्शन गर्नुपर्छ।
नोट: तपाईंको ब्राउजर र ESP32 एउटै LAN मा जडान हुनुपर्छ।
ध्यान दिनुहोस् कि तापक्रम र आर्द्रता रिडिङहरू रिफ्रेस गर्न आवश्यक बिना स्वचालित रूपमा अद्यावधिक हुन्छन् web पृष्ठ।
Project_10_ESP32_OLED_Display
यस परियोजनाले Arduino IDE प्रयोग गरेर ESP0.96 सँग 1306 इन्च SSD32 OLED डिस्प्ले कसरी प्रयोग गर्ने भनेर देखाउँछ।
०.९६ इन्च OLED डिस्प्ले प्रस्तुत गर्दै
द OLED डिस्प्ले हामीले यस ट्यूटोरियलमा SSD1306 मोडेल प्रयोग गर्नेछौं: एक मोनोकलर, 0.96 इन्चको डिस्प्ले 128×64 पिक्सेलको साथ निम्न चित्रमा देखाइएको छ।OLED डिस्प्लेलाई ब्याकलाइटको आवश्यकता पर्दैन, जसले अँध्यारो वातावरणमा धेरै राम्रो कन्ट्रास्टको परिणाम दिन्छ। थप रूपमा, यसको पिक्सेलहरू सक्रिय हुँदा मात्र ऊर्जा खपत गर्दछ, त्यसैले OLED डिस्प्लेले अन्य डिस्प्लेहरूको तुलनामा कम पावर खपत गर्दछ।
किनभने OLED डिस्प्लेले I2C संचार प्रोटोकल प्रयोग गर्दछ, तारिङ धेरै सरल छ। तपाइँ सन्दर्भको रूपमा निम्न तालिका प्रयोग गर्न सक्नुहुन्छ।
OLED पिन | ईएसपी 32२XNUMX |
विन | 3.3V |
GND | GND |
SCL | GPIO ० |
SDA | GPIO ० |
योजनाबद्धSSD1306 OLED लाइब्रेरी स्थापना गर्दै - ESP32
ESP32 सँग OLED डिस्प्ले नियन्त्रण गर्न धेरै पुस्तकालयहरू उपलब्ध छन्।
यस ट्यूटोरियलमा हामी दुई Adafruit पुस्तकालयहरू प्रयोग गर्नेछौं: Adafruit_SSD1306 पुस्तकालय र Adafruit_GFX पुस्तकालय.
ती पुस्तकालयहरू स्थापना गर्न अर्को चरणहरू पालना गर्नुहोस्।
- आफ्नो Arduino IDE खोल्नुहोस् र स्केचमा जानुहोस् > पुस्तकालय समावेश गर्नुहोस् > पुस्तकालयहरू प्रबन्ध गर्नुहोस्। पुस्तकालय प्रबन्धक खोल्नु पर्छ।
- खोज बाकसमा "SSD1306" टाइप गर्नुहोस् र Adafruit बाट SSD1306 पुस्तकालय स्थापना गर्नुहोस्।
- Adafruit बाट SSD1306 पुस्तकालय स्थापना गरेपछि, खोज बाकसमा "GFX" टाइप गर्नुहोस् र पुस्तकालय स्थापना गर्नुहोस्।
- पुस्तकालयहरू स्थापना गरेपछि, आफ्नो Arduino IDE पुन: सुरु गर्नुहोस्।
कोड
आवश्यक पुस्तकालयहरू स्थापना गरेपछि, arduino IDE मा Project_10_ESP32_OLED_Display.ino खोल्नुहोस्। कोड
हामी Arduino IDE प्रयोग गरेर ESP32 कार्यक्रम गर्नेछौं, त्यसैले अगाडि बढ्नु अघि ESP32 एड-अन स्थापना भएको सुनिश्चित गर्नुहोस्: (यदि तपाईंले यो चरण पहिले नै गरिसक्नुभएको छ भने, तपाईं अर्को चरणमा जान सक्नुहुन्छ।)
Arduino IDE मा ESP32 एड-अन स्थापना गर्दैकोडले कसरी काम गर्छ
पुस्तकालयहरू आयात गर्दै
पहिले, तपाईंले आवश्यक पुस्तकालयहरू आयात गर्न आवश्यक छ। I2C प्रयोग गर्नको लागि तार पुस्तकालय र प्रदर्शनमा लेख्नको लागि Adafruit पुस्तकालयहरू: Adafruit_GFX र Adafruit_SSD1306।OLED डिस्प्ले सुरु गर्नुहोस्
त्यसपछि, तपाईंले आफ्नो OLED चौडाइ र उचाइ परिभाषित गर्नुहोस्। यस मा पूर्वample, हामी 128×64 OLED डिस्प्ले प्रयोग गर्दैछौं। यदि तपाइँ अन्य आकारहरू प्रयोग गर्दै हुनुहुन्छ भने, तपाइँ यसलाई SCREEN_WIDTH, र SCREEN_HEIGHT चरहरूमा परिवर्तन गर्न सक्नुहुन्छ।त्यसपछि, I2C कम्युनिकेशन प्रोटोकल (&Wire) सँग पहिले परिभाषित चौडाइ र उचाइको साथ प्रदर्शन वस्तु प्रारम्भ गर्नुहोस्।
(-१) प्यारामिटरको अर्थ तपाईको OLED डिस्प्लेमा रिसेट पिन छैन। यदि तपाईंको OLED डिस्प्लेमा रिसेट पिन छ भने, यो GPIO मा जडान हुनुपर्छ। त्यस अवस्थामा, तपाईंले प्यारामिटरको रूपमा GPIO नम्बर पास गर्नुपर्छ।
सेटअप () मा, डिबगिंग उद्देश्यका लागि 115200 को बाउड राउटमा सिरियल मनिटर सुरु गर्नुहोस्।बिगिन () विधिको साथ OLED डिस्प्ले निम्नानुसार सुरु गर्नुहोस्:
यो स्निपेटले सिरियल मनिटरमा सन्देश पनि छाप्छ, यदि हामी प्रदर्शनमा जडान गर्न सक्षम छैनौं भने।
यदि तपाईं फरक OLED डिस्प्ले प्रयोग गर्दै हुनुहुन्छ भने, तपाईंले OLED ठेगाना परिवर्तन गर्न आवश्यक पर्दछ। हाम्रो अवस्थामा, ठेगाना 0x3C हो।
डिस्प्ले सुरु गरेपछि, दुई सेकेन्ड ढिलाइ थप्नुहोस्, ताकि OLED सँग पाठ लेख्नु अघि सुरु गर्न पर्याप्त समय छ:
डिस्प्ले खाली गर्नुहोस्, फन्ट साइज, रङ सेट गर्नुहोस् र पाठ लेख्नुहोस्
प्रदर्शन सुरु गरेपछि, clearDisplay() विधिको साथ प्रदर्शन बफर खाली गर्नुहोस्:
पाठ लेख्नु अघि, तपाईंले पाठको आकार, रङ र OLED मा पाठ कहाँ प्रदर्शित हुनेछ सेट गर्न आवश्यक छ।
setTextSize() विधि प्रयोग गरेर फन्ट साइज सेट गर्नुहोस्:setTextColor() विधिको साथ फन्ट रङ सेट गर्नुहोस्:
WHITE ले सेतो फन्ट र कालो पृष्ठभूमि सेट गर्दछ।
सेटकर्सर(x,y) विधि प्रयोग गरेर पाठ सुरु हुने स्थिति परिभाषित गर्नुहोस्। यस अवस्थामा, हामी पाठलाई (०,०) निर्देशांकमा सुरु गर्न सेट गर्दैछौं - शीर्ष बायाँ कुनामा।अन्तमा, तपाइँ निम्नानुसार println() विधि प्रयोग गरेर प्रदर्शनमा पाठ पठाउन सक्नुहुन्छ
त्यसपछि, तपाईंले स्क्रिनमा पाठ प्रदर्शन गर्नको लागि प्रदर्शन () विधि कल गर्न आवश्यक छ।
Adafruit OLED पुस्तकालयले सजिलै पाठ स्क्रोल गर्न उपयोगी विधिहरू प्रदान गर्दछ।
- startscrollright(0x00, 0x0F): बायाँबाट दायाँ तिर पाठ स्क्रोल गर्नुहोस्
- startscrollleft(0x00, 0x0F): दायाँबाट बायाँ तिर पाठ स्क्रोल गर्नुहोस्
- startscrolldiagright(0x00, 0x07): बायाँ तलको कुनाबाट दायाँ माथिल्लो कुनामा स्क्रोल पाठ सुरु गर्नुहोस्स्क्रोलडियाग्लेफ्ट(0x00, 0x07): दाहिने तलको कुनाबाट बायाँ माथिल्लो कुनामा स्क्रोल गर्नुहोस्
कोड अपलोड गर्नुहोस्
अब, आफ्नो ESP32 मा कोड अपलोड गर्नुहोस्। कोड सन्दर्भ चरणहरू अपलोड गर्नुहोस्।
कोड अपलोड गरेपछि, OLED ले स्क्रोलिङ पाठ प्रदर्शन गर्नेछ।
कागजातहरू / स्रोतहरू
![]() |
LAFVIN ESP32 आधारभूत स्टार्टर किट [pdf] निर्देशन पुस्तिका ESP32 बेसिक स्टार्टर किट, ESP32, बेसिक स्टार्टर किट, स्टार्टर किट |