सामग्री लुकाउनुहोस्
2 ESP32-C3 वायरलेस साहसिक
2.1 IoT को लागि एक व्यापक गाइड

ESP32-C3 वायरलेस साहसिक

ESP32-C3 वायरलेस साहसिक

IoT को लागि एक व्यापक गाइड

Espressif Systems जुन १२, २०२३

निर्दिष्टीकरणहरू

  • उत्पादन: ESP32-C3 वायरलेस साहसिक
  • निर्माता: Espressif प्रणाली
  • मिति: जुन २०, २०२२

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

तयारी

ESP32-C3 वायरलेस साहसिक प्रयोग गर्नु अघि, निश्चित गर्नुहोस् कि तपाईं हुनुहुन्छ
IoT को अवधारणा र वास्तुकला संग परिचित। यसले मद्दत गर्नेछ
तपाईले बुझ्नुहुन्छ कि उपकरण कसरी ठूलो IoT इकोसिस्टममा फिट हुन्छ
र स्मार्ट घरहरूमा यसको सम्भावित अनुप्रयोगहरू।

IoT परियोजनाहरूको परिचय र अभ्यास

यस खण्डमा, तपाईंले सामान्य IoT परियोजनाहरूको बारेमा सिक्नुहुनेछ,
साधारण IoT यन्त्रहरूका लागि आधारभूत मोड्युलहरू, आधारभूत मोड्युलहरू सहित
ग्राहक अनुप्रयोगहरू, र साधारण IoT क्लाउड प्लेटफर्महरू। यो हुनेछ
बुझ्न र आफ्नो सिर्जना गर्न को लागी एक आधार प्रदान गर्दछ
आफ्नै IoT परियोजनाहरू।

अभ्यास: स्मार्ट लाइट परियोजना

यस अभ्यास परियोजनामा, तपाईंले स्मार्ट कसरी बनाउने भनेर सिक्नुहुनेछ
ESP32-C3 ताररहित साहसिक प्रयोग गरेर प्रकाश। आयोजनाको संरचना,
कार्यहरू, हार्डवेयर तयारी, र विकास प्रक्रिया हुनेछ
विस्तृत रूपमा व्याख्या गरे।

परियोजना संरचना

परियोजना सहित धेरै कम्पोनेन्टहरू समावेश छन्
ESP32-C3 वायरलेस साहसिक, LEDs, सेन्सर, र एक क्लाउड
ब्याकइन्ड।

परियोजना कार्यहरू

स्मार्ट लाइट प्रोजेक्टले तपाईंलाई चमक र नियन्त्रण गर्न अनुमति दिन्छ
मोबाइल एप मार्फत टाढाबाट एलईडीहरूको रङ वा web
इन्टरफेस।

हार्डवेयर तयारी

परियोजनाको लागि तयारी गर्न, तपाईंले जम्मा गर्न आवश्यक हुनेछ
आवश्यक हार्डवेयर कम्पोनेन्टहरू, जस्तै ESP32-C3 वायरलेस
साहसिक बोर्ड, LEDs, प्रतिरोधकहरू, र एक बिजुली आपूर्ति।

विकास प्रक्रिया

विकास प्रक्रियामा विकासको स्थापना समावेश छ
वातावरण, LEDs नियन्त्रण गर्न कोड लेख्दै, जडान गर्न
क्लाउड ब्याकइन्ड, र स्मार्टको कार्यक्षमता परीक्षण गर्दै
प्रकाश।

ESP RainMaker को परिचय

ESP RainMaker IoT को विकास को लागी एक शक्तिशाली फ्रेमवर्क हो
उपकरणहरू। यस खण्डमा, तपाईंले ESP RainMaker के हो र के हो भनेर सिक्नुहुनेछ
यसलाई तपाइँको परियोजनाहरूमा कसरी लागू गर्न सकिन्छ।

ESP RainMaker के हो?

ESP RainMaker क्लाउड-आधारित प्लेटफर्म हो जसले को एक सेट प्रदान गर्दछ
IoT यन्त्रहरू निर्माण र व्यवस्थापनका लागि उपकरण र सेवाहरू।

ESP RainMaker को कार्यान्वयन

यस खण्डमा संलग्न विभिन्न घटकहरू व्याख्या गर्दछ
ESP RainMaker लागू गर्दै, दावी सेवा सहित,
रेनमेकर एजेन्ट, क्लाउड ब्याकइन्ड, र रेनमेकर क्लाइन्ट।

अभ्यास: ESP RainMaker को साथ विकास गर्नका लागि मुख्य बुँदाहरू

यस अभ्यास खण्डमा, तपाईंले मुख्य बुँदाहरूको बारेमा सिक्नुहुनेछ
ESP RainMaker सँग विकास गर्दा विचार गर्नुहोस्। यसमा उपकरण समावेश छ
दावी, डाटा सिङ्क्रोनाइजेसन, र प्रयोगकर्ता व्यवस्थापन।

ESP RainMaker को सुविधाहरू

ESP RainMaker ले प्रयोगकर्ता व्यवस्थापन, अन्त्यका लागि विभिन्न सुविधाहरू प्रदान गर्दछ
प्रयोगकर्ताहरू, र प्रशासकहरू। यी सुविधाहरू सजिलो उपकरणको लागि अनुमति दिन्छ
सेटअप, रिमोट कन्ट्रोल, र निगरानी।

विकास वातावरण स्थापना गर्दै

यो खण्ड एक ओभर प्रदान गर्दछview ESP-IDF (Espressif IoT
विकास फ्रेमवर्क), जुन आधिकारिक विकास ढाँचा हो
ESP32-आधारित यन्त्रहरूको लागि। यसले विभिन्न संस्करणहरू व्याख्या गर्दछ
ESP-IDF र कसरी विकास वातावरण सेट अप गर्ने।

हार्डवेयर र चालक विकास

ESP32-C3 मा आधारित स्मार्ट लाइट उत्पादनहरूको हार्डवेयर डिजाइन

यो खण्डले स्मार्ट लाइटको हार्डवेयर डिजाइनमा केन्द्रित छ
ESP32-C3 ताररहित साहसिकमा आधारित उत्पादनहरू। यसले कभर गर्दछ
सुविधाहरू र स्मार्ट प्रकाश उत्पादनहरूको संरचना, साथै
ESP32-C3 कोर प्रणालीको हार्डवेयर डिजाइन।

स्मार्ट लाइट उत्पादनहरूको विशेषताहरू र संरचना

यस उपखण्डले बन्ने सुविधाहरू र घटकहरू बताउँछ
स्मार्ट प्रकाश उत्पादनहरू। यसले विभिन्न प्रकार्यहरू छलफल गर्दछ
र स्मार्ट बत्तीहरू सिर्जना गर्न डिजाइन विचारहरू।

ESP32-C3 कोर प्रणालीको हार्डवेयर डिजाइन

ESP32-C3 कोर प्रणालीको हार्डवेयर डिजाइनमा पावर समावेश छ
आपूर्ति, पावर-अन अनुक्रम, प्रणाली रिसेट, SPI फ्लैश, घडी स्रोत,
र आरएफ र एन्टेना विचारहरू। यो उपधारा प्रदान गर्दछ
यी पक्षहरूमा विस्तृत जानकारी।

FAQ

प्रश्न: ESP RainMaker के हो?

A: ESP RainMaker क्लाउड-आधारित प्लेटफर्म हो जसले उपकरणहरू प्रदान गर्दछ
र IoT उपकरणहरू निर्माण र व्यवस्थापनका लागि सेवाहरू। यसले सरल बनाउँछ
विकास प्रक्रिया र सजिलो उपकरण सेटअप, टाढाको लागि अनुमति दिन्छ
नियन्त्रण, र निगरानी।

प्रश्न: म कसरी विकास वातावरण सेट अप गर्न सक्छु?
ESP32-C3?

A: ESP32-C3 को लागि विकास वातावरण सेटअप गर्न, तपाईंलाई आवश्यक छ
ESP-IDF (Espressif IoT विकास फ्रेमवर्क) स्थापना गर्न र
प्रदान गरिएको निर्देशन अनुसार कन्फिगर गर्नुहोस्। ESP-IDF हो
ESP32-आधारित यन्त्रहरूको लागि आधिकारिक विकास फ्रेमवर्क।

प्रश्न: ESP RainMaker को सुविधाहरू के हुन्?

A: ESP RainMaker ले प्रयोगकर्ता सहित विभिन्न सुविधाहरू प्रदान गर्दछ
व्यवस्थापन, अन्त प्रयोगकर्ता सुविधाहरू, र प्रशासक सुविधाहरू। प्रयोगकर्ता व्यवस्थापन
सजिलो उपकरण दावी र डेटा सिंक्रोनाइजेसनको लागि अनुमति दिन्छ। अन्तिम प्रयोगकर्ता
सुविधाहरूले मोबाइल एप वा मार्फत उपकरणहरूको रिमोट कन्ट्रोल सक्षम गर्दछ
web इन्टरफेस। व्यवस्थापक सुविधाहरूले उपकरण निगरानीको लागि उपकरणहरू प्रदान गर्दछ
र व्यवस्थापन।

ESP32-C3 वायरलेस साहसिक
IoT को लागि एक व्यापक गाइड
Espressif Systems जुन १२, २०२३

सामग्री

म तयारी

1

1 IoT को परिचय

3

1.1 IoT को वास्तुकला। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ३

1.2 स्मार्ट घरहरूमा IoT अनुप्रयोग। । । । । । । । । । । । । । । । । । । । । । । । । । ६

2 IoT परियोजनाहरूको परिचय र अभ्यास

9

2.1 विशिष्ट IoT परियोजनाहरूको परिचय। । । । । । । । । । । । । । । । । । । । । । । । ९

2.1.1 साधारण IoT यन्त्रहरूका लागि आधारभूत मोड्युलहरू। । । । । । । । । । । । । । । । । ९

2.1.2 ग्राहक अनुप्रयोगहरूको आधारभूत मोड्युलहरू। । । । । । । । । । । । । । । । । । । १०

२.१.३ साझा IoT क्लाउड प्लेटफर्महरूको परिचय। । । । । । । । । । । । । । ११

२.२ अभ्यास: स्मार्ट लाइट प्रोजेक्ट। । । । । । । । । । । । । । । । । । । । । । । । । । । । १२

२.२.१ परियोजना संरचना । । । । । । । । । । । । । । । । । । । । । । । । । । । । । १३

2.2.2 परियोजना कार्यहरू। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । १३

२.२.३ हार्डवेयर तयारी । । । । । । । । । । । । । । । । । । । । । । । । । । १४

२.२.४ विकास प्रक्रिया । । । । । । । । । । । । । । । । । । । । । । । । । । । १६

2.3 सारांश। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । १७

3 ESP RainMaker को परिचय

19

3.1 ESP RainMaker के हो? । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । २०

3.2 ESP RainMaker को कार्यान्वयन। । । । । । । । । । । । । । । । । । । । । । २१

3.2.1 दावी सेवा। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । २२

३.२.२ रेनमेकर एजेन्ट । । । । । । । । । । । । । । । । । । । । । । । । । । । । । २२

३.२.३ क्लाउड ब्याकइन्ड । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । २३

३.२.४ रेनमेकर क्लाइन्ट । । । । । । । । । । । । । । । । । । । । । । । । । । । । । २४

3.3 अभ्यास: ESP RainMaker को साथ विकासको लागि मुख्य बुँदाहरू। । । । । । । । । । । । २५

3.4 ESP रेनमेकरका विशेषताहरू। । । । । । । । । । । । । । । । । । । । । । । । । । । । २६

3.4.1 प्रयोगकर्ता व्यवस्थापन । । । । । । । । । । । । । । । । । । । । । । । । । । । । २६

3.4.2 अन्तिम प्रयोगकर्ता सुविधाहरू। । । । । । । । । । । । । । । । । । । । । । । । । । । । । २७

3.4.3 व्यवस्थापक सुविधाहरू। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । २८

3.5 सारांश। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । १७

4 विकास वातावरण स्थापना गर्दै

31

4.1 ESP-IDF ओभरview । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ४

4.1.1 ESP-IDF संस्करणहरू। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ३२

3

4.1.2 ESP-IDF Git कार्यप्रवाह। । । । । । । । । । । । । । । । । । । । । । । । । । । 33 4.1.3 उपयुक्त संस्करण छनोट गर्दै। । । । । । । । । । । । । । । । । । । । । । । । ३४ ४.१.४ ओभरview ESP-IDF SDK निर्देशिका को। । । । । । । । । । । । । । । । । । । । 34 4.2 ESP-IDF विकास वातावरण सेटअप गर्दै। । । । । । । । । । । । । । । । । 38 4.2.1 लिनक्समा ESP-IDF विकास वातावरण सेटअप गर्दै। । । । । । । । 38 4.2.2 Windows मा ESP-IDF विकास वातावरण सेटअप गर्दै। । । । । । 40 4.2.3 म्याकमा ESP-IDF विकास वातावरण सेटअप गर्दै। । । । । । । । । 45 4.2.4 VS कोड स्थापना गर्दै। । । । । । । । । । । । । । । । । । । । । । । । । । । । । 46 4.2.5 तेस्रो-पक्ष विकास वातावरणको परिचय। । । । । । । । 46 4.3 ESP-IDF संकलन प्रणाली। । । । । । । । । । । । । । । । । । । । । । । । । । । । ४७ ४.३.१ संकलन प्रणालीका आधारभूत अवधारणाहरू। । । । । । । । । । । । । । । । । । ४७ ४.३.२ परियोजना File संरचना। । । । । । । । । । । । । । । । । । । । । । । । । । । । 47 4.3.3 संकलन प्रणालीको पूर्वनिर्धारित निर्माण नियमहरू। । । । । । । । । । । । । 50 4.3.4 संकलन लिपिको परिचय। । । । । । । । । । । । । । । । । । 51 4.3.5 साझा आदेशहरूको परिचय। । । । । । । । । । । । । । । । । । । 52 4.4 अभ्यास: कम्पाइलिङ उदाampले कार्यक्रम "पलक"। । । । । । । । । । । । । । । । । । ५३ ४.४.१ पूर्वampले विश्लेषण। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । 53 4.4.2 ब्लिङ्क कार्यक्रम कम्पाइल गर्दै। । । । । । । । । । । । । । । । । । । । । । । 56 4.4.3 ब्लिङ्क कार्यक्रम फ्ल्यास गर्दै। । । । । । । । । । । । । । । । । । । । । । । । 59 4.4.4 ब्लिंक कार्यक्रमको सिरियल पोर्ट लग विश्लेषण। । । । । । । । । । । । । । 60 4.5 सारांश। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ६३

II हार्डवेयर र चालक विकास

65

5 ESP32-C3 मा आधारित स्मार्ट लाइट उत्पादनहरूको हार्डवेयर डिजाइन

67

5.1 स्मार्ट लाइट उत्पादनहरूको सुविधाहरू र संरचना। । । । । । । । । । । । । । । ६७

5.2 ESP32-C3 कोर प्रणालीको हार्डवेयर डिजाइन। । । । । । । । । । । । । । । । । । । ७०

५.२.१ विद्युत आपूर्ति । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ७४

5.2.2 पावर-अन अनुक्रम र प्रणाली रिसेट। । । । । । । । । । । । । । । । । । ७४

5.2.3 SPI फ्ल्यास। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ७५

5.2.4 घडी स्रोत। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ७५

5.2.5 RF र एन्टेना। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ७६

५.२.६ स्ट्र्यापिङ पिन । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ७९

5.2.7 GPIO र PWM नियन्त्रक। । । । । । । । । । । । । । । । । । । । । । । । । ७९

५.३ अभ्यास: ESP5.3-C32 सँग स्मार्ट लाइट प्रणाली निर्माण गर्ने। । । । । । । । । । । । । ८०

५.३.१ मोड्युल चयन गर्दै । । । । । । । । । । । । । । । । । । । । । । । । । । । । ८०

5.3.2 PWM सिग्नलहरूको GPIOs कन्फिगर गर्दै। । । । । । । । । । । । । । । । । । । । ८२

5.3.3 फर्मवेयर र डिबगिङ इन्टरफेस डाउनलोड गर्दै। । । । । । । । । । । । ८२

5.3.4 RF डिजाइनका लागि दिशानिर्देशहरू। । । । । । । । । । । । । । । । । । । । । । । । । । 84 5.3.5 पावर सप्लाई डिजाइनका लागि दिशानिर्देशहरू। । । । । । । । । । । । । । । । । । । 86 5.4 सारांश। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ८६

6 चालक विकास

87

6.1 चालक विकास प्रक्रिया। । । । । । । । । । । । । । । । । । । । । । । । । । । । ८७

6.2 ESP32-C3 परिधीय अनुप्रयोगहरू। । । । । । । । । । । । । । । । । । । । । । । । । ८८

6.3 LED चालक आधारभूत कुराहरू। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ८९

6.3.1 रङ स्पेसहरू। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ८९

6.3.2 एलईडी ड्राइभर। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ९४

६.३.३ एलईडी डिमिङ । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ९४

6.3.4 PWM को परिचय। । । । । । । । । । । । । । । । । । । । । । । । । । । । ९५

6.4 एलईडी डिमिङ चालक विकास। । । । । । । । । । । । । । । । । । । । । । । । ९६

6.4.1 गैर-वाष्पशील भण्डारण (NVS)। । । । । । । । । । । । । । । । । । । । । । । । ९७

6.4.2 एलईडी PWM नियन्त्रक (LEDC)। । । । । । । । । । । । । । । । । । । । । । । ९८

6.4.3 एलईडी PWM प्रोग्रामिङ। । । । । । । । । । । । । । । । । । । । । । । । । । १००

६.५ अभ्यास: स्मार्ट लाइट प्रोजेक्टमा ड्राइभरहरू थप्दै। । । । । । । । । । । । । । । । । १०३

6.5.1 बटन ड्राइभर। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । १०३

6.5.2 एलईडी डिमिङ ड्राइभर। । । । । । । । । । । । । । । । । । । । । । । । । । । । १०४

6.6 सारांश। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । १७

III ताररहित संचार र नियन्त्रण

109

7 Wi-Fi कन्फिगरेसन र जडान

111

7.1 Wi-Fi को आधारभूत कुराहरू। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । १११

7.1.1 Wi-Fi को परिचय। । । । । । । । । । । । । । । । । । । । । । । । । । । । १११

7.1.2 IEEE 802.11 को विकास। । । । । । । । । । । । । । । । । । । । । । । । । १११

7.1.3 Wi-Fi अवधारणाहरू। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ११२

7.1.4 Wi-Fi जडान। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ११५

7.2 ब्लुटुथको आधारभूत कुराहरू। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । १२२

7.2.1 ब्लुटुथको परिचय। । । । । । । । । । । । । । । । । । । । । । । । । १२३

7.2.2 ब्लुटुथ अवधारणाहरू। । । । । । । । । । । । । । । । । । । । । । । । । । । । । १२४

7.2.3 ब्लुटुथ जडान। । । । । । । । । । । । । । । । । । । । । । । । । । । १२७

7.3 Wi-Fi नेटवर्क कन्फिगरेसन। । । । । । । । । । । । । । । । । । । । । । । । । । । १३१

7.3.1 Wi-Fi नेटवर्क कन्फिगरेसन गाइड। । । । । । । । । । । । । । । । । । । । १३१

७.३.२ SoftAP । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । १३२

७.३.३ स्मार्ट कन्फिग । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । १३२

7.3.4 ब्लुटुथ। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । १३५

7.3.5 अन्य विधिहरू। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । १३७

7.4 Wi-Fi प्रोग्रामिङ। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । 139 7.4.1 ESP-IDF मा Wi-Fi कम्पोनेन्टहरू। । । । । । । । । । । । । । । । । । । । । । । 139 7.4.2 अभ्यास: Wi-Fi जडान। । । । । । । । । । । । । । । । । । । । । । । । 141 7.4.3 अभ्यास: स्मार्ट Wi-Fi जडान। । । । । । । । । । । । । । । । । । । । । १४५
७.५ अभ्यास: स्मार्ट लाइट प्रोजेक्टमा Wi-Fi कन्फिगरेसन। । । । । । । । । । । । । । । 7.5 156 स्मार्ट लाइट परियोजनामा ​​Wi-Fi जडान। । । । । । । । । । । । । । । । । 7.5.1 156 स्मार्ट Wi-Fi कन्फिगरेसन। । । । । । । । । । । । । । । । । । । । । । । । । १५७
7.6 सारांश। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । १७

8 स्थानीय नियन्त्रण

159

8.1 स्थानीय नियन्त्रणको परिचय। । । । । । । । । । । । । । । । । । । । । । । । । । । १५९

8.1.1 स्थानीय नियन्त्रणको आवेदन। । । । । । । । । । । । । । । । । । । । । । । । १६१

8.1.2 अड्वानtagस्थानीय नियन्त्रण को es। । । । । । । । । । । । । । । । । । । । । । । । १६१

8.1.3 स्मार्टफोन मार्फत नियन्त्रित यन्त्रहरू पत्ता लगाउने। । । । । । । । । । १६१

8.1.4 स्मार्टफोन र उपकरणहरू बीच डाटा संचार। । । । । । । । १६२

8.2 साझा स्थानीय खोज विधिहरू। । । । । । । । । । । । । । । । । । । । । । । । १६२

८.२.१ प्रसारण। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । १६३

८.२.२ मल्टिकास्ट । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । १६९

8.2.3 प्रसारण र मल्टिकास्ट बीचको तुलना। । । । । । । । । । । । । । १७६

8.2.4 स्थानीय खोजका लागि मल्टिकास्ट एप्लिकेसन प्रोटोकल mDNS। । । । । । । । १७६

8.3 स्थानीय डाटाका लागि साझा सञ्चार प्रोटोकलहरू। । । । । । । । । । । । । । । १७९

८.३.१ ट्रान्समिशन कन्ट्रोल प्रोटोकल (TCP)। । । । । । । । । । । । । । । । । । । १७९

8.3.2 हाइपरटेक्स्ट ट्रान्सफर प्रोटोकल (HTTP)। । । । । । । । । । । । । । । । । । । १८५

8.3.3 प्रयोगकर्ता Datagराम प्रोटोकल (UDP)। । । । । । । । । । । । । । । । । । । । । । १८९

8.3.4 Constrained Application Protocol (CoAP)। । । । । । । । । । । । । । । । १९२

8.3.5 ब्लुटुथ प्रोटोकल। । । । । । । । । । । । । । । । । । । । । । । । । । । । । १९७

8.3.6 डाटा कम्युनिकेसन प्रोटोकलहरूको सारांश। । । । । । । । । । । । । । । २०३

8.4 डाटा सुरक्षाको ग्यारेन्टी। । । । । । । । । । । । । । । । । । । । । । । । । । । । २०५

8.4.1 यातायात तह सुरक्षा (TLS) को परिचय। । । । । । । । । । । । । २०७

8.4.2 दा को परिचयtagराम यातायात तह सुरक्षा (DTLS)। । । । । । । २१३

8.5 अभ्यास: स्मार्ट लाइट परियोजनामा ​​स्थानीय नियन्त्रण। । । । । । । । । । । । । । । । । । २१७

8.5.1 Wi-Fi-आधारित स्थानीय नियन्त्रण सर्भर सिर्जना गर्दै। । । । । । । । । । । । । । । २१७

8.5.2 स्क्रिप्टहरू प्रयोग गरेर स्थानीय नियन्त्रण कार्यक्षमता प्रमाणित गर्दै। । । । । । । । । । । २२१

8.5.3 ब्लुटुथ-आधारित स्थानीय नियन्त्रण सर्भर सिर्जना गर्दै। । । । । । । । । । । । २२२

8.6 सारांश। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । १७

9 क्लाउड नियन्त्रण

225

9.1 रिमोट कन्ट्रोलको परिचय। । । । । । । । । । । । । । । । । । । । । । । । । । २२५

9.2 क्लाउड डाटा कम्युनिकेसन प्रोटोकलहरू। । । । । । । । । । । । । । । । । । । । । । २२६

9.2.1 MQTT परिचय। । । । । । । । । । । । । । । । । । । । । । । । । । । । । 226 9.2.2 MQTT सिद्धान्तहरू । । । । । । । । । । । । । । । । । । । । । । । । । । । । । 227 9.2.3 MQTT सन्देश ढाँचा। । । । । । । । । । । । । । । । । । । । । । । । । । 228 9.2.4 प्रोटोकल तुलना। । । । । । । । । । । । । । । । । । । । । । । । । । । । 233 9.2.5 लिनक्स र विन्डोजमा MQTT ब्रोकर सेटअप गर्दै। । । । । । । । । । । । 233 9.2.6 ESP-IDF मा आधारित MQTT ग्राहक सेटअप गर्दै। । । । । । । । । । । । । । । । 235 9.3 MQTT डाटा सुरक्षा सुनिश्चित गर्दै। । । । । । । । । । । । । । । । । । । । । । । । । । । 237 9.3.1 प्रमाणपत्रहरूको अर्थ र कार्य। । । । । । । । । । । । । । । । । । । 237 9.3.2 स्थानीय रूपमा प्रमाणपत्रहरू सिर्जना गर्दै। । । । । । । । । । । । । । । । । । । । । । 239 9.3.3 MQTT ब्रोकर कन्फिगर गर्दै। । । । । । । । । । । । । । । । । । । । । । । । । 241 9.3.4 MQTT क्लाइन्ट कन्फिगर गर्दै। । । । । । । । । । । । । । । । । । । । । । । । । 241 9.4 अभ्यास: ESP RainMaker मार्फत रिमोट कन्ट्रोल। । । । । । । । । । । । । । । । 243 9.4.1 ESP रेनमेकर आधारभूत कुराहरू। । । । । । । । । । । । । । । । । । । । । । । । । । । 243 9.4.2 नोड र क्लाउड ब्याकइन्ड कम्युनिकेसन प्रोटोकल। । । । । । । । । । । 244 9.4.3 ग्राहक र क्लाउड ब्याकइन्ड बीचको सञ्चार। । । । । । । । । । । 249 9.4.4 प्रयोगकर्ता भूमिकाहरू। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । 252 9.4.5 आधारभूत सेवाहरू। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । 253 9.4.6 Smart Light Example । । । । । । । । । । । । । । । । । । । । । । । । । । । 255 9.4.7 RainMaker एप र तेस्रो-पक्ष एकीकरण। । । । । । । । । । । । । । । 262 9.5 सारांश। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । २६७

10 स्मार्टफोन एप विकास

269

10.1 स्मार्टफोन एप विकासको परिचय। । । । । । । । । । । । । । । । । । २६९

१.१ ओभरview स्मार्टफोन एप विकास को। । । । । । । । । । । । । । । 270

10.1.2 एन्ड्रोइड परियोजनाको संरचना। । । । । । । । । । । । । । । । । । । । । । 270

10.1.3 iOS परियोजनाको संरचना। । । । । । । । । । । । । । । । । । । । । । । । २७१

10.1.4 एन्ड्रोइड गतिविधिको जीवनचक्र। । । । । । । । । । । । । । । । । । । । । । २७२

10.1.5 iOS को जीवनचक्र Viewनियन्त्रक। । । । । । । । । । । । । । । । । । । । । । २७३

10.2 नयाँ स्मार्टफोन एप प्रोजेक्ट सिर्जना गर्दै। । । । । । । । । । । । । । । । । । । । । २७५

10.2.1 एन्ड्रोइड विकासको लागि तयारी गर्दै। । । । । । । । । । । । । । । । । । । २७५

10.2.2 नयाँ एन्ड्रोइड परियोजना सिर्जना गर्दै। । । । । । । । । । । । । । । । । । । । । । २७५

10.2.3 MyRainmaker को लागि निर्भरता थप्दै। । । । । । । । । । । । । । । । । २७६

10.2.4 एन्ड्रोइडमा अनुमति अनुरोध। । । । । । । । । । । । । । । । । । । । । । २७७

10.2.5 iOS विकासको लागि तयारी गर्दै। । । । । । । । । । । । । । । । । । । । । । २७७

10.2.6 नयाँ iOS परियोजना सिर्जना गर्दै। । । । । । । । । । । । । । । । । । । । । । । । २७८

10.2.7 MyRainmaker को लागि निर्भरता थप्दै। । । । । । । । । । । । । । । । । २७६

10.2.8 iOS मा अनुमति अनुरोध। । । । । । । । । । । । । । । । । । । । । । । । । 280

10.3 एपको कार्यात्मक आवश्यकताहरूको विश्लेषण। । । । । । । । । । । । । । । । । । २८१

10.3.1 परियोजनाको कार्यात्मक आवश्यकताहरूको विश्लेषण। । । । । । । । । । । । २८२

