एस्प्रेसिफ़ सिस्टम्स ESP32 डेव किट डेवलपमेंट बोर्ड उपयोगकर्ता गाइड

ESP32 देव किट विकास बोर्ड

उत्पाद की जानकारी

विशेष विवरण

  • उत्पाद: ESP32
  • प्रोग्रामिंग गाइड: ESP-IDF
  • रिलीज़ संस्करण: v5.0.9
  • निर्माता: एस्प्रेसिफ़ सिस्टम्स
  • रिलीज़ की तारीख: 16 मई, 2025

उत्पाद उपयोग निर्देश

1. आरंभ करें

ESP32 के साथ शुरुआत करने से पहले, अपने आप को इससे परिचित कराएं
अगले:

1.1 परिचय

की बुनियादी कार्यक्षमताओं और क्षमताओं के बारे में जानें
ईएसपी32.

1.2 आपको क्या चाहिए

सुनिश्चित करें कि आपके पास आवश्यक हार्डवेयर और सॉफ्टवेयर हैं:

  • हार्डवेयर: आवश्यक हार्डवेयर की सूची देखें
    अवयव।
  • सॉफ़्टवेयर: आवश्यक सॉफ़्टवेयर स्थापित करें
    अवयव।

1.3 स्थापना

IDE को स्थापित करने और सेटअप करने के लिए इन चरणों का पालन करें
पर्यावरण:

  • आईडीई: इसके लिए अनुशंसित IDE स्थापित करें
    ESP32 प्रोग्रामिंग.
  • मैनुअल स्थापना: मैन्युअल रूप से सेट अप करें
    यदि आवश्यक हो तो पर्यावरण.

1.4 अपना पहला प्रोजेक्ट बनाएँ

ESP32 का उपयोग करके अपना प्रारंभिक प्रोजेक्ट बनाएं और बनाएं।

1.5 ESP-IDF अनइंस्टॉल करें

यदि आवश्यक हो, तो अपने कंप्यूटर से ESP-IDF को अनइंस्टॉल करना सीखें।
प्रणाली।

2. एपीआई संदर्भ

विस्तृत जानकारी के लिए API दस्तावेज़ देखें
अनुप्रयोग प्रोटोकॉल, त्रुटि प्रबंधन और कॉन्फ़िगरेशन
संरचनाएं.

अक्सर पूछे जाने वाले प्रश्न (एफएक्यू)

प्रश्न: मैं ESP32 से संबंधित सामान्य समस्याओं का निवारण कैसे कर सकता हूँ?

उत्तर: प्रोग्रामिंग गाइड में समस्या निवारण अनुभाग देखें
या निर्माता के पास जाएँ webसहायता संसाधनों के लिए साइट.

प्रश्न: क्या मैं अन्य माइक्रोकंट्रोलर्स के साथ ESP-IDF का उपयोग कर सकता हूँ?

उत्तर: ESP-IDF विशेष रूप से ESP32 के लिए डिज़ाइन किया गया है, लेकिन आपको यह मिल सकता है
अन्य एस्प्रेसिफ़ माइक्रोकंट्रोलर्स के साथ संगतता।

ESP32
ईएसपी-आईडीएफ प्रोग्रामिंग गाइड
रिलीज़ v5.0.9 एस्प्रेसिफ़ सिस्टम्स 16 मई, 2025

विषयसूची

विषयसूची

i

1 आरंभ करें

3

1.1 परिचय . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 आपको क्या चाहिए . ...

1.2.1 हार्डवेयर . ...

1.2.2 सॉफ्टवेयर . ...

1.3 स्थापना . ...

1.3.1 आईडीई। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.3.2 मैनुअल इंस्टॉलेशन . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.4 अपना पहला प्रोजेक्ट बनाएं . ...

1.5 ESP-IDF अनइंस्टॉल करें . ...

2 एपीआई संदर्भ

45

2.1 एपीआई कन्वेंशन . ...

2.1.1 त्रुटि प्रबंधन . ...

2.1.2 कॉन्फ़िगरेशन संरचनाएं . ...

2.1.3 निजी एपीआई . ...

2.1.4 पूर्व में घटकampले प्रोजेक्ट्स . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

2.1.5 एपीआई स्थिरता . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

2.2 एप्लिकेशन प्रोटोकॉल . ...

2.2.1 एएसआईओ पोर्ट। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

2.2.2 ईएसपी-मोडबस . ...

2.2.3 ईएसपी-एमक्यूटीटी ।

2.2.4 ईएसपी-टीएलएस . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

2.2.5 ईएसपी HTTP क्लाइंट . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

2.2.6 ईएसपी स्थानीय नियंत्रण . ...

2.2.7 ईएसपी सीरियल स्लेव लिंक . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

2.2.8 ESP x509 प्रमाणपत्र बंडल . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

2.2.9 HTTP सर्वर . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

2.2.10 HTTPS सर्वर . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

2.2.11 आईसीएमपी इको . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

2.2.12 mDNS सेवा . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

2.2.13 एमबीड टीएलएस . ...

2.2.14 आईपी नेटवर्क लेयर . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

2.3 ब्लूटूथ एपीआई . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

2.3.1 ब्लूटूथ® कॉमन . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

2.3.2 ब्लूटूथ® कम ऊर्जा . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

2.3.3 ब्लूटूथ® क्लासिक . ...

2.3.4 नियंत्रक और एचसीआई . ...

2.3.5 ईएसपी-बीएलई-मेश . ...

2.3.6 NimBLE-आधारित होस्ट APIs . ...

2.4 त्रुटि कोड संदर्भ . ...

2.5 नेटवर्किंग एपीआई . ...

2.5.1 वाई-फाई। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776

2.5.2 ईथरनेट . ...

2.5.3 धागा . ...

i