10.3.2 प्रयोगकर्ता व्यवस्थापन आवश्यकताहरूको विश्लेषण। । । । । । । । । । । । । । । 282 10.3.3 यन्त्र प्रावधान र बाध्यकारी आवश्यकताहरूको विश्लेषण। । । । । । । 283 10.3.4 रिमोट-कन्ट्रोल आवश्यकताहरूको विश्लेषण। । । । । । । । । । । । । । । । 283 10.3.5 अनुसूची आवश्यकताहरूको विश्लेषण। । । । । । । । । । । । । । । । । । । 284 10.3.6 प्रयोगकर्ता केन्द्र आवश्यकताहरूको विश्लेषण। । । । । । । । । । । । । । । । । । 285 10.4 प्रयोगकर्ता व्यवस्थापनको विकास। । । । । । । । । । । । । । । । । । । । । । । । 285 10.4.1 RainMaker API को परिचय। । । । । । । । । । । । । । । । । । । । । । 285 10.4.2 स्मार्टफोन मार्फत सञ्चार प्रारम्भ गर्दै। । । । । । । । । । । । । । । । 286 10.4.3 खाता दर्ता। । । । । । । । । । । । । । । । । । । । । । । । । । । । 286 10.4.4 खाता लगइन। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । 289 10.5 यन्त्र प्रावधानको विकास। । । । । । । । । । । । । । । । । । । । । । । 292 10.5.1 स्क्यानिङ उपकरणहरू। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । 293 10.5.2 जडान गर्ने यन्त्रहरू। । । । । । । । । । । । । । । । । । । । । । । । । । । । । 295 10.5.3 गोप्य कुञ्जीहरू उत्पन्न गर्दै। । । । । । । । । । । । । । । । । । । । । । । । । । । 298 10.5.4 नोड ID प्राप्त गर्दै। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । 298 10.5.5 प्रावधान यन्त्रहरू। । । । । । । । । । । । । । । । । । । । । । । । । । । । 300 10.6 यन्त्र नियन्त्रणको विकास। । । । । । । । । । । । । । । । । । । । । । । । । । 302 10.6.1 क्लाउड खाताहरूमा बाइन्डिङ उपकरणहरू। । । । । । । । । । । । । । । । । । । । 303 10.6.2 यन्त्रहरूको सूची प्राप्त गर्दै। । । । । । । । । । । । । । । । । । । । । । । । । । 305 10.6.3 यन्त्र स्थिति प्राप्त गर्दै। । । । । । । । । । । । । । । । । । । । । । । । । । । 308 10.6.4 यन्त्र स्थिति परिवर्तन गर्दै। । । । । । । । । । । । । । । । । । । । । । । । । । 310 10.7 समयतालिका र प्रयोगकर्ता केन्द्रको विकास। । । । । । । । । । । । । । । । । । । 313 10.7.1 अनुसूची कार्य कार्यान्वयन गर्दै। । । । । । । । । । । । । । । । । । । । 313 10.7.2 कार्यान्वयन प्रयोगकर्ता केन्द्र। । । । । । । । । । । । । । । । । । । । । । । । । 315 10.7.3 थप क्लाउड API हरू। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । 318 10.8 सारांश। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ३१९

11 फर्मवेयर अपग्रेड र संस्करण व्यवस्थापन

321

11.1 फर्मवेयर अपग्रेड। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ३२१

१.१ ओभरview विभाजन तालिकाको। । । । । । । । । । । । । । । । । । । । । । । । ३२२

11.1.2 फर्मवेयर बुट प्रक्रिया। । । । । । । । । । । । । । । । । । । । । । । । । । । ३२४

१.१ ओभरview OTA संयन्त्रको। । । । । । । । । । । । । । । । । । । । । ३२६

11.2 फर्मवेयर संस्करण व्यवस्थापन। । । । । । । । । । । । । । । । । । । । । । । । । । ३२९

11.2.1 फर्मवेयर मार्किङ। । । । । । । । । । । । । । । । । । । । । । । । । । । । । ३२९

11.2.2 रोलब्याक र एन्टी-रोलब्याक। । । । । । । । । । । । । । । । । । । । । । । । ३३१

11.3 अभ्यास: ओभर-द-एयर (OTA) पूर्वample । । । । । । । । । । । । । । । । । । । । । । ३३२

11.3.1 स्थानीय होस्ट मार्फत फर्मवेयर अपग्रेड गर्नुहोस्। । । । । । । । । । । । । । । । । ३३२

11.3.2 ESP RainMaker मार्फत फर्मवेयर अपग्रेड गर्नुहोस्। । । । । । । । । । । । । । । ३३५

11.4 सारांश। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । १७

IV अनुकूलन र ठूलो उत्पादन

343

12 पावर व्यवस्थापन र कम-शक्ति अनुकूलन

345

12.1 ESP32-C3 पावर व्यवस्थापन। । । । । । । । । । । । । । । । । । । । । । । । । । । ३४५

१२.१.१ डायनामिक फ्रिक्वेन्सी स्केलिङ । । । । । । । । । । । । । । । । । । । । । । । ३४६

12.1.2 पावर व्यवस्थापन कन्फिगरेसन। । । । । । । । । । । । । । । । । । । । ३४८

12.2 ESP32-C3 कम पावर मोड। । । । । । । । । । । । । । । । । । । । । । । । । । । । ३४८

12.2.1 मोडेम-स्लीप मोड। । । । । । । । । । । । । । । । । । । । । । । । । । । । । ३४९

12.2.2 हल्का निद्रा मोड। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ३५१

12.2.3 गहिरो निद्रा मोड। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ३५६

१२.२.४ विभिन्न पावर मोडहरूमा हालको खपत। । । । । । । । । । । । । ३५८

12.3 पावर व्यवस्थापन र कम-शक्ति डिबगिङ। । । । । । । । । । । । । । । । । ३५९

12.3.1 लग डिबगिङ। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ३६०

12.3.2 GPIO डिबगिङ। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ३६२

१२.४ अभ्यास: स्मार्ट लाइट प्रोजेक्टमा पावर व्यवस्थापन। । । । । । । । । । । । । । । ३६३

12.4.1 पावर व्यवस्थापन सुविधा कन्फिगर गर्दै। । । । । । । । । । । । । । । । । ३६४

12.4.2 पावर व्यवस्थापन लकहरू प्रयोग गर्नुहोस्। । । । । । । । । । । । । । । । । । । । । । ३६५

12.4.3 शक्ति खपत प्रमाणीकरण। । । । । । । । । । । । । । । । । । । । । । । ३६६

12.5 सारांश। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । १७

13 परिष्कृत उपकरण सुरक्षा सुविधाहरू

369

१.१ ओभरview IoT उपकरण डाटा सुरक्षा को। । । । । । । । । । । । । । । । । । । । । । । ३६९

13.1.1 किन IoT उपकरण डाटा सुरक्षित गर्ने? । । । । । । । । । । । । । । । । । । । । । । ३७०

13.1.2 IoT यन्त्र डाटा सुरक्षाका लागि आधारभूत आवश्यकताहरू। । । । । । । । । । । । ३७१

13.2 डाटा अखण्डता संरक्षण। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ३७२

१३.२.१ अखण्डता प्रमाणिकरण विधिको परिचय। । । । । । । । । । । । । । ३७२

13.2.2 फर्मवेयर डाटाको अखण्डता प्रमाणिकरण। । । । । । । । । । । । । । । । । । ३७३

०० पूर्वample । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ३७४

13.3 डाटा गोपनीयता संरक्षण। । । । । । । । । । । । । । । । । । । । । । । । । । ३७४

13.3.1 डाटा इन्क्रिप्शनको परिचय। । । । । । । । । । । । । । । । । । । । । । ३७४

13.3.2 फ्ल्यास इन्क्रिप्सन योजनाको परिचय। । । । । । । । । । । । । । । । । ३७६

13.3.3 फ्ल्यास इन्क्रिप्शन कुञ्जी भण्डारण। । । । । । । । । । । । । । । । । । । । । । । ३७९

13.3.4 फ्ल्यास इन्क्रिप्शनको कार्य मोड। । । । । । । । । । । । । । । । । । । । ३८०

13.3.5 फ्ल्यास इन्क्रिप्शन प्रक्रिया। । । । । । । । । । । । । । । । । । । । । । । । । । ३८१

13.3.6 NVS एन्क्रिप्शनको परिचय। । । । । । । । । । । । । । । । । । । । । । ३८३

०० पूर्वampफ्ल्यास एन्क्रिप्शन र NVS एन्क्रिप्शन को लेस। । । । । । । । । । । ३८४

13.4 डाटा वैधता संरक्षण। । । । । । । । । । । । । । । । । । । । । । । । । । । । ३८६

१३.४.१ डिजिटल हस्ताक्षरको परिचय। । । । । । । । । । । । । । । । । । । । । ३८६

१.१ ओभरview सुरक्षित बुट योजना को। । । । । । । । । । । । । । । । । । । । । ३८८

13.4.3 सफ्टवेयर सुरक्षित बुट को परिचय। । । । । । । । । । । । । । । । । । । 388 13.4.4 हार्डवेयर सुरक्षित बुटको परिचय। । । । । । । । । । । । । । । । । । ३९० १३.४.५ उदाहरणampलेस । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । 394 13.5 अभ्यास: ठूलो उत्पादनमा सुरक्षा सुविधाहरू। । । । । । । । । । । । । । । । । । 396 13.5.1 फ्ल्यास इन्क्रिप्सन र सुरक्षित बुट। । । । । । । । । । । । । । । । । । । । । 396 13.5.2 ब्याच फ्ल्यास उपकरणहरूसँग फ्ल्यास इन्क्रिप्सन र सुरक्षित बुट सक्षम गर्दै। । 397 13.5.3 स्मार्ट लाइट प्रोजेक्टमा फ्ल्यास इन्क्रिप्सन र सुरक्षित बुट सक्षम गर्दै। । । 398 13.6 सारांश। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ३९८

14 ठूलो उत्पादनको लागि फर्मवेयर जलाउने र परीक्षण

399

14.1 ठूलो उत्पादनमा फर्मवेयर जलिरहेको छ। । । । । । । । । । । । । । । । । । । । । । ३९९

14.1.1 डाटा विभाजन परिभाषित गर्दै। । । । । । । । । । । । । । । । । । । । । । । । । । ३९९

14.1.2 फर्मवेयर बर्निङ । । । । । । । । । । । । । । । । । । । । । । । । । । । । ४०२

14.2 सामूहिक उत्पादन परीक्षण। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । ४०३

14.3 अभ्यास: स्मार्ट लाइट परियोजना मा मास उत्पादन डाटा। । । । । । । । । । । । । ४०४

14.4 सारांश। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । १७

15 ESP इनसाइटहरू: रिमोट मोनिटरिङ प्लेटफर्म

405

15.1 ESP अन्तर्दृष्टि को परिचय। । । । । । । । । । । । । । । । । । । । । । । । । । । । ४०५

15.2 ESP अन्तर्दृष्टि संग सुरु गर्दै। । । । । । । । । । । । । । । । । । । । । । । । । ४०९

15.2.1 esp-insights परियोजनामा ​​ESP अन्तर्दृष्टिको साथ सुरु गर्दै। । । । । । ४०९

15.2.2 चलिरहेको पूर्वampesp-insights परियोजनामा। । । । । । । । । । । । । । । ४११

15.2.3 रिपोर्टिङ कोरडम्प जानकारी। । । । । । । । । । । । । । । । । । । । । ४११

15.2.4 रूचिको लगहरू अनुकूलित गर्दै। । । । । । । । । । । । । । । । । । । । । । । । ४१२

15.2.5 रिपोर्टिङ रिबुट कारण। । । । । । । । । । । । । । । । । । । । । । । । । ४१३

15.2.6 रिपोर्टिङ कस्टम मेट्रिक्स। । । । । । । । । । । । । । । । । । । । । । । । । ४१३

15.3 अभ्यास: स्मार्ट लाइट प्रोजेक्टमा ESP इनसाइटहरू प्रयोग गर्दै। । । । । । । । । । । । । । । ४१६

15.4 सारांश। । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । । १७

परिचय
ESP32-C3 खुला स्रोत RISC-V वास्तुकलामा आधारित एकल-कोर Wi-Fi र ब्लुटुथ 5 (LE) माइक्रोकन्ट्रोलर SoC हो। यसले शक्तिको सही सन्तुलन, I/O क्षमताहरू, र सुरक्षालाई प्रहार गर्दछ, यसैले जडान गरिएका उपकरणहरूको लागि इष्टतम लागत-प्रभावी समाधान प्रस्ताव गर्दछ। ESP32-C3 परिवारका विभिन्न अनुप्रयोगहरू देखाउनको लागि, Espressif को यो पुस्तकले तपाईंलाई AIoT मार्फत एउटा रोचक यात्रामा लैजानेछ, IoT परियोजना विकास र वातावरण सेटअपको आधारभूत कुराहरूदेखि व्यावहारिक पूर्वसम्म।ampलेस। पहिलो चार अध्यायहरू IoT, ESP RainMaker र ESP-IDF बारे कुरा गर्छन्। अध्याय 5 र 6 हार्डवेयर डिजाइन र चालक विकासमा संक्षिप्त। तपाईंले प्रगति गर्दा, तपाईंले Wi-Fi नेटवर्कहरू र मोबाइल एपहरू मार्फत आफ्नो परियोजना कन्फिगर गर्ने तरिका पत्ता लगाउनुहुनेछ। अन्तमा, तपाइँ तपाइँको परियोजनालाई अनुकूलन गर्न र यसलाई ठूलो उत्पादनमा राख्न सिक्नुहुनेछ।
यदि तपाईं सम्बन्धित क्षेत्रहरूमा इन्जिनियर हुनुहुन्छ, एक सफ्टवेयर आर्किटेक्ट, एक शिक्षक, एक विद्यार्थी, वा IoT मा रुचि राख्ने जो कोही, यो पुस्तक तपाईंको लागि हो।
तपाईंले कोड डाउनलोड गर्न सक्नुहुन्छ पूर्वampले GitHub मा Espressif को साइटबाट यस पुस्तकमा प्रयोग गरियो। IoT विकास मा नवीनतम जानकारी को लागी, कृपया हाम्रो आधिकारिक खाता पालना गर्नुहोस्।

प्रस्तावना
एक सूचना संसार
इन्टरनेटको लहरमा सवार हुँदै, इन्टरनेट अफ थिंग्स (IoT) ले डिजिटल अर्थतन्त्रमा नयाँ प्रकारको पूर्वाधार बन्नको लागि आफ्नो भव्य पदार्पण गर्‍यो। प्रविधिलाई जनताको नजिक ल्याउन, Espressif Systems ले जीवनका सबै क्षेत्रका विकासकर्ताहरूले IoT प्रयोग गरेर हाम्रो समयका केही अत्यावश्यक समस्याहरू समाधान गर्न सक्छन् भन्ने दृष्टिकोणका लागि काम गर्दछ। "Intelligent Network of All Things" को संसार हामीले भविष्यबाट अपेक्षा गरिरहेका छौं।
हाम्रो आफ्नै चिप्स डिजाइन गर्दा त्यो दर्शनको एक महत्वपूर्ण भाग बनाउँछ। यो म्याराथन हुनुपर्दछ, प्राविधिक सीमाहरू विरुद्ध निरन्तर सफलताहरू आवश्यक पर्दछ। "गेम चेन्जर" ESP8266 बाट ESP32 श्रृंखला सम्म वाइफाइ र ब्लुटुथर (LE) जडान एकीकृत गर्ने, त्यसपछि ESP32-S3 AI एक्सेलेरेशनद्वारा सुसज्जित, Espressif ले AIoT समाधानका लागि उत्पादनहरू अनुसन्धान र विकास गर्न कहिल्यै रोक्दैन। हाम्रो खुला स्रोत सफ्टवेयर, जस्तै IoT विकास फ्रेमवर्क ESP-IDF, जाल विकास फ्रेमवर्क ESP-MDF, र यन्त्र जडान प्लेटफर्म ESP RainMaker मार्फत, हामीले AIoT अनुप्रयोगहरू निर्माण गर्न स्वतन्त्र रूपरेखा सिर्जना गरेका छौं।
जुलाई 2022 सम्म, Espressif को IoT चिपसेटहरूको संचयी ढुवानी 800 मिलियन नाघेको छ, जसले Wi-Fi MCU बजारमा अग्रणी छ र विश्वव्यापी रूपमा जडान गरिएका यन्त्रहरूको ठूलो संख्यामा पावर अप गरेको छ। उत्कृष्टताको खोजीले प्रत्येक Espressif उत्पादनलाई यसको उच्च स्तरको एकीकरण र लागत दक्षताको लागि ठूलो हिट बनाउँछ। ESP32-C3 को रिलीजले Espressif को आत्म-विकसित टेक्नोलोजी को एक महत्वपूर्ण माइलस्टोन चिन्ह लगाउँछ। यो एकल-कोर, 32-बिट, RISC-V- आधारित MCU 400KB SRAM भएको छ, जुन 160MHz मा चल्न सक्छ। यसले 2.4 GHz Wi-Fi र ब्लुटुथ 5 (LE) लाई लामो दूरीको समर्थनको साथ एकीकृत गरेको छ। यसले शक्ति, I/O क्षमताहरू, र सुरक्षाको राम्रो सन्तुलनलाई प्रहार गर्दछ, यसरी जडान गरिएका उपकरणहरूको लागि इष्टतम लागत-प्रभावी समाधान प्रस्ताव गर्दछ। यस्तो शक्तिशाली ESP32-C3 मा आधारित, यो पुस्तक पाठकहरूलाई विस्तृत दृष्टान्त र व्यावहारिक पूर्व IoT-सम्बन्धित ज्ञान बुझ्न मद्दत गर्नको लागि हो।ampलेस।
हामीले यो पुस्तक किन लेख्यौं?
Espressif Systems एक अर्धचालक कम्पनी भन्दा बढी छ। यो एक IoT प्लेटफर्म कम्पनी पनि हो, जसले सधैं टेक्नोलोजीको क्षेत्रमा सफलता र आविष्कारहरूको लागि प्रयास गर्छ। एकै समयमा, Espressif ले एक अद्वितीय पारिस्थितिकी प्रणालीको निर्माण गर्दै, समुदायसँग यसको आत्म-विकसित अपरेटिङ सिस्टम र सफ्टवेयर फ्रेमवर्क खुला स्रोत र साझेदारी गरेको छ। इन्जिनियरहरू, निर्माताहरू, र टेक्नोलोजी उत्साहीहरूले सक्रिय रूपमा Espressif का उत्पादनहरूमा आधारित नयाँ सफ्टवेयर अनुप्रयोगहरू विकास गर्छन्, स्वतन्त्र रूपमा सञ्चार गर्छन्, र उनीहरूको अनुभव साझा गर्छन्। तपाईंले विकासकर्ताहरूको मनमोहक विचारहरू विभिन्न प्लेटफर्महरूमा देख्न सक्नुहुन्छ, जस्तै YouTube र GitHub। एस्प्रेसिफका उत्पादनहरूको लोकप्रियताले अंग्रेजी, चिनियाँ, जर्मन, फ्रेन्च र जापानीजस्ता १० भन्दा बढी भाषाहरूमा एस्प्रेसिफ चिपसेटमा आधारित १०० भन्दा बढी पुस्तकहरू उत्पादन गर्ने लेखकहरूको बढ्दो संख्यालाई उत्प्रेरित गरेको छ।

यो समुदाय साझेदारहरूको समर्थन र विश्वास हो जसले Espressif को निरन्तर नवाचारलाई प्रोत्साहन दिन्छ। "हामी हाम्रा चिपहरू, अपरेटिङ सिस्टमहरू, फ्रेमवर्कहरू, समाधानहरू, क्लाउड, व्यवसायिक अभ्यासहरू, उपकरणहरू, कागजातहरू, लेखनहरू, विचारहरू, आदिलाई समकालीन जीवनको सबैभन्दा महत्त्वपूर्ण समस्याहरूमा मानिसहरूलाई आवश्यक पर्ने जवाफहरूमा अझ सान्दर्भिक बनाउन प्रयास गर्छौं। यो Espressif को सर्वोच्च महत्वाकांक्षा र नैतिक कम्पास हो। एस्प्रेसिफका संस्थापक र सीईओ श्री टिओ स्वी एनले भने।
Espressif पढाइ र विचारहरू मूल्यवान छ। IoT टेक्नोलोजीको निरन्तर स्तरवृद्धिले इन्जिनियरहरूमा उच्च आवश्यकताहरू खडा गरेको हुनाले, हामी कसरी धेरै मानिसहरूलाई IoT चिपहरू, अपरेटिङ सिस्टमहरू, सफ्टवेयर फ्रेमवर्कहरू, अनुप्रयोग योजनाहरू र क्लाउड सेवा उत्पादनहरू छिटो मास्टर गर्न मद्दत गर्न सक्छौं? भनाइ अनुसार, मानिसलाई माछा दिनु भन्दा माछा मार्ने तरिका सिकाउनु राम्रो हो। एक ब्रेनस्टर्मिङ सत्रमा, यो हामीलाई आयो कि हामीले IoT विकासको मुख्य ज्ञानलाई व्यवस्थित रूपमा क्रमबद्ध गर्न पुस्तक लेख्न सक्छौं। हामीले यसलाई बन्द गर्‍यौं, चाँडै वरिष्ठ इन्जिनियरहरूको समूह भेला गर्‍यौं, र इम्बेडेड प्रोग्रामिङ, IoT हार्डवेयर र सफ्टवेयर विकासमा प्राविधिक टोलीको अनुभवलाई संयोजन गर्‍यौं, सबैले यस पुस्तकको प्रकाशनमा योगदान पुर्‍याउँछ। लेख्ने प्रक्रियामा, हामीले वस्तुनिष्ठ र निष्पक्ष हुन सक्दो प्रयास गर्‍यौं, कोकुनबाट हटाइयो, र चीजहरूको इन्टरनेटको जटिलता र आकर्षण बताउन संक्षिप्त अभिव्यक्तिहरू प्रयोग गर्‍यौं। हामीले विकास प्रक्रियामा आएका प्रश्नहरूको स्पष्ट जवाफ दिन र सान्दर्भिक प्राविधिक र निर्णयकर्ताहरूका लागि व्यावहारिक IoT विकास दिशानिर्देशहरू प्रदान गर्नका लागि समुदायको प्रतिक्रिया र सुझावहरूलाई सन्दर्भित गरी सामान्य प्रश्नहरूलाई सावधानीपूर्वक संक्षेप गरेका छौं।
पुस्तक संरचना
यो पुस्तकले इन्जिनियर-केन्द्रित परिप्रेक्ष्य लिन्छ र IoT परियोजना विकासको लागि चरण-दर-चरण आवश्यक ज्ञान विस्तार गर्दछ। यो निम्नानुसार चार भागहरु मिलेर बनेको छ:
· तयारी (अध्याय 1): यो भागले IoT को वास्तुकला, विशिष्ट IoT परियोजना ढाँचा, ESP RainMakerr क्लाउड प्लेटफर्म, र विकास वातावरण ESP-IDF को परिचय दिन्छ, ताकि IoT परियोजनाको विकासको लागि ठोस आधार बनाउनुहोस्।
हार्डवेयर र ड्राइभर विकास (अध्याय 5): ESP6-C32 चिपसेटमा आधारित, यो भागले न्यूनतम हार्डवेयर प्रणाली र ड्राइभरको विकासलाई विस्तारित गर्दछ, र डिमिङ, कलर ग्रेडिङ, र ताररहित सञ्चारको नियन्त्रण लागू गर्दछ।
· ताररहित संचार र नियन्त्रण (अध्याय 7): यो भागले ESP11-C32 चिप, स्थानीय र क्लाउड नियन्त्रण प्रोटोकलहरू, र उपकरणहरूको स्थानीय र रिमोट नियन्त्रणमा आधारित बुद्धिमान Wi-Fi कन्फिगरेसन योजनाको व्याख्या गर्दछ। यसले स्मार्टफोन एपहरू, फर्मवेयर अपग्रेड, र संस्करण व्यवस्थापनको लागि योजनाहरू पनि प्रदान गर्दछ।
· अप्टिमाइजेसन र मास प्रोडक्शन (अध्याय 12-15): यो भाग उन्नत IoT अनुप्रयोगहरूको लागि हो, पावर व्यवस्थापनमा उत्पादनहरूको अनुकूलन, कम-शक्ति अनुकूलन, र परिष्कृत सुरक्षामा केन्द्रित। यसले ठूलो उत्पादनमा फर्मवेयर जलाउने र परीक्षणको परिचय दिन्छ, र रिमोट निगरानी प्लेटफर्म ESP इनसाइट्स मार्फत उपकरण फर्मवेयरको चलिरहेको स्थिति र लगहरू कसरी निदान गर्ने।

स्रोत कोडको बारेमा
पाठकहरूले पूर्व चलाउन सक्छन्ample प्रोग्रामहरू, या त म्यानुअल रूपमा कोड प्रविष्ट गरेर वा पुस्तकसँगै रहेको स्रोत कोड प्रयोग गरेर। हामी सिद्धान्त र अभ्यासको संयोजनलाई जोड दिन्छौं, र यसरी लगभग हरेक अध्यायमा स्मार्ट लाइट प्रोजेक्टमा आधारित अभ्यास खण्ड सेट गर्छौं। सबै कोडहरू खुला स्रोत हुन्। पाठकहरूलाई स्रोत कोड डाउनलोड गर्न र GitHub र हाम्रो आधिकारिक फोरम esp32.com मा यस पुस्तकसँग सम्बन्धित सेक्सनहरूमा छलफल गर्न स्वागत छ। यस पुस्तकको खुला स्रोत कोड Apache लाइसेन्स 2.0 को सर्तहरूको अधीनमा छ।
लेखकको नोट
यो पुस्तक आधिकारिक रूपमा Espressif Systems द्वारा उत्पादन गरिएको हो र कम्पनीका वरिष्ठ इन्जिनियरहरूले लेखेका हुन्। यो IoT-सम्बन्धित उद्योगहरूमा प्रबन्धकहरू र R&D कर्मचारीहरू, शिक्षकहरू र सम्बन्धित प्रमुखहरूका विद्यार्थीहरू, र चीजहरूको इन्टरनेटको क्षेत्रमा उत्साहीहरूका लागि उपयुक्त छ। हामी आशा गर्छौं कि यो पुस्तकले कार्य पुस्तिका, सन्दर्भ, र बेडसाइड पुस्तकको रूपमा काम गर्न सक्छ, एक राम्रो शिक्षक र साथीको रूपमा।
यो पुस्तक संकलन गर्दा हामीले स्वदेश तथा विदेशका विज्ञ, विद्वान र प्राविधिकहरूका केही सान्दर्भिक अनुसन्धान नतिजाहरू उल्लेख गरेका थियौं र तिनीहरूलाई शैक्षिक मापदण्डअनुसार उद्धृत गर्ने सक्दो प्रयास गरेका छौं। तर, यसमा केही कमीकमजोरी हुनु अपरिहार्य छ, त्यसैले यहाँ हामी सबै सम्बन्धित लेखकहरूप्रति गहिरो सम्मान र कृतज्ञता व्यक्त गर्न चाहन्छौं। थप रूपमा, हामीले इन्टरनेटबाट जानकारी उद्धृत गरेका छौं, त्यसैले हामी मूल लेखकहरू र प्रकाशकहरूलाई धन्यवाद दिन चाहन्छौं र माफी चाहन्छौं कि हामीले जानकारीको प्रत्येक टुक्राको स्रोत संकेत गर्न सक्दैनौं।
उच्च गुणस्तरको पुस्तक उत्पादन गर्न, हामीले आन्तरिक छलफलको राउन्डहरू आयोजना गरेका छौं, र परीक्षण पाठकहरू र प्रकाशक सम्पादकहरूको सुझाव र प्रतिक्रियाबाट सिकेका छौं। यहाँ, हामी तपाईंलाई यो सफल कार्यमा योगदान दिनुहुने सबैको सहयोगको लागि पुन: धन्यवाद दिन चाहन्छौं।
अन्तिम, तर सबैभन्दा महत्त्वपूर्ण कुरा, Espressif मा सबैलाई धन्यवाद जसले हाम्रा उत्पादनहरूको जन्म र लोकप्रियताको लागि धेरै मेहनत गर्नुभएको छ।
IoT परियोजनाहरूको विकासले ज्ञानको विस्तृत दायरा समावेश गर्दछ। पुस्तकको लम्बाइ, साथै लेखकको स्तर र अनुभवमा सीमित, भूल अपरिहार्य छ। तसर्थ, विज्ञ र पाठकहरूले हाम्रा गल्तीहरूको आलोचना र सुधार गर्न विनम्र अनुरोध गर्दछौं। यदि तपाईंसँग यस पुस्तकको लागि कुनै सुझावहरू छन् भने, कृपया हामीलाई book@espressif.com मा सम्पर्क गर्नुहोस्। हामी तपाईंको प्रतिक्रियाको लागि तत्पर छौं।

यो पुस्तक कसरी प्रयोग गर्ने?
यस पुस्तकमा परियोजनाहरूको कोड ओपन सोर्स गरिएको छ। तपाइँ यसलाई हाम्रो GitHub भण्डारबाट डाउनलोड गर्न सक्नुहुन्छ र तपाइँको विचार र प्रश्नहरू हाम्रो आधिकारिक फोरममा साझा गर्न सक्नुहुन्छ। GitHub: https://github.com/espressif/book-esp32c3-iot-projects फोरम: https://www.esp32.com/bookc3 पुस्तकभरि, तल देखाइए अनुसार हाइलाइट गरिएका भागहरू हुनेछन्।
स्रोत कोड यस पुस्तकमा, हामी सिद्धान्त र अभ्यासको संयोजनलाई जोड दिन्छौं, र यसरी लगभग हरेक अध्यायमा स्मार्ट लाइट परियोजनाको बारेमा अभ्यास खण्ड सेट गर्छौं। संगत चरणहरू र स्रोत पृष्ठ बाट सुरु हुने दुई रेखाहरू बीच चिन्ह लगाइनेछ tag स्रोत कोड।
नोट/टिप्स यो हो जहाँ तपाइँ केहि महत्वपूर्ण जानकारी पाउन सक्नुहुन्छ र तपाइँको कार्यक्रम सफलतापूर्वक डिबग गर्न को लागी सम्झाउन सक्नुहुन्छ। तिनीहरू दुई बाक्लो रेखाहरू बीचमा चिन्ह लगाइनेछन् tag नोट वा टिप्स।
यस पुस्तकका धेरै जसो आदेशहरू लिनक्स अन्तर्गत कार्यान्वयन गरिन्छ, क्यारेक्टर "$" द्वारा प्रोम्प्ट गरिएको छ। यदि आदेशलाई कार्यान्वयन गर्न सुपर प्रयोगकर्ता विशेषाधिकारहरू आवश्यक छ भने, प्रम्प्टलाई "#" द्वारा प्रतिस्थापन गरिनेछ। म्याक प्रणालीहरूमा आदेश प्रम्प्ट "%" हो, जस्तै म्याकमा ESP-IDF स्थापना गर्दै सेक्सन 4.2.3 मा प्रयोग गरिएको छ।
यस पुस्तकको मुख्य पाठ चार्टरमा छापिनेछ, जबकि कोड पूर्वampलेस, घटक, प्रकार्य, चर, कोड file नामहरू, कोड डाइरेक्टरीहरू, र स्ट्रिङहरू कुरियर नयाँमा हुनेछन्।
आदेश वा पाठहरू जुन प्रयोगकर्ताद्वारा इनपुट गर्न आवश्यक छ, र "Enter" कुञ्जी थिचेर प्रविष्ट गर्न सकिने आदेशहरू कुरियर नयाँ बोल्डमा छापिनेछन्। लगहरू र कोड ब्लकहरू हल्का नीलो बक्सहरूमा प्रस्तुत गरिनेछ।
ExampLe:
दोस्रो, NVS विभाजन बाइनरी उत्पन्न गर्न esp-idf/components/nvs Flash/nvs विभाजन जनरेटर/nvs विभाजन gen.py प्रयोग गर्नुहोस्। file निम्न आदेशको साथ विकास होस्टमा:
$ python $IDF PATH/components/nvs Flash/nvs विभाजन जनरेटर/nvs विभाजन gen.py -इनपुट मास prod.csv -आउटपुट मास prod.bin -साइज NVS विभाजन आकार