2.5.4 ईएसपी-नेटआईएफ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942 2.5.5 आईपी नेटवर्क परत . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974 2.5.6 अनुप्रयोग परत . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976 2.6 परिधीय एपीआई . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977 2.6.1 एनालॉग टू डिजिटल कनवर्टर (ADC) वनशॉट मोड ड्राइवर . . . . . . . . . . . . . . . . . 977 2.6.2 एनालॉग टू डिजिटल कनवर्टर (ADC) सतत मोड ड्राइवर . . . . . . . . . . . . . . . 986 2.6.3 एनालॉग टू डिजिटल कनवर्टर (ADC) कैलिब्रेशन ड्राइवर . . . . . . . . . . . . . . . . . . . 993 2.6.4 घड़ी का पेड़ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 2.6.5 डिजिटल टू एनालॉग कनवर्टर (DAC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 2.6.6 जीपीआईओ और आरटीसी जीपीआईओ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 2.6.7 सामान्य प्रयोजन टाइमर (GPTimer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 2.6.8 इंटर-इंटीग्रेटेड सर्किट (I2C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 2.6.9 इंटर-आईसी साउंड (I2S) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 2.6.10 एलसीडी . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090 2.6.11 एलईडी नियंत्रण (एलईडीसी) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107 2.6.12 मोटर नियंत्रण पल्स चौड़ाई मॉड्यूलेटर (एमसीपीडब्ल्यूएम) . . . . . . . . . . . . . . . . . . . . . 1126 2.6.13 पल्स काउंटर (पीसीएनटी) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178 2.6.14 रिमोट कंट्रोल ट्रांसीवर (आरएमटी) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193 2.6.15 एसडी पुल-अप आवश्यकताएँ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220 2.6.16 एसडीएमएमसी होस्ट ड्राइवर. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 2.6.17 एसडी एसपीआई होस्ट ड्राइवर. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 2.6.18 SDIO कार्ड स्लेव ड्राइवर . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234 2.6.19 सिग्मा-डेल्टा मॉड्यूलेशन (एसडीएम) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244 2.6.20 SPI मास्टर ड्राइवर . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249 2.6.21 एसपीआई स्लेव ड्राइवर . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274 2.6.22 ESP32-WROOM-32SE (सुरक्षित तत्व) . . . . . . . . . . . . . . . . . . . . . . . . . 1281 2.6.23 टच सेंसर . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282 2.6.24 टू-वायर ऑटोमोटिव इंटरफ़ेस (TWAI) . . . . . . . . . . . . . . . . . . . . . . . . . . 1299 2.6.25 यूनिवर्सल एसिंक्रोनस रिसीवर/ट्रांसमीटर (UART) . . . . . . . . . . . . . . . . . . 1317 2.7 परियोजना कॉन्फ़िगरेशन . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.1 परिचय . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.2 प्रोजेक्ट कॉन्फ़िगरेशन मेनू . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.3 sdkconfig.defaults का उपयोग करना. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.4 Kconfig स्वरूपण नियम . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.5 Kconfig विकल्पों की पिछड़ी संगतता . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.6 कॉन्फ़िगरेशन विकल्प संदर्भ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.8 प्रोविजनिंग एपीआई . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.1 प्रोटोकॉल संचार . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.2 एकीकृत प्रावधान . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1665 2.8.3 वाई-फाई प्रोविजनिंग . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669 2.9 स्टोरेज एपीआई . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fileसिस्टम समर्थन . ... 1703 2.9.4 NVS पार्टीशन जेनरेटर उपयोगिता . ... . . . . . . . . . . . 1744 2.9.7 स्पिफ्स Fileसिस्टम . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1780 2.9.8 वर्चुअल fileसिस्टम घटक . ... . . . . . . . . 1803 2.10.1 ऐप इमेज प्रारूप . ... . . . . . . . . . . . . . 1813 2.10.4 चिप संशोधन . ... . ...
ii

2.10.8 ESP HTTPS OTA . ...view) . ... . . . 1988 2.10.13 हीप मेमोरी आवंटन . ... . . . . . . 2032 2.10.16 आंतरिक और अस्थिर एपीआई . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2038 2.10.17 इंटर-प्रोसेसर कॉल . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2040 2.10.18 इंटरप्ट आवंटन . . . . . . . . . . . . . . . . . ... . ... 2087 2.10.24 POSIX थ्रेड समर्थन । । । । । । । । । । । । । । । । । । । । । । । 2093 2.10.25 यादृच्छिक संख्या जनरेशन । । । । । । । । । । । । । । । । । । । । । । 2097 2.10.26 स्लीप मोड । । । । । । । । । । । । । । । । । । । । । । । । । . . . . . . . . . . . . . 2099 2.10.27 SoC क्षमताएँ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2111 2.10.28 सिस्टम समय . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2121 2.10.29 हिमेम आवंटन API . . . . . . . . . . ...

3 हार्डवेयर संदर्भ

2167

3.1 चिप श्रृंखला तुलना . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2167

3.1.1 संबंधित दस्तावेज़ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2170

4 एपीआई गाइड

2171

4.1 एप्लिकेशन लेवल ट्रेसिंग लाइब्रेरी . ...

4.1.1 ओवरview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.2 संचालन के तरीके . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171

4.1.3 कॉन्फ़िगरेशन विकल्प और निर्भरताएँ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2172

4.1.4 इस लाइब्रेरी का उपयोग कैसे करें . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2173

4.2 एप्लिकेशन स्टार्टअप प्रवाह . ...

4.2.1 प्रथम एसtagई बूटलोडर . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182

4.2.2 सेकेंडtagई बूटलोडर . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182

4.2.3 एप्लिकेशन स्टार्टअप . ...

4.3 ब्लूटूथ® क्लासिक . ...

4.3.1 ओवरview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184

4.4 ब्लूटूथ® कम ऊर्जा . ...

4.4.1 ओवरview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186

4.4.2 आरंभ करें . ...

4.4.3 प्रोfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2240 XNUMX

4.5 बूटलोडर . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2284

4.5.1 बूटलोडर संगतता . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285

4.5.2 लॉग स्तर . ...

4.5.3 फ़ैक्टरी रीसेट . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286

4.5.4 टेस्ट फ़र्मवेयर से बूट करें . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286

4.5.5 रोलबैक . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.6 वॉचडॉग . ...

4.5.7 बूटलोडर आकार . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.5.8 डीप स्लीप से तेज़ बूट . ...

4.5.9 कस्टम बूटलोडर . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287

4.6 बिल्ड सिस्टम . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288

4.6.1 ओवरview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288

4.6.2 बिल्ड सिस्टम का उपयोग करना . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2289

तृतीय

4.6.3 पूर्वampले प्रोजेक्ट . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.4 प्रोजेक्ट CMakeLists File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.5 घटक CMakeLists Files . ... 2295 4.6.8 घटक आवश्यकताएँ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295 4.6.9 परियोजना के भागों को ओवरराइड करना . . . . . . . . . . . . . . . . . . . . . . . . . 2299 4.6.10 केवल कॉन्फ़िगरेशन घटक . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.11 डिबगिंग CMake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.12 Example घटक CMakeLists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2301 4.6.13 कस्टम sdkconfig डिफ़ॉल्ट . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.14 फ़्लैश तर्क . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305 4.6.15 बूटलोडर का निर्माण . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.16 शुद्ध CMake घटक लिखना . . . . . . . . . . . . . . . . . . . . . . . . 2306 4.6.17 घटकों के साथ तृतीय-पक्ष CMake परियोजनाओं का उपयोग करना . . . . . . . . . . . . . . . . . 2306 4.6.18 घटकों के साथ पूर्वनिर्मित लाइब्रेरी का उपयोग करना । । । । । । । । । । । । । । । । । । । 2307 4.6.19 कस्टम CMake परियोजनाओं में ESP-IDF का उपयोग करना । । । । । । । । । । । । । । । । । । । 2307 4.6.20 ESP-IDF CMake बिल्ड सिस्टम API । । । । । । । । । । । । । । । । । । । । । 2308 4.6.21 File ग्लोबिंग और वृद्धिशील बिल्ड . ... 2313 4.6.24 ESP-IDF GNU मेक सिस्टम से माइग्रेट करना । । । । । । । । । । । । । । । । । । 2315 4.7 कोर डंप । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । 2316 4.7.1 खत्मview . ... . . . . . . . . . . . 2317 4.7.4 UART में कोर डंप प्रिंट करें . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.5 बैकट्रेस में ROM फ़ंक्शन . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.6 मांग पर डंपिंग चर . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2318 4.7.7 espcoredump.py चलाना . . . . . . . . . . . . . . . . . . . . . . 2319 4.8 डीप स्लीप वेक स्टब्स . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.1 वेक स्टब्स के लिए नियम . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.2 एक स्टब को लागू करना . . . . . . . . . . . . . . . . . . . . . . . 2322 4.8.3 आरटीसी मेमोरी में कोड लोड करना . . . . . . . . . . . . . . . . . . . . 2322 4.8.4 आरटीसी मेमोरी में डेटा लोड करना . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.5 वेक स्टब्स के लिए सीआरसी जाँच . . . . . . . . . . . . . . . . . . . . . . 2323 4.8.6 एक्सample . ...view . ... . . . 2324 4.9.4 ESP_ERROR_CHECK मैक्रो . ... 2325 4.9.7 ESP_GOTO_ON_ERROR मैक्रो । । । । । । । । । । । । । । । । । । । । 2325 4.9.8 ESP_RETURN_ON_FALSE मैक्रो । । । । । । । । । । । । । । । । । । । । 2325 4.9.9 ESP_GOTO_ON_FALSE मैक्रो । । । । । । । । । । । । । । । । । । । । । । । । । . 2325 4.9.10 मैक्रोज़ की जाँच करेंampलेस . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.11 त्रुटि हैंडलिंग पैटर्न . . . . . . . . . . . . . . . . . . . . . . . . . 2326 4.9.12 सी++ अपवाद . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10 ईएसपी-वाईफ़ाई-मेश . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.1 ओवरview . ... . . . . . . . . . . . 2329 4.10.4 नेटवर्क बनाना . . . . . . . . . . . . . . . . . . . . . . . . 2334 4.10.5 नेटवर्क का प्रबंधन . . . . . . . . . . . . . . . . . . . . . . . 2339 4.10.6 डेटा ट्रांसमिशन . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2342 4.10.7 चैनल स्विचिंग . . . . . . . . . . . . . . . . . . . . . . . . . 2344
iv

4.10.8 प्रदर्शन . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2347 4.10.9 आगे के नोट्स . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11 इवेंट हैंडलिंग . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.1 वाई-फाई, ईथरनेट, और आईपी इवेंट्स . . . . . . . . . . . . . . . . . . . . . . . . . 2348 4.11.2 मेश इवेंट्स . . . . . . . . . . . . . . . . . . . . . . . . . . . 2349 4.11.3 ब्लूटूथ इवेंट्स . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12 घातक त्रुटियाँ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.1 ओवरview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.2 पैनिक हैंडलर . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.3 रजिस्टर डंप और बैकट्रेस . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2351 4.12.4 जीडीबी स्टब . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2353 4.12.5 आरटीसी वॉचडॉग टाइमआउट . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.6 गुरु ध्यान त्रुटियाँ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.7 अन्य घातक त्रुटियाँ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2356 4.13 फ़्लैश एन्क्रिप्शन . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2358 4.13.1 परिचय . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.2 प्रासंगिक ईफ़्यूज़ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.3 फ्लैश एन्क्रिप्शन प्रक्रिया . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.4 फ़्लैश एन्क्रिप्शन कॉन्फ़िगरेशन . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.5 संभावित विफलताएँ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2366 4.13.6 ESP32 फ़्लैश एन्क्रिप्शन स्थिति . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.7 एन्क्रिप्टेड फ्लैश में डेटा पढ़ना और लिखना . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.8 एन्क्रिप्टेड फ़्लैश अद्यतन करना . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.9 फ़्लैश एन्क्रिप्शन अक्षम करना . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.10 फ्लैश एन्क्रिप्शन के बारे में मुख्य बिंदु . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.11 फ्लैश एन्क्रिप्शन की सीमाएँ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.12 फ्लैश एन्क्रिप्शन और सुरक्षित बूट . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.13 उन्नत सुविधाएँ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.14 तकनीकी विवरण . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14 हार्डवेयर अमूर्तन . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14.1 आर्किटेक्चर . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2374 4.14.2 एलएल (निम्न स्तर) परत . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2375 4.14.3 एचएएल (हार्डवेयर एब्स्ट्रैक्शन लेयर) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2376 4.15 उच्च-स्तरीय व्यवधान . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.1 इंटरप्ट स्तर . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.2 नोट्स . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TAG डिबगिंग . ... . . . . . . . . . . . . . . . . . . . 2379 4.16.3 J का चयन करनाTAG एडाप्टर . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.4 ओपनओसीडी का सेटअप . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.5 ईएसपी32 लक्ष्य को कॉन्फ़िगर करना . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2380 4.16.6 डीबगर लॉन्च कर रहा है . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.7 डीबगिंग Exampलेस . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.8 स्रोतों से ओपनओसीडी का निर्माण . . . . . . . . . . . . . . . . . . . . . 2386 4.16.9 टिप्स और विचित्रता . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2391 4.16.10 संबंधित दस्तावेज़ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2396 4.17 लिंकर स्क्रिप्ट जनरेशन . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2421 4.17.1 ओवरview . ... . . . . . . . 2424 4.18 lwIP . ... . ... . . . . . . 2435 4.18.5 IPv6 समर्थन . ...
v

4.18.7 प्रदर्शन अनुकूलन . ...
4.19.1 DRAM (डेटा RAM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2439 4.19.2 IRAM (निर्देश RAM) . . . . . . . . . . . . . . . . . . . . . . . 2440 4.19.3 IROM (फ़्लैश से निष्पादित कोड) . . . . . . . . . . . . . . . . . . . . . . . . . 2441 4.19.4 DROM (फ्लैश में संग्रहीत डेटा) . ... . . . . . . . . . . . . . . . . . . 2441 4.19.7 DMA सक्षम आवश्यकता . ... . ... . ...view . ... . . . . . . . . 2445 4.21.4 बाइनरी पार्टीशन टेबल बनाना . ... . . . . . . . . . . . . 2449 4.21.7 विभाजन उपकरण (parttool.py) . . . . . . . . . . . . . . . . . . . . . . . . . 2449 4.22 प्रदर्शन . . . . . . . . . . . . . . . . . . . . . . . . . 2450 4.22.1 प्रदर्शन को अनुकूलित कैसे करें . . . . . . . . . . . ... . . . 2468 4.23.1 आंशिक अंशांकन . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2468 4.23.2 पूर्ण अंशांकन . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.3 कोई अंशांकन नहीं . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2469 4.23.4 PHY आरंभीकरण डेटा . ... . ...view . ... . . . . . . . . . 2474 4.24.5 सुरक्षित बूट सक्षम कैसे करें . ... . . . . 2475 4.24.8 छवियों का दूरस्थ हस्ताक्षर . ... . . . . . . . . . . . . 2476 4.24.11 सुरक्षित बूट और फ्लैश एन्क्रिप्शन . ... . . 2478 4.25 सुरक्षित बूट V2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2478 4.25.1 पृष्ठभूमि . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479 4.25.2 एडवानtages . ... . . . . . . . . 2480 4.25.5 सुरक्षित पैडिंग . ... . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.8 बूटलोडर आकार . ... 2481 4.25.10 सिक्योर बूट V2 को कैसे सक्षम करें . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2481 4.25.11 सिक्योर बूट सक्षम होने के बाद प्रतिबंध . . . . . . . . . . . . . . . . . . . . . . 2482 4.25.12 सिक्योर बूट हस्ताक्षर कुंजी उत्पन्न करना . . . . . . . . . . . . . . . . . . . . 2482
vi

4.25.13 छवियों का दूरस्थ हस्ताक्षर . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2483 4.25.14 सुरक्षित बूट सर्वोत्तम अभ्यास . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.15 तकनीकी विवरण . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2484 4.25.16 सुरक्षित बूट और फ्लैश एन्क्रिप्शन . ... 2485 4.26 बाहरी RAM के लिए समर्थन . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.1 परिचय . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.2 हार्डवेयर . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2485 4.26.3 बाहरी RAM कॉन्फ़िगर करना . ... . ... . . . 2488 4.27.1 ओवरview . ... . . . . . . . . . . . . . . . . 2489 4.27.4 C11 मानक . ... 2489 4.28.1 आईडीएफ फ्रंटएंड – idf.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2489 4.28.2 आईडीएफ डॉकर इमेज . . . . . . . . . . . . . . . . . . . . . . . . . . 2493 4.28.3 आईडीएफ विंडोज इंस्टॉलर . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2495 4.28.4 IDF घटक प्रबंधक . ... . ... 2512 4.29.2 मल्टी-डिवाइस परीक्षण मामले . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2513 4.29.3 मल्टी-डिवाइस परीक्षण मामले .tagई टेस्ट केस. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.4 विभिन्न लक्ष्यों के लिए परीक्षण . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.5 बिल्डिंग यूनिट टेस्ट ऐप . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.6 यूनिट परीक्षण चलाना . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.7 कैश मुआवजा टाइमर के साथ टाइमिंग कोड . . . . . . . . . . . . . . . . . . . . . . . 2516 4.29.8 मोक्स . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2517 4.30 लिनक्स पर यूनिट परीक्षण . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.1 एम्बेडेड सॉफ्टवेयर परीक्षण . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.2 लिनक्स होस्ट पर आईडीएफ यूनिट परीक्षण . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2520 4.31 वाई-फाई ड्राइवर. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.1 ESP32 वाई-फाई सुविधा सूची . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.2 वाई-फाई एप्लीकेशन कैसे लिखें . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.3 ESP32 वाई-फाई एपीआई त्रुटि कोड . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.4 ESP32 वाई-फाई एपीआई पैरामीटर आरंभीकरण . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.5 ESP32 वाई-फाई प्रोग्रामिंग मॉडल . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.6 ESP32 वाई-फाई इवेंट विवरण . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523 4.31.7 ESP32 वाई-फाई स्टेशन सामान्य परिदृश्य . . . . . . . . . . . . . . . . . . . . . . . . . . . 2526 4.31.8 ESP32 वाई-फाई एपी सामान्य परिदृश्य . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.9 ESP32 वाई-फाई स्कैन . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.10 ESP32 वाई-फाई स्टेशन कनेक्टिंग परिदृश्य . . . . . . . . . . . . . . . . . . . . . . . . . 2536 4.31.11 ESP32 वाई-फाई स्टेशन कनेक्ट हो रहा है जब एकाधिक APs पाए जाते हैं। . . . . . . . . . . . . 2543 4.31.12 वाई-फाई पुनः कनेक्ट . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.13 वाई-फाई बीकन टाइमआउट . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.14 ESP32 वाई-फाई कॉन्फ़िगरेशन . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.15 वाई-फाई इजी कनेक्टTM (डीपीपी) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.16 वायरलेस नेटवर्क प्रबंधन . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.17 रेडियो संसाधन मापन . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.18 फास्ट बीएसएस संक्रमण . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.19 ESP32 वाई-फाई पावर-सेविंग मोड . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.20 ESP32 वाई-फाई थ्रूपुट . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
सातवीं

4.31.21 वाई-फाई 80211 पैकेट भेजें । । । । । । । । । । । । । । । । । । । । । । । 2552 4.31.22 वाई-फाई स्निफर मोड । । । । । । । । । । । । । । । । । । । । । । । । । । 2554 4.31.23 वाई-फाई मल्टीपल एंटेना । । । । । । । । । । । । । । । । । । । । । । . . . . . . . . . . . . . . . . 2554 4.31.24 वाई-फाई चैनल स्थिति जानकारी . ... . . . . . . . . . . . . . . . . . 2557 4.31.27 वाई-फाई क्यूओएस। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.28 वाई-फाई एएमएसडीयू। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.29 वाई-फाई फ़्रैगमेंट . ... . ... . ... . 2568 4.32.2 संरक्षित प्रबंधन फ़्रेम (पीएमएफ) . . . . . . . . . . . . . . . . . . . . . . . . . 2571 4.32.3 वाईफाई एंटरप्राइज़ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.4 WPA3-पर्सनल . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2572 4.32.5 वाई-फाई एन्हांस्ड ओपनTM . ...view . ... 2574 4.33.4 सह-अस्तित्व सुविधा का उपयोग कैसे करें । । । । । । । । । । । । । । । । । । । । 2576 4.34 पुनरुत्पादनीय बिल्ड । । । । । । । । । । । । । । । । । । । । । । । । । । । 2577 4.34.1 परिचय । । । । । । । । । । । । । । । । । । । । । । । । । । । . . . . . . . . . . . . . . 2577 4.34.2 गैर-पुनरुत्पादनीय बिल्ड के कारण . . . . . . . . . . . . . . . . . . . . . . 2577 4.34.3 ईएसपी-आईडीएफ में पुनरुत्पादनीय बिल्ड को सक्षम करना . . . . . . . . . . . . . . . . . . . . . 2577 4.34.4 पुनरुत्पादनीय बिल्ड कैसे प्राप्त किए जाते हैं . . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.5 पुनरुत्पादनीय बिल्ड और डिबगिंग . . . . . . . . . . . . . . . . . . . . . . . 2578 4.34.6 कारक जो अभी भी पुनरुत्पादनीय बिल्ड को प्रभावित करते हैं . . . . . . . . . . . . . . . . . . . . 2578 4.35 कम पावर मोड उपयोगकर्ता गाइड . . . . . . . . . . . . . . . . . . . . . . . . . 2578

5 प्रवासन मार्गदर्शिकाएँ

2579

5.1 ईएसपी-आईडीएफ 5.x माइग्रेशन गाइड . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579

5.1.1 4.4 से 5.0 तक माइग्रेशन . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579

6 लाइब्रेरी और फ्रेमवर्क

2611

6.1 क्लाउड फ्रेमवर्क . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.1 ईएसपी रेनमेकर . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.2 एडब्ल्यूएस IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.3 Azure IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.4 गूगल IoT कोर . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.5 अलीयुन IoT। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.6 जॉयलिंक IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611

6.1.7 Tencent IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.1.8 टेनसेंट्युन IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.1.9 बायडू IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.2 एस्प्रेसिफ़न्स फ्रेमवर्क . ...

6.2.1 एस्प्रेसिफ ऑडियो डेवलपमेंट फ्रेमवर्क . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612

6.2.2 ईएसपी-सीएसआई . ...

6.2.3 एस्प्रेसिफ डीएसपी लाइब्रेरी . ...

6.2.4 ईएसपी-वाईफाई-मेश विकास फ्रेमवर्क . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

6.2.5 ईएसपी-डब्ल्यूएचओ . ...

6.2.6 ईएसपी रेनमेकर . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

6.2.7 ईएसपी-आईओटी-समाधान . ...

6.2.8 ईएसपी-प्रोटोकॉल . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613

आठवीं

6.2.9 ईएसपी-बीएसपी . ...

7 योगदान मार्गदर्शिका

2615

7.1 योगदान कैसे करें . ...

7.2 योगदान करने से पहले . ...

7.3 पुल अनुरोध प्रक्रिया . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615

7.4 कानूनी भाग . ...

7.5 संबंधित दस्तावेज़ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616

7.5.1 एस्प्रेसिफ IoT डेवलपमेंट फ्रेमवर्क स्टाइल गाइड . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616

7.5.2 ESP-IDF प्रोजेक्ट के लिए प्री-कमिट हुक स्थापित करें . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2623

7.5.3 कोड का दस्तावेजीकरण . ...

7.5.4 Ex बनानाampलेस. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2629

7.5.5 एपीआई दस्तावेज़ीकरण टेम्पलेट . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2630

7.5.6 योगदानकर्ता अनुबंध . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2632

7.5.7 कॉपीराइट हेडर गाइड . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2634

7.5.8 पायटेस्ट गाइड के साथ ESP-IDF परीक्षण . ...

8 ईएसपी-आईडीएफ संस्करण

2645

8.1 रिलीज़ . ...

8.2 मुझे किस संस्करण से शुरुआत करनी चाहिए?

8.3 संस्करण योजना . ...

8.4 समर्थन अवधि . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2646

8.5 वर्तमान संस्करण की जाँच करना . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2647

8.6 Git वर्कफ़्लो . ...

8.7 ESP-IDF अपडेट करना . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648

8.7.1 स्थिर रिलीज़ में अपडेट करना . ...

8.7.2 प्री-रिलीज़ संस्करण में अपडेट करना . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.3 मास्टर शाखा में अद्यतन करना . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649

8.7.4 रिलीज़ शाखा में अद्यतन करना . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2650

9 संसाधन

2651

9.1 प्लेटफ़ॉर्मआईओ . ...

9.1.1 PlatformIO क्या है?

9.1.2 स्थापना . ...

9.1.3 कॉन्फ़िगरेशन . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.4 ट्यूटोरियल . ...

9.1.5 परियोजना पूर्वampलेस। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652

9.1.6 अगले चरण . ...

9.2 उपयोगी लिंक . ...

10 कॉपीराइट और लाइसेंस

2653

10.1 सॉफ्टवेयर कॉपीराइट . ...

10.1.1 फर्मवेयर घटक . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653

10.1.2 दस्तावेज़ीकरण . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654

10.2 ROM स्रोत कोड कॉपीराइट . ...

10.3 Xtensa Libhal MIT लाइसेंस। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655

10.4 टाइनीबेसिक प्लस एमआईटी लाइसेंस। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655

10.5 TJpgDec लाइसेंस . ...

11 के बारे में

2657

12 भाषाओं के बीच स्विच करें

2659

अनुक्रमणिका

2661

अनुक्रमणिका

2661

ix

x

विषयसूची
यह एस्प्रेसिफ़ IoT डेवलपमेंट फ्रेमवर्क (esp-idf) का दस्तावेज़ है। ESP-IDF, ESP32, ESP32-S और ESP32-C सीरीज़ SoCs के लिए आधिकारिक डेवलपमेंट फ्रेमवर्क है। यह दस्तावेज़ ESP32 SoC के साथ ESP-IDF के उपयोग का वर्णन करता है।

शुरू हो जाओ

एपीआई संदर्भ

एपीआई गाइड

एस्प्रेसिफ सिस्टम्स

1 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

विषयसूची

एस्प्रेसिफ सिस्टम्स

2 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1
शुरू हो जाओ
यह दस्तावेज़ आपको एस्प्रेसिफ़ द्वारा ESP32 चिप पर आधारित हार्डवेयर के लिए सॉफ़्टवेयर डेवलपमेंट परिवेश सेट अप करने में मदद करने के लिए है। इसके बाद, एक सरल उदाहरणampमैं आपको दिखाऊंगा कि मेनू कॉन्फ़िगरेशन के लिए ESP-IDF (एस्प्रेसिफ़ IoT डेवलपमेंट फ्रेमवर्क) का उपयोग कैसे करें, फिर ESP32 बोर्ड पर फर्मवेयर बनाने और फ्लैश करने के लिए।
नोट: यह ESP-IDF के स्थिर संस्करण v5.0.9 के लिए दस्तावेज़ है। अन्य ESP-IDF संस्करण भी उपलब्ध हैं।
1.1 परिचय
ESP32 एक चिप पर आधारित सिस्टम है जो निम्नलिखित सुविधाओं को एकीकृत करता है: · वाई-फाई (2.4 गीगाहर्ट्ज बैंड) · ब्लूटूथ · दोहरे उच्च प्रदर्शन वाले Xtensa® 32-बिट LX6 CPU कोर · अल्ट्रा लो पावर को-प्रोसेसर · एकाधिक परिधीय उपकरण
40 एनएम तकनीक द्वारा संचालित, ESP32 एक मज़बूत, अत्यधिक एकीकृत प्लेटफ़ॉर्म प्रदान करता है जो कुशल ऊर्जा उपयोग, कॉम्पैक्ट डिज़ाइन, सुरक्षा, उच्च प्रदर्शन और विश्वसनीयता की निरंतर माँगों को पूरा करने में मदद करता है। एस्प्रेसिफ़, एप्लिकेशन डेवलपर्स को ESP32 श्रृंखला हार्डवेयर का उपयोग करके अपने विचारों को साकार करने में मदद करने के लिए बुनियादी हार्डवेयर और सॉफ़्टवेयर संसाधन प्रदान करता है। एस्प्रेसिफ़ द्वारा विकसित सॉफ़्टवेयर विकास ढाँचा वाई-फ़ाई, ब्लूटूथ, पावर प्रबंधन और कई अन्य सिस्टम सुविधाओं के साथ इंटरनेट ऑफ़ थिंग्स (IoT) अनुप्रयोगों के विकास के लिए डिज़ाइन किया गया है।
1.2 आपको क्या चाहिए
1.2.1 हार्डवेयर
· एक ESP32 बोर्ड। · USB केबल - USB A / माइक्रो USB B। · Windows, Linux, या macOS चलाने वाला कंप्यूटर।
नोट: फ़िलहाल, कुछ डेवलपमेंट बोर्ड USB टाइप C कनेक्टर का इस्तेमाल कर रहे हैं। सुनिश्चित करें कि आपके पास अपने बोर्ड को जोड़ने के लिए सही केबल है!
यदि आपके पास नीचे सूचीबद्ध ESP32 आधिकारिक विकास बोर्डों में से एक है, तो आप हार्डवेयर के बारे में अधिक जानने के लिए लिंक पर क्लिक कर सकते हैं।
3

अध्याय 1. आरंभ करें
ESP32-डेवकिटएस(-R)
यह उपयोगकर्ता मार्गदर्शिका ESP32-DevKitS(-R) के बारे में जानकारी प्रदान करती है, जो एस्प्रेसिफ़ द्वारा निर्मित एक ESP32-आधारित फ्लैशिंग बोर्ड है। ESP32-DevKitS(-R) दो बोर्ड नामों का संयोजन है: ESP32-DevKitS और ESP32-DevKitS-R। S का अर्थ है स्प्रिंग और R का अर्थ है WROVER।

ईएसपी32-डेवकिटएस

ESP32-DevKitS-R

दस्तावेज़ में निम्नलिखित प्रमुख खंड शामिल हैं: · आरंभ करना: एक अवलोकन प्रदान करता हैview आरंभ करने के लिए ESP32-DevKitS(-R) और हार्डवेयर/सॉफ़्टवेयर सेटअप निर्देशों का विवरण। · हार्डवेयर संदर्भ: ESP32-DevKitS(-R)ns हार्डवेयर के बारे में अधिक विस्तृत जानकारी प्रदान करता है। · संबंधित दस्तावेज़: संबंधित दस्तावेज़ों के लिंक प्रदान करता है।

आरंभ करना यह खंड ESP32-DevKitS(-R) के साथ आरंभ करने का तरीका बताता है। इसकी शुरुआत ESP32-DevKitS(-R) के बारे में कुछ परिचयात्मक खंडों से होती है, फिर "बोर्ड कैसे फ्लैश करें" खंड ESP32-DevKitS(-R) पर मॉड्यूल माउंट करने, उसे तैयार करने और उस पर फ़र्मवेयर फ्लैश करने के निर्देश प्रदान करता है।

ऊपरview ESP32-DevKitS(-R), Espressifns का एक फ्लैशिंग बोर्ड है जिसे विशेष रूप से ESP32 के लिए डिज़ाइन किया गया है। इसका उपयोग ESP32 मॉड्यूल को पावर सप्लाई और सिग्नल लाइनों से सोल्डर किए बिना फ्लैश करने के लिए किया जा सकता है। मॉड्यूल माउंट होने पर, ESP32-DevKitS(-R) को ESP32-DevKitC की तरह एक मिनी डेवलपमेंट बोर्ड के रूप में भी इस्तेमाल किया जा सकता है।
ESP32-DevKitS और ESP32-DevKitS-R बोर्ड केवल निम्नलिखित ESP32 मॉड्यूलों को फिट करने के लिए स्प्रिंग पिन के लेआउट में भिन्न होते हैं।
· ESP32-DevKitS: ESP32-WROOM-32 ESP32-WROOM-32D ESP32-WROOM-32U ESP32-SOLO-1 ESP32-WROOM-32E ESP32-WROOM-32UE
· ESP32-DevKitS-R: ESP32-WROVER (PCB और IPEX) ESP32-WROVER-B (PCB और IPEX) ESP32-WROVER-E ESP32-WROVER-IE
उपरोक्त मॉड्यूल के बारे में जानकारी के लिए कृपया ESP32 श्रृंखला मॉड्यूल देखें।

घटकों का विवरण

एस्प्रेसिफ सिस्टम्स

4 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें

चित्र 1: ESP32-DevKitS – सामने

एस्प्रेसिफ सिस्टम्स

चित्र 2: ESP32-DevKitS-R – सामने 5
दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें

मुख्य घटक स्प्रिंग पिन 2.54 मिमी महिला हेडर
यूएसबी-टू-यूएआरटी ब्रिज एलडीओ माइक्रो-यूएसबी कनेक्टर/माइक्रो यूएसबी पोर्ट EN बटन बूट बटन
एलईडी पर बिजली

विवरण: मॉड्यूल पर क्लिक करें। पिन मॉड्यूल के कैस्टेलेटेड छेदों में फिट हो जाएँगे। ये फीमेल हेडर इस बोर्ड पर लगे मॉड्यूल के पिन से जुड़े हैं। फीमेल हेडर के विवरण के लिए, कृपया हेडर ब्लॉक देखें। सिंगल-चिप USB से UART ब्रिज 3 Mbps तक की ट्रांसफर दर प्रदान करता है।
5V-से-3.3V कम-ड्रॉपआउट वॉल्यूमtagई नियामक (एलडीओ)।
यूएसबी इंटरफ़ेस। बोर्ड के लिए बिजली आपूर्ति तथा कंप्यूटर और बोर्ड के बीच संचार इंटरफ़ेस।
बटन को रीसेट करें।
डाउनलोड बटन: बूट को दबाकर रखने और फिर EN दबाने से सीरियल पोर्ट के माध्यम से फर्मवेयर डाउनलोड करने के लिए फर्मवेयर डाउनलोड मोड शुरू हो जाता है।
यूएसबी या बिजली की आपूर्ति बोर्ड से कनेक्ट होने पर चालू हो जाता है।

बोर्ड को फ्लैश कैसे करें अपने ESP32-DevKitS(-R) को चालू करने से पहले, कृपया सुनिश्चित करें कि यह अच्छी स्थिति में है और इसमें क्षति के कोई स्पष्ट संकेत नहीं हैं।
आवश्यक हार्डवेयर · आपकी पसंद का एक ESP32 मॉड्यूल · USB 2.0 केबल (स्टैंडर्ड-A से माइक्रो-B) · Windows, Linux, या macOS चलाने वाला कंप्यूटर
हार्डवेयर सेटअप कृपया निम्नलिखित चरणों के अनुसार अपने ESP32-DevKitS(-R) पर अपनी पसंद का मॉड्यूल माउंट करें:
· अपने मॉड्यूल को ESP32-DevKitS(-R) बोर्ड पर धीरे से लगाएँ। सुनिश्चित करें कि आपके मॉड्यूल के कैस्टेलेटेड छेद बोर्ड पर स्प्रिंग पिन के साथ संरेखित हों।
· अपने मॉड्यूल को बोर्ड में तब तक दबाएँ जब तक कि उसमें क्लिक की आवाज़ न आने लगे। · जाँच करें कि क्या सभी स्प्रिंग पिन कैस्टेलेटेड छेदों में लगे हैं। अगर कुछ स्प्रिंग पिन गलत संरेखित हैं, तो
उन्हें चिमटी की सहायता से जालीनुमा छेदों में रखें।
सॉफ्टवेयर सेटअप
पसंदीदा तरीका ESP-IDF डेवलपमेंट फ्रेमवर्क, ESP32-DevKitS(-R) पर बाइनरीज़ को फ्लैश करने का एक पसंदीदा तरीका प्रदान करता है। कृपया "आरंभ करें" पर जाएँ, जहाँ "इंस्टॉलेशन" सेक्शन आपको डेवलपमेंट एनवायरनमेंट को तुरंत सेट अप करने और फिर किसी एप्लिकेशन को फ्लैश करने में मदद करेगा।ampअपने ESP32-DevKitS(-R) पर ले जाएँ।
वैकल्पिक तरीका: एक विकल्प के तौर पर, विंडोज़ उपयोगकर्ता फ़्लैश डाउनलोड टूल का उपयोग करके बाइनरी फ़ाइलों को फ़्लैश कर सकते हैं। बस इसे डाउनलोड करें, अनज़िप करें, और डॉक फ़ोल्डर में दिए गए निर्देशों का पालन करें।
नोट: 1. बाइनरी फ्लैश करने के लिए files, ESP32 को फ़र्मवेयर डाउनलोड मोड पर सेट किया जाना चाहिए। यह फ़्लैश टूल द्वारा स्वचालित रूप से किया जा सकता है, या बूट बटन को दबाकर और EN बटन को टैप करके किया जा सकता है। 2. बाइनरी फ़्लैश करने के बाद files, फ्लैश डाउनलोड टूल आपके ESP32 मॉड्यूल को पुनः आरंभ करता है और डिफ़ॉल्ट रूप से फ्लैश किए गए एप्लिकेशन को बूट करता है।

बोर्ड आयाम, सामग्री और पैकेजिंग

एस्प्रेसिफ सिस्टम्स

6 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें चित्र 3: ESP32-DevKitS बोर्ड आयाम - पीछे

एस्प्रेसिफ सिस्टम्स

चित्र 4: ESP32-DevKitS-R बोर्ड आयाम – पीछे 7
दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें
खुदरा ऑर्डर यदि आप कुछ ऑर्डर करते हैंampप्रत्येक ESP32-DevKitS(-R) एक अलग पैकेज में आता है, या तो एंटीस्टेटिक बैग में या किसी भी पैकेजिंग में, जो विक्रेता पर निर्भर करता है। खुदरा ऑर्डर के लिए, कृपया https://www.espressif.com/en/contact-us/get-s पर जाएँ।ampलेस.
थोक ऑर्डर: अगर आप थोक में ऑर्डर करते हैं, तो बोर्ड बड़े कार्डबोर्ड बॉक्स में आते हैं। थोक ऑर्डर के लिए, कृपया https://www.espressif.com/en/contact-us/sales-questions पर जाएँ।
हार्डवेयर संदर्भ
ब्लॉक आरेख नीचे दिया गया ब्लॉक आरेख ESP32-DevKitS(-R) के घटकों और उनके अंतर्संबंधों को दर्शाता है।

चित्र 5: ESP32-DevKitS(-R) (बड़ा करने के लिए क्लिक करें)
पावर सप्लाई विकल्प बोर्ड को पावर प्रदान करने के तीन परस्पर अनन्य तरीके हैं: · माइक्रो यूएसबी पोर्ट, डिफ़ॉल्ट पावर सप्लाई · 5V और GND हेडर पिन · 3V3 और GND हेडर पिन
पहले विकल्प का उपयोग करने की सलाह दी जाती है: माइक्रो यूएसबी पोर्ट।

एस्प्रेसिफ सिस्टम्स

.

लेबल सिग्नल

L1 3V3 VDD 3V3

L2 EN CHIP_PU

L3 VP सेंसर_VP

L4 VN सेंसर_VN

एल5 34

जीपीआईओ ०

एल6 35

जीपीआईओ ०

एल7 32

जीपीआईओ ०

एल8 33

जीपीआईओ ०

अगले पृष्ठ पर जारी

8 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें

तालिका 1 पिछले पृष्ठ से जारी

.

लेबल सिग्नल

एल9 25

जीपीआईओ ०

एल10 26

जीपीआईओ ०

एल11 27

जीपीआईओ ०

एल12 14

जीपीआईओ ०

एल13 12

जीपीआईओ ०

एल14 जीएनडी जीएनडी

एल15 13

जीपीआईओ ०

L16 D2 SD_DATA2

L17 D3 SD_DATA3

L18 सीएमडी SD_CMD

एल 19 5 वी

बाहरी 5V

आर1 जीएनडी जीएनडी

आर2 23

जीपीआईओ ०

आर3 22

जीपीआईओ ०

आर4 TX U0TXD

आर5 आरएक्स यू0आरएक्सडी

आर6 21

जीपीआईओ ०

आर7 जीएनडी जीएनडी

आर8 19

जीपीआईओ ०

आर9 18

जीपीआईओ ०

आर10 5

जीपीआईओ ०

आर11 17

जीपीआईओ ०

आर12 16

जीपीआईओ ०

आर13 4

जीपीआईओ ०

आर14 0

जीपीआईओ ०

आर15 2

जीपीआईओ ०

आर16 15

जीपीआईओ ०

R17 D1 SD_DATA1

R18 D0 SD_DATA0

R19 CLK SD_CLK

हेडर ब्लॉक हेडर ब्लॉक की छवि के लिए, कृपया घटकों का विवरण देखें।

संबंधित दस्ताबेज़
· ESP32-DevKitS(-R) स्कीमैटिक्स (PDF) · ESP32 डेटाशीट (PDF) · ESP32-WROOM-32 डेटाशीट (PDF) · ESP32-WROOM-32D और ESP32-WROOM-32U डेटाशीट (PDF) · ESP32-SOLO-1 डेटाशीट (PDF) · ESP32-WROVER डेटाशीट (PDF) · ESP32-WROVER-B डेटाशीट (PDF) · ESP उत्पाद चयनकर्ता

ESP32-DevKitM-1

यह उपयोगकर्ता मार्गदर्शिका आपको ESP32-DevKitM-1 के साथ आरंभ करने में मदद करेगी और अधिक गहन जानकारी भी प्रदान करेगी।
ESP32-DevKitM-1, एस्प्रेसिफ़ द्वारा निर्मित एक ESP32-MINI-1(1U)-आधारित विकास बोर्ड है। अधिकांश I/O पिन आसान इंटरफेसिंग के लिए दोनों तरफ पिन हेडर में विभाजित हैं। उपयोगकर्ता बाह्य उपकरणों को जम्पर तारों से जोड़ सकते हैं या ESP32-DevKitM-1 को ब्रेडबोर्ड पर माउंट कर सकते हैं।

एस्प्रेसिफ सिस्टम्स

9 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें

ESP32-DevKitM-1 - सामने

ESP32-DevKitM-1 – आइसोमेट्रिक

दस्तावेज़ में निम्नलिखित प्रमुख खंड शामिल हैं: · आरंभ करना: एक अवलोकन प्रदान करता हैview आरंभ करने के लिए ESP32-DevKitM-1 और हार्डवेयर/सॉफ्टवेयर सेटअप निर्देशों का विवरण देखें। · हार्डवेयर संदर्भ: ESP32-DevKitM-1ns हार्डवेयर के बारे में अधिक विस्तृत जानकारी प्रदान करता है। · संबंधित दस्तावेज़: संबंधित दस्तावेज़ों के लिंक प्रदान करता है।

आरंभ करना यह खंड ESP32-DevKitM-1 के साथ आरंभ करने का तरीका बताता है। इसकी शुरुआत ESP32-DevKitM-1 के बारे में कुछ परिचयात्मक खंडों से होती है, फिर अनुप्रयोग विकास आरंभ करें खंड प्रारंभिक हार्डवेयर सेटअप और फिर ESP32-DevKitM-1 पर फ़र्मवेयर फ़्लैश करने के निर्देश प्रदान करता है।

ऊपरview यह एक छोटा और सुविधाजनक विकास बोर्ड है जिसमें विशेषताएं हैं:
· ESP32-MINI-1, या ESP32-MINI-1U मॉड्यूल · USB-से-सीरियल प्रोग्रामिंग इंटरफ़ेस जो बोर्ड के लिए बिजली की आपूर्ति भी प्रदान करता है · पिन हेडर · फर्मवेयर डाउनलोड मोड को रीसेट और सक्रिय करने के लिए पुशबटन · कुछ अन्य घटक

सामग्री और पैकेजिंग

खुदरा ऑर्डर यदि आप कुछ ऑर्डर करते हैंampप्रत्येक ESP32-DevKitM-1 एक व्यक्तिगत पैकेज में या तो एंटीस्टेटिक बैग में या आपके रिटेलर के आधार पर किसी भी पैकेजिंग में आता है।
खुदरा ऑर्डर के लिए, कृपया https://www.espressif.com/en/contact-us/get-s पर जाएंampलेस.

थोक ऑर्डर: अगर आप थोक में ऑर्डर करते हैं, तो बोर्ड बड़े कार्डबोर्ड बॉक्स में आते हैं। थोक ऑर्डर के लिए, कृपया https://www.espressif.com/en/contact-us/sales-questions पर जाएँ।

घटकों का विवरण: नीचे दिया गया चित्र और तालिका ESP32-DevKitM-1 बोर्ड के प्रमुख घटकों, इंटरफेस और नियंत्रणों का वर्णन करती है। हम एक उदाहरण के रूप में ESP32-MINI-1 मॉड्यूल वाले बोर्ड को लेते हैं।ampनिम्नलिखित अनुभागों में ले.

एस्प्रेसिफ सिस्टम्स

10 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें

चित्र 6: ESP32-DevKitM-1 – सामने

मुख्य घटक ऑन-बोर्ड मॉड्यूल
5 V से 3.3 V LDO बूट बटन
रीसेट बटन माइक्रो-यूएसबी पोर्ट
यूएसबी-टू-यूएआरटी ब्रिज 3.3 वी पावर ऑन एलईडी
I/O कनेक्टर

विवरण
ESP32-MINI-1 मॉड्यूल या ESP32-MINI-1U मॉड्यूल। ESP32-MINI-1 एक ऑन-बोर्ड PCB एंटीना के साथ आता है। ESP32-MINI-1U एक बाहरी एंटीना कनेक्टर के साथ आता है। दोनों मॉड्यूल में 4MB का फ्लैश इन-चिप पैकेज है। अधिक जानकारी के लिए, कृपया ESP32-MINI-1 और ESP32-MINI-1U डेटाशीट देखें।
पावर रेगुलेटर 5 V को 3.3 V में परिवर्तित करता है।
डाउनलोड बटन: बूट बटन को दबाकर रखने और फिर रीसेट बटन दबाने से सीरियल पोर्ट के माध्यम से फर्मवेयर डाउनलोड करने के लिए फर्मवेयर डाउनलोड मोड शुरू हो जाता है।
बटन को रीसेट करें
USB इंटरफ़ेस। बोर्ड के लिए बिजली की आपूर्ति और साथ ही कंप्यूटर और ESP32 चिप के बीच संचार इंटरफ़ेस।
एकल USB-UART ब्रिज चिप 3 एमबीपीएस तक स्थानांतरण दर प्रदान करता है।
USB को बोर्ड से कनेक्ट करने पर यह चालू हो जाता है। अधिक जानकारी के लिए, कृपया संबंधित दस्तावेज़ों में आरेख देखें। सभी उपलब्ध GPIO पिन (फ़्लैश के लिए SPI बस को छोड़कर) बोर्ड पर पिन हेडर में विभाजित हैं। उपयोगकर्ता ESP32 चिप को कई कार्यों को सक्षम करने के लिए प्रोग्राम कर सकते हैं।

एप्लिकेशन डेवलपमेंट प्रारंभ करें अपने ESP32-DevKitM-1 को चालू करने से पहले, कृपया सुनिश्चित करें कि यह अच्छी स्थिति में है और इसमें क्षति के कोई स्पष्ट संकेत नहीं हैं।
आवश्यक हार्डवेयर · ESP32-DevKitM-1 · USB 2.0 केबल (स्टैंडर्ड-A से माइक्रो-B) · Windows, Linux, या macOS चलाने वाला कंप्यूटर
सॉफ्टवेयर सेटअप कृपया आरंभ करने के लिए आगे बढ़ें, जहां अनुभाग स्थापना आपको विकास वातावरण को स्थापित करने और फिर एक एप्लिकेशन को फ्लैश करने में त्वरित रूप से मदद करेगीampअपने ESP32-DevKitM-1 पर ले जाएँ।

एस्प्रेसिफ सिस्टम्स

11 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें
ध्यान दें: 2 दिसंबर, 2021 से पहले निर्मित ESP32-DevKitM-1 बोर्डों में सिंगल-कोर मॉड्यूल स्थापित है। आपके पास कौन सा मॉड्यूल है, यह सत्यापित करने के लिए, कृपया PCN-2021-021 में मॉड्यूल मार्किंग जानकारी देखें। यदि आपके बोर्ड में सिंगल-कोर मॉड्यूल स्थापित है, तो कृपया अपने एप्लिकेशन फ़्लैश करने से पहले मेनूकॉन्फ़िगरेशन में सिंगल-कोर मोड (CONFIG_FREERTOS_UNICORE) सक्षम करें।
हार्डवेयर संदर्भ ब्लॉक आरेख नीचे दिया गया ब्लॉक आरेख ESP32-DevKitM-1 के घटकों और उनके अंतर्संबंधों को दर्शाता है।

चित्र 7: ESP32-DevKitM-1
पावर स्रोत का चयन बोर्ड को पावर प्रदान करने के तीन परस्पर अनन्य तरीके हैं: · माइक्रो यूएसबी पोर्ट, डिफ़ॉल्ट पावर सप्लाई · 5V और GND हेडर पिन · 3V3 और GND हेडर पिन
चेतावनी: · बिजली की आपूर्ति उपरोक्त विकल्पों में से केवल एक का उपयोग करके ही प्रदान की जानी चाहिए, अन्यथा बोर्ड और/या बिजली आपूर्ति स्रोत क्षतिग्रस्त हो सकता है। · माइक्रो यूएसबी पोर्ट द्वारा बिजली की आपूर्ति की सिफारिश की जाती है।

पिन विवरण: नीचे दी गई तालिका बोर्ड के दोनों ओर स्थित पिनों के नाम और कार्य दर्शाती है। परिधीय पिन विन्यास के लिए, कृपया ESP32 डेटाशीट देखें।

नहीं।

नाम

प्रकार

1

जीएनडी

P

2

3वी3

P

फ़ंक्शन ग्राउंड 3.3 V पावर सप्लाई

अगले पृष्ठ पर जारी

एस्प्रेसिफ सिस्टम्स

12 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें

तालिका 2 पिछले पृष्ठ से जारी

नहीं।

नाम

प्रकार

समारोह

3

I36

I

GPIO36, ADC1_CH0, RTC_GPIO0

4

I37

I

GPIO37, ADC1_CH1, RTC_GPIO1

5

I38

I

GPIO38, ADC1_CH2, RTC_GPIO2

6

I39

I

GPIO39, ADC1_CH3, RTC_GPIO3

7

आरएसटी

I

रीसेट करें; उच्च: सक्षम करें; निम्न: बंद करें

8

I34

I

GPIO34, ADC1_CH6, RTC_GPIO4

9

I35

I

GPIO35, ADC1_CH7, RTC_GPIO5

10

IO32

आई/ओ

GPIO32, XTAL_32K_P (32.768 kHz क्रिस्टल ऑसिलेटर इनपुट),

ADC1_CH4, TOUCH9, RTC_GPIO9

11

IO33

आई/ओ

GPIO33, XTAL_32K_N (32.768 kHz क्रिस्टल ऑसिलेटर आउटपुट),

ADC1_CH5, TOUCH8, RTC_GPIO8

12

IO25

आई/ओ

GPIO25, DAC_1, ADC2_CH8, RTC_GPIO6, EMAC_RXD0

13

IO26

आई/ओ

GPIO26, DAC_2, ADC2_CH9, RTC_GPIO7, EMAC_RXD1

14

IO27

आई/ओ

GPIO27, ADC2_CH7, TOUCH7, RTC_GPIO17, EMAC_RX_DV

15

IO14

आई/ओ

GPIO14, ADC2_CH6, TOUCH6, RTC_GPIO16, MTMS, HSPICLK,

HS2_CLK, SD_CLK, EMAC_TXD2

16

5V

P

5 वी बिजली आपूर्ति

17

IO12

आई/ओ

GPIO12, ADC2_CH5, TOUCH5, RTC_GPIO15, MTDI, HSPIQ,

HS2_DATA2, SD_DATA2, EMAC_TXD3

18

IO13

आई/ओ

GPIO13, ADC2_CH4, TOUCH4, RTC_GPIO14, MTCK, HSPID,

HS2_DATA3, SD_DATA3, EMAC_RX_ER

19

IO15

आई/ओ

GPIO15, ADC2_CH3, TOUCH3, RTC_GPIO13, MTDO, HSPICS0,

HS2_CMD, SD_CMD, EMAC_RXD3

20

IO2

आई/ओ

GPIO2, ADC2_CH2, टच2, RTC_GPIO12, HSPIWP,

HS2_DATA0, SD_DATA0

21

IO0

आई/ओ

GPIO0, ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1,

EMAC_TX_CLK

22

IO4

आई/ओ

GPIO4, ADC2_CH0, TOUCH0, RTC_GPIO10, HSPIHD,

HS2_DATA1, SD_DATA1, EMAC_TX_ER

23

IO9

आई/ओ

GPIO9, HS1_DATA2, U1RXD, SD_DATA2

24

IO10

आई/ओ

GPIO10, HS1_DATA3, U1TXD, SD_DATA3

25

IO5

आई/ओ

GPIO5, HS1_DATA6, VSPICS0, EMAC_RX_CLK

26

IO18

आई/ओ

GPIO18, HS1_DATA7, VSPICLK

27

IO23

आई/ओ

GPIO23, HS1_STROBE, VSPID

28

IO19

आई/ओ

GPIO19, VSPIQ, U0CTS, EMAC_TXD0

29

IO22

आई/ओ

GPIO22, VSPIWP, U0RTS, EMAC_TXD1

30

IO21

आई/ओ

GPIO21, VSPIHD, EMAC_TX_EN

31

TXD0

आई/ओ

GPIO1, U0TXD, CLK_OUT3, EMAC_RXD2

32

आरएक्सडी0

आई/ओ

GPIO3, U0RXD, CLK_OUT2

हार्डवेयर संशोधन विवरण कोई पिछला संस्करण उपलब्ध नहीं है।
संबंधित दस्ताबेज़
· ESP32-MINI-1 और ESP32-MINI-1U डेटाशीट (PDF) · ESP32-DevKitM-1 स्कीमैटिक्स (PDF) · ESP32-DevKitM-1 PCB लेआउट (PDF) · ESP32-DevKitM-1 लेआउट (DXF) – आप कर सकते हैं view इसे Autodesk के साथ Viewऑनलाइन · ESP32 डेटाशीट (PDF) · ESP उत्पाद चयनकर्ता
बोर्ड के लिए अन्य डिज़ाइन दस्तावेज़ों के लिए कृपया हमसे sales@espressif.com पर संपर्क करें।

एस्प्रेसिफ सिस्टम्स

13 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें
1.2.2 सॉफ्टवेयर
ESP32 पर ESP-IDF का उपयोग शुरू करने के लिए, निम्नलिखित सॉफ़्टवेयर स्थापित करें: · ESP32 के लिए कोड संकलित करने हेतु टूलचेन · निर्माण उपकरण - ESP32 के लिए पूर्ण अनुप्रयोग बनाने हेतु CMake और Ninja · ESP-IDF जिसमें अनिवार्य रूप से ESP32 के लिए API (सॉफ़्टवेयर लाइब्रेरी और स्रोत कोड) और टूलचेन को संचालित करने हेतु स्क्रिप्ट शामिल हैं

1.3 स्थापना
सभी आवश्यक सॉफ़्टवेयर इंस्टॉल करने के लिए, हम इस कार्य को आसान बनाने के लिए कुछ अलग तरीके सुझाते हैं। उपलब्ध विकल्पों में से किसी एक को चुनें।
1.3.1 आईडीई

नोट: हम आपके पसंदीदा IDE के माध्यम से ESP-IDF को स्थापित करने की अत्यधिक अनुशंसा करते हैं।
· एक्लिप्स प्लगइन · VSCode एक्सटेंशन

1.3.2 मैनुअल इंस्टॉलेशन
मैन्युअल प्रक्रिया के लिए कृपया अपने ऑपरेटिंग सिस्टम के अनुसार चयन करें।

एस्प्रेसिफ सिस्टम्स

14 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें
विंडोज के लिए टूलचेन का मानक सेटअप
परिचय ESP-IDF के लिए कुछ पूर्वापेक्षित उपकरणों को स्थापित करना आवश्यक है ताकि आप समर्थित चिप्स के लिए फ़र्मवेयर बना सकें। पूर्वापेक्षित उपकरणों में पायथन, Git, क्रॉस-कंपाइलर, CMake और निंजा बिल्ड टूल शामिल हैं। इसके लिए हम कमांड प्रॉम्प्ट का उपयोग करने जा रहे हैं, लेकिन ESP-IDF स्थापित होने के बाद आप इसके बजाय Eclipse प्लगइन या CMake समर्थन वाले किसी अन्य ग्राफ़िकल IDE का उपयोग कर सकते हैं। नोट: सीमाएँ: - ESP-IDF और ESP-IDF टूल्स का इंस्टॉलेशन पथ 90 वर्णों से अधिक लंबा नहीं होना चाहिए। बहुत लंबे इंस्टॉलेशन पथ के परिणामस्वरूप बिल्ड विफल हो सकता है। - पायथन या ESP-IDF के इंस्टॉलेशन पथ में रिक्त स्थान या कोष्ठक नहीं होने चाहिए। - पायथन या ESP-IDF के इंस्टॉलेशन पथ में विशेष वर्ण (nonASCII) नहीं होने चाहिए, जब तक कि ऑपरेटिंग सिस्टम को oUnicode UTF-8p समर्थन के साथ कॉन्फ़िगर न किया गया हो। सिस्टम प्रशासक नियंत्रण कक्ष के माध्यम से समर्थन को सक्षम कर सकता है - दिनांक, समय या संख्या प्रारूप बदलें - प्रशासनिक टैब - सिस्टम लोकेल बदलें - विकल्प की जांच करें oबीटा: दुनिया भर में भाषा समर्थन के लिए यूनिकोड UTF-8 का उपयोग करेंp - ठीक है और कंप्यूटर को रीबूट करें।
ESP-IDF टूल्स इंस्टॉलर ESP-IDFns पूर्वापेक्षाएँ स्थापित करने का सबसे आसान तरीका ESP-IDF टूल्स इंस्टॉलर में से एक को डाउनलोड करना है।

Windows इंस्टालर डाउनलोड करें
ऑनलाइन और ऑफलाइन इंस्टॉलर का उपयोग क्या है? ऑनलाइन इंस्टॉलर बहुत छोटा है और ESP-IDF के सभी उपलब्ध संस्करणों को इंस्टॉल करने की अनुमति देता है। इंस्टॉलेशन प्रक्रिया के दौरान, इंस्टॉलर केवल आवश्यक निर्भरताएँ ही डाउनलोड करेगा, जिसमें Git For Windows भी शामिल है। इंस्टॉलर डाउनलोड की गई फ़ाइलों को संग्रहीत करता है। fileकैश निर्देशिका में %userprofile%. एस्प्रेसिफ़
ऑफ़लाइन इंस्टॉलर के लिए किसी नेटवर्क कनेक्शन की आवश्यकता नहीं है। इंस्टॉलर में Git For Windows सहित सभी आवश्यक निर्भरताएँ शामिल हैं।
स्थापना के घटक इंस्टॉलर निम्नलिखित घटकों को तैनात करता है:
· एम्बेडेड पायथन · क्रॉस-कंपाइलर · ओपनओसीडी · सीएमके और निंजा बिल्ड टूल्स · ईएसपी-आईडीएफ
इंस्टॉलर ESP-IDF के साथ मौजूदा निर्देशिका का पुनः उपयोग करने की भी अनुमति देता है। अनुशंसित निर्देशिका %userpro हैfile%Desktopesp-idf जहाँ %userprofile% आपकी होम निर्देशिका है.

एस्प्रेसिफ सिस्टम्स

15 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें
ESP-IDF वातावरण लॉन्च करना। इंस्टॉलेशन प्रक्रिया के अंत में, आप "ESP-IDF PowerShell वातावरण चलाएँ" या "ESP-IDF कमांड प्रॉम्प्ट चलाएँ (cmd.exe)" विकल्प देख सकते हैं। इंस्टॉलर चयनित प्रॉम्प्ट में ESP-IDF वातावरण लॉन्च करेगा। ESP-IDF PowerShell वातावरण चलाएँ:

चित्र 8: ESP-IDF PowerShell वातावरण चलाकर ESP-IDF उपकरण सेटअप विज़ार्ड को पूरा करना
ESP-IDF कमांड प्रॉम्प्ट (cmd.exe) चलाएँ:
कमांड प्रॉम्प्ट का उपयोग करना: शेष आरंभिक चरणों के लिए, हम Windows कमांड प्रॉम्प्ट का उपयोग करेंगे। ESP-IDF टूल्स इंस्टॉलर, ESP-IDF कमांड प्रॉम्प्ट को लॉन्च करने के लिए स्टार्ट मेनू में एक शॉर्टकट भी बनाता है। यह शॉर्टकट कमांड प्रॉम्प्ट (cmd.exe) लॉन्च करता है और पर्यावरण चर (PATH, IDF_PATH और अन्य) सेट करने के लिए export.bat स्क्रिप्ट चलाता है। इस कमांड प्रॉम्प्ट के अंदर, सभी इंस्टॉल किए गए टूल उपलब्ध होते हैं। ध्यान दें कि यह शॉर्टकट ESP-IDF टूल्स इंस्टॉलर में चयनित ESP-IDF निर्देशिका के लिए विशिष्ट है। यदि आपके कंप्यूटर पर कई ESP-IDF निर्देशिकाएँ हैं (उदाहरण के लिए,amp(उदाहरण के लिए, ESP-IDF के विभिन्न संस्करणों के साथ काम करने के लिए), आपके पास इनका उपयोग करने के लिए दो विकल्प हैं:
1. ESP-IDF टूल्स इंस्टॉलर द्वारा बनाए गए शॉर्टकट की एक प्रतिलिपि बनाएं, और नए शॉर्टकट की कार्यशील निर्देशिका को उस ESP-IDF निर्देशिका में बदलें जिसका आप उपयोग करना चाहते हैं।
2. वैकल्पिक रूप से, cmd.exe चलाएँ, फिर उस ESP-IDF निर्देशिका में जाएँ जिसका आप उपयोग करना चाहते हैं, और export.bat चलाएँ। ध्यान दें कि पिछले विकल्प के विपरीत, इस तरीके के लिए PATH में Python और Git का होना आवश्यक है। यदि आपको Python या Git न मिलने से संबंधित त्रुटियाँ मिलती हैं, तो पहले विकल्प का उपयोग करें।
First Steps on ESP-IDF Now since all requirements are met, the next topic will guide you on how to start your first project.

एस्प्रेसिफ सिस्टम्स

16 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें चित्र 9: ESP-IDF PowerShell

चित्र 10: ESP-IDF कमांड प्रॉम्प्ट चलाकर ESP-IDF टूल सेटअप विज़ार्ड को पूरा करना (cmd.exe)

एस्प्रेसिफ सिस्टम्स

17 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें

चित्र 11: ESP-IDF कमांड प्रॉम्प्ट

एस्प्रेसिफ सिस्टम्स

18 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें
यह मार्गदर्शिका आपको ESP-IDF का उपयोग करने के शुरुआती चरणों में मदद करेगी। ESP32 पर एक नया प्रोजेक्ट शुरू करने और डिवाइस आउटपुट का निर्माण, फ़्लैश और निगरानी करने के लिए इस मार्गदर्शिका का पालन करें। नोट: यदि आपने अभी तक ESP-IDF इंस्टॉल नहीं किया है, तो कृपया इंस्टॉलेशन पर जाएँ और इस मार्गदर्शिका का उपयोग करने के लिए आवश्यक सभी सॉफ़्टवेयर प्राप्त करने हेतु निर्देशों का पालन करें।

प्रोजेक्ट शुरू करें अब आप ESP32 के लिए अपना एप्लिकेशन तैयार करने के लिए तैयार हैं। आप getstarted/hello_world प्रोजेक्ट से शुरुआत कर सकते हैं।ampईएसपी-आईडीएफ में निर्देशिका।
महत्वपूर्ण: ESP-IDF बिल्ड सिस्टम ESP-IDF या परियोजनाओं के पथों में रिक्त स्थान का समर्थन नहीं करता है।
प्रोजेक्ट get-started/hello_world को ~/esp निर्देशिका में कॉपी करें: cd %userprofile%esp xcopy /e /i %IDF_PATH%examplesget-startedhello_world hello_world
नोट: इसमें पूर्व की एक सीमा हैampपूर्व में ले परियोजनाओंampईएसपी-आईडीएफ में निर्देशिका। आप किसी भी प्रोजेक्ट को उसी तरह कॉपी कर सकते हैं जैसे ऊपर प्रस्तुत किया गया है और उसे चला सकते हैं। पूर्व का निर्माण भी संभव हैampपहले उन्हें कॉपी किए बिना उन्हें जगह में रखें।

अपना डिवाइस कनेक्ट करें अब अपने ESP32 बोर्ड को कंप्यूटर से कनेक्ट करें और देखें कि बोर्ड किस सीरियल पोर्ट के नीचे दिखाई दे रहा है। विंडोज़ में सीरियल पोर्ट के नाम COM से शुरू होते हैं। अगर आपको सीरियल पोर्ट का नाम जाँचने का तरीका नहीं पता है, तो कृपया पूरी जानकारी के लिए ESP32 के साथ सीरियल कनेक्शन स्थापित करें देखें।
नोट: पोर्ट नाम अपने पास रखें क्योंकि अगले चरणों में आपको इसकी आवश्यकता होगी।

अपने प्रोजेक्ट को कॉन्फ़िगर करें अपने hello_world निर्देशिका पर जाएँ, ESP32 को लक्ष्य के रूप में सेट करें, और प्रोजेक्ट कॉन्फ़िगरेशन उपयोगिता menuconfig चलाएँ।
विंडोज़ सीडी %userprofile%esphello_world idf.py सेट-टारगेट esp32 idf.py मेनूकॉन्फ़िगरेशन
एक नया प्रोजेक्ट खोलने के बाद, आपको सबसे पहले idf.py set-target esp32 के साथ लक्ष्य सेट करना चाहिए। ध्यान दें कि प्रोजेक्ट में मौजूदा बिल्ड और कॉन्फ़िगरेशन, यदि कोई हों, इस प्रक्रिया में साफ़ और आरंभ किए जाएँगे। इस चरण को छोड़ने के लिए लक्ष्य को पर्यावरण चर में सहेजा जा सकता है। अतिरिक्त जानकारी के लिए लक्ष्य चिप चुनें: set-target देखें। यदि पिछले चरण सही ढंग से किए गए हैं, तो निम्न मेनू दिखाई देगा: आप इस मेनू का उपयोग प्रोजेक्ट-विशिष्ट चर, जैसे वाई-फ़ाई नेटवर्क का नाम और पासवर्ड, प्रोसेसर की गति, आदि सेट करने के लिए कर रहे हैं। ohello_wordp के लिए menuconfig के साथ प्रोजेक्ट सेट करना छोड़ा जा सकता है, क्योंकि यह उदाहरणample डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ चलता है.
ध्यान दें: यदि आप ESP32-SOLO-1 मॉड्यूल के साथ ESP32-DevKitC बोर्ड का उपयोग करते हैं, या ESP32-MIN1-1(1U) मॉड्यूल के साथ ESP32-DevKitM-1 बोर्ड का उपयोग करते हैं, तो कृपया ex फ़्लैश करने से पहले menuconfig में सिंगल कोर मोड (CONFIG_FREERTOS_UNICORE) सक्षम करें।ampलेस.

एस्प्रेसिफ सिस्टम्स

19 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें

चित्र 12: परियोजना कॉन्फ़िगरेशन - होम विंडो
नोट: आपके टर्मिनल में मेनू के रंग अलग हो सकते हैं। आप –style विकल्प से उनका रंग-रूप बदल सकते हैं। अधिक जानकारी के लिए कृपया idf.py menuconfig –help चलाएँ।
यदि आप समर्थित विकास बोर्डों में से किसी एक का उपयोग कर रहे हैं, तो आप बोर्ड समर्थन पैकेज का उपयोग करके अपने विकास को गति दे सकते हैं। अधिक जानकारी के लिए अतिरिक्त सुझाव देखें।
प्रोजेक्ट बनाएं प्रोजेक्ट बनाएं:
idf.py बिल्ड
यह कमांड एप्लिकेशन और सभी ESP-IDF घटकों को संकलित करेगा, फिर यह बूटलोडर, पार्टीशन टेबल और एप्लिकेशन बायनेरिज़ उत्पन्न करेगा।
$ idf.py build /path/to/hello_world/build निर्देशिका में cmake चला रहा है “cmake -G Ninja –warn-uninitialized /path/to/hello_world” निष्पादित कर रहा है… अप्रारंभीकृत मानों के बारे में चेतावनी। — Git मिला: /usr/bin/git (संस्करण “2.17.0” मिला) — कॉन्फ़िगरेशन के कारण रिक्त aws_iot घटक का निर्माण — घटक नाम: … — घटक पथ: …
... (बिल्ड सिस्टम आउटपुट की अधिक लाइनें)
[527/527] hello_world.bin esptool.py v2.3.1 जनरेट किया जा रहा है
प्रोजेक्ट निर्माण पूर्ण। फ़्लैश करने के लिए, यह कमांड चलाएँ: ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash -flash_mode dio –flash_size detect –flash_freq 40m 0x10000 build/hello_world. bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/ partition-table.bin या 'idf.py -p PORT flash' चलाएँ
यदि कोई त्रुटि नहीं है, तो फर्मवेयर बाइनरी उत्पन्न करके निर्माण समाप्त हो जाएगा files.

एस्प्रेसिफ सिस्टम्स

20 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें
डिवाइस पर फ़्लैश करें आपके द्वारा अभी-अभी बनाए गए बाइनरीज़ (bootloader.bin, partition-table.bin और hello_world.bin) को अपने ESP32 बोर्ड पर चलाकर फ़्लैश करें: idf.py -p PORT [-b BAUD] flash
PORT को अपने ESP32 बोर्डन्स सीरियल पोर्ट नाम से बदलें। आप BAUD को अपनी ज़रूरत के अनुसार बॉड दर से बदलकर फ्लैशर बॉड दर भी बदल सकते हैं। डिफ़ॉल्ट बॉड दर 460800 है। idf.py तर्कों के बारे में अधिक जानकारी के लिए, idf.py देखें।
नोट: विकल्प फ्लैश स्वचालित रूप से प्रोजेक्ट का निर्माण और फ्लैश करता है, इसलिए idf.py build चलाना आवश्यक नहीं है।

फ़्लैश करते समय समस्याएँ आ रही हैं? यदि आप दिए गए कमांड को चलाते हैं और "कनेक्ट करने में विफल" जैसी त्रुटियाँ देखते हैं, तो इसके कई कारण हो सकते हैं। esptool.py में आ रही समस्याएँ एक कारण हो सकती हैं। यह एक ऐसी उपयोगिता है जिसे बिल्ड सिस्टम चिप को रीसेट करने, ROM बूटलोडर के साथ इंटरैक्ट करने और फ़र्मवेयर फ़्लैश करने के लिए कॉल करता है। एक आसान उपाय है मैन्युअल रीसेट, जिसका वर्णन नीचे किया गया है, और यदि इससे मदद नहीं मिलती है, तो आप समस्या निवारण में संभावित समस्याओं के बारे में अधिक जानकारी प्राप्त कर सकते हैं।
esptool.py USB से सीरियल कन्वर्टर चिप, यानी FTDI या CP210x, की DTR और RTS नियंत्रण रेखाओं को सक्रिय करके ESP32 को स्वचालित रूप से रीसेट करता है (अधिक जानकारी के लिए, ESP32 के साथ सीरियल कनेक्शन स्थापित करें देखें)। DTR और RTS नियंत्रण रेखाएँ ESP32 के GPIO0 और CHIP_PU (EN) पिनों से जुड़ी होती हैं, जिससे वॉल्यूम में परिवर्तन होता है।tagDTR और RTS के स्तर ESP32 को फ़र्मवेयर डाउनलोड मोड में बूट कर देंगे। एक उदाहरण के रूप मेंampकृपया, ESP32 DevKitC विकास बोर्ड के लिए योजनाबद्ध की जाँच करें।
सामान्य तौर पर, आपको आधिकारिक esp-idf डेवलपमेंट बोर्ड के साथ कोई समस्या नहीं होनी चाहिए। हालाँकि, esptool.py निम्नलिखित मामलों में आपके हार्डवेयर को स्वचालित रूप से रीसेट नहीं कर पाता है:
· आपके हार्डवेयर में GPIO0 और CHIP_PU से जुड़ी DTR और RTS लाइनें नहीं हैं · DTR और RTS लाइनें अलग तरीके से कॉन्फ़िगर की गई हैं · ऐसी कोई सीरियल नियंत्रण लाइनें नहीं हैं
आपके पास मौजूद हार्डवेयर के प्रकार के आधार पर, आपके ESP32 बोर्ड को मैन्युअल रूप से फर्मवेयर डाउनलोड मोड (रीसेट) में डालना भी संभव हो सकता है।
· एस्प्रेसिफ़ द्वारा निर्मित विकास बोर्डों के लिए, यह जानकारी संबंधित आरंभिक मार्गदर्शिकाओं या उपयोगकर्ता मार्गदर्शिकाओं में पाई जा सकती है। उदाहरण के लिएampउदाहरण के लिए, ESP-IDF विकास बोर्ड को मैन्युअल रूप से रीसेट करने के लिए, बूट बटन (GPIO0) को दबाए रखें और EN बटन (CHIP_PU) दबाएँ।
· अन्य प्रकार के हार्डवेयर के लिए, GPIO0 को नीचे खींचने का प्रयास करें।

सामान्य ऑपरेशन फ्लैश करते समय, आपको निम्न के समान आउटपुट लॉग दिखाई देगा:
… esptool.py –chip esp32 -p /dev/ttyUSB0 -b 460800 –before=default_reset -after=hard_reset write_flash –flash_mode dio –flash_freq 40m –flash_size 2MB 0x8000 partition_table/partition-table.bin 0x1000 bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev सीरियल पोर्ट /dev/ttyUSB0 कनेक्ट हो रहा है…….._ चिप ESP32D0WDQ6 (संशोधन 0) है विशेषताएं: WiFi, BT, डुअल कोर, कोडिंग स्कीम कोई नहीं क्रिस्टल 40MHz है MAC: 24:0a:c4:05:b9:14 स्टब अपलोड हो रहा है… स्टब चल रहा है… स्टब चल रहा है… बॉड दर को बदल रहा है 460800 परिवर्तित.
(अगले पृष्ठ पर जारी)

एस्प्रेसिफ सिस्टम्स

21 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें
(पिछले पृष्ठ से जारी) फ़्लैश आकार कॉन्फ़िगर करना... 3072 बाइट्स को 103 में संपीड़ित किया गया... 0x00008000 पर लेखन... (100%) 0x00008000 पर 0.0 सेकंड में 3072 बाइट्स (103 संपीड़ित) लिखे गए (प्रभावी 5962.8 kbit/s)... डेटा हैश सत्यापित। 26096 बाइट्स को 15408 में संपीड़ित किया गया... 0x00001000 पर लेखन... (100%) 0x00001000 पर 0.4 सेकंड में 26096 बाइट्स (15408 संपीड़ित) लिखे गए (प्रभावी 546.7 kbit/s)... डेटा हैश सत्यापित। 147104 बाइट्स को 77364 में संपीड़ित किया गया… 0x00010000 पर लिखा गया… (20%) 0x00014000 पर लिखा गया… (40%) 0x00018000 पर लिखा गया… (60%) 0x0001c000 पर लिखा गया… (80%) 0x00020000 पर लिखा गया… (100%) 1.9 सेकंड में 0x00010000 पर 147104 बाइट्स (77364 संपीड़ित) लिखा गया (प्रभावी 615. 5 kbit/s)… डेटा का हैश सत्यापित।
जा रहा है... आरटीएस पिन के माध्यम से हार्ड रीसेटिंग... हो गया
यदि फ़्लैश प्रक्रिया के अंत तक कोई समस्या नहीं आती है, तो बोर्ड रीबूट हो जाएगा और ohello_worldp एप्लिकेशन शुरू हो जाएगा। यदि आप idf.py चलाने के बजाय Eclipse या VS Code IDE का उपयोग करना चाहते हैं, तो Eclipse प्लगइन, VSCode एक्सटेंशन देखें।
आउटपुट की निगरानी करें यह जांचने के लिए कि क्या ohello_worldpis वास्तव में चल रहा है, idf.py -p PORT monitor टाइप करें (PORT को अपने सीरियल पोर्ट नाम से बदलना न भूलें)।
यह आदेश आईडीएफ मॉनिटर एप्लिकेशन लॉन्च करता है:
$ idf.py -p मॉनिटर निर्देशिका में idf_monitor चल रहा है […]/esp/hello_world/build “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf”… — idf_monitor चालू 115200 —– बाहर निकलें: Ctrl+] | मेनू: Ctrl+T | सहायता: Ctrl+T के बाद Ctrl+H –ets 8 जून 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) ets जून 8 2016 00:22:57 …
स्टार्टअप और डायग्नोस्टिक लॉग स्क्रॉल करने के बाद, आपको एप्लिकेशन द्वारा प्रिंट किया गया oHello world!p दिखाई देना चाहिए।
... नमस्ते दुनिया! 10 सेकंड में रीस्टार्ट हो रहा है... यह esp32 चिप है जिसमें 2 CPU कोर, WiFi/BT/BLE, सिलिकॉन रिवीजन 1, 2MB एक्सटर्नल फ़्लैश है। न्यूनतम फ्री हीप साइज़: 298968 बाइट्स। 9 सेकंड में रीस्टार्ट हो रहा है... 8 सेकंड में रीस्टार्ट हो रहा है... 7 सेकंड में रीस्टार्ट हो रहा है...
IDF मॉनिटर से बाहर निकलने के लिए शॉर्टकट Ctrl+] का उपयोग करें।

एस्प्रेसिफ सिस्टम्स

22 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें
यदि अपलोड के तुरंत बाद IDF मॉनिटर विफल हो जाता है, या यदि ऊपर दिए गए संदेशों के बजाय, आपको नीचे दिए गए संदेश जैसा कोई बेतरतीब कचरा दिखाई देता है, तो संभवतः आपका बोर्ड 26 MHz क्रिस्टल का उपयोग कर रहा है। अधिकांश डेवलपमेंट बोर्ड डिज़ाइन 40 MHz का उपयोग करते हैं, इसलिए ESP-IDF इस आवृत्ति को डिफ़ॉल्ट मान के रूप में उपयोग करता है।

यदि आपके पास ऐसी कोई समस्या है, तो निम्न कार्य करें: 1. मॉनिटर से बाहर निकलें। 2. मेनूकॉन्फ़िगरेशन पर वापस जाएं। 3. घटक कॉन्फ़िगरेशन > हार्डवेयर सेटिंग्स > मुख्य XTAL कॉन्फ़िगरेशन > मुख्य XTAL आवृत्ति पर जाएं, फिर CONFIG_XTAL_FREQ_SEL को 26 मेगाहर्ट्ज में बदलें। 4. इसके बाद, एप्लिकेशन को फिर से बनाएं और फ्लैश करें।
ESP-IDF के वर्तमान संस्करण में, ESP32 द्वारा समर्थित मुख्य XTAL आवृत्तियाँ इस प्रकार हैं:
· 26 मेगाहर्ट्ज · 40 मेगाहर्ट्ज
नोट: आप बिल्डिंग, फ्लैशिंग और मॉनिटरिंग को एक चरण में संयोजित कर सकते हैं: idf.py -p PORT flash monitor
यह भी देखें: · IDF मॉनिटर का उपयोग करने के लिए आसान शॉर्टकट और अधिक जानकारी के लिए IDF मॉनिटर देखें। · idf.py कमांड और विकल्पों के पूर्ण संदर्भ के लिए idf.py देखें।
ESP32 के साथ शुरुआत करने के लिए बस इतना ही! अब आप कुछ और एक्सपीरियंस आज़माने के लिए तैयार हैं।amples, या सीधे अपने स्वयं के अनुप्रयोगों को विकसित करने के लिए जाओ।
महत्वपूर्ण: कुछ पूर्वamples ESP32 को सपोर्ट नहीं करते क्योंकि ESP32 में ज़रूरी हार्डवेयर शामिल नहीं है, इसलिए इसे सपोर्ट नहीं किया जा सकता। अगर आप एक एक्स बना रहे हैंampकृपया README देखें file समर्थित लक्ष्य तालिका के लिए। यदि यह ESP32 लक्ष्य सहित मौजूद है, या तालिका बिल्कुल भी मौजूद नहीं है, तो exampयह ESP32 पर काम करेगा।
अतिरिक्त सुझाव
अनुमति समस्याएँ /dev/ttyUSB0 कुछ Linux वितरणों में, ESP32 फ़्लैश करते समय आपको "पोर्ट /dev/ttyUSB0 खोलने में विफल" त्रुटि संदेश मिल सकता है। वर्तमान उपयोगकर्ता को डायलआउट समूह में जोड़कर इसे हल किया जा सकता है।
पायथन संगतता ESP-IDF, पायथन 3.7 या उसके बाद के संस्करणों का समर्थन करता है। इस आवश्यकता को पूरा करने वाले नवीनतम संस्करण में अपने ऑपरेटिंग सिस्टम को अपग्रेड करने की अनुशंसा की जाती है। अन्य विकल्पों में स्रोतों से पायथन की स्थापना या pyenv जैसे पायथन संस्करण प्रबंधन प्रणाली का उपयोग शामिल है।
बोर्ड सपोर्ट पैकेज से शुरुआत करें कुछ विकास बोर्डों पर प्रोटोटाइपिंग को गति देने के लिए, आप बोर्ड सपोर्ट पैकेज (बीएसपी) का उपयोग कर सकते हैं, जो किसी विशेष बोर्ड को कुछ फ़ंक्शन कॉल के साथ आरंभ करना आसान बनाता है।

एस्प्रेसिफ सिस्टम्स

23 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें

एक BSP आमतौर पर डेवलपमेंट बोर्ड पर उपलब्ध सभी हार्डवेयर घटकों का समर्थन करता है। पिनआउट परिभाषा और आरंभीकरण कार्यों के अलावा, BSP सेंसर, डिस्प्ले, ऑडियो कोडेक्स आदि जैसे बाहरी घटकों के लिए ड्राइवर के साथ आता है। BSPs IDF कंपोनेंट मैनेजर के माध्यम से वितरित किए जाते हैं, इसलिए इन्हें IDF कंपोनेंट रजिस्ट्री में पाया जा सकता है। यहाँ एक उदाहरण हैampअपने प्रोजेक्ट में ESP-WROVER-KIT BSP जोड़ने का तरीका: idf.py add-dependency esp_wrover_kit
अधिक पूर्वampबीएसपी उपयोग के कम उदाहरण बीएसपी उदाहरण में पाए जा सकते हैंampलेस फ़ोल्डर।
संबंधित दस्तावेज़ उन्नत उपयोगकर्ताओं के लिए जो इंस्टॉल प्रक्रिया को अनुकूलित करना चाहते हैं: · विंडोज़ पर ESP-IDF टूल अपडेट करना · ESP32 के साथ सीरियल कनेक्शन स्थापित करना · एक्लिप्स प्लगइन · VSCode एक्सटेंशन · IDF मॉनिटर
विंडोज़ पर ESP-IDF टूल्स को अपडेट करना
स्क्रिप्ट का उपयोग करके ESP-IDF टूल इंस्टॉल करें। Windows कमांड प्रॉम्प्ट से, उस डायरेक्टरी में जाएँ जहाँ ESPIDF इंस्टॉल है। फिर चलाएँ:
इंस्टॉल.बैट
Powershell के लिए, उस डायरेक्टरी में जाएँ जहाँ ESP-IDF इंस्टॉल है। फिर चलाएँ:
install.ps1
This will download and install the tools necessary to use ESP-IDF. If the specific version of the tool is already installed, no action will be taken. The tools are downloaded and installed into a directory specified during ESP-IDF Tools Installer process. By default, this is C:Usersusername.espressif.
एक्सपोर्ट स्क्रिप्ट का उपयोग करके PATH में ESP-IDF टूल्स जोड़ें। ESP-IDF टूल्स इंस्टॉलर, oESP-IDF कमांड प्रॉम्प्ट के लिए एक स्टार्ट मेनू शॉर्टकट बनाता है। यह शॉर्टकट एक कमांड प्रॉम्प्ट विंडो खोलता है जहाँ सभी टूल्स पहले से ही मौजूद होते हैं।
उपलब्ध। कुछ मामलों में, आप उस कमांड प्रॉम्प्ट विंडो में ESP-IDF के साथ काम करना चाह सकते हैं जो उस शॉर्टकट का उपयोग करके शुरू नहीं हुई थी। अगर ऐसा है, तो PATH में ESP-IDF टूल्स जोड़ने के लिए नीचे दिए गए निर्देशों का पालन करें। उस कमांड प्रॉम्प्ट में जहाँ आपको ESP-IDF का उपयोग करना है, उस डायरेक्टरी में जाएँ जहाँ ESP-IDF इंस्टॉल है, फिर export.bat चलाएँ:
सीडी %userprofile%espesp-idf export.bat
वैकल्पिक रूप से, पावरशेल में जहां आपको ESP-IDF का उपयोग करने की आवश्यकता है, उस निर्देशिका में बदलें जहां ESP-IDF स्थापित है, फिर export.ps1 निष्पादित करें:
सीडी ~/esp/esp-idf export.ps1
जब यह कार्य पूरा हो जाएगा, तो उपकरण इस कमांड प्रॉम्प्ट में उपलब्ध हो जाएंगे।
ESP32 के साथ सीरियल कनेक्शन स्थापित करें यह अनुभाग ESP32 और PC के बीच सीरियल कनेक्शन स्थापित करने के बारे में मार्गदर्शन प्रदान करता है।

एस्प्रेसिफ सिस्टम्स

24 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें
ESP32 को PC से कनेक्ट करें। USB केबल का उपयोग करके ESP32 बोर्ड को PC से कनेक्ट करें। यदि डिवाइस ड्राइवर स्वचालित रूप से इंस्टॉल नहीं होता है, तो अपने ESP32 बोर्ड (या बाहरी कनवर्टर डोंगल) पर USB से सीरियल कनवर्टर चिप की पहचान करें, इंटरनेट पर ड्राइवरों की खोज करें और उन्हें इंस्टॉल करें। नीचे Espressif द्वारा निर्मित अधिकांश ESP32 बोर्डों पर इंस्टॉल किए गए USB से सीरियल कनवर्टर चिप्स की सूची दी गई है, साथ ही ड्राइवरों के लिंक भी दिए गए हैं:
· CP210x: CP210x USB से UART ब्रिज VCP ड्राइवर · FTDI: FTDI वर्चुअल COM पोर्ट ड्राइवर। कृपया उपयोग की गई विशिष्ट USB से सीरियल कनवर्टर चिप के लिए बोर्ड उपयोगकर्ता मार्गदर्शिका देखें। ऊपर दिए गए ड्राइवर मुख्यतः संदर्भ के लिए हैं। सामान्य परिस्थितियों में, ड्राइवर किसी ऑपरेटिंग सिस्टम के साथ बंडल किए जाने चाहिए और बोर्ड को PC से कनेक्ट करने पर स्वचालित रूप से इंस्टॉल हो जाने चाहिए।
विंडोज़ पर पोर्ट की जाँच करें। विंडोज़ डिवाइस मैनेजर में पहचाने गए COM पोर्ट की सूची देखें। ESP32 को डिस्कनेक्ट करें और उसे वापस कनेक्ट करें, ताकि यह पता चल सके कि कौन सा पोर्ट सूची से गायब हो गया है और फिर वापस दिखाई दे रहा है। नीचे दिए गए चित्र ESP32 DevKitC और ESP32 WROVER KIT के सीरियल पोर्ट दिखाते हैं।

चित्र 13: विंडोज़ डिवाइस मैनेजर में ESP32-DevKitC का USB से UART ब्रिज

Linux और macOS पर पोर्ट की जाँच करें अपने ESP32 बोर्ड (या बाहरी कनवर्टर डोंगल) के सीरियल पोर्ट के लिए डिवाइस का नाम जाँचने के लिए, इस कमांड को दो बार चलाएँ, पहले बोर्ड/डोंगल को अनप्लग करके, फिर प्लग इन करके। दूसरी बार दिखाई देने वाला पोर्ट वही है जिसकी आपको आवश्यकता है: Linux
एलएस / देव / ट्टी *
मैक ओएस

एस्प्रेसिफ सिस्टम्स

25 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें

चित्र 14: विंडोज़ डिवाइस मैनेजर में ESP-WROVER-KIT के दो USB सीरियल पोर्ट

एस्प्रेसिफ सिस्टम्स

26 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें

ls /dev/cu.* नोट: macOS उपयोगकर्ता: यदि आपको सीरियल पोर्ट दिखाई नहीं देता है, तो जाँच लें कि आपके पास USB/सीरियल ड्राइवर इंस्टॉल हैं। ड्राइवरों के लिंक के लिए "ECP32 को PC से कनेक्ट करें" अनुभाग देखें। macOS हाई सिएरा (10.13) के लिए, आपको ड्राइवरों को लोड करने की स्पष्ट अनुमति भी देनी पड़ सकती है। सिस्टम प्राथमिकताएँ -> सुरक्षा और गोपनीयता -> सामान्य खोलें और जाँचें कि क्या डेवलपर lp की ओर से oSystem सॉफ़्टवेयर के बारे में कोई संदेश यहाँ दिखाया गया है, जहाँ डेवलपर का नाम Silicon Labs या FTDI है।

लिनक्स पर डायलआउट में उपयोगकर्ता जोड़ना वर्तमान में लॉग इन उपयोगकर्ता के पास USB के माध्यम से सीरियल पोर्ट पर पढ़ने और लिखने की पहुँच होनी चाहिए। अधिकांश लिनक्स वितरणों पर, यह निम्न आदेश के साथ उपयोगकर्ता को डायलआउट समूह में जोड़कर किया जाता है:
sudo usermod -a -G डायलआउट $USER
आर्क लिनक्स पर यह उपयोगकर्ता को uucp समूह में निम्नलिखित कमांड के साथ जोड़कर किया जाता है:
सुडो यूजरमॉड -ए -जी यूयूसीपी $ USER
सुनिश्चित करें कि आप सीरियल पोर्ट के लिए पढ़ने और लिखने की अनुमति को सक्षम करने के लिए पुनः लॉगिन करें।
सीरियल कनेक्शन सत्यापित करें अब सत्यापित करें कि सीरियल कनेक्शन चालू है। आप सीरियल टर्मिनल प्रोग्राम का उपयोग करके यह जाँच कर सकते हैं कि ESP32 को रीसेट करने के बाद टर्मिनल पर कोई आउटपुट मिलता है या नहीं। ESP32 पर डिफ़ॉल्ट कंसोल बॉड दर 115200 है।
इस उदाहरण में विंडोज़ और लिनक्सampहम PuTTY SSH क्लाइंट का उपयोग करेंगे जो विंडोज़ और लिनक्स दोनों के लिए उपलब्ध है। आप अन्य सीरियल प्रोग्राम का उपयोग कर सकते हैं और नीचे दिए गए अनुसार संचार पैरामीटर सेट कर सकते हैं। टर्मिनल चलाएँ और निर्धारित सीरियल पोर्ट सेट करें। बॉड दर = 115200 (यदि आवश्यक हो, तो इसे उपयोग में आने वाली चिप की डिफ़ॉल्ट बॉड दर में बदलें), डेटा बिट्स = 8, स्टॉप बिट्स = 1, और पैरिटी = N। नीचे दिए गए उदाहरण हैं।ampविंडोज़ और लिनक्स पर पोर्ट और ऐसे ट्रांसमिशन पैरामीटर (संक्षेप में 115200-8-1-N) सेट करने के स्क्रीनशॉट देखें। याद रखें कि आपको ठीक वही सीरियल पोर्ट चुनना है जो आपने ऊपर दिए गए चरणों में पहचाना है। फिर टर्मिनल में सीरियल पोर्ट खोलें और देखें कि क्या आपको ESP32 द्वारा प्रिंट किया गया कोई लॉग दिखाई देता है। लॉग की सामग्री ESP32 पर लोड किए गए एप्लिकेशन पर निर्भर करेगी, उदाहरण देखें।ampआउटपुट.
नोट: यह सत्यापित करने के बाद कि संचार ठीक से काम कर रहा है, सीरियल टर्मिनल बंद कर दें। यदि आप टर्मिनल सत्र खुला रखते हैं, तो बाद में फ़र्मवेयर अपलोड करने के लिए सीरियल पोर्ट अनुपलब्ध हो जाएगा।

macOS आपको सीरियल टर्मिनल प्रोग्राम इंस्टॉल करने की परेशानी से बचाने के लिए, macOS स्क्रीन कमांड प्रदान करता है। · जैसा कि Linux और macOS पर चेक पोर्ट में चर्चा की गई है, चलाएँ:

ls /dev/cu.* · आपको समान आउटपुट दिखाई देगा:

/dev/cu.ब्लूटूथ-इनकमिंग-पोर्ट /dev/cu.SLAB_USBtoUART USBtoUART7

/dev/cu.SLAB_

· आउटपुट आपके पीसी से जुड़े बोर्ड के प्रकार और संख्या के आधार पर अलग-अलग होगा। फिर अपने बोर्ड का डिवाइस नाम चुनें और चलाएँ (यदि आवश्यक हो, तो o115200p को उपयोग में आने वाली चिप की डिफ़ॉल्ट बॉड दर में बदलें):

स्क्रीन /dev/cu.device_name 115200 device_name को ls /dev/cu.* चलाते समय मिले नाम से बदलें।

एस्प्रेसिफ सिस्टम्स

27 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें

Fig. 15: Setting Serial Communication in PuTTY on Windows

एस्प्रेसिफ सिस्टम्स

28 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें

चित्र 16: Linux पर PuTTY में सीरियल संचार सेट करना

एस्प्रेसिफ सिस्टम्स

29 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें
· आप स्क्रीन पर प्रदर्शित कुछ लॉग देख रहे हैं। लॉग की सामग्री ESP32 पर लोड किए गए एप्लिकेशन पर निर्भर करेगी, उदाहरण देखेंampआउटपुट. स्क्रीन सत्र से बाहर निकलने के लिए Ctrl-A + टाइप करें.
नोट: यह सुनिश्चित करने के बाद कि संचार ठीक से काम कर रहा है, स्क्रीन सत्र से बाहर निकलना न भूलें। यदि आप ऐसा नहीं करते हैं और टर्मिनल विंडो बंद कर देते हैं, तो बाद में फ़र्मवेयर अपलोड करने के लिए सीरियल पोर्ट अनुपलब्ध हो जाएगा।
Exampआउटपुट एक पूर्वampलॉग नीचे दिखाया गया है। अगर आपको कुछ दिखाई न दे, तो बोर्ड रीसेट करें। ets 8 जून 2016 00:22:57
rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) ets 8 जून 2016 00:22:57
rst:0x7 (TG0WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0x00 clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0008,len:8 load:0x3fff0010,len:3464 load:0x40078000,len:7828 load:0x40080000,len:252 entry 0x40080034 I (44) boot: ESP-IDF v2.0-rc1-401-gf9fba35 2nd stagई बूटलोडर I (45) बूट: संकलन समय 18:48:10

यदि आप पठनीय लॉग आउटपुट देख सकते हैं, तो इसका मतलब है कि सीरियल कनेक्शन काम कर रहा है और आप इंस्टॉलेशन के साथ आगे बढ़ने और अंततः ESP32 पर एप्लिकेशन अपलोड करने के लिए तैयार हैं।
नोट: कुछ सीरियल पोर्ट वायरिंग कॉन्फ़िगरेशन के लिए, ESP32 के बूट होने और सीरियल आउटपुट देने से पहले टर्मिनल प्रोग्राम में सीरियल RTS और DTR पिन को अक्षम करना आवश्यक है। यह हार्डवेयर पर निर्भर करता है, अधिकांश डेवलपमेंट बोर्ड (सभी एस्प्रेसिफ़ बोर्ड सहित) में यह समस्या नहीं होती है। यह समस्या तब होती है जब RTS और DTR सीधे EN और GPIO0 पिन से जुड़े होते हैं। अधिक जानकारी के लिए esptool दस्तावेज़ देखें।
यदि आप ESP32 विकास के लिए सॉफ्टवेयर स्थापित करते समय चरण 5. ESP-IDF पर पहला कदम से यहां आए हैं, तो आप चरण 5. ESP-IDF पर पहला कदम के साथ आगे बढ़ सकते हैं।
आईडीएफ मॉनिटर आईडीएफ मॉनिटर मुख्य रूप से एक सीरियल टर्मिनल प्रोग्राम है जो लक्ष्य डिवाइस के सीरियल पोर्ट से सीरियल डेटा रिले करता है। यह कुछ आईडीएफ-विशिष्ट सुविधाएँ भी प्रदान करता है। आईडीएफ मॉनिटर को idf.py मॉनिटर चलाकर किसी आईडीएफ प्रोजेक्ट से लॉन्च किया जा सकता है।
कीबोर्ड शॉर्टकट IDF मॉनिटर के साथ आसान इंटरेक्शन के लिए, तालिका में दिए गए कीबोर्ड शॉर्टकट का उपयोग करें।

एस्प्रेसिफ सिस्टम्स

30 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें

कीबोर्ड शॉर्टकट Ctrl+] Ctrl+T
· Ctrl+T
· Ctrl+] · Ctrl+P
· Ctrl+R
· Ctrl+F
· Ctrl+A (या A)
· Ctrl+Y
· Ctrl+L
· Ctrl+I (या I)
· Ctrl+H (या H)
· Ctrl+X (या X)
Ctrl+सी

कार्रवाई

विवरण

प्रोग्राम से बाहर निकलें मेनू एस्केप कुंजी मेनू वर्ण को स्वयं रिमोट पर भेजें
निकास वर्ण को स्वयं रिमोट पर भेजें
RTS लाइन के माध्यम से ऐप को रोकने के लिए बूटलोडर में लक्ष्य को रीसेट करें
RTS के माध्यम से लक्ष्य बोर्ड को रीसेट करें
प्रोजेक्ट बनाएं और फ्लैश करें

केवल ऐप बनाएं और फ़्लैश करें

स्क्रीन पर लॉग आउटपुट प्रिंटिंग रोकें/फिर से शुरू करें

रोकें/फिर से शुरू करें लॉग आउटपुट सहेजा गया file

रोकें/फिर से शुरू करें समयamps

मुद्रण

सभी कीबोर्ड शॉर्टकट प्रदर्शित करें

नीचे दी गई कुंजियों में से किसी एक को दबाएँ और उसका अनुसरण करें।
RTS लाइन (यदि कनेक्टेड है) के माध्यम से बूटलोडर में टारगेट बोर्ड को रीसेट करता है, ताकि बोर्ड कुछ भी न चलाए। यह तब उपयोगी होता है जब आपको किसी अन्य डिवाइस के स्टार्टअप का इंतज़ार करना पड़े। यह टारगेट बोर्ड को रीसेट करता है और RTS लाइन (यदि कनेक्टेड है) के माध्यम से एप्लिकेशन को फिर से स्टार्ट करता है।
प्रोजेक्ट फ़्लैश लक्ष्य को चलाने के लिए idf_monitor को रोकता है, फिर idf_monitor को पुनः प्रारंभ करता है। कोई भी परिवर्तित स्रोत files को पुनः संकलित किया जाता है और फिर पुनः फ़्लैश किया जाता है। यदि idf_monitor को -E तर्क से प्रारंभ किया गया था, तो लक्ष्य एन्क्रिप्टेड-फ़्लैश चलाया जाता है। ऐप-फ़्लैश लक्ष्य को चलाने के लिए idf_monitor को रोकता है, फिर idf_monitor को पुनः प्रारंभ करता है। फ़्लैश लक्ष्य के समान, लेकिन केवल मुख्य ऐप बनाया और पुनः फ़्लैश किया जाता है। यदि idf_monitor को -E तर्क से प्रारंभ किया गया था, तो लक्ष्य एन्क्रिप्टेड-ऐप-फ़्लैश चलाया जाता है। सक्रिय होने पर सभी आने वाले सीरियल डेटा को त्याग देता है। मॉनिटर को बंद किए बिना लॉग आउटपुट को तुरंत रोकने और जांचने की अनुमति देता है। एक बनाता है file प्रोजेक्ट निर्देशिका में और आउटपुट उसमें लिखा जाता है file जब तक कि इसे उसी कीबोर्ड शॉर्टकट से अक्षम न कर दिया जाए (या IDF मॉनिटर बंद न हो जाए)। IDF मॉनिटर टाइमस्ट प्रिंट कर सकता हैamp प्रत्येक पंक्ति की शुरुआत में। सबसे लंबाamp प्रारूप को –timest द्वारा बदला जा सकता हैamp-format कमांड लाइन तर्क.