अध्याय १

परिचय

को

IoT

२० औं शताब्दीको अन्त्यमा, कम्प्युटर सञ्जाल र सञ्चार प्रविधिको वृद्धिसँगै इन्टरनेटले मानिसको जीवनमा द्रुत रूपमा एकीकृत भयो। इन्टरनेट प्रविधि परिपक्व हुँदै जाँदा इन्टरनेट अफ थिंग्स (IoT) को विचार जन्मियो। शाब्दिक रूपमा, IoT भनेको इन्टरनेट जहाँ चीजहरू जडान हुन्छन्। जबकि मूल इन्टरनेटले ठाउँ र समयको सीमा तोड्छ र "व्यक्ति र व्यक्ति" बीचको दूरीलाई कम गर्छ, IoT ले "बस्तुहरू" लाई महत्त्वपूर्ण सहभागी बनाउँछ, "मानिसहरू" र "वस्तुहरू" लाई एकसाथ नजिक ल्याउँछ। निकट भविष्यमा, IoT सूचना उद्योगको चालक शक्ति बन्न सेट गरिएको छ।
त्यसोभए, चीजहरूको इन्टरनेट के हो?
चीजहरूको इन्टरनेटलाई सही रूपमा परिभाषित गर्न गाह्रो छ, किनकि यसको अर्थ र दायरा निरन्तर विकसित भइरहेको छ। 1995 मा, बिल गेट्सले पहिलो पटक आफ्नो पुस्तक द रोड अहेडमा IoT को विचार ल्याए। सरल शब्दमा भन्नुपर्दा, IoT ले वस्तुहरूलाई इन्टरनेट मार्फत एकअर्कासँग जानकारी आदानप्रदान गर्न सक्षम बनाउँछ। यसको अन्तिम लक्ष्य "सबैको इन्टरनेट" स्थापना गर्नु हो। यो IoT को प्रारम्भिक व्याख्या हो, साथै भविष्यको प्रविधिको कल्पना हो। तीस वर्ष पछि, अर्थतन्त्र र प्रविधिको द्रुत विकास संग, कल्पना वास्तविकतामा आउँदैछ। स्मार्ट उपकरणहरू, स्मार्ट घरहरू, स्मार्ट शहरहरू, सवारी साधनहरूको इन्टरनेट र पहिरन योग्य उपकरणहरू, IoT टेक्नोलोजीहरूद्वारा समर्थित "मेटाभर्स" सम्म, नयाँ अवधारणाहरू निरन्तर उभरिरहेका छन्। यस अध्यायमा, हामी इन्टरनेट अफ थिंग्सको वास्तुकलाको व्याख्याको साथ सुरु गर्नेछौं, र त्यसपछि तपाईंलाई IoT को स्पष्ट बुझाइ प्राप्त गर्न मद्दत गर्नको लागि सबैभन्दा सामान्य IoT अनुप्रयोग, स्मार्ट होम परिचय गर्नेछौं।
1.1 IoT को वास्तुकला
चीजहरूको इन्टरनेटमा धेरै प्रविधिहरू समावेश छन् जसमा विभिन्न उद्योगहरूमा विभिन्न अनुप्रयोग आवश्यकताहरू र फारमहरू छन्। संरचना, IoT को मुख्य प्रविधिहरू र अनुप्रयोग विशेषताहरू क्रमबद्ध गर्न, यो एक एकीकृत वास्तुकला र एक मानक प्राविधिक प्रणाली स्थापना गर्न आवश्यक छ। यस पुस्तकमा, IoT को वास्तुकलालाई केवल चार तहहरूमा विभाजन गरिएको छ: धारणा र नियन्त्रण तह, नेटवर्क तह, प्लेटफर्म तह, र अनुप्रयोग तह।
धारणा र नियन्त्रण तह IoT आर्किटेक्चरको सबैभन्दा आधारभूत तत्वको रूपमा, धारणा र नियन्त्रण तह IoT को व्यापक सेन्सिङ महसुस गर्न मूल हो। यसको मुख्य कार्य जानकारी सङ्कलन, पहिचान र नियन्त्रण हो। यो धारणा क्षमता संग विभिन्न प्रकारका यन्त्रहरू समावेश गर्दछ,
3

पहिचान, नियन्त्रण र कार्यान्वयन, र सामग्री गुण, व्यवहार प्रवृत्ति, र उपकरण स्थिति जस्ता डेटा पुन: प्राप्त गर्न र विश्लेषण गर्न जिम्मेवार छ। यसरी, IoT ले वास्तविक भौतिक संसारलाई चिन्न सक्छ। यसबाहेक, तहले उपकरणको स्थिति नियन्त्रण गर्न सक्षम छ।
यस तहको सबैभन्दा सामान्य यन्त्रहरू विभिन्न सेन्सरहरू हुन्, जसले जानकारी सङ्कलन र पहिचानमा महत्त्वपूर्ण भूमिका खेल्छन्। सेन्सरहरू मानव संवेदी अंगहरू जस्तै हुन्, जस्तै दृश्यको लागि फोटोसेन्सिटिभ सेन्सरहरू, श्रवणको लागि ध्वनिक सेन्सरहरू, गन्धका लागि ग्यास सेन्सरहरू, र स्पर्श गर्नको लागि दबाव- र तापमान-संवेदनशील सेन्सरहरू। यी सबै "संवेदी अंगहरू" संग, वस्तुहरू "जीवित" हुन्छन् र बौद्धिक धारणा, पहिचान र भौतिक संसारको हेरफेर गर्न सक्षम हुन्छन्।
सञ्जाल तहको मुख्य कार्य भनेको धारणा र नियन्त्रण तहबाट प्राप्त डाटालाई तोकिएको लक्ष्यमा, साथै अनुप्रयोग तहबाट जारी गरिएका आदेशहरूलाई धारणा र नियन्त्रण तहमा फिर्ता पठाउने सूचनाहरू प्रसारण गर्नु हो। यसले IoT प्रणालीको विभिन्न तहहरू जोड्ने महत्त्वपूर्ण सञ्चार पुलको रूपमा काम गर्दछ। चीजहरूको इन्टरनेटको आधारभूत मोडेल सेटअप गर्न, यसले नेटवर्कमा वस्तुहरू एकीकृत गर्न दुई चरणहरू समावेश गर्दछ: इन्टरनेटमा पहुँच र इन्टरनेट मार्फत प्रसारण।
इन्टरनेट इन्टरनेटको पहुँचले व्यक्ति र व्यक्ति बीचको अन्तरसम्बन्धलाई सक्षम बनाउँछ, तर ठूलो परिवारमा चीजहरू समावेश गर्न असफल हुन्छ। IoT को आगमन भन्दा पहिले, धेरै चीजहरू "नेटवर्क-सक्षम" थिएनन्। टेक्नोलोजीको निरन्तर विकासको लागि धन्यवाद, IoT ले चीजहरू इन्टरनेटमा जडान गर्न प्रबन्ध गर्दछ, यसरी "मानिस र चीजहरू", र "वस्तुहरू र चीजहरू" बीचको अन्तरसम्बन्ध महसुस गर्दछ। इन्टरनेट जडान लागू गर्न दुई सामान्य तरिकाहरू छन्: तारयुक्त नेटवर्क पहुँच र ताररहित नेटवर्क पहुँच।
तारयुक्त सञ्जाल पहुँच विधिहरूमा इथरनेट, क्रमिक सञ्चार (जस्तै, RS-232, RS-485) र USB समावेश छ, जबकि ताररहित सञ्जाल पहुँच वायरलेस सञ्चारमा निर्भर हुन्छ, जसलाई थप छोटो दूरीको ताररहित सञ्चार र लामो-दायराको ताररहित सञ्चारमा विभाजन गर्न सकिन्छ।
छोटो दूरीको ताररहित सञ्चारमा ZigBee, ब्लुटुथर, Wi-Fi, नियर-फिल्ड कम्युनिकेसन (NFC), र रेडियो फ्रिक्वेन्सी आइडेन्टिफिकेसन (RFID) समावेश छन्। लामो दूरीको ताररहित सञ्चारमा परिष्कृत मेसिन प्रकार सञ्चार (eMTC), LoRa, न्यारो ब्यान्ड इन्टरनेट अफ थिंग्स (NB-IoT), 2G, 3G, 4G, 5G, आदि समावेश छन्।
इन्टरनेटको माध्यमबाट प्रसारण इन्टरनेट पहुँचका विभिन्न विधिहरूले डाटाको सम्बन्धित भौतिक प्रसारण लिङ्कमा नेतृत्व गर्दछ। अर्को कुरा डाटा प्रसारण गर्न कुन संचार प्रोटोकल प्रयोग गर्ने निर्णय गर्नु हो। इन्टरनेट टर्मिनलहरूको तुलनामा, अधिकांश IoT टर्मिनलहरूमा हाल कम छन्
4 ESP32-C3 वायरलेस साहसिक: IoT को लागि एक व्यापक गाइड

उपलब्ध स्रोतहरू, जस्तै प्रशोधन कार्यसम्पादन, भण्डारण क्षमता, नेटवर्क दर, इत्यादि, त्यसैले IoT अनुप्रयोगहरूमा कम स्रोतहरू ओगटेको संचार प्रोटोकल छनौट गर्न आवश्यक छ। त्यहाँ दुई संचार प्रोटोकलहरू छन् जुन आज व्यापक रूपमा प्रयोग गरिन्छ: सन्देश कतारबद्ध टेलिमेट्री यातायात (MQTT) र सीमित अनुप्रयोग प्रोटोकल (CoAP)।
प्लेटफर्म तहले मुख्यतया IoT क्लाउड प्लेटफर्महरूलाई जनाउँछ। जब सबै IoT टर्मिनलहरू सञ्जाल हुन्छन्, तिनीहरूको डेटा गणना र भण्डारण गर्नको लागि IoT क्लाउड प्लेटफर्ममा एकत्रित गर्न आवश्यक छ। प्लेटफर्म लेयरले मुख्यतया IoT अनुप्रयोगहरूलाई ठूला उपकरणहरूको पहुँच र व्यवस्थापनको लागि समर्थन गर्दछ। यसले क्लाउड प्लेटफर्ममा IoT टर्मिनलहरू जडान गर्दछ, टर्मिनल डेटा सङ्कलन गर्दछ, र टर्मिनलहरूमा आदेशहरू जारी गर्दछ, ताकि रिमोट कन्ट्रोल लागू गर्न सकिन्छ। उद्योग अनुप्रयोगहरूमा उपकरणहरू तोक्ने एक मध्यवर्ती सेवाको रूपमा, प्लेटफर्म लेयरले सम्पूर्ण IoT वास्तुकलामा जडान भूमिका खेल्छ, अमूर्त व्यापार तर्क र मानकीकृत कोर डाटा मोडेल बोक्ने, जसले उपकरणहरूको द्रुत पहुँच मात्र महसुस गर्न सक्दैन, तर शक्तिशाली मोड्युलर क्षमताहरू पनि प्रदान गर्दछ। उद्योग आवेदन परिदृश्यहरूमा विभिन्न आवश्यकताहरू पूरा गर्न। प्लेटफर्म तहमा मुख्यतया उपकरण पहुँच, उपकरण व्यवस्थापन, सुरक्षा व्यवस्थापन, सन्देश सञ्चार, निगरानी सञ्चालन र मर्मतसम्भार, र डाटा अनुप्रयोगहरू जस्ता कार्यात्मक मोड्युलहरू समावेश छन्।
· उपकरण पहुँच, टर्मिनलहरू र IoT क्लाउड प्लेटफर्महरू बीच जडान र संचार महसुस।
· उपकरण निर्माण, उपकरण मर्मत, डाटा रूपान्तरण, डाटा सिङ्क्रोनाइजेसन, र उपकरण वितरण जस्ता कार्यहरू सहित उपकरण व्यवस्थापन।
· सुरक्षा व्यवस्थापन, सुरक्षा प्रमाणीकरण र सञ्चार सुरक्षाको दृष्टिकोणबाट IoT डाटा प्रसारणको सुरक्षा सुनिश्चित गर्दै।
· सन्देश संचार, तीन प्रसारण दिशाहरू सहित, टर्मिनलले IoT क्लाउड प्लेटफर्ममा डाटा पठाउँछ, IoT क्लाउड प्लेटफर्मले सर्भर साइड वा अन्य IoT क्लाउड प्लेटफर्महरूमा डाटा पठाउँछ, र सर्भर साइडले टाढाबाट IoT उपकरणहरू नियन्त्रण गर्दछ।
· निगरानी O&M, अनुगमन र निदान, फर्मवेयर अपग्रेड, अनलाइन डिबगिङ, लग सेवाहरू, आदि समावेश।
· डाटा अनुप्रयोगहरू, डाटाको भण्डारण, विश्लेषण र प्रयोग समावेश।
एप्लिकेसन लेयर एप्लिकेसन लेयरले डाटाबेस र एनालिसिस सफ्टवेयर जस्ता औजारहरूसँग एप प्रबन्ध गर्न, फिल्टर गर्न र प्रशोधन गर्न प्लेटफर्म तहबाट डाटा प्रयोग गर्दछ। नतिजा प्राप्त डेटा वास्तविक-विश्व IoT अनुप्रयोगहरू जस्तै स्मार्ट स्वास्थ्य सेवा, स्मार्ट कृषि, स्मार्ट घरहरू, र स्मार्ट शहरहरूमा प्रयोग गर्न सकिन्छ।
निस्सन्देह, IoT को वास्तुकलालाई धेरै तहहरूमा विभाजन गर्न सकिन्छ, तर यसमा जतिसुकै तहहरू समावेश भए पनि, अन्तर्निहित सिद्धान्त अनिवार्य रूपमा उस्तै रहन्छ। सिक्दै
अध्याय 1. IoT 5 को परिचय

IoT को वास्तुकला को बारे मा IoT टेक्नोलोजीहरु को बारे मा हाम्रो समझ को गहिरो मा मदद गर्दछ र पूर्ण रूप देखि कार्यात्मक IoT परियोजनाहरु को निर्माण गर्दछ।
1.2 स्मार्ट घरहरूमा IoT अनुप्रयोग
IoT जीवनका सबै क्षेत्रहरूमा प्रवेश गरेको छ, र हाम्रो लागि सबैभन्दा नजिकको IoT अनुप्रयोग स्मार्ट घर हो। धेरै परम्परागत उपकरणहरू अब एक वा धेरै IoT यन्त्रहरूले सुसज्जित छन्, र धेरै नवनिर्मित घरहरू सुरुदेखि नै IoT प्रविधिहरूसँग डिजाइन गरिएका छन्। चित्र 1.1 ले केहि सामान्य स्मार्ट घर उपकरणहरू देखाउँछ।
चित्र १.१। सामान्य स्मार्ट घर उपकरणहरू स्मार्ट घरको विकासलाई सरल रूपमा स्मार्ट उत्पादनहरूमा विभाजन गर्न सकिन्छ।tage, दृश्य अन्तरसम्बन्ध stagई र बुद्धिमान एसtage, चित्र १.२ मा देखाइए अनुसार।
चित्र १.२। विकास सtage of smart home 6 ESP32-C3 Wireless Adventure: A Comprehensive Guide to IoT

पहिलो एसtage स्मार्ट उत्पादनहरूको बारेमा हो। परम्परागत घरहरू भन्दा फरक, स्मार्ट घरहरूमा, IoT यन्त्रहरूले सेन्सरहरूद्वारा सङ्केतहरू प्राप्त गर्छन्, र Wi-Fi, ब्लुटुथ LE, र ZigBee जस्ता ताररहित सञ्चार प्रविधिहरू मार्फत सञ्जाल हुन्छन्। प्रयोगकर्ताहरूले स्मार्ट उत्पादनहरू विभिन्न तरिकामा नियन्त्रण गर्न सक्छन्, जस्तै स्मार्टफोन एप्स, भ्वाइस असिस्टेन्टहरू, स्मार्ट स्पिकर नियन्त्रण, आदि।tage दृश्य अन्तरसम्बन्धमा फोकस गर्दछ। यसमा एसtagई, विकासकर्ताहरूले अब एकल स्मार्ट उत्पादनलाई नियन्त्रण गर्ने विचार गर्दैनन्, तर दुई वा बढी स्मार्ट उत्पादनहरूलाई आपसमा जोड्ने, निश्चित हदसम्म स्वचालित गर्ने, र अन्तमा अनुकूलन दृश्य मोड बनाउने। पूर्वका लागिampले, प्रयोगकर्ताले कुनै पनि दृश्य मोड बटन थिच्दा, बत्तीहरू, पर्दाहरू, र एयर कन्डिशनरहरू स्वचालित रूपमा प्रिसेटहरूमा अनुकूलित हुनेछन्। निस्सन्देह, ट्रिगर अवस्थाहरू र कार्यान्वयन कार्यहरू सहित लिंकेज तर्क सजिलैसँग सेट अप गर्न आवश्यक छ। कल्पना गर्नुहोस् कि वातानुकूलित तताउने मोड ट्रिगर हुन्छ जब भित्रको तापमान 10 डिग्री सेल्सियस भन्दा कम हुन्छ; कि बिहान 7 बजे, प्रयोगकर्तालाई उठाउन संगीत बजाइन्छ, स्मार्ट पर्दा खोलिन्छ, र चावल कुकर वा रोटी टोस्टर स्मार्ट सकेट मार्फत सुरु हुन्छ; जब प्रयोगकर्ता उठ्छ र नुहाइ समाप्त हुन्छ, बिहानको खाजा पहिले नै दिइन्छ, ताकि काममा जान ढिलाइ हुनेछैन। हाम्रो जीवन कति सहज भएको छ! तेस्रो एसtagई बुद्धिमत्ता s मा जान्छtage जति धेरै स्मार्ट होम डिभाइसहरू पहुँच गरिन्छ, त्यसैगरी डेटाका प्रकारहरू उत्पन्न हुन्छन्। क्लाउड कम्प्युटिङ, ठूला डाटा र आर्टिफिसियल इन्टेलिजेन्सको सहयोगमा यो स्मार्ट घरहरूमा “स्मार्ट ब्रेन” रोपिएको जस्तो छ, जसलाई अब प्रयोगकर्ताबाट बारम्बार आदेशहरू आवश्यक पर्दैन। तिनीहरूले अघिल्लो अन्तरक्रियाहरूबाट डेटा सङ्कलन गर्छन् र प्रयोगकर्ताको व्यवहार ढाँचा र प्राथमिकताहरू सिक्छन्, ताकि निर्णय लिने सिफारिसहरू प्रदान गर्ने सहित गतिविधिहरू स्वचालित गर्न। हाल, धेरैजसो स्मार्ट घरहरू दृश्य अन्तरसम्बन्धमा छन्tage स्मार्ट उत्पादनहरूको प्रवेश दर र बुद्धिमत्ता बढ्दै जाँदा, सञ्चार प्रोटोकलहरू बीचको अवरोधहरू हट्दै छन्। भविष्यमा, स्मार्ट घरहरू वास्तवमै "स्मार्ट" बन्न बाध्य छन्, जस्तै आइरन म्यानमा एआई प्रणाली जार्विस, जसले प्रयोगकर्तालाई विभिन्न उपकरणहरू नियन्त्रण गर्न, दैनिक मामिलाहरू ह्यान्डल गर्न मात्र मद्दत गर्न सक्दैन, तर सुपर कम्प्युटिङ शक्ति र सोच्ने क्षमता पनि छ। बौद्धिक माtagई, मानव जातिले परिमाण र गुणस्तर दुवैमा राम्रो सेवा प्राप्त गर्नेछन्।
अध्याय 1. IoT 7 को परिचय

8 ESP32-C3 वायरलेस साहसिक: IoT को लागि एक व्यापक गाइड

२ IoT परियोजनाहरूको अध्याय परिचय र अभ्यास
अध्याय १ मा, हामीले IoT को वास्तुकला, र धारणा र नियन्त्रण तह, नेटवर्क तह, प्लेटफर्म तह, र अनुप्रयोग तह, साथै स्मार्ट घरको विकासको भूमिका र अन्तरसम्बन्धहरू प्रस्तुत गर्यौं। जे होस्, जसरी हामी चित्रण गर्न सिक्छौं, सैद्धान्तिक ज्ञान जान्नु पर्याप्त छैन। टेक्नोलोजीमा साँच्चै महारत हासिल गर्नको लागि हामीले IoT परियोजनाहरूलाई अभ्यासमा राख्न "हाम्रो हात फोहोर" गर्नुपर्छ। थप रूपमा, जब कुनै परियोजना ठूलो उत्पादनमा सर्छtagई, नेटवर्क जडान, कन्फिगरेसन, IoT क्लाउड प्लेटफर्म अन्तरक्रिया, फर्मवेयर व्यवस्थापन र अद्यावधिकहरू, ठूलो उत्पादन व्यवस्थापन, र सुरक्षा कन्फिगरेसन जस्ता थप कारकहरू विचार गर्न आवश्यक छ। त्यसोभए, पूर्ण IoT परियोजनाको विकास गर्दा हामीले के ध्यान दिनु पर्छ? अध्याय 1 मा, हामीले स्मार्ट घर सबैभन्दा सामान्य IoT अनुप्रयोग परिदृश्यहरू मध्ये एक हो भनेर उल्लेख गरेका छौं, र स्मार्ट बत्तीहरू सबैभन्दा आधारभूत र व्यावहारिक उपकरणहरू मध्ये एक हो, जुन घर, होटल, जिम, अस्पताल, इत्यादिमा प्रयोग गर्न सकिन्छ। त्यसैले, यस पुस्तकमा हामी स्मार्ट लाइट प्रोजेक्टको निर्माणलाई सुरुवात बिन्दुको रूपमा लिनेछौं, यसको कम्पोनेन्टहरू र सुविधाहरूको व्याख्या गर्नेछौं, र परियोजना विकासमा मार्गदर्शन प्रदान गर्नेछौं। हामी आशा गर्छौं कि तपाईले यस केसबाट थप IoT अनुप्रयोगहरू सिर्जना गर्नका लागि निष्कर्षहरू निकाल्न सक्नुहुन्छ।
2.1 विशिष्ट IoT परियोजनाहरूको परिचय
विकासको सन्दर्भमा, IoT परियोजनाहरूको आधारभूत कार्यात्मक मोड्युलहरूलाई IoT उपकरणहरूको सफ्टवेयर र हार्डवेयर विकास, ग्राहक अनुप्रयोग विकास, र IoT क्लाउड प्लेटफर्म विकासमा वर्गीकृत गर्न सकिन्छ। आधारभूत कार्यात्मक मोड्युलहरू स्पष्ट गर्न महत्त्वपूर्ण छ, जुन यस खण्डमा थप वर्णन गरिनेछ।
२.१.१ साधारण IoT यन्त्रहरूका लागि आधारभूत मोड्युलहरू
IoT यन्त्रहरूको सफ्टवेयर र हार्डवेयर विकासले निम्न आधारभूत मोड्युलहरू समावेश गर्दछ: डाटा सङ्कलन
IoT आर्किटेक्चरको तल्लो तहको रूपमा, धारणा र नियन्त्रण तहको IoT यन्त्रहरूले डेटा सङ्कलन र सञ्चालन नियन्त्रण प्राप्त गर्न तिनीहरूको चिप्स र बाह्य उपकरणहरू मार्फत सेन्सरहरू र उपकरणहरूलाई जडान गर्दछ।
9

खाता बाइन्डिङ र प्रारम्भिक कन्फिगरेसन धेरैजसो IoT यन्त्रहरूका लागि, खाता बाइन्डिङ र प्रारम्भिक कन्फिगरेसन एउटै परिचालन प्रक्रियामा पूरा हुन्छ, पूर्वका लागिample, Wi-Fi नेटवर्क कन्फिगर गरेर प्रयोगकर्ताहरूसँग उपकरणहरू जडान गर्दै।
IoT क्लाउड प्लेटफर्महरूसँग अन्तरक्रिया IoT उपकरणहरू निगरानी र नियन्त्रण गर्न, तिनीहरूलाई IoT क्लाउड प्लेटफर्महरूमा जडान गर्न पनि आवश्यक छ, आदेश दिन र एकअर्का बीच अन्तरक्रिया मार्फत स्थिति रिपोर्ट गर्न।
यन्त्र नियन्त्रण IoT क्लाउड प्लेटफर्महरूसँग जडान हुँदा, यन्त्रहरूले क्लाउडसँग सञ्चार गर्न सक्छन् र दर्ता, बाध्य वा नियन्त्रित हुन सक्छन्। प्रयोगकर्ताहरूले आईओटी क्लाउड प्लेटफर्म वा स्थानीय सञ्चार प्रोटोकलहरू मार्फत स्मार्टफोन एपमा उत्पादनको स्थिति सोध्न र अन्य कार्यहरू गर्न सक्छन्।
फर्मवेयर अपग्रेड IoT उपकरणहरूले पनि निर्माताहरूको आवश्यकताहरूमा आधारित फर्मवेयर अपग्रेड प्राप्त गर्न सक्छ। क्लाउड द्वारा पठाइएको आदेशहरू प्राप्त गरेर, फर्मवेयर अपग्रेड र संस्करण व्यवस्थापन महसुस हुनेछ। यस फर्मवेयर अपग्रेड सुविधाको साथ, तपाइँ लगातार IoT उपकरणहरूको कार्यहरू बढाउन, त्रुटिहरू समाधान गर्न, र प्रयोगकर्ता अनुभव सुधार गर्न सक्नुहुन्छ।
2.1.2 ग्राहक अनुप्रयोगहरूको आधारभूत मोड्युलहरू
ग्राहक अनुप्रयोगहरू (जस्तै, स्मार्टफोन एपहरू) मुख्य रूपमा निम्न आधारभूत मोड्युलहरू समावेश छन्:
खाता प्रणाली र प्राधिकरणले खाता र उपकरण प्राधिकरण समर्थन गर्दछ।
यन्त्र नियन्त्रण स्मार्टफोन एपहरू सामान्यतया नियन्त्रण कार्यहरूसँग सुसज्जित हुन्छन्। प्रयोगकर्ताहरूले सजिलैसँग IoT उपकरणहरूमा जडान गर्न सक्छन्, र तिनीहरूलाई स्मार्टफोन एपहरू मार्फत कुनै पनि समय, कहीं पनि व्यवस्थित गर्न सक्छन्। वास्तविक संसारको स्मार्ट घरमा, यन्त्रहरू प्रायः स्मार्टफोन एपहरू मार्फत नियन्त्रित हुन्छन्, जसले उपकरणहरूको बुद्धिमानी व्यवस्थापनलाई मात्र सक्षम बनाउँदैन, तर जनशक्तिको लागत पनि बचत गर्छ। तसर्थ, उपकरण नियन्त्रण ग्राहक अनुप्रयोगहरूको लागि आवश्यक छ, जस्तै उपकरण प्रकार्य विशेषता नियन्त्रण, दृश्य नियन्त्रण, समय तालिका, रिमोट कन्ट्रोल, उपकरण लिंकेज, आदि। स्मार्ट घर प्रयोगकर्ताहरूले पनि व्यक्तिगत आवश्यकता अनुसार दृश्यहरू अनुकूलित गर्न सक्छन्, प्रकाश नियन्त्रण, घर उपकरणहरू, प्रवेश द्वार। , आदि, गृह जीवन थप सहज र सुविधाजनक बनाउन। तिनीहरूले समय वातानुकूलित गर्न सक्छन्, यसलाई टाढैबाट बन्द गर्न सक्छन्, एक पटक ढोका अनलक भएपछि हलवे बत्ती स्वचालित रूपमा सेट गर्नुहोस्, वा एक बटनको साथ "थिएटर" मोडमा स्विच गर्नुहोस्।
सूचना ग्राहक अनुप्रयोगहरूले IoT उपकरणहरूको वास्तविक-समय स्थिति अद्यावधिक गर्दछ, र यन्त्रहरू असामान्य हुँदा अलर्टहरू पठाउँछन्।
10 ESP32-C3 वायरलेस साहसिक: IoT को लागि एक व्यापक गाइड