प्रोग्राम से बाहर निकलें

चल रहे एप्लिकेशन को बाधित करें

IDF मॉनिटर को रोकें और रनटाइम पर एप्लिकेशन को डीबग करने के लिए GDB प्रोजेक्ट डीबगर चलाएँ। इसके लिए :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME विकल्प सक्षम होना आवश्यक है।

Ctrl-] और Ctrl-T के अलावा दबायी गयी कोई भी कुंजी सीरियल पोर्ट के माध्यम से भेजी जायेगी।

IDF-विशिष्ट विशेषताएं

स्वचालित पता डिकोडिंग जब भी ESP-IDF 0x4_______ के रूप का हेक्साडेसिमल कोड पता आउटपुट करता है, तो IDF मॉनिटर स्रोत कोड में स्थान देखने और फ़ंक्शन नाम खोजने के लिए addr2line_ का उपयोग करता है।
यदि कोई ESP-IDF ऐप क्रैश हो जाता है और पैनिक हो जाता है, तो एक रजिस्टर डंप और बैकट्रेस उत्पन्न होता है, जैसे कि निम्नलिखित:

एस्प्रेसिफ सिस्टम्स

31 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें

गुरु ध्यान त्रुटि स्टोर निषिद्ध प्रकार कोर 0 पर हुई। अपवाद था

बिना संभाले.

रजिस्टर डंप:

PC

: 0x400f360d पीएस

: 0x00060330 ए0

: 0x800dbf56 A1

:

0x3ffb7e00

A2

: 0x3ffb136c A3

: 0x00000005 ए4

: 0x00000000 ए5

:

0x00000000

A6

: 0x00000000 ए7

: 0x00000080 ए8

: 0x00000000 ए9

:

0x3ffb7dd0

ए10

: 0x00000003 ए11

: 0x00060f23 A12

: 0x00060f20 A13

:

0x3ffba6d0

ए14

: 0x00000047 ए15

: 0x0000000f एसएआर

: 0x00000019 क्षमा करें:

0x0000001डी

EXCVADDR: 0x00000000 LBEG : 0x4000c46c LEND : 0x4000c477 LCOUNT :

0x00000000

Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90

आईडीएफ मॉनिटर ने डंप में और अधिक विवरण जोड़ा है:

गुरु ध्यान त्रुटि स्टोर निषिद्ध प्रकार कोर 0 पर हुई। अपवाद था

बिना संभाले.

रजिस्टर डंप:

PC

: 0x400f360d पीएस

: 0x00060330 ए0

: 0x800dbf56 A1

:

0x3ffb7e00

0x400f360d: do_something_to_crash at /home/gus/esp/32/idf/examples/get-started/