बिक्री पछिको ग्राहक सेवा स्मार्टफोन एपहरूले समयमै IoT यन्त्र विफलता र प्राविधिक कार्यहरू सम्बन्धी समस्याहरू समाधान गर्न उत्पादनहरूको लागि बिक्री पछि सेवाहरू प्रदान गर्न सक्छ।
विशेष प्रकार्यहरू विभिन्न प्रयोगकर्ताहरूको आवश्यकताहरू पूरा गर्न, अन्य प्रकार्यहरू थप्न सकिन्छ, जस्तै शेक, NFC, GPS, आदि। GPS ले स्थान र दूरी अनुसार दृश्य सञ्चालनहरूको शुद्धता सेट गर्न मद्दत गर्न सक्छ, जबकि शेक प्रकार्यले प्रयोगकर्ताहरूलाई सेट गर्न अनुमति दिन्छ। विशेष यन्त्र वा दृश्यको लागि हल्लाएर कार्यान्वयन गर्न आदेशहरू।
2.1.3 साझा IoT क्लाउड प्लेटफर्महरूको परिचय
IoT क्लाउड प्लेटफर्म एक सबै-इन-वन प्लेटफर्म हो जसले उपकरण व्यवस्थापन, डेटा सुरक्षा संचार, र सूचना व्यवस्थापन जस्ता कार्यहरू एकीकृत गर्दछ। तिनीहरूको लक्षित समूह र पहुँचको आधारमा, IoT क्लाउड प्लेटफर्महरूलाई सार्वजनिक IoT क्लाउड प्लेटफर्महरू (यसपछि "सार्वजनिक क्लाउड" भनिन्छ) र निजी IoT क्लाउड प्लेटफर्महरू (यसपछि "निजी क्लाउड" भनिन्छ) मा विभाजन गर्न सकिन्छ।
सार्वजनिक क्लाउडले सामान्यतया उद्यम वा व्यक्तिहरूका लागि साझा गरिएको IoT क्लाउड प्लेटफर्महरू, प्लेटफर्म प्रदायकहरूद्वारा संचालित र मर्मत गरिएको, र इन्टरनेट मार्फत साझेदारी गरिएको संकेत गर्दछ। यो नि:शुल्क वा कम लागतमा हुन सक्छ, र Alibaba Cloud, Tencent Cloud, Baidu Cloud, AWS IoT, Google IoT, आदि जस्ता खुला सार्वजनिक नेटवर्कमा सेवाहरू प्रदान गर्दछ। एक समर्थन प्लेटफर्मको रूपमा, सार्वजनिक क्लाउडले अपस्ट्रीम सेवा प्रदायकहरूलाई एकीकृत गर्न सक्छ र डाउनस्ट्रीम अन्त प्रयोगकर्ताहरू नयाँ मूल्य श्रृंखला र इकोसिस्टम सिर्जना गर्न।
निजी क्लाउड इन्टरप्राइज प्रयोगको लागि मात्र बनाइएको हो, यसरी डाटा, सुरक्षा, र सेवा गुणस्तरमा उत्कृष्ट नियन्त्रणको ग्यारेन्टी गर्दै। यसका सेवाहरू र पूर्वाधारहरू उद्यमहरूद्वारा अलग-अलग राखिएका छन्, र समर्थन गर्ने हार्डवेयर र सफ्टवेयरहरू पनि विशिष्ट प्रयोगकर्ताहरूलाई समर्पित छन्। उद्यमहरूले आफ्नो व्यवसायको आवश्यकताहरू पूरा गर्न क्लाउड सेवाहरू अनुकूलित गर्न सक्छन्। हाल, केहि स्मार्ट घर निर्माताहरूले पहिले नै निजी IoT क्लाउड प्लेटफर्महरू प्राप्त गरिसकेका छन् र तिनीहरूमा आधारित स्मार्ट होम अनुप्रयोगहरू विकास गरेका छन्।
पब्लिक क्लाउड र प्राइभेट क्लाउडको आफ्नै एडभान छtages, जुन पछि व्याख्या गरिनेछ।
कम्युनिकेसन कनेक्टिभिटी प्राप्त गर्नका लागि, कम्तिमा उपकरण साइडमा व्यापार सर्भरहरू, IoT क्लाउड प्लेटफर्महरू, र स्मार्टफोन एपहरूको साथमा इम्बेडेड विकास पूरा गर्न आवश्यक छ। यस्तो ठूलो परियोजनाको सामना गर्दै, सार्वजनिक क्लाउडले सामान्यतया उपकरण-साइड र स्मार्टफोन एपहरूको लागि प्रक्रियालाई गति दिन सफ्टवेयर विकास किटहरू प्रदान गर्दछ। सार्वजनिक र निजी क्लाउड दुबै उपकरण पहुँच, उपकरण व्यवस्थापन, उपकरण छाया, र सञ्चालन र मर्मत सहित सेवाहरू प्रदान गर्दछ।
यन्त्र पहुँच IoT क्लाउड प्लेटफर्महरूले प्रोटोकलहरू प्रयोग गरेर उपकरण पहुँचको लागि मात्र इन्टरफेसहरू प्रदान गर्न आवश्यक छ
अध्याय २. IoT परियोजनाहरूको परिचय र अभ्यास ११

जस्तै MQTT, CoAP, HTTPS, र Webसकेट, तर नक्कली र गैरकानूनी उपकरणहरू ब्लक गर्न यन्त्र सुरक्षा प्रमाणीकरणको कार्य पनि, प्रभावकारी रूपमा सम्झौता हुने जोखिम कम गर्न। यस्तो प्रमाणीकरणले सामान्यतया विभिन्न संयन्त्रहरूलाई समर्थन गर्दछ, त्यसैले जब यन्त्रहरू ठूलो मात्रामा उत्पादन हुन्छन्, चयन गरिएको प्रमाणीकरण संयन्त्र अनुसार उपकरण प्रमाणपत्र पूर्व-असाइन गर्न र यन्त्रहरूमा जलाउन आवश्यक हुन्छ।
यन्त्र व्यवस्थापन IoT क्लाउड प्लेटफर्महरू द्वारा प्रदान गरिएको उपकरण व्यवस्थापन प्रकार्यले निर्माताहरूलाई सक्रियता स्थिति र वास्तविक समयमा तिनीहरूको यन्त्रहरूको अनलाइन स्थिति निगरानी गर्न मात्र मद्दत गर्दैन, तर उपकरणहरू थप्ने / हटाउने, पुन: प्राप्त गर्ने, समूहहरू थप्ने / मेटाउने, फर्मवेयर अपग्रेड जस्ता विकल्पहरूलाई अनुमति दिन्छ। , र संस्करण व्यवस्थापन।
यन्त्र छाया IoT क्लाउड प्लेटफर्महरूले प्रत्येक यन्त्रको लागि निरन्तर भर्चुअल संस्करण (उपकरण छाया) सिर्जना गर्न सक्छ, र उपकरण छायाको स्थिति सिङ्क्रोनाइज गर्न सकिन्छ र स्मार्टफोन एप वा अन्य उपकरणहरू इन्टरनेट प्रसारण प्रोटोकलहरू मार्फत प्राप्त गर्न सकिन्छ। यन्त्र छायाले प्रत्येक यन्त्रको पछिल्लो रिपोर्ट गरिएको स्थिति र अपेक्षित स्थिति भण्डारण गर्छ, र यदि यन्त्र अफलाइन छ भने पनि, यसले API हरू कल गरेर स्थिति प्राप्त गर्न सक्छ। यन्त्र छायाले सधैं-अन API प्रदान गर्दछ, जसले यन्त्रहरूसँग अन्तर्क्रिया गर्ने स्मार्टफोन एपहरू निर्माण गर्न सजिलो बनाउँछ।
सञ्चालन र मर्मतसम्भार O&M प्रकार्यले तीनवटा पक्षहरू समावेश गर्दछ: · IoT उपकरणहरू र सूचनाहरू बारे सांख्यिकीय जानकारी प्रदर्शन गर्दै। · लग व्यवस्थापनले उपकरण व्यवहार, माथि / तल सन्देश प्रवाह, र सन्देश सामग्री बारे जानकारी पुन: प्राप्त गर्न अनुमति दिन्छ। · यन्त्र डिबगिङले कमाण्ड डेलिभरी, कन्फिगरेसन अपडेट, र IoT क्लाउड प्लेटफर्महरू र उपकरण सन्देशहरू बीचको अन्तरक्रिया जाँच गर्न समर्थन गर्दछ।
२.२ अभ्यास: स्मार्ट लाइट परियोजना
प्रत्येक अध्यायमा सैद्धान्तिक परिचय पछि, तपाईंले स्मार्ट लाइट परियोजनासँग सम्बन्धित अभ्यास खण्ड पाउनुहुनेछ जुन तपाईंलाई हातमा अनुभव प्राप्त गर्न मद्दत गर्दछ। परियोजना Espressif को ESP32-C3 चिप र ESP RainMaker IoT क्लाउड प्लेटफर्ममा आधारित छ, र स्मार्ट लाइट उत्पादनहरूमा वायरलेस मोड्युल हार्डवेयर, ESP32C3, स्मार्टफोन एपहरू, र ESP RainMaker अन्तरक्रियामा आधारित स्मार्ट उपकरणहरूका लागि इम्बेडेड सफ्टवेयर समावेश गर्दछ।
स्रोत कोड राम्रो सिक्ने र विकास अनुभवको लागि, यस पुस्तकमा परियोजना ओपनसोर्स गरिएको छ। तपाइँ हाम्रो GitHub भण्डारबाट https://github मा स्रोत कोड डाउनलोड गर्न सक्नुहुन्छ। com/espressif/book-esp32c3-iot-projects।
12 ESP32-C3 वायरलेस साहसिक: IoT को लागि एक व्यापक गाइड

२.२.१ परियोजना संरचना
स्मार्ट लाइट परियोजनाले तीन भागहरू समावेश गर्दछ: i। ESP32-C3 मा आधारित स्मार्ट लाइट उपकरणहरू, IoT क्लाउड प्लेटफर्महरूसँग अन्तरक्रिया गर्न, र LED l को स्विच, चमक र रंग तापमान नियन्त्रण गर्न जिम्मेवारamp मोती। ii स्मार्टफोन एपहरू (एन्ड्रोइड र आईओएसमा चल्ने ट्याब्लेट एपहरू सहित), स्मार्ट लाइट उत्पादनहरूको नेटवर्क कन्फिगरेसनको लागि जिम्मेवार, साथै तिनीहरूको स्थिति सोध्ने र नियन्त्रण गर्ने।
iii ESP RainMaker मा आधारित IoT क्लाउड प्लेटफर्म। सरलीकरणको लागि, हामी यस पुस्तकमा IoT क्लाउड प्लेटफर्म र व्यापार सर्भरलाई समग्र रूपमा विचार गर्छौं। ESP RainMaker को बारेमा विवरणहरू अध्याय 3 मा प्रदान गरिनेछ।
स्मार्ट लाइट परियोजना संरचना र IoT को वास्तुकला बीचको पत्राचार चित्र 2.1 मा देखाइएको छ।
चित्र २.१। स्मार्ट लाइट परियोजनाको संरचना
2.2.2 परियोजना कार्यहरू
संरचना अनुसार विभाजित, प्रत्येक भाग को कार्यहरु निम्नानुसार छन्। स्मार्ट प्रकाश उपकरणहरू
· नेटवर्क कन्फिगरेसन र जडान। · LED PWM नियन्त्रण, जस्तै स्विच, चमक, रंग तापमान, आदि। · स्वचालन वा दृश्य नियन्त्रण, जस्तै, समय स्विच। एन्क्रिप्शन र फ्लैशको सुरक्षित बुट। फर्मवेयर अपग्रेड र संस्करण व्यवस्थापन।
अध्याय २. IoT परियोजनाहरूको परिचय र अभ्यास ११

स्मार्टफोन एपहरू · नेटवर्क कन्फिगरेसन र उपकरण बाइन्डिङ। · स्मार्ट प्रकाश उत्पादन नियन्त्रण, जस्तै स्विच, चमक, रंग तापमान, आदि। स्वचालन वा दृश्य सेटिङहरू, जस्तै, समय स्विच। · स्थानीय/रिमोट कन्ट्रोल। · प्रयोगकर्ता दर्ता, लगइन, आदि।
ESP RainMaker IoT क्लाउड प्लेटफर्म · IoT उपकरण पहुँच सक्षम गर्दै। · स्मार्टफोन एपहरूमा पहुँचयोग्य उपकरण सञ्चालन API प्रदान गर्दै। फर्मवेयर अपग्रेड र संस्करण व्यवस्थापन।
2.2.3 हार्डवेयर तयारी
यदि परियोजनालाई अभ्यासमा राख्न इच्छुक हुनुहुन्छ भने, तपाइँलाई निम्न हार्डवेयर चाहिन्छ: स्मार्ट बत्तीहरू, स्मार्टफोनहरू, Wi-Fi राउटरहरू, र विकास वातावरणको स्थापना आवश्यकताहरू पूरा गर्ने कम्प्युटर। स्मार्ट बत्तीहरू
स्मार्ट बत्तीहरू नयाँ प्रकारका बल्बहरू हुन्, जसको आकार सामान्य तापीय बल्बजस्तै हुन्छ। एक स्मार्ट लाइट क्यापेसिटर स्टेप-डाउन विनियमित पावर सप्लाई, वायरलेस मोड्युल (इएसपी३२-सी३ भित्र निर्मित), एलईडी कन्ट्रोलर र आरजीबी एलईडी म्याट्रिक्सबाट बनेको हुन्छ। जब पावरमा जडान हुन्छ, 32 V DC भोल्युमtagक्यापेसिटर स्टेप-डाउन, डायोड सुधार, र नियमन पछि ई आउटपुटले एलईडी नियन्त्रक र एलईडी म्याट्रिक्सलाई ऊर्जा प्रदान गर्दछ। LED नियन्त्रकले स्वचालित रूपमा निश्चित अन्तरालहरूमा उच्च र तल्लो स्तरहरू पठाउन सक्छ, RGB LED म्याट्रिक्सलाई बन्द (बत्तीहरू सक्रिय) र खुला (बत्तीहरू बन्द) बीच स्विच गर्दै, ताकि यसले सियान, पहेंलो, हरियो, बैजनी, नीलो, रातो र सेतो प्रकाश। वायरलेस मोड्युल Wi-Fi राउटरमा जडान गर्न, स्मार्ट लाइटहरूको स्थिति प्राप्त गर्ने र रिपोर्ट गर्ने, र LED नियन्त्रण गर्न आदेशहरू पठाउन जिम्मेवार छ।
चित्र २.२। एक सिमुलेटेड स्मार्ट लाइट
प्रारम्भिक विकासमा एसtagई, तपाईं RGB LED l सँग जडान भएको ESP32-C3DevKitM-1 बोर्ड प्रयोग गरेर स्मार्ट लाइट सिमुलेट गर्न सक्नुहुन्छ।amp मोती (चित्र २.२ हेर्नुहोस्)। तर तपाईंले गर्नुपर्छ
14 ESP32-C3 वायरलेस साहसिक: IoT को लागि एक व्यापक गाइड

ध्यान दिनुहोस् कि यो स्मार्ट लाइट जम्मा गर्ने एक मात्र तरिका होइन। यस पुस्तकमा रहेको परियोजनाको हार्डवेयर डिजाइनमा वायरलेस मोड्युल मात्र समावेश छ (निर्मित ESP32-C3 सँग), तर पूर्ण स्मार्ट लाइट हार्डवेयर डिजाइन होइन। थप रूपमा, Espressif ले अडियोको साथ बत्तीहरू नियन्त्रण गर्नको लागि ESP32-C3-आधारित अडियो विकास बोर्ड ESP32C3-Lyra पनि उत्पादन गर्दछ। बोर्डमा माइक्रोफोन र स्पिकरहरूको लागि इन्टरफेसहरू छन् र एलईडी स्ट्रिपहरू नियन्त्रण गर्न सक्छन्। यो अति कम लागत, उच्च प्रदर्शन अडियो प्रसारकहरू र ताल प्रकाश स्ट्रिपहरू विकास गर्न प्रयोग गर्न सकिन्छ। चित्र 2.3 ले ESP32-C3Lyra बोर्डलाई 40 LED बत्तीहरूको स्ट्रिपसँग जोडिएको देखाउँछ।
चित्र २.३। ESP2.3-C32-Lyra 3 LED बत्तीहरूको स्ट्रिपसँग जोडिएको
Smartphones (Android/iOS) स्मार्ट लाइट परियोजनाले स्मार्ट लाइट उत्पादनहरू सेटअप र नियन्त्रण गर्नको लागि स्मार्टफोन एपको विकास समावेश गर्दछ।
Wi-Fi राउटरहरू Wi-Fi राउटरहरूले वायर्ड नेटवर्क सिग्नलहरू र मोबाइल नेटवर्क सिग्नलहरूलाई वायरलेस नेटवर्क सिग्नलहरूमा रूपान्तरण गर्दछ, कम्प्युटरहरू, स्मार्टफोनहरू, ट्याब्लेटहरू, र अन्य वायरलेस उपकरणहरू नेटवर्कमा जडान हुनको लागि। पूर्वका लागिampतर, Wi-Fi उपकरणहरूको वायरलेस नेटवर्किङ प्राप्त गर्न घरमा ब्रोडब्यान्ड मात्र Wi-Fi राउटरमा जडान हुन आवश्यक छ। Wi-Fi राउटरहरू द्वारा समर्थित मुख्यधारा प्रोटोकल मानक IEEE 802.11n हो, 300 Mbps को औसत TxRate, वा 600 Mbps अधिकतम। तिनीहरू IEEE 802.11b र IEEE 802.11g सँग ब्याकवर्ड उपयुक्त छन्। Espressif द्वारा ESP32-C3 चिपले IEEE 802.11b/g/n लाई समर्थन गर्दछ, त्यसैले तपाइँ एकल-ब्यान्ड (2.4 GHz) वा डुअल-ब्यान्ड (2.4 GHz र 5 GHz) Wi-Fi राउटर छनौट गर्न सक्नुहुन्छ।
एक कम्प्युटर (Linux/macOS/Windows) विकास वातावरण अध्याय 4 मा प्रस्तुत गरिनेछ। अध्याय 2। IoT परियोजनाहरूको परिचय र अभ्यास 15

2.2.4 विकास प्रक्रिया
चित्र २.४। स्मार्ट लाइट परियोजनाको विकासका चरणहरू
हार्डवेयर डिजाइन IoT यन्त्रहरूको हार्डवेयर डिजाइन IoT परियोजनाको लागि आवश्यक छ। एक पूर्ण स्मार्ट लाइट परियोजना एल उत्पादन गर्न को लागी होamp मुख्य आपूर्ति अन्तर्गत काम गर्दै। विभिन्न उत्पादकहरूले एलamps विभिन्न शैली र चालक प्रकारहरू, तर तिनीहरूको वायरलेस मोड्युलहरू सामान्यतया एउटै प्रकार्यका हुन्छन्। स्मार्ट लाइट परियोजनाको विकास प्रक्रियालाई सरल बनाउन, यो पुस्तकले वायरलेस मोड्युलहरूको हार्डवेयर डिजाइन र सफ्टवेयर विकासलाई मात्र समेट्छ।
IoT क्लाउड प्लेटफर्म कन्फिगरेसन IoT क्लाउड प्लेटफर्महरू प्रयोग गर्न, तपाईंले ब्याकइन्डमा परियोजनाहरू कन्फिगर गर्न आवश्यक छ, जस्तै उत्पादनहरू सिर्जना गर्ने, उपकरणहरू सिर्जना गर्ने, यन्त्र गुणहरू सेट गर्ने, आदि।
IoT यन्त्रहरूका लागि इम्बेडेड सफ्टवेयर विकासले ESP-IDF, Espressif को उपकरण-साइड SDK सँग IoT क्लाउड प्लेटफर्महरूमा जडान गर्ने, LED ड्राइभरहरू विकास गर्ने, र फर्मवेयर अपग्रेड गर्ने सहित अपेक्षित कार्यहरू लागू गर्दछ।
स्मार्टफोन एप विकास एन्ड्रोइड र आईओएस प्रणालीहरूको लागि प्रयोगकर्ता दर्ता र लगइन, उपकरण नियन्त्रण र अन्य प्रकार्यहरू महसुस गर्न स्मार्टफोन एपहरू विकास गर्नुहोस्।
IoT यन्त्र अप्टिमाइजेसन IoT यन्त्र प्रकार्यहरूको आधारभूत विकास पूरा भएपछि, तपाईं पावर अप्टिमाइजेसन जस्ता अप्टिमाइजेसन कार्यहरूमा जान सक्नुहुन्छ।
ठूलो उत्पादन परीक्षण सम्बन्धित मापदण्डहरू जस्तै उपकरण प्रकार्य परीक्षण, वृद्धावस्था परीक्षण, आरएफ परीक्षण, आदि अनुसार ठूलो उत्पादन परीक्षणहरू गर्नुहोस्।
माथि सूचीबद्ध चरणहरूको बावजुद, स्मार्ट लाइट परियोजना आवश्यक रूपमा त्यस्तो प्रक्रियाको अधीनमा छैन किनकि विभिन्न कार्यहरू पनि एकै समयमा गर्न सकिन्छ। पूर्वका लागिampले, इम्बेडेड सफ्टवेयर र स्मार्टफोन एपहरू समानान्तर रूपमा विकास गर्न सकिन्छ। IoT उपकरण अप्टिमाइजेसन र ठूलो उत्पादन परीक्षण जस्ता केही चरणहरू पनि दोहोर्याउनु पर्ने हुन सक्छ।
16 ESP32-C3 वायरलेस साहसिक: IoT को लागि एक व्यापक गाइड

2.3 सारांश
यस अध्यायमा, हामीले पहिले IoT परियोजनाको आधारभूत घटकहरू र कार्यात्मक मोड्युलहरूको बारेमा व्याख्या गर्यौं, त्यसपछि अभ्यासको लागि स्मार्ट लाइट केस प्रस्तुत गर्‍यौं, यसको संरचना, कार्यहरू, हार्डवेयर तयारी, र विकास प्रक्रियालाई सन्दर्भ गर्दै। पाठकहरूले अभ्यासबाट निष्कर्ष निकाल्न सक्छन् र भविष्यमा न्यूनतम गल्तीहरूसँग IoT परियोजनाहरू पूरा गर्न विश्वस्त हुन सक्छन्।
अध्याय २. IoT परियोजनाहरूको परिचय र अभ्यास ११

18 ESP32-C3 वायरलेस साहसिक: IoT को लागि एक व्यापक गाइड

अध्याय १

परिचय

को

ESP

रेनमेकर

चीजहरूको इन्टरनेट (IoT) ले मानिसहरूको जीवन शैली परिवर्तन गर्न अनन्त सम्भावनाहरू प्रदान गर्दछ, तर पनि IoT इन्जिनियरिङको विकास चुनौतीहरूले भरिएको छ। सार्वजनिक क्लाउडहरूसँग, टर्मिनल निर्माताहरूले निम्न समाधानहरू मार्फत उत्पादन कार्यक्षमता कार्यान्वयन गर्न सक्छन्:
समाधान प्रदायकको क्लाउड प्लेटफर्महरूमा आधारित यस तरिकामा, टर्मिनल निर्माताहरूले उत्पादन हार्डवेयर डिजाइन गर्न आवश्यक छ, त्यसपछि प्रदान गरिएको सञ्चार मोड्युल प्रयोग गरेर क्लाउडमा हार्डवेयर जडान गर्नुहोस्, र दिशानिर्देशहरू पछ्याएर उत्पादन कार्यहरू कन्फिगर गर्नुहोस्। यो एक कुशल दृष्टिकोण हो किनकि यसले सर्भर-साइड र अनुप्रयोग-साइड विकास र सञ्चालन र मर्मतसम्भार (O&M) को आवश्यकतालाई हटाउँछ। यसले टर्मिनल निर्माताहरूलाई क्लाउड कार्यान्वयनलाई विचार नगरी हार्डवेयर डिजाइनमा फोकस गर्न अनुमति दिन्छ। यद्यपि, त्यस्ता समाधानहरू (जस्तै, उपकरण फर्मवेयर र एप) सामान्यतया खुला स्रोत होइनन्, त्यसैले उत्पादन कार्यहरू प्रदायकको क्लाउड प्लेटफर्मद्वारा सीमित हुनेछन् जुन अनुकूलित गर्न सकिँदैन। यस बीचमा, प्रयोगकर्ता र उपकरण डाटा पनि क्लाउड प्लेटफर्म हो।
क्लाउड उत्पादनहरूमा आधारित यस समाधानमा, हार्डवेयर डिजाइन पूरा गरेपछि, टर्मिनल निर्माताहरूले सार्वजनिक क्लाउडद्वारा उपलब्ध गराइएका एक वा बढी क्लाउड उत्पादनहरू प्रयोग गरेर क्लाउड प्रकार्यहरू मात्र लागू गर्न आवश्यक छैन, तर क्लाउडसँग हार्डवेयर लिंक गर्न पनि आवश्यक छ। पूर्वका लागिample, Amazon मा जडान गर्न Web सेवाहरू (AWS), टर्मिनल निर्माताहरूले AWS उत्पादनहरू जस्तै Amazon API Gateway, AWS IoT Core, र AWS Lambda यन्त्र पहुँच, रिमोट कन्ट्रोल, डाटा भण्डारण, प्रयोगकर्ता व्यवस्थापन, र अन्य आधारभूत कार्यहरू सक्षम गर्न प्रयोग गर्न आवश्यक छ। यसले टर्मिनल निर्माताहरूलाई गहिरो समझ र समृद्ध अनुभवको साथ क्लाउड उत्पादनहरू लचिलो रूपमा प्रयोग गर्न र कन्फिगर गर्न मात्र आग्रह गर्दैन, तर उनीहरूलाई प्रारम्भिक र पछिको निर्माण र मर्मत लागतलाई पनि विचार गर्न आवश्यक छ।tages यसले कम्पनीको ऊर्जा र स्रोतहरूमा ठूलो चुनौती खडा गर्छ।
सार्वजनिक क्लाउडको तुलनामा, निजी क्लाउडहरू सामान्यतया विशेष परियोजनाहरू र उत्पादनहरूको लागि बनाइन्छ। निजी क्लाउड विकासकर्ताहरूलाई प्रोटोकल डिजाइन र व्यापार तर्क कार्यान्वयनमा उच्चतम स्तरको स्वतन्त्रता दिइन्छ। टर्मिनल निर्माताहरूले इच्छा अनुसार उत्पादनहरू र डिजाइन योजनाहरू बनाउन सक्छन्, र सजिलैसँग प्रयोगकर्ता डेटालाई एकीकृत र सशक्त बनाउन सक्छन्। एडभानसँग सार्वजनिक क्लाउडको उच्च सुरक्षा, स्केलेबिलिटी र विश्वसनीयता संयोजन गर्दैtagनिजी क्लाउडको es, Espressif ले ESP सुरु गर्यो
19

RainMaker, Amazon क्लाउडमा आधारित एक गहिरो एकीकृत निजी क्लाउड समाधान। प्रयोगकर्ताहरूले ESP RainMaker डिप्लोय गर्न र AWS खाताको साथ निजी क्लाउड निर्माण गर्न सक्छन्।
3.1 ESP RainMaker के हो?
ESP RainMaker धेरै परिपक्व AWS उत्पादनहरु संग निर्मित एक पूर्ण AIoT प्लेटफर्म हो। यसले ठूलो उत्पादनको लागि आवश्यक विभिन्न सेवाहरू प्रदान गर्दछ जस्तै उपकरण क्लाउड पहुँच, उपकरण अपग्रेड, ब्याकएन्ड व्यवस्थापन, तेस्रो-पक्ष लगइन, आवाज एकीकरण, र प्रयोगकर्ता व्यवस्थापन। AWS द्वारा उपलब्ध गराइएको सर्भरलेस एप्लिकेसन रिपोजिटरी (SAR) को प्रयोग गरेर, टर्मिनल निर्माताहरूले ESP RainMaker चाँडै आफ्नो AWS खाताहरूमा डिप्लोय गर्न सक्छन्, जुन समय-कुशल र सञ्चालन गर्न सजिलो छ। Espressif द्वारा व्यवस्थित र मर्मत गरिएको, ESP RainMaker द्वारा प्रयोग गरिएको SAR ले विकासकर्ताहरूलाई क्लाउड मर्मत लागत घटाउन र AIoT उत्पादनहरूको विकासलाई गति दिन, यसरी सुरक्षित, स्थिर, र अनुकूलन योग्य AIoT समाधानहरू निर्माण गर्न मद्दत गर्दछ। चित्र ३.१ ले ESP RainMaker को वास्तुकला देखाउँछ।
चित्र ३.१। ESP RainMaker को वास्तुकला
Espressif द्वारा ESP RainMaker सार्वजनिक सर्भर सबै ESP उत्साहीहरू, निर्माताहरू, र समाधान मूल्याङ्कनका लागि शिक्षकहरूको लागि निःशुल्क छ। विकासकर्ताहरूले Apple, Google, वा GitHub खाताहरूसँग लग इन गर्न सक्छन्, र छिट्टै आफ्नै IoT अनुप्रयोग प्रोटोटाइपहरू निर्माण गर्न सक्छन्। सार्वजनिक सर्भरले एलेक्सा र गुगल होमलाई एकीकृत गर्दछ, र आवाज नियन्त्रण सेवाहरू प्रदान गर्दछ, जुन एलेक्सा स्किल र Google कार्यहरूद्वारा समर्थित छन्। यसको सिमेन्टिक पहिचान प्रकार्य पनि तेस्रो पक्षहरू द्वारा संचालित छ। RainMaker IoT यन्त्रहरूले विशेष कार्यहरूमा मात्र प्रतिक्रिया दिन्छ। समर्थित आवाज आदेशहरूको विस्तृत सूचीको लागि, कृपया तेस्रो-पक्ष प्लेटफर्महरू जाँच गर्नुहोस्। थप रूपमा, Espressif ले प्रयोगकर्ताहरूलाई स्मार्टफोनहरू मार्फत उत्पादनहरू नियन्त्रण गर्न सार्वजनिक रेनमेकर एप प्रदान गर्दछ। 20 ESP32-C3 वायरलेस साहसिक: IoT को लागि एक व्यापक गाइड

3.2 ESP RainMaker को कार्यान्वयन
चित्र ३.२ मा देखाइए अनुसार, ESP RainMaker ले चार भागहरू समावेश गर्दछ: · सेवा दाबी गर्दै, RainMaker उपकरणहरूलाई गतिशील रूपमा प्रमाणपत्रहरू प्राप्त गर्न सक्षम पार्दै। · RainMaker Cloud (क्लाउड ब्याकएन्ड पनि भनिन्छ), सन्देश फिल्टरिङ, प्रयोगकर्ता व्यवस्थापन, डाटा भण्डारण, र तेस्रो-पक्ष एकीकरण जस्ता सेवाहरू प्रदान गर्दछ। · RainMaker एजेन्ट, RainMaker यन्त्रहरूलाई RainMaker Cloud मा जडान गर्न सक्षम पार्दै। · रेनमेकर क्लाइन्ट (रेनमेकर एप वा सीएलआई स्क्रिप्टहरू), प्रावधान, प्रयोगकर्ता सिर्जना, उपकरण एसोसिएशन र नियन्त्रण, आदिको लागि।
चित्र ३.२। ESP RainMaker को संरचना
ESP RainMaker ले उत्पादन विकास र ठूलो उत्पादनको लागि उपकरणहरूको पूर्ण सेट प्रदान गर्दछ, जसमा: RainMaker SDK
RainMaker SDK ESP-IDF मा आधारित छ र फर्मवेयर विकासको लागि उपकरण-साइड एजेन्ट र सम्बन्धित C API हरूको स्रोत कोड प्रदान गर्दछ। विकासकर्ताहरूले मात्र अनुप्रयोग तर्क लेख्न र RainMaker फ्रेमवर्कमा बाँकी छोड्न आवश्यक छ। C API को बारेमा थप जानकारीको लागि, कृपया https://bookc3.espressif.com/rm/c-api-reference मा जानुहोस्। RainMaker एप रेनमेकर एपको सार्वजनिक संस्करणले विकासकर्ताहरूलाई उपकरण प्रावधान पूरा गर्न र उपकरणहरूको स्थिति (जस्तै, स्मार्ट प्रकाश उत्पादनहरू) नियन्त्रण गर्न र क्वेरी गर्न अनुमति दिन्छ। यो आईओएस र एन्ड्रोइड एप स्टोरहरूमा उपलब्ध छ। थप विवरणहरूको लागि, कृपया अध्याय 10 हेर्नुहोस्। REST APIs REST API ले प्रयोगकर्ताहरूलाई RainMaker एप जस्तै आफ्नै अनुप्रयोगहरू निर्माण गर्न मद्दत गर्दछ। थप जानकारीको लागि, कृपया https://swaggerapis.rainmaker.espressif.com/ मा जानुहोस्।
अध्याय 3. ESP रेनमेकर 21 को परिचय

Python APIs A Python-आधारित CLI, जुन RainMaker SDK सँग आउँछ, स्मार्टफोन सुविधाहरू जस्तै सबै प्रकार्यहरू कार्यान्वयन गर्न प्रदान गरिएको छ। Python API को बारेमा थप जानकारीको लागि, कृपया https://bookc3.espressif.com/rm/python-api-reference मा जानुहोस्।
Admin CLI व्यवस्थापक CLI, उच्च स्तरको पहुँचको साथ, ESP RainMaker निजी परिनियोजनको लागि बल्कमा यन्त्र प्रमाणपत्रहरू उत्पन्न गर्न प्रदान गरिएको छ।
3.2.1 दावी सेवा
RainMaker उपकरणहरू र क्लाउड ब्याकइन्ड बीचको सबै सञ्चार MQTT+TLS मार्फत गरिन्छ। ESP RainMaker को सन्दर्भमा, "दावी" भनेको प्रक्रिया हो जसमा उपकरणहरूले क्लाउड ब्याकइन्डमा जडान गर्न दावी सेवाबाट प्रमाणपत्रहरू प्राप्त गर्दछ। ध्यान दिनुहोस् कि दाबी सेवा सार्वजनिक रेनमेकर सेवामा मात्र लागू हुन्छ, जबकि निजी डिप्लोइमेन्टको लागि, यन्त्र प्रमाणपत्रहरू व्यवस्थापक CLI मार्फत बल्कमा उत्पन्न गर्न आवश्यक छ। ESP RainMaker ले तीन प्रकारको दाबी सेवालाई समर्थन गर्दछ: स्व-दावी
यन्त्रले इन्टरनेटमा जडान गरेपछि eFuse मा पूर्व-प्रोग्राम गरिएको गोप्य कुञ्जी मार्फत प्रमाणपत्रहरू ल्याउँछ। होस्ट चालित दाबी प्रमाणपत्रहरू विकास होस्टबाट रेनमेकर खाताबाट प्राप्त गरिन्छ। सहायक दाबी प्रमाणपत्रहरू प्रावधानको समयमा स्मार्टफोन अनुप्रयोगहरू मार्फत प्राप्त गरिन्छ।
३.२.२ रेनमेकर एजेन्ट
चित्र ३.३। RainMaker SDK को संरचना रेनमेकर एजेन्टको प्राथमिक कार्य जडान प्रदान गर्नु र अपलिंक/डाउनलिंक क्लाउड डेटा प्रशोधन गर्न अनुप्रयोग तहलाई सहयोग गर्नु हो। यो RainMaker SDK 3.3 ESP22-C32 Wireless Adventure: A Comprehensive Guide to IoT मार्फत बनाइएको हो।

र RTOS, NVS, र MQTT जस्ता ESP-IDF कम्पोनेन्टहरू प्रयोग गरेर प्रमाणित ESP-IDF फ्रेमवर्कमा आधारित विकसित। चित्र 3.3 ले RainMaker SDK को संरचना देखाउँछ।
RainMaker SDK मा दुई प्रमुख सुविधाहरू समावेश छन्।
जडान
i यन्त्र प्रमाणपत्रहरू प्राप्त गर्न दावी सेवासँग सहकार्य गर्दै।
ii क्लाउड ब्याकइन्डमा सुरक्षित MQTT प्रोटोकल प्रयोग गरेर रिमोट कनेक्टिभिटी प्रदान गर्न र रिमोट कन्ट्रोल, सन्देश रिपोर्टिङ, प्रयोगकर्ता व्यवस्थापन, उपकरण व्यवस्थापन, आदि कार्यान्वयन गर्न जडान गर्दै। यसले पूर्वनिर्धारित रूपमा ESP-IDF मा MQTT कम्पोनेन्ट प्रयोग गर्दछ र अन्यसँग इन्टरफेस गर्नको लागि एब्स्ट्र्यासन तह प्रदान गर्दछ। प्रोटोकल स्ट्याकहरू।
iii Wi-Fi जडान र प्रावधानको लागि wifi प्रावधान घटक, OTA अपग्रेडहरूको लागि esp https ota घटक, र स्थानीय उपकरण खोज र जडानको लागि esp स्थानीय ctrl घटक प्रदान गर्दै। यी सबै उद्देश्यहरू सरल कन्फिगरेसन मार्फत हासिल गर्न सकिन्छ।
डाटा प्रशोधन
i दावी सेवा द्वारा जारी गरिएको उपकरण प्रमाणपत्रहरू र RainMaker चलाउँदा आवश्यक डेटा भण्डारण गर्दै, पूर्वनिर्धारित रूपमा nvs फ्लैश कम्पोनेन्टद्वारा प्रदान गरिएको इन्टरफेस प्रयोग गरेर, र विकासकर्ताहरूलाई प्रत्यक्ष प्रयोगको लागि API हरू उपलब्ध गराउँदै।
ii अपलिंक/डाउनलिङ्क क्लाउड डेटा प्रशोधन गर्न कलब्याक मेकानिजम प्रयोग गरी र विकासकर्ताहरूद्वारा सजिलो प्रक्रियाको लागि अनुप्रयोग तहमा डेटालाई स्वचालित रूपमा अनब्लक गर्ने। पूर्वका लागिampले, RainMaker SDK ले TSL (थिंग स्पेसिफिकेशन ल्याङ्ग्वेज) डाटा स्थापना गर्न रिच इन्टरफेसहरू प्रदान गर्दछ, जुन IoT यन्त्रहरू वर्णन गर्न र समय, काउन्टडाउन, र आवाज नियन्त्रण जस्ता कार्यहरू लागू गर्न TSL मोडेलहरू परिभाषित गर्न आवश्यक छ। समय जस्ता आधारभूत अन्तरक्रियात्मक सुविधाहरूको लागि, RainMaker SDK ले विकास-रहित समाधान प्रदान गर्दछ जुन आवश्यक पर्दा मात्र सक्षम गर्न सकिन्छ। त्यसपछि, RainMaker एजेन्टले सीधै डाटा प्रशोधन गर्नेछ, सम्बन्धित MQTT विषय मार्फत क्लाउडमा पठाउनेछ, र कलब्याक मेकानिजम मार्फत क्लाउड ब्याकइन्डमा डाटा परिवर्तनहरू फिड ब्याक गर्नेछ।
३.२.३ क्लाउड ब्याकइन्ड
क्लाउड ब्याकइन्ड AWS सर्भरलेस कम्प्युटिङमा निर्मित छ र AWS Cognito (पहिचान व्यवस्थापन प्रणाली), Amazon API गेटवे, AWS Lambda (सर्भरलेस कम्प्युटिङ सेवा), Amazon DynamoDB (NoSQL डाटाबेस), AWS IoT कोर (IoT पहुँच कोर जसले MQTT पहुँच प्रदान गर्दछ। र नियम फिल्टरिङ), Amazon Simple Email Service (SES साधारण मेल सेवा), Amazon CloudFront (छिटो डेलिभरी नेटवर्क), Amazon Simple Queue Service (SQS सन्देश लाइनिङ), र Amazon S3 (बाल्टी भण्डारण सेवा)। यो स्केलेबिलिटी र सुरक्षा अनुकूलन गर्न उद्देश्य छ। ESP RainMaker को साथ, विकासकर्ताहरूले क्लाउडमा कोड लेख्न बिना यन्त्रहरू व्यवस्थापन गर्न सक्छन्। यन्त्रहरूद्वारा रिपोर्ट गरिएका सन्देशहरू पारदर्शी रूपमा पठाइन्छ
अध्याय 3. ESP रेनमेकर 23 को परिचय

आवेदन ग्राहक वा अन्य तेस्रो-पक्ष सेवाहरू। तालिका ३.१ ले क्लाउड ब्याकइन्डमा प्रयोग हुने AWS क्लाउड उत्पादनहरू र कार्यहरू देखाउँछ, थप उत्पादनहरू र सुविधाहरू विकास अन्तर्गत छन्।
तालिका ३.१। AWS क्लाउड उत्पादनहरू र क्लाउड ब्याकइन्डद्वारा प्रयोग गरिएका कार्यहरू

RainMaker द्वारा प्रयोग गरिएको AWS क्लाउड उत्पादन

कार्य

AWS Cognito

प्रयोगकर्ता प्रमाणहरू प्रबन्ध गर्दै र तेस्रो-पक्ष लगइनहरूलाई समर्थन गर्दै

AWS Lambda

क्लाउड ब्याकइन्डको मुख्य व्यापार तर्क लागू गर्दै

Amazon Timestream भण्डारण समय श्रृंखला डाटा

Amazon DynamoDB ग्राहकहरूको निजी जानकारी भण्डारण गर्दै

AWS IoT कोर

MQTT संचारलाई समर्थन गर्दै

अमेजन SES

इमेल पठाउने सेवाहरू प्रदान गर्दै

Amazon CloudFront ब्याकएन्डको व्यवस्थापनलाई गति दिँदै webसाइट पहुँच

Amazon SQS

AWS IoT Core बाट सन्देशहरू फर्वार्ड गर्दै

३.२.४ रेनमेकर क्लाइन्ट
RainMaker क्लाइन्टहरू, जस्तै App र CLI, क्लाउड ब्याकइन्डसँग REST API मार्फत सञ्चार गर्छन्। REST API को बारेमा विस्तृत जानकारी र निर्देशनहरू Espressif द्वारा प्रदान गरिएको Swagger कागजातमा पाउन सकिन्छ। रेनमेकरको मोबाइल एप्लिकेसन क्लाइन्ट दुवै आईओएस र एन्ड्रोइड प्रणालीहरूको लागि उपलब्ध छ। यसले यन्त्र प्रावधान, नियन्त्रण, र साझेदारी गर्न, साथै काउन्टडाउन कार्यहरू सिर्जना र सक्षम गर्न र तेस्रो-पक्ष प्लेटफर्महरूमा जडान गर्न अनुमति दिन्छ। यसले यन्त्रहरूद्वारा रिपोर्ट गरिएको कन्फिगरेसन अनुसार स्वचालित रूपमा UI र आइकनहरू लोड गर्न सक्छ र यन्त्र TSL लाई पूर्ण रूपमा प्रदर्शन गर्न सक्छ।
पूर्वका लागिampले, यदि रेनमेकर SDK-प्रदान गरिएको पूर्वमा स्मार्ट लाइट बनाइएको छampतर, प्रावधान पूरा भएपछि बल्ब लाइटको आइकन र UI स्वचालित रूपमा लोड हुनेछ। प्रयोगकर्ताहरूले इन्टरफेस मार्फत प्रकाशको रंग र चमक परिवर्तन गर्न सक्छन् र एलेक्सा स्मार्ट होम स्किल वा गुगल स्मार्ट होम एक्शनहरू तिनीहरूको ESP रेनमेकर खाताहरूमा लिङ्क गरेर तेस्रो-पक्ष नियन्त्रण प्राप्त गर्न सक्छन्। चित्र 3.4 ले प्रतिमा र UI पूर्व देखाउँछampएलेक्सा, गुगल होम, र ESP रेनमेकर एपमा क्रमशः बल्ब लाइट।

24 ESP32-C3 वायरलेस साहसिक: IoT को लागि एक व्यापक गाइड

(a) उदाampले - एलेक्सा

(b) उदाample - गुगल होम

(c) उदाample - ESP RainMaker
चित्र ४ उदाampAlexa, Google Home, र ESP RainMaker एपमा बल्ब लाइटको आइकन र UI
3.3 अभ्यास: ESP RainMaker सँग विकास गर्नका लागि मुख्य बुँदाहरू
एक पटक यन्त्र चालक तह पूरा भएपछि, विकासकर्ताहरूले TSL मोडेलहरू सिर्जना गर्न र RainMaker SDK द्वारा उपलब्ध गराइएका API हरू प्रयोग गरेर डाउनलिङ्क डेटा प्रशोधन गर्न र उत्पादन परिभाषा र आवश्यकताहरूको आधारमा ESP RainMaker आधारभूत सेवाहरू सक्षम गर्न सुरु गर्न सक्छन्।
अध्याय 3. ESP रेनमेकर 25 को परिचय

यस पुस्तकको खण्ड 9.4 ले RainMaker मा LED स्मार्ट लाइटको कार्यान्वयनको व्याख्या गर्नेछ। डिबगिङको क्रममा, विकासकर्ताहरूले स्मार्ट लाइट (वा Swagger बाट REST APIs कल गर्नुहोस्) सँग सञ्चार गर्न RainMaker SDK मा CLI उपकरणहरू प्रयोग गर्न सक्छन्।
अध्याय १० ले स्मार्टफोन एप्लिकेसनहरू विकास गर्न REST API को प्रयोगलाई विस्तार गर्नेछ। LED स्मार्ट लाइटहरूको OTA अपग्रेडहरू अध्याय 10 मा समावेश गरिनेछ। यदि विकासकर्ताहरूले ESP इनसाइट्स रिमोट निगरानी सक्षम पारेका छन् भने, ESP RainMaker व्यवस्थापन ब्याकइन्डले ESP इनसाइट्स डेटा प्रदर्शन गर्नेछ। विवरणहरू अध्याय 11 मा प्रस्तुत गरिनेछ।
ESP RainMaker ले निजी परिनियोजनलाई समर्थन गर्दछ, जुन सार्वजनिक RainMaker सर्भरबाट निम्न तरिकामा फरक हुन्छ:
दावी सेवा निजी तैनातीहरूमा प्रमाणपत्रहरू उत्पन्न गर्न, दावी गर्नुको सट्टा RainMaker Admin CLI प्रयोग गर्न आवश्यक छ। सार्वजनिक सर्भरको साथ, विकासकर्ताहरूलाई फर्मवेयर अपग्रेड लागू गर्न प्रशासक अधिकारहरू दिइनुपर्छ, तर यो व्यावसायिक तैनातीमा अवांछनीय छ। तसर्थ, न त स्व-दावीको लागि छुट्टै प्रमाणीकरण सेवा प्रदान गर्न सकिँदैन, न त होस्ट संचालित वा सहायक दाबीका लागि व्यवस्थापक अधिकारहरू।
फोन एपहरू निजी डिप्लोइमेन्टहरूमा, खाता प्रणालीहरू अन्तरसञ्चालनयोग्य छैनन् भनी सुनिश्चित गर्नका लागि अनुप्रयोगहरूलाई अलग-अलग कन्फिगर र कम्पाइल गर्न आवश्यक छ।
तेस्रो पक्ष लगइनहरू र आवाज एकीकरण विकासकर्ताहरूले तेस्रो पक्ष लगइनहरू, साथै एलेक्सा स्किल र Google भ्वाइस सहायक एकीकरण सक्षम गर्न Google र Apple विकासकर्ता खाताहरू मार्फत अलग-अलग कन्फिगर गर्नुपर्छ।
टिप्स क्लाउड डिप्लोइमेन्टको बारेमा विवरणहरूको लागि, कृपया https://customer.rainmaker.espressif मा जानुहोस्। com। फर्मवेयरको सन्दर्भमा, सार्वजनिक सर्भरबाट निजी सर्भरमा माइग्रेसनको लागि मात्र यन्त्र प्रमाणपत्रहरू प्रतिस्थापन गर्न आवश्यक छ, जसले माइग्रेसन दक्षतामा ठूलो सुधार गर्छ र माइग्रेसन र माध्यमिक डिबगिङको लागत घटाउँछ।
3.4 ESP RainMaker को सुविधाहरू
ESP RainMaker सुविधाहरू मुख्य रूपमा तीन पक्षहरूमा लक्षित छन् - प्रयोगकर्ता व्यवस्थापन, अन्त प्रयोगकर्ताहरू, र प्रशासकहरू। सबै सुविधाहरू सार्वजनिक र निजी सर्भरहरूमा समर्थित छन् जबसम्म अन्यथा भनिएको छैन।
3.4.1 प्रयोगकर्ता व्यवस्थापन
प्रयोगकर्ता व्यवस्थापन सुविधाहरूले अन्त प्रयोगकर्ताहरूलाई दर्ता गर्न, लग इन गर्न, पासवर्डहरू परिवर्तन गर्न, पासवर्डहरू पुन: प्राप्त गर्न, आदि अनुमति दिन्छ।
26 ESP32-C3 वायरलेस साहसिक: IoT को लागि एक व्यापक गाइड

दर्ता गर्नुहोस् र लग इन गर्नुहोस् RainMaker द्वारा समर्थित दर्ता र लगइन विधिहरू समावेश छन्: · इमेल आईडी + पासवर्ड · फोन नम्बर + पासवर्ड · Google खाता · Apple खाता · GitHub खाता (सार्वजनिक सर्भर मात्र) · Amazon खाता (निजी सर्भर मात्र)
नोट गुगल/अमेजन प्रयोग गरेर साइन अप गर्नुहोस् प्रयोगकर्ताको इमेल ठेगाना रेनमेकरसँग साझेदारी गर्दछ। एप्पल प्रयोग गरेर साइन अप गर्नुहोस् एक डमी ठेगाना साझा गर्दछ जुन एप्पलले प्रयोगकर्ताका लागि विशेष गरी रेनमेकर सेवाको लागि प्रदान गर्दछ। पहिलो पटक Google, Apple, वा Amazon खातामा साइन इन गर्ने प्रयोगकर्ताहरूका लागि RainMaker खाता स्वचालित रूपमा सिर्जना हुनेछ।
पासवर्ड परिवर्तन गर्नुहोस् ईमेल आईडी/फोन नम्बर आधारित लगइनहरूको लागि मात्र मान्य। पासवर्ड परिवर्तन भएपछि अन्य सबै सक्रिय सत्रहरू लग आउट हुनेछन्। AWS Cognito व्यवहार अनुसार, लग-आउट सत्रहरू 1 घण्टा सम्म सक्रिय रहन सक्छन्।
इमेल आईडी/फोन नम्बरमा आधारित लगइनका लागि मात्रै मान्य पासवर्ड पुन: प्राप्त गर्नुहोस्।
3.4.2 अन्तिम प्रयोगकर्ता सुविधाहरू
अन्त प्रयोगकर्ताहरूका लागि खुल्ला सुविधाहरूमा स्थानीय र रिमोट कन्ट्रोल र निगरानी, ​​समयतालिका, उपकरण समूहीकरण, उपकरण साझेदारी, पुश सूचनाहरू, र तेस्रो-पक्ष एकीकरणहरू समावेश छन्।
रिमोट कन्ट्रोल र निगरानी · क्वेरी कन्फिगरेसन, प्यारामिटर मानहरू, र एक वा सबै उपकरणहरूको लागि जडान स्थिति। · एकल वा धेरै यन्त्रहरूको लागि प्यारामिटरहरू सेट गर्नुहोस्।
स्थानीय नियन्त्रण र निगरानी मोबाइल फोन र उपकरण स्थानीय नियन्त्रणको लागि एउटै नेटवर्कमा जडान गर्न आवश्यक छ।
समयतालिका · प्रयोगकर्ताहरूले निश्चित समयमा निश्चित कार्यहरू पूर्व-सेट गर्छन्। · तालिका कार्यान्वयन गर्दा उपकरणको लागि कुनै इन्टरनेट जडान आवश्यक छैन। · एकल वा धेरै यन्त्रहरूको लागि एक पटक वा दोहोर्याउनुहोस् (निर्दिष्ट दिनहरू द्वारा)।
यन्त्र समूहीकरणले बहु-स्तर सार समूहीकरणलाई समर्थन गर्दछ समूह मेटाडेटा गृह कोठा संरचना सिर्जना गर्न प्रयोग गर्न सकिन्छ।
अध्याय 3. ESP रेनमेकर 27 को परिचय

उपकरण साझेदारी एक वा धेरै यन्त्रहरू एक वा धेरै प्रयोगकर्ताहरूसँग साझेदारी गर्न सकिन्छ।
पुश सूचनाहरू अन्त प्रयोगकर्ताहरूले घटनाहरूका लागि पुश सूचनाहरू प्राप्त गर्नेछन् जस्तै · नयाँ यन्त्र(हरू) थपिएको/हटाइयो · यन्त्र क्लाउडमा जडान भयो · यन्त्र क्लाउडबाट विच्छेदन गरियो · यन्त्र साझेदारी अनुरोधहरू सिर्जना गरियो/स्वीकार गरियो/अस्वीकार गरियो · यन्त्रहरूद्वारा रिपोर्ट गरिएका अलर्ट सन्देशहरू
तेस्रो पक्षीय एकीकरण एलेक्सा र गुगल भ्वाइस सहायकले लाइट, स्विच, सकेट, फ्यान र तापमान सेन्सरहरू सहित रेनमेकर उपकरणहरू नियन्त्रण गर्न समर्थित छन्।
3.4.3 व्यवस्थापक सुविधाहरू
प्रशासक सुविधाहरूले प्रशासकहरूलाई उपकरण दर्ता, उपकरण समूहीकरण, र OTA अपग्रेडहरू लागू गर्न अनुमति दिन्छ, र view तथ्याङ्क र ESP अन्तर्दृष्टि डाटा।
उपकरण दर्ता उपकरण प्रमाणपत्रहरू उत्पन्न गर्नुहोस् र व्यवस्थापक CLI (निजी सर्भर मात्र) सँग दर्ता गर्नुहोस्।
उपकरण समूहीकरण उपकरण जानकारी (निजी सर्भर मात्र) मा आधारित सार वा संरचित समूहहरू सिर्जना गर्नुहोस्।
ओभर-द-एयर (OTA) अपग्रेड गर्दछ संस्करण र मोडेलमा आधारित फर्मवेयर अपलोड गर्नुहोस्, एक वा धेरै उपकरणहरूमा वा समूह मनिटर, रद्द गर्नुहोस्, वा OTA कार्यहरू संग्रह गर्नुहोस्।
View तथ्याङ्क Viewसक्षम तथ्याङ्कहरू समावेश छन्: · उपकरण दर्ताहरू (प्रशासकद्वारा दर्ता गरिएको प्रमाणपत्रहरू) · उपकरण सक्रियताहरू (पहिलो पटक जडान गरिएको उपकरण) · प्रयोगकर्ता खाताहरू · प्रयोगकर्ता-उपकरण संघ
View ESP अन्तर्दृष्टि डाटा Viewसक्षम ESP अन्तर्दृष्टि डेटामा समावेश छ: · त्रुटिहरू, चेतावनीहरू, र अनुकूलन लगहरू · क्र्यास रिपोर्टहरू र विश्लेषण · रिबुट कारणहरू · मेट्रिक्स जस्तै मेमोरी उपयोग, RSSI, आदि। अनुकूलन मेट्रिक्स र चरहरू
28 ESP32-C3 वायरलेस साहसिक: IoT को लागि एक व्यापक गाइड

3.5 सारांश
यस अध्यायमा, हामीले सार्वजनिक रेनमेकर डिप्लोइमेन्ट र निजी डिप्लोइमेन्ट बीच केही मुख्य भिन्नताहरू प्रस्तुत गरेका छौं। Espressif द्वारा सुरु गरिएको निजी ESP RainMaker समाधान अत्यधिक भरपर्दो र विस्तारयोग्य छ। सबै ESP32 श्रृंखला चिपहरू जडान गरिएको छ र AWS मा अनुकूलन गरिएको छ, जसले लागतलाई धेरै कम गर्छ। AWS क्लाउड उत्पादनहरू बारे जान्न बिना विकासकर्ताहरूले प्रोटोटाइप प्रमाणिकरणमा ध्यान केन्द्रित गर्न सक्छन्। हामीले ESP RainMaker को कार्यान्वयन र सुविधाहरू, र प्लेटफर्म प्रयोग गरेर विकासका लागि केही मुख्य बुँदाहरू पनि व्याख्या गरेका छौं।
एन्ड्रोइडका लागि ESP RainMaker डाउनलोड गर्न स्क्यान गर्नुहोस् iOS को लागि ESP RainMaker डाउनलोड गर्न स्क्यान गर्नुहोस्
अध्याय 3. ESP रेनमेकर 29 को परिचय

30 ESP32-C3 वायरलेस साहसिक: IoT को लागि एक व्यापक गाइड

अध्याय 4 विकास वातावरण स्थापना
यो अध्याय ESP-IDF मा केन्द्रित छ, ESP32-C3 को लागि आधिकारिक सफ्टवेयर विकास फ्रेमवर्क। हामी कसरी विभिन्न अपरेटिङ सिस्टमहरूमा वातावरण सेटअप गर्ने, र ESP-IDF को परियोजना संरचना र निर्माण प्रणाली, साथै सम्बन्धित विकास उपकरणहरूको प्रयोगको परिचय दिनेछौं। त्यसपछि हामी पूर्वको कम्पाइलिङ र चलिरहेको प्रक्रिया प्रस्तुत गर्नेछौंample परियोजना, प्रत्येक s मा आउटपुट लग को विस्तृत व्याख्या प्रदान गर्दाtage.
4.1 ESP-IDF ओभरview
ESP-IDF (Espressif IoT विकास फ्रेमवर्क) Espressif टेक्नोलोजी द्वारा प्रदान गरिएको एक-स्टप IoT विकास फ्रेमवर्क हो। यसले C/C++ लाई मुख्य विकास भाषाको रूपमा प्रयोग गर्दछ र लिनक्स, म्याक र विन्डोज जस्ता मुख्यधारा अपरेटिङ सिस्टमहरू अन्तर्गत क्रस-कम्पाइलेशनलाई समर्थन गर्दछ। पूर्वampयस पुस्तकमा समावेश गरिएका कार्यक्रमहरू ESP-IDF प्रयोग गरी विकास गरिएका छन्, जसले निम्न सुविधाहरू प्रदान गर्दछ: · SoC प्रणाली-स्तर चालकहरू। ESP-IDF मा ESP32, ESP32-S2, ESP32-C3,
र अन्य चिप्स। यी ड्राइभरहरूले परिधीय निम्न स्तर (LL) पुस्तकालय, हार्डवेयर एब्स्ट्रेक्शन लेयर (HAL) पुस्तकालय, RTOS समर्थन र माथिल्लो तह चालक सफ्टवेयर, आदि समावेश गर्दछ। · आवश्यक घटकहरू। ESP-IDF ले IoT विकासको लागि आवश्यक आधारभूत घटकहरू समावेश गर्दछ। यसमा HTTP र MQTT जस्ता धेरै नेटवर्क प्रोटोकल स्ट्याकहरू, गतिशील फ्रिक्वेन्सी मोड्युलेसनको साथ पावर व्यवस्थापन ढाँचा, र Flash Encryption र Secure Boot, आदि जस्ता सुविधाहरू समावेश छन्। · विकास र उत्पादन उपकरणहरू। ESP-IDF ले विकास र ठूलो उत्पादन (चित्र ४.१ हेर्नुहोस्) को समयमा निर्माण, फ्ल्यास, र डिबगिङका लागि सामान्यतया प्रयोग हुने उपकरणहरू प्रदान गर्दछ, जस्तै CMake मा आधारित निर्माण प्रणाली, GCC मा आधारित क्रस-कम्पाइलेशन उपकरण श्रृंखला, र JTAG OpenOCD, आदिमा आधारित डिबगिङ उपकरण। ESP-IDF कोडले मुख्य रूपमा Apache 2.0 खुला स्रोत इजाजतपत्रलाई पालना गर्छ भन्ने कुरा ध्यान दिन लायक छ। प्रयोगकर्ताहरूले खुला स्रोत इजाजतपत्रका सर्तहरूको पालना गर्दा प्रतिबन्ध बिना व्यक्तिगत वा व्यावसायिक सफ्टवेयर विकास गर्न सक्छन्। थप रूपमा, प्रयोगकर्ताहरूलाई नि:शुल्क स्थायी प्याटेन्ट इजाजतपत्रहरू प्रदान गरिन्छ, स्रोत कोडमा गरिएको कुनै पनि परिमार्जनहरू खुला स्रोतको दायित्व बिना।
31