hello_world/main/./hello_world_main.c:57

(इनलाइन द्वारा) inner_dont_crash at /home/gus/esp/32/idf/examples/get-started/hello_

विश्व/मुख्य/./हैलो_वर्ल्ड_मुख्य.c:52

A2

: 0x3ffb136c A3

: 0x00000005 ए4

: 0x00000000 ए5

:

0x00000000

A6

: 0x00000000 ए7

: 0x00000080 ए8

: 0x00000000 ए9

:

0x3ffb7dd0

ए10

: 0x00000003 ए11

: 0x00060f23 A12

: 0x00060f20 A13

:

0x3ffba6d0

ए14

: 0x00000047 ए15

: 0x0000000f एसएआर

: 0x00000019 क्षमा करें:

0x0000001डी

EXCVADDR: 0x00000000 LBEG : 0x4000c46c LEND : 0x4000c477 LCOUNT :

0x00000000

Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90 0x400f360d: do_something_to_crash at /home/gus/esp/32/idf/examples/get-started/ hello_world/main/./hello_world_main.c:57 (इनलाइन्ड बाय) inner_dont_crash at /home/gus/esp/32/idf/examples/get-started/hello_ world/main/./hello_world_main.c:52 0x400dbf56: still_dont_crash at /home/gus/esp/32/idf/examples/get-started/hello_ world/main/./hello_world_main.c:47 0x400dbf5e: dont_crash at /home/gus/esp/32/idf/examples/get-started/hello_world/ main/./hello_world_main.c:42 0x400dbf82: app_main at /home/gus/esp/32/idf/examples/get-started/hello_world/main/ ./hello_world_main.c:33 0x400d071d: main_task at /home/gus/esp/32/idf/components/esp32/./cpu_start.c:254

प्रत्येक पते को डिकोड करने के लिए, IDF मॉनिटर पृष्ठभूमि में निम्नलिखित कमांड चलाता है: xtensa-esp32-elf-addr2line -pfiaC -e build/PROJECT.elf ADDRESS

नोट: पर्यावरण चर ESP_MONITOR_DECODE को 0 पर सेट करें या विशिष्ट कमांड लाइन के साथ idf_monitor.py को कॉल करें

एस्प्रेसिफ सिस्टम्स

32 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें
विकल्प: idf_monitor.py –disable-address-decoding पता डिकोडिंग अक्षम करने के लिए।
कनेक्शन पर लक्ष्य रीसेट डिफ़ॉल्ट रूप से, IDF मॉनिटर कनेक्ट होने पर लक्ष्य को रीसेट कर देगा। लक्ष्य चिप को रीसेट करने के लिए DTR और RTS सीरियल लाइनों का उपयोग किया जाता है। कनेक्शन पर IDF मॉनिटर को लक्ष्य को स्वचालित रूप से रीसेट करने से रोकने के लिए, IDF मॉनिटर को –no-reset विकल्प (उदाहरण के लिए, idf_monitor.py –no-reset) के साथ कॉल करें।
नोट: –no-reset विकल्प IDF मॉनिटर को किसी विशेष पोर्ट (जैसे, idf.py monitor –no-reset -p [PORT]) से कनेक्ट करते समय भी समान व्यवहार लागू करता है।
GDBStub के साथ GDB लॉन्च करना GDBStub एक उपयोगी रनटाइम डिबगिंग सुविधा है जो लक्ष्य पर चलती है और डिबगिंग कमांड प्राप्त करने के लिए सीरियल पोर्ट के माध्यम से होस्ट से कनेक्ट होती है। GDBStub मेमोरी और वेरिएबल्स को पढ़ने, कॉल स्टैक फ़्रेम की जाँच करने आदि जैसे कमांड का समर्थन करता है। हालाँकि GDBStub J की तुलना में कम बहुमुखी है।TAG डिबगिंग के लिए किसी विशेष हार्डवेयर (जैसे कि JTAG USB ब्रिज से) क्योंकि संचार पूरी तरह से सीरियल पोर्ट के माध्यम से होता है। CONFIG_ESP_SYSTEM_PANIC को रनटाइम पर GDBStub पर सेट करके, किसी लक्ष्य को GDBStub को पृष्ठभूमि में चलाने के लिए कॉन्फ़िगर किया जा सकता है। GDBStub तब तक पृष्ठभूमि में चलता रहेगा जब तक कि सीरियल पोर्ट पर Ctrl+C संदेश न भेजा जाए और GDBStub प्रोग्राम को ब्रेक (अर्थात, निष्पादन रोक) न दे, जिससे GDBStub डिबगिंग कमांड को हैंडल कर सके। इसके अलावा, CONFIG_ESP_SYSTEM_PANIC को पैनिक पर GDBStub पर सेट करके, पैनिक हैंडलर को क्रैश होने पर GDBStub चलाने के लिए कॉन्फ़िगर किया जा सकता है। क्रैश होने पर, GDBStub सीरियल पोर्ट पर एक विशेष स्ट्रिंग पैटर्न आउटपुट करेगा जो यह दर्शाता है कि वह चल रहा है। दोनों ही स्थितियों में (अर्थात, Ctrl+C संदेश भेजना, या विशेष स्ट्रिंग पैटर्न प्राप्त करना), IDF मॉनिटर उपयोगकर्ता को डिबगिंग कमांड भेजने की अनुमति देने के लिए स्वचालित रूप से GDB लॉन्च करेगा। GDB के बाहर निकलने के बाद, लक्ष्य को RTS सीरियल लाइन के माध्यम से रीसेट किया जाता है। यदि यह लाइन कनेक्ट नहीं है, तो उपयोगकर्ता अपना लक्ष्य रीसेट कर सकते हैं (बोर्ड रीसेट बटन दबाकर)।
नोट: पृष्ठभूमि में, IDF मॉनिटर GDB लॉन्च करने के लिए निम्नलिखित कमांड चलाता है:
xtensa-esp32-elf-gdb -ex “set serial baud BAUD” -ex “target remote PORT” -ex interrupt build/PROJECT.elf :idf_target:`Hello NAME chip`

आउटपुट फ़िल्टरिंग IDF मॉनिटर को idf.py monitor –print-filter=”xyz” के रूप में लागू किया जा सकता है, जहाँ –print-filter आउटपुट फ़िल्टरिंग का पैरामीटर है। डिफ़ॉल्ट मान एक रिक्त स्ट्रिंग है, जिसका अर्थ है कि सब कुछ प्रिंट हो गया है।
क्या मुद्रित किया जाए, इस पर प्रतिबंधों को निम्नलिखित श्रृंखला के रूप में निर्दिष्ट किया जा सकता है:tag>: आइटम जहांtag> है tag स्ट्रिंग और सेट {N, E, W, I, D, V, *} से एक वर्ण है जो लॉगिंग के लिए एक स्तर को संदर्भित करता है।
उदाहरणार्थampले, PRINT_FILTER="tag1:W” केवल ESP_LOGW(“ के साथ लिखे गए आउटपुट से मेल खाता है और प्रिंट करता हैtag1”, …) या कम शब्दाडंबर स्तर पर, यानी ESP_LOGE(“tag1″, …). निर्दिष्ट नहीं किया गया या * का उपयोग करने पर डिफ़ॉल्ट रूप से वर्बोज़ स्तर प्राप्त होता है।
नोट: लॉगिंग लाइब्रेरी के माध्यम से उन आउटपुट को संकलन के समय अक्षम करने के लिए प्राथमिक लॉगिंग का उपयोग करें जिनकी आपको आवश्यकता नहीं है। IDF मॉनिटर के साथ आउटपुट फ़िल्टरिंग एक द्वितीयक समाधान है जो एप्लिकेशन को पुनः संकलित किए बिना फ़िल्टरिंग विकल्पों को समायोजित करने के लिए उपयोगी हो सकता है।
आपका ऐप tags आउटपुट फ़िल्टरिंग सुविधा के साथ संगत होने के लिए इसमें रिक्त स्थान, तारांकन चिह्न *, या कोलन नहीं होने चाहिए।
अगर आपके ऐप में आउटपुट की आखिरी लाइन के बाद कैरिज रिटर्न नहीं आता है, तो आउटपुट फ़िल्टरिंग गड़बड़ा सकती है, यानी मॉनिटर लाइन प्रिंट करना शुरू कर देता है और बाद में पता चलता है कि वह लाइन लिखी ही नहीं जानी चाहिए थी। यह एक जानी-मानी समस्या है और इसे हमेशा कैरिज रिटर्न जोड़कर टाला जा सकता है (खासकर जब उसके तुरंत बाद कोई आउटपुट न आए)।

एस्प्रेसिफ सिस्टम्स

33 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें
Exampफ़िल्टरिंग नियमों के प्रकार:
· * का उपयोग किसी भी मिलान के लिए किया जा सकता है tags. हालाँकि, स्ट्रिंग PRINT_FILTER=”*:I tag1:ई” के संबंध में tag1 केवल त्रुटियाँ प्रिंट करता है, क्योंकि नियम tag* के नियम की तुलना में 1 को उच्च प्राथमिकता प्राप्त है।
· डिफ़ॉल्ट (खाली) नियम *:V के बराबर है क्योंकि हर tag वर्बोज़ स्तर या उससे निचले स्तर पर का अर्थ है सब कुछ का मिलान करना।
· “*:N” न केवल लॉगिंग फ़ंक्शन से आउटपुट को दबाता है, बल्कि printf आदि द्वारा किए गए प्रिंट को भी दबाता है। इससे बचने के लिए, *:E या उच्चतर वर्बोसिटी स्तर का उपयोग करें।
· नियम "tag1:वी”, “tag1:वी”, “tag1:”, “tag1:*”, और “tag1” समतुल्य हैं। · नियम “tag1:डब्ल्यू tag1:E” किसके बराबर है?tag1:ई” क्योंकि इसके परिणामस्वरूप कोई भी घटना घटित होती है tag
नाम पिछले नाम को अधिलेखित कर देता है। · नियम “tag1:आई tag2:W” केवल प्रिंट करता है tag1 सूचना शब्दाडंबर स्तर या उससे कम पर और tag2 चेतावनी पर
वाचालता स्तर या उससे कम। · नियम “tag1:आई tag2:डब्ल्यू tag3:N” अनिवार्य रूप से पिछले वाले के बराबर है क्योंकि tag3:N निर्दिष्ट करता है
वह tag3 मुद्रित नहीं किया जाना चाहिए. tagनियम 3:N में “tag1:आई tag2:डब्ल्यू tag3:N *:V” अधिक सार्थक है क्योंकि बिना tag3:एन
tag3 संदेश मुद्रित किए जा सकते थे; त्रुटियाँ tag1 और tag2 को निर्दिष्ट (या निम्नतर) ​​शब्दाडंबर स्तर पर मुद्रित किया जाएगा तथा शेष सब कुछ डिफ़ॉल्ट रूप से मुद्रित किया जाएगा।
एक अधिक जटिल फ़िल्टरिंग उदाहरणampनिम्नलिखित लॉग स्निपेट को बिना किसी फ़िल्टरिंग विकल्प के प्राप्त किया गया था:
लोड: 0x40078000, लंबाई: 13564 प्रविष्टि 0x40078d4c E (31) esp_image: 0x30000 पर छवि में अमान्य मैजिक बाइट है W (31) esp_image: 0x30000 पर छवि में अमान्य SPI मोड 255 है E (39) बूट: फैक्टरी ऐप विभाजन बूट करने योग्य नहीं है I (568) cpu_start: प्रो cpu चालू है। I (569) heap_init: आरंभ हो रहा है। गतिशील आवंटन के लिए RAM उपलब्ध है: I (603) cpu_start: प्रो cpu प्रारंभ उपयोगकर्ता कोड D (309) light_driver: [light_init, 74]:status: 1, mode: 2 D (318) vfs: esp_vfs_register_fd_range श्रेणी <54 के लिए सफल है; 64) और VFS ID 1 I (328) wifi: wifi ड्राइवर कार्य: 3ffdbf84, prio:23, stack:4096, core=0
फ़िल्टरिंग विकल्प PRINT_FILTER=”wifi esp_image:E light_driver:I” के लिए कैप्चर किया गया आउटपुट नीचे दिया गया है:
E (31) esp_image: 0x30000 पर छवि में अमान्य मैजिक बाइट है I (328) wifi: wifi ड्राइवर कार्य: 3ffdbf84, prio:23, stack:4096, core=0
विकल्प “PRINT_FILTER="light_driver:D esp_image:N boot:N cpu_start:N vfs:N wifi:N *:V” निम्नलिखित आउटपुट दिखाते हैं:
लोड:0x40078000, लंबाई:13564 प्रविष्टि 0x40078d4c I (569) हीप_इनिट: आरंभ हो रहा है। गतिशील आवंटन के लिए RAM उपलब्ध है: D (309) लाइट_ड्राइवर: [लाइट_इनिट, 74]:स्थिति: 1, मोड: 2
IDF मॉनिटर के साथ ज्ञात समस्याएँ
विंडोज़ पर देखी गई समस्याएँ
· तीर कुंजियाँ, साथ ही कुछ अन्य कुंजियाँ, Windows कंसोल सीमाओं के कारण GDB में काम नहीं करती हैं। · कभी-कभी, जब oidf.pypexits होता है, तो IDF मॉनिटर के पुनः आरंभ होने से पहले यह 30 सेकंड तक रुक सकता है। · जब ogdbpis चलता है, तो GDBStub के साथ संचार शुरू करने से पहले यह थोड़े समय के लिए रुक सकता है।

एस्प्रेसिफ सिस्टम्स

34 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. Linux और macOS के लिए मानक टूलचेन सेटअप शुरू करें

स्थापना चरण दर चरण यह स्थापना प्रक्रिया के माध्यम से आपको मार्गदर्शन करने के लिए एक विस्तृत रोडमैप है।
विकास परिवेश की स्थापना ये आपके ESP32 के लिए ESP-IDF की स्थापना के चरण हैं। · चरण 1. पूर्वावश्यकताएँ स्थापित करें · चरण 2. ESP-IDF प्राप्त करें · चरण 3. उपकरण सेट करें · चरण 4. परिवेश चर सेट करें · चरण 5. ESP-IDF पर पहला चरण
चरण 1. स्थापना पूर्वापेक्षाएँ: ESP32 के साथ ESP-IDF का उपयोग करने के लिए, आपको अपने ऑपरेटिंग सिस्टम पर आधारित कुछ सॉफ़्टवेयर पैकेज स्थापित करने होंगे। यह सेटअप गाइड आपको Linux और macOS आधारित सिस्टम पर सभी सॉफ़्टवेयर स्थापित करने में मदद करेगी।
लिनक्स उपयोगकर्ताओं के लिए: ESP-IDF का उपयोग करके संकलन करने के लिए, आपको निम्नलिखित पैकेज प्राप्त करने होंगे। चलाने के लिए कमांड इस बात पर निर्भर करता है कि आप किस लिनक्स वितरण का उपयोग कर रहे हैं:
· उबंटू और डेबियन: sudo apt-get install git wget flex bison gperf python3 python3-pip python3venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
· CentOS 7 और 8: sudo yum -y update && sudo yum install git wget flex bison gperf python3 cmake ninja-build ccache dfu-util libusbx
CentOS 7 अभी भी समर्थित है, लेकिन बेहतर उपयोगकर्ता अनुभव के लिए CentOS संस्करण 8 की अनुशंसा की जाती है। · आर्क: sudo pacman -S –needed gcc git make flex bison gperf python cmake ninja ccache dfu-util libusb
नोट: · ESP-IDF के साथ उपयोग के लिए CMake संस्करण 3.16 या उससे नया संस्करण आवश्यक है। यदि आपके OS संस्करण में उपयुक्त संस्करण उपलब्ध नहीं है, तो otools/idf_tools.py install cmakep चलाएँ। · यदि आपको उपरोक्त सूची में अपना Linux वितरण दिखाई नहीं देता है, तो कृपया पैकेज स्थापना के लिए किस कमांड का उपयोग करना है, यह जानने के लिए इसके दस्तावेज़ देखें।
macOS उपयोगकर्ताओं के लिए ESP-IDF, macOS पर डिफ़ॉल्ट रूप से स्थापित पायथन के संस्करण का उपयोग करेगा। · CMake और Ninja बिल्ड स्थापित करें: यदि आपके पास HomeBrew है, तो आप चला सकते हैं: brew install cmake ninja dfu-util यदि आपके पास MacPorts है, तो आप चला सकते हैं: sudo port install cmake ninja dfu-util अन्यथा, macOS स्थापना डाउनलोड के लिए CMake और Ninja होम पेज देखें।