चित्र १।

निर्माण, फ्ल्यासिङ, र डिबग-

विकास र ठूलो उत्पादनको लागि ging उपकरण

4.1.1 ESP-IDF संस्करणहरू
ESP-IDF कोड GitHub मा खुला स्रोत परियोजनाको रूपमा होस्ट गरिएको छ। हाल, त्यहाँ तीन प्रमुख संस्करणहरू उपलब्ध छन्: v3, v4, र v5। प्रत्येक प्रमुख संस्करणमा सामान्यतया विभिन्न सबवर्सनहरू समावेश हुन्छन्, जस्तै v4.2, v4.3, र यस्तै। Espressif Systems ले प्रत्येक रिलीज गरिएको उप-संस्करणको लागि बग समाधान र सुरक्षा प्याचहरूको लागि 30-महिना समर्थन सुनिश्चित गर्दछ। तसर्थ, v4.3.1, v4.2.2, आदि जस्ता सबवर्सनहरूको संशोधनहरू पनि नियमित रूपमा जारी गरिन्छ। तालिका 4.1 ले Espressif चिप्सका लागि विभिन्न ESP-IDF संस्करणहरूको समर्थन स्थिति देखाउँछ, तिनीहरू पूर्वमा छन् कि छैनन् भनी संकेत गर्दछ।view stage (पूर्वको लागि समर्थन प्रदान गर्दैview संस्करणहरू, जसमा निश्चित सुविधाहरू वा कागजातहरूको अभाव हुन सक्छ) वा आधिकारिक रूपमा समर्थित छन्।

तालिका ४.१। Espressif चिप्सका लागि विभिन्न ESP-IDF संस्करणहरूको समर्थन स्थिति

श्रृंखला ESP32 ESP32-S2 ESP32-C3 ESP32-S3 ESP32-C2 ESP32-H2

v4.1 समर्थित

v4.2 समर्थित समर्थित

v4.3 समर्थित समर्थित समर्थित

v4.4 समर्थित समर्थित समर्थित समर्थित
पूर्वview

v5.0 समर्थित समर्थित समर्थित समर्थित समर्थित समर्थित पूर्वview

32 ESP32-C3 वायरलेस साहसिक: IoT को लागि एक व्यापक गाइड

प्रमुख संस्करणहरूको पुनरावृत्तिमा प्राय: फ्रेमवर्क संरचनामा समायोजन र संकलन प्रणालीमा अद्यावधिकहरू समावेश हुन्छन्। पूर्वका लागिampले, v3.* बाट v4.* मा प्रमुख परिवर्तन मेक बाट CMake मा बिल्ड प्रणालीको क्रमिक माइग्रेसन थियो। अर्कोतर्फ, साना संस्करणहरूको पुनरावृत्तिले सामान्यतया नयाँ सुविधाहरूको थप वा नयाँ चिपहरूको लागि समर्थन समावेश गर्दछ।
स्थिर संस्करणहरू र GitHub शाखाहरू बीचको सम्बन्धलाई छुट्याउन र बुझ्न महत्त्वपूर्ण छ। v*.* वा v*max को रूपमा लेबल गरिएका संस्करणहरूले स्थिर संस्करणहरू प्रतिनिधित्व गर्दछ जसले Espressif द्वारा पूर्ण आन्तरिक परीक्षण पास गरेको छ। एक पटक निश्चित भएपछि, कोड, उपकरण चेन, र उही संस्करणको लागि जारी कागजातहरू अपरिवर्तित रहन्छन्। यद्यपि, GitHub शाखाहरू (जस्तै, रिलीज/v4.3 शाखा) बारम्बार कोड कमिटहरू, प्राय: दैनिक आधारमा। तसर्थ, एउटै शाखा अन्तर्गत दुई कोड स्निपेटहरू फरक हुन सक्छन्, विकासकर्ताहरूलाई तुरुन्तै तिनीहरूको कोड तदनुसार अद्यावधिक गर्न आवश्यक छ।
4.1.2 ESP-IDF Git कार्यप्रवाह
Espressif ले ESP-IDF को लागि एक विशिष्ट Git कार्यप्रवाह पछ्याउँछ, निम्नानुसार उल्लिखित:
· मुख्य विकास शाखाको रूपमा काम गर्ने मास्टर शाखामा नयाँ परिवर्तनहरू गरिएका छन्। मास्टर शाखामा रहेको ESP-IDF संस्करणले सधैं एक -dev बोक्छ tag यो हाल विकास अन्तर्गत छ भनेर संकेत गर्न, जस्तै v4.3-dev। मास्टर शाखामा परिवर्तनहरू पहिले पुन: हुनेछviewed र Espressif को आन्तरिक भण्डारमा परीक्षण गरियो, र त्यसपछि स्वचालित परीक्षण पूरा भएपछि GitHub मा धकेलियो।
· नयाँ संस्करणले मास्टर शाखामा सुविधा विकास पूरा गरेपछि र बिटा परीक्षणमा प्रवेश गर्ने मापदण्डहरू पूरा गरेपछि, यो रिलीज/ v4.3 जस्ता नयाँ शाखामा ट्रान्जिसन हुन्छ। साथै, यो नयाँ शाखा हो tagged लाई पूर्व-रिलीज संस्करणको रूपमा, जस्तै v4.3-beta1। विकासकर्ताहरूले शाखाहरूको पूर्ण सूची पहुँच गर्न GitHub प्लेटफर्ममा सन्दर्भ गर्न सक्छन् र tags ESP-IDF को लागि। बिटा संस्करण (पूर्व-रिलीज संस्करण) मा अझै पनि ज्ञात समस्याहरूको एक महत्वपूर्ण संख्या हुन सक्छ भनेर ध्यान दिन महत्त्वपूर्ण छ। बिटा संस्करण निरन्तर परीक्षणबाट गुज्रिरहेकोले, बग समाधानहरू यस संस्करण र मास्टर शाखा दुवैमा एकै साथ थपिन्छन्। यसैबीच, मास्टर शाखाले अर्को संस्करणको लागि नयाँ सुविधाहरू विकास गर्न थालेको हुन सक्छ। जब परीक्षण लगभग पूरा हुन्छ, एक विमोचन उम्मेद्वार (rc) लेबल शाखामा थपिएको छ, यो v4.3-rc1 जस्तै आधिकारिक विमोचन को लागी एक सम्भावित उम्मेद्वार हो भनेर संकेत गर्दछ। यसैमा एसtagई, शाखा एक पूर्व-रिलीज संस्करण रहन्छ।
· यदि कुनै प्रमुख बगहरू फेला परेन वा रिपोर्ट गरिएको छैन भने, पूर्व-रिलीज संस्करणले अन्ततः प्रमुख संस्करण लेबल (जस्तै, v5.0) वा सानो संस्करण लेबल (जस्तै, v4.3) प्राप्त गर्दछ र आधिकारिक रिलीज संस्करण हुन्छ, जुन दस्तावेज गरिएको छ। विमोचन नोट पृष्ठमा। पछि, यस संस्करणमा पहिचान गरिएका कुनै पनि बगहरू रिलीज शाखामा फिक्स गरिएका छन्। म्यानुअल परीक्षण पूरा भएपछि, शाखालाई बग-फिक्स संस्करण लेबल (जस्तै, v4.3.2) तोकिएको छ, जुन रिलीज नोट पृष्ठमा पनि प्रतिबिम्बित हुन्छ।
अध्याय ४. विकास वातावरण स्थापना गर्ने ३३

4.1.3 उपयुक्त संस्करण छनोट गर्दै
ESP-IDF ले आधिकारिक रूपमा संस्करण v32 बाट ESP3-C4.3 लाई समर्थन गर्न थालेपछि, र v4.4 यो पुस्तक लेख्ने समयमा आधिकारिक रूपमा जारी गरिएको छैन, यस पुस्तकमा प्रयोग गरिएको संस्करण v4.3.2 हो, जुन संशोधित संस्करण हो। v4.3 को। जे होस्, यो नोट गर्नु महत्त्वपूर्ण छ कि तपाईंले यो पुस्तक पढ्नुहुँदा, v4.4 वा नयाँ संस्करणहरू पहिले नै उपलब्ध हुन सक्छन्। संस्करण चयन गर्दा, हामी निम्न सिफारिस गर्छौं:
· प्रविष्टि-स्तर विकासकर्ताहरूको लागि, यो स्थिर v4.3 संस्करण वा यसको संशोधित संस्करण छनोट गर्न सल्लाह दिइन्छ, जुन पूर्वसँग पङ्क्तिबद्ध हुन्छ।ampयो पुस्तकमा प्रयोग गरिएको संस्करण।
· ठूलो उत्पादन उद्देश्यका लागि, सबैभन्दा नवीनतम प्राविधिक समर्थनबाट फाइदा लिनको लागि नवीनतम स्थिर संस्करण प्रयोग गर्न सिफारिस गरिन्छ।
· यदि तपाइँ नयाँ चिपहरू प्रयोग गर्न वा नयाँ उत्पादन सुविधाहरू अन्वेषण गर्न चाहनुहुन्छ भने, कृपया मास्टर शाखा प्रयोग गर्नुहोस्। नवीनतम संस्करणमा सबै नवीनतम सुविधाहरू समावेश छन्, तर ध्यान राख्नुहोस् कि त्यहाँ ज्ञात वा अज्ञात बगहरू हुन सक्छ।
· यदि स्थिर संस्करण प्रयोग भइरहेको छ भने इच्छित नयाँ सुविधाहरू समावेश गर्दैन र तपाईं मास्टर शाखासँग सम्बन्धित जोखिमहरू कम गर्न चाहनुहुन्छ भने, रिलिज/v4.4 शाखा जस्ता सम्बन्धित रिलीज शाखा प्रयोग गर्ने विचार गर्नुहोस्। Espressif को GitHub रिपोजिटरीले पहिले रिलीज/v4.4 शाखा सिर्जना गर्नेछ र त्यसपछि सबै सुविधाहरू विकास र परीक्षण पूरा गरेपछि यस शाखाको विशिष्ट ऐतिहासिक स्न्यापसटमा आधारित स्थिर v4.4 संस्करण जारी गर्नेछ।
१.१ ओभरview ESP-IDF SDK निर्देशिका को
ESP-IDF SDK मा दुई मुख्य डाइरेक्टरीहरू हुन्छन्: esp-idf र .espressif। पहिलेको ESP-IDF भण्डारको स्रोत कोड समावेश छ files र संकलन लिपिहरू, जबकि पछिल्लोले मुख्य रूपमा संकलन उपकरण चेनहरू र अन्य सफ्टवेयरहरू भण्डार गर्दछ। यी दुई डाइरेक्टरीहरूसँग परिचितताले विकासकर्ताहरूलाई उपलब्ध स्रोतहरूको राम्रो प्रयोग गर्न र विकास प्रक्रियालाई गति दिन मद्दत गर्नेछ। ESP-IDF को निर्देशिका संरचना तल वर्णन गरिएको छ:
(1) ESP-IDF रिपोजिटरी कोड डाइरेक्टरी (/esp/esp-idf), चित्र 4.2 मा देखाइएको छ।
a कम्पोनेन्ट डाइरेक्टरी कम्पोनेन्टहरू
यो कोर डाइरेक्टरीले ESP-IDF को धेरै आवश्यक सफ्टवेयर कम्पोनेन्टहरू एकीकृत गर्दछ। यस डाइरेक्टरी भित्रका कम्पोनेन्टहरूमा भरोसा नगरी कुनै पनि प्रोजेक्ट कोड कम्पाइल गर्न सकिँदैन। यसले विभिन्न Espressif चिप्सका लागि चालक समर्थन समावेश गर्दछ। LL पुस्तकालय र HAL पुस्तकालय इन्टरफेसहरू परिधीयहरूका लागि माथिल्लो-स्तर ड्राइभर र भर्चुअल File प्रणाली (VFS) लेयर समर्थन, विकासकर्ताहरूले उनीहरूको विकास आवश्यकताहरूको लागि विभिन्न स्तरहरूमा उपयुक्त कम्पोनेन्टहरू छनौट गर्न सक्छन्। ESP-IDF ले धेरै मानक नेटवर्क प्रोटोकल स्ट्याकहरू जस्तै TCP/IP, HTTP, MQTT, समर्थन गर्दछ। Webसकेट, आदि। विकासकर्ताहरूले नेटवर्क अनुप्रयोगहरू निर्माण गर्न सकेट जस्ता परिचित इन्टरफेसहरू प्रयोग गर्न सक्छन्। कम्पोनेन्टहरूले बुझाउँछ-
34 ESP32-C3 वायरलेस साहसिक: IoT को लागि एक व्यापक गाइड

चित्र ४.२। ESP-IDF भण्डार कोड निर्देशिका
sive कार्यक्षमता र सजिलैसँग अनुप्रयोगहरूमा एकीकृत गर्न सकिन्छ, विकासकर्ताहरूलाई व्यापार तर्कमा मात्र ध्यान केन्द्रित गर्न अनुमति दिँदै। केही सामान्य कम्पोनेन्टहरू समावेश छन्: · ड्राइभर: यो कम्पोनेन्टले विभिन्न Espressif का लागि परिधीय ड्राइभर कार्यक्रमहरू समावेश गर्दछ।
चिप शृङ्खलाहरू, जस्तै GPIO, I2C, SPI, UART, LEDC (PWM), आदि। यस कम्पोनेन्टमा परिधीय ड्राइभर कार्यक्रमहरूले चिप-स्वतन्त्र अमूर्त इन्टरफेसहरू प्रस्ताव गर्दछ। प्रत्येक परिधीय एक साझा हेडर छ file (जस्तै gpio.h), विभिन्न चिप-विशिष्ट समर्थन प्रश्नहरूसँग व्यवहार गर्ने आवश्यकतालाई हटाउँदै। · esp_wifi: Wi-Fi, एक विशेष परिधीको रूपमा, एक अलग घटकको रूपमा व्यवहार गरिन्छ। यसले धेरै API हरू समावेश गर्दछ जस्तै विभिन्न Wi-Fi ड्राइभर मोडहरूको प्रारम्भिकरण, प्यारामिटर कन्फिगरेसन, र घटना प्रशोधन। यस कम्पोनेन्टका निश्चित कार्यहरू स्थिर लिङ्क पुस्तकालयहरूको रूपमा प्रदान गरिन्छ। ESP-IDF ले प्रयोगको सजिलोको लागि व्यापक चालक कागजातहरू पनि प्रदान गर्दछ।
अध्याय ४. विकास वातावरण स्थापना गर्ने ३३

· freertos: यो घटक पूर्ण FreeRTOS कोड समावेश गर्दछ। यस अपरेटिङ सिस्टमको लागि व्यापक समर्थन प्रदान गर्नुको अलावा, Espressif ले डुअल-कोर चिपहरूमा आफ्नो समर्थन विस्तार गरेको छ। ESP32 र ESP32-S3 जस्ता डुअल-कोर चिपहरूको लागि, प्रयोगकर्ताहरूले विशिष्ट कोरहरूमा कार्यहरू सिर्जना गर्न सक्छन्।
b कागजात निर्देशिका कागजात
यस डाइरेक्टरीले ESP-IDF सम्बन्धित विकास कागजातहरू समावेश गर्दछ, जसमा गेट स्टार्ट गाइड, एपीआई सन्दर्भ म्यानुअल, विकास गाइड, आदि।
नोट स्वचालित उपकरणहरू द्वारा कम्पाइल गरिसकेपछि, यस डाइरेक्टरीका सामग्रीहरू https://docs.espressif.com/projects/esp-idf मा तैनात गरिन्छ। कृपया कागजात लक्ष्यलाई ESP32-C3 मा स्विच गर्न र निर्दिष्ट ESP-IDF संस्करण चयन गर्न सुनिश्चित गर्नुहोस्।
ग लिपि उपकरण उपकरण
यो डाइरेक्टरीले सामान्यतया प्रयोग हुने कम्पाइलेशन फ्रन्ट-एन्ड उपकरणहरू समावेश गर्दछ जस्तै idf.py, र मनिटर टर्मिनल उपकरण idf_monitor.py, आदि। उप-निर्देशिका cmake मा कोर लिपि पनि समावेश छ। fileसंकलन प्रणालीको s, ESP-IDF संकलन नियमहरू लागू गर्ने आधारको रूपमा सेवा गर्दै। वातावरण चरहरू थप्दा, idf.py लाई परियोजना मार्ग अन्तर्गत सीधा कार्यान्वयन गर्न अनुमति दिँदै, उपकरण डाइरेक्टरी भित्रका सामग्रीहरू प्रणाली वातावरण चरमा थपिन्छन्।
d उदाहरणampले कार्यक्रम निर्देशिका पूर्वampलेस
यस डाइरेक्टरीमा ESP-IDF पूर्वको विशाल संग्रह समावेश छample कार्यक्रमहरू जसले कम्पोनेन्ट API को प्रयोग प्रदर्शन गर्दछ। पूर्वampलेसहरू तिनीहरूको कोटीहरूमा आधारित विभिन्न उपनिर्देशिकाहरूमा व्यवस्थित छन्:
· शुरुवात गर्नुहोस्: यो उप-निर्देशिकाले प्रविष्टि-स्तर पूर्व समावेश गर्दछampप्रयोगकर्ताहरूलाई आधारभूत कुराहरू बुझ्न मद्दत गर्न "hello world" र "blink" जस्ता।
· ब्लुटुथ: तपाइँ ब्लुटुथ सम्बन्धित पूर्व फेला पार्न सक्नुहुन्छamples यहाँ, ब्लुटुथ LE मेष, ब्लुटुथ LE HID, BluFi, र थप सहित।
· wifi: यो उप-निर्देशिकाले Wi-Fi पूर्वमा केन्द्रित छamples, Wi-Fi SoftAP, Wi-Fi स्टेशन, espnow, साथै स्वामित्व संचार प्रोटोकल जस्तै आधारभूत कार्यक्रमहरू सहितampEspressif बाट। यसले धेरै अनुप्रयोग तहहरू पनि समावेश गर्दछamples Wi-Fi मा आधारित, जस्तै Iperf, Sniffer, र Smart Config।
· परिधीयहरू: यो व्यापक उप-निर्देशिकालाई परिधीय नामहरूमा आधारित धेरै उपफोल्डरहरूमा विभाजन गरिएको छ। यसले मुख्यतया परिधीय चालक पूर्व समावेश गर्दछamples Espressif चिप्सका लागि, प्रत्येक पूर्वको साथampले धेरै उप-पूर्व विशेषताampलेस। उदाहरणका लागि, gpio उप-निर्देशिकाले दुई पूर्व समावेश गर्दछamples: GPIO र GPIO म्याट्रिक्स किबोर्ड। यो नोट गर्न महत्त्वपूर्ण छ कि सबै पूर्व होइनampयस डाइरेक्टरीमा les ESP32-C3 मा लागू हुन्छ।
36 ESP32-C3 वायरलेस साहसिक: IoT को लागि एक व्यापक गाइड

पूर्वका लागिampले, पूर्वamples in usb/host USB होस्ट हार्डवेयर (जस्तै ESP32-S3) भएको परिधिमा मात्र लागू हुन्छ, र ESP32-C3 मा यो परिधीय छैन। सङ्कलन प्रणालीले लक्ष्य सेट गर्दा सामान्यतया प्रम्प्टहरू प्रदान गर्दछ। README file प्रत्येक पूर्व कोampले समर्थित चिपहरू सूचीबद्ध गर्दछ। · प्रोटोकलहरू: यस उप-निर्देशिकाले पूर्व समावेश गर्दछampMQTT, HTTP, HTTP सर्भर, PPPoS, Modbus, mDNS, SNTP सहित विभिन्न संचार प्रोटोकलहरूका लागि, संचार प्रोटोकल पूर्वको विस्तृत दायरालाई कभर गर्दैampIoT विकासको लागि आवश्यक छ। · प्रावधान: यहाँ, तपाईंले प्रावधान पूर्व फेला पार्नुहुनेछampविभिन्न विधिहरूको लागि les, जस्तै Wi-Fi प्रावधान र ब्लुटुथ LE प्रावधान। · प्रणाली: यस उप-निर्देशिकाले प्रणाली डिबगिङ पूर्व समावेश गर्दछampलेस (जस्तै, स्ट्याक ट्रेसिङ, रनटाइम ट्रेसिङ, कार्य निगरानी), पावर व्यवस्थापन पूर्वampलेस (जस्तै, विभिन्न निद्रा मोडहरू, सह-प्रोसेसरहरू), र पूर्वampसामान्य प्रणाली कम्पोनेन्टहरू जस्तै कन्सोल टर्मिनल, घटना लुप, र प्रणाली टाइमरसँग सम्बन्धित। · भण्डारण: यस उप-निर्देशिका भित्र, तपाईंले पूर्व पत्ता लगाउनुहुनेछampसबैमा file ESP-IDF द्वारा समर्थित प्रणाली र भण्डारण संयन्त्रहरू (जस्तै फ्ल्यास, SD कार्ड र अन्य भण्डारण मिडियाको पढ्ने र लेख्ने), साथै पूर्वampगैर-अस्थिर भण्डारण (NVS), FatFS, SPIFFS र अन्य file प्रणाली सञ्चालन। · सुरक्षा: यस उप-निर्देशिकाले पूर्व समावेश गर्दछampफ्लैश एन्क्रिप्शनसँग सम्बन्धित। (2) ESP-IDF संकलन उपकरण चेन डाइरेक्टरी (/.espressif), चित्र 4.3 मा देखाइए अनुसार।
चित्र ४.३। ESP-IDF संकलन उपकरण श्रृंखला निर्देशिका
अध्याय ४. विकास वातावरण स्थापना गर्ने ३३

a सफ्टवेयर वितरण निर्देशिका जि
ESP-IDF उपकरण चेन र अन्य सफ्टवेयरहरू संकुचित प्याकेजहरूको रूपमा वितरण गरिन्छ। स्थापना प्रक्रियाको समयमा, स्थापना उपकरणले पहिले डिस्ट डाइरेक्टरीमा संकुचित प्याकेज डाउनलोड गर्दछ, र त्यसपछि निर्दिष्ट डाइरेक्टरीमा निकाल्छ। एक पटक स्थापना पूरा भएपछि, यस डाइरेक्टरीमा भएका सामग्रीहरू सुरक्षित रूपमा हटाउन सकिन्छ।
b पाइथन भर्चुअल वातावरण निर्देशिका पाइथन env
ESP-IDF का विभिन्न संस्करणहरू Python प्याकेजहरूको विशिष्ट संस्करणहरूमा निर्भर हुन्छन्। यी प्याकेजहरू सिधै एउटै होस्टमा स्थापना गर्दा प्याकेज संस्करणहरू बीच विवाद उत्पन्न हुन सक्छ। यसलाई सम्बोधन गर्न, ESP-IDF ले विभिन्न प्याकेज संस्करणहरूलाई अलग गर्न पाइथन भर्चुअल वातावरणहरू प्रयोग गर्दछ। यस संयन्त्रको साथ, विकासकर्ताहरूले एउटै होस्टमा ESP-IDF को बहु संस्करणहरू स्थापना गर्न सक्छन् र विभिन्न वातावरण चरहरू आयात गरेर सजिलैसँग तिनीहरू बीच स्विच गर्न सक्छन्।
ग ESP-IDF संकलन उपकरण श्रृंखला निर्देशिका उपकरण
यस डाइरेक्टरीमा मुख्यतया ESP-IDF परियोजनाहरू कम्पाइल गर्न आवश्यक पर्ने क्रस-कम्पाइलेशन उपकरणहरू समावेश गर्दछ, जस्तै CMake उपकरणहरू, निन्जा निर्माण उपकरणहरू, र अन्तिम कार्यान्वयनयोग्य कार्यक्रम उत्पन्न गर्ने gcc उपकरण श्रृंखला। थप रूपमा, यस डाइरेक्टरीले सम्बन्धित हेडरको साथ C/C++ भाषाको मानक पुस्तकालय राख्छ। files यदि प्रोग्रामले प्रणाली हेडरलाई सन्दर्भ गर्दछ file जस्तै #include , संकलन उपकरण चेनले stdio.h पत्ता लगाउनेछ file यस निर्देशिका भित्र।
4.2 ESP-IDF विकास वातावरण स्थापना गर्दै
ESP-IDF विकास वातावरणले Windows, Linux, र macOS जस्ता मुख्यधारा अपरेटिङ सिस्टमहरूलाई समर्थन गर्दछ। यस खण्डले प्रत्येक प्रणालीमा विकास वातावरण कसरी सेटअप गर्ने भनेर परिचय गर्नेछ। लिनक्स प्रणालीमा ESP32-C3 विकास गर्न सिफारिस गरिएको छ, जुन यहाँ विस्तारमा प्रस्तुत गरिनेछ। विकास उपकरणहरूको समानताको कारण धेरै निर्देशनहरू प्लेटफर्महरूमा लागू हुन्छन्। तसर्थ, यो खण्डको सामग्री ध्यानपूर्वक पढ्न सल्लाह दिइन्छ।
नोट तपाईंले https://bookc3.espressif.com/esp32c3 मा उपलब्ध अनलाइन कागजातहरूलाई सन्दर्भ गर्न सक्नुहुन्छ, जसले यस खण्डमा उल्लेख गरिएका आदेशहरू प्रदान गर्दछ।
४.२.१ लिनक्समा ESP-IDF विकास वातावरण सेटअप गर्दै
ESP-IDF विकास वातावरणको लागि आवश्यक GNU विकास र डिबगिङ उपकरणहरू लिनक्स प्रणालीको मूल हुन्। थप रूपमा, लिनक्समा कमांड-लाइन टर्मिनल शक्तिशाली र प्रयोगकर्ता-अनुकूल छ, यसलाई ESP32-C3 विकासको लागि एक आदर्श विकल्प बनाउँदै। तिमी सक्छौ
38 ESP32-C3 वायरलेस साहसिक: IoT को लागि एक व्यापक गाइड

आफ्नो मनपर्ने लिनक्स वितरण चयन गर्नुहोस्, तर हामी Ubuntu वा अन्य Debianbased प्रणालीहरू प्रयोग गर्न सिफारिस गर्छौं। यस खण्डले Ubuntu 20.04 मा ESP-IDF विकास वातावरण सेटअप गर्न मार्गदर्शन प्रदान गर्दछ।
1. आवश्यक प्याकेजहरू स्थापना गर्नुहोस्
नयाँ टर्मिनल खोल्नुहोस् र सबै आवश्यक प्याकेजहरू स्थापना गर्न निम्न आदेश कार्यान्वयन गर्नुहोस्। आदेशले स्वचालित रूपमा प्याकेजहरू छोड्नेछ जुन पहिले नै स्थापित छ।
$ sudo apt-get install git wget flex bison gperf python3 python3-pip python3setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
TIPS तपाईंले माथिको आदेशको लागि प्रशासक खाता र पासवर्ड प्रयोग गर्न आवश्यक छ। पूर्वनिर्धारित रूपमा, पासवर्ड प्रविष्ट गर्दा कुनै जानकारी प्रदर्शित हुनेछैन। प्रक्रिया जारी राख्न केवल "Enter" कुञ्जी थिच्नुहोस्।
Git ESP-IDF मा एक प्रमुख कोड व्यवस्थापन उपकरण हो। विकास वातावरण सफलतापूर्वक सेटअप गरेपछि, तपाईं git लग आदेश प्रयोग गर्न सक्नुहुन्छ view ESP-IDF को सिर्जना पछि सबै कोड परिवर्तनहरू। थप रूपमा, Git संस्करण जानकारी पुष्टि गर्न ESP-IDF मा पनि प्रयोग गरिन्छ, जुन विशेष संस्करणहरूसँग सम्बन्धित सही उपकरण श्रृंखला स्थापना गर्न आवश्यक छ। Git सँगसँगै, अन्य महत्त्वपूर्ण प्रणाली उपकरणहरूमा पाइथन समावेश छ। ESP-IDF ले पाइथनमा लेखिएका धेरै स्वचालन स्क्रिप्टहरू समावेश गर्दछ। CMake, Ninja-build, र Ccache जस्ता उपकरणहरू C/C++ परियोजनाहरूमा व्यापक रूपमा प्रयोग गरिन्छ र ESP-IDF मा पूर्वनिर्धारित कोड संकलन र निर्माण उपकरणहरूको रूपमा सेवा गर्दछ। libusb-1.0-0 र dfu-util USB सिरियल कम्युनिकेसन र फर्मवेयर बर्निङका लागि प्रयोग हुने मुख्य ड्राइभरहरू हुन्। सफ्टवेयर प्याकेजहरू स्थापना भएपछि, तपाइँ प्रत्येक प्याकेजको विस्तृत विवरणहरू प्राप्त गर्न apt show आदेश प्रयोग गर्न सक्नुहुन्छ। पूर्वका लागिampले, Git उपकरणको लागि विवरण जानकारी छाप्न apt show git प्रयोग गर्नुहोस्।
प्रश्न: पाइथन संस्करण समर्थित छैन भने के गर्ने? A: ESP-IDF v4.3 लाई पाइथन संस्करण चाहिन्छ जुन v3.6 भन्दा कम छैन। Ubuntu को पुरानो संस्करणहरूको लागि, कृपया म्यानुअल रूपमा पाइथनको उच्च संस्करण डाउनलोड र स्थापना गर्नुहोस् र Python3 लाई पूर्वनिर्धारित पाइथन वातावरणको रूपमा सेट गर्नुहोस्। तपाईले खोजशब्द अपडेट-विकल्प पाइथन खोजी गरेर विस्तृत निर्देशनहरू पाउन सक्नुहुन्छ।
2. ESP-IDF भण्डार कोड डाउनलोड गर्नुहोस्
टर्मिनल खोल्नुहोस् र mkdir आदेश प्रयोग गरेर तपाईंको गृह डाइरेक्टरीमा esp नामक फोल्डर सिर्जना गर्नुहोस्। यदि तपाई चाहानुहुन्छ भने तपाईले फोल्डरको लागि फरक नाम रोज्न सक्नुहुन्छ। फोल्डर प्रविष्ट गर्न cd आदेश प्रयोग गर्नुहोस्।
अध्याय ४. विकास वातावरण स्थापना गर्ने ३३