एस्प्रेसिफ सिस्टम्स

35 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें
· तेज़ बिल्ड के लिए ccache इंस्टॉल करने की भी पुरज़ोर सिफ़ारिश की जाती है। अगर आपके पास HomeBrew है, तो यह brew install ccache या MacPorts पर sudo port install ccache के ज़रिए किया जा सकता है।
नोट: यदि किसी भी चरण के दौरान इस तरह की त्रुटि दिखाई देती है: xcrun: त्रुटि: अमान्य सक्रिय डेवलपर पथ (/Library/Developer/CommandLineTools), अनुपलब्ध xcrun यहां: /Library/Developer/CommandLineTools/usr/bin/xcrun
फिर आगे बढ़ने के लिए आपको XCode कमांड लाइन टूल्स इंस्टॉल करने होंगे। आप इन्हें xcode-select –install चलाकर इंस्टॉल कर सकते हैं।
Apple M1 उपयोगकर्ता यदि आप Apple M1 प्लेटफ़ॉर्म का उपयोग करते हैं और आपको इस प्रकार की त्रुटि दिखाई देती है: चेतावनी: xtensa-esp32-elf टूल संस्करण esp-2021r2-patch3-8.4.0 की निर्देशिका मौजूद है, लेकिन टूल नहीं मिला। त्रुटि: xtensa-esp32-elf टूल का कोई स्थापित संस्करण नहीं है। कृपया इसे स्थापित करने के लिए 'install.sh' चलाएँ।
या: zsh: निष्पादन योग्य में ख़राब CPU प्रकार: ~/.espressif/tools/xtensa-esp32-elf/esp-2021r2patch3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
फिर आपको /usr/sbin/softwareupdate –install-rosetta –agree-to-license चलाकर Apple Rosetta 2 इंस्टॉल करना होगा
पायथन 3 इंस्टॉल करना macOS Catalina 10.15 रिलीज़ नोट्स के आधार पर, पायथन 2.7 के इस्तेमाल की अनुशंसा नहीं की जाती है और पायथन 2.7 को macOS के भविष्य के संस्करणों में डिफ़ॉल्ट रूप से शामिल नहीं किया जाएगा। जाँचें कि आपके पास वर्तमान में कौन सा पायथन है: python –version
अगर आउटपुट Python 2.7.17 जैसा है, तो आपका डिफ़ॉल्ट इंटरप्रेटर Python 2.7 है। अगर ऐसा है, तो यह भी जाँच लें कि आपके कंप्यूटर पर Python 3 पहले से इंस्टॉल तो नहीं है: python3 –version
अगर ऊपर दिया गया कमांड कोई त्रुटि देता है, तो इसका मतलब है कि पायथन 3 इंस्टॉल नहीं है। नीचे एक ओवरव्यू दिया गया हैview पायथन 3 को स्थापित करने के चरणों की सूची.
· HomeBrew के साथ इंस्टॉलेशन निम्न प्रकार से किया जा सकता है: brew install python3
· यदि आपके पास MacPorts है, तो आप चला सकते हैं: sudo port install python38
चरण 2. ESP-IDF प्राप्त करें ESP32 के लिए एप्लिकेशन बनाने के लिए, आपको ESP-IDF रिपॉजिटरी में Espressif द्वारा प्रदान की गई सॉफ़्टवेयर लाइब्रेरी की आवश्यकता होगी। ESP-IDF प्राप्त करने के लिए, अपनी इंस्टॉलेशन डायरेक्टरी में जाएँ और अपने ऑपरेटिंग सिस्टम के लिए नीचे दिए गए निर्देशों का पालन करते हुए, git clone के साथ रिपॉजिटरी को क्लोन करें। टर्मिनल खोलें और निम्नलिखित कमांड चलाएँ:

एस्प्रेसिफ सिस्टम्स

36 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें

mkdir -p ~/esp cd ~/esp git clone -b v5.0.9 –पुनरावर्ती https://github.com/espressif/esp-idf.git
ESP-IDF ~/esp/esp-idf में डाउनलोड किया जाएगा। किसी स्थिति में किस ईएसपी-आईडीएफ संस्करण का उपयोग करना है, इस बारे में जानकारी के लिए ईएसपी-आईडीएफ संस्करणों से परामर्श लें।
चरण 3. उपकरण सेट अप करें ESP-IDF के अलावा, आपको ESP32 का समर्थन करने वाली परियोजनाओं के लिए ESP-IDF द्वारा उपयोग किए जाने वाले उपकरण, जैसे कंपाइलर, डीबगर, पायथन पैकेज आदि, भी स्थापित करने की आवश्यकता है। cd ~/esp/esp-idf ./install.sh esp32
या फिश शेल के साथ cd ~/esp/esp-idf ./install.fish esp32
उपरोक्त कमांड केवल ESP32 के लिए टूल इंस्टॉल करते हैं। यदि आप अधिक चिप लक्ष्यों के लिए प्रोजेक्ट विकसित करना चाहते हैं, तो आपको उन सभी को सूचीबद्ध करना चाहिए और उदाहरण के लिए चलाना चाहिए।ampफ़ाइल: cd ~/esp/esp-idf ./install.sh esp32,esp32s2
या फिश शेल के साथ cd ~/esp/esp-idf ./install.fish esp32,esp32s2
सभी समर्थित लक्ष्यों के लिए उपकरण स्थापित करने के लिए कृपया निम्नलिखित कमांड चलाएँ: cd ~/esp/esp-idf ./install.sh all
या फिश शेल के साथ cd ~/esp/esp-idf ./install.fish all
नोट: macOS उपयोगकर्ताओं के लिए, यदि किसी भी चरण के दौरान इस तरह की त्रुटि दिखाई देती है:urlखुली त्रुटि [SSL: CERTIFICATE_VERIFY_FAILED] प्रमाणपत्र सत्यापन विफल: स्थानीय जारीकर्ता प्रमाणपत्र प्राप्त करने में असमर्थ (_ssl.c:xxx)
आप अपने कंप्यूटर के पायथन फ़ोल्डर में प्रमाणपत्र स्थापित करने के लिए Install Certificates.command चला सकते हैं। विवरण के लिए, ESP-IDF टूल इंस्टॉल करते समय डाउनलोड त्रुटि देखें।

विकल्प File डाउनलोड टूल इंस्टॉलर कई डाउनलोड करता है fileGitHub रिलीज़ से जुड़े हैं। अगर GitHub तक पहुँचना धीमा है, तो GitHub एसेट डाउनलोड के लिए Espressifns डाउनलोड सर्वर को प्राथमिकता देने के लिए एक एनवायरनमेंट वैरिएबल सेट करना संभव है।

नोट: यह सेटिंग केवल GitHub रिलीज़ से डाउनलोड किए गए व्यक्तिगत टूल को नियंत्रित करती है, यह इसमें कोई बदलाव नहीं करती है URLकिसी भी Git रिपॉजिटरी तक पहुंचने के लिए उपयोग किया जाता है।

उपकरण स्थापित करते समय एस्प्रेसिफ़ डाउनलोड सर्वर को प्राथमिकता देने के लिए, install.sh चलाते समय निम्नलिखित आदेशों का उपयोग करें:

एस्प्रेसिफ सिस्टम्स

37 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें

सीडी ~/esp/esp-idf निर्यात IDF_GITHUB_ASSETS=”dl.espressif.com/github_assets” ./install.sh
उपकरण स्थापना पथ को अनुकूलित करना इस चरण में प्रस्तुत स्क्रिप्ट, उपयोगकर्ता होम निर्देशिका में ESP-IDF द्वारा आवश्यक संकलन उपकरण स्थापित करती हैं: Linux पर $HOME/.espressif। यदि आप उपकरण किसी भिन्न निर्देशिका में स्थापित करना चाहते हैं, तो स्थापना स्क्रिप्ट चलाने से पहले पर्यावरण चर IDF_TOOLS_PATH सेट करें। सुनिश्चित करें कि आपके उपयोगकर्ता खाते के पास इस पथ को पढ़ने और लिखने के लिए पर्याप्त अनुमतियाँ हैं। यदि IDF_TOOLS_PATH बदल रहे हैं, तो सुनिश्चित करें कि हर बार स्थापना स्क्रिप्ट (install.bat, install.ps1 या install.sh) और निर्यात स्क्रिप्ट (export.bat, export.ps1 या export.sh) निष्पादित होने पर यह समान मान पर सेट हो।
चरण 4. पर्यावरण चर सेट करें। इंस्टॉल किए गए टूल अभी PATH पर्यावरण चर में नहीं जोड़े गए हैं। कमांड लाइन से टूल को उपयोग करने योग्य बनाने के लिए, कुछ पर्यावरण चर सेट करने होंगे। ESP-IDF एक और स्क्रिप्ट प्रदान करता है जो ऐसा करती है। उस टर्मिनल में जहाँ आप ESP-IDF का उपयोग करने जा रहे हैं, चलाएँ:
. $HOME/esp/esp-idf/export.sh
या मछली के लिए (केवल मछली संस्करण 3.0.0 के बाद से समर्थित):
. $HOME/esp/esp-idf/export.fish
शुरुआती बिंदु और पथ के बीच के स्थान पर ध्यान दें! यदि आप esp-idf का बार-बार उपयोग करने की योजना बना रहे हैं, तो आप export.sh को क्रियान्वित करने के लिए एक उपनाम बना सकते हैं:
1. निम्नलिखित कमांड को अपने शेलएनएस प्रो में कॉपी और पेस्ट करेंfile (.प्रोfile, .bashrc, .zprofile, वगैरह।)
alias get_idf='. $HOME/esp/esp-idf/export.sh' 2. टर्मिनल सत्र को पुनः आरंभ करके या source [path to pro] चलाकर कॉन्फ़िगरेशन को ताज़ा करेंfile],
उदाहरणार्थample, source ~/.bashrc. अब आप किसी भी टर्मिनल सत्र में esp-idf वातावरण को सेट अप या रीफ़्रेश करने के लिए get_idf चला सकते हैं। तकनीकी रूप से, आप अपने shellns प्रोग्राम में export.sh जोड़ सकते हैं।file सीधे; हालाँकि, इसकी अनुशंसा नहीं की जाती है। ऐसा करने से प्रत्येक टर्मिनल सत्र में (उन सत्रों सहित जहाँ IDF की आवश्यकता नहीं है) IDF वर्चुअल वातावरण सक्रिय हो जाता है, जिससे वर्चुअल वातावरण का उद्देश्य विफल हो जाता है और संभवतः अन्य सॉफ़्टवेयर भी प्रभावित होते हैं।
चरण 5. ESP-IDF पर पहला कदम अब चूँकि सभी आवश्यकताएँ पूरी हो गई हैं, अगला विषय आपको अपना पहला प्रोजेक्ट शुरू करने के तरीके के बारे में बताएगा। यह मार्गदर्शिका आपको ESP-IDF का उपयोग करने के शुरुआती चरणों में मदद करेगी। ESP32 पर एक नया प्रोजेक्ट शुरू करने और डिवाइस आउटपुट का निर्माण, फ़्लैश और निगरानी करने के लिए इस मार्गदर्शिका का पालन करें।
नोट: यदि आपने अभी तक ESP-IDF स्थापित नहीं किया है, तो कृपया इंस्टॉलेशन पर जाएं और इस गाइड का उपयोग करने के लिए आवश्यक सभी सॉफ़्टवेयर प्राप्त करने के लिए निर्देशों का पालन करें।

प्रोजेक्ट शुरू करें अब आप ESP32 के लिए अपना एप्लिकेशन तैयार करने के लिए तैयार हैं। आप getstarted/hello_world प्रोजेक्ट से शुरुआत कर सकते हैं।ampईएसपी-आईडीएफ में निर्देशिका।

महत्वपूर्ण: ESP-IDF बिल्ड सिस्टम ESP-IDF या परियोजनाओं के पथों में रिक्त स्थान का समर्थन नहीं करता है।

प्रोजेक्ट get-started/hello_world को ~/esp निर्देशिका में कॉपी करें:

एस्प्रेसिफ सिस्टम्स

38 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें
सीडी ~/एएसपी सीपी -आर $आईडीएफ_पीएटीएच/एक्सampलेस/गेट-स्टार्ट/हैलो_वर्ल्ड।
नोट: इसमें पूर्व की एक सीमा हैampपूर्व में ले परियोजनाओंampईएसपी-आईडीएफ में निर्देशिका। आप किसी भी प्रोजेक्ट को उसी तरह कॉपी कर सकते हैं जैसे ऊपर प्रस्तुत किया गया है और उसे चला सकते हैं। पूर्व का निर्माण भी संभव हैampपहले उन्हें कॉपी किए बिना उन्हें जगह में रखें।
अपना डिवाइस कनेक्ट करें अब अपने ESP32 बोर्ड को कंप्यूटर से कनेक्ट करें और देखें कि बोर्ड किस सीरियल पोर्ट के नीचे दिखाई दे रहा है। सीरियल पोर्ट के नामकरण पैटर्न निम्नलिखित हैं:
· Linux: /dev/tty से शुरू · macOS: /dev/cu से शुरू। अगर आपको सीरियल पोर्ट नाम की जाँच करने का तरीका नहीं पता है, तो कृपया पूरी जानकारी के लिए ESP32 के साथ सीरियल कनेक्शन स्थापित करें देखें।
नोट: पोर्ट नाम अपने पास रखें क्योंकि अगले चरणों में आपको इसकी आवश्यकता होगी।
अपने प्रोजेक्ट को कॉन्फ़िगर करें अपने hello_world निर्देशिका पर जाएँ, ESP32 को लक्ष्य के रूप में सेट करें, और प्रोजेक्ट कॉन्फ़िगरेशन उपयोगिता menuconfig चलाएँ। cd ~/esp/hello_world idf.py set-target esp32 idf.py menuconfig
एक नया प्रोजेक्ट खोलने के बाद, आपको सबसे पहले idf.py set-target esp32 के साथ लक्ष्य सेट करना होगा। ध्यान दें कि प्रोजेक्ट में मौजूदा बिल्ड और कॉन्फ़िगरेशन, यदि कोई हों, इस प्रक्रिया में साफ़ और आरंभ किए जाएँगे। इस चरण को छोड़ने के लिए लक्ष्य को पर्यावरण चर में सहेजा जा सकता है। अधिक जानकारी के लिए लक्ष्य चिप चुनें: set-target देखें। यदि पिछले चरण सही ढंग से किए गए हैं, तो निम्न मेनू दिखाई देगा:

चित्र 17: प्रोजेक्ट कॉन्फ़िगरेशन - होम विंडो आप इस मेनू का उपयोग प्रोजेक्ट विशिष्ट चर सेट करने के लिए कर रहे हैं, जैसे, वाई-फाई नेटवर्क का नाम और पासवर्ड, प्रोसेसर की गति, आदि। मेनूकॉन्फ़िगरेशन के साथ प्रोजेक्ट सेट करना forohello_worldp को छोड़ा जा सकता है, क्योंकि यह exampले के साथ चलता है

एस्प्रेसिफ सिस्टम्स

39 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें
डिफ़ॉल्ट विन्यास।
ध्यान दें: यदि आप ESP32-SOLO-1 मॉड्यूल के साथ ESP32-DevKitC बोर्ड का उपयोग करते हैं, या ESP32-MIN1-1(1U) मॉड्यूल के साथ ESP32-DevKitM-1 बोर्ड का उपयोग करते हैं, तो कृपया ex फ़्लैश करने से पहले menuconfig में सिंगल कोर मोड (CONFIG_FREERTOS_UNICORE) सक्षम करें।ampलेस.
नोट: आपके टर्मिनल में मेनू के रंग अलग हो सकते हैं। आप –style विकल्प से उनका रंग-रूप बदल सकते हैं। अधिक जानकारी के लिए कृपया idf.py menuconfig –help चलाएँ।
यदि आप समर्थित विकास बोर्डों में से किसी एक का उपयोग कर रहे हैं, तो आप बोर्ड समर्थन पैकेज का उपयोग करके अपने विकास को गति दे सकते हैं। अधिक जानकारी के लिए अतिरिक्त सुझाव देखें।
प्रोजेक्ट बनाएं प्रोजेक्ट बनाएं:
idf.py बिल्ड
यह कमांड एप्लिकेशन और सभी ESP-IDF घटकों को संकलित करेगा, फिर यह बूटलोडर, पार्टीशन टेबल और एप्लिकेशन बायनेरिज़ उत्पन्न करेगा।
$ idf.py build /path/to/hello_world/build निर्देशिका में cmake चला रहा है “cmake -G Ninja –warn-uninitialized /path/to/hello_world” निष्पादित कर रहा है… अप्रारंभीकृत मानों के बारे में चेतावनी। — Git मिला: /usr/bin/git (संस्करण “2.17.0” मिला) — कॉन्फ़िगरेशन के कारण रिक्त aws_iot घटक का निर्माण — घटक नाम: … — घटक पथ: …
... (बिल्ड सिस्टम आउटपुट की अधिक लाइनें)
[527/527] hello_world.bin esptool.py v2.3.1 जनरेट किया जा रहा है
प्रोजेक्ट निर्माण पूर्ण। फ़्लैश करने के लिए, यह कमांड चलाएँ: ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash -flash_mode dio –flash_size detect –flash_freq 40m 0x10000 build/hello_world. bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/ partition-table.bin या 'idf.py -p PORT flash' चलाएँ
यदि कोई त्रुटि नहीं है, तो फर्मवेयर बाइनरी उत्पन्न करके निर्माण समाप्त हो जाएगा files.
डिवाइस पर फ्लैश करें आपके द्वारा अभी-अभी बनाए गए बाइनरीज़ (bootloader.bin, partition-table.bin और hello_world.bin) को अपने ESP32 बोर्ड पर चलाकर फ्लैश करें:
idf.py -p पोर्ट [-b BAUD] फ्लैश
PORT को अपने ESP32 बोर्डन्स सीरियल पोर्ट नाम से बदलें। आप BAUD को अपनी ज़रूरत के अनुसार बॉड दर से बदलकर फ्लैशर बॉड दर भी बदल सकते हैं। डिफ़ॉल्ट बॉड दर 460800 है। idf.py तर्कों के बारे में अधिक जानकारी के लिए, idf.py देखें।
नोट: विकल्प फ्लैश स्वचालित रूप से प्रोजेक्ट का निर्माण और फ्लैश करता है, इसलिए idf.py build चलाना आवश्यक नहीं है।

एस्प्रेसिफ सिस्टम्स

40 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें

फ़्लैश करते समय समस्याएँ आ रही हैं? यदि आप दिए गए कमांड को चलाते हैं और "कनेक्ट करने में विफल" जैसी त्रुटियाँ देखते हैं, तो इसके कई कारण हो सकते हैं। esptool.py में आ रही समस्याएँ एक कारण हो सकती हैं। यह एक ऐसी उपयोगिता है जिसे बिल्ड सिस्टम चिप को रीसेट करने, ROM बूटलोडर के साथ इंटरैक्ट करने और फ़र्मवेयर फ़्लैश करने के लिए कॉल करता है। एक आसान उपाय है मैन्युअल रीसेट, जिसका वर्णन नीचे किया गया है, और यदि इससे मदद नहीं मिलती है, तो आप समस्या निवारण में संभावित समस्याओं के बारे में अधिक जानकारी प्राप्त कर सकते हैं।
esptool.py USB से सीरियल कन्वर्टर चिप, यानी FTDI या CP210x, की DTR और RTS नियंत्रण रेखाओं को सक्रिय करके ESP32 को स्वचालित रूप से रीसेट करता है (अधिक जानकारी के लिए, ESP32 के साथ सीरियल कनेक्शन स्थापित करें देखें)। DTR और RTS नियंत्रण रेखाएँ ESP32 के GPIO0 और CHIP_PU (EN) पिनों से जुड़ी होती हैं, जिससे वॉल्यूम में परिवर्तन होता है।tagDTR और RTS के स्तर ESP32 को फ़र्मवेयर डाउनलोड मोड में बूट कर देंगे। एक उदाहरण के रूप मेंampकृपया, ESP32 DevKitC विकास बोर्ड के लिए योजनाबद्ध की जाँच करें।
सामान्य तौर पर, आपको आधिकारिक esp-idf डेवलपमेंट बोर्ड के साथ कोई समस्या नहीं होनी चाहिए। हालाँकि, esptool.py निम्नलिखित मामलों में आपके हार्डवेयर को स्वचालित रूप से रीसेट नहीं कर पाता है:
· आपके हार्डवेयर में GPIO0 और CHIP_PU से जुड़ी DTR और RTS लाइनें नहीं हैं · DTR और RTS लाइनें अलग तरीके से कॉन्फ़िगर की गई हैं · ऐसी कोई सीरियल नियंत्रण लाइनें नहीं हैं
आपके पास मौजूद हार्डवेयर के प्रकार के आधार पर, आपके ESP32 बोर्ड को मैन्युअल रूप से फर्मवेयर डाउनलोड मोड (रीसेट) में डालना भी संभव हो सकता है।
· एस्प्रेसिफ़ द्वारा निर्मित विकास बोर्डों के लिए, यह जानकारी संबंधित आरंभिक मार्गदर्शिकाओं या उपयोगकर्ता मार्गदर्शिकाओं में पाई जा सकती है। उदाहरण के लिएampउदाहरण के लिए, ESP-IDF विकास बोर्ड को मैन्युअल रूप से रीसेट करने के लिए, बूट बटन (GPIO0) को दबाए रखें और EN बटन (CHIP_PU) दबाएँ।
· अन्य प्रकार के हार्डवेयर के लिए, GPIO0 को नीचे खींचने का प्रयास करें।