$ mkdir -p /esp $ cd /esp
ESP-IDF भण्डार कोड डाउनलोड गर्न git clone आदेश प्रयोग गर्नुहोस्, तल देखाइएको रूपमा:
$ git clone -b v4.3.2 -recursive https://github.com/espressif/esp-idf.git
माथिको आदेशमा, प्यारामिटर -b v4.3.2 डाउनलोड गर्न संस्करण निर्दिष्ट गर्दछ (यस अवस्थामा, संस्करण 4.3.2)। प्यारामिटर -पुनरावर्तीले सुनिश्चित गर्दछ कि ESP-IDF को सबै उप-भंडारहरू पुनरावर्ती डाउनलोड हुन्छन्। उप-भण्डारको बारेमा जानकारी .gitmodules मा पाउन सकिन्छ file.
3. ESP-IDF विकास उपकरण चेन स्थापना गर्नुहोस्
Espressif ले उपकरण श्रृंखला डाउनलोड र स्थापना गर्न स्वचालित स्क्रिप्ट install.sh प्रदान गर्दछ। यो स्क्रिप्टले हालको ESP-IDF संस्करण र अपरेटिङ सिस्टम वातावरण जाँच गर्छ, र त्यसपछि पाइथन उपकरण प्याकेजहरू र संकलन उपकरण चेनहरूको उपयुक्त संस्करण डाउनलोड र स्थापना गर्दछ। उपकरण श्रृंखलाको लागि पूर्वनिर्धारित स्थापना मार्ग /.espressif हो। तपाईले गर्नु पर्ने भनेको esp-idf डाइरेक्टरीमा नेभिगेट गर्नु र install.sh चलाउनु हो।
$ cd /esp/esp-idf $ ./install.sh
यदि तपाईंले उपकरण श्रृंखला सफलतापूर्वक स्थापना गर्नुभयो भने, टर्मिनलले प्रदर्शन गर्नेछ:
सबै सकियो!
यस बिन्दुमा, तपाईंले सफलतापूर्वक ESP-IDF विकास वातावरण सेटअप गर्नुभयो।
4.2.2 Windows मा ESP-IDF विकास वातावरण सेटअप गर्दै
1. डाउनलोड गर्नुहोस् ESP-IDF उपकरण स्थापनाकर्ता
टिप्स Windows 10 वा माथिको ESP-IDF विकास वातावरण सेटअप गर्न सिफारिस गरिन्छ। तपाईं https://dl.espressif.com/dl/esp-idf/ बाट स्थापनाकर्ता डाउनलोड गर्न सक्नुहुन्छ। स्थापनाकर्ता पनि खुला स्रोत सफ्टवेयर हो, र यसको स्रोत कोड हुन सक्छ viewएड https://github.com/espressif/idf-installer मा।
· अनलाइन ESP-IDF उपकरण स्थापनाकर्ता
यो स्थापनाकर्ता अपेक्षाकृत सानो छ, आकारमा लगभग 4 MB छ, र अन्य प्याकेजहरू र कोड स्थापना प्रक्रियाको समयमा डाउनलोड गरिनेछ। एडभानtagअनलाइन स्थापनाकर्ताको e भनेको स्थापना प्रक्रियाको क्रममा सफ्टवेयर प्याकेजहरू र कोडहरू मागमा डाउनलोड गर्न मात्र नभई ESP-IDF र GitHub कोडको नवीनतम शाखा (जस्तै मास्टर शाखा) को सबै उपलब्ध रिलीजहरू स्थापना गर्न पनि अनुमति दिन्छ। । हानिtage यो हो कि यसलाई स्थापना प्रक्रियाको क्रममा नेटवर्क जडान चाहिन्छ, जसले नेटवर्क समस्याहरूको कारण स्थापना असफल हुन सक्छ।
40 ESP32-C3 वायरलेस साहसिक: IoT को लागि एक व्यापक गाइड

· अफलाइन ESP-IDF उपकरण स्थापनाकर्ता यो स्थापनाकर्ता ठूलो छ, आकारमा लगभग 1 GB छ, र वातावरण सेटअपको लागि आवश्यक सबै सफ्टवेयर प्याकेजहरू र कोड समावेश गर्दछ। मुख्य अडानtagअफलाइन स्थापनाकर्ताको e यो हो कि यो इन्टरनेट पहुँच बिना कम्प्युटरहरूमा प्रयोग गर्न सकिन्छ, र सामान्यतया उच्च स्थापना सफलता दर छ। यो ध्यान दिनुपर्छ कि अफलाइन स्थापनाकर्ताले v*.* वा v*×द्वारा पहिचान गरिएको ESP-IDF को स्थिर रिलीजहरू मात्र स्थापना गर्न सक्छ।
2. स्थापनाकर्ताको उपयुक्त संस्करण डाउनलोड गरेपछि ESP-IDF उपकरण स्थापनाकर्ता चलाउनुहोस् (पूर्वको लागि ESP-IDF उपकरणहरू अफलाइन 4.3.2 लिनुहोस्।ample यहाँ), exe मा डबल क्लिक गर्नुहोस् file ESP-IDF स्थापना इन्टरफेस सुरु गर्न। निम्नले अफलाइन स्थापनाकर्ता प्रयोग गरी ESP-IDF स्थिर संस्करण v4.3.2 कसरी स्थापना गर्ने भनेर देखाउँछ।
(१) चित्र ४.४ मा देखाइएको "स्थापना भाषा चयन गर्नुहोस्" इन्टरफेसमा, ड्रप-डाउन सूचीबाट प्रयोग गरिने भाषा चयन गर्नुहोस्।
चित्र ४.४। "स्थापना भाषा चयन गर्नुहोस्" इन्टरफेस (२) भाषा चयन गरेपछि, "लाइसेन्स सम्झौता" इन्टरफेस पप अप गर्न "ठीक छ" मा क्लिक गर्नुहोस्।
(चित्र ४.५ हेर्नुहोस्)। स्थापना इजाजतपत्र सम्झौतालाई ध्यानपूर्वक पढेपछि, "म सम्झौता स्वीकार गर्दछु" चयन गर्नुहोस् र "अर्को" मा क्लिक गर्नुहोस्।
चित्र ४.५। "लाइसेन्स सम्झौता" इन्टरफेस अध्याय 4.5. विकास वातावरण सेटअप 4

(२) रिview "पूर्व-स्थापना प्रणाली जाँच" इन्टरफेसमा प्रणाली कन्फिगरेसन (चित्र ४.६ हेर्नुहोस्)। Windows संस्करण र स्थापित एन्टिभाइरस सफ्टवेयर जानकारी जाँच गर्नुहोस्। यदि सबै कन्फिगरेसन वस्तुहरू सामान्य छन् भने "अर्को" मा क्लिक गर्नुहोस्। अन्यथा, तपाईंले मुख्य वस्तुहरूमा आधारित समाधानहरूको लागि "पूर्ण लग" मा क्लिक गर्न सक्नुहुन्छ।
चित्र ४.६। "स्थापना अघि प्रणाली जाँच" इन्टरफेस TIPS
तपाईंले मद्दतको लागि https://github.com/espressif/idf-installer/issues मा लगहरू पेश गर्न सक्नुहुन्छ। (4) ESP-IDF स्थापना निर्देशिका चयन गर्नुहोस्। यहाँ, मा देखाइएको अनुसार D:/.espressif चयन गर्नुहोस्
चित्र 4.7, र "अर्को" मा क्लिक गर्नुहोस्। कृपया ध्यान दिनुहोस् कि .espressif यहाँ लुकेको डाइरेक्टरी हो। स्थापना पूरा भएपछि, तपाईं सक्नुहुन्छ view खोलेर यस डाइरेक्टरीको विशिष्ट सामग्रीहरू file प्रबन्धक र लुकेका वस्तुहरू प्रदर्शन गर्दै।
चित्र ४.७। ESP-IDF स्थापना निर्देशिका 4.7 ESP42-C32 वायरलेस साहसिक: IoT को लागि एक व्यापक गाइड चयन गर्नुहोस्

(5) चित्र 4.8 मा देखाइए अनुसार स्थापना गर्न आवश्यक घटकहरू जाँच गर्नुहोस्। यो पूर्वनिर्धारित विकल्प प्रयोग गर्न सिफारिस गरिएको छ, त्यो हो, स्थापना पूरा गर्नुहोस्, र त्यसपछि "अर्को" क्लिक गर्नुहोस्।
चित्र ४.८। स्थापना गर्नका लागि कम्पोनेन्टहरू चयन गर्नुहोस् (६) स्थापना गर्नका लागि कम्पोनेन्टहरू पुष्टि गर्नुहोस् र स्वचालित रूपमा सुरु गर्न "स्थापना गर्नुहोस्" मा क्लिक गर्नुहोस्।
चित्र 4.9 मा देखाइए अनुसार स्टेलेसन प्रक्रिया। स्थापना प्रक्रिया दसौं मिनेट सम्म रहन सक्छ र स्थापना प्रक्रियाको प्रगति पट्टी चित्र 4.10 मा देखाइएको छ। धैर्यपूर्वक प्रतीक्षा गर्नुहोस्।
चित्र ४.९। स्थापनाको लागि तयारी गर्दै (4.9) स्थापना पूरा भएपछि, "ESP-IDF दर्ता गर्नुहोस्" जाँच गर्न सिफारिस गरिन्छ।
विन्डोज डिफेन्डर बहिष्कारको रूपमा उपकरणहरू कार्यान्वयनयोग्य ..." एन्टिभाइरस सफ्टवेयर मेटाउनबाट रोक्नको लागि files बहिष्करण वस्तुहरू थप्दा एन्टिभाइरस द्वारा बारम्बार स्क्यानहरू पनि छोड्न सक्छ
अध्याय ४. विकास वातावरण स्थापना गर्ने ३३

चित्र 4.10। स्थापना प्रगति पट्टी सफ्टवेयर, विन्डोज प्रणालीको कोड संकलन दक्षतामा धेरै सुधार गर्दै। विकास वातावरणको स्थापना पूरा गर्न "समाप्त" मा क्लिक गर्नुहोस्, चित्र 4.11 मा देखाइएको छ। तपाईं "ESP-IDF PowerShell वातावरण चलाउनुहोस्" वा "ESP-IDF कमाण्ड प्रम्प्ट चलाउनुहोस्" जाँच गर्न छनौट गर्न सक्नुहुन्छ। विकास वातावरण सामान्य रूपमा कार्य गर्दछ भनेर सुनिश्चित गर्न स्थापना पछि सीधा संकलन विन्डो चलाउनुहोस्।
चित्र 4.11। स्थापना सम्पन्न भयो (८) कार्यक्रम सूचीमा स्थापित विकास वातावरण खोल्नुहोस् (कि त ESP-IDF 8)
CMD वा ESP-IDF 4.3 PowerShell टर्मिनल, चित्र 4.12 मा देखाइए अनुसार), र टर्मिनलमा चल्दा ESP-IDF वातावरण चर स्वचालित रूपमा थपिनेछ। त्यस पछि, तपाइँ अपरेशनहरूको लागि idf.py आदेश प्रयोग गर्न सक्नुहुन्छ। खोलिएको ESP-IDF 4.3 CMD चित्र 4.13 मा देखाइएको छ। 44 ESP32-C3 ताररहित साहसिक: IoT को लागि एक व्यापक गाइड

चित्र ४.१२। विकास वातावरण स्थापित
चित्र ४.१३। ESP-IDF 4.13 CMD
४.२.३ म्याकमा ESP-IDF विकास वातावरण सेटअप गर्दै
म्याक प्रणालीमा ESP-IDF विकास वातावरण स्थापना गर्ने प्रक्रिया लिनक्स प्रणालीमा जस्तै हो। रिपोजिटरी कोड डाउनलोड गर्न र उपकरण श्रृंखला स्थापना गर्न आदेशहरू ठ्याक्कै उस्तै छन्। निर्भरता प्याकेजहरू स्थापना गर्नका लागि केवल आदेशहरू थोरै फरक छन्। 1. निर्भरता प्याकेजहरू स्थापना गर्नुहोस् टर्मिनल खोल्नुहोस्, र पाइप स्थापना गर्नुहोस्, पाइथन प्याकेज व्यवस्थापन उपकरण, निम्न आदेश चलाएर:
% sudo सजिलो स्थापना पाइप
Homebrew स्थापना गर्नुहोस्, macOS को लागि प्याकेज व्यवस्थापन उपकरण, निम्न आदेश चलाएर:
% /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ HEAD/install.sh)"
निम्न आदेश चलाएर आवश्यक निर्भरता प्याकेजहरू स्थापना गर्नुहोस्:
% brew python3 install cmake ninja ccache dfu-util
2. ESP-IDF रिपोजिटरी कोड डाउनलोड गर्नुहोस् ESP-IDF रिपोजिटरी कोड डाउनलोड गर्न सेक्सन 4.2.1 मा प्रदान गरिएका निर्देशनहरू पालना गर्नुहोस्। चरणहरू लिनक्स प्रणालीमा डाउनलोड गर्नका लागि समान छन्।
अध्याय ४. विकास वातावरण स्थापना गर्ने ३३

3. ESP-IDF विकास उपकरण चेन स्थापना गर्नुहोस्
ESP-IDF विकास उपकरण चेन स्थापना गर्न खण्ड 4.2.1 मा प्रदान गरिएका निर्देशनहरू पालना गर्नुहोस्। चरणहरू लिनक्स प्रणालीमा स्थापनाको लागि समान छन्।
4.2.4 VS कोड स्थापना गर्दै
पूर्वनिर्धारित रूपमा, ESP-IDF SDK ले कोड सम्पादन उपकरण समावेश गर्दैन (यद्यपि Windows को लागि नवीनतम ESP-IDF स्थापनाकर्ताले ESP-IDF Eclipse स्थापना गर्ने विकल्प प्रदान गर्दछ)। तपाईंले कोड सम्पादन गर्न र त्यसपछि टर्मिनल आदेशहरू प्रयोग गरेर कम्पाइल गर्न आफ्नो मनपर्ने कुनै पनि पाठ सम्पादन उपकरण प्रयोग गर्न सक्नुहुन्छ।
एक लोकप्रिय कोड सम्पादन उपकरण VS कोड (भिजुअल स्टुडियो कोड) हो, जुन प्रयोगकर्ता-अनुकूल इन्टरफेसको साथ एक नि: शुल्क र सुविधायुक्त कोड सम्पादक हो। यसले विभिन्न प्रस्ताव गर्दछ plugins जसले कोड नेभिगेसन, सिन्ट्याक्स हाइलाइटिङ, Git संस्करण नियन्त्रण, र टर्मिनल एकीकरण जस्ता कार्यक्षमताहरू प्रदान गर्दछ। थप रूपमा, Espressif ले VS कोडको लागि Espressif IDF भनिने समर्पित प्लगइन विकास गरेको छ, जसले परियोजना कन्फिगरेसन र डिबगिङलाई सरल बनाउँछ।
VS Code मा हालको फोल्डर तुरुन्तै खोल्न टर्मिनलमा कोड आदेश प्रयोग गर्न सक्नुहुन्छ। वैकल्पिक रूपमा, तपाइँ VS कोड भित्र प्रणालीको पूर्वनिर्धारित टर्मिनल कन्सोल खोल्नको लागि सर्टकट Ctrl+ प्रयोग गर्न सक्नुहुन्छ।
TIPS ESP32-C3 कोड विकासको लागि VS कोड प्रयोग गर्न सिफारिस गरिन्छ। https://code.visualstudio.com/ मा VS कोडको नवीनतम संस्करण डाउनलोड र स्थापना गर्नुहोस्।
४.२.५ तेस्रो-पक्ष विकास वातावरणको परिचय
आधिकारिक ESP-IDF विकास वातावरणको अतिरिक्त, जसले मुख्य रूपमा C भाषा प्रयोग गर्दछ, ESP32-C3 ले अन्य मुख्यधारा प्रोग्रामिङ भाषाहरू र तेस्रो-पक्ष विकास वातावरणको विस्तृत श्रृंखलालाई पनि समर्थन गर्दछ। केहि उल्लेखनीय विकल्पहरू समावेश छन्:
Arduino: ESP32-C3 सहित विभिन्न माइक्रोकन्ट्रोलरहरूलाई समर्थन गर्ने हार्डवेयर र सफ्टवेयर दुवैको लागि खुला स्रोत प्लेटफर्म।
यसले C++ भाषा प्रयोग गर्दछ र एक सरलीकृत र मानकीकृत API प्रदान गर्दछ, जसलाई सामान्यतया Arduino भाषा भनिन्छ। Arduino प्रोटोटाइप विकास र शैक्षिक सन्दर्भहरूमा व्यापक रूपमा प्रयोग गरिन्छ। यसले एक्स्टेन्सिबल सफ्टवेयर प्याकेज र एक IDE प्रदान गर्दछ जसले सजिलो संकलन र फ्ल्यासिङको लागि अनुमति दिन्छ।
MicroPython: एम्बेडेड माइक्रोकन्ट्रोलर प्लेटफर्महरूमा चलाउन डिजाइन गरिएको पाइथन 3 भाषा अनुवादक।
सरल लिपि भाषाको साथ, यसले ESP32-C3 को परिधीय स्रोतहरू (जस्तै UART, SPI, र I2C) र संचार प्रकार्यहरू (जस्तै Wi-Fi र ब्लुटुथ LE) मा सीधै पहुँच गर्न सक्छ।
46 ESP32-C3 वायरलेस साहसिक: IoT को लागि एक व्यापक गाइड

यसले हार्डवेयर अन्तरक्रियालाई सरल बनाउँछ। MicroPython, पाइथनको व्यापक गणितीय सञ्चालन पुस्तकालयसँग मिलेर, ESP32-C3 मा जटिल एल्गोरिदमहरू कार्यान्वयन गर्न सक्षम बनाउँछ, AI-सम्बन्धित अनुप्रयोगहरूको विकासलाई सहज बनाउँछ। लिपि भाषाको रूपमा, दोहोर्याइएको संकलनको आवश्यकता छैन; परिमार्जन गर्न सकिन्छ र लिपिहरू सीधा कार्यान्वयन गर्न सकिन्छ।
NodeMCU: ESP श्रृंखला चिप्सका लागि विकसित गरिएको LUA भाषा अनुवादक।
यसले ESP चिप्सको लगभग सबै परिधीय प्रकार्यहरूलाई समर्थन गर्दछ र MicroPython भन्दा हल्का छ। MicroPython जस्तै, NodeMCU ले स्क्रिप्ट भाषा प्रयोग गर्दछ, दोहोर्याइएको संकलनको आवश्यकतालाई हटाउँदै।
यसबाहेक, ESP32-C3 ले NuttX र Zephyr अपरेटिङ सिस्टमलाई पनि समर्थन गर्दछ। NuttX एक वास्तविक-समय अपरेटिङ सिस्टम हो जसले POSIX-कम्प्याटिबल इन्टरफेसहरू प्रदान गर्दछ, अनुप्रयोग पोर्टेबिलिटी बढाउँदै। Zephyr एउटा सानो वास्तविक समय अपरेटिङ सिस्टम हो जुन विशेष गरी IoT अनुप्रयोगहरूको लागि डिजाइन गरिएको हो। यसले IoT विकासमा आवश्यक पर्ने धेरै सफ्टवेयर पुस्तकालयहरू समावेश गर्दछ, बिस्तारै एक व्यापक सफ्टवेयर इकोसिस्टममा विकसित हुँदै।
यस पुस्तकले माथि उल्लिखित विकास वातावरणको लागि विस्तृत स्थापना निर्देशनहरू प्रदान गर्दैन। तपाईं सम्बन्धित कागजातहरू र निर्देशनहरू पालना गरेर आफ्नो आवश्यकताहरूमा आधारित विकास वातावरण स्थापना गर्न सक्नुहुन्छ।
4.3 ESP-IDF संकलन प्रणाली
४.३.१ संकलन प्रणालीको आधारभूत अवधारणाहरू
एक ESP-IDF परियोजना प्रविष्टि प्रकार्य र बहु ​​​​स्वतन्त्र कार्यात्मक घटकहरू भएको मुख्य कार्यक्रमको संग्रह हो। पूर्वका लागिample, LED स्विचहरू नियन्त्रण गर्ने परियोजनामा ​​मुख्यतया एन्ट्री प्रोग्राम मुख्य र GPIO नियन्त्रण गर्ने ड्राइभर कम्पोनेन्ट हुन्छ। यदि तपाइँ LED रिमोट कन्ट्रोल महसुस गर्न चाहनुहुन्छ भने, तपाइँले Wi-Fi, TCP/IP प्रोटोकल स्ट्याक, आदि पनि थप्न आवश्यक छ।
संकलन प्रणाली कम्पाइल, लिङ्क, र कार्यान्वयन योग्य उत्पन्न गर्न सक्छ files (.bin) निर्माण नियमहरूको सेट मार्फत कोडको लागि। ESP-IDF v4.0 र माथिका संस्करणहरूको संकलन प्रणाली पूर्वनिर्धारित रूपमा CMake मा आधारित छ, र संकलन लिपि CMakeLists.txt कोडको संकलन व्यवहार नियन्त्रण गर्न प्रयोग गर्न सकिन्छ। CMake को आधारभूत सिन्ट्याक्सलाई समर्थन गर्नुको अतिरिक्त, ESP-IDF संकलन प्रणालीले पूर्वनिर्धारित संकलन नियमहरू र CMake प्रकार्यहरूको सेट पनि परिभाषित गर्दछ, र तपाइँ सरल कथनहरूको साथ संकलन लिपि लेख्न सक्नुहुन्छ।
4.3.2 परियोजना File संरचना
एउटा परियोजना एउटा फोल्डर हो जसमा प्रविष्टि कार्यक्रम मुख्य, प्रयोगकर्ता-परिभाषित घटकहरू, र files कार्यान्वयन योग्य अनुप्रयोगहरू निर्माण गर्न आवश्यक छ, जस्तै संकलन लिपि, कन्फिगरेसन
अध्याय ४. विकास वातावरण स्थापना गर्ने ३३

files, विभाजन तालिकाहरू, आदि परियोजनाहरू प्रतिलिपि गर्न र पास गर्न सकिन्छ, र उही कार्यान्वयनयोग्य file ESP-IDF विकास वातावरणको समान संस्करणको साथ मेसिनहरूमा कम्पाइल र उत्पन्न गर्न सकिन्छ। एक विशिष्ट ESP-IDF परियोजना file संरचना चित्र 4.14 मा देखाइएको छ।
चित्र ४.१४। विशिष्ट ESP-IDF परियोजना file ESP-IDF ले ESP32, ESP32-S शृङ्खला, ESP32-C शृङ्खला, ESP32-H शृङ्खला, इत्यादि सहित Espressif बाट बहु IoT चिपहरूलाई समर्थन गर्ने भएकोले, कोड कम्पाइल गर्नु अघि लक्ष्य निर्धारण गर्न आवश्यक छ। लक्ष्य दुवै हार्डवेयर उपकरण हो जसले अनुप्रयोग कार्यक्रम चलाउँछ र संकलन प्रणालीको निर्माण लक्ष्य हो। तपाइँको आवश्यकताहरु मा निर्भर गर्दछ, तपाइँ तपाइँको परियोजना को लागी एक वा बढी लक्ष्य निर्दिष्ट गर्न सक्नुहुन्छ। पूर्वका लागिample, आदेश idf.py सेट-लक्ष्य esp32c3 मार्फत, तपाइँ ESP32-C3 मा संकलन लक्ष्य सेट गर्न सक्नुहुन्छ, जुन समयमा ESP32C3 को लागि पूर्वनिर्धारित प्यारामिटरहरू र संकलन उपकरण चेन पथ लोड हुनेछ। संकलन पछि, एक कार्यान्वयन योग्य कार्यक्रम ESP32C3 को लागि उत्पन्न गर्न सकिन्छ। तपाईले फरक लक्ष्य सेट गर्न आदेश सेट-लक्ष्य पुन: चलाउन सक्नुहुन्छ, र संकलन प्रणाली स्वचालित रूपमा सफा र पुन: कन्फिगर हुनेछ। अवयवहरू
ESP-IDF मा कम्पोनेन्टहरू संकलन प्रणाली भित्र व्यवस्थित मोड्युलर र स्वतन्त्र कोड एकाइहरू हुन्। तिनीहरू फोल्डरहरूको रूपमा व्यवस्थित छन्, फोल्डर नामले पूर्वनिर्धारित रूपमा घटक नाम प्रतिनिधित्व गर्दछ। प्रत्येक कम्पोनेन्टको आफ्नै संकलन स्क्रिप्ट छ कि 48 ESP32-C3 वायरलेस साहसिक: IoT को लागि एक व्यापक गाइड

यसको संकलन प्यारामिटर र निर्भरता निर्दिष्ट गर्दछ। संकलन प्रक्रियाको बखत, कम्पोनेन्टहरूलाई अलग-अलग स्थिर पुस्तकालयहरूमा कम्पाइल गरिन्छ (.a files) र अन्ततः अन्य कम्पोनेन्टहरूसँग मिलाएर आवेदन कार्यक्रम बनाउन।
ESP-IDF ले आवश्यक कार्यहरू प्रदान गर्दछ, जस्तै अपरेटिङ सिस्टम, परिधीय ड्राइभरहरू, र नेटवर्क प्रोटोकल स्ट्याक, कम्पोनेन्टको रूपमा। यी कम्पोनेन्टहरू ESP-IDF रूट डाइरेक्टरी भित्र अवस्थित कम्पोनेन्ट डाइरेक्टरीमा भण्डारण गरिएका छन्। विकासकर्ताहरूले यी कम्पोनेन्टहरूलाई myProject को कम्पोनेन्ट डाइरेक्टरीमा प्रतिलिपि गर्न आवश्यक पर्दैन। यसको सट्टा, तिनीहरूले परियोजनाको CMakeLists.txt मा यी घटकहरूको निर्भरता सम्बन्धहरू निर्दिष्ट गर्न आवश्यक छ। file REQUIRES वा PRIV_REQUIRES निर्देशनहरू प्रयोग गर्दै। संकलन प्रणालीले स्वचालित रूपमा आवश्यक कम्पोनेन्टहरू पत्ता लगाउने र कम्पाइल गर्नेछ।
त्यसकारण, myProject अन्तर्गत कम्पोनेन्ट डाइरेक्टरी आवश्यक छैन। यो परियोजनाका केही अनुकूलन कम्पोनेन्टहरू समावेश गर्न मात्र प्रयोग गरिन्छ, जुन तेस्रो-पक्ष पुस्तकालयहरू वा प्रयोगकर्ता-परिभाषित कोड हुन सक्छ। थप रूपमा, कम्पोनेन्टहरू ESP-IDF वा हालको परियोजना बाहेक अन्य कुनै पनि डाइरेक्टरीबाट प्राप्त गर्न सकिन्छ, जस्तै अर्को डाइरेक्टरीमा बचत गरिएको खुला स्रोत परियोजनाबाट। यस अवस्थामा, तपाईंले रूट डाइरेक्टरी अन्तर्गत CMakeLists.txt मा EXTRA_COMPONENT_DIRS चर सेट गरेर घटकको पथ थप्न आवश्यक छ। यो डाइरेक्टरीले समान नामको कुनै पनि ESP-IDF कम्पोनेन्टलाई ओभरराइड गर्नेछ, सही कम्पोनेन्ट प्रयोग भएको सुनिश्चित गर्दै।
प्रविष्टि कार्यक्रम मुख्य परियोजना भित्रको मुख्य डाइरेक्टरी उही पछ्याउँछ file अन्य अवयवहरू जस्तै संरचना (जस्तै, घटक1)। यद्यपि, यो एक विशेष महत्व राख्छ किनकि यो एक अनिवार्य घटक हो जुन प्रत्येक परियोजनामा ​​अवस्थित हुनुपर्दछ। मुख्य डाइरेक्टरीले परियोजनाको स्रोत कोड र प्रयोगकर्ता कार्यक्रमको प्रविष्टि बिन्दु समावेश गर्दछ, सामान्यतया नाम app_main। पूर्वनिर्धारित रूपमा, प्रयोगकर्ता कार्यक्रमको कार्यान्वयन यस प्रविष्टि बिन्दुबाट सुरु हुन्छ। मुख्य कम्पोनेन्ट पनि फरक छ कि यो स्वचालित रूपमा खोज मार्ग भित्र सबै कम्पोनेन्टहरूमा निर्भर गर्दछ। त्यसैले, CMakeLists.txt मा REQUIRES वा PRIV_REQUIRES निर्देशनहरू प्रयोग गरेर निर्भरताहरू स्पष्ट रूपमा संकेत गर्न आवश्यक छैन। file.
कन्फिगरेसन file परियोजनाको मूल डाइरेक्टरीले कन्फिगरेसन समावेश गर्दछ file sdkconfig भनिन्छ, जसमा परियोजना भित्रका सबै कम्पोनेन्टहरूका लागि कन्फिगरेसन प्यारामिटरहरू समावेश हुन्छन्। sdkconfig file संकलन प्रणाली द्वारा स्वचालित रूपमा उत्पन्न हुन्छ र idf.py menuconfig आदेश द्वारा परिमार्जन र पुन: उत्पन्न गर्न सकिन्छ। मेनुकन्फिग विकल्पहरू मुख्यतया परियोजनाको Kconfig.projbuild र कम्पोनेन्टहरूको Kconfig बाट उत्पन्न हुन्छ। कम्पोनेन्ट विकासकर्ताहरूले कम्पोनेन्टलाई लचिलो र कन्फिगर योग्य बनाउन सामान्यतया Kconfig मा कन्फिगरेसन वस्तुहरू थप्छन्।
बिल्ड डाइरेक्टरी पूर्वनिर्धारित रूपमा, परियोजना भित्रको निर्माण डाइरेक्टरीले मध्यवर्ती भण्डार गर्दछ files र fi-
अध्याय ४. विकास वातावरण स्थापना गर्ने ३३

nal कार्यान्वयन योग्य प्रोग्रामहरू idf.py बिल्ड आदेश द्वारा उत्पन्न। सामान्यतया, निर्माण डाइरेक्टरीको सामग्रीहरू सीधै पहुँच गर्न आवश्यक छैन। ESP-IDF ले डाइरेक्टरीसँग अन्तर्क्रिया गर्न पूर्वनिर्धारित आदेशहरू प्रदान गर्दछ, जस्तै idf.py फ्लैश आदेश प्रयोग गरेर स्वचालित रूपमा कम्पाइल गरिएको बाइनरी पत्ता लगाउन। file र निर्दिष्ट फ्ल्यास ठेगानामा फ्ल्यास गर्नुहोस्, वा सम्पूर्ण निर्माण डाइरेक्टरी सफा गर्न idf.py fullclean आदेश प्रयोग गर्नुहोस्।
विभाजन तालिका (partitions.csv) प्रत्येक परियोजनालाई फ्ल्यासको स्पेस विभाजन गर्न र कार्यान्वयनयोग्य कार्यक्रम र प्रयोगकर्ता डाटा स्पेसको साइज र सुरु ठेगाना निर्दिष्ट गर्न विभाजन तालिका आवश्यक हुन्छ। आदेश idf.py फ्लैश वा OTA अपग्रेड कार्यक्रमले फर्मवेयरलाई यस तालिका अनुसार सम्बन्धित ठेगानामा फ्ल्यास गर्नेछ। ESP-IDF ले components/ partition_table मा धेरै पूर्वनिर्धारित विभाजन तालिकाहरू प्रदान गर्दछ, जस्तै partitions_singleapp.csv र partitions_two_ ota.csv, जुन मेनु कन्फिगरेसनमा चयन गर्न सकिन्छ।
यदि प्रणालीको पूर्वनिर्धारित विभाजन तालिकाले परियोजनाका आवश्यकताहरू पूरा गर्न सक्दैन भने, अनुकूलन partitions.csv परियोजना डाइरेक्टरीमा थप्न सकिन्छ र मेनु कन्फिगमा चयन गर्न सकिन्छ।
4.3.3 संकलन प्रणालीको पूर्वनिर्धारित निर्माण नियमहरू
एउटै नामका कम्पोनेन्टहरू ओभरराइड गर्ने नियमहरू कम्पोनेन्ट खोजी प्रक्रियाको क्रममा, कम्पाइलेशन प्रणालीले निश्चित क्रमलाई पछ्याउँछ। यसले पहिले ESP-IDF को आन्तरिक कम्पोनेन्टहरू खोज्छ, त्यसपछि प्रयोगकर्ता परियोजनाका कम्पोनेन्टहरू खोज्छ, र अन्तमा EXTRA_COMPONENT_DIRS मा कम्पोनेन्टहरू खोज्छ। मामिलाहरूमा जहाँ धेरै डाइरेक्टरीहरूले एउटै नामको कम्पोनेन्ट समावेश गर्दछ, अन्तिम डाइरेक्टरीमा फेला परेको कम्पोनेन्टले समान नामको कुनै पनि अघिल्लो कम्पोनेन्टलाई ओभरराइड गर्नेछ। यो नियमले मूल ESP-IDF कोड अक्षुण्ण राख्दै प्रयोगकर्ता परियोजना भित्र ESP-IDF कम्पोनेन्टहरू अनुकूलन गर्न अनुमति दिन्छ।
पूर्वनिर्धारित रूपमा सामान्य कम्पोनेन्टहरू समावेश गर्ने नियमहरू खण्ड 4.3.2 मा उल्लेख गरिए अनुसार, कम्पोनेन्टहरूले CMakeLists.txt मा अन्य कम्पोनेन्टहरूमा उनीहरूको निर्भरता स्पष्ट रूपमा निर्दिष्ट गर्न आवश्यक छ। यद्यपि, सामान्य कम्पोनेन्टहरू जस्तै freertos स्वचालित रूपमा निर्माण प्रणालीमा पूर्वनिर्धारित रूपमा समावेश हुन्छन्, तिनीहरूको निर्भरता सम्बन्धहरू संकलन लिपिमा स्पष्ट रूपमा परिभाषित नभए पनि। ESP-IDF साझा कम्पोनेन्टहरूमा freertos, Newlib, heap, log, soc, esp_rom, esp_common, xtensa/riscv, र cxx समावेश छन्। CMakeLists.txt लेख्दा यी सामान्य कम्पोनेन्टहरू प्रयोग गर्दा दोहोरिने कामहरूबाट बच्न सकिन्छ र यसलाई थप संक्षिप्त बनाउनुहोस्।
कन्फिगरेसन वस्तुहरू ओभरराइड गर्ने नियमहरू विकासकर्ताहरूले पूर्वनिर्धारित कन्फिगरेसन थपेर पूर्वनिर्धारित कन्फिगरेसन प्यारामिटरहरू थप्न सक्छन्। file नाम sdkconfig.defaults परियोजनामा। पूर्वका लागिampले, CONFIG_LOG_ थप्दै
50 ESP32-C3 वायरलेस साहसिक: IoT को लागि एक व्यापक गाइड

DEFAULT_LEVEL_NONE = y ले पूर्वनिर्धारित रूपमा लग डाटा प्रिन्ट नगर्न UART इन्टरफेस कन्फिगर गर्न सक्छ। यसबाहेक, यदि एक विशेष लक्ष्य, कन्फिगरेसनको लागि विशिष्ट प्यारामिटरहरू सेट गर्न आवश्यक छ file नाम sdkconfig.defaults.TARGET_NAME थप्न सकिन्छ, जहाँ TARGET_NAME esp32s2, esp32c3, र यस्तै हुन सक्छ। यी कन्फिगरेसनहरू files लाई सामान्य पूर्वनिर्धारित कन्फिगरेसनको साथ संकलनको क्रममा sdkconfig मा आयात गरिन्छ। file sdkconfig.defaults पहिले आयात गरिँदै, लक्ष्य-विशेष कन्फिगरेसन पछि file, जस्तै sdkconfig.defaults.esp32c3। मामिलाहरूमा जहाँ एउटै नामको साथ कन्फिगरेसन वस्तुहरू छन्, पछिल्लो कन्फिगरेसन file पहिलेलाई ओभरराइड गर्नेछ।
४.३.४ संकलन लिपिको परिचय
ESP-IDF प्रयोग गरेर परियोजना विकास गर्दा, विकासकर्ताहरूले स्रोत कोड मात्र लेख्नु पर्दैन तर परियोजना र कम्पोनेन्टहरूका लागि CMakeLists.txt पनि लेख्नुपर्छ। CMakeLists.txt एउटा पाठ हो file, कम्पाइलेशन स्क्रिप्टको रूपमा पनि चिनिन्छ, जसले संकलन वस्तुहरू, संकलन कन्फिगरेसन वस्तुहरू, र स्रोत कोडको संकलन प्रक्रियालाई मार्गदर्शन गर्न आदेशहरूको श्रृंखला परिभाषित गर्दछ। ESP-IDF v4.3.2 को संकलन प्रणाली CMake मा आधारित छ। नेटिभ CMake प्रकार्यहरू र आदेशहरूलाई समर्थन गर्नुको अतिरिक्त, यसले अनुकूलन कार्यहरूको श्रृंखला पनि परिभाषित गर्दछ, यसले संकलन लिपिहरू लेख्न धेरै सजिलो बनाउँछ।
ESP-IDF मा संकलन लिपिहरू मुख्यतया परियोजना संकलन लिपि र कम्पोनेन्ट संकलन लिपिहरू समावेश गर्दछ। परियोजनाको मूल डाइरेक्टरीमा रहेको CMakeLists.txt लाई परियोजना संकलन लिपि भनिन्छ, जसले सम्पूर्ण परियोजनाको संकलन प्रक्रियालाई मार्गदर्शन गर्दछ। आधारभूत परियोजना संकलन लिपिले सामान्यतया निम्न तीन रेखाहरू समावेश गर्दछ:
1. cmake_minimum_required(VERSION 3.5) 2. समावेश गर्नुहोस्($ENV{IDF_PATH}/tools/cmake/project.cmake) 3. परियोजना(myProject)
ती मध्ये, cmake_minimum_required (VERSION 3.5) लाई पहिलो लाइनमा राख्नु पर्छ, जुन परियोजनाको लागि आवश्यक न्यूनतम CMake संस्करण नम्बर संकेत गर्न प्रयोग गरिन्छ। CMake को नयाँ संस्करणहरू सामान्यतया पुरानो संस्करणहरूसँग पछाडी मिल्दो छ, त्यसैले अनुकूलता सुनिश्चित गर्न नयाँ CMake आदेशहरू प्रयोग गर्दा तदनुसार संस्करण नम्बर समायोजन गर्नुहोस्।
समावेश गर्नुहोस्($ENV {IDF_PATH}/tools/cmake/project.cmake) पूर्व-परिभाषित कन्फिगरेसन वस्तुहरू र ESP-IDF संकलन प्रणालीका आदेशहरू आयात गर्दछ, खण्ड 4.3.3 मा वर्णन गरिएको संकलन प्रणालीको पूर्वनिर्धारित निर्माण नियमहरू सहित। परियोजना(myProject) ले परियोजना आफैं सिर्जना गर्दछ र यसको नाम निर्दिष्ट गर्दछ। यो नाम अन्तिम आउटपुट बाइनरीको रूपमा प्रयोग गरिनेछ file नाम, अर्थात्, myProject.elf र myProject.bin।
एउटा परियोजनामा ​​मुख्य कम्पोनेन्ट सहित धेरै कम्पोनेन्ट हुन सक्छ। प्रत्येक कम्पोनेन्टको शीर्ष-स्तर डाइरेक्टरीले CMakeLists.txt समावेश गर्दछ file, जसलाई कम्पोनेन्ट संकलन लिपि भनिन्छ। कम्पोनेन्ट कम्पाइलेशन स्क्रिप्टहरू मुख्यतया कम्पोनेन्ट निर्भरताहरू, कन्फिगरेसन प्यारामिटरहरू, स्रोत कोड निर्दिष्ट गर्न प्रयोग गरिन्छ। files, र समावेश हेडर fileको लागि
अध्याय ४. विकास वातावरण स्थापना गर्ने ३३

संकलन। ESP-IDF को अनुकूलन प्रकार्य idf_component_register सँग, कम्पोनेन्ट संकलन लिपिको लागि न्यूनतम आवश्यक कोड निम्नानुसार छ:

1. idf_component_register(SRCS “src1.c”

2.

INCLUDE_DIRS "समावेश"

3.

आवश्यक घटक १)

SRCS प्यारामिटरले स्रोतको सूची प्रदान गर्दछ files कम्पोनेन्टमा, यदि त्यहाँ धेरै छन् भने खाली ठाउँहरूद्वारा विभाजित files INCLUDE_DIRS प्यारामिटरले सार्वजनिक हेडरको सूची प्रदान गर्दछ file कम्पोनेन्टका लागि डाइरेक्टरीहरू, जुन हालको कम्पोनेन्टमा निर्भर अन्य कम्पोनेन्टहरूका लागि खोजी मार्गमा थपिनेछ। REQUIRES प्यारामिटरले हालको कम्पोनेन्टका लागि सार्वजनिक घटक निर्भरताहरू पहिचान गर्दछ। कम्पोनेन्टहरूका लागि तिनीहरू कुन कम्पोनेन्टहरूमा निर्भर छन् भनेर स्पष्ट रूपमा बताउन आवश्यक छ, जस्तै component2 component1 मा निर्भर गर्दछ। यद्यपि, मुख्य कम्पोनेन्टका लागि, जुन पूर्वनिर्धारित रूपमा सबै कम्पोनेन्टहरूमा निर्भर हुन्छ, आवश्यक प्यारामिटर हटाउन सकिन्छ।

थप रूपमा, नेटिभ CMake आदेशहरू पनि संकलन लिपिमा प्रयोग गर्न सकिन्छ। पूर्वका लागिample, चर सेट गर्न आदेश सेट प्रयोग गर्नुहोस्, जस्तै set(variable “VALUE”)।

4.3.5 साझा आदेशहरूको परिचय
ESP-IDF ले कोड संकलनको प्रक्रियामा CMake (परियोजना कन्फिगरेसन उपकरण), निन्जा (प्रोजेक्ट निर्माण उपकरण) र esptool (फ्ल्याश उपकरण) प्रयोग गर्दछ। प्रत्येक उपकरणले संकलन, निर्माण, र फ्ल्यास प्रक्रियामा फरक भूमिका खेल्छ, र विभिन्न अपरेटिङ आदेशहरूलाई समर्थन गर्दछ। प्रयोगकर्ता सञ्चालनलाई सहज बनाउन, ESP-IDF ले एक एकीकृत फ्रन्ट-एन्ड idf.py थप्छ जसले माथिका आदेशहरूलाई छिटो कल गर्न अनुमति दिन्छ।
idf.py प्रयोग गर्नु अघि, निश्चित गर्नुहोस् कि:
· ESP-IDF को वातावरणीय चर IDF_PATH हालको टर्मिनलमा थपिएको छ। · आदेश कार्यान्वयन डाइरेक्टरी परियोजनाको रूट डाइरेक्टरी हो, जसमा समावेश छ
परियोजना संकलन लिपि CMakeLists.txt।
idf.py को सामान्य आदेशहरू निम्नानुसार छन्:
· idf.py -help: आदेशहरूको सूची र तिनीहरूको प्रयोग निर्देशनहरू प्रदर्शन गर्दै। · idf.py सेट-लक्ष्य : संकलन taidf.py fullcleanrget सेट गर्दै, जस्तै
लाई esp32c3 ले प्रतिस्थापन गर्दै। · idf.py menuconfig: menuconfig सुरु गर्दै, टर्मिनल ग्राफिकल कन्फिगरेसन
उपकरण, जसले कन्फिगरेसन विकल्पहरू चयन वा परिमार्जन गर्न सक्छ, र कन्फिगरेसन परिणामहरू sdkconfig मा बचत गरिन्छ। file। · idf.py निर्माण: कोड संकलन सुरु गर्दै। मध्यवर्ती files र संकलन द्वारा उत्पन्न अन्तिम कार्यान्वयन योग्य कार्यक्रम पूर्वनिर्धारित रूपमा परियोजनाको निर्माण डाइरेक्टरीमा बचत हुनेछ। संकलन प्रक्रिया वृद्धिशील छ, जसको मतलब यदि एक मात्र स्रोत हो file परिमार्जन गरिएको छ, परिमार्जित मात्र file अर्को पटक संकलित हुनेछ।

52 ESP32-C3 वायरलेस साहसिक: IoT को लागि एक व्यापक गाइड

· idf.py सफा: मध्यवर्ती सफा गर्दै fileपरियोजना संकलन द्वारा उत्पन्न s। सम्पूर्ण परियोजना अर्को संकलनमा संकलन गर्न बाध्य हुनेछ। नोट गर्नुहोस् कि CMake कन्फिगरेसन र मेनु कन्फिगरेसन द्वारा बनाईएको कन्फिगरेसन परिमार्जन सफा गर्दा मेटिने छैन।
· idf.py fullclean: सम्पूर्ण निर्माण डाइरेक्टरी मेटाउँदै, सबै CMake कन्फिगरेसन आउटपुट सहित files परियोजना पुन: निर्माण गर्दा, CMake ले परियोजनालाई स्क्र्याचबाट कन्फिगर गर्नेछ। कृपया ध्यान दिनुहोस् कि यो आदेश पुनरावृत्ति सबै मेटिनेछ files निर्माण डाइरेक्टरीमा छ, त्यसैले यसलाई सावधानीपूर्वक प्रयोग गर्नुहोस्, र परियोजना कन्फिगरेसन file मेटिने छैन।
· idf.py फ्लैश: कार्यान्वयन योग्य कार्यक्रम बाइनरी फ्ल्यास गर्दै file लक्ष्य ESP32-C3 मा निर्माण द्वारा उत्पन्न। विकल्पहरू -p र -b क्रमशः सिरियल पोर्टको उपकरण नाम र फ्ल्याशिङको लागि बाउड दर सेट गर्न प्रयोग गरिन्छ। यदि यी दुई विकल्पहरू निर्दिष्ट गरिएन भने, सिरियल पोर्ट स्वचालित रूपमा पत्ता लगाइनेछ र पूर्वनिर्धारित बाउड दर प्रयोग गरिनेछ।
· idf.py मनिटर: लक्ष्य ESP32-C3 को सिरियल पोर्ट आउटपुट प्रदर्शन गर्दै। विकल्प -p होस्ट-साइड सिरियल पोर्टको उपकरण नाम निर्दिष्ट गर्न प्रयोग गर्न सकिन्छ। सिरियल पोर्ट प्रिन्टिङको क्रममा, मनिटरबाट बाहिर निस्कन कुञ्जी संयोजन Ctrl+] थिच्नुहोस्।
माथिका आदेशहरू पनि आवश्यकता अनुसार जोड्न सकिन्छ। पूर्वका लागिample, आदेश idf.py बिल्ड फ्लैश मनिटरले कोड संकलन, फ्ल्यास, र अनुक्रममा सिरियल पोर्ट मनिटर खोल्नेछ।
ESP-IDF संकलन प्रणाली बारे थप जान्नको लागि तपाईं https://bookc3.espressif.com/build-system भ्रमण गर्न सक्नुहुन्छ।
४.४ अभ्यास: संकलन गर्ने उदाampले कार्यक्रम "पलक"
०० पूर्वampले विश्लेषण
यस खण्डले कार्यक्रम ब्लिंकलाई पूर्वको रूपमा लिनेछampविश्लेषण गर्न file विस्तृत रूपमा वास्तविक परियोजनाको संरचना र कोडिङ नियमहरू। ब्लिङ्क प्रोग्रामले एलईडी ब्लिङ्किङ प्रभाव लागू गर्दछ, र परियोजना डाइरेक्टरी पूर्वमा अवस्थित छamples/get-started/blink, जसमा स्रोत समावेश छ file, कन्फिगरेसन files, र धेरै संकलन लिपिहरू।
यस पुस्तकमा प्रस्तुत गरिएको स्मार्ट लाइट परियोजना यस पूर्वमा आधारित छampले कार्यक्रम। अन्ततः यसलाई पूरा गर्नका लागि पछिका अध्यायहरूमा कार्यहरू क्रमशः थपिनेछन्।
स्रोत कोड सम्पूर्ण विकास प्रक्रिया प्रदर्शन गर्न को लागी, ब्लिंक कार्यक्रम esp32c3-iot-projects/device firmware/1 blink मा प्रतिलिपि गरिएको छ।
ब्लिंक परियोजनाको निर्देशिका संरचना files लाई चित्र 4.15 मा देखाइएको छ।
ब्लिंक प्रोजेक्टले एउटा मात्र मुख्य डाइरेक्टरी समावेश गर्दछ, जुन एक विशेष कम्पोनेन्ट हो
अध्याय ४. विकास वातावरण स्थापना गर्ने ३३

चित्र १। File पलक परियोजना को निर्देशिका संरचना

खण्ड 4.3.2 मा वर्णन गरिए अनुसार समावेश हुनुपर्छ। मुख्य डाइरेक्टरी मुख्यतया app_main() प्रकार्यको कार्यान्वयन भण्डारण गर्न प्रयोग गरिन्छ, जुन प्रयोगकर्ता कार्यक्रमको प्रवेश बिन्दु हो। ब्लिंक प्रोजेक्टले कम्पोनेन्ट डाइरेक्टरी समावेश गर्दैन, किनभने यो पूर्वample ले केवल कम्पोनेन्टहरू प्रयोग गर्न आवश्यक छ जुन ESP-IDF सँग आउँछ र थप कम्पोनेन्टहरू आवश्यक पर्दैन। ब्लिंक परियोजनामा ​​समावेश CMakeLists.txt संकलन प्रक्रियालाई मार्गदर्शन गर्न प्रयोग गरिन्छ, जबकि Kconfig.projbuild यस पूर्वका लागि कन्फिगरेसन वस्तुहरू थप्न प्रयोग गरिन्छ।ampमेनु कन्फिगमा ले कार्यक्रम। अन्य अनावश्यक files ले कोडको संकलनलाई असर गर्दैन, त्यसैले तिनीहरू यहाँ छलफल गरिने छैन। ब्लिंक प्रोजेक्टको विस्तृत परिचय files निम्नानुसार छ।

1. /*blink.c ले निम्न हेडर समावेश गर्दछ files*/

2. # समावेश गर्नुहोस्

// मानक सी पुस्तकालय हेडर file

3. # "freertos/freeRTOS.h" //FreeRTOS मुख्य हेडर समावेश गर्नुहोस् file

4. # "freertos/task.h" समावेश गर्नुहोस्

//FreeRTOS कार्य हेडर file

5. # "sdkconfig.h" समावेश गर्नुहोस्

//कन्फिगरेसन हेडर file kconfig द्वारा उत्पन्न

6. # "driver/gpio.h" समावेश गर्नुहोस्

//GPIO चालक हेडर file

स्रोत file blink.c ले हेडरको श्रृंखला समावेश गर्दछ fileकार्य घोषणा अनुरूप -

tions ESP-IDF ले सामान्यतया मानक पुस्तकालय हेडर समावेश गर्ने क्रमलाई पछ्याउँछ files, FreeR-

TOS हेडर files, चालक हेडर files, अन्य घटक हेडर files, र परियोजना हेडर files.

हेडरमा भएको क्रम files समावेश गरिएको छ अन्तिम संकलन परिणामलाई असर गर्न सक्छ, त्यसैले प्रयास गर्नुहोस्

पूर्वनिर्धारित नियमहरू पालना गर्नुहोस्। यो ध्यान दिनुपर्छ कि sdkconfig.h स्वचालित रूपमा उत्पन्न हुन्छ

kconfig द्वारा र idf.py menuconfig आदेश मार्फत मात्र कन्फिगर गर्न सकिन्छ।

यो हेडरको प्रत्यक्ष परिमार्जन file अधिलेखन गरिनेछ।

1. /*तपाईले idf.py menuconfig मा LED सँग सम्बन्धित GPIO चयन गर्न सक्नुहुन्छ, र menuconfig को परिमार्जन परिणाम CONFIG_BLINK को मान हो।

_GPIO परिवर्तन हुनेछ। तपाईं पनि प्रत्यक्ष म्याक्रो परिभाषा परिमार्जन गर्न सक्नुहुन्छ

यहाँ, र CONFIG_BLINK_GPIO लाई निश्चित मानमा परिवर्तन गर्नुहोस्।*/ 2. #BLINK_GPIO CONFIG_BLINK_GPIO परिभाषित गर्नुहोस्

३. void app_main(void)

२। {

5.

/*IO लाई GPIO पूर्वनिर्धारित प्रकार्यको रूपमा कन्फिगर गर्नुहोस्, पुल-अप मोड सक्षम गर्नुहोस्, र

6.

इनपुट र आउटपुट मोडहरू असक्षम गर्नुहोस् */

7.

gpio_reset_pin(BLINK_GPIO);

54 ESP32-C3 वायरलेस साहसिक: IoT को लागि एक व्यापक गाइड

8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22। }

/*GPIO लाई आउटपुट मोडमा सेट गर्नुहोस्*/ gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT); जबकि (१) {
/*प्रिन्ट लग*/ printf ("LEDn बन्द गर्दै"); /*LED बन्द गर्नुहोस् (आउटपुट कम स्तर)*/ gpio_set_level(BLINK_GPIO, 0); /*ढिलाइ (1000 ms)*/ vTaskDelay(1000 / portTICK_PERIOD_MS); printf ("LEDn खोल्दै"); /*एलईडी अन गर्नुहोस् (आउटपुट उच्च स्तर)*/ gpio_set_level(BLINK_GPIO, 1); vTaskDelay(1000 / portTICK_PERIOD_MS); }

ब्लिङ्क पूर्वमा एप_मेन() प्रकार्यample कार्यक्रम प्रयोगकर्ता कार्यक्रमहरूको लागि प्रविष्टि बिन्दुको रूपमा कार्य गर्दछ। यो कुनै प्यारामिटर र कुनै रिटर्न मान बिना एक साधारण प्रकार्य हो। प्रणालीले प्रारम्भिक प्रक्रिया पूरा गरेपछि यो प्रकार्य भनिन्छ, जसमा लग सिरियल पोर्ट प्रारम्भ गर्ने, सिंगल/डुअल कोर कन्फिगर गर्ने, र वाचडग कन्फिगर गर्ने जस्ता कार्यहरू समावेश हुन्छन्।

app_main() प्रकार्य मुख्य नामको कार्यको सन्दर्भमा चल्छ। यस कार्यको स्ट्याक साइज र प्राथमिकता मेनुकन्फिग कम्पोनेन्ट कन्फिगरेसन सामान्य ESP-सम्बन्धित मा समायोजन गर्न सकिन्छ।

LED झिम्काउने जस्ता साधारण कार्यहरूको लागि, सबै आवश्यक कोडहरू app_main() प्रकार्यमा सिधै लागू गर्न सकिन्छ। यसले सामान्यतया LED सँग सम्बन्धित GPIO प्रारम्भ गर्ने र LED अन र अफ टगल गर्न केही समय (1) लुप प्रयोग गर्ने समावेश गर्दछ। वैकल्पिक रूपमा, तपाईंले LED ब्लिङ्किङ ह्यान्डल गर्ने नयाँ कार्य सिर्जना गर्न FreeRTOS API प्रयोग गर्न सक्नुहुन्छ। नयाँ कार्य सफलतापूर्वक सिर्जना भएपछि, तपाइँ app_main() प्रकार्यबाट बाहिर निस्कन सक्नुहुन्छ।

main/CMakeLists.txt को सामग्री file, जसले मुख्य कम्पोनेन्टको लागि संकलन प्रक्रियालाई मार्गदर्शन गर्दछ, निम्नानुसार छ:

1. idf_component_register(SRCS "blink.c" INCLUDE_DIRS "।" )

ती मध्ये, main/CMakeLists.txt ले एउटा संकलन प्रणाली प्रकार्यलाई मात्र कल गर्छ, त्यो हो idf_component_register। धेरैजसो अन्य कम्पोनेन्टका लागि CMakeLists.txt जस्तै, blink.c SRCS मा थपिएको छ, र स्रोत fileSRCS मा थपिएको s कम्पाइल गरिनेछ। एकै समयमा, "।", जसले CMakeLists.txt अवस्थित रहेको बाटोलाई प्रतिनिधित्व गर्दछ, हेडरका लागि खोज डाइरेक्टरीहरूको रूपमा INCLUDE_DIRS मा थपिनुपर्छ। files CMakeLists.txt को सामग्री निम्नानुसार छ:
1. # v3.5 लाई हालको परियोजना द्वारा समर्थित सबैभन्दा पुरानो CMake संस्करणको रूपमा निर्दिष्ट गर्नुहोस् 2. # v3.5 भन्दा कम संस्करणहरू संकलन जारी हुनु अघि अपग्रेड गरिनुपर्छ 3. cmake_minimum_required(VERSION 3.5) 4. # ESP को पूर्वनिर्धारित CMake कन्फिगरेसन समावेश गर्नुहोस् -IDF संकलन प्रणाली

अध्याय ४. विकास वातावरण स्थापना गर्ने ३३

5. समावेश गर्नुहोस्($ENV{IDF_PATH}/tools/cmake/project.cmake) 6. # "झलक" नामक परियोजना सिर्जना गर्नुहोस् 7. परियोजना(myProject)
तिनीहरूमध्ये, मूल डाइरेक्टरीमा CMakeLists.txt मा मुख्य रूपमा $ENV{IDF_ PATH}/tools/cmake/project.cmake समावेश छ, जुन मुख्य CMake कन्फिगरेसन हो। file ESP-IDF द्वारा प्रदान गरिएको। यो कन्फर्म गर्न प्रयोग गरिन्छ

कागजातहरू / स्रोतहरू

Espressif प्रणाली ESP32-C3 वायरलेस साहसिक [pdf] प्रयोगकर्ता गाइड
ESP32-C3 वायरलेस साहसिक, ESP32-C3, वायरलेस साहसिक, साहसिक

सन्दर्भहरू

एक टिप्पणी छोड्नुहोस्

तपाईंको इमेल ठेगाना प्रकाशित गरिने छैन। आवश्यक क्षेत्रहरू चिन्ह लगाइएका छन् *