सामान्य ऑपरेशन फ्लैश करते समय, आपको निम्न के समान आउटपुट लॉग दिखाई देगा:
… esptool.py –chip esp32 -p /dev/ttyUSB0 -b 460800 –before=default_reset -after=hard_reset write_flash –flash_mode dio –flash_freq 40m –flash_size 2MB 0x8000 partition_table/partition-table.bin 0x1000 bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev सीरियल पोर्ट /dev/ttyUSB0 कनेक्ट हो रहा है…….._ चिप ESP32D0WDQ6 (संशोधन 0) है विशेषताएं: WiFi, BT, डुअल कोर, कोडिंग स्कीम कोई नहीं क्रिस्टल 40MHz है MAC: 24:0a:c4:05:b9:14 स्टब अपलोड हो रहा है… स्टब चल रहा है… स्टब चल रहा है… बॉड दर को बदल रहा है 460800 परिवर्तित। फ़्लैश आकार कॉन्फ़िगर किया जा रहा है... 3072 बाइट्स को 103 बाइट्स में संपीड़ित किया गया... 0x00008000 पर लेखन... (100%) 0x00008000 पर 3072 बाइट्स (103 संपीड़ित) 0.0 सेकंड में लिखे गए (प्रभावी 5962.8 kbit/s)... डेटा हैश सत्यापित। 26096 बाइट्स को 15408 बाइट्स में संपीड़ित किया गया... 0x00001000 पर लेखन... (100%) 0x00001000 पर 26096 बाइट्स (15408 संपीड़ित) 0.4 सेकंड में लिखे गए (प्रभावी 546.7 kbit/s)... डेटा हैश सत्यापित। 147104 बाइट्स को 77364 तक संपीड़ित किया गया... 0x00010000 पर लिखा जा रहा है... (20%) 0x00014000 पर लिखा जा रहा है... (40%) 0x00018000 पर लिखा जा रहा है... (60%) 0x0001c000 पर लिखा जा रहा है... (80%)
(अगले पृष्ठ पर जारी)

एस्प्रेसिफ सिस्टम्स

41 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें
(पिछले पृष्ठ से जारी) 0x00020000 पर लेखन... (100%) 0x00010000 पर 1.9 सेकंड में 147104 बाइट्स (77364 संपीड़ित) लिखे गए (प्रभावी 615. 5 kbit/s)... डेटा का हैश सत्यापित।
जा रहा है... आरटीएस पिन के माध्यम से हार्ड रीसेटिंग... हो गया
यदि फ़्लैश प्रक्रिया के अंत तक कोई समस्या नहीं आती है, तो बोर्ड रीबूट हो जाएगा और ohello_worldp एप्लिकेशन शुरू हो जाएगा। यदि आप idf.py चलाने के बजाय Eclipse या VS Code IDE का उपयोग करना चाहते हैं, तो Eclipse प्लगइन, VSCode एक्सटेंशन देखें।
आउटपुट की निगरानी करें। यह जाँचने के लिए कि क्या ohello_worldpis वास्तव में चल रहा है, idf.py -p PORT monitor टाइप करें (PORT को अपने सीरियल पोर्ट नाम से बदलना न भूलें)। यह कमांड IDF मॉनिटर एप्लिकेशन लॉन्च करता है:
$ idf.py -p मॉनिटर निर्देशिका में idf_monitor चल रहा है […]/esp/hello_world/build “python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf”… — idf_monitor चालू 115200 —– बाहर निकलें: Ctrl+] | मेनू: Ctrl+T | सहायता: Ctrl+T के बाद Ctrl+H –ets 8 जून 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) ets जून 8 2016 00:22:57 …
स्टार्टअप और डायग्नोस्टिक लॉग स्क्रॉल करने के बाद, आपको एप्लिकेशन द्वारा प्रिंट किया गया oHello world!p दिखाई देना चाहिए।
... नमस्ते दुनिया! 10 सेकंड में रीस्टार्ट हो रहा है... यह esp32 चिप है जिसमें 2 CPU कोर, WiFi/BT/BLE, सिलिकॉन रिवीजन 1, 2MB एक्सटर्नल फ़्लैश है। न्यूनतम फ्री हीप साइज़: 298968 बाइट्स। 9 सेकंड में रीस्टार्ट हो रहा है... 8 सेकंड में रीस्टार्ट हो रहा है... 7 सेकंड में रीस्टार्ट हो रहा है...
IDF मॉनिटर से बाहर निकलने के लिए शॉर्टकट Ctrl+] का इस्तेमाल करें। अगर अपलोड के तुरंत बाद IDF मॉनिटर काम करना बंद कर देता है, या ऊपर दिए गए संदेशों के बजाय, आपको नीचे दिए गए संदेश जैसा कोई बेतरतीब कचरा दिखाई देता है, तो आपका बोर्ड संभवतः 26 MHz क्रिस्टल का इस्तेमाल कर रहा है। ज़्यादातर डेवलपमेंट बोर्ड डिज़ाइन 40 MHz का इस्तेमाल करते हैं, इसलिए ESP-IDF इस आवृत्ति को डिफ़ॉल्ट मान के रूप में इस्तेमाल करता है।

यदि आपके सामने ऐसी कोई समस्या है तो निम्न कार्य करें:
1. मॉनिटर से बाहर निकलें। 2. मेनूकॉन्फ़िगरेशन पर वापस जाएँ। 3. कंपोनेंट कॉन्फ़िगरेशन > हार्डवेयर सेटिंग्स > मेन XTAL कॉन्फ़िगरेशन > मेन XTAL पर जाएँ।
आवृत्ति, फिर CONFIG_XTAL_FREQ_SEL को 26 मेगाहर्ट्ज में बदलें। 4. उसके बाद, एप्लिकेशन को फिर से बनाएं और फ्लैश करें।

एस्प्रेसिफ सिस्टम्स

42 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें
ESP-IDF के वर्तमान संस्करण में, ESP32 द्वारा समर्थित मुख्य XTAL आवृत्तियाँ इस प्रकार हैं:
· 26 मेगाहर्ट्ज · 40 मेगाहर्ट्ज
नोट: आप बिल्डिंग, फ्लैशिंग और मॉनिटरिंग को एक चरण में संयोजित कर सकते हैं: idf.py -p PORT flash monitor
यह भी देखें: · IDF मॉनिटर का उपयोग करने के लिए आसान शॉर्टकट और अधिक जानकारी के लिए IDF मॉनिटर देखें। · idf.py कमांड और विकल्पों के पूर्ण संदर्भ के लिए idf.py देखें।
ESP32 के साथ शुरुआत करने के लिए बस इतना ही! अब आप कुछ और एक्सपीरियंस आज़माने के लिए तैयार हैं।amples, या सीधे अपने स्वयं के अनुप्रयोगों को विकसित करने के लिए जाओ।
महत्वपूर्ण: कुछ पूर्वamples ESP32 को सपोर्ट नहीं करते क्योंकि ESP32 में ज़रूरी हार्डवेयर शामिल नहीं है, इसलिए इसे सपोर्ट नहीं किया जा सकता। अगर आप एक एक्स बना रहे हैंampकृपया README देखें file समर्थित लक्ष्य तालिका के लिए। यदि यह ESP32 लक्ष्य सहित मौजूद है, या तालिका बिल्कुल भी मौजूद नहीं है, तो exampयह ESP32 पर काम करेगा।
अतिरिक्त सुझाव
अनुमति समस्याएँ /dev/ttyUSB0 कुछ Linux वितरणों में, ESP32 फ़्लैश करते समय आपको "पोर्ट /dev/ttyUSB0 खोलने में विफल" त्रुटि संदेश मिल सकता है। वर्तमान उपयोगकर्ता को डायलआउट समूह में जोड़कर इसे हल किया जा सकता है।
पायथन संगतता ESP-IDF, पायथन 3.7 या उसके बाद के संस्करणों का समर्थन करता है। इस आवश्यकता को पूरा करने वाले नवीनतम संस्करण में अपने ऑपरेटिंग सिस्टम को अपग्रेड करने की अनुशंसा की जाती है। अन्य विकल्पों में स्रोतों से पायथन की स्थापना या pyenv जैसे पायथन संस्करण प्रबंधन प्रणाली का उपयोग शामिल है।
बोर्ड सपोर्ट पैकेज से शुरुआत करें। कुछ डेवलपमेंट बोर्ड पर प्रोटोटाइपिंग को तेज़ करने के लिए, आप बोर्ड सपोर्ट पैकेज (BSP) का उपयोग कर सकते हैं, जिससे किसी खास बोर्ड का इनिशियलाइज़ेशन कुछ ही फ़ंक्शन कॉल्स जितना आसान हो जाता है। एक BSP आमतौर पर डेवलपमेंट बोर्ड पर उपलब्ध सभी हार्डवेयर कंपोनेंट्स को सपोर्ट करता है। पिनआउट डेफ़िनिशन और इनिशियलाइज़ेशन फंक्शन्स के अलावा, एक BSP सेंसर, डिस्प्ले, ऑडियो कोडेक्स आदि जैसे बाहरी कंपोनेंट्स के लिए ड्राइवर्स के साथ आता है। BSPs IDF कंपोनेंट मैनेजर के माध्यम से वितरित किए जाते हैं, इसलिए इन्हें IDF कंपोनेंट रजिस्ट्री में पाया जा सकता है। यहाँ एक उदाहरण दिया गया है।ampअपने प्रोजेक्ट में ESP-WROVER-KIT BSP जोड़ने का तरीका: idf.py add-dependency esp_wrover_kit
अधिक पूर्वampबीएसपी उपयोग के कम उदाहरण बीएसपी उदाहरण में पाए जा सकते हैंampलेस फ़ोल्डर।
सुझाव: ESP-IDF को अपडेट करना समय-समय पर ESP-IDF को अपडेट करने की सलाह दी जाती है, क्योंकि नए संस्करण बग्स को ठीक करते हैं और/या नई सुविधाएँ प्रदान करते हैं। कृपया ध्यान दें कि प्रत्येक ESP-IDF प्रमुख और लघु रिलीज़ संस्करण की एक संबद्ध समर्थन अवधि होती है, और जब एक रिलीज़ शाखा अपने जीवनकाल के अंत (EOL) के करीब पहुँचती है, तो सभी उपयोगकर्ताओं को अपने प्रोजेक्ट्स को नवीनतम ESP-IDF रिलीज़ में अपग्रेड करने के लिए प्रोत्साहित किया जाता है। समर्थन अवधि के बारे में अधिक जानकारी के लिए, ESP-IDF संस्करण देखें।

एस्प्रेसिफ सिस्टम्स

43 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 1. आरंभ करें
अपडेट करने का सबसे आसान तरीका मौजूदा esp-idf फ़ोल्डर को हटाकर उसे फिर से क्लोन करना है, जैसे कि चरण 2 में वर्णित प्रारंभिक इंस्टॉलेशन कर रहे हों। ESP-IDF प्राप्त करें। दूसरा उपाय यह है कि केवल वही अपडेट करें जो बदला है। अपडेट प्रक्रिया आपके द्वारा उपयोग किए जा रहे ESP-IDF के संस्करण पर निर्भर करती है। ESP-IDF अपडेट करने के बाद, इंस्टॉल स्क्रिप्ट को फिर से चलाएँ, अगर नए ESP-IDF संस्करण के लिए टूल्स के अलग-अलग संस्करणों की आवश्यकता हो। चरण 3 में दिए गए निर्देश देखें। टूल्स सेट अप करें। नए टूल्स इंस्टॉल हो जाने के बाद, एक्सपोर्ट स्क्रिप्ट का उपयोग करके परिवेश को अपडेट करें। चरण 4 में दिए गए निर्देश देखें। परिवेश चर सेट अप करें।
संबंधित दस्तावेज़ · ESP32 के साथ सीरियल कनेक्शन स्थापित करें · एक्लिप्स प्लगइन · VSCode एक्सटेंशन · IDF मॉनिटर
1.4 अपना पहला प्रोजेक्ट बनाएँ
यदि आपके पास पहले से ही ESP-IDF स्थापित है और आप IDE का उपयोग नहीं कर रहे हैं, तो आप Windows पर Start a Project या Linux और macOS पर Start a Project का अनुसरण करते हुए कमांड लाइन से अपना पहला प्रोजेक्ट बना सकते हैं।
1.5 ESP-IDF अनइंस्टॉल करें
यदि आप ESP-IDF हटाना चाहते हैं, तो कृपया ESP-IDF अनइंस्टॉल करें का पालन करें।

एस्प्रेसिफ सिस्टम्स

44 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 2
एपीआई संदर्भ
2.1 एपीआई कन्वेंशन
यह दस्तावेज़ ESP-IDF एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस (API) में प्रयुक्त होने वाली सामान्य परंपराओं और मान्यताओं का वर्णन करता है। ESP-IDF कई प्रकार के प्रोग्रामिंग इंटरफ़ेस प्रदान करता है:
· सार्वजनिक हेडर में घोषित C फ़ंक्शन, संरचनाएँ, एनम्स, प्रकार परिभाषाएँ और प्रीप्रोसेसर मैक्रोज़ fileESPIDF घटकों के प्रकार। प्रोग्रामिंग गाइड के API संदर्भ अनुभाग के विभिन्न पृष्ठों में इन फ़ंक्शनों, संरचनाओं और प्रकारों का विवरण दिया गया है।
· बिल्ड सिस्टम फ़ंक्शन, पूर्वनिर्धारित वैरिएबल और विकल्प। ये बिल्ड सिस्टम गाइड में प्रलेखित हैं। · Kconfig विकल्पों का उपयोग कोड और बिल्ड सिस्टम (CMakeLists.txt) में किया जा सकता है। file· होस्ट टूल्स और उनके कमांड लाइन पैरामीटर भी ESP-IDF इंटरफ़ेस का हिस्सा हैं। ESP-IDF में विशेष रूप से ESP-IDF के साथ-साथ तृतीय-पक्ष लाइब्रेरीज़ के लिए लिखे गए घटक शामिल होते हैं। कुछ मामलों में, तृतीय-पक्ष लाइब्रेरी में एक ESP-IDF-विशिष्ट आवरण जोड़ा जाता है, जो एक ऐसा इंटरफ़ेस प्रदान करता है जो या तो सरल होता है या बाकी ESP-IDF सुविधाओं के साथ बेहतर ढंग से एकीकृत होता है। अन्य मामलों में, तृतीय-पक्ष लाइब्रेरी का मूल API एप्लिकेशन डेवलपर्स के सामने प्रस्तुत किया जाता है। निम्नलिखित अनुभाग ESP-IDF API के कुछ पहलुओं और उनके उपयोग की व्याख्या करते हैं।
2.1.1 त्रुटि हैंडलिंग
अधिकांश ESP-IDF API, esp_err_t प्रकार से परिभाषित त्रुटि कोड लौटाते हैं। त्रुटि प्रबंधन विधियों के बारे में अधिक जानकारी के लिए त्रुटि प्रबंधन अनुभाग देखें। त्रुटि कोड संदर्भ में ESP-IDF घटकों द्वारा लौटाए गए त्रुटि कोडों की सूची शामिल है।
2.1.2 कॉन्फ़िगरेशन संरचनाएं
महत्वपूर्ण: कॉन्फ़िगरेशन संरचनाओं का सही आरंभीकरण, एप्लिकेशन को ESP-IDF के भविष्य के संस्करणों के साथ संगत बनाने में एक महत्वपूर्ण हिस्सा है।
ESP-IDF में अधिकांश आरंभीकरण या कॉन्फ़िगरेशन फ़ंक्शन, कॉन्फ़िगरेशन संरचना के लिए एक पॉइंटर को तर्क के रूप में लेते हैं। उदाहरण के लिएampपर:
45

अध्याय 2. एपीआई संदर्भ

const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, .arg = callback_arg, .name = “my_timer”
}; esp_timer_handle_t my_timer; esp_err_t त्रुटि = esp_timer_create(&my_timer_args, &my_timer);
आरंभीकरण फ़ंक्शन कभी भी कॉन्फ़िगरेशन संरचना के लिए पॉइंटर को संग्रहीत नहीं करते हैं, इसलिए स्टैक पर संरचना को आवंटित करना सुरक्षित है।
एप्लिकेशन को संरचना के सभी फ़ील्ड प्रारंभ करने होंगे। निम्नलिखित गलत है:
esp_timer_create_args_t my_timer_args; my_timer_args.callback = &my_timer_callback; /* गलत! फ़ील्ड .arg और .name आरंभीकृत नहीं हैं */ esp_timer_create(&my_timer_args, &my_timer);
अधिकांश ईएसपी-आईडीएफ पूर्वampसंरचना आरंभीकरण के लिए C99 निर्दिष्ट आरंभीकरणकर्ताओं का उपयोग करें, क्योंकि वे फ़ील्ड के उपसमूह को सेट करने और शेष फ़ील्ड को शून्य-प्रारंभ करने का एक संक्षिप्त तरीका प्रदान करते हैं:
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, /* सही, फ़ील्ड .arg और .name शून्य-प्रारंभिक हैं */
};
C++ भाषा C++20 तक निर्दिष्ट इनिशियलाइज़र सिंटैक्स का समर्थन नहीं करती थी, हालाँकि GCC कंपाइलर इसे एक एक्सटेंशन के रूप में आंशिक रूप से समर्थन करता है। C++ कोड में ESP-IDF API का उपयोग करते समय, आप निम्नलिखित पैटर्न का उपयोग करने पर विचार कर सकते हैं:
esp_timer_create_args_t my_timer_args = {}; /* सभी फ़ील्ड शून्य-आरंभीकृत हैं */ my_timer_args.callback = &my_timer_callback;

डिफ़ॉल्ट आरंभकर्ता
कुछ कॉन्फ़िगरेशन संरचनाओं के लिए, ESP-IDF फ़ील्ड के डिफ़ॉल्ट मान सेट करने के लिए मैक्रोज़ प्रदान करता है:
httpd_config_t config = HTTPD_DEFAULT_CONFIG(); /* HTTPD_DEFAULT_CONFIG निर्दिष्ट आरंभकर्ता तक विस्तारित होता है।
अब सभी फ़ील्ड डिफ़ॉल्ट मानों पर सेट हैं। किसी भी फ़ील्ड को अभी भी संशोधित किया जा सकता है: */ config.server_port = 8081; httpd_handle_t server; esp_err_t err = httpd_start(&server, &config);
जब भी किसी विशेष कॉन्फ़िगरेशन संरचना के लिए डिफ़ॉल्ट इनिशियलाइज़र मैक्रोज़ उपलब्ध कराए जाएं, तो उनका उपयोग करने की अनुशंसा की जाती है।

2.1.3 निजी एपीआई
कुछ शीर्षक fileESP-IDF में ऐसे API होते हैं जिनका उपयोग केवल ESP-IDF स्रोत कोड में ही किया जाना है, न कि अनुप्रयोगों द्वारा। ऐसे हेडर files के नाम या पथ में अक्सर private या esp_private होता है। कुछ घटक, जैसे hal, में केवल private API होते हैं। निजी API को छोटे या पैच रिलीज़ के बीच असंगत तरीके से हटाया या बदला जा सकता है।

2.1.4 पूर्व में घटकampले परियोजनाएं
ईएसपी-आईडीएफ पूर्वamples में ESP-IDF API के उपयोग को प्रदर्शित करने वाली विभिन्न परियोजनाएँ शामिल हैं। उदाहरण में कोड दोहराव को कम करने के लिएamples, कुछ सामान्य सहायक घटकों के अंदर परिभाषित किए गए हैं जिनका उपयोग कई ex द्वारा किया जाता हैampलेस.

एस्प्रेसिफ सिस्टम्स

46 दस्तावेज़ फ़ीडबैक सबमिट करें

रिलीज़ v5.0.9

अध्याय 2. एपीआई संदर्भ
इसमें स्थित घटक शामिल हैं

दस्तावेज़ / संसाधन

एस्प्रेसिफ़ सिस्टम्स ESP32 डेव किट डेवलपमेंट बोर्ड [पीडीएफ] उपयोगकर्ता गाइड
ESP32 देव किटसी विकास बोर्ड, ESP32, देव किटसी विकास बोर्ड, किटसी विकास बोर्ड, विकास बोर्ड, बोर्ड

संदर्भ

एक टिप्पणी छोड़ें

आपकी ईमेल आईडी प्रकाशित नहीं की जाएगी। आवश्यक फ़ील्ड चिह्नित हैं *