ESP32-C3 वायरलेस एडवेंचर
ESP32-C3 वायरलेस एडवेंचर
IoT के लिए एक व्यापक मार्गदर्शिका
एस्प्रेसिफ़ सिस्टम्स 12 जून, 2023
विशेष विवरण
- उत्पाद: ESP32-C3 वायरलेस एडवेंचर
- निर्माता: एस्प्रेसिफ़ सिस्टम्स
- दिनांक: 12 जून, 2023
उत्पाद उपयोग निर्देश
तैयारी
ESP32-C3 वायरलेस एडवेंचर का उपयोग करने से पहले, सुनिश्चित करें कि आप हैं
IoT की अवधारणाओं और वास्तुकला से परिचित। ये सहायता करेगा
आप समझते हैं कि डिवाइस बड़े IoT पारिस्थितिकी तंत्र में कैसे फिट बैठता है
और स्मार्ट घरों में इसके संभावित अनुप्रयोग।
IoT परियोजनाओं का परिचय और अभ्यास
इस अनुभाग में, आप विशिष्ट IoT परियोजनाओं के बारे में जानेंगे,
सामान्य IoT उपकरणों के लिए बुनियादी मॉड्यूल, बुनियादी मॉड्यूल सहित
क्लाइंट एप्लिकेशन और सामान्य IoT क्लाउड प्लेटफ़ॉर्म। यह करेगा
आपको समझने और अपना निर्माण करने के लिए एक आधार प्रदान करता है
स्वयं की IoT परियोजनाएं।
अभ्यास: स्मार्ट लाइट प्रोजेक्ट
इस अभ्यास प्रोजेक्ट में, आप सीखेंगे कि स्मार्ट कैसे बनाया जाता है
ESP32-C3 वायरलेस एडवेंचर का उपयोग करके प्रकाश। परियोजना संरचना,
कार्य, हार्डवेयर तैयारी और विकास प्रक्रिया होगी
विस्तार से बताया गया.
परियोजना संरचना
परियोजना में कई घटक शामिल हैं, जिनमें शामिल हैं
ESP32-C3 वायरलेस एडवेंचर, एलईडी, सेंसर और एक क्लाउड
बैकएंड.
परियोजना के कार्य
स्मार्ट लाइट प्रोजेक्ट आपको चमक को नियंत्रित करने की अनुमति देता है
मोबाइल ऐप के माध्यम से दूर से एलईडी का रंग web
इंटरफ़ेस.
हार्डवेयर तैयारी
प्रोजेक्ट की तैयारी के लिए, आपको इसे इकट्ठा करने की आवश्यकता होगी
आवश्यक हार्डवेयर घटक, जैसे ESP32-C3 वायरलेस
एडवेंचर बोर्ड, एलईडी, रेसिस्टर्स और एक बिजली की आपूर्ति।
विकास की प्रक्रिया
विकास प्रक्रिया में विकास स्थापित करना शामिल है
पर्यावरण, एल ई डी को नियंत्रित करने के लिए कोड लिखना, से कनेक्ट करना
क्लाउड बैकएंड, और स्मार्ट की कार्यक्षमता का परीक्षण
रोशनी।
ईएसपी रेनमेकर का परिचय
ईएसपी रेनमेकर IoT विकसित करने के लिए एक शक्तिशाली ढांचा है
उपकरण। इस अनुभाग में, आप सीखेंगे कि ईएसपी रेनमेकर क्या है और
इसे आपकी परियोजनाओं में कैसे लागू किया जा सकता है।
ईएसपी रेनमेकर क्या है?
ईएसपी रेनमेकर एक क्लाउड-आधारित प्लेटफ़ॉर्म है जो एक सेट प्रदान करता है
IoT उपकरणों के निर्माण और प्रबंधन के लिए उपकरण और सेवाएँ।
ईएसपी रेनमेकर का कार्यान्वयन
यह अनुभाग इसमें शामिल विभिन्न घटकों की व्याख्या करता है
दावा सेवा सहित ईएसपी रेनमेकर को लागू करना,
रेनमेकर एजेंट, क्लाउड बैकएंड और रेनमेकर क्लाइंट।
अभ्यास: ईएसपी रेनमेकर के साथ विकास के लिए मुख्य बिंदु
इस अभ्यास अनुभाग में, आप मुख्य बिंदुओं के बारे में जानेंगे
ईएसपी रेनमेकर के साथ विकास करते समय विचार करें। इसमें डिवाइस शामिल है
दावा करना, डेटा सिंक्रनाइज़ेशन और उपयोगकर्ता प्रबंधन।
ईएसपी रेनमेकर की विशेषताएं
ईएसपी रेनमेकर उपयोगकर्ता प्रबंधन के लिए विभिन्न सुविधाएँ प्रदान करता है
उपयोगकर्ता, और प्रशासक। ये सुविधाएँ आसान डिवाइस की अनुमति देती हैं
सेटअप, रिमोट कंट्रोल और निगरानी।
विकास परिवेश की स्थापना
यह अनुभाग एक ओवर प्रदान करता हैview ईएसपी-आईडीएफ (एस्प्रेसिफ़ आईओटी)
डेवलपमेंट फ्रेमवर्क), जो आधिकारिक विकास ढांचा है
ESP32-आधारित उपकरणों के लिए. यह के विभिन्न संस्करणों की व्याख्या करता है
ईएसपी-आईडीएफ और विकास वातावरण कैसे स्थापित करें।
हार्डवेयर और ड्राइवर विकास
ESP32-C3 पर आधारित स्मार्ट लाइट उत्पादों का हार्डवेयर डिज़ाइन
यह अनुभाग स्मार्ट लाइट के हार्डवेयर डिज़ाइन पर केंद्रित है
ESP32-C3 वायरलेस एडवेंचर पर आधारित उत्पाद। यह कवर करता है
स्मार्ट लाइट उत्पादों की विशेषताएं और संरचना, साथ ही
ESP32-C3 कोर सिस्टम का हार्डवेयर डिज़ाइन।
स्मार्ट लाइट उत्पादों की विशेषताएं और संरचना
यह उपधारा उन विशेषताओं और घटकों की व्याख्या करती है जो इसे बनाते हैं
स्मार्ट लाइट उत्पाद। यह विभिन्न कार्यात्मकताओं पर चर्चा करता है
और स्मार्ट लाइट बनाने के लिए डिज़ाइन संबंधी विचार।
ESP32-C3 कोर सिस्टम का हार्डवेयर डिज़ाइन
ESP32-C3 कोर सिस्टम के हार्डवेयर डिज़ाइन में पावर शामिल है
आपूर्ति, पावर-ऑन अनुक्रम, सिस्टम रीसेट, एसपीआई फ्लैश, घड़ी स्रोत,
और आरएफ और एंटीना विचार। यह उपधारा प्रदान करती है
इन पहलुओं पर विस्तृत जानकारी.
सामान्य प्रश्न
प्रश्न: ईएसपी रेनमेकर क्या है?
उत्तर: ईएसपी रेनमेकर एक क्लाउड-आधारित प्लेटफ़ॉर्म है जो उपकरण प्रदान करता है
और IoT उपकरणों के निर्माण और प्रबंधन के लिए सेवाएँ। यह सरल बनाता है
विकास प्रक्रिया और आसान डिवाइस सेटअप, रिमोट की अनुमति देती है
नियंत्रण, और निगरानी.
प्रश्न: मैं विकास का माहौल कैसे स्थापित कर सकता हूं?
ईएसपी32-सी3?
उ: ESP32-C3 के लिए विकास वातावरण स्थापित करने के लिए, आपको इसकी आवश्यकता है
ईएसपी-आईडीएफ (एस्प्रेसिफ आईओटी डेवलपमेंट फ्रेमवर्क) स्थापित करने के लिए और
दिए गए निर्देशों के अनुसार इसे कॉन्फ़िगर करें। ईएसपी-आईडीएफ है
ESP32-आधारित उपकरणों के लिए आधिकारिक विकास ढांचा।
प्रश्न: ईएसपी रेनमेकर की विशेषताएं क्या हैं?
उत्तर: ईएसपी रेनमेकर उपयोगकर्ता सहित विभिन्न सुविधाएँ प्रदान करता है
प्रबंधन, अंतिम उपयोगकर्ता सुविधाएँ और व्यवस्थापक सुविधाएँ। प्रयोक्ता प्रबंधन
आसान डिवाइस दावा और डेटा सिंक्रनाइज़ेशन की अनुमति देता है। अंतिम उपयोगकर्ता
सुविधाएँ मोबाइल ऐप के माध्यम से उपकरणों के रिमोट कंट्रोल को सक्षम करती हैं
web इंटरफेस। व्यवस्थापक सुविधाएँ डिवाइस की निगरानी के लिए उपकरण प्रदान करती हैं
और प्रबंधन।
ESP32-C3 वायरलेस एडवेंचर
IoT के लिए एक व्यापक मार्गदर्शिका
एस्प्रेसिफ़ सिस्टम्स 12 जून, 2023
अंतर्वस्तु
मैं तैयारी
1
1 IoT का परिचय
3
1.1 IoT की वास्तुकला। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 स्मार्ट घरों में IoT अनुप्रयोग। . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 IoT परियोजनाओं का परिचय और अभ्यास
9
2.1 विशिष्ट IoT परियोजनाओं का परिचय। . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.1 सामान्य IoT उपकरणों के लिए बुनियादी मॉड्यूल। . . . . . . . . . . . . . . . . 9
2.1.2 ग्राहक अनुप्रयोगों के बुनियादी मॉड्यूल। . . . . . . . . . . . . . . . . . . 10
2.1.3 सामान्य IoT क्लाउड प्लेटफ़ॉर्म का परिचय। . . . . . . . . . . . . . 11
2.2 अभ्यास: स्मार्ट लाइट प्रोजेक्ट। . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.1 परियोजना संरचना। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 परियोजना कार्य। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.3 हार्डवेयर तैयारी। . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.4 विकास प्रक्रिया. . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 सारांश. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3 ईएसपी रेनमेकर का परिचय
19
3.1 ईएसपी रेनमेकर क्या है? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2 ईएसपी रेनमेकर का कार्यान्वयन। . . . . . . . . . . . . . . . . . . . . . 21
3.2.1 दावा सेवा. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.2 रेनमेकर एजेंट। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.3 क्लाउड बैकएंड। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.4 रेनमेकर क्लाइंट। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3 अभ्यास: ईएसपी रेनमेकर के साथ विकास के लिए मुख्य बिंदु। . . . . . . . . . . . 25
3.4 ईएसपी रेनमेकर की विशेषताएं। . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.1 उपयोगकर्ता प्रबंधन. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.2 अंतिम उपयोगकर्ता सुविधाएँ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4.3 व्यवस्थापक सुविधाएँ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.5 सारांश. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4 विकास वातावरण स्थापित करना
31
4.1 ईएसपी-आईडीएफ खत्मview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1.1 ईएसपी-आईडीएफ संस्करण। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3
4.1.2 ईएसपी-आईडीएफ गिट वर्कफ़्लो। . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.3 उपयुक्त संस्करण चुनना। . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.4 ओवरview ईएसपी-आईडीएफ एसडीके निर्देशिका की। . . . . . . . . . . . . . . . . . . . 34 4.2 ईएसपी-आईडीएफ विकास पर्यावरण की स्थापना। . . . . . . . . . . . . . . . . 38 4.2.1 लिनक्स पर ईएसपी-आईडीएफ विकास पर्यावरण की स्थापना। . . . . . . . 38 4.2.2 विंडोज़ पर ईएसपी-आईडीएफ विकास वातावरण स्थापित करना। . . . . . 40 4.2.3 Mac पर ESP-IDF विकास परिवेश स्थापित करना। . . . . . . . . 45 4.2.4 वीएस कोड स्थापित करना। . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2.5 तृतीय-पक्ष विकास परिवेश का परिचय। . . . . . . . 46 4.3 ईएसपी-आईडीएफ संकलन प्रणाली। . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.1 संकलन प्रणाली की बुनियादी अवधारणाएँ। . . . . . . . . . . . . . . . . . 47 4.3.2 प्रोजेक्ट File संरचना । . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.3 संकलन प्रणाली के डिफ़ॉल्ट निर्माण नियम। . . . . . . . . . . . . 50 4.3.4 संकलन स्क्रिप्ट का परिचय। . . . . . . . . . . . . . . . . . 51 4.3.5 सामान्य कमांड का परिचय। . . . . . . . . . . . . . . . . . . 52 4.4 अभ्यास: संकलन पूर्वampले कार्यक्रम "ब्लिंक"। . . . . . . . . . . . . . . . . . 53 4.4.1 पूर्वampले विश्लेषण. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.4.2 ब्लिंक प्रोग्राम का संकलन। . . . . . . . . . . . . . . . . . . . . . . 56 4.4.3 ब्लिंक प्रोग्राम को फ्लैश करना। . . . . . . . . . . . . . . . . . . . . . . . 59 4.4.4 ब्लिंक प्रोग्राम का सीरियल पोर्ट लॉग विश्लेषण। . . . . . . . . . . . . . 60 4.5 सारांश . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
II हार्डवेयर और ड्राइवर विकास
65
ESP5-C32 पर आधारित स्मार्ट लाइट उत्पादों के 3 हार्डवेयर डिज़ाइन
67
5.1 स्मार्ट लाइट उत्पादों की विशेषताएं और संरचना। . . . . . . . . . . . . . . 67
5.2 ESP32-C3 कोर सिस्टम का हार्डवेयर डिज़ाइन। . . . . . . . . . . . . . . . . . . 70
5.2.1 विद्युत आपूर्ति। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.2.2 पावर-ऑन अनुक्रम और सिस्टम रीसेट। . . . . . . . . . . . . . . . . . 74
5.2.3 एसपीआई फ्लैश। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2.4 घड़ी स्रोत। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.2.5 आरएफ और एंटीना। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.2.6 स्ट्रैपिंग पिन। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2.7 GPIO और PWM नियंत्रक। . . . . . . . . . . . . . . . . . . . . . . . . 79
5.3 अभ्यास: ESP32-C3 के साथ एक स्मार्ट लाइट सिस्टम का निर्माण। . . . . . . . . . . . . 80
5.3.1 मॉड्यूल का चयन। . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.3.2 पीडब्लूएम सिग्नल के जीपीआईओ को कॉन्फ़िगर करना। . . . . . . . . . . . . . . . . . . . 82
5.3.3 फर्मवेयर और डिबगिंग इंटरफ़ेस डाउनलोड करना। . . . . . . . . . . . 82
5.3.4 आरएफ डिजाइन के लिए दिशानिर्देश। . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3.5 विद्युत आपूर्ति डिजाइन के लिए दिशानिर्देश। . . . . . . . . . . . . . . . . . . 86 5.4 सारांश। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6 ड्राइवर विकास
87
6.1 ड्राइवर विकास प्रक्रिया। . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.2 ईएसपी32-सी3 परिधीय अनुप्रयोग। . . . . . . . . . . . . . . . . . . . . . . . . 88
6.3 एलईडी ड्राइवर मूल बातें। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.3.1 रंग स्थान। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.3.2 एलईडी ड्राइवर। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.3 एलईडी डिमिंग। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.4 पीडब्लूएम का परिचय। . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.4 एलईडी डिमिंग ड्राइवर विकास। . . . . . . . . . . . . . . . . . . . . . . . 96
6.4.1 गैर-वाष्पशील भंडारण (एनवीएस)। . . . . . . . . . . . . . . . . . . . . . . . 97
6.4.2 एलईडी पीडब्लूएम नियंत्रक (एलईडीसी)। . . . . . . . . . . . . . . . . . . . . . . 98
6.4.3 एलईडी पीडब्लूएम प्रोग्रामिंग। . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.5 अभ्यास: स्मार्ट लाइट प्रोजेक्ट में ड्राइवर जोड़ना। . . . . . . . . . . . . . . . . 103
6.5.1 बटन ड्राइवर. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.5.2 एलईडी डिमिंग ड्राइवर। . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.6 सारांश. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
III वायरलेस संचार और नियंत्रण
109
7 वाई-फाई कॉन्फ़िगरेशन और कनेक्शन
111
7.1 वाई-फाई की मूल बातें। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.1 वाई-फाई का परिचय। . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.2 आईईईई 802.11 का विकास। . . . . . . . . . . . . . . . . . . . . . . . . 111
7.1.3 वाई-फ़ाई अवधारणाएँ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.1.4 वाई-फाई कनेक्शन। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7.2 ब्लूटूथ की मूल बातें। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
7.2.1 ब्लूटूथ का परिचय। . . . . . . . . . . . . . . . . . . . . . . . . 123
7.2.2 ब्लूटूथ अवधारणाएँ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
7.2.3 ब्लूटूथ कनेक्शन। . . . . . . . . . . . . . . . . . . . . . . . . . . 127
7.3 वाई-फाई नेटवर्क कॉन्फ़िगरेशन। . . . . . . . . . . . . . . . . . . . . . . . . . . 131
7.3.1 वाई-फाई नेटवर्क कॉन्फ़िगरेशन गाइड। . . . . . . . . . . . . . . . . . . . 131
7.3.2 सॉफ्टएप। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.3.3 स्मार्टकॉन्फिग। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.3.4 ब्लूटूथ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
7.3.5 अन्य विधियाँ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
7.4 वाई-फाई प्रोग्रामिंग। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.1 ईएसपी-आईडीएफ में वाई-फाई घटक। . . . . . . . . . . . . . . . . . . . . . . 139 7.4.2 व्यायाम: वाई-फाई कनेक्शन। . . . . . . . . . . . . . . . . . . . . . . . 141 7.4.3 व्यायाम: स्मार्ट वाई-फाई कनेक्शन। . . . . . . . . . . . . . . . . . . . . 145
7.5 अभ्यास: स्मार्ट लाइट प्रोजेक्ट में वाई-फाई कॉन्फ़िगरेशन। . . . . . . . . . . . . . . 156 7.5.1 स्मार्ट लाइट प्रोजेक्ट में वाई-फाई कनेक्शन। . . . . . . . . . . . . . . . . 156 7.5.2 स्मार्ट वाई-फाई कॉन्फ़िगरेशन। . . . . . . . . . . . . . . . . . . . . . . . . 157
7.6 सारांश. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
8 स्थानीय नियंत्रण
159
8.1 स्थानीय नियंत्रण का परिचय। . . . . . . . . . . . . . . . . . . . . . . . . . . 159
8.1.1 स्थानीय नियंत्रण का अनुप्रयोग. . . . . . . . . . . . . . . . . . . . . . . . 161
8.1.2 आडवाणीtagस्थानीय नियंत्रण के ईएस. . . . . . . . . . . . . . . . . . . . . . . . 161
8.1.3 स्मार्टफोन के माध्यम से नियंत्रित उपकरणों की खोज। . . . . . . . . . 161
8.1.4 स्मार्टफोन और उपकरणों के बीच डेटा संचार। . . . . . . . 162
8.2 सामान्य स्थानीय खोज विधियाँ। . . . . . . . . . . . . . . . . . . . . . . . 162
8.2.1 प्रसारण. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
8.2.2 मल्टीकास्ट। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
8.2.3 प्रसारण और मल्टीकास्ट के बीच तुलना। . . . . . . . . . . . . . 176
8.2.4 स्थानीय डिस्कवरी के लिए मल्टीकास्ट एप्लिकेशन प्रोटोकॉल mDNS। . . . . . . . 176
8.3 स्थानीय डेटा के लिए सामान्य संचार प्रोटोकॉल। . . . . . . . . . . . . . . 179
8.3.1 ट्रांसमिशन कंट्रोल प्रोटोकॉल (टीसीपी)। . . . . . . . . . . . . . . . . . . 179
8.3.2 हाइपरटेक्स्ट ट्रांसफर प्रोटोकॉल (HTTP)। . . . . . . . . . . . . . . . . . . 185
8.3.3 उपयोगकर्ता दाtagरैम प्रोटोकॉल (यूडीपी)। . . . . . . . . . . . . . . . . . . . . . 189
8.3.4 प्रतिबंधित अनुप्रयोग प्रोटोकॉल (सीओएपी)। . . . . . . . . . . . . . . . 192
8.3.5 ब्लूटूथ प्रोटोकॉल। . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
8.3.6 डेटा संचार प्रोटोकॉल का सारांश। . . . . . . . . . . . . . . 203
8.4 डेटा सुरक्षा की गारंटी. . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
8.4.1 ट्रांसपोर्ट लेयर सिक्योरिटी (टीएलएस) का परिचय। . . . . . . . . . . . . 207
8.4.2 दा का परिचयtagरैम ट्रांसपोर्ट लेयर सिक्योरिटी (डीटीएलएस)। . . . . . . 213
8.5 अभ्यास: स्मार्ट लाइट प्रोजेक्ट में स्थानीय नियंत्रण। . . . . . . . . . . . . . . . . . 217
8.5.1 वाई-फ़ाई-आधारित स्थानीय नियंत्रण सर्वर बनाना। . . . . . . . . . . . . . . 217
8.5.2 स्क्रिप्ट का उपयोग करके स्थानीय नियंत्रण कार्यक्षमता का सत्यापन करना। . . . . . . . . . . 221
8.5.3 ब्लूटूथ-आधारित स्थानीय नियंत्रण सर्वर बनाना। . . . . . . . . . . . 222
8.6 सारांश. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
9 बादल नियंत्रण
225
9.1 रिमोट कंट्रोल का परिचय। . . . . . . . . . . . . . . . . . . . . . . . . . 225
9.2 क्लाउड डेटा संचार प्रोटोकॉल। . . . . . . . . . . . . . . . . . . . . . 226
9.2.1 एमक्यूटीटी परिचय। . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 9.2.2 एमक्यूटीटी सिद्धांत। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 9.2.3 एमक्यूटीटी संदेश प्रारूप। . . . . . . . . . . . . . . . . . . . . . . . . . 228 9.2.4 प्रोटोकॉल तुलना। . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 9.2.5 लिनक्स और विंडोज़ पर एमक्यूटीटी ब्रोकर की स्थापना। . . . . . . . . . . . 233 9.2.6 ईएसपी-आईडीएफ पर आधारित एमक्यूटीटी क्लाइंट स्थापित करना। . . . . . . . . . . . . . . . 235 9.3 एमक्यूटीटी डेटा सुरक्षा सुनिश्चित करना। . . . . . . . . . . . . . . . . . . . . . . . . . . 237 9.3.1 प्रमाणपत्रों का अर्थ एवं कार्य। . . . . . . . . . . . . . . . . . . 237 9.3.2 स्थानीय स्तर पर प्रमाण पत्र तैयार करना। . . . . . . . . . . . . . . . . . . . . . 239 9.3.3 एमक्यूटीटी ब्रोकर को कॉन्फ़िगर करना। . . . . . . . . . . . . . . . . . . . . . . . . 241 9.3.4 एमक्यूटीटी क्लाइंट को कॉन्फ़िगर करना। . . . . . . . . . . . . . . . . . . . . . . . . 241 9.4 अभ्यास: ईएसपी रेनमेकर के माध्यम से रिमोट कंट्रोल। . . . . . . . . . . . . . . . 243 9.4.1 ईएसपी रेनमेकर मूल बातें। . . . . . . . . . . . . . . . . . . . . . . . . . . 243 9.4.2 नोड और क्लाउड बैकएंड संचार प्रोटोकॉल। . . . . . . . . . . 244 9.4.3 क्लाइंट और क्लाउड बैकएंड के बीच संचार। . . . . . . . . . . 249 9.4.4 उपयोगकर्ता भूमिकाएँ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 9.4.5 बुनियादी सेवाएँ। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 9.4.6 स्मार्ट लाइट एक्सampले . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 9.4.7 रेनमेकर ऐप और तृतीय-पक्ष एकीकरण। . . . . . . . . . . . . . . 262 9.5 सारांश . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
10 स्मार्टफोन ऐप डेवलपमेंट
269
10.1 स्मार्टफोन ऐप डेवलपमेंट का परिचय। . . . . . . . . . . . . . . . . . 269
10.1.1 ओवरview स्मार्टफ़ोन ऐप डेवलपमेंट का. . . . . . . . . . . . . . . 270
10.1.2 एंड्रॉइड प्रोजेक्ट की संरचना। . . . . . . . . . . . . . . . . . . . . . 270
10.1.3 आईओएस प्रोजेक्ट की संरचना। . . . . . . . . . . . . . . . . . . . . . . . 271
10.1.4 एंड्रॉइड गतिविधि का जीवनचक्र। . . . . . . . . . . . . . . . . . . . . . 272
10.1.5 आईओएस का जीवनचक्र Viewनियंत्रक. . . . . . . . . . . . . . . . . . . . . . 273
10.2 एक नया स्मार्टफोन ऐप प्रोजेक्ट बनाना। . . . . . . . . . . . . . . . . . . . . 275
10.2.1 Android विकास के लिए तैयारी। . . . . . . . . . . . . . . . . . . 275
10.2.2 एक नया एंड्रॉइड प्रोजेक्ट बनाना। . . . . . . . . . . . . . . . . . . . . . 275
10.2.3 MyRainmaker के लिए निर्भरताएँ जोड़ना। . . . . . . . . . . . . . . . . 276
एंड्रॉइड में 10.2.4 अनुमति अनुरोध। . . . . . . . . . . . . . . . . . . . . . 277
10.2.5 आईओएस विकास के लिए तैयारी। . . . . . . . . . . . . . . . . . . . . . 277
10.2.6 एक नया iOS प्रोजेक्ट बनाना। . . . . . . . . . . . . . . . . . . . . . . . 278
10.2.7 MyRainmaker के लिए निर्भरताएँ जोड़ना। . . . . . . . . . . . . . . . . 279
10.2.8 आईओएस में अनुमति अनुरोध। . . . . . . . . . . . . . . . . . . . . . . . . 280
10.3 ऐप की कार्यात्मक आवश्यकताओं का विश्लेषण। . . . . . . . . . . . . . . . . . 281
10.3.1 परियोजना की कार्यात्मक आवश्यकताओं का विश्लेषण। . . . . . . . . . . . 282
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 रेनमेकर एपीआई का परिचय। . . . . . . . . . . . . . . . . . . . . . 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 नोड आईडी प्राप्त करना। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 अधिक क्लाउड एपीआई। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 10.8 सारांश . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
11 फ़र्मवेयर अपग्रेड और संस्करण प्रबंधन
321
11.1 फ़र्मवेयर अपग्रेड। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
11.1.1 ओवरview विभाजन तालिकाओं का. . . . . . . . . . . . . . . . . . . . . . . . 322
11.1.2 फ़र्मवेयर बूट प्रक्रिया। . . . . . . . . . . . . . . . . . . . . . . . . . . 324
11.1.3 ओवरview ओटीए तंत्र का. . . . . . . . . . . . . . . . . . . . . 326
11.2 फ़र्मवेयर संस्करण प्रबंधन। . . . . . . . . . . . . . . . . . . . . . . . . . 329
11.2.1 फ़र्मवेयर मार्किंग। . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
11.2.2 रोलबैक और एंटी-रोलबैक। . . . . . . . . . . . . . . . . . . . . . . . 331
11.3 अभ्यास: ओवर-द-एयर (ओटीए) पूर्वampले . . . . . . . . . . . . . . . . . . . . . . . 332
11.3.1 स्थानीय होस्ट के माध्यम से फर्मवेयर को अपग्रेड करें। . . . . . . . . . . . . . . . . 332
11.3.2 ईएसपी रेनमेकर के माध्यम से फर्मवेयर अपग्रेड करें। . . . . . . . . . . . . . . 335
11.4 सारांश. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
IV अनुकूलन और बड़े पैमाने पर उत्पादन
343
12 पावर प्रबंधन और कम-पावर अनुकूलन
345
12.1 ईएसपी32-सी3 पावर प्रबंधन। . . . . . . . . . . . . . . . . . . . . . . . . . . 345
12.1.1 गतिशील आवृत्ति स्केलिंग। . . . . . . . . . . . . . . . . . . . . . . . 346
12.1.2 पावर प्रबंधन कॉन्फ़िगरेशन। . . . . . . . . . . . . . . . . . . . 348
12.2 ईएसपी32-सी3 लो-पावर मोड। . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
12.2.1 मॉडेम-स्लीप मोड। . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
12.2.2 हल्की-नींद मोड। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
12.2.3 गहरी नींद मोड। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
12.2.4 विभिन्न पावर मोड में वर्तमान खपत। . . . . . . . . . . . . 358
12.3 पावर प्रबंधन और लो-पावर डिबगिंग। . . . . . . . . . . . . . . . . 359
12.3.1 लॉग डिबगिंग। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
12.3.2 जीपीआईओ डिबगिंग। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
12.4 अभ्यास: स्मार्ट लाइट प्रोजेक्ट में पावर प्रबंधन। . . . . . . . . . . . . . . 363
12.4.1 पावर प्रबंधन सुविधा को कॉन्फ़िगर करना। . . . . . . . . . . . . . . . . 364
12.4.2 पावर प्रबंधन ताले का उपयोग करें। . . . . . . . . . . . . . . . . . . . . . 365
12.4.3 बिजली की खपत का सत्यापन। . . . . . . . . . . . . . . . . . . . . . . 366
12.5 सारांश. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
13 उन्नत डिवाइस सुरक्षा सुविधाएँ
369
13.1 ओवरview IoT डिवाइस डेटा सुरक्षा की. . . . . . . . . . . . . . . . . . . . . . . 369
13.1.1 IoT डिवाइस डेटा सुरक्षित क्यों करें? . . . . . . . . . . . . . . . . . . . . . . 370
13.1.2 IoT डिवाइस डेटा सुरक्षा के लिए बुनियादी आवश्यकताएँ। . . . . . . . . . . . 371
13.2 डेटा अखंडता सुरक्षा। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
13.2.1 सत्यनिष्ठा सत्यापन विधि का परिचय। . . . . . . . . . . . . . 372
13.2.2 फ़र्मवेयर डेटा की सत्यनिष्ठा सत्यापन। . . . . . . . . . . . . . . . . . 373
13.2.3 पूर्वampले . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
13.3 डेटा गोपनीयता सुरक्षा। . . . . . . . . . . . . . . . . . . . . . . . . . 374
13.3.1 डेटा एन्क्रिप्शन का परिचय। . . . . . . . . . . . . . . . . . . . . . 374
13.3.2 फ्लैश एन्क्रिप्शन योजना का परिचय। . . . . . . . . . . . . . . . . 376
13.3.3 फ़्लैश एन्क्रिप्शन कुंजी संग्रहण। . . . . . . . . . . . . . . . . . . . . . . 379
13.3.4 फ़्लैश एन्क्रिप्शन का कार्य मोड। . . . . . . . . . . . . . . . . . . . 380
13.3.5 फ्लैश एन्क्रिप्शन प्रक्रिया। . . . . . . . . . . . . . . . . . . . . . . . . . 381
13.3.6 एनवीएस एन्क्रिप्शन का परिचय। . . . . . . . . . . . . . . . . . . . . . 383
13.3.7 पूर्वampफ्लैश एन्क्रिप्शन और एनवीएस एन्क्रिप्शन के बारे में। . . . . . . . . . . 384
13.4 डेटा वैधता संरक्षण। . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
13.4.1 डिजिटल हस्ताक्षर का परिचय। . . . . . . . . . . . . . . . . . . . . 386
13.4.2 ओवरview सुरक्षित बूट योजना की. . . . . . . . . . . . . . . . . . . . . 388
13.4.3 सॉफ्टवेयर सिक्योर बूट का परिचय। . . . . . . . . . . . . . . . . . . 388 13.4.4 हार्डवेयर सुरक्षित बूट का परिचय। . . . . . . . . . . . . . . . . . 390 13.4.5 पूर्वampलेस. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 13.5 अभ्यास: बड़े पैमाने पर उत्पादन में सुरक्षा सुविधाएँ। . . . . . . . . . . . . . . . . . 396 13.5.1 फ़्लैश एन्क्रिप्शन और सुरक्षित बूट। . . . . . . . . . . . . . . . . . . . . 396 13.5.2 बैच फ़्लैश टूल के साथ फ़्लैश एन्क्रिप्शन और सुरक्षित बूट सक्षम करना। . 397 13.5.3 स्मार्ट लाइट प्रोजेक्ट में फ्लैश एन्क्रिप्शन और सुरक्षित बूट सक्षम करना। . . 398 13.6 सारांश। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
बड़े पैमाने पर उत्पादन के लिए 14 फ़र्मवेयर जलाना और परीक्षण करना
399
14.1 बड़े पैमाने पर उत्पादन में फर्मवेयर जलाना। . . . . . . . . . . . . . . . . . . . . . 399
14.1.1 डेटा विभाजन को परिभाषित करना। . . . . . . . . . . . . . . . . . . . . . . . . . 399
14.1.2 फ़र्मवेयर बर्निंग। . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
14.2 बड़े पैमाने पर उत्पादन परीक्षण। . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
14.3 अभ्यास: स्मार्ट लाइट प्रोजेक्ट में बड़े पैमाने पर उत्पादन डेटा। . . . . . . . . . . . . 404
14.4 सारांश. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
15 ईएसपी अंतर्दृष्टि: रिमोट मॉनिटरिंग प्लेटफार्म
405
15.1 ईएसपी इनसाइट्स का परिचय। . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
15.2 ईएसपी इनसाइट्स के साथ शुरुआत करना। . . . . . . . . . . . . . . . . . . . . . . . . 409
15.2.1 ईएसपी-इनसाइट्स प्रोजेक्ट में ईएसपी इनसाइट्स के साथ शुरुआत करना। . . . . . 409
15.2.2 रनिंग एक्सampईएसपी-इनसाइट्स प्रोजेक्ट में ले। . . . . . . . . . . . . . . 411
15.2.3 कोरडम्प सूचना की रिपोर्टिंग। . . . . . . . . . . . . . . . . . . . . 411
15.2.4 रुचि के लॉग को अनुकूलित करना। . . . . . . . . . . . . . . . . . . . . . . . 412
15.2.5 रिबूट कारण की रिपोर्टिंग। . . . . . . . . . . . . . . . . . . . . . . . . 413
15.2.6 कस्टम मेट्रिक्स की रिपोर्टिंग। . . . . . . . . . . . . . . . . . . . . . . . . 413
15.3 अभ्यास: स्मार्ट लाइट प्रोजेक्ट में ईएसपी इनसाइट्स का उपयोग करना। . . . . . . . . . . . . . . 416
15.4 सारांश. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
परिचय
ESP32-C3 एक सिंगल-कोर वाई-फाई और ब्लूटूथ 5 (LE) माइक्रोकंट्रोलर SoC है, जो ओपन-सोर्स RISC-V आर्किटेक्चर पर आधारित है। यह शक्ति, I/O क्षमताओं और सुरक्षा का सही संतुलन बनाता है, इस प्रकार कनेक्टेड डिवाइसों के लिए इष्टतम लागत प्रभावी समाधान प्रदान करता है। ESP32-C3 परिवार के विभिन्न अनुप्रयोगों को दिखाने के लिए, एस्प्रेसिफ की यह पुस्तक आपको AIoT के माध्यम से एक दिलचस्प यात्रा पर ले जाएगी, जो IoT परियोजना विकास और पर्यावरण सेटअप की मूल बातें से लेकर व्यावहारिक अनुभव तक है।ampलेस. पहले चार अध्याय IoT, ESP रेनमेकर और ESP-IDF के बारे में बात करते हैं। अध्याय 5 और 6 हार्डवेयर डिज़ाइन और ड्राइवर विकास पर संक्षिप्त जानकारी। जैसे-जैसे आप आगे बढ़ेंगे, आपको पता चलेगा कि वाई-फाई नेटवर्क और मोबाइल ऐप्स के माध्यम से अपने प्रोजेक्ट को कैसे कॉन्फ़िगर किया जाए। अंत में, आप अपने प्रोजेक्ट को अनुकूलित करना और उसे बड़े पैमाने पर उत्पादन में लगाना सीखेंगे।
यदि आप संबंधित क्षेत्रों में एक इंजीनियर हैं, एक सॉफ्टवेयर आर्किटेक्ट हैं, एक शिक्षक हैं, एक छात्र हैं, या कोई भी जो IoT में रुचि रखता है, तो यह पुस्तक आपके लिए है।
आप कोड पूर्व डाउनलोड कर सकते हैंampGitHub पर Espressif की साइट से इस पुस्तक में इसका उपयोग किया गया है। IoT विकास पर नवीनतम जानकारी के लिए, कृपया हमारे आधिकारिक खाते का अनुसरण करें।
प्रस्तावना
एक सूचनाप्रद दुनिया
इंटरनेट की लहर पर सवार होकर, इंटरनेट ऑफ थिंग्स (IoT) ने डिजिटल अर्थव्यवस्था में एक नए प्रकार का बुनियादी ढांचा बनने के लिए अपनी शानदार शुरुआत की। प्रौद्योगिकी को जनता के करीब लाने के लिए, एस्प्रेसिफ सिस्टम्स इस दृष्टिकोण के लिए काम करता है कि जीवन के सभी क्षेत्रों के डेवलपर्स हमारे समय की कुछ सबसे गंभीर समस्याओं को हल करने के लिए IoT का उपयोग कर सकते हैं। हम भविष्य से "इंटेलिजेंट नेटवर्क ऑफ ऑल थिंग्स" की दुनिया की उम्मीद कर रहे हैं।
हमारे स्वयं के चिप्स को डिज़ाइन करना उस दृष्टिकोण का एक महत्वपूर्ण घटक बनता है। यह एक मैराथन है, जिसमें तकनीकी सीमाओं के विरुद्ध निरंतर सफलताओं की आवश्यकता है। "गेम चेंजर" ईएसपी8266 से लेकर वाई-फाई और ब्लूटूथआर (एलई) कनेक्टिविटी को एकीकृत करने वाली ईएसपी32 श्रृंखला तक, इसके बाद एआई त्वरण से सुसज्जित ईएसपी32-एस3 तक, एस्प्रेसिफ एआईओटी समाधानों के लिए उत्पादों पर शोध और विकास करना कभी बंद नहीं करता है। हमारे ओपन-सोर्स सॉफ्टवेयर, जैसे कि IoT डेवलपमेंट फ्रेमवर्क ESP-IDF, मेश डेवलपमेंट फ्रेमवर्क ESP-MDF और डिवाइस कनेक्टिविटी प्लेटफॉर्म ESP रेनमेकर के साथ, हमने AIoT अनुप्रयोगों के निर्माण के लिए एक स्वतंत्र ढांचा बनाया है।
जुलाई 2022 तक, एस्प्रेसिफ के IoT चिपसेट की संचयी शिपमेंट 800 मिलियन से अधिक हो गई है, जो वाई-फाई एमसीयू बाजार में अग्रणी है और दुनिया भर में बड़ी संख्या में कनेक्टेड डिवाइसों को शक्ति प्रदान कर रही है। उत्कृष्टता के लिए प्रयास प्रत्येक एस्प्रेसिफ़ उत्पाद को उसके उच्च स्तर के एकीकरण और लागत दक्षता के लिए एक बड़ी हिट बनाता है। ESP32-C3 की रिलीज़ एस्प्रेसिफ़ की स्व-विकसित तकनीक में एक महत्वपूर्ण मील का पत्थर है। यह 32KB SRAM के साथ सिंगल-कोर, 400-बिट, RISC-V-आधारित MCU है, जो 160MHz पर चल सकता है। इसमें लंबी दूरी के समर्थन के साथ 2.4 गीगाहर्ट्ज वाई-फाई और ब्लूटूथ 5 (एलई) एकीकृत है। यह शक्ति, I/O क्षमताओं और सुरक्षा का एक अच्छा संतुलन बनाता है, इस प्रकार कनेक्टेड डिवाइसों के लिए इष्टतम लागत प्रभावी समाधान प्रदान करता है। ऐसे शक्तिशाली ESP32-C3 पर आधारित, इस पुस्तक का उद्देश्य पाठकों को विस्तृत चित्रण और व्यावहारिक पूर्व के साथ IoT-संबंधित ज्ञान को समझने में मदद करना हैampलेस.
हमने यह पुस्तक क्यों लिखी?
एस्प्रेसिफ सिस्टम्स एक सेमीकंडक्टर कंपनी से कहीं अधिक है। यह एक IoT प्लेटफ़ॉर्म कंपनी भी है, जो प्रौद्योगिकी के क्षेत्र में हमेशा सफलताओं और नवाचारों के लिए प्रयासरत रहती है। साथ ही, एस्प्रेसिफ़ ने ओपन-सोर्स किया है और अपने स्वयं-विकसित ऑपरेटिंग सिस्टम और सॉफ़्टवेयर ढांचे को समुदाय के साथ साझा किया है, जिससे एक अद्वितीय पारिस्थितिकी तंत्र बनता है। इंजीनियर, निर्माता और प्रौद्योगिकी उत्साही एस्प्रेसिफ़ के उत्पादों के आधार पर सक्रिय रूप से नए सॉफ़्टवेयर एप्लिकेशन विकसित करते हैं, स्वतंत्र रूप से संवाद करते हैं और अपने अनुभव साझा करते हैं। आप YouTube और GitHub जैसे विभिन्न प्लेटफार्मों पर हर समय डेवलपर्स के आकर्षक विचार देख सकते हैं। एस्प्रेसिफ के उत्पादों की लोकप्रियता ने उन लेखकों की बढ़ती संख्या को प्रेरित किया है जिन्होंने अंग्रेजी, चीनी, जर्मन, फ्रेंच और जापानी सहित दस से अधिक भाषाओं में एस्प्रेसिफ चिपसेट पर आधारित 100 से अधिक किताबें लिखी हैं।
यह सामुदायिक भागीदारों का समर्थन और विश्वास है जो एस्प्रेसिफ़ के निरंतर नवाचार को प्रोत्साहित करता है। “हम अपने चिप्स, ऑपरेटिंग सिस्टम, फ्रेमवर्क, समाधान, क्लाउड, व्यवसाय प्रथाओं, उपकरण, दस्तावेज़ीकरण, लेखन, विचार इत्यादि को उन उत्तरों के लिए और अधिक प्रासंगिक बनाने का प्रयास करते हैं जिनकी लोगों को समकालीन जीवन की सबसे गंभीर समस्याओं में आवश्यकता होती है। यह एस्प्रेसिफ़ की सर्वोच्च महत्वाकांक्षा और नैतिक दिशा-निर्देश है।" एस्प्रेसिफ़ के संस्थापक और सीईओ श्री टीओ स्वी एन ने कहा।
एस्प्रेसिफ़ पढ़ने और विचारों को महत्व देता है। चूंकि IoT प्रौद्योगिकी के निरंतर उन्नयन से इंजीनियरों पर उच्च आवश्यकताएं उत्पन्न होती हैं, हम अधिक लोगों को IoT चिप्स, ऑपरेटिंग सिस्टम, सॉफ्टवेयर फ्रेमवर्क, एप्लिकेशन स्कीम और क्लाउड सेवा उत्पादों में तेजी से महारत हासिल करने में कैसे मदद कर सकते हैं? जैसा कि कहा जाता है, किसी व्यक्ति को मछली देने से बेहतर है कि उसे मछली पकड़ना सिखाया जाए। एक विचार-मंथन सत्र में, हमारे मन में यह विचार आया कि हम IoT विकास के प्रमुख ज्ञान को व्यवस्थित रूप से सुलझाने के लिए एक पुस्तक लिख सकते हैं। हमने इसे शुरू किया, तुरंत वरिष्ठ इंजीनियरों के एक समूह को इकट्ठा किया, और एम्बेडेड प्रोग्रामिंग, IoT हार्डवेयर और सॉफ्टवेयर विकास में तकनीकी टीम के अनुभव को संयोजित किया, सभी ने इस पुस्तक के प्रकाशन में योगदान दिया। लिखने की प्रक्रिया में, हमने वस्तुनिष्ठ और निष्पक्ष होने, कोकून से मुक्त होने और इंटरनेट ऑफ थिंग्स की जटिलता और आकर्षण को बताने के लिए संक्षिप्त अभिव्यक्तियों का उपयोग करने की पूरी कोशिश की। हमने विकास प्रक्रिया में आने वाले प्रश्नों का स्पष्ट रूप से उत्तर देने और प्रासंगिक तकनीशियनों और निर्णय निर्माताओं के लिए व्यावहारिक IoT विकास दिशानिर्देश प्रदान करने के लिए समुदाय की प्रतिक्रिया और सुझावों का हवाला देते हुए सामान्य प्रश्नों का सावधानीपूर्वक सारांश दिया है।
पुस्तक संरचना
यह पुस्तक एक इंजीनियर-केंद्रित परिप्रेक्ष्य लेती है और IoT परियोजना विकास के लिए आवश्यक ज्ञान को चरण दर चरण समझाती है। यह निम्नलिखित चार भागों से बना है:
· तैयारी (अध्याय 1): यह भाग IoT की वास्तुकला, विशिष्ट IoT परियोजना ढांचे, ESP रेनमेकर क्लाउड प्लेटफ़ॉर्म और विकास वातावरण ESP-IDF का परिचय देता है, ताकि IoT परियोजना विकास के लिए एक ठोस आधार तैयार किया जा सके।
· हार्डवेयर और ड्राइवर विकास (अध्याय 5): ईएसपी6-सी32 चिपसेट के आधार पर, यह भाग न्यूनतम हार्डवेयर सिस्टम और ड्राइवर विकास पर विस्तार से बताता है, और डिमिंग, रंग ग्रेडिंग और वायरलेस संचार के नियंत्रण को लागू करता है।
· वायरलेस संचार और नियंत्रण (अध्याय 7): यह भाग ईएसपी11-सी32 चिप, स्थानीय और क्लाउड नियंत्रण प्रोटोकॉल और उपकरणों के स्थानीय और रिमोट नियंत्रण पर आधारित बुद्धिमान वाई-फाई कॉन्फ़िगरेशन योजना की व्याख्या करता है। यह स्मार्टफोन ऐप विकसित करने, फर्मवेयर अपग्रेड और संस्करण प्रबंधन के लिए योजनाएं भी प्रदान करता है।
· अनुकूलन और बड़े पैमाने पर उत्पादन (अध्याय 12-15): यह भाग उन्नत IoT अनुप्रयोगों के लिए है, जो बिजली प्रबंधन, कम-शक्ति अनुकूलन और बढ़ी हुई सुरक्षा में उत्पादों के अनुकूलन पर ध्यान केंद्रित करता है। यह बड़े पैमाने पर उत्पादन में फर्मवेयर बर्निंग और परीक्षण का भी परिचय देता है, और रिमोट मॉनिटरिंग प्लेटफॉर्म ईएसपी इनसाइट्स के माध्यम से डिवाइस फर्मवेयर की रनिंग स्थिति और लॉग का निदान कैसे करता है।
सोर्स कोड के बारे में
पाठक पूर्व चला सकते हैंampइस पुस्तक में प्रोग्राम या तो मैन्युअल रूप से कोड दर्ज करके या पुस्तक के साथ आने वाले स्रोत कोड का उपयोग करके। हम सिद्धांत और व्यवहार के संयोजन पर जोर देते हैं, और इस प्रकार लगभग हर अध्याय में स्मार्ट लाइट प्रोजेक्ट पर आधारित एक अभ्यास अनुभाग निर्धारित करते हैं। सभी कोड ओपन-सोर्स हैं। पाठकों का स्रोत कोड डाउनलोड करने और GitHub और हमारे आधिकारिक मंच esp32.com पर इस पुस्तक से संबंधित अनुभागों में चर्चा करने के लिए स्वागत है। इस पुस्तक का ओपन-सोर्स कोड अपाचे लाइसेंस 2.0 की शर्तों के अधीन है।
लेखक का नोट
यह पुस्तक आधिकारिक तौर पर एस्प्रेसिफ सिस्टम्स द्वारा निर्मित है और कंपनी के वरिष्ठ इंजीनियरों द्वारा लिखी गई है। यह IoT-संबंधित उद्योगों में प्रबंधकों और अनुसंधान एवं विकास कर्मियों, संबंधित प्रमुख कंपनियों के शिक्षकों और छात्रों और इंटरनेट ऑफ थिंग्स के क्षेत्र में उत्साही लोगों के लिए उपयुक्त है। हमें उम्मीद है कि यह पुस्तक एक कार्य पुस्तिका, एक संदर्भ और एक अच्छे शिक्षक और मित्र की तरह काम आ सकती है।
इस पुस्तक को संकलित करते समय, हमने देश और विदेश के विशेषज्ञों, विद्वानों और तकनीशियनों के कुछ प्रासंगिक शोध परिणामों का उल्लेख किया, और हमने उन्हें अकादमिक मानदंडों के अनुसार उद्धृत करने की पूरी कोशिश की। हालाँकि, यह अपरिहार्य है कि कुछ चूकें हों, इसलिए यहां हम सभी प्रासंगिक लेखकों के प्रति अपना गहरा सम्मान और आभार व्यक्त करना चाहते हैं। इसके अलावा, हमने इंटरनेट से जानकारी उद्धृत की है, इसलिए हम मूल लेखकों और प्रकाशकों को धन्यवाद देना चाहते हैं और क्षमा चाहते हैं कि हम जानकारी के प्रत्येक टुकड़े का स्रोत नहीं बता सकते।
उच्च गुणवत्ता वाली पुस्तक तैयार करने के लिए, हमने आंतरिक चर्चाओं के दौर आयोजित किए हैं, और परीक्षण पाठकों और प्रकाशक संपादकों के सुझावों और प्रतिक्रिया से सीखा है। यहां, हम आपकी मदद के लिए फिर से धन्यवाद देना चाहते हैं, जिसने इस सफल कार्य में योगदान दिया।
अंतिम, लेकिन सबसे महत्वपूर्ण बात, एस्प्रेसिफ़ के सभी लोगों को धन्यवाद जिन्होंने हमारे उत्पादों के जन्म और लोकप्रियकरण के लिए इतनी मेहनत की है।
IoT परियोजनाओं के विकास में ज्ञान की एक विस्तृत श्रृंखला शामिल है। पुस्तक की लंबाई, साथ ही लेखक के स्तर और अनुभव तक सीमित, चूक अपरिहार्य हैं। इसलिए हमारा विनम्र अनुरोध है कि विशेषज्ञ और पाठक हमारी गलतियों की आलोचना करें और उन्हें सुधारें। यदि इस पुस्तक के लिए आपके पास कोई सुझाव है, तो कृपया हमसे Book@espressif.com पर संपर्क करें। हमें इंतजार है आपके फीडबैक का।
इस पुस्तक का उपयोग कैसे करे?
इस पुस्तक में परियोजनाओं का कोड खुला स्रोत किया गया है। आप इसे हमारे GitHub रिपॉजिटरी से डाउनलोड कर सकते हैं और अपने विचार और प्रश्न हमारे आधिकारिक मंच पर साझा कर सकते हैं। GitHub: https://github.com/espressif/book-esp32c3-iot-projects फोरम: https://www.esp32.com/bookc3 पूरी किताब में, नीचे दिखाए गए अनुसार कुछ हिस्सों को हाइलाइट किया जाएगा।
स्रोत कोड इस पुस्तक में, हम सिद्धांत और व्यवहार के संयोजन पर जोर देते हैं, और इस प्रकार लगभग हर अध्याय में स्मार्ट लाइट परियोजना के बारे में एक अभ्यास अनुभाग निर्धारित करते हैं। से शुरू होने वाली दो पंक्तियों के बीच संबंधित चरणों और स्रोत पृष्ठ को चिह्नित किया जाएगा tag सोर्स कोड।
नोट/टिप्स यह वह जगह है जहां आपको अपने प्रोग्राम को सफलतापूर्वक डीबग करने के लिए कुछ महत्वपूर्ण जानकारी और अनुस्मारक मिल सकते हैं। से शुरू होने वाली दो मोटी रेखाओं के बीच उन्हें चिह्नित किया जाएगा tag नोट या टिप्स.
इस पुस्तक में अधिकांश कमांड लिनक्स के तहत निष्पादित होते हैं, जो "$" अक्षर द्वारा प्रेरित होते हैं। यदि कमांड को निष्पादित करने के लिए सुपरयूज़र विशेषाधिकारों की आवश्यकता होती है, तो प्रॉम्प्ट को "#" से बदल दिया जाएगा। मैक सिस्टम पर कमांड प्रॉम्प्ट "%" है, जैसा कि मैक पर ईएसपी-आईडीएफ स्थापित करने के अनुभाग 4.2.3 में उपयोग किया गया है।
इस पुस्तक का मुख्य पाठ चार्टर में मुद्रित किया जाएगा, जबकि कोड पूर्वampलेस, घटक, फ़ंक्शन, चर, कोड file नाम, कोड निर्देशिकाएं और स्ट्रिंग्स कूरियर न्यू में होंगी।
वे आदेश या पाठ जिन्हें उपयोगकर्ता द्वारा इनपुट करने की आवश्यकता है, और वे आदेश जिन्हें "एंटर" कुंजी दबाकर दर्ज किया जा सकता है, कूरियर न्यू बोल्ड में मुद्रित किए जाएंगे। लॉग और कोड ब्लॉक हल्के नीले बक्सों में प्रस्तुत किए जाएंगे।
Exampपर:
दूसरा, एनवीएस विभाजन बाइनरी उत्पन्न करने के लिए esp-idf/components/nvs फ़्लैश/nvs विभाजन जनरेटर/nvs विभाजन gen.py का उपयोग करें file निम्नलिखित कमांड के साथ डेवलपमेंट होस्ट पर:
$ पायथन $आईडीएफ पथ/घटक/एनवीएस फ्लैश/एनवीएस विभाजन जनरेटर/एनवीएस विभाजन जेन.पीई -इनपुट मास प्रोड.सीएसवी -आउटपुट मास प्रोड.बिन -आकार एनवीएस विभाजन आकार
अध्याय 1
परिचय
को
आईओटी
20वीं सदी के अंत में, कंप्यूटर नेटवर्क और संचार प्रौद्योगिकियों के उदय के साथ, इंटरनेट तेजी से लोगों के जीवन में एकीकृत हो गया। जैसे-जैसे इंटरनेट तकनीक परिपक्व होती जा रही है, इंटरनेट ऑफ थिंग्स (IoT) का विचार पैदा हुआ। शाब्दिक रूप से, IoT का मतलब एक इंटरनेट है जहां चीजें जुड़ी हुई हैं। जबकि मूल इंटरनेट स्थान और समय की सीमाओं को तोड़ता है और "व्यक्ति और व्यक्ति" के बीच की दूरी को कम करता है, IoT "चीजों" को एक महत्वपूर्ण भागीदार बनाता है, "लोगों" और "चीजों" को एक साथ लाता है। निकट भविष्य में, IoT सूचना उद्योग की प्रेरक शक्ति बनने के लिए तैयार है।
तो, इंटरनेट ऑफ थिंग्स क्या है?
इंटरनेट ऑफ थिंग्स को सटीक रूप से परिभाषित करना कठिन है, क्योंकि इसका अर्थ और दायरा लगातार विकसित हो रहा है। 1995 में, बिल गेट्स ने पहली बार अपनी पुस्तक द रोड अहेड में IoT का विचार सामने रखा। सीधे शब्दों में कहें तो IoT इंटरनेट के माध्यम से वस्तुओं को एक-दूसरे के साथ सूचनाओं का आदान-प्रदान करने में सक्षम बनाता है। इसका अंतिम लक्ष्य "इंटरनेट ऑफ एवरीथिंग" स्थापित करना है। यह IoT की प्रारंभिक व्याख्या है, साथ ही भविष्य की तकनीक की कल्पना भी है। तीस साल बाद, अर्थव्यवस्था और प्रौद्योगिकी के तेजी से विकास के साथ, कल्पना वास्तविकता में आ रही है। स्मार्ट उपकरणों, स्मार्ट घरों, स्मार्ट शहरों, वाहनों के इंटरनेट और पहनने योग्य उपकरणों से लेकर IoT प्रौद्योगिकियों द्वारा समर्थित "मेटावर्स" तक, नई अवधारणाएँ लगातार उभर रही हैं। इस अध्याय में, हम इंटरनेट ऑफ थिंग्स की वास्तुकला की व्याख्या के साथ शुरुआत करेंगे, और फिर आपको IoT की स्पष्ट समझ प्राप्त करने में मदद करने के लिए सबसे आम IoT एप्लिकेशन, स्मार्ट होम का परिचय देंगे।
1.1 IoT की वास्तुकला
इंटरनेट ऑफ थिंग्स में कई प्रौद्योगिकियां शामिल हैं जिनकी विभिन्न उद्योगों में अलग-अलग अनुप्रयोग आवश्यकताएं और रूप हैं। IoT की संरचना, प्रमुख प्रौद्योगिकियों और अनुप्रयोग विशेषताओं को सुलझाने के लिए, एक एकीकृत वास्तुकला और एक मानक तकनीकी प्रणाली स्थापित करना आवश्यक है। इस पुस्तक में, IoT की वास्तुकला को केवल चार परतों में विभाजित किया गया है: धारणा और नियंत्रण परत, नेटवर्क परत, प्लेटफ़ॉर्म परत और एप्लिकेशन परत।
धारणा और नियंत्रण परत IoT वास्तुकला के सबसे बुनियादी तत्व के रूप में, धारणा और नियंत्रण परत IoT की व्यापक समझ का एहसास करने के लिए मूल है। इसका मुख्य कार्य सूचना एकत्र करना, पहचानना और नियंत्रित करना है। इसमें धारणा की क्षमता वाले विभिन्न प्रकार के उपकरण शामिल हैं,
3
पहचान, नियंत्रण और निष्पादन, और भौतिक गुणों, व्यवहार संबंधी रुझान और डिवाइस की स्थिति जैसे डेटा को पुनः प्राप्त करने और विश्लेषण करने के लिए जिम्मेदार है। इस तरह, IoT को वास्तविक भौतिक दुनिया की पहचान हो जाती है। इसके अलावा, परत डिवाइस की स्थिति को नियंत्रित करने में भी सक्षम है।
इस परत के सबसे आम उपकरण विभिन्न सेंसर हैं, जो सूचना संग्रह और पहचान में महत्वपूर्ण भूमिका निभाते हैं। सेंसर मानव संवेदी अंगों की तरह होते हैं, जैसे दृष्टि के बराबर फोटोसेंसिटिव सेंसर, सुनने के लिए ध्वनिक सेंसर, गंध के लिए गैस सेंसर, और छूने के लिए दबाव और तापमान-संवेदनशील सेंसर। इन सभी "संवेदी अंगों" के साथ, वस्तुएं "जीवित" हो जाती हैं और भौतिक दुनिया की बुद्धिमान धारणा, पहचान और हेरफेर करने में सक्षम हो जाती हैं।
नेटवर्क परत नेटवर्क परत का मुख्य कार्य सूचना को प्रसारित करना है, जिसमें धारणा और नियंत्रण परत से प्राप्त डेटा को निर्दिष्ट लक्ष्य तक, साथ ही एप्लिकेशन परत से जारी किए गए आदेशों को धारणा और नियंत्रण परत पर वापस भेजना शामिल है। यह IoT प्रणाली की विभिन्न परतों को जोड़ने वाले एक महत्वपूर्ण संचार पुल के रूप में कार्य करता है। इंटरनेट ऑफ थिंग्स का एक बुनियादी मॉडल स्थापित करने के लिए, इसमें वस्तुओं को नेटवर्क में एकीकृत करने के दो चरण शामिल हैं: इंटरनेट तक पहुंच और इंटरनेट के माध्यम से ट्रांसमिशन।
इंटरनेट तक पहुंच इंटरनेट व्यक्ति-व्यक्ति के बीच अंतर्संबंध को सक्षम बनाता है, लेकिन चीजों को बड़े परिवार में शामिल करने में विफल रहता है। IoT के आगमन से पहले, अधिकांश चीज़ें "नेटवर्क-सक्षम" नहीं थीं। प्रौद्योगिकी के निरंतर विकास के लिए धन्यवाद, IoT चीजों को इंटरनेट से जोड़ने का प्रबंधन करता है, इस प्रकार "लोगों और चीजों", और "चीजों और चीजों" के बीच अंतरसंबंध को साकार करता है। इंटरनेट कनेक्शन लागू करने के दो सामान्य तरीके हैं: वायर्ड नेटवर्क एक्सेस और वायरलेस नेटवर्क एक्सेस।
वायर्ड नेटवर्क एक्सेस विधियों में ईथरनेट, सीरियल संचार (जैसे, आरएस-232, आरएस-485) और यूएसबी शामिल हैं, जबकि वायरलेस नेटवर्क एक्सेस वायरलेस संचार पर निर्भर करता है, जिसे आगे छोटी दूरी के वायरलेस संचार और लंबी दूरी के वायरलेस संचार में विभाजित किया जा सकता है।
छोटी दूरी के वायरलेस संचार में ज़िगबी, ब्लूटूथर, वाई-फाई, नियर-फील्ड कम्युनिकेशन (एनएफसी), और रेडियो फ्रीक्वेंसी आइडेंटिफिकेशन (आरएफआईडी) शामिल हैं। लंबी दूरी के वायरलेस संचार में एन्हांस्ड मशीन टाइप कम्युनिकेशन (ईएमटीसी), लोरा, नैरो बैंड इंटरनेट ऑफ थिंग्स (एनबी-आईओटी), 2जी, 3जी, 4जी, 5जी आदि शामिल हैं।
इंटरनेट के माध्यम से ट्रांसमिशन इंटरनेट एक्सेस के विभिन्न तरीकों से डेटा का संबंधित भौतिक ट्रांसमिशन लिंक होता है। अगली बात यह तय करना है कि डेटा संचारित करने के लिए किस संचार प्रोटोकॉल का उपयोग किया जाए। इंटरनेट टर्मिनलों की तुलना में, अधिकांश IoT टर्मिनलों में वर्तमान में कम हैं
4 ESP32-C3 वायरलेस एडवेंचर: IoT के लिए एक व्यापक गाइड
उपलब्ध संसाधन, जैसे प्रसंस्करण प्रदर्शन, भंडारण क्षमता, नेटवर्क दर, आदि, इसलिए एक संचार प्रोटोकॉल चुनना आवश्यक है जो IoT अनुप्रयोगों में कम संसाधनों पर कब्जा करता है। दो संचार प्रोटोकॉल हैं जो आज व्यापक रूप से उपयोग किए जाते हैं: संदेश कतारबद्ध टेलीमेट्री ट्रांसपोर्ट (एमक्यूटीटी) और कॉन्स्ट्रेन्ड एप्लिकेशन प्रोटोकॉल (सीओएपी)।
प्लेटफ़ॉर्म परत प्लेटफ़ॉर्म परत मुख्य रूप से IoT क्लाउड प्लेटफ़ॉर्म को संदर्भित करती है। जब सभी IoT टर्मिनलों को नेटवर्क किया जाता है, तो उनके डेटा को गणना और संग्रहीत करने के लिए IoT क्लाउड प्लेटफ़ॉर्म पर एकत्रित करने की आवश्यकता होती है। प्लेटफ़ॉर्म परत मुख्य रूप से बड़े उपकरणों तक पहुंच और प्रबंधन की सुविधा में IoT अनुप्रयोगों का समर्थन करती है। यह IoT टर्मिनलों को क्लाउड प्लेटफ़ॉर्म से जोड़ता है, टर्मिनल डेटा एकत्र करता है, और टर्मिनलों को कमांड जारी करता है, ताकि रिमोट कंट्रोल लागू किया जा सके। उद्योग अनुप्रयोगों के लिए उपकरण आवंटित करने के लिए एक मध्यवर्ती सेवा के रूप में, प्लेटफ़ॉर्म परत संपूर्ण IoT आर्किटेक्चर में एक कनेक्टिंग भूमिका निभाती है, जो अमूर्त व्यावसायिक तर्क और मानकीकृत कोर डेटा मॉडल को ले जाती है, जो न केवल उपकरणों की तीव्र पहुंच का एहसास कर सकती है, बल्कि शक्तिशाली मॉड्यूलर क्षमताएं भी प्रदान करती है। उद्योग अनुप्रयोग परिदृश्यों में विभिन्न आवश्यकताओं को पूरा करने के लिए। प्लेटफ़ॉर्म परत में मुख्य रूप से डिवाइस एक्सेस, डिवाइस प्रबंधन, सुरक्षा प्रबंधन, संदेश संचार, निगरानी संचालन और रखरखाव और डेटा एप्लिकेशन जैसे कार्यात्मक मॉड्यूल शामिल हैं।
· डिवाइस एक्सेस, टर्मिनलों और IoT क्लाउड प्लेटफार्मों के बीच कनेक्शन और संचार को साकार करना।
· डिवाइस प्रबंधन, जिसमें डिवाइस निर्माण, डिवाइस रखरखाव, डेटा रूपांतरण, डेटा सिंक्रनाइज़ेशन और डिवाइस वितरण जैसे कार्य शामिल हैं।
· सुरक्षा प्रबंधन, सुरक्षा प्रमाणीकरण और संचार सुरक्षा के दृष्टिकोण से IoT डेटा ट्रांसमिशन की सुरक्षा सुनिश्चित करना।
· संदेश संचार, जिसमें तीन ट्रांसमिशन दिशाएँ शामिल हैं, अर्थात्, टर्मिनल IoT क्लाउड प्लेटफ़ॉर्म पर डेटा भेजता है, IoT क्लाउड प्लेटफ़ॉर्म सर्वर साइड या अन्य IoT क्लाउड प्लेटफ़ॉर्म पर डेटा भेजता है, और सर्वर साइड दूर से IoT उपकरणों को नियंत्रित करता है।
· ओ एंड एम की निगरानी, जिसमें निगरानी और निदान, फर्मवेयर अपग्रेड, ऑनलाइन डिबगिंग, लॉग सेवाएं आदि शामिल हैं।
· डेटा अनुप्रयोग, जिसमें डेटा का भंडारण, विश्लेषण और अनुप्रयोग शामिल है।
एप्लिकेशन परत एप्लिकेशन परत एप्लिकेशन को प्रबंधित करने, डेटाबेस और विश्लेषण सॉफ़्टवेयर जैसे टूल के साथ फ़िल्टर करने और संसाधित करने के लिए प्लेटफ़ॉर्म परत से डेटा का उपयोग करती है। परिणामी डेटा का उपयोग वास्तविक दुनिया के IoT अनुप्रयोगों जैसे स्मार्ट हेल्थकेयर, स्मार्ट कृषि, स्मार्ट होम और स्मार्ट शहरों के लिए किया जा सकता है।
बेशक, IoT की वास्तुकला को अधिक परतों में विभाजित किया जा सकता है, लेकिन इसमें कितनी भी परतें हों, अंतर्निहित सिद्धांत मूलतः वही रहता है। सीखना
अध्याय 1. IoT 5 का परिचय
IoT की वास्तुकला के बारे में जानकारी IoT प्रौद्योगिकियों के बारे में हमारी समझ को गहरा करने और पूरी तरह कार्यात्मक IoT परियोजनाओं का निर्माण करने में मदद करती है।
1.2 स्मार्ट घरों में IoT अनुप्रयोग
IoT ने जीवन के सभी क्षेत्रों में प्रवेश कर लिया है, और हमारे लिए सबसे निकट से संबंधित IoT एप्लिकेशन स्मार्ट होम है। कई पारंपरिक उपकरण अब एक या अधिक IoT उपकरणों से सुसज्जित हैं, और कई नवनिर्मित घर शुरू से ही IoT प्रौद्योगिकियों के साथ डिज़ाइन किए गए हैं। चित्र 1.1 कुछ सामान्य स्मार्ट घरेलू उपकरण दिखाता है।
चित्र 1.1. सामान्य स्मार्ट घरेलू उपकरण स्मार्ट होम के विकास को सरलता से स्मार्ट उत्पादों में विभाजित किया जा सकता हैtagई, दृश्य इंटरकनेक्शन एसtagई और बुद्धिमान एसtagई, जैसा कि चित्र 1.2 में दिखाया गया है।
चित्र 1.2. विकास एसtagस्मार्ट होम 6 ईएसपी32-सी3 वायरलेस एडवेंचर का ई: आईओटी के लिए एक व्यापक गाइड
पहला एसtagयह स्मार्ट उत्पादों के बारे में है। पारंपरिक घरों से अलग, स्मार्ट घरों में, IoT डिवाइस सेंसर के साथ सिग्नल प्राप्त करते हैं, और वाई-फाई, ब्लूटूथ LE और ZigBee जैसी वायरलेस संचार प्रौद्योगिकियों के माध्यम से नेटवर्क किए जाते हैं। उपयोगकर्ता स्मार्ट उत्पादों को विभिन्न तरीकों से नियंत्रित कर सकते हैं, जैसे स्मार्टफोन ऐप, वॉयस असिस्टेंट, स्मार्ट स्पीकर नियंत्रण, आदि। दूसरा एसtagयह दृश्य इंटरकनेक्शन पर केंद्रित है। इस एस मेंtagई, डेवलपर्स अब एकल स्मार्ट उत्पाद को नियंत्रित करने पर विचार नहीं कर रहे हैं, बल्कि दो या दो से अधिक स्मार्ट उत्पादों को आपस में जोड़ने, कुछ हद तक स्वचालित करने और अंत में एक कस्टम दृश्य मोड बनाने पर विचार कर रहे हैं। पूर्व के लिएampले, जब उपयोगकर्ता कोई दृश्य मोड बटन दबाता है, तो रोशनी, पर्दे और एयर कंडीशनर स्वचालित रूप से प्रीसेट के अनुसार अनुकूलित हो जाएंगे। बेशक, एक शर्त यह है कि लिंकेज लॉजिक आसानी से सेट हो, जिसमें ट्रिगर स्थितियां और निष्पादन क्रियाएं शामिल हों। कल्पना करें कि एयर कंडीशनिंग हीटिंग मोड तब चालू हो जाता है जब इनडोर तापमान 10 डिग्री सेल्सियस से नीचे चला जाता है; सुबह 7 बजे, उपयोगकर्ता को जगाने के लिए संगीत बजाया जाता है, स्मार्ट पर्दे खोले जाते हैं, और चावल कुकर या ब्रेड टोस्टर एक स्मार्ट सॉकेट के माध्यम से शुरू होता है; जैसे ही उपयोगकर्ता उठता है और कपड़े धोता है, नाश्ता पहले ही परोस दिया जाता है, ताकि काम पर जाने में कोई देरी न हो। हमारा जीवन कितना सुविधाजनक हो गया है! तीसरा एसtagई इंटेलिजेंस के पास जाता हैtagइ। जैसे-जैसे अधिक स्मार्ट घरेलू उपकरणों तक पहुंच होगी, वैसे-वैसे डेटा के प्रकार भी उत्पन्न होंगे। क्लाउड कंप्यूटिंग, बिग डेटा और आर्टिफिशियल इंटेलिजेंस की मदद से, यह ऐसा है जैसे स्मार्ट घरों में एक "स्मार्ट दिमाग" लगाया गया है, जिसे अब उपयोगकर्ता से लगातार कमांड की आवश्यकता नहीं है। वे पिछली बातचीत से डेटा एकत्र करते हैं और उपयोगकर्ता के व्यवहार पैटर्न और प्राथमिकताओं को सीखते हैं, ताकि निर्णय लेने के लिए सिफारिशें प्रदान करने सहित गतिविधियों को स्वचालित किया जा सके। वर्तमान में, अधिकांश स्मार्ट होम इंटरकनेक्शन के स्थान पर हैंtagइ। जैसे-जैसे स्मार्ट उत्पादों की पहुंच दर और बुद्धिमत्ता बढ़ रही है, संचार प्रोटोकॉल के बीच की बाधाएं दूर हो रही हैं। भविष्य में, स्मार्ट होम वास्तव में "स्मार्ट" बनने के लिए बाध्य हैं, बिल्कुल आयरन मैन में एआई सिस्टम जार्विस की तरह, जो न केवल उपयोगकर्ता को विभिन्न उपकरणों को नियंत्रित करने, दैनिक मामलों को संभालने में मदद कर सकता है, बल्कि सुपर कंप्यूटिंग शक्ति और सोचने की क्षमता भी प्रदान कर सकता है। बुद्धिमानों मेंtagई, मनुष्यों को मात्रा और गुणवत्ता दोनों में बेहतर सेवाएँ प्राप्त होंगी।
अध्याय 1. IoT 7 का परिचय
8 ESP32-C3 वायरलेस एडवेंचर: IoT के लिए एक व्यापक गाइड
2 IoT परियोजनाओं का अध्याय परिचय और अभ्यास
अध्याय 1 में, हमने IoT की वास्तुकला, और धारणा और नियंत्रण परत, नेटवर्क परत, प्लेटफ़ॉर्म परत और एप्लिकेशन परत की भूमिकाओं और अंतर्संबंधों के साथ-साथ स्मार्ट होम के विकास का परिचय दिया। हालाँकि, ठीक उसी तरह जब हम पेंटिंग करना सीखते हैं, तो सैद्धांतिक ज्ञान जानना पर्याप्त नहीं है। प्रौद्योगिकी में वास्तव में महारत हासिल करने के लिए हमें IoT परियोजनाओं को व्यवहार में लाने के लिए "अपने हाथ गंदे" करने होंगे। इसके अलावा, जब कोई परियोजना बड़े पैमाने पर उत्पादन की ओर बढ़ती हैtagई, नेटवर्क कनेक्शन, कॉन्फ़िगरेशन, IoT क्लाउड प्लेटफ़ॉर्म इंटरैक्शन, फ़र्मवेयर प्रबंधन और अपडेट, बड़े पैमाने पर उत्पादन प्रबंधन और सुरक्षा कॉन्फ़िगरेशन जैसे अधिक कारकों पर विचार करना आवश्यक है। तो, संपूर्ण IoT प्रोजेक्ट विकसित करते समय हमें किस पर ध्यान देने की आवश्यकता है? अध्याय 1 में, हमने उल्लेख किया है कि स्मार्ट होम सबसे आम IoT एप्लिकेशन परिदृश्यों में से एक है, और स्मार्ट लाइट सबसे बुनियादी और व्यावहारिक उपकरणों में से एक है, जिसका उपयोग घरों, होटलों, जिम, अस्पतालों आदि में किया जा सकता है। इस पुस्तक में, हम एक स्मार्ट लाइट परियोजना के निर्माण को शुरुआती बिंदु के रूप में लेंगे, इसके घटकों और विशेषताओं की व्याख्या करेंगे, और परियोजना विकास पर मार्गदर्शन प्रदान करेंगे। हमें आशा है कि आप अधिक IoT एप्लिकेशन बनाने के लिए इस मामले से निष्कर्ष निकाल सकते हैं।
2.1 विशिष्ट IoT परियोजनाओं का परिचय
विकास के संदर्भ में, IoT परियोजनाओं के बुनियादी कार्यात्मक मॉड्यूल को IoT उपकरणों के सॉफ्टवेयर और हार्डवेयर विकास, क्लाइंट एप्लिकेशन विकास और IoT क्लाउड प्लेटफ़ॉर्म विकास में वर्गीकृत किया जा सकता है। बुनियादी कार्यात्मक मॉड्यूल को स्पष्ट करना महत्वपूर्ण है, जिसका इस खंड में आगे वर्णन किया जाएगा।
2.1.1 सामान्य IoT उपकरणों के लिए बुनियादी मॉड्यूल
IoT उपकरणों के सॉफ़्टवेयर और हार्डवेयर विकास में निम्नलिखित बुनियादी मॉड्यूल शामिल हैं: डेटा संग्रह
IoT आर्किटेक्चर की निचली परत के रूप में, धारणा और नियंत्रण परत के IoT उपकरण डेटा संग्रह और संचालन नियंत्रण प्राप्त करने के लिए सेंसर और उपकरणों को उनके चिप्स और बाह्य उपकरणों के माध्यम से जोड़ते हैं।
9
खाता बाइंडिंग और प्रारंभिक कॉन्फ़िगरेशन अधिकांश IoT उपकरणों के लिए, खाता बाइंडिंग और प्रारंभिक कॉन्फ़िगरेशन, उदाहरण के लिए, एक परिचालन प्रक्रिया में पूरा किया जाता हैampले, वाई-फाई नेटवर्क को कॉन्फ़िगर करके उपयोगकर्ताओं के साथ डिवाइस कनेक्ट करना।
IoT क्लाउड प्लेटफ़ॉर्म के साथ इंटरेक्शन IoT उपकरणों की निगरानी और नियंत्रण के लिए, उन्हें IoT क्लाउड प्लेटफ़ॉर्म से कनेक्ट करना भी आवश्यक है, ताकि एक-दूसरे के बीच इंटरैक्शन के माध्यम से कमांड और रिपोर्ट स्थिति दी जा सके।
डिवाइस नियंत्रण IoT क्लाउड प्लेटफ़ॉर्म से कनेक्ट होने पर, डिवाइस क्लाउड के साथ संचार कर सकते हैं और पंजीकृत, बाध्य या नियंत्रित हो सकते हैं। उपयोगकर्ता IoT क्लाउड प्लेटफ़ॉर्म या स्थानीय संचार प्रोटोकॉल के माध्यम से स्मार्टफोन ऐप पर उत्पाद की स्थिति पूछ सकते हैं और अन्य ऑपरेशन कर सकते हैं।
फ़र्मवेयर अपग्रेड IoT डिवाइस निर्माताओं की ज़रूरतों के आधार पर फ़र्मवेयर अपग्रेड भी प्राप्त कर सकते हैं। क्लाउड द्वारा भेजे गए कमांड प्राप्त करके, फर्मवेयर अपग्रेड और संस्करण प्रबंधन का एहसास किया जाएगा। इस फर्मवेयर अपग्रेड सुविधा के साथ, आप IoT उपकरणों के कार्यों को लगातार बढ़ा सकते हैं, दोषों को ठीक कर सकते हैं और उपयोगकर्ता अनुभव में सुधार कर सकते हैं।
2.1.2 ग्राहक अनुप्रयोगों के बुनियादी मॉड्यूल
क्लाइंट एप्लिकेशन (उदाहरण के लिए, स्मार्टफ़ोन ऐप्स) में मुख्य रूप से निम्नलिखित बुनियादी मॉड्यूल शामिल हैं:
खाता प्रणाली और प्राधिकरण यह खाता और डिवाइस प्राधिकरण का समर्थन करता है।
डिवाइस नियंत्रण स्मार्टफ़ोन ऐप्स आमतौर पर नियंत्रण कार्यों से सुसज्जित होते हैं। उपयोगकर्ता IoT उपकरणों से आसानी से जुड़ सकते हैं, और उन्हें स्मार्टफोन ऐप्स के माध्यम से कभी भी, कहीं भी प्रबंधित कर सकते हैं। वास्तविक दुनिया के स्मार्ट होम में, उपकरणों को ज्यादातर स्मार्टफोन ऐप्स के माध्यम से नियंत्रित किया जाता है, जो न केवल उपकरणों के बुद्धिमान प्रबंधन को सक्षम बनाता है, बल्कि जनशक्ति की लागत भी बचाता है। इसलिए, क्लाइंट अनुप्रयोगों के लिए डिवाइस नियंत्रण आवश्यक है, जैसे डिवाइस फ़ंक्शन विशेषता नियंत्रण, दृश्य नियंत्रण, शेड्यूलिंग, रिमोट कंट्रोल, डिवाइस लिंकेज इत्यादि। स्मार्ट होम उपयोगकर्ता व्यक्तिगत आवश्यकताओं के अनुसार दृश्यों को भी अनुकूलित कर सकते हैं, प्रकाश व्यवस्था, घरेलू उपकरणों, प्रवेश द्वार को नियंत्रित कर सकते हैं , आदि, घरेलू जीवन को अधिक आरामदायक और सुविधाजनक बनाने के लिए। वे एयर कंडीशनिंग का समय निर्धारित कर सकते हैं, इसे दूर से बंद कर सकते हैं, दरवाजा अनलॉक होने पर हॉलवे लाइट को स्वचालित रूप से चालू कर सकते हैं, या एक बटन के साथ "थिएटर" मोड पर स्विच कर सकते हैं।
अधिसूचना क्लाइंट एप्लिकेशन IoT उपकरणों की वास्तविक समय स्थिति को अपडेट करते हैं, और डिवाइस के असामान्य होने पर अलर्ट भेजते हैं।
10 ESP32-C3 वायरलेस एडवेंचर: IoT के लिए एक व्यापक गाइड
बिक्री-पश्चात ग्राहक सेवा स्मार्टफ़ोन ऐप्स IoT डिवाइस विफलताओं और तकनीकी संचालन से संबंधित समस्याओं को समय पर हल करने के लिए, उत्पादों के लिए बिक्री-पश्चात सेवाएँ प्रदान कर सकते हैं।
विभिन्न उपयोगकर्ताओं की आवश्यकताओं को पूरा करने के लिए फीचर्ड फ़ंक्शन, अन्य फ़ंक्शन जोड़े जा सकते हैं, जैसे शेक, एनएफसी, जीपीएस इत्यादि। जीपीएस स्थान और दूरी के अनुसार दृश्य संचालन की सटीकता निर्धारित करने में मदद कर सकता है, जबकि शेक फ़ंक्शन उपयोगकर्ताओं को सेट करने की अनुमति देता है विशिष्ट डिवाइस या दृश्य के लिए हिलाकर निष्पादित किए जाने वाले आदेश।
2.1.3 सामान्य IoT क्लाउड प्लेटफ़ॉर्म का परिचय
IoT क्लाउड प्लेटफ़ॉर्म एक ऑल-इन-वन प्लेटफ़ॉर्म है जो डिवाइस प्रबंधन, डेटा सुरक्षा संचार और अधिसूचना प्रबंधन जैसे कार्यों को एकीकृत करता है। उनके लक्ष्य समूह और पहुंच के अनुसार, IoT क्लाउड प्लेटफ़ॉर्म को सार्वजनिक IoT क्लाउड प्लेटफ़ॉर्म (बाद में "सार्वजनिक क्लाउड" के रूप में संदर्भित) और निजी IoT क्लाउड प्लेटफ़ॉर्म (इसके बाद "निजी क्लाउड" के रूप में संदर्भित) में विभाजित किया जा सकता है।
सार्वजनिक क्लाउड आमतौर पर उद्यमों या व्यक्तियों के लिए साझा IoT क्लाउड प्लेटफ़ॉर्म को इंगित करता है, जो प्लेटफ़ॉर्म प्रदाताओं द्वारा संचालित और रखरखाव किया जाता है, और इंटरनेट के माध्यम से साझा किया जाता है। यह मुफ़्त या कम लागत वाला हो सकता है, और खुले सार्वजनिक नेटवर्क में सेवाएं प्रदान करता है, जैसे कि अलीबाबा क्लाउड, टेनसेंट क्लाउड, Baidu क्लाउड, AWS IoT, Google IoT, आदि। एक सहायक प्लेटफ़ॉर्म के रूप में, सार्वजनिक क्लाउड अपस्ट्रीम सेवा प्रदाताओं को एकीकृत कर सकता है और एक नई मूल्य श्रृंखला और पारिस्थितिकी तंत्र बनाने के लिए डाउनस्ट्रीम अंतिम उपयोगकर्ता।
निजी क्लाउड केवल एंटरप्राइज़ उपयोग के लिए बनाया गया है, इस प्रकार डेटा, सुरक्षा और सेवा गुणवत्ता पर सर्वोत्तम नियंत्रण की गारंटी देता है। इसकी सेवाओं और बुनियादी ढांचे को उद्यमों द्वारा अलग से बनाए रखा जाता है, और सहायक हार्डवेयर और सॉफ्टवेयर भी विशिष्ट उपयोगकर्ताओं को समर्पित होते हैं। उद्यम अपने व्यवसाय की जरूरतों को पूरा करने के लिए क्लाउड सेवाओं को अनुकूलित कर सकते हैं। वर्तमान में, कुछ स्मार्ट होम निर्माताओं के पास पहले से ही निजी IoT क्लाउड प्लेटफ़ॉर्म हैं और उनके आधार पर स्मार्ट होम एप्लिकेशन विकसित किए गए हैं।
पब्लिक क्लाउड और प्राइवेट क्लाउड का अपना-अपना एडवान होता हैtagतों, जिसे बाद में समझाया जाएगा।
संचार कनेक्टिविटी प्राप्त करने के लिए, व्यावसायिक सर्वर, IoT क्लाउड प्लेटफ़ॉर्म और स्मार्टफ़ोन ऐप्स के साथ-साथ डिवाइस साइड पर कम से कम एम्बेडेड विकास को पूरा करना आवश्यक है। इतने बड़े प्रोजेक्ट का सामना करते हुए, सार्वजनिक क्लाउड आमतौर पर प्रक्रिया को तेज करने के लिए डिवाइस-साइड और स्मार्टफोन ऐप्स के लिए सॉफ्टवेयर डेवलपमेंट किट प्रदान करता है। सार्वजनिक और निजी दोनों क्लाउड डिवाइस एक्सेस, डिवाइस प्रबंधन, डिवाइस शैडो और संचालन और रखरखाव सहित सेवाएं प्रदान करते हैं।
डिवाइस एक्सेस IoT क्लाउड प्लेटफ़ॉर्म को न केवल प्रोटोकॉल का उपयोग करके डिवाइस एक्सेस के लिए इंटरफ़ेस प्रदान करने की आवश्यकता है
अध्याय 2. IoT परियोजनाओं का परिचय और अभ्यास 11
जैसे कि एमक्यूटीटी, सीओएपी, एचटीटीपीएस, और Webसॉकेट, बल्कि जाली और अवैध उपकरणों को ब्लॉक करने के लिए डिवाइस सुरक्षा प्रमाणीकरण का कार्य भी करता है, जिससे समझौता होने के जोखिम को प्रभावी ढंग से कम किया जा सकता है। ऐसा प्रमाणीकरण आमतौर पर विभिन्न तंत्रों का समर्थन करता है, इसलिए जब उपकरणों का बड़े पैमाने पर उत्पादन किया जाता है, तो चयनित प्रमाणीकरण तंत्र के अनुसार डिवाइस प्रमाणपत्र को पूर्व-असाइन करना और इसे उपकरणों में जलाना आवश्यक है।
डिवाइस प्रबंधन IoT क्लाउड प्लेटफ़ॉर्म द्वारा प्रदान किया गया डिवाइस प्रबंधन फ़ंक्शन न केवल निर्माताओं को वास्तविक समय में उनके डिवाइस की सक्रियण स्थिति और ऑनलाइन स्थिति की निगरानी करने में मदद कर सकता है, बल्कि डिवाइस को जोड़ने/हटाने, पुनर्प्राप्त करने, समूहों को जोड़ने/हटाने, फ़र्मवेयर अपग्रेड जैसे विकल्पों की भी अनुमति देता है। , और संस्करण प्रबंधन।
डिवाइस शैडो IoT क्लाउड प्लेटफ़ॉर्म प्रत्येक डिवाइस के लिए एक सतत वर्चुअल संस्करण (डिवाइस शैडो) बना सकते हैं, और डिवाइस शैडो की स्थिति को इंटरनेट ट्रांसमिशन प्रोटोकॉल के माध्यम से स्मार्टफोन ऐप या अन्य डिवाइस द्वारा सिंक्रनाइज़ और प्राप्त किया जा सकता है। डिवाइस शैडो प्रत्येक डिवाइस की नवीनतम रिपोर्ट की गई स्थिति और अपेक्षित स्थिति को संग्रहीत करता है, और भले ही डिवाइस ऑफ़लाइन हो, फिर भी यह एपीआई को कॉल करके स्थिति प्राप्त कर सकता है। डिवाइस शैडो हमेशा ऑन एपीआई प्रदान करता है, जिससे डिवाइस के साथ इंटरैक्ट करने वाले स्मार्टफोन ऐप बनाना आसान हो जाता है।
संचालन और रखरखाव ओ एंड एम फ़ंक्शन में तीन पहलू शामिल हैं: · IoT उपकरणों और सूचनाओं के बारे में सांख्यिकीय जानकारी प्रदर्शित करना। · लॉग प्रबंधन डिवाइस के व्यवहार, ऊपर/नीचे संदेश प्रवाह और संदेश सामग्री के बारे में जानकारी पुनर्प्राप्ति की अनुमति देता है। · डिवाइस डिबगिंग कमांड डिलीवरी, कॉन्फ़िगरेशन अपडेट और IoT क्लाउड प्लेटफ़ॉर्म और डिवाइस संदेशों के बीच इंटरैक्शन की जांच का समर्थन करता है।
2.2 अभ्यास: स्मार्ट लाइट प्रोजेक्ट
प्रत्येक अध्याय में सैद्धांतिक परिचय के बाद, आपको व्यावहारिक अनुभव प्राप्त करने में मदद के लिए स्मार्ट लाइट परियोजना से संबंधित एक अभ्यास अनुभाग मिलेगा। यह प्रोजेक्ट एस्प्रेसिफ़ के ESP32-C3 चिप और ESP रेनमेकर IoT क्लाउड प्लेटफ़ॉर्म पर आधारित है, और स्मार्ट लाइट उत्पादों में वायरलेस मॉड्यूल हार्डवेयर, ESP32C3 पर आधारित स्मार्ट उपकरणों के लिए एम्बेडेड सॉफ़्टवेयर, स्मार्टफ़ोन ऐप्स और ESP रेनमेकर इंटरेक्शन को कवर करता है।
स्रोत कोड बेहतर सीखने और अनुभव विकसित करने के लिए, इस पुस्तक में प्रोजेक्ट को ओपनसोर्स किया गया है। आप https://github पर हमारे GitHub रिपॉजिटरी से स्रोत कोड डाउनलोड कर सकते हैं। com/espressif/book-esp32c3-iot-projects.
12 ESP32-C3 वायरलेस एडवेंचर: IoT के लिए एक व्यापक गाइड
2.2.1 परियोजना संरचना
स्मार्ट लाइट परियोजना में तीन भाग हैं: i. ESP32-C3 पर आधारित स्मार्ट लाइट डिवाइस, IoT क्लाउड प्लेटफार्मों के साथ इंटरैक्ट करने और एलईडी एल के स्विच, चमक और रंग तापमान को नियंत्रित करने के लिए जिम्मेदार हैं।amp मोती. द्वितीय. स्मार्टफ़ोन ऐप्स (एंड्रॉइड और iOS पर चलने वाले टैबलेट ऐप्स सहित), स्मार्ट लाइट उत्पादों के नेटवर्क कॉन्फ़िगरेशन के साथ-साथ उनकी स्थिति को क्वेरी करने और नियंत्रित करने के लिए ज़िम्मेदार हैं।
iii. ईएसपी रेनमेकर पर आधारित एक IoT क्लाउड प्लेटफ़ॉर्म। सरलीकरण के लिए, हम इस पुस्तक में IoT क्लाउड प्लेटफ़ॉर्म और बिजनेस सर्वर पर समग्र रूप से विचार करते हैं। ईएसपी रेनमेकर के बारे में विवरण अध्याय 3 में प्रदान किया जाएगा।
स्मार्ट लाइट परियोजना संरचना और IoT की वास्तुकला के बीच पत्राचार चित्र 2.1 में दिखाया गया है।
चित्र 2.1. स्मार्ट लाइट परियोजना की संरचना
2.2.2 परियोजना कार्य
संरचना के अनुसार विभाजित प्रत्येक भाग के कार्य इस प्रकार हैं। स्मार्ट लाइट डिवाइस
· नेटवर्क कॉन्फ़िगरेशन और कनेक्शन. · एलईडी पीडब्लूएम नियंत्रण, जैसे स्विच, चमक, रंग तापमान, आदि। · स्वचालन या दृश्य नियंत्रण, जैसे, समय स्विच। · फ्लैश का एन्क्रिप्शन और सुरक्षित बूट। · फ़र्मवेयर अपग्रेड और संस्करण प्रबंधन।
अध्याय 2. IoT परियोजनाओं का परिचय और अभ्यास 13
स्मार्टफ़ोन ऐप्स · नेटवर्क कॉन्फ़िगरेशन और डिवाइस बाइंडिंग। · स्मार्ट लाइट उत्पाद नियंत्रण, जैसे स्विच, चमक, रंग तापमान, आदि। · स्वचालन या दृश्य सेटिंग्स, जैसे, समय स्विच। · स्थानीय/रिमोट नियंत्रण. · उपयोगकर्ता पंजीकरण, लॉगिन, आदि।
ईएसपी रेनमेकर IoT क्लाउड प्लेटफ़ॉर्म · IoT डिवाइस एक्सेस सक्षम करना। · स्मार्टफोन ऐप्स के लिए डिवाइस ऑपरेशन एपीआई को सुलभ बनाना। · फ़र्मवेयर अपग्रेड और संस्करण प्रबंधन।
2.2.3 हार्डवेयर तैयारी
यदि परियोजना को व्यवहार में लाने में रुचि है, तो आपको निम्नलिखित हार्डवेयर की भी आवश्यकता होगी: स्मार्ट लाइट, स्मार्टफोन, वाई-फाई राउटर, और एक कंप्यूटर जो विकास वातावरण की स्थापना आवश्यकताओं को पूरा करता है। स्मार्ट लाइटें
स्मार्ट लाइट एक नए प्रकार के बल्ब हैं, जिनका आकार सामान्य तापदीप्त बल्ब जैसा ही होता है। एक स्मार्ट लाइट कैपेसिटर स्टेप-डाउन विनियमित बिजली आपूर्ति, वायरलेस मॉड्यूल (अंतर्निहित ईएसपी32-सी3 के साथ), एलईडी नियंत्रक और आरजीबी एलईडी मैट्रिक्स से बनी होती है। बिजली से कनेक्ट होने पर, 15 वी डीसी वॉल्यूमtagकैपेसिटर स्टेप-डाउन, डायोड रेक्टिफिकेशन और रेगुलेशन के बाद ई आउटपुट एलईडी नियंत्रक और एलईडी मैट्रिक्स को ऊर्जा प्रदान करता है। एलईडी नियंत्रक स्वचालित रूप से निश्चित अंतराल पर उच्च और निम्न स्तर भेज सकता है, आरजीबी एलईडी मैट्रिक्स को बंद (लाइट चालू) और खुले (लाइट बंद) के बीच स्विच कर सकता है, ताकि यह सियान, पीला, हरा, बैंगनी, नीला, लाल और उत्सर्जित कर सके। सफ़ेद रोशनी। वायरलेस मॉड्यूल वाई-फाई राउटर से कनेक्ट करने, स्मार्ट लाइट की स्थिति प्राप्त करने और रिपोर्ट करने और एलईडी को नियंत्रित करने के लिए कमांड भेजने के लिए जिम्मेदार है।
चित्र 2.2. एक नकली स्मार्ट लाइट
प्रारंभिक विकास में एसtagई, आप RGB LED l से जुड़े ESP32-C3DevKitM-1 बोर्ड का उपयोग करके एक स्मार्ट लाइट का अनुकरण कर सकते हैंamp मोती (चित्र 2.2 देखें)। लेकिन आपको चाहिए
14 ESP32-C3 वायरलेस एडवेंचर: IoT के लिए एक व्यापक गाइड
ध्यान दें कि स्मार्ट लाइट को असेंबल करने का यह एकमात्र तरीका नहीं है। इस पुस्तक में प्रोजेक्ट के हार्डवेयर डिज़ाइन में केवल एक वायरलेस मॉड्यूल (अंतर्निहित ESP32-C3 के साथ) शामिल है, लेकिन पूर्ण स्मार्ट लाइट हार्डवेयर डिज़ाइन नहीं है। इसके अलावा, Espressif ऑडियो के साथ रोशनी को नियंत्रित करने के लिए ESP32-C3-आधारित ऑडियो डेवलपमेंट बोर्ड ESP32C3-Lyra भी तैयार करता है। बोर्ड में माइक्रोफोन और स्पीकर के लिए इंटरफेस हैं और एलईडी स्ट्रिप्स को नियंत्रित कर सकते हैं। इसका उपयोग अल्ट्रा-लो-कॉस्ट, हाईपरफॉर्मेंस ऑडियो ब्रॉडकास्टर्स और रिदम लाइट स्ट्रिप्स विकसित करने के लिए किया जा सकता है। चित्र 2.3 में एक ESP32-C3Lyra बोर्ड दिखाया गया है जो 40 एलईडी लाइटों की एक पट्टी से जुड़ा हुआ है।
चित्र 2.3. ESP32-C3-Lyra 40 एलईडी लाइटों की एक पट्टी से जुड़ा हुआ है
स्मार्टफ़ोन (एंड्रॉइड/आईओएस) स्मार्ट लाइट प्रोजेक्ट में स्मार्ट लाइट उत्पादों को स्थापित करने और नियंत्रित करने के लिए एक स्मार्टफोन ऐप का विकास शामिल है।
वाई-फाई राउटर वाई-फाई राउटर कंप्यूटर, स्मार्टफोन, टैबलेट और अन्य वायरलेस उपकरणों को नेटवर्क से कनेक्ट करने के लिए वायर्ड नेटवर्क सिग्नल और मोबाइल नेटवर्क सिग्नल को वायरलेस नेटवर्क सिग्नल में परिवर्तित करते हैं। पूर्व के लिएampले, वाई-फाई उपकरणों की वायरलेस नेटवर्किंग प्राप्त करने के लिए घर में ब्रॉडबैंड को केवल वाई-फाई राउटर से कनेक्ट करने की आवश्यकता है। वाई-फ़ाई राउटर द्वारा समर्थित मुख्यधारा प्रोटोकॉल मानक IEEE 802.11n है, जिसका औसत TxRate 300 एमबीपीएस या अधिकतम 600 एमबीपीएस है। वे IEEE 802.11b और IEEE 802.11g के साथ पिछड़े संगत हैं। Espressif की ESP32-C3 चिप IEEE 802.11b/g/n को सपोर्ट करती है, इसलिए आप सिंगल-बैंड (2.4 GHz) या डुअल-बैंड (2.4 GHz और 5 GHz) वाई-फाई राउटर चुन सकते हैं।
अध्याय 4 में एक कंप्यूटर (लिनक्स/मैकओएस/विंडोज) विकास वातावरण पेश किया जाएगा। अध्याय 2। आईओटी परियोजनाओं का परिचय और अभ्यास 15
2.2.4 विकास प्रक्रिया
चित्र 2.4. स्मार्ट लाइट परियोजना के विकास के चरण
हार्डवेयर डिज़ाइन IoT उपकरणों का हार्डवेयर डिज़ाइन IoT प्रोजेक्ट के लिए आवश्यक है। एक पूर्ण स्मार्ट लाइट परियोजना का उद्देश्य एल का उत्पादन करना हैamp मुख्य आपूर्ति के अंतर्गत कार्य करना। विभिन्न निर्माता एल का उत्पादन करते हैंampविभिन्न शैलियों और ड्राइवर प्रकारों के, लेकिन उनके वायरलेस मॉड्यूल आमतौर पर एक ही फ़ंक्शन के होते हैं। स्मार्ट लाइट परियोजना की विकास प्रक्रिया को सरल बनाने के लिए, यह पुस्तक केवल वायरलेस मॉड्यूल के हार्डवेयर डिजाइन और सॉफ्टवेयर विकास को कवर करती है।
IoT क्लाउड प्लेटफ़ॉर्म कॉन्फ़िगरेशन IoT क्लाउड प्लेटफ़ॉर्म का उपयोग करने के लिए, आपको बैकएंड पर प्रोजेक्ट कॉन्फ़िगर करने की आवश्यकता है, जैसे उत्पाद बनाना, डिवाइस बनाना, डिवाइस गुण सेट करना आदि।
IoT उपकरणों के लिए एंबेडेड सॉफ़्टवेयर विकास ESP-IDF, एस्प्रेसिफ़ के डिवाइस-साइड SDK के साथ अपेक्षित कार्यों को लागू करता है, जिसमें IoT क्लाउड प्लेटफ़ॉर्म से कनेक्ट करना, LED ड्राइवर विकसित करना और फ़र्मवेयर को अपग्रेड करना शामिल है।
स्मार्टफोन ऐप विकास उपयोगकर्ता पंजीकरण और लॉगिन, डिवाइस नियंत्रण और अन्य कार्यों को साकार करने के लिए एंड्रॉइड और आईओएस सिस्टम के लिए स्मार्टफोन ऐप विकसित करें।
IoT डिवाइस अनुकूलन IoT डिवाइस फ़ंक्शंस का बुनियादी विकास पूरा हो जाने पर, आप पावर ऑप्टिमाइज़ेशन जैसे अनुकूलन कार्यों की ओर रुख कर सकते हैं।
बड़े पैमाने पर उत्पादन परीक्षण संबंधित मानकों के अनुसार बड़े पैमाने पर उत्पादन परीक्षण करें, जैसे उपकरण फ़ंक्शन परीक्षण, उम्र बढ़ने का परीक्षण, आरएफ परीक्षण, आदि।
ऊपर सूचीबद्ध चरणों के बावजूद, एक स्मार्ट लाइट प्रोजेक्ट आवश्यक रूप से ऐसी प्रक्रिया के अधीन नहीं है क्योंकि एक ही समय में विभिन्न कार्य भी किए जा सकते हैं। पूर्व के लिएampले, एंबेडेड सॉफ्टवेयर और स्मार्टफोन ऐप्स को समानांतर में विकसित किया जा सकता है। कुछ चरणों को दोहराने की भी आवश्यकता हो सकती है, जैसे IoT डिवाइस अनुकूलन और बड़े पैमाने पर उत्पादन परीक्षण।
16 ESP32-C3 वायरलेस एडवेंचर: IoT के लिए एक व्यापक गाइड
2.3 सारांश
इस अध्याय में, हमने पहले IoT प्रोजेक्ट के बुनियादी घटकों और कार्यात्मक मॉड्यूल की व्याख्या की, फिर इसकी संरचना, कार्यों, हार्डवेयर तैयारी और विकास प्रक्रिया का संदर्भ देते हुए अभ्यास के लिए स्मार्ट लाइट केस पेश किया। पाठक अभ्यास से निष्कर्ष निकाल सकते हैं और भविष्य में न्यूनतम गलतियों के साथ IoT परियोजनाओं को पूरा करने के लिए आश्वस्त हो सकते हैं।
अध्याय 2. IoT परियोजनाओं का परिचय और अभ्यास 17
18 ESP32-C3 वायरलेस एडवेंचर: IoT के लिए एक व्यापक गाइड
अध्याय 3
परिचय
को
ईएसपी
रेनमेकर
इंटरनेट ऑफ थिंग्स (IoT) लोगों के जीवन जीने के तरीके को बदलने की अनंत संभावनाएं प्रदान करता है, फिर भी IoT इंजीनियरिंग का विकास चुनौतियों से भरा है। सार्वजनिक क्लाउड के साथ, टर्मिनल निर्माता निम्नलिखित समाधानों के माध्यम से उत्पाद कार्यक्षमता लागू कर सकते हैं:
समाधान प्रदाताओं के क्लाउड प्लेटफ़ॉर्म पर आधारित इस तरह, टर्मिनल निर्माताओं को केवल उत्पाद हार्डवेयर डिज़ाइन करने की आवश्यकता होती है, फिर दिए गए संचार मॉड्यूल का उपयोग करके हार्डवेयर को क्लाउड से कनेक्ट करना होता है, और दिशानिर्देशों का पालन करते हुए उत्पाद कार्यों को कॉन्फ़िगर करना होता है। यह एक कुशल दृष्टिकोण है क्योंकि यह सर्वर-साइड और एप्लिकेशन-साइड विकास और संचालन और रखरखाव (ओ एंड एम) की आवश्यकता को समाप्त करता है। यह टर्मिनल निर्माताओं को क्लाउड कार्यान्वयन पर विचार किए बिना हार्डवेयर डिज़ाइन पर ध्यान केंद्रित करने की अनुमति देता है। हालाँकि, ऐसे समाधान (उदाहरण के लिए, डिवाइस फ़र्मवेयर और ऐप) आम तौर पर ओपन सोर्स नहीं होते हैं, इसलिए उत्पाद फ़ंक्शन प्रदाता के क्लाउड प्लेटफ़ॉर्म द्वारा सीमित होंगे जिन्हें अनुकूलित नहीं किया जा सकता है। इस बीच, उपयोगकर्ता और डिवाइस डेटा भी क्लाउड प्लेटफ़ॉर्म से संबंधित है।
क्लाउड उत्पादों पर आधारित इस समाधान में, हार्डवेयर डिज़ाइन पूरा करने के बाद, टर्मिनल निर्माताओं को न केवल सार्वजनिक क्लाउड द्वारा प्रदान किए गए एक या अधिक क्लाउड उत्पादों का उपयोग करके क्लाउड फ़ंक्शंस को लागू करने की आवश्यकता होती है, बल्कि हार्डवेयर को क्लाउड से जोड़ने की भी आवश्यकता होती है। पूर्व के लिएampले, अमेज़न से जुड़ने के लिए Web सेवाओं (एडब्ल्यूएस), टर्मिनल निर्माताओं को डिवाइस एक्सेस, रिमोट कंट्रोल, डेटा स्टोरेज, उपयोगकर्ता प्रबंधन और अन्य बुनियादी कार्यों को सक्षम करने के लिए अमेज़ॅन एपीआई गेटवे, एडब्ल्यूएस आईओटी कोर और एडब्ल्यूएस लैम्ब्डा जैसे एडब्ल्यूएस उत्पादों का उपयोग करने की आवश्यकता है। यह न केवल टर्मिनल निर्माताओं को गहन समझ और समृद्ध अनुभव के साथ क्लाउड उत्पादों का लचीले ढंग से उपयोग और कॉन्फ़िगर करने के लिए कहता है, बल्कि उन्हें प्रारंभिक और बाद के वर्षों के लिए निर्माण और रखरखाव लागत पर भी विचार करने की आवश्यकता होती है।tagयह कंपनी की ऊर्जा और संसाधनों के लिए बड़ी चुनौतियाँ पैदा करता है।
सार्वजनिक क्लाउड की तुलना में, निजी क्लाउड आमतौर पर विशिष्ट परियोजनाओं और उत्पादों के लिए बनाए जाते हैं। निजी क्लाउड डेवलपर्स को प्रोटोकॉल डिज़ाइन और व्यावसायिक तर्क कार्यान्वयन में उच्चतम स्तर की स्वतंत्रता दी जाती है। टर्मिनल निर्माता अपनी इच्छानुसार उत्पाद और डिज़ाइन योजनाएँ बना सकते हैं, और उपयोगकर्ता डेटा को आसानी से एकीकृत और सशक्त बना सकते हैं। सार्वजनिक क्लाउड की उच्च सुरक्षा, स्केलेबिलिटी और विश्वसनीयता को एडवान के साथ जोड़नाtagप्राइवेट क्लाउड के एस्प्रेसिफ ने ईएसपी लॉन्च किया
19
रेनमेकर, अमेज़न क्लाउड पर आधारित एक गहन एकीकृत निजी क्लाउड समाधान है। उपयोगकर्ता केवल AWS खाते से ESP रेनमेकर तैनात कर सकते हैं और निजी क्लाउड बना सकते हैं।
3.1 ईएसपी रेनमेकर क्या है?
ईएसपी रेनमेकर एक संपूर्ण एआईओटी प्लेटफॉर्म है जो कई परिपक्व एडब्ल्यूएस उत्पादों के साथ बनाया गया है। यह बड़े पैमाने पर उत्पादन के लिए आवश्यक विभिन्न सेवाएँ प्रदान करता है जैसे डिवाइस क्लाउड एक्सेस, डिवाइस अपग्रेड, बैकएंड प्रबंधन, तृतीय-पक्ष लॉगिन, वॉयस एकीकरण और उपयोगकर्ता प्रबंधन। AWS द्वारा प्रदान किए गए सर्वर रहित एप्लिकेशन रिपॉजिटरी (SAR) का उपयोग करके, टर्मिनल निर्माता अपने AWS खातों में ESP रेनमेकर को तुरंत तैनात कर सकते हैं, जो समय-कुशल और संचालित करने में आसान है। एस्प्रेसिफ द्वारा प्रबंधित और अनुरक्षित, ईएसपी रेनमेकर द्वारा उपयोग किया जाने वाला एसएआर डेवलपर्स को क्लाउड रखरखाव लागत को कम करने और एआईओटी उत्पादों के विकास में तेजी लाने में मदद करता है, इस प्रकार सुरक्षित, स्थिर और अनुकूलन योग्य एआईओटी समाधान तैयार करता है। चित्र 3.1 ईएसपी रेनमेकर की वास्तुकला को दर्शाता है।
चित्र 3.1. ईएसपी रेनमेकर की वास्तुकला
एस्प्रेसिफ द्वारा ईएसपी रेनमेकर सार्वजनिक सर्वर समाधान मूल्यांकन के लिए सभी ईएसपी उत्साही, निर्माताओं और शिक्षकों के लिए निःशुल्क है। डेवलपर्स Apple, Google, या GitHub खातों से लॉग इन कर सकते हैं, और जल्दी से अपने स्वयं के IoT एप्लिकेशन प्रोटोटाइप बना सकते हैं। सार्वजनिक सर्वर एलेक्सा और गूगल होम को एकीकृत करता है, और आवाज नियंत्रण सेवाएं प्रदान करता है, जो एलेक्सा स्किल और गूगल एक्शन द्वारा समर्थित हैं। इसका सिमेंटिक रिकग्निशन फ़ंक्शन भी तीसरे पक्ष द्वारा संचालित है। रेनमेकर IoT डिवाइस केवल विशिष्ट क्रियाओं पर प्रतिक्रिया करते हैं। समर्थित वॉयस कमांड की विस्तृत सूची के लिए, कृपया तृतीय-पक्ष प्लेटफ़ॉर्म की जाँच करें। इसके अलावा, एस्प्रेसिफ उपयोगकर्ताओं को स्मार्टफोन के माध्यम से उत्पादों को नियंत्रित करने के लिए एक सार्वजनिक रेनमेकर ऐप प्रदान करता है। 20 ESP32-C3 वायरलेस एडवेंचर: IoT के लिए एक व्यापक गाइड
3.2 ईएसपी रेनमेकर का कार्यान्वयन
जैसा कि चित्र 3.2 में दिखाया गया है, ईएसपी रेनमेकर में चार भाग होते हैं: · दावा सेवा, रेनमेकर उपकरणों को गतिशील रूप से प्रमाणपत्र प्राप्त करने में सक्षम बनाना। · रेनमेकर क्लाउड (क्लाउड बैकएंड के रूप में भी जाना जाता है), संदेश फ़िल्टरिंग, उपयोगकर्ता प्रबंधन, डेटा भंडारण और तृतीय-पक्ष एकीकरण जैसी सेवाएं प्रदान करता है। · रेनमेकर एजेंट, रेनमेकर उपकरणों को रेनमेकर क्लाउड से कनेक्ट करने में सक्षम बनाता है। · रेनमेकर क्लाइंट (रेनमेकर ऐप या सीएलआई स्क्रिप्ट), प्रावधान, उपयोगकर्ता निर्माण, डिवाइस एसोसिएशन और नियंत्रण आदि के लिए।
चित्र 3.2. ईएसपी रेनमेकर की संरचना
ईएसपी रेनमेकर उत्पाद विकास और बड़े पैमाने पर उत्पादन के लिए उपकरणों का एक पूरा सेट प्रदान करता है, जिसमें शामिल हैं: रेनमेकर एसडीके
रेनमेकर एसडीके ईएसपी-आईडीएफ पर आधारित है और फर्मवेयर विकास के लिए डिवाइस-साइड एजेंट और संबंधित सी एपीआई का स्रोत कोड प्रदान करता है। डेवलपर्स को केवल एप्लिकेशन लॉजिक लिखना होगा और बाकी को रेनमेकर फ्रेमवर्क पर छोड़ना होगा। सी एपीआई के बारे में अधिक जानकारी के लिए कृपया https://bookc3.espressif.com/rm/c-api-reference पर जाएं। रेनमेकर ऐप रेनमेकर ऐप का सार्वजनिक संस्करण डेवलपर्स को डिवाइस प्रोविजनिंग को पूरा करने, और डिवाइस की स्थिति को नियंत्रित करने और क्वेरी करने की अनुमति देता है (उदाहरण के लिए, स्मार्ट लाइटिंग उत्पाद)। यह iOS और Android दोनों ऐप स्टोर पर उपलब्ध है। अधिक जानकारी के लिए, कृपया अध्याय 10 देखें। REST API REST API उपयोगकर्ताओं को रेनमेकर ऐप के समान अपने स्वयं के एप्लिकेशन बनाने में मदद करते हैं। अधिक जानकारी के लिए कृपया https://swaggerapis.rainmaker.espressif.com/ पर जाएं।
अध्याय 3. ईएसपी रेनमेकर 21 का परिचय
पायथन एपीआई एक पायथन-आधारित सीएलआई, जो रेनमेकर एसडीके के साथ आता है, स्मार्टफोन सुविधाओं के समान सभी कार्यों को लागू करने के लिए प्रदान किया जाता है। पायथन एपीआई के बारे में अधिक जानकारी के लिए कृपया https://bookc3.espressif.com/rm/python-api-reference पर जाएं।
एडमिन सीएलआई एडमिन सीएलआई, उच्च स्तर की पहुंच के साथ, ईएसपी रेनमेकर निजी तैनाती के लिए थोक में डिवाइस प्रमाणपत्र उत्पन्न करने के लिए प्रदान किया जाता है।
3.2.1 दावा सेवा
रेनमेकर उपकरणों और क्लाउड बैकएंड के बीच सभी संचार MQTT+TLS के माध्यम से किया जाता है। ईएसपी रेनमेकर के संदर्भ में, "दावा करना" वह प्रक्रिया है जिसमें डिवाइस क्लाउड बैकएंड से जुड़ने के लिए दावा सेवा से प्रमाणपत्र प्राप्त करते हैं। ध्यान दें कि दावा सेवा केवल सार्वजनिक रेनमेकर सेवा पर लागू होती है, जबकि निजी तैनाती के लिए, डिवाइस प्रमाणपत्र को एडमिन सीएलआई के माध्यम से थोक में तैयार करने की आवश्यकता होती है। ईएसपी रेनमेकर तीन प्रकार की दावा सेवा का समर्थन करता है: स्वयं दावा करना
इंटरनेट से कनेक्ट होने के बाद डिवाइस स्वयं eFuse में पूर्व-प्रोग्राम की गई एक गुप्त कुंजी के माध्यम से प्रमाणपत्र प्राप्त करता है। होस्ट संचालित दावा प्रमाणपत्र रेनमेकर खाते के साथ विकास होस्ट से प्राप्त किए जाते हैं। सहायता प्राप्त दावा प्रावधान के दौरान प्रमाणपत्र स्मार्टफोन एप्लिकेशन के माध्यम से प्राप्त किए जाते हैं।
3.2.2 रेनमेकर एजेंट
चित्र 3.3. रेनमेकर एसडीके की संरचना रेनमेकर एजेंट का प्राथमिक कार्य कनेक्टिविटी प्रदान करना और अपलिंक/डाउनलिंक क्लाउड डेटा को संसाधित करने के लिए एप्लिकेशन परत की सहायता करना है। इसे रेनमेकर SDK 22 ESP32-C3 वायरलेस एडवेंचर के माध्यम से बनाया गया है: IoT के लिए एक व्यापक गाइड
और आरटीओएस, एनवीएस और एमक्यूटीटी जैसे ईएसपी-आईडीएफ घटकों का उपयोग करके सिद्ध ईएसपी-आईडीएफ ढांचे के आधार पर विकसित किया गया है। चित्र 3.3 रेनमेकर एसडीके की संरचना को दर्शाता है।
रेनमेकर एसडीके में दो प्रमुख विशेषताएं शामिल हैं।
संबंध
मैं। डिवाइस प्रमाणपत्र प्राप्त करने के लिए दावा सेवा के साथ सहयोग करना।
द्वितीय. रिमोट कनेक्टिविटी प्रदान करने और रिमोट कंट्रोल, संदेश रिपोर्टिंग, उपयोगकर्ता प्रबंधन, डिवाइस प्रबंधन इत्यादि को लागू करने के लिए सुरक्षित एमक्यूटीटी प्रोटोकॉल का उपयोग करके क्लाउड बैकएंड से कनेक्ट करना। यह डिफ़ॉल्ट रूप से ईएसपी-आईडीएफ में एमक्यूटीटी घटक का उपयोग करता है और अन्य के साथ इंटरफेस करने के लिए एक अमूर्त परत प्रदान करता है। प्रोटोकॉल ढेर.
iii. वाई-फाई कनेक्शन और प्रोविजनिंग के लिए वाईफाई प्रोविजनिंग घटक, ओटीए अपग्रेड के लिए ईएसपी https ओटीए घटक और स्थानीय डिवाइस खोज और कनेक्शन के लिए ईएसपी स्थानीय Ctrl घटक प्रदान करना। इन सभी उद्देश्यों को सरल विन्यास के माध्यम से प्राप्त किया जा सकता है।
डाटा प्रासेसिंग
मैं। क्लेमिंग सर्विस द्वारा जारी किए गए डिवाइस प्रमाणपत्र और रेनमेकर चलाने के दौरान आवश्यक डेटा को संग्रहीत करना, डिफ़ॉल्ट रूप से एनवीएस फ्लैश घटक द्वारा प्रदान किए गए इंटरफ़ेस का उपयोग करना, और सीधे उपयोग के लिए डेवलपर्स के लिए एपीआई प्रदान करना।
द्वितीय. अपलिंक/डाउनलिंक क्लाउड डेटा को संसाधित करने के लिए कॉलबैक तंत्र का उपयोग करना और डेवलपर्स द्वारा आसान प्रसंस्करण के लिए एप्लिकेशन परत पर डेटा को स्वचालित रूप से अनब्लॉक करना। पूर्व के लिएampले, रेनमेकर एसडीके टीएसएल (थिंग स्पेसिफिकेशन लैंग्वेज) डेटा स्थापित करने के लिए समृद्ध इंटरफेस प्रदान करता है, जो आईओटी उपकरणों का वर्णन करने और समय, उलटी गिनती और आवाज नियंत्रण जैसे कार्यों को लागू करने के लिए टीएसएल मॉडल को परिभाषित करने के लिए आवश्यक है। टाइमिंग जैसी बुनियादी इंटरैक्टिव सुविधाओं के लिए, रेनमेकर एसडीके एक विकास-मुक्त समाधान प्रदान करता है जिसे जरूरत पड़ने पर आसानी से सक्षम किया जा सकता है। फिर, रेनमेकर एजेंट सीधे डेटा को संसाधित करेगा, इसे संबंधित एमक्यूटीटी विषय के माध्यम से क्लाउड पर भेजेगा, और कॉलबैक तंत्र के माध्यम से क्लाउड बैकएंड में डेटा परिवर्तनों को वापस फीड करेगा।
3.2.3 क्लाउड बैकएंड
क्लाउड बैकएंड AWS सर्वर रहित कंप्यूटिंग पर बनाया गया है और AWS कॉग्निटो (पहचान प्रबंधन प्रणाली), अमेज़ॅन एपीआई गेटवे, AWS लैंबडा (सर्वर रहित कंप्यूटिंग सेवा), अमेज़ॅन डायनेमोडीबी (NoSQL डेटाबेस), AWS IoT कोर (IoT एक्सेस कोर जो MQTT एक्सेस प्रदान करता है) के माध्यम से हासिल किया गया है। और नियम फ़िल्टरिंग), अमेज़न सिंपल ईमेल सर्विस (SES सिंपल मेल सर्विस), अमेज़न क्लाउडफ्रंट (फास्ट डिलीवरी नेटवर्क), अमेज़न सिंपल क्यू सर्विस (SQS मैसेज क्यूइंग), और अमेज़न S3 (बकेट स्टोरेज सर्विस)। इसका उद्देश्य स्केलेबिलिटी और सुरक्षा को अनुकूलित करना है। ईएसपी रेनमेकर के साथ, डेवलपर्स क्लाउड में कोड लिखे बिना डिवाइस प्रबंधित कर सकते हैं। उपकरणों द्वारा रिपोर्ट किए गए संदेश पारदर्शी रूप से प्रसारित होते हैं
अध्याय 3. ईएसपी रेनमेकर 23 का परिचय
एप्लिकेशन क्लाइंट या अन्य तृतीय-पक्ष सेवाएँ। तालिका 3.1 एडब्ल्यूएस क्लाउड उत्पादों और क्लाउड बैकएंड में उपयोग किए जाने वाले कार्यों को दिखाती है, जिसमें विकास के तहत अधिक उत्पाद और सुविधाएं शामिल हैं।
तालिका 3.1. AWS क्लाउड उत्पाद और क्लाउड बैकएंड द्वारा उपयोग किए जाने वाले फ़ंक्शन
रेनमेकर द्वारा प्रयुक्त AWS क्लाउड उत्पाद
समारोह
एडब्ल्यूएस कॉग्निटो
उपयोगकर्ता क्रेडेंशियल प्रबंधित करना और तृतीय-पक्ष लॉगिन का समर्थन करना
एडब्ल्यूएस लैम्ब्डा
क्लाउड बैकएंड के मुख्य व्यावसायिक तर्क को लागू करना
अमेज़ॅन टाइमस्ट्रीम भंडारण समय श्रृंखला डेटा
Amazon DynamoDB ग्राहकों की निजी जानकारी संग्रहीत करता है
AWS IoT कोर
एमक्यूटीटी संचार का समर्थन करना
अमेज़न एसईएस
ईमेल भेजने की सेवाएँ प्रदान करना
अमेज़ॅन क्लाउडफ्रंट बैकएंड के प्रबंधन में तेजी ला रहा है webसाइट तक पहुंच
अमेज़न एसक्यूएस
AWS IoT Core से संदेश अग्रेषित करना
3.2.4 रेनमेकर क्लाइंट
रेनमेकर क्लाइंट, जैसे ऐप और सीएलआई, REST API के माध्यम से क्लाउड बैकएंड के साथ संचार करते हैं। REST API के बारे में विस्तृत जानकारी और निर्देश Espressif द्वारा उपलब्ध कराए गए स्वैगर दस्तावेज़ में पाए जा सकते हैं। रेनमेकर का मोबाइल एप्लिकेशन क्लाइंट आईओएस और एंड्रॉइड दोनों सिस्टम के लिए उपलब्ध है। यह डिवाइस प्रावधान, नियंत्रण और साझाकरण के साथ-साथ उलटी गिनती कार्यों को बनाने और सक्षम करने और तीसरे पक्ष के प्लेटफ़ॉर्म से कनेक्ट करने की अनुमति देता है। यह डिवाइस द्वारा रिपोर्ट किए गए कॉन्फ़िगरेशन के अनुसार स्वचालित रूप से यूआई और आइकन लोड कर सकता है और डिवाइस टीएसएल को पूरी तरह से प्रदर्शित कर सकता है।
उदाहरणार्थampले, यदि स्मार्ट लाइट रेनमेकर एसडीके-प्रदत्त पूर्व पर बनाई गई हैampलेस, प्रावधान पूरा होने पर बल्ब लाइट का आइकन और यूआई स्वचालित रूप से लोड हो जाएगा। उपयोगकर्ता इंटरफ़ेस के माध्यम से प्रकाश का रंग और चमक बदल सकते हैं और एलेक्सा स्मार्ट होम स्किल या Google स्मार्ट होम एक्शन को अपने ईएसपी रेनमेकर खातों से जोड़कर तीसरे पक्ष का नियंत्रण प्राप्त कर सकते हैं। चित्र 3.4 आइकन और यूआई दिखाता हैampएलेक्सा, गूगल होम और ईएसपी रेनमेकर ऐप पर क्रमशः बल्ब की रोशनी कम होती है।
24 ESP32-C3 वायरलेस एडवेंचर: IoT के लिए एक व्यापक गाइड
(ए) उदाampले - एलेक्सा
(बी) उदाampले - गूगल होम
(सी) उदाampले - ईएसपी रेनमेकर
चित्रा 3.4. पूर्वampएलेक्सा, गूगल होम और ईएसपी रेनमेकर ऐप पर बल्ब लाइट का आइकन और यूआई
3.3 अभ्यास: ईएसपी रेनमेकर के साथ विकास के लिए मुख्य बिंदु
एक बार डिवाइस ड्राइवर परत पूरी हो जाने के बाद, डेवलपर्स टीएसएल मॉडल बनाना शुरू कर सकते हैं और रेनमेकर एसडीके द्वारा प्रदान किए गए एपीआई का उपयोग करके डाउनलिंक डेटा को संसाधित कर सकते हैं, और उत्पाद परिभाषा और आवश्यकताओं के आधार पर ईएसपी रेनमेकर बुनियादी सेवाओं को सक्षम कर सकते हैं।
अध्याय 3. ईएसपी रेनमेकर 25 का परिचय
इस पुस्तक का खंड 9.4 रेनमेकर में एलईडी स्मार्ट लाइट के कार्यान्वयन की व्याख्या करेगा। डिबगिंग के दौरान, डेवलपर्स स्मार्ट लाइट के साथ संचार करने के लिए रेनमेकर एसडीके में सीएलआई टूल का उपयोग कर सकते हैं (या स्वैगर से आरईएसटी एपीआई को कॉल कर सकते हैं)।
अध्याय 10 स्मार्टफोन एप्लिकेशन विकसित करने में REST API के उपयोग के बारे में विस्तार से बताएगा। एलईडी स्मार्ट लाइट के ओटीए अपग्रेड को अध्याय 11 में शामिल किया जाएगा। यदि डेवलपर्स ने ईएसपी इनसाइट्स रिमोट मॉनिटरिंग को सक्षम किया है, तो ईएसपी रेनमेकर प्रबंधन बैकएंड ईएसपी इनसाइट्स डेटा प्रदर्शित करेगा। विवरण अध्याय 15 में प्रस्तुत किया जाएगा।
ईएसपी रेनमेकर निजी परिनियोजन का समर्थन करता है, जो निम्नलिखित तरीकों से सार्वजनिक रेनमेकर सर्वर से भिन्न है:
दावा सेवा निजी तैनाती में प्रमाणपत्र उत्पन्न करने के लिए, दावा करने के बजाय रेनमेकर एडमिन सीएलआई का उपयोग करना आवश्यक है। सार्वजनिक सर्वर के साथ, डेवलपर्स को फर्मवेयर अपग्रेड लागू करने के लिए व्यवस्थापक अधिकार दिए जाने चाहिए, लेकिन व्यावसायिक तैनाती में यह अवांछनीय है। इसलिए, स्व-दावा करने के लिए न तो अलग प्रमाणीकरण सेवा प्रदान की जा सकती है, न ही होस्ट संचालित या सहायता प्राप्त दावे के लिए व्यवस्थापक अधिकार प्रदान किए जा सकते हैं।
फ़ोन ऐप्स निजी परिनियोजन में, यह सुनिश्चित करने के लिए कि खाता सिस्टम इंटरऑपरेबल नहीं हैं, एप्लिकेशन को अलग से कॉन्फ़िगर और संकलित करने की आवश्यकता होती है।
तीसरे पक्ष के लॉगिन और वॉयस एकीकरण डेवलपर्स को तीसरे पक्ष के लॉगिन, साथ ही एलेक्सा स्किल और Google वॉयस असिस्टेंट एकीकरण को सक्षम करने के लिए Google और Apple डेवलपर खातों के माध्यम से अलग से कॉन्फ़िगर करना होगा।
टिप्स क्लाउड परिनियोजन के बारे में विवरण के लिए, कृपया https://customer.rainmaker.espressif पर जाएं। com. फर्मवेयर के संदर्भ में, सार्वजनिक सर्वर से निजी सर्वर पर माइग्रेशन के लिए केवल डिवाइस प्रमाणपत्रों को बदलने की आवश्यकता होती है, जो माइग्रेशन दक्षता में काफी सुधार करता है और माइग्रेशन और सेकेंडरी डिबगिंग की लागत को कम करता है।
3.4 ईएसपी रेनमेकर की विशेषताएं
ईएसपी रेनमेकर सुविधाएँ मुख्य रूप से तीन पहलुओं पर लक्षित हैं - उपयोगकर्ता प्रबंधन, अंतिम उपयोगकर्ता और व्यवस्थापक। जब तक अन्यथा न कहा जाए, सभी सुविधाएँ सार्वजनिक और निजी दोनों सर्वरों में समर्थित हैं।
3.4.1 उपयोगकर्ता प्रबंधन
उपयोगकर्ता प्रबंधन सुविधाएँ अंतिम उपयोगकर्ताओं को पंजीकरण करने, लॉग इन करने, पासवर्ड बदलने, पासवर्ड पुनर्प्राप्त करने आदि की अनुमति देती हैं।
26 ESP32-C3 वायरलेस एडवेंचर: IoT के लिए एक व्यापक गाइड
रजिस्टर करें और लॉग इन करें रेनमेकर द्वारा समर्थित पंजीकरण और लॉगिन विधियों में शामिल हैं: · ईमेल आईडी + पासवर्ड · फ़ोन नंबर + पासवर्ड · Google खाता · Apple खाता · GitHub खाता (केवल सार्वजनिक सर्वर) · अमेज़न खाता (केवल निजी सर्वर)
ध्यान दें Google/Amazon का उपयोग करके साइन अप करने से उपयोगकर्ता का ईमेल पता रेनमेकर के साथ साझा होता है। Apple का उपयोग करके साइन अप एक डमी पता साझा करता है जिसे Apple विशेष रूप से रेनमेकर सेवा के लिए उपयोगकर्ता के लिए निर्दिष्ट करता है। पहली बार Google, Apple या Amazon खाते से साइन इन करने वाले उपयोगकर्ताओं के लिए एक रेनमेकर खाता स्वचालित रूप से बनाया जाएगा।
पासवर्ड बदलें केवल ईमेल आईडी/फोन नंबर आधारित लॉगिन के लिए मान्य है। पासवर्ड बदलने के बाद अन्य सभी सक्रिय सत्र लॉग आउट हो जाएंगे। AWS कॉग्निटो व्यवहार के अनुसार, लॉग-आउट सत्र 1 घंटे तक सक्रिय रह सकते हैं।
पासवर्ड पुनः प्राप्त करना केवल ईमेल आईडी/फोन नंबर आधारित लॉगिन के लिए मान्य है।
3.4.2 अंतिम उपयोगकर्ता सुविधाएँ
अंतिम उपयोगकर्ताओं के लिए खुली सुविधाओं में स्थानीय और रिमोट कंट्रोल और मॉनिटरिंग, शेड्यूलिंग, डिवाइस ग्रुपिंग, डिवाइस शेयरिंग, पुश नोटिफिकेशन और तृतीय-पक्ष एकीकरण शामिल हैं।
रिमोट कंट्रोल और मॉनिटरिंग · एक या सभी डिवाइस के लिए क्वेरी कॉन्फ़िगरेशन, पैरामीटर मान और कनेक्शन स्थिति। · एकल या एकाधिक डिवाइस के लिए पैरामीटर सेट करें।
स्थानीय नियंत्रण और निगरानी स्थानीय नियंत्रण के लिए मोबाइल फोन और डिवाइस को एक ही नेटवर्क से कनेक्ट करना आवश्यक है।
शेड्यूलिंग · उपयोगकर्ता एक विशिष्ट समय पर कुछ क्रियाएं पूर्व-निर्धारित करते हैं। · शेड्यूल निष्पादित करते समय डिवाइस के लिए किसी इंटरनेट कनेक्शन की आवश्यकता नहीं है। · एकल या एकाधिक डिवाइस के लिए एक बार या दोहराएँ (दिन निर्दिष्ट करके)।
डिवाइस ग्रुपिंग बहु-स्तरीय अमूर्त ग्रुपिंग का समर्थन करता है ग्रुप मेटाडेटा का उपयोग होम रूम संरचना बनाने के लिए किया जा सकता है।
अध्याय 3. ईएसपी रेनमेकर 27 का परिचय
डिवाइस साझाकरण एक या अधिक डिवाइस को एक या अधिक उपयोगकर्ताओं के साथ साझा किया जा सकता है।
पुश सूचनाएँ अंतिम उपयोगकर्ताओं को घटनाओं के लिए पुश सूचनाएँ प्राप्त होंगी जैसे · नया डिवाइस जोड़ा/हटाया गया · डिवाइस क्लाउड से जुड़ा · डिवाइस क्लाउड से डिस्कनेक्ट हो गया · डिवाइस साझाकरण अनुरोध बनाए गए/स्वीकृत/अस्वीकृत · डिवाइस द्वारा रिपोर्ट किए गए अलर्ट संदेश
लाइट, स्विच, सॉकेट, पंखे और तापमान सेंसर सहित रेनमेकर उपकरणों को नियंत्रित करने के लिए थर्ड पार्टी इंटीग्रेशन एलेक्सा और गूगल वॉयस असिस्टेंट का समर्थन किया जाता है।
3.4.3 व्यवस्थापक सुविधाएँ
व्यवस्थापक सुविधाएँ प्रशासकों को डिवाइस पंजीकरण, डिवाइस ग्रुपिंग और ओटीए अपग्रेड आदि को लागू करने की अनुमति देती हैं view सांख्यिकी और ईएसपी अंतर्दृष्टि डेटा।
डिवाइस पंजीकरण डिवाइस प्रमाणपत्र जेनरेट करें और एडमिन सीएलआई (केवल निजी सर्वर) के साथ पंजीकरण करें।
डिवाइस ग्रुपिंग डिवाइस जानकारी (केवल निजी सर्वर) के आधार पर अमूर्त या संरचित समूह बनाएं।
ओवर-द-एयर (ओटीए) एक या अधिक डिवाइस या समूह पर संस्करण और मॉडल के आधार पर फर्मवेयर अपलोड करता है, ओटीए नौकरियों की निगरानी, रद्द करें या संग्रहित करें।
View आंकड़े Viewसक्षम आँकड़ों में शामिल हैं: · डिवाइस पंजीकरण (व्यवस्थापक द्वारा पंजीकृत प्रमाणपत्र) · डिवाइस सक्रियण (पहली बार कनेक्ट किया गया डिवाइस) · उपयोगकर्ता खाते · उपयोगकर्ता-डिवाइस एसोसिएशन
View ईएसपी अंतर्दृष्टि डेटा Viewसक्षम ईएसपी इनसाइट्स डेटा में शामिल हैं: · त्रुटियां, चेतावनियां और कस्टम लॉग · क्रैश रिपोर्ट और विश्लेषण · रीबूट कारण · मेमोरी उपयोग, आरएसएसआई, आदि जैसे मेट्रिक्स · कस्टम मेट्रिक्स और वेरिएबल्स
28 ESP32-C3 वायरलेस एडवेंचर: IoT के लिए एक व्यापक गाइड
3.5 सारांश
इस अध्याय में, हमने सार्वजनिक रेनमेकर परिनियोजन और निजी परिनियोजन के बीच कुछ महत्वपूर्ण अंतर प्रस्तुत किए हैं। एस्प्रेसिफ द्वारा लॉन्च किया गया निजी ईएसपी रेनमेकर समाधान अत्यधिक विश्वसनीय और एक्स्टेंसिबल है। सभी ESP32 श्रृंखला चिप्स को AWS से जोड़ा और अनुकूलित किया गया है, जिससे लागत बहुत कम हो जाती है। डेवलपर्स AWS क्लाउड उत्पादों के बारे में जाने बिना प्रोटोटाइप सत्यापन पर ध्यान केंद्रित कर सकते हैं। हमने ईएसपी रेनमेकर के कार्यान्वयन और सुविधाओं और प्लेटफ़ॉर्म का उपयोग करके विकास के लिए कुछ प्रमुख बिंदुओं के बारे में भी बताया।
एंड्रॉइड के लिए ईएसपी रेनमेकर डाउनलोड करने के लिए स्कैन करें। आईओएस के लिए ईएसपी रेनमेकर डाउनलोड करने के लिए स्कैन करें
अध्याय 3. ईएसपी रेनमेकर 29 का परिचय
30 ESP32-C3 वायरलेस एडवेंचर: IoT के लिए एक व्यापक गाइड
अध्याय 4 विकास पर्यावरण की स्थापना
यह अध्याय ईएसपी-आईडीएफ पर केंद्रित है, जो ईएसपी32-सी3 के लिए आधिकारिक सॉफ्टवेयर विकास ढांचा है। हम बताएंगे कि विभिन्न ऑपरेटिंग सिस्टम पर पर्यावरण कैसे स्थापित किया जाए, और ईएसपी-आईडीएफ की परियोजना संरचना और निर्माण प्रणाली के साथ-साथ संबंधित विकास उपकरणों का उपयोग कैसे शुरू किया जाए। फिर हम पूर्व के संकलन और चलाने की प्रक्रिया प्रस्तुत करेंगेampले प्रोजेक्ट, प्रत्येक एस पर आउटपुट लॉग का विस्तृत विवरण प्रदान करते हुएtage.
4.1 ईएसपी-आईडीएफ खत्मview
ईएसपी-आईडीएफ (एस्प्रेसिफ आईओटी डेवलपमेंट फ्रेमवर्क) एस्प्रेसिफ टेक्नोलॉजी द्वारा प्रदान किया गया वन-स्टॉप आईओटी डेवलपमेंट फ्रेमवर्क है। यह मुख्य विकास भाषा के रूप में C/C++ का उपयोग करता है और लिनक्स, मैक और विंडोज जैसे मुख्यधारा ऑपरेटिंग सिस्टम के तहत क्रॉस-संकलन का समर्थन करता है। भूतपूर्वampइस पुस्तक में शामिल प्रोग्राम ईएसपी-आईडीएफ का उपयोग करके विकसित किए गए हैं, जो निम्नलिखित विशेषताएं प्रदान करता है: · एसओसी सिस्टम-स्तरीय ड्राइवर। ESP-IDF में ESP32, ESP32-S2, ESP32-C3 के लिए ड्राइवर शामिल हैं।
और अन्य चिप्स. इन ड्राइवरों में पेरिफेरल लो लेवल (एलएल) लाइब्रेरी, हार्डवेयर एब्स्ट्रैक्शन लेयर (एचएएल) लाइब्रेरी, आरटीओएस सपोर्ट और अपर-लेयर ड्राइवर सॉफ्टवेयर आदि शामिल हैं। · आवश्यक घटक। ईएसपी-आईडीएफ में IoT विकास के लिए आवश्यक मूलभूत घटक शामिल हैं। इसमें HTTP और MQTT जैसे कई नेटवर्क प्रोटोकॉल स्टैक, गतिशील आवृत्ति मॉड्यूलेशन के साथ एक पावर प्रबंधन ढांचा, और फ्लैश एन्क्रिप्शन और सुरक्षित बूट इत्यादि जैसी सुविधाएं शामिल हैं। · विकास और उत्पादन उपकरण। ईएसपी-आईडीएफ विकास और बड़े पैमाने पर उत्पादन के दौरान बिल्डिंग, फ्लैश और डिबगिंग के लिए आमतौर पर उपयोग किए जाने वाले उपकरण प्रदान करता है (चित्र 4.1 देखें), जैसे सीएमके पर आधारित बिल्डिंग सिस्टम, जीसीसी पर आधारित क्रॉस-संकलन टूल श्रृंखला और जेTAG ओपनओसीडी आदि पर आधारित डिबगिंग टूल। यह ध्यान देने योग्य है कि ईएसपी-आईडीएफ कोड मुख्य रूप से अपाचे 2.0 ओपन-सोर्स लाइसेंस का पालन करता है। उपयोगकर्ता ओपन-सोर्स लाइसेंस की शर्तों का अनुपालन करते हुए बिना किसी प्रतिबंध के व्यक्तिगत या व्यावसायिक सॉफ़्टवेयर विकसित कर सकते हैं। इसके अतिरिक्त, उपयोगकर्ताओं को स्रोत कोड में किए गए किसी भी संशोधन को ओपन-सोर्स करने की बाध्यता के बिना, स्थायी पेटेंट लाइसेंस निःशुल्क प्रदान किए जाते हैं।
31
चित्र 4.1.
बिल्डिंग, फ्लैशिंग और डिबग-
विकास और बड़े पैमाने पर उत्पादन के लिए गिंग उपकरण
4.1.1 ईएसपी-आईडीएफ संस्करण
ESP-IDF कोड को GitHub पर एक ओपन-सोर्स प्रोजेक्ट के रूप में होस्ट किया गया है। वर्तमान में, तीन प्रमुख संस्करण उपलब्ध हैं: v3, v4, और v5। प्रत्येक प्रमुख संस्करण में आमतौर पर विभिन्न तोड़फोड़ें होती हैं, जैसे v4.2, v4.3, इत्यादि। एस्प्रेसिफ सिस्टम्स प्रत्येक जारी उप-संस्करण के लिए बग फिक्स और सुरक्षा पैच के लिए 30 महीने का समर्थन सुनिश्चित करता है। इसलिए, सबवर्सन के संशोधन भी नियमित रूप से जारी किए जाते हैं, जैसे कि v4.3.1, v4.2.2, आदि। तालिका 4.1 एस्प्रेसिफ़ चिप्स के लिए विभिन्न ईएसपी-आईडीएफ संस्करणों की समर्थन स्थिति दिखाती है, यह दर्शाती है कि क्या वे पूर्व में हैंview stagई (पूर्व के लिए सहायता की पेशकश)view संस्करण, जिनमें कुछ सुविधाओं या दस्तावेज़ों की कमी हो सकती है) या आधिकारिक तौर पर समर्थित हैं।
तालिका 4.1. एस्प्रेसिफ़ चिप्स के लिए विभिन्न ईएसपी-आईडीएफ संस्करणों की समर्थन स्थिति
श्रृंखला 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.* तक प्रमुख परिवर्तन बिल्ड सिस्टम का मेक से सीएमके में क्रमिक स्थानांतरण था। दूसरी ओर, छोटे संस्करणों की पुनरावृत्ति में आम तौर पर नई सुविधाओं को जोड़ना या नए चिप्स के लिए समर्थन शामिल होता है।
स्थिर संस्करणों और GitHub शाखाओं के बीच संबंध को अलग करना और समझना महत्वपूर्ण है। v*.* या v*.*.* के रूप में लेबल किए गए संस्करण स्थिर संस्करणों का प्रतिनिधित्व करते हैं जो एस्प्रेसिफ़ द्वारा पूर्ण आंतरिक परीक्षण पास कर चुके हैं। एक बार तय हो जाने पर, उसी संस्करण के लिए कोड, टूल श्रृंखला और रिलीज़ दस्तावेज़ अपरिवर्तित रहते हैं। हालाँकि, GitHub शाखाएँ (उदाहरण के लिए, रिलीज़/v4.3 शाखा) अक्सर दैनिक आधार पर, बार-बार कोड कमिट से गुजरती हैं। इसलिए, एक ही शाखा के अंतर्गत दो कोड स्निपेट भिन्न हो सकते हैं, जिससे डेवलपर्स को तदनुसार अपने कोड को तुरंत अपडेट करने की आवश्यकता होती है।
4.1.2 ईएसपी-आईडीएफ गिट वर्कफ़्लो
एस्प्रेसिफ़ ईएसपी-आईडीएफ के लिए एक विशिष्ट गिट वर्कफ़्लो का अनुसरण करता है, जिसे इस प्रकार रेखांकित किया गया है:
· मास्टर शाखा में नए परिवर्तन किए गए हैं, जो मुख्य विकास शाखा के रूप में कार्य करती है। मास्टर शाखा पर ईएसपी-आईडीएफ संस्करण हमेशा एक -देव रखता है tag यह इंगित करने के लिए कि यह वर्तमान में विकासाधीन है, जैसे कि v4.3-dev। सबसे पहले मास्टर ब्रांच में बदलाव होंगेviewएस्प्रेसिफ़ के आंतरिक भंडार में संपादित और परीक्षण किया गया, और फिर स्वचालित परीक्षण पूरा होने के बाद GitHub पर भेज दिया गया।
· एक बार जब कोई नया संस्करण मास्टर शाखा पर सुविधा विकास पूरा कर लेता है और बीटा परीक्षण में प्रवेश के मानदंडों को पूरा कर लेता है, तो यह एक नई शाखा में स्थानांतरित हो जाता है, जैसे कि रिलीज़/v4.3। इसके अलावा यह नई शाखा है tagइसे v4.3-बीटा1 जैसे प्री-रिलीज़ संस्करण के रूप में तैयार किया गया है। डेवलपर्स शाखाओं की पूरी सूची तक पहुंचने के लिए GitHub प्लेटफ़ॉर्म का संदर्भ ले सकते हैं tags ईएसपी-आईडीएफ के लिए. यह ध्यान रखना महत्वपूर्ण है कि बीटा संस्करण (रिलीज़-पूर्व संस्करण) में अभी भी बड़ी संख्या में ज्ञात समस्याएं हो सकती हैं। चूँकि बीटा संस्करण निरंतर परीक्षण से गुजरता है, इस संस्करण और मास्टर शाखा दोनों में बग फिक्स एक साथ जोड़े जाते हैं। इस बीच, मास्टर शाखा ने अगले संस्करण के लिए नई सुविधाएँ विकसित करना शुरू कर दिया होगा। जब परीक्षण लगभग पूरा हो जाता है, तो शाखा में एक रिलीज़ कैंडिडेट (आरसी) लेबल जोड़ा जाता है, जो दर्शाता है कि यह आधिकारिक रिलीज़ के लिए संभावित उम्मीदवार है, जैसे कि v4.3-rc1। इस पर एसtagई, शाखा एक पूर्व-रिलीज़ संस्करण बनी हुई है।
· यदि कोई बड़ी बग खोजी या रिपोर्ट नहीं की जाती है, तो प्री-रिलीज़ संस्करण को अंततः एक प्रमुख संस्करण लेबल (उदाहरण के लिए, v5.0) या एक छोटा संस्करण लेबल (उदाहरण के लिए, v4.3) प्राप्त होता है और एक आधिकारिक रिलीज़ संस्करण बन जाता है, जिसे प्रलेखित किया जाता है। रिलीज़ नोट्स पृष्ठ में. इसके बाद, इस संस्करण में पहचाने गए किसी भी बग को रिलीज़ शाखा पर ठीक कर दिया जाता है। मैन्युअल परीक्षण पूरा होने के बाद, शाखा को एक बग-फिक्स संस्करण लेबल (उदाहरण के लिए, v4.3.2) सौंपा जाता है, जो रिलीज़ नोट्स पृष्ठ पर भी दिखाई देता है।
अध्याय 4. विकास परिवेश की स्थापना 33
4.1.3 उपयुक्त संस्करण चुनना
चूंकि ESP-IDF ने आधिकारिक तौर पर संस्करण v32 से ESP3-C4.3 का समर्थन करना शुरू कर दिया है, और इस पुस्तक को लिखने के समय v4.4 को अभी तक आधिकारिक तौर पर जारी नहीं किया गया है, इस पुस्तक में प्रयुक्त संस्करण v4.3.2 है, जो एक संशोधित संस्करण है v4.3 का. हालाँकि, यह ध्यान रखना महत्वपूर्ण है कि जब तक आप इस पुस्तक को पढ़ेंगे, तब तक v4.4 या नए संस्करण पहले से ही उपलब्ध हो सकते हैं। किसी संस्करण का चयन करते समय, हम निम्नलिखित की अनुशंसा करते हैं:
· प्रवेश स्तर के डेवलपर्स के लिए, स्थिर v4.3 संस्करण या उसके संशोधित संस्करण को चुनने की सलाह दी जाती है, जो पूर्व के साथ संरेखित होता हैampइस पुस्तक में प्रयुक्त ले संस्करण।
· बड़े पैमाने पर उत्पादन उद्देश्यों के लिए, नवीनतम तकनीकी सहायता से लाभ उठाने के लिए नवीनतम स्थिर संस्करण का उपयोग करने की अनुशंसा की जाती है।
· यदि आप नए चिप्स के साथ प्रयोग करना चाहते हैं या नई उत्पाद सुविधाओं का पता लगाना चाहते हैं, तो कृपया मास्टर शाखा का उपयोग करें। नवीनतम संस्करण में सभी नवीनतम सुविधाएँ शामिल हैं, लेकिन ध्यान रखें कि इसमें ज्ञात या अज्ञात बग मौजूद हो सकते हैं।
· यदि उपयोग किए जा रहे स्थिर संस्करण में वांछित नई सुविधाएँ शामिल नहीं हैं और आप मास्टर शाखा से जुड़े जोखिमों को कम करना चाहते हैं, तो संबंधित रिलीज़ शाखा, जैसे रिलीज़/v4.4 शाखा का उपयोग करने पर विचार करें। एस्प्रेसिफ़ का GitHub रिपॉजिटरी पहले रिलीज़/v4.4 शाखा बनाएगा और बाद में सभी फीचर विकास और परीक्षण पूरा करने के बाद, इस शाखा के एक विशिष्ट ऐतिहासिक स्नैपशॉट के आधार पर स्थिर v4.4 संस्करण जारी करेगा।
4.1.4 ओवरview ईएसपी-आईडीएफ एसडीके निर्देशिका की
ESP-IDF SDK में दो मुख्य निर्देशिकाएँ शामिल हैं: esp-idf और .espressif। पूर्व में ईएसपी-आईडीएफ रिपॉजिटरी का स्रोत कोड शामिल है fileएस और संकलन स्क्रिप्ट, जबकि उत्तरार्द्ध मुख्य रूप से संकलन उपकरण श्रृंखला और अन्य सॉफ़्टवेयर संग्रहीत करता है। इन दो निर्देशिकाओं से परिचित होने से डेवलपर्स को उपलब्ध संसाधनों का बेहतर उपयोग करने और विकास प्रक्रिया को गति देने में मदद मिलेगी। ईएसपी-आईडीएफ की निर्देशिका संरचना नीचे वर्णित है:
(1) ईएसपी-आईडीएफ रिपॉजिटरी कोड निर्देशिका (/esp/esp-idf), जैसा चित्र 4.2 में दिखाया गया है।
एक। घटक निर्देशिका घटक
यह मुख्य निर्देशिका ईएसपी-आईडीएफ के कई आवश्यक सॉफ्टवेयर घटकों को एकीकृत करती है। इस निर्देशिका के घटकों पर भरोसा किए बिना कोई भी प्रोजेक्ट कोड संकलित नहीं किया जा सकता है। इसमें विभिन्न एस्प्रेसिफ़ चिप्स के लिए ड्राइवर समर्थन शामिल है। बाह्य उपकरणों के लिए एलएल लाइब्रेरी और एचएएल लाइब्रेरी इंटरफेस से लेकर ऊपरी स्तर के ड्राइवर और वर्चुअल तक File सिस्टम (वीएफएस) परत समर्थन, डेवलपर्स अपनी विकास आवश्यकताओं के लिए विभिन्न स्तरों पर उपयुक्त घटकों का चयन कर सकते हैं। ईएसपी-आईडीएफ कई मानक नेटवर्क प्रोटोकॉल स्टैक जैसे टीसीपी/आईपी, एचटीटीपी, एमक्यूटीटी, का भी समर्थन करता है। Webसॉकेट, आदि डेवलपर्स नेटवर्क एप्लिकेशन बनाने के लिए सॉकेट जैसे परिचित इंटरफेस का उपयोग कर सकते हैं। घटक समझ प्रदान करते हैं-
34 ESP32-C3 वायरलेस एडवेंचर: IoT के लिए एक व्यापक गाइड
चित्र 4.2. ईएसपी-आईडीएफ रिपॉजिटरी कोड निर्देशिका
सिव कार्यक्षमता और इसे आसानी से अनुप्रयोगों में एकीकृत किया जा सकता है, जिससे डेवलपर्स को केवल व्यावसायिक तर्क पर ध्यान केंद्रित करने की अनुमति मिलती है। कुछ सामान्य घटकों में शामिल हैं: · ड्राइवर: इस घटक में विभिन्न एस्प्रेसिफ़ के लिए परिधीय ड्राइवर प्रोग्राम शामिल हैं
चिप श्रृंखला, जैसे GPIO, I2C, SPI, UART, LEDC (PWM), आदि। इस घटक में परिधीय ड्राइवर प्रोग्राम चिप-स्वतंत्र अमूर्त इंटरफेस प्रदान करते हैं। प्रत्येक परिधीय में एक सामान्य शीर्षलेख होता है file (जैसे gpio.h), विभिन्न चिप-विशिष्ट समर्थन प्रश्नों से निपटने की आवश्यकता को समाप्त करता है। · esp_wifi: वाई-फाई, एक विशेष परिधीय के रूप में, एक अलग घटक के रूप में माना जाता है। इसमें कई एपीआई शामिल हैं जैसे विभिन्न वाई-फाई ड्राइवर मोड की शुरुआत, पैरामीटर कॉन्फ़िगरेशन और इवेंट प्रोसेसिंग। इस घटक के कुछ कार्य स्थिर लिंक लाइब्रेरी के रूप में प्रदान किए जाते हैं। ईएसपी-आईडीएफ उपयोग में आसानी के लिए व्यापक ड्राइवर दस्तावेज़ीकरण भी प्रदान करता है।
अध्याय 4. विकास परिवेश की स्थापना 35
· फ्रीर्टोस: इस घटक में संपूर्ण फ्रीआरटीओएस कोड शामिल है। इस ऑपरेटिंग सिस्टम के लिए व्यापक समर्थन प्रदान करने के अलावा, एस्प्रेसिफ ने डुअल-कोर चिप्स के लिए भी अपना समर्थन बढ़ाया है। ESP32 और ESP32-S3 जैसे डुअल-कोर चिप्स के लिए, उपयोगकर्ता विशिष्ट कोर पर कार्य बना सकते हैं।
बी। दस्तावेज़ निर्देशिका दस्तावेज़
इस निर्देशिका में ईएसपी-आईडीएफ से संबंधित विकास दस्तावेज शामिल हैं, जिनमें गेट स्टार्टेड गाइड, एपीआई रेफरेंस मैनुअल, डेवलपमेंट गाइड आदि शामिल हैं।
नोट स्वचालित टूल द्वारा संकलित किए जाने के बाद, इस निर्देशिका की सामग्री https://docs.espressif.com/projects/esp-idf पर तैनात की जाती है। कृपया दस्तावेज़ लक्ष्य को ESP32-C3 पर स्विच करना सुनिश्चित करें और निर्दिष्ट ESP-IDF संस्करण का चयन करें।
सी। स्क्रिप्ट टूल उपकरण
इस निर्देशिका में आमतौर पर उपयोग किए जाने वाले संकलन फ्रंट-एंड टूल जैसे idf.py, और मॉनिटर टर्मिनल टूल idf_monitor.py आदि शामिल हैं। उप-निर्देशिका cmake में कोर स्क्रिप्ट भी शामिल है fileसंकलन प्रणाली का एस, ईएसपी-आईडीएफ संकलन नियमों को लागू करने के लिए आधार के रूप में कार्य करता है। पर्यावरण चर जोड़ते समय, उपकरण निर्देशिका के भीतर की सामग्री को सिस्टम पर्यावरण चर में जोड़ा जाता है, जिससे idf.py को सीधे प्रोजेक्ट पथ के तहत निष्पादित किया जा सकता है।
डी। पूर्वampले प्रोग्राम निर्देशिका उदाampलेस
इस निर्देशिका में ईएसपी-आईडीएफ पूर्व का एक विशाल संग्रह शामिल हैampऐसे प्रोग्राम जो घटक एपीआई के उपयोग को प्रदर्शित करते हैं। भूतपूर्वampलेस को उनकी श्रेणियों के आधार पर विभिन्न उपनिर्देशिकाओं में व्यवस्थित किया गया है:
· आरंभ करें: इस उप-निर्देशिका में प्रवेश-स्तर पूर्व शामिल हैampउपयोगकर्ताओं को बुनियादी बातें समझने में मदद करने के लिए "हैलो वर्ल्ड" और "ब्लिंक" जैसे विकल्प।
· ब्लूटूथ: आप ब्लूटूथ से संबंधित पूर्व पा सकते हैंampयहां ब्लूटूथ LE मेश, ब्लूटूथ LE HID, ब्लूफाई और बहुत कुछ शामिल है।
· वाईफ़ाई: यह उप-निर्देशिका वाई-फ़ाई पर केंद्रित हैampलेस, जिसमें वाई-फाई सॉफ्टएपी, वाई-फाई स्टेशन, एस्पनो जैसे बुनियादी कार्यक्रम, साथ ही मालिकाना संचार प्रोटोकॉल शामिल हैंampएस्प्रेसिफ़ से लेस. इसमें मल्टीपल एप्लिकेशन लेयर भी शामिल हैampये वाई-फ़ाई पर आधारित हैं, जैसे कि Iperf, Sniffer और Smart Config।
· परिधीय: इस व्यापक उप-निर्देशिका को परिधीय नामों के आधार पर कई उप-फ़ोल्डरों में विभाजित किया गया है। इसमें मुख्य रूप से परिधीय चालक पूर्व शामिल हैampएस्प्रेसिफ़ चिप्स के लिए लेस, प्रत्येक पूर्व के साथampले में कई उप-पूर्व शामिल हैंampलेस. उदाहरण के लिए, gpio उप-निर्देशिका में दो पूर्व शामिल हैंampलेस: GPIO और GPIO मैट्रिक्स कीबोर्ड। यह ध्यान रखना महत्वपूर्ण है कि सभी पूर्व नहींampइस निर्देशिका में लेस ESP32-C3 पर लागू होते हैं।
36 ESP32-C3 वायरलेस एडवेंचर: IoT के लिए एक व्यापक गाइड
उदाहरणार्थampले, पूर्वampयूएसबी/होस्ट में लेस केवल यूएसबी होस्ट हार्डवेयर (जैसे ईएसपी32-एस3) वाले बाह्य उपकरणों पर लागू होते हैं, और ईएसपी32-सी3 में यह परिधीय नहीं है। लक्ष्य निर्धारित करते समय संकलन प्रणाली आमतौर पर संकेत प्रदान करती है। रीडमी file प्रत्येक पूर्व काampले समर्थित चिप्स सूचीबद्ध करता है। · प्रोटोकॉल: इस उप-निर्देशिका में पूर्व शामिल हैampMQTT, HTTP, HTTP सर्वर, PPPoS, Modbus, mDNS, SNTP सहित विभिन्न संचार प्रोटोकॉल के लिए, संचार प्रोटोकॉल की एक विस्तृत श्रृंखला को कवर करता हैampIoT विकास के लिए कम आवश्यक है। · प्रावधान: यहां, आपको पूर्व प्रावधान मिलेगाampविभिन्न तरीकों के लिए लेस, जैसे कि वाई-फ़ाई प्रावधान और ब्लूटूथ एलई प्रावधान। · सिस्टम: इस उप-निर्देशिका में सिस्टम डिबगिंग पूर्व शामिल हैampलेस (उदाहरण के लिए, स्टैक ट्रेसिंग, रनटाइम ट्रेसिंग, टास्क मॉनिटरिंग), पावर प्रबंधन उदाampलेस (उदाहरण के लिए, विभिन्न स्लीप मोड, सह-प्रोसेसर), और उदाampयह कंसोल टर्मिनल, इवेंट लूप और सिस्टम टाइमर जैसे सामान्य सिस्टम घटकों से संबंधित है। · भंडारण: इस उप-निर्देशिका के भीतर, आप पूर्व की खोज करेंगेampसब से कम file ईएसपी-आईडीएफ द्वारा समर्थित सिस्टम और स्टोरेज तंत्र (जैसे फ्लैश, एसडी कार्ड और अन्य स्टोरेज मीडिया को पढ़ना और लिखना), साथ ही पूर्वampगैर-वाष्पशील भंडारण (एनवीएस), फैटएफएस, एसपीआईएफएफएस और अन्य file सिस्टम संचालन. · सुरक्षा: इस उप-निर्देशिका में पूर्व शामिल हैampफ्लैश एन्क्रिप्शन से संबंधित लेस। (2) ईएसपी-आईडीएफ संकलन उपकरण श्रृंखला निर्देशिका (/.espressif), जैसा कि चित्र 4.3 में दिखाया गया है।
चित्र 4.3. ईएसपी-आईडीएफ संकलन उपकरण श्रृंखला निर्देशिका
अध्याय 4. विकास परिवेश की स्थापना 37
एक। सॉफ़्टवेयर वितरण निर्देशिका जिला
ईएसपी-आईडीएफ टूल श्रृंखला और अन्य सॉफ्टवेयर संपीड़ित पैकेज के रूप में वितरित किए जाते हैं। इंस्टॉलेशन प्रक्रिया के दौरान, इंस्टॉलेशन टूल पहले कंप्रेस्ड पैकेज को डिस्ट डायरेक्टरी में डाउनलोड करता है, और फिर उसे निर्दिष्ट डायरेक्टरी में निकालता है। एक बार इंस्टॉलेशन पूरा हो जाने पर, इस निर्देशिका की सामग्री को सुरक्षित रूप से हटाया जा सकता है।
बी। पायथन वर्चुअल वातावरण निर्देशिका पायथन एनवी
ईएसपी-आईडीएफ के विभिन्न संस्करण पायथन पैकेज के विशिष्ट संस्करणों पर निर्भर करते हैं। इन पैकेजों को सीधे एक ही होस्ट पर स्थापित करने से पैकेज संस्करणों के बीच टकराव हो सकता है। इसे संबोधित करने के लिए, ईएसपी-आईडीएफ विभिन्न पैकेज संस्करणों को अलग करने के लिए पायथन वर्चुअल वातावरण का उपयोग करता है। इस तंत्र के साथ, डेवलपर्स एक ही होस्ट पर ईएसपी-आईडीएफ के कई संस्करण स्थापित कर सकते हैं और विभिन्न पर्यावरण चर आयात करके आसानी से उनके बीच स्विच कर सकते हैं।
सी। ईएसपी-आईडीएफ संकलन उपकरण श्रृंखला निर्देशिका उपकरण
इस निर्देशिका में मुख्य रूप से ईएसपी-आईडीएफ परियोजनाओं को संकलित करने के लिए आवश्यक क्रॉस-संकलन उपकरण शामिल हैं, जैसे सीएमके टूल, निंजा बिल्ड टूल और जीसीसी टूल श्रृंखला जो अंतिम निष्पादन योग्य प्रोग्राम उत्पन्न करती है। इसके अतिरिक्त, इस निर्देशिका में संबंधित हेडर के साथ C/C++ भाषा की मानक लाइब्रेरी भी मौजूद है fileएस। यदि कोई प्रोग्राम किसी सिस्टम हेडर को संदर्भित करता है file जैसे #include , संकलन उपकरण श्रृंखला stdio.h का पता लगाएगी file इस निर्देशिका के अंतर्गत.
4.2 ईएसपी-आईडीएफ विकास पर्यावरण की स्थापना
ईएसपी-आईडीएफ विकास वातावरण विंडोज, लिनक्स और मैकओएस जैसे मुख्यधारा के ऑपरेटिंग सिस्टम का समर्थन करता है। यह अनुभाग प्रत्येक सिस्टम पर विकास वातावरण कैसे स्थापित किया जाए इसका परिचय देगा। लिनक्स सिस्टम पर ESP32-C3 विकसित करने की अनुशंसा की गई है, जिसे यहां विस्तार से प्रस्तुत किया जाएगा। विकास उपकरणों की समानता के कारण कई निर्देश सभी प्लेटफार्मों पर लागू होते हैं। इसलिए, इस अनुभाग की सामग्री को ध्यान से पढ़ने की सलाह दी जाती है।
ध्यान दें आप https://bookc3.espressif.com/esp32c3 पर उपलब्ध ऑनलाइन दस्तावेज़ देख सकते हैं, जो इस अनुभाग में उल्लिखित आदेश प्रदान करते हैं।
4.2.1 लिनक्स पर ईएसपी-आईडीएफ विकास पर्यावरण की स्थापना
ईएसपी-आईडीएफ विकास वातावरण के लिए आवश्यक जीएनयू विकास और डिबगिंग उपकरण लिनक्स सिस्टम के मूल निवासी हैं। इसके अतिरिक्त, लिनक्स में कमांड-लाइन टर्मिनल शक्तिशाली और उपयोगकर्ता के अनुकूल है, जो इसे ESP32-C3 विकास के लिए एक आदर्श विकल्प बनाता है। तुम कर सकते हो
38 ESP32-C3 वायरलेस एडवेंचर: IoT के लिए एक व्यापक गाइड
अपना पसंदीदा लिनक्स वितरण चुनें, लेकिन हम उबंटू या अन्य डेबियन आधारित सिस्टम का उपयोग करने की सलाह देते हैं। यह अनुभाग 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
टिप्स आपको उपरोक्त आदेश के लिए व्यवस्थापक खाते और पासवर्ड का उपयोग करना होगा। डिफ़ॉल्ट रूप से, पासवर्ड दर्ज करते समय कोई जानकारी प्रदर्शित नहीं की जाएगी। प्रक्रिया जारी रखने के लिए बस "एंटर" कुंजी दबाएं।
Git ESP-IDF में एक प्रमुख कोड प्रबंधन उपकरण है। विकास परिवेश को सफलतापूर्वक स्थापित करने के बाद, आप git लॉग कमांड का उपयोग कर सकते हैं view ईएसपी-आईडीएफ के निर्माण के बाद से किए गए सभी कोड परिवर्तन। इसके अलावा, Git का उपयोग ESP-IDF में संस्करण जानकारी की पुष्टि करने के लिए भी किया जाता है, जो विशिष्ट संस्करणों के अनुरूप सही टूल श्रृंखला स्थापित करने के लिए आवश्यक है। Git के साथ, अन्य महत्वपूर्ण सिस्टम टूल्स में Python शामिल है। ईएसपी-आईडीएफ में पायथन में लिखी गई कई स्वचालन स्क्रिप्ट शामिल हैं। CMake, Ninja-build, और Ccache जैसे उपकरण व्यापक रूप से C/C++ परियोजनाओं में उपयोग किए जाते हैं और ESP-IDF में डिफ़ॉल्ट कोड संकलन और निर्माण उपकरण के रूप में काम करते हैं। libusb-1.0-0 और dfu-util USB सीरियल संचार और फ़र्मवेयर बर्निंग के लिए उपयोग किए जाने वाले मुख्य ड्राइवर हैं। एक बार सॉफ़्टवेयर पैकेज स्थापित हो जाने के बाद, आप प्रत्येक पैकेज का विस्तृत विवरण प्राप्त करने के लिए उपयुक्त शो कमांड का उपयोग कर सकते हैं। पूर्व के लिएampले, गिट टूल के लिए विवरण जानकारी मुद्रित करने के लिए उपयुक्त शो गिट का उपयोग करें।
प्रश्न: यदि पायथन संस्करण समर्थित नहीं है तो क्या करें? उ: ईएसपी-आईडीएफ v4.3 को एक पायथन संस्करण की आवश्यकता है जो v3.6 से कम न हो। उबंटू के पुराने संस्करणों के लिए, कृपया मैन्युअल रूप से पायथन का एक उच्च संस्करण डाउनलोड और इंस्टॉल करें और Python3 को डिफ़ॉल्ट पायथन वातावरण के रूप में सेट करें। आप कीवर्ड अपडेट-अल्टरनेटिव्स पायथन खोजकर विस्तृत निर्देश पा सकते हैं।
2. ईएसपी-आईडीएफ रिपॉजिटरी कोड डाउनलोड करें
एक टर्मिनल खोलें और mkdir कमांड का उपयोग करके अपनी होम डायरेक्टरी में esp नाम का एक फ़ोल्डर बनाएं। यदि आप चाहें तो आप फ़ोल्डर के लिए एक अलग नाम चुन सकते हैं। फ़ोल्डर में प्रवेश करने के लिए सीडी कमांड का उपयोग करें।
अध्याय 4. विकास परिवेश की स्थापना 39
$ एमकेडीआईआर -पी /ईएसपी $ सीडी /ईएसपी
ईएसपी-आईडीएफ रिपॉजिटरी कोड डाउनलोड करने के लिए गिट क्लोन कमांड का उपयोग करें, जैसा कि नीचे दिखाया गया है:
$ गिट क्लोन -बी v4.3.2 -पुनरावर्ती https://github.com/espressif/esp-idf.git
उपरोक्त आदेश में, पैरामीटर -b v4.3.2 डाउनलोड करने के लिए संस्करण निर्दिष्ट करता है (इस मामले में, संस्करण 4.3.2)। पैरामीटर -रिकर्सिव यह सुनिश्चित करता है कि ईएसपी-आईडीएफ के सभी उप-रिपॉजिटरी पुनरावर्ती रूप से डाउनलोड किए जाते हैं। उप-भंडार के बारे में जानकारी .gitmodules में पाई जा सकती है file.
3. ईएसपी-आईडीएफ विकास उपकरण श्रृंखला स्थापित करें
एस्प्रेसिफ़ टूल श्रृंखला को डाउनलोड और इंस्टॉल करने के लिए एक स्वचालित स्क्रिप्ट install.sh प्रदान करता है। यह स्क्रिप्ट वर्तमान ईएसपी-आईडीएफ संस्करण और ऑपरेटिंग सिस्टम वातावरण की जांच करती है, और फिर पायथन टूल पैकेज और संकलन टूल चेन के उचित संस्करण को डाउनलोड और इंस्टॉल करती है। टूल श्रृंखला के लिए डिफ़ॉल्ट इंस्टॉलेशन पथ /.espressif है। आपको बस esp-idf निर्देशिका पर नेविगेट करना है और install.sh चलाना है।
$ cd /esp/esp-idf $ ./install.sh
यदि आप टूल श्रृंखला को सफलतापूर्वक स्थापित करते हैं, तो टर्मिनल प्रदर्शित करेगा:
सब कुछ कर दिया!
इस बिंदु पर, आपने ESP-IDF विकास परिवेश को सफलतापूर्वक स्थापित कर लिया है।
4.2.2 विंडोज़ पर ईएसपी-आईडीएफ विकास वातावरण स्थापित करना
1. ईएसपी-आईडीएफ टूल्स इंस्टॉलर डाउनलोड करें
युक्तियाँ विंडोज़ 10 या उससे ऊपर के संस्करण पर ईएसपी-आईडीएफ विकास वातावरण स्थापित करने की अनुशंसा की जाती है। आप इंस्टॉलर को https://dl.espressif.com/dl/esp-idf/ से डाउनलोड कर सकते हैं। इंस्टॉलर भी एक ओपन-सोर्स सॉफ़्टवेयर है, और इसका सोर्स कोड हो सकता है viewhttps://github.com/espressif/idf-installer पर संपादित करें।
· ऑनलाइन ईएसपी-आईडीएफ उपकरण इंस्टॉलर
यह इंस्टॉलर अपेक्षाकृत छोटा है, आकार में लगभग 4 एमबी, और इंस्टॉलेशन प्रक्रिया के दौरान अन्य पैकेज और कोड डाउनलोड किए जाएंगे। अग्रिमtagऑनलाइन इंस्टॉलर का अर्थ यह है कि न केवल सॉफ्टवेयर पैकेज और कोड को इंस्टॉलेशन प्रक्रिया के दौरान मांग पर डाउनलोड किया जा सकता है, बल्कि यह ईएसपी-आईडीएफ के सभी उपलब्ध रिलीज और गिटहब कोड की नवीनतम शाखा (जैसे मास्टर शाखा) की स्थापना की भी अनुमति देता है। . द डिसएडवानtagई यह है कि इसे इंस्टॉलेशन प्रक्रिया के दौरान नेटवर्क कनेक्शन की आवश्यकता होती है, जिससे नेटवर्क समस्याओं के कारण इंस्टॉलेशन विफलता हो सकती है।
40 ESP32-C3 वायरलेस एडवेंचर: IoT के लिए एक व्यापक गाइड
· ऑफ़लाइन ईएसपी-आईडीएफ टूल इंस्टॉलर यह इंस्टॉलर बड़ा है, आकार में लगभग 1 जीबी है, और इसमें पर्यावरण सेटअप के लिए आवश्यक सभी सॉफ़्टवेयर पैकेज और कोड शामिल हैं। मुख्य सलाहtagऑफ़लाइन इंस्टॉलर की खासियत यह है कि इसका उपयोग इंटरनेट एक्सेस के बिना कंप्यूटर पर किया जा सकता है, और आम तौर पर इसकी इंस्टॉलेशन सफलता दर अधिक होती है। यह ध्यान दिया जाना चाहिए कि ऑफ़लाइन इंस्टॉलर केवल v*.* या v*.*.* द्वारा पहचाने गए ESP-IDF के स्थिर रिलीज़ इंस्टॉल कर सकता है।
2. इंस्टॉलर का उपयुक्त संस्करण डाउनलोड करने के बाद ईएसपी-आईडीएफ टूल्स इंस्टॉलर चलाएं (उदाहरण के लिए ईएसपी-आईडीएफ टूल्स ऑफलाइन 4.3.2 लें)ampयहां देखें), exe पर डबल-क्लिक करें file ईएसपी-आईडीएफ इंस्टॉलेशन इंटरफ़ेस लॉन्च करने के लिए। निम्नलिखित दर्शाता है कि ऑफ़लाइन इंस्टॉलर का उपयोग करके ईएसपी-आईडीएफ स्थिर संस्करण v4.3.2 कैसे स्थापित करें।
(1) चित्र 4.4 में दिखाए गए "इंस्टॉलेशन भाषा का चयन करें" इंटरफ़ेस में, ड्रॉप-डाउन सूची से उपयोग की जाने वाली भाषा का चयन करें।
चित्र 4.4. "इंस्टॉलेशन भाषा का चयन करें" इंटरफ़ेस (2) भाषा का चयन करने के बाद, "लाइसेंस अनुबंध" इंटरफ़ेस को पॉप अप करने के लिए "ओके" पर क्लिक करें
(चित्र 4.5 देखें)। इंस्टॉलेशन लाइसेंस अनुबंध को ध्यान से पढ़ने के बाद, "मैं अनुबंध स्वीकार करता हूं" चुनें और "अगला" पर क्लिक करें।
चित्र 4.5. "लाइसेंस समझौता" इंटरफ़ेस अध्याय 4. विकास परिवेश स्थापित करना 41
(3) पुनःview "प्री-इंस्टॉलेशन सिस्टम चेक" इंटरफ़ेस में सिस्टम कॉन्फ़िगरेशन (चित्र 4.6 देखें)। विंडोज़ संस्करण और स्थापित एंटीवायरस सॉफ़्टवेयर जानकारी की जाँच करें। यदि सभी कॉन्फ़िगरेशन आइटम सामान्य हैं तो "अगला" पर क्लिक करें। अन्यथा, आप मुख्य वस्तुओं के आधार पर समाधान के लिए "पूर्ण लॉग" पर क्लिक कर सकते हैं।
चित्र 4.6. "इंस्टॉलेशन से पहले सिस्टम जांच" इंटरफ़ेस टिप्स
आप मदद के लिए https://github.com/espressif/idf-installer/issues पर लॉग सबमिट कर सकते हैं। (4) ईएसपी-आईडीएफ स्थापना निर्देशिका का चयन करें। यहां, जैसा कि दिखाया गया है, D:/.espressif चुनें
चित्र 4.7, और "अगला" पर क्लिक करें। कृपया ध्यान दें कि .espressif यहां एक छिपी हुई निर्देशिका है। इंस्टॉलेशन पूरा होने के बाद, आप कर सकते हैं view इस निर्देशिका की विशिष्ट सामग्री को खोलकर file प्रबंधक और छिपी हुई वस्तुओं को प्रदर्शित करना।
चित्र 4.7. ESP-IDF इंस्टॉलेशन निर्देशिका 42 ESP32-C3 वायरलेस एडवेंचर का चयन करें: IoT के लिए एक व्यापक गाइड
(5) उन घटकों की जांच करें जिन्हें स्थापित करने की आवश्यकता है, जैसा चित्र 4.8 में दिखाया गया है। डिफ़ॉल्ट विकल्प का उपयोग करने की अनुशंसा की जाती है, अर्थात, पूर्ण स्थापना, और फिर "अगला" पर क्लिक करें।
चित्र 4.8. स्थापित करने के लिए घटकों का चयन करें (6) स्थापित किए जाने वाले घटकों की पुष्टि करें और स्वचालित शुरुआत करने के लिए "इंस्टॉल करें" पर क्लिक करें-
ठहराव प्रक्रिया, जैसा चित्र 4.9 में दिखाया गया है। इंस्टॉलेशन प्रक्रिया दसियों मिनट तक चल सकती है और इंस्टॉलेशन प्रक्रिया की प्रगति पट्टी चित्र 4.10 में दिखाई गई है। कृपया धैर्यपूर्वक प्रतीक्षा करें.
चित्र 4.9. इंस्टालेशन के लिए तैयारी (7) इंस्टालेशन पूरा होने के बाद, "ईएसपी-आईडीएफ पंजीकृत करें" की जांच करने की सिफारिश की जाती है
एंटीवायरस सॉफ़्टवेयर को हटाने से रोकने के लिए विंडोज़ डिफ़ेंडर एक्सक्लूज़न के रूप में टूल निष्पादन योग्य…” fileएस। बहिष्करण आइटम जोड़ने से एंटीवायरस द्वारा बार-बार स्कैन करना भी छूट सकता है
अध्याय 4. विकास परिवेश की स्थापना 43
चित्र 4.10. इंस्टॉलेशन प्रगति बार सॉफ़्टवेयर, विंडोज़ सिस्टम की कोड संकलन दक्षता में काफी सुधार करता है। विकास परिवेश की स्थापना को पूरा करने के लिए "समाप्त करें" पर क्लिक करें, जैसा चित्र 4.11 में दिखाया गया है। आप "ईएसपी-आईडीएफ पावरशेल वातावरण चलाएं" या "ईएसपी-आईडीएफ कमांड प्रॉम्प्ट चलाएं" की जांच करना चुन सकते हैं। यह सुनिश्चित करने के लिए कि विकास वातावरण सामान्य रूप से कार्य करता है, स्थापना के बाद सीधे संकलन विंडो चलाएँ।
चित्र 4.11. इंस्टालेशन पूरा हुआ (8) प्रोग्राम सूची में स्थापित विकास वातावरण खोलें (या तो ईएसपी-आईडीएफ 4.3
सीएमडी या ईएसपी-आईडीएफ 4.3 पावरशेल टर्मिनल, जैसा कि चित्र 4.12 में दिखाया गया है), और टर्मिनल में चलते समय ईएसपी-आईडीएफ पर्यावरण चर स्वचालित रूप से जोड़ा जाएगा। उसके बाद, आप संचालन के लिए idf.py कमांड का उपयोग कर सकते हैं। खोला गया ईएसपी-आईडीएफ 4.3 सीएमडी चित्र 4.13 में दिखाया गया है। 44 ईएसपी32-सी3 वायरलेस एडवेंचर: आईओटी के लिए एक व्यापक गाइड
चित्र 4.12. विकास वातावरण स्थापित किया गया
चित्र 4.13. ईएसपी-आईडीएफ 4.3 सीएमडी
4.2.3 मैक पर ईएसपी-आईडीएफ विकास वातावरण स्थापित करना
मैक सिस्टम पर ईएसपी-आईडीएफ विकास वातावरण स्थापित करने की प्रक्रिया लिनक्स सिस्टम के समान ही है। रिपॉजिटरी कोड डाउनलोड करने और टूल चेन इंस्टॉल करने के आदेश बिल्कुल समान हैं। केवल निर्भरता पैकेज स्थापित करने के आदेश थोड़े भिन्न हैं। 1. निर्भरता पैकेज स्थापित करें एक टर्मिनल खोलें, और निम्न आदेश चलाकर पाइप, पायथन पैकेज प्रबंधन उपकरण स्थापित करें:
% sudo आसान इंस्टाल पिप
निम्न आदेश चलाकर, MacOS के लिए एक पैकेज प्रबंधन टूल, Homebrew स्थापित करें:
% /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ HEAD/install.sh)”
निम्नलिखित कमांड चलाकर आवश्यक निर्भरता पैकेज स्थापित करें:
% ब्रू पायथन3 इंस्टॉल करें सीएमके निंजा सीकैचे डीएफयू-यूटिल
2. ईएसपी-आईडीएफ रिपॉजिटरी कोड डाउनलोड करें ईएसपी-आईडीएफ रिपॉजिटरी कोड डाउनलोड करने के लिए अनुभाग 4.2.1 में दिए गए निर्देशों का पालन करें। चरण लिनक्स सिस्टम पर डाउनलोड करने के समान ही हैं।
अध्याय 4. विकास परिवेश की स्थापना 45
3. ईएसपी-आईडीएफ विकास उपकरण श्रृंखला स्थापित करें
ईएसपी-आईडीएफ विकास उपकरण श्रृंखला स्थापित करने के लिए अनुभाग 4.2.1 में दिए गए निर्देशों का पालन करें। चरण लिनक्स सिस्टम पर इंस्टालेशन के समान ही हैं।
4.2.4 वीएस कोड स्थापित करना
डिफ़ॉल्ट रूप से, ईएसपी-आईडीएफ एसडीके में कोड संपादन टूल शामिल नहीं है (हालांकि विंडोज के लिए नवीनतम ईएसपी-आईडीएफ इंस्टॉलर ईएसपी-आईडीएफ एक्लिप्स स्थापित करने का विकल्प प्रदान करता है)। आप कोड को संपादित करने और फिर टर्मिनल कमांड का उपयोग करके इसे संकलित करने के लिए अपनी पसंद के किसी भी टेक्स्ट संपादन टूल का उपयोग कर सकते हैं।
एक लोकप्रिय कोड संपादन उपकरण वीएस कोड (विजुअल स्टूडियो कोड) है, जो उपयोगकर्ता के अनुकूल इंटरफेस के साथ एक निःशुल्क और सुविधा संपन्न कोड संपादक है। यह विभिन्न ऑफर करता है plugins जो कोड नेविगेशन, सिंटैक्स हाइलाइटिंग, गिट संस्करण नियंत्रण और टर्मिनल एकीकरण जैसी कार्यक्षमताएं प्रदान करता है। इसके अतिरिक्त, एस्प्रेसिफ ने वीएस कोड के लिए एस्प्रेसिफ आईडीएफ नामक एक समर्पित प्लगइन विकसित किया है, जो प्रोजेक्ट कॉन्फ़िगरेशन और डिबगिंग को सरल बनाता है।
आप वीएस कोड में वर्तमान फ़ोल्डर को तुरंत खोलने के लिए टर्मिनल में कोड कमांड का उपयोग कर सकते हैं। वैकल्पिक रूप से, आप वीएस कोड के भीतर सिस्टम के डिफ़ॉल्ट टर्मिनल कंसोल को खोलने के लिए शॉर्टकट Ctrl+ का उपयोग कर सकते हैं।
टिप्स ESP32-C3 कोड विकास के लिए VS कोड का उपयोग करने की अनुशंसा की जाती है। वीएस कोड का नवीनतम संस्करण https://code.visualstudio.com/ पर डाउनलोड और इंस्टॉल करें।
4.2.5 तृतीय-पक्ष विकास परिवेश का परिचय
आधिकारिक ईएसपी-आईडीएफ विकास वातावरण के अलावा, जो मुख्य रूप से सी भाषा का उपयोग करता है, ईएसपी32-सी3 अन्य मुख्यधारा प्रोग्रामिंग भाषाओं और तीसरे पक्ष के विकास वातावरण की एक विस्तृत श्रृंखला का भी समर्थन करता है। कुछ उल्लेखनीय विकल्पों में शामिल हैं:
Arduino: हार्डवेयर और सॉफ्टवेयर दोनों के लिए एक ओपन-सोर्स प्लेटफ़ॉर्म, ESP32-C3 सहित विभिन्न माइक्रोकंट्रोलर का समर्थन करता है।
यह C++ भाषा का उपयोग करता है और एक सरलीकृत और मानकीकृत API प्रदान करता है, जिसे आमतौर पर Arduino भाषा कहा जाता है। प्रोटोटाइप विकास और शैक्षिक संदर्भों में Arduino का व्यापक रूप से उपयोग किया जाता है। यह एक एक्स्टेंसिबल सॉफ्टवेयर पैकेज और एक आईडीई प्रदान करता है जो आसान संकलन और फ्लैशिंग की अनुमति देता है।
माइक्रोपायथन: एक पायथन 3 भाषा दुभाषिया जिसे एम्बेडेड माइक्रोकंट्रोलर प्लेटफॉर्म पर चलाने के लिए डिज़ाइन किया गया है।
एक सरल स्क्रिप्ट भाषा के साथ, यह सीधे ESP32-C3 के परिधीय संसाधनों (जैसे UART, SPI, और I2C) और संचार कार्यों (जैसे वाई-फाई और ब्लूटूथ LE) तक पहुंच सकता है।
46 ESP32-C3 वायरलेस एडवेंचर: IoT के लिए एक व्यापक गाइड
यह हार्डवेयर इंटरेक्शन को सरल बनाता है। माइक्रोपायथन, पायथन की व्यापक गणितीय ऑपरेशन लाइब्रेरी के साथ मिलकर, ईएसपी32-सी3 पर जटिल एल्गोरिदम के कार्यान्वयन को सक्षम बनाता है, जिससे एआई-संबंधित अनुप्रयोगों के विकास में सुविधा होती है। एक लिपि भाषा के रूप में, बार-बार संकलन की कोई आवश्यकता नहीं है; संशोधन किए जा सकते हैं और स्क्रिप्ट को सीधे निष्पादित किया जा सकता है।
NodeMCU: ESP श्रृंखला चिप्स के लिए विकसित एक LUA भाषा दुभाषिया।
यह ईएसपी चिप्स के लगभग सभी परिधीय कार्यों का समर्थन करता है और माइक्रोपायथन की तुलना में हल्का है। माइक्रोपायथन के समान, NodeMCU एक स्क्रिप्ट भाषा का उपयोग करता है, जिससे बार-बार संकलन की आवश्यकता समाप्त हो जाती है।
इसके अलावा, ESP32-C3 NuttX और Zephyr ऑपरेटिंग सिस्टम को भी सपोर्ट करता है। NuttX एक वास्तविक समय ऑपरेटिंग सिस्टम है जो एप्लिकेशन पोर्टेबिलिटी को बढ़ाते हुए POSIX-संगत इंटरफेस प्रदान करता है। Zephyr एक छोटा वास्तविक समय ऑपरेटिंग सिस्टम है जिसे विशेष रूप से IoT अनुप्रयोगों के लिए डिज़ाइन किया गया है। इसमें IoT विकास के लिए आवश्यक कई सॉफ़्टवेयर लाइब्रेरी शामिल हैं, जो धीरे-धीरे एक व्यापक सॉफ़्टवेयर पारिस्थितिकी तंत्र में विकसित हो रही हैं।
यह पुस्तक उपरोक्त विकास परिवेशों के लिए विस्तृत इंस्टॉलेशन निर्देश प्रदान नहीं करती है। आप संबंधित दस्तावेज़ और निर्देशों का पालन करके अपनी आवश्यकताओं के आधार पर एक विकास वातावरण स्थापित कर सकते हैं।
4.3 ईएसपी-आईडीएफ संकलन प्रणाली
4.3.1 संकलन प्रणाली की बुनियादी अवधारणाएँ
एक ईएसपी-आईडीएफ परियोजना एक प्रवेश फ़ंक्शन और कई स्वतंत्र कार्यात्मक घटकों के साथ एक मुख्य कार्यक्रम का एक संग्रह है। पूर्व के लिएampले, एक प्रोजेक्ट जो एलईडी स्विच को नियंत्रित करता है, उसमें मुख्य रूप से एक एंट्री प्रोग्राम मेन और एक ड्राइवर घटक होता है जो जीपीआईओ को नियंत्रित करता है। यदि आप एलईडी रिमोट कंट्रोल का एहसास करना चाहते हैं, तो आपको वाई-फाई, टीसीपी/आईपी प्रोटोकॉल स्टैक आदि भी जोड़ना होगा।
संकलन प्रणाली निष्पादन योग्य को संकलित, लिंक और उत्पन्न कर सकती है fileबिल्डिंग नियमों के एक सेट के माध्यम से कोड के लिए s (.bin)। ESP-IDF v4.0 और इससे ऊपर के संस्करणों की संकलन प्रणाली डिफ़ॉल्ट रूप से CMake पर आधारित है, और संकलन स्क्रिप्ट CMakeLists.txt का उपयोग कोड के संकलन व्यवहार को नियंत्रित करने के लिए किया जा सकता है। सीएमके के मूल सिंटैक्स का समर्थन करने के अलावा, ईएसपी-आईडीएफ संकलन प्रणाली डिफ़ॉल्ट संकलन नियमों और सीएमके फ़ंक्शंस के एक सेट को भी परिभाषित करती है, और आप सरल कथनों के साथ संकलन स्क्रिप्ट लिख सकते हैं।
4.3.2 परियोजना File संरचना
एक प्रोजेक्ट एक फ़ोल्डर है जिसमें एक प्रविष्टि प्रोग्राम मुख्य, उपयोगकर्ता-परिभाषित घटक और शामिल होते हैं fileनिष्पादन योग्य एप्लिकेशन, जैसे संकलन स्क्रिप्ट, कॉन्फ़िगरेशन बनाने के लिए आवश्यक है
अध्याय 4. विकास परिवेश की स्थापना 47
files, विभाजन तालिकाएँ, आदि। परियोजनाओं की प्रतिलिपि बनाई जा सकती है और उन्हें आगे बढ़ाया जा सकता है, और वही निष्पादन योग्य भी file ईएसपी-आईडीएफ विकास वातावरण के समान संस्करण वाली मशीनों में संकलित और उत्पन्न किया जा सकता है। एक विशिष्ट ईएसपी-आईडीएफ परियोजना file संरचना चित्र 4.14 में दिखाई गई है।
चित्र 4.14. विशिष्ट ईएसपी-आईडीएफ परियोजना file संरचना चूंकि ईएसपी-आईडीएफ एस्प्रेसिफ़ से कई आईओटी चिप्स का समर्थन करता है, जिसमें ईएसपी32, ईएसपी32-एस श्रृंखला, ईएसपी32-सी श्रृंखला, ईएसपी32-एच श्रृंखला आदि शामिल हैं, कोड संकलित करने से पहले एक लक्ष्य निर्धारित करने की आवश्यकता है। लक्ष्य हार्डवेयर डिवाइस है जो एप्लिकेशन प्रोग्राम चलाता है और संकलन सिस्टम का बिल्ड लक्ष्य दोनों है। अपनी आवश्यकताओं के आधार पर, आप अपने प्रोजेक्ट के लिए एक या अधिक लक्ष्य निर्दिष्ट कर सकते हैं। पूर्व के लिएampले, कमांड idf.py set-target esp32c3 के माध्यम से, आप संकलन लक्ष्य को ESP32-C3 पर सेट कर सकते हैं, जिसके दौरान ESP32C3 के लिए डिफ़ॉल्ट पैरामीटर और संकलन उपकरण श्रृंखला पथ लोड किया जाएगा। संकलन के बाद, ESP32C3 के लिए एक निष्पादन योग्य प्रोग्राम तैयार किया जा सकता है। आप एक अलग लक्ष्य निर्धारित करने के लिए कमांड सेट-टार्गेट को फिर से चला सकते हैं, और संकलन प्रणाली स्वचालित रूप से साफ़ और पुन: कॉन्फ़िगर हो जाएगी। अवयव
ईएसपी-आईडीएफ में घटक संकलन प्रणाली के भीतर प्रबंधित मॉड्यूलर और स्वतंत्र कोड इकाइयाँ हैं। वे फ़ोल्डर के रूप में व्यवस्थित होते हैं, फ़ोल्डर नाम डिफ़ॉल्ट रूप से घटक नाम का प्रतिनिधित्व करता है। प्रत्येक घटक की अपनी संकलन स्क्रिप्ट होती है जो 48 ESP32-C3 वायरलेस एडवेंचर: IoT के लिए एक व्यापक गाइड
इसके संकलन पैरामीटर और निर्भरताएँ निर्दिष्ट करता है। संकलन प्रक्रिया के दौरान, घटकों को अलग-अलग स्थिर पुस्तकालयों (.a.) में संकलित किया जाता है files) और अंततः अन्य घटकों के साथ मिलकर एप्लिकेशन प्रोग्राम बनाया गया।
ईएसपी-आईडीएफ घटकों के रूप में ऑपरेटिंग सिस्टम, परिधीय ड्राइवर और नेटवर्क प्रोटोकॉल स्टैक जैसे आवश्यक कार्य प्रदान करता है। ये घटक ईएसपी-आईडीएफ रूट निर्देशिका के भीतर स्थित घटक निर्देशिका में संग्रहीत हैं। डेवलपर्स को इन घटकों को myProject की घटक निर्देशिका में कॉपी करने की आवश्यकता नहीं है। इसके बजाय, उन्हें केवल प्रोजेक्ट के CMakeLists.txt में इन घटकों के निर्भरता संबंधों को निर्दिष्ट करने की आवश्यकता है file REQUIRES या PRIV_REQUIRES निर्देशों का उपयोग करना। संकलन प्रणाली स्वचालित रूप से आवश्यक घटकों का पता लगाएगी और संकलित करेगी।
इसलिए, myProject के अंतर्गत घटक निर्देशिका आवश्यक नहीं है। इसका उपयोग केवल प्रोजेक्ट के कुछ कस्टम घटकों को शामिल करने के लिए किया जाता है, जो तृतीय-पक्ष लाइब्रेरी या उपयोगकर्ता-परिभाषित कोड हो सकते हैं। इसके अतिरिक्त, घटकों को ईएसपी-आईडीएफ या वर्तमान प्रोजेक्ट के अलावा किसी भी निर्देशिका से प्राप्त किया जा सकता है, जैसे किसी अन्य निर्देशिका में सहेजे गए ओपन-सोर्स प्रोजेक्ट से। इस मामले में, आपको केवल रूट निर्देशिका के अंतर्गत CMakeLists.txt में EXTRA_COMPONENT_DIRS वेरिएबल सेट करके घटक का पथ जोड़ना होगा। यह निर्देशिका समान नाम वाले किसी भी ईएसपी-आईडीएफ घटक को ओवरराइड कर देगी, यह सुनिश्चित करते हुए कि सही घटक का उपयोग किया गया है।
प्रवेश कार्यक्रम मुख्य परियोजना के भीतर मुख्य निर्देशिका उसी का अनुसरण करती है file अन्य घटकों की तरह संरचना (उदाहरण के लिए, घटक 1)। हालाँकि, इसका एक विशेष महत्व है क्योंकि यह एक अनिवार्य घटक है जो हर परियोजना में मौजूद होना चाहिए। मुख्य निर्देशिका में प्रोजेक्ट का स्रोत कोड और उपयोगकर्ता प्रोग्राम का प्रवेश बिंदु होता है, जिसे आमतौर पर ऐप_मेन नाम दिया जाता है। डिफ़ॉल्ट रूप से, उपयोगकर्ता प्रोग्राम का निष्पादन इस प्रविष्टि बिंदु से शुरू होता है। मुख्य घटक इस मायने में भी भिन्न है कि यह स्वचालित रूप से खोज पथ के सभी घटकों पर निर्भर करता है। इसलिए, CMakeLists.txt में REQUIRES या PRIV_REQUIRES निर्देशों का उपयोग करके निर्भरता को स्पष्ट रूप से इंगित करने की कोई आवश्यकता नहीं है। file.
विन्यास file प्रोजेक्ट की रूट डायरेक्टरी में एक कॉन्फ़िगरेशन है file sdkconfig कहा जाता है, जिसमें प्रोजेक्ट के सभी घटकों के लिए कॉन्फ़िगरेशन पैरामीटर शामिल हैं। Sdkconfig file संकलन प्रणाली द्वारा स्वचालित रूप से उत्पन्न होता है और इसे idf.py मेनूकॉन्फिग कमांड द्वारा संशोधित और पुनर्जीवित किया जा सकता है। मेन्यूकॉन्फिग विकल्प मुख्य रूप से प्रोजेक्ट के Kconfig.projbuild और घटकों के Kconfig से उत्पन्न होते हैं। घटक डेवलपर्स आमतौर पर घटक को लचीला और कॉन्फ़िगर करने योग्य बनाने के लिए Kconfig में कॉन्फ़िगरेशन आइटम जोड़ते हैं।
निर्देशिका बनाएँ डिफ़ॉल्ट रूप से, प्रोजेक्ट के भीतर बिल्ड निर्देशिका मध्यवर्ती को संग्रहीत करती है fileएस और फाई-
अध्याय 4. विकास परिवेश की स्थापना 49
idf.py बिल्ड कमांड द्वारा उत्पन्न अंतिम निष्पादन योग्य प्रोग्राम। सामान्य तौर पर, बिल्ड निर्देशिका की सामग्री तक सीधे पहुंचना आवश्यक नहीं है। ईएसपी-आईडीएफ निर्देशिका के साथ इंटरैक्ट करने के लिए पूर्वनिर्धारित कमांड प्रदान करता है, जैसे संकलित बाइनरी का स्वचालित रूप से पता लगाने के लिए idf.py फ़्लैश कमांड का उपयोग करना file और इसे निर्दिष्ट फ़्लैश पते पर फ़्लैश करें, या संपूर्ण बिल्ड निर्देशिका को साफ़ करने के लिए idf.py फुलक्लीन कमांड का उपयोग करें।
विभाजन तालिका (partitions.csv) प्रत्येक प्रोजेक्ट को फ़्लैश के स्थान को विभाजित करने और निष्पादन योग्य प्रोग्राम और उपयोगकर्ता डेटा स्थान के आकार और प्रारंभिक पते को निर्दिष्ट करने के लिए एक विभाजन तालिका की आवश्यकता होती है। कमांड idf.py फ़्लैश या OTA अपग्रेड प्रोग्राम फ़र्मवेयर को इस तालिका के अनुसार संबंधित पते पर फ़्लैश करेगा। ईएसपी-आईडीएफ घटकों/पार्टीशन_टेबल में कई डिफ़ॉल्ट विभाजन तालिकाएं प्रदान करता है, जैसे कि पार्टीशन_सिंगलएप.सीएसवी और पार्टीशन_टू_ ओटीए.सीएसवी, जिन्हें मेन्यूकॉन्फिग में चुना जा सकता है।
यदि सिस्टम की डिफ़ॉल्ट विभाजन तालिका प्रोजेक्ट की आवश्यकताओं को पूरा नहीं कर सकती है, तो एक कस्टम पार्टीशन.csv को प्रोजेक्ट निर्देशिका में जोड़ा जा सकता है और मेनूकॉन्फिग में चुना जा सकता है।
4.3.3 संकलन प्रणाली के डिफ़ॉल्ट निर्माण नियम
समान नाम वाले घटकों को ओवरराइड करने के नियम घटक खोज प्रक्रिया के दौरान, संकलन प्रणाली एक विशिष्ट क्रम का पालन करती है। यह पहले ESP-IDF के आंतरिक घटकों की खोज करता है, फिर उपयोगकर्ता प्रोजेक्ट के घटकों की खोज करता है, और अंत में EXTRA_COMPONENT_DIRS में घटकों की खोज करता है। ऐसे मामलों में जहां एकाधिक निर्देशिकाओं में समान नाम वाले घटक होते हैं, अंतिम निर्देशिका में पाया गया घटक समान नाम वाले किसी भी पिछले घटक को ओवरराइड कर देगा। यह नियम मूल ईएसपी-आईडीएफ कोड को बरकरार रखते हुए, उपयोगकर्ता प्रोजेक्ट के भीतर ईएसपी-आईडीएफ घटकों के अनुकूलन की अनुमति देता है।
डिफ़ॉल्ट रूप से सामान्य घटकों को शामिल करने के नियम जैसा कि अनुभाग 4.3.2 में बताया गया है, घटकों को CMakeLists.txt में अन्य घटकों पर अपनी निर्भरता को स्पष्ट रूप से निर्दिष्ट करने की आवश्यकता है। हालाँकि, फ्रीर्टोस जैसे सामान्य घटक स्वचालित रूप से डिफ़ॉल्ट रूप से बिल्ड सिस्टम में शामिल होते हैं, भले ही उनके निर्भरता संबंधों को संकलन स्क्रिप्ट में स्पष्ट रूप से परिभाषित नहीं किया गया हो। ईएसपी-आईडीएफ के सामान्य घटकों में फ़्रीर्टोस, न्यूलिब, हीप, लॉग, समाज, 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 इत्यादि हो सकता है। ये विन्यास fileसामान्य डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ, संकलन के दौरान sdkconfig में आयात किया जाता है file sdkconfig.defaults को पहले आयात किया जा रहा है, उसके बाद लक्ष्य-विशिष्ट कॉन्फ़िगरेशन आयात किया जा रहा है file, जैसे sdkconfig.defaults.esp32c3. ऐसे मामलों में जहां समान नाम वाले कॉन्फ़िगरेशन आइटम हैं, बाद वाला कॉन्फ़िगरेशन file पूर्व को ओवरराइड कर देगा.
4.3.4 संकलन स्क्रिप्ट का परिचय
ईएसपी-आईडीएफ का उपयोग करके एक प्रोजेक्ट विकसित करते समय, डेवलपर्स को न केवल स्रोत कोड लिखने की आवश्यकता होती है, बल्कि प्रोजेक्ट और घटकों के लिए CMakeLists.txt भी लिखने की आवश्यकता होती है। CMakeLists.txt एक टेक्स्ट है file, जिसे एक संकलन स्क्रिप्ट के रूप में भी जाना जाता है, जो संकलन ऑब्जेक्ट, संकलन कॉन्फ़िगरेशन आइटम और स्रोत कोड की संकलन प्रक्रिया को निर्देशित करने के लिए आदेशों की एक श्रृंखला को परिभाषित करता है। ESP-IDF v4.3.2 की संकलन प्रणाली CMake पर आधारित है। देशी सीएमके फ़ंक्शंस और कमांड का समर्थन करने के अलावा, यह कस्टम फ़ंक्शंस की एक श्रृंखला को भी परिभाषित करता है, जिससे संकलन स्क्रिप्ट लिखना बहुत आसान हो जाता है।
ईएसपी-आईडीएफ में संकलन स्क्रिप्ट में मुख्य रूप से प्रोजेक्ट संकलन स्क्रिप्ट और घटक संकलन स्क्रिप्ट शामिल हैं। प्रोजेक्ट की मूल निर्देशिका में CMakeLists.txt को प्रोजेक्ट संकलन स्क्रिप्ट कहा जाता है, जो संपूर्ण प्रोजेक्ट की संकलन प्रक्रिया का मार्गदर्शन करता है। एक बुनियादी परियोजना संकलन स्क्रिप्ट में आम तौर पर निम्नलिखित तीन पंक्तियाँ शामिल होती हैं:
1. cmake_minimum_required(संस्करण 3.5) 2. include($ENV{IDF_PATH}/tools/cmake/project.cmake) 3. प्रोजेक्ट(myProject)
उनमें से, cmake_minimum_required (संस्करण 3.5) को पहली पंक्ति पर रखा जाना चाहिए, जिसका उपयोग प्रोजेक्ट के लिए आवश्यक न्यूनतम CMake संस्करण संख्या को इंगित करने के लिए किया जाता है। सीएमके के नए संस्करण आम तौर पर पुराने संस्करणों के साथ पिछड़े संगत होते हैं, इसलिए संगतता सुनिश्चित करने के लिए नए सीएमके कमांड का उपयोग करते समय संस्करण संख्या को तदनुसार समायोजित करें।
include($ENV {IDF_PATH}/tools/cmake/project.cmake) धारा 4.3.3 में वर्णित संकलन प्रणाली के डिफ़ॉल्ट निर्माण नियमों सहित ईएसपी-आईडीएफ संकलन प्रणाली के पूर्व-निर्धारित कॉन्फ़िगरेशन आइटम और कमांड आयात करता है। प्रोजेक्ट(myProject) स्वयं प्रोजेक्ट बनाता है और उसका नाम निर्दिष्ट करता है। इस नाम का उपयोग अंतिम आउटपुट बाइनरी के रूप में किया जाएगा file नाम, यानी, myProject.elf और myProject.bin।
एक प्रोजेक्ट में मुख्य घटक सहित कई घटक हो सकते हैं। प्रत्येक घटक की शीर्ष-स्तरीय निर्देशिका में एक CMakeLists.txt होता है file, जिसे घटक संकलन स्क्रिप्ट कहा जाता है। घटक संकलन स्क्रिप्ट का उपयोग मुख्य रूप से घटक निर्भरता, कॉन्फ़िगरेशन पैरामीटर, स्रोत कोड को निर्दिष्ट करने के लिए किया जाता है fileएस, और हेडर शामिल है fileएस के लिए
अध्याय 4. विकास परिवेश की स्थापना 51
संकलन. ESP-IDF के कस्टम फ़ंक्शन idf_component_register के साथ, घटक संकलन स्क्रिप्ट के लिए न्यूनतम आवश्यक कोड इस प्रकार है:
1. idf_component_register(SRCS "src1.c"
2.
INCLUDE_DIRS "शामिल करें"
3.
घटक की आवश्यकता है1)
एसआरसीएस पैरामीटर स्रोत की एक सूची प्रदान करता है fileघटक में s, एकाधिक होने पर रिक्त स्थान से अलग किया जाता है fileएस। INCLUDE_DIRS पैरामीटर सार्वजनिक हेडर की एक सूची प्रदान करता है file घटक के लिए निर्देशिकाएं, जिन्हें वर्तमान घटक पर निर्भर अन्य घटकों के लिए खोज पथ में जोड़ा जाएगा। REQUIRES पैरामीटर वर्तमान घटक के लिए सार्वजनिक घटक निर्भरता की पहचान करता है। घटकों के लिए यह स्पष्ट रूप से बताना आवश्यक है कि वे किन घटकों पर निर्भर हैं, जैसे घटक2, घटक1 पर निर्भर करता है। हालाँकि, मुख्य घटक के लिए, जो डिफ़ॉल्ट रूप से सभी घटकों पर निर्भर करता है, REQUIRES पैरामीटर को छोड़ा जा सकता है।
इसके अलावा, देशी सीएमके कमांड का उपयोग संकलन स्क्रिप्ट में भी किया जा सकता है। पूर्व के लिएampले, वेरिएबल सेट करने के लिए कमांड सेट का उपयोग करें, जैसे कि सेट (वैरिएबल "वैल्यू")।
4.3.5 सामान्य कमांड का परिचय
ईएसपी-आईडीएफ कोड संकलन की प्रक्रिया में सीएमके (प्रोजेक्ट कॉन्फ़िगरेशन टूल), निंजा (प्रोजेक्ट बिल्डिंग टूल) और एस्प्टूल (फ्लैश टूल) का उपयोग करता है। प्रत्येक उपकरण संकलन, निर्माण और फ्लैश प्रक्रिया में एक अलग भूमिका निभाता है, और विभिन्न ऑपरेटिंग कमांड का भी समर्थन करता है। उपयोगकर्ता संचालन को सुविधाजनक बनाने के लिए, ईएसपी-आईडीएफ एक एकीकृत फ्रंट-एंड idf.py जोड़ता है जो उपरोक्त आदेशों को तुरंत कॉल करने की अनुमति देता है।
Idf.py का उपयोग करने से पहले, सुनिश्चित करें कि:
· ESP-IDF का पर्यावरण चर IDF_PATH वर्तमान टर्मिनल में जोड़ा गया है। · कमांड निष्पादन निर्देशिका परियोजना की मूल निर्देशिका है, जिसमें शामिल है
प्रोजेक्ट संकलन स्क्रिप्ट CMakeLists.txt।
Idf.py के सामान्य कमांड इस प्रकार हैं:
· idf.py –help: आदेशों और उनके उपयोग निर्देशों की एक सूची प्रदर्शित करना। · idf.py सेट-लक्ष्य : संकलन taidf.py पूर्णक्लीनरगेट सेट करना, जैसे
को esp32c3 से बदलने के रूप में। · idf.py मेनूकॉन्फिग: मेनूकॉन्फिग लॉन्च करना, एक टर्मिनल ग्राफिकल कॉन्फ़िगरेशन
टूल, जो कॉन्फ़िगरेशन विकल्पों को चुन या संशोधित कर सकता है, और कॉन्फ़िगरेशन परिणाम sdkconfig में सहेजे जाते हैं file. · idf.py बिल्ड: कोड संकलन आरंभ करना। मध्यवर्ती files और संकलन द्वारा उत्पन्न अंतिम निष्पादन योग्य प्रोग्राम डिफ़ॉल्ट रूप से प्रोजेक्ट की बिल्ड निर्देशिका में सहेजा जाएगा। संकलन प्रक्रिया वृद्धिशील है, जिसका अर्थ है कि यदि केवल एक ही स्रोत है file संशोधित है, केवल संशोधित है file अगली बार संकलित किया जाएगा.
52 ESP32-C3 वायरलेस एडवेंचर: IoT के लिए एक व्यापक गाइड
· idf.py क्लीन: इंटरमीडिएट की सफाई fileपरियोजना संकलन द्वारा उत्पन्न। पूरे प्रोजेक्ट को अगले संकलन में संकलित करने के लिए बाध्य किया जाएगा। ध्यान दें कि सीएमके कॉन्फ़िगरेशन और मेन्यूकॉन्फिग द्वारा किए गए कॉन्फ़िगरेशन संशोधनों को सफाई के दौरान हटाया नहीं जाएगा।
· idf.py फुलक्लीन: सभी सीएमके कॉन्फ़िगरेशन आउटपुट सहित संपूर्ण बिल्ड निर्देशिका को हटाना fileएस। प्रोजेक्ट को दोबारा बनाते समय, सीएमके प्रोजेक्ट को स्क्रैच से कॉन्फ़िगर करेगा। कृपया ध्यान दें कि यह आदेश पुनरावर्ती रूप से सभी को हटा देगा fileबिल्ड निर्देशिका में है, इसलिए इसे सावधानी से उपयोग करें, और प्रोजेक्ट कॉन्फ़िगरेशन file हटाया नहीं जाएगा.
· idf.py फ़्लैश: निष्पादन योग्य प्रोग्राम बाइनरी को फ़्लैश करना file लक्ष्य ESP32-C3 के निर्माण द्वारा उत्पन्न। विकल्प -p और -b का उपयोग क्रमशः सीरियल पोर्ट के डिवाइस नाम और फ्लैशिंग के लिए बॉड दर को सेट करने के लिए किया जाता है। यदि ये दो विकल्प निर्दिष्ट नहीं हैं, तो सीरियल पोर्ट का स्वचालित रूप से पता लगाया जाएगा और डिफ़ॉल्ट बॉड दर का उपयोग किया जाएगा।
· idf.py मॉनिटर: लक्ष्य ESP32-C3 का सीरियल पोर्ट आउटपुट प्रदर्शित करना। विकल्प -p का उपयोग होस्ट-साइड सीरियल पोर्ट के डिवाइस नाम को निर्दिष्ट करने के लिए किया जा सकता है। सीरियल पोर्ट प्रिंटिंग के दौरान, मॉनिटर से बाहर निकलने के लिए कुंजी संयोजन Ctrl+] दबाएँ।
उपरोक्त आदेशों को आवश्यकतानुसार जोड़ा भी जा सकता है। पूर्व के लिएampले, कमांड idf.py बिल्ड फ्लैश मॉनिटर कोड संकलन, फ्लैश करेगा और क्रम में सीरियल पोर्ट मॉनिटर खोलेगा।
ईएसपी-आईडीएफ संकलन प्रणाली के बारे में अधिक जानने के लिए आप https://bookc3.espressif.com/build-system पर जा सकते हैं।
4.4 अभ्यास: पूर्व संकलनampले कार्यक्रम "ब्लिंक"
4.4.1 पूर्वampले विश्लेषण
यह अनुभाग प्रोग्राम ब्लिंक को एक पूर्व के रूप में लेगाampले विश्लेषण करने के लिए file किसी वास्तविक प्रोजेक्ट की संरचना और कोडिंग नियमों का विस्तार से वर्णन करें। ब्लिंक प्रोग्राम एलईडी ब्लिंकिंग प्रभाव को लागू करता है, और प्रोजेक्ट पूर्व निर्देशिका में स्थित हैampलेस/गेट-स्टार्ट/ब्लिंक, जिसमें एक स्रोत शामिल है file, विन्यास fileएस, और कई संकलन स्क्रिप्ट।
इस पुस्तक में प्रस्तुत स्मार्ट लाइट परियोजना इसी पूर्व पर आधारित हैampले कार्यक्रम. अंततः इसे पूरा करने के लिए बाद के अध्यायों में धीरे-धीरे फ़ंक्शंस जोड़े जाएंगे।
स्रोत कोड संपूर्ण विकास प्रक्रिया को प्रदर्शित करने के लिए, ब्लिंक प्रोग्राम को esp32c3-iot-projects/device फर्मवेयर/1 ब्लिंक में कॉपी किया गया है।
ब्लिंक प्रोजेक्ट की निर्देशिका संरचना files चित्र 4.15 में दिखाया गया है।
ब्लिंक प्रोजेक्ट में केवल एक मुख्य निर्देशिका है, जो एक विशेष घटक है
अध्याय 4. विकास परिवेश की स्थापना 53
चित्र 4.15. File ब्लिंक प्रोजेक्ट की निर्देशिका संरचना
अनुभाग 4.3.2 में वर्णित अनुसार शामिल किया जाना चाहिए। मुख्य निर्देशिका का उपयोग मुख्य रूप से ऐप_मेन() फ़ंक्शन के कार्यान्वयन को संग्रहीत करने के लिए किया जाता है, जो उपयोगकर्ता प्रोग्राम का प्रवेश बिंदु है। ब्लिंक प्रोजेक्ट में घटक निर्देशिका शामिल नहीं है, क्योंकि यह पूर्वampउसे केवल ईएसपी-आईडीएफ के साथ आने वाले घटकों का उपयोग करने की आवश्यकता है और अतिरिक्त घटकों की आवश्यकता नहीं है। ब्लिंक प्रोजेक्ट में शामिल CMakeLists.txt का उपयोग संकलन प्रक्रिया को निर्देशित करने के लिए किया जाता है, जबकि Kconfig.projbuild का उपयोग इस उदाहरण के लिए कॉन्फ़िगरेशन आइटम जोड़ने के लिए किया जाता है।ampमेनूकॉन्फिग में ले प्रोग्राम। अन्य अनावश्यक fileकोड के संकलन को प्रभावित नहीं करेगा, इसलिए उनकी चर्चा यहां नहीं की जाएगी। ब्लिंक परियोजना का विस्तृत परिचय fileएस इस प्रकार है.
1. /*blink.c में निम्नलिखित हेडर शामिल है fileएस*/
2. #शामिल करें
// मानक सी लाइब्रेरी हेडर file
3. #include "freertos/freeRTOS.h" //FreeRTOS मुख्य हेडर file
4. #include "freertos/task.h"
//फ्रीआरटीओएस टास्क हेडर file
5. #sdkconfig.h शामिल करें
//कॉन्फ़िगरेशन हेडर file kconfig द्वारा उत्पन्न
6. #शामिल "ड्राइवर/gpio.h"
//GPIO ड्राइवर हेडर file
स्रोत file blink.c में हेडर की एक श्रृंखला शामिल है fileफ़ंक्शन घोषणा के अनुरूप-
tions. ईएसपी-आईडीएफ आम तौर पर मानक लाइब्रेरी हेडर को शामिल करने के क्रम का पालन करता है fileएस, फ्रीआर-
टीओएस हेडर fileएस, ड्राइवर हेडर files, अन्य घटक शीर्षलेख files, और प्रोजेक्ट हेडर files.
हेडर किस क्रम में है fileशामिल किए जाने से अंतिम संकलन परिणाम प्रभावित हो सकता है, इसलिए प्रयास करें
डिफ़ॉल्ट नियमों का पालन करें. यह ध्यान दिया जाना चाहिए कि sdkconfig.h स्वचालित रूप से उत्पन्न होता है
kconfig द्वारा और केवल कमांड idf.py मेनूकॉन्फिग के माध्यम से कॉन्फ़िगर किया जा सकता है।
इस शीर्षलेख का प्रत्यक्ष संशोधन file अधिलेखित कर दिया जाएगा।
1. /*आप idf.py मेनूकॉन्फिग में एलईडी के अनुरूप जीपीआईओ का चयन कर सकते हैं, और मेनूकॉन्फिग का संशोधन परिणाम यह है कि CONFIG_BLINK का मान
_GPIO बदल दिया जाएगा. आप मैक्रो परिभाषा को सीधे संशोधित भी कर सकते हैं
यहां, और CONFIG_BLINK_GPIO को एक निश्चित मान में बदलें।*/ 2. #BLINK_GPIO CONFIG_BLINK_GPIO को परिभाषित करें
3. शून्य ऐप_मेन(शून्य)
4। {
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); जबकि (1) {
/*प्रिंट लॉग*/प्रिंटफ(“एलईडीएन बंद करना”); /*एलईडी बंद करें (आउटपुट निम्न स्तर)*/ gpio_set_level(BLINK_GPIO, 0); /*विलंब (1000 एमएस)*/ vTaskDelay(1000 / portTICK_PERIOD_MS); प्रिंटफ ("एलईडीएन चालू करना"); /*एलईडी चालू करें (आउटपुट उच्च स्तर)*/ gpio_set_level(BLINK_GPIO, 1); vTaskDelay(1000 / portTICK_PERIOD_MS); }
ब्लिंक पूर्व में ऐप_मेन() फ़ंक्शनampले प्रोग्राम उपयोगकर्ता प्रोग्राम के लिए प्रवेश बिंदु के रूप में कार्य करता है। यह एक साधारण फ़ंक्शन है जिसमें कोई पैरामीटर नहीं है और कोई रिटर्न वैल्यू नहीं है। इस फ़ंक्शन को सिस्टम द्वारा इनिशियलाइज़ेशन पूरा करने के बाद कॉल किया जाता है, जिसमें लॉग सीरियल पोर्ट को इनिशियलाइज़ करना, सिंगल/डुअल कोर को कॉन्फ़िगर करना और वॉचडॉग को कॉन्फ़िगर करना जैसे कार्य शामिल हैं।
App_main() फ़ंक्शन मुख्य नामक कार्य के संदर्भ में चलता है। इस कार्य के स्टैक आकार और प्राथमिकता को मेन्यूकॉन्फिग कंपोनेंटकॉन्फिग कॉमन ईएसपी-संबंधित में समायोजित किया जा सकता है।
एलईडी को ब्लिंक करने जैसे सरल कार्यों के लिए, सभी आवश्यक कोड सीधे ऐप_मेन() फ़ंक्शन में लागू किए जा सकते हैं। इसमें आमतौर पर एलईडी के अनुरूप जीपीआईओ को आरंभ करना और एलईडी को चालू और बंद करने के लिए थोड़ी देर (1) लूप का उपयोग करना शामिल है। वैकल्पिक रूप से, आप एक नया कार्य बनाने के लिए FreeRTOS API का उपयोग कर सकते हैं जो एलईडी ब्लिंकिंग को संभालता है। एक बार नया कार्य सफलतापूर्वक बन जाने के बाद, आप ऐप_मेन() फ़ंक्शन से बाहर निकल सकते हैं।
Main/CMakeLists.txt की सामग्री file, जो मुख्य घटक के लिए संकलन प्रक्रिया का मार्गदर्शन करता है, इस प्रकार है:
1. idf_component_register(SRCS "blink.c" INCLUDE_DIRS "।" )
उनमें से, main/CMakeLists.txt केवल एक संकलन सिस्टम फ़ंक्शन को कॉल करता है, जो कि idf_component_register है। अधिकांश अन्य घटकों के लिए CMakeLists.txt के समान, blink.c को SRCS और स्रोत में जोड़ा गया है fileएसआरसीएस में जोड़ा गया संकलित किया जाएगा। उसी समय, "।", जो उस पथ का प्रतिनिधित्व करता है जहां CMakeLists.txt स्थित है, हेडर के लिए खोज निर्देशिका के रूप में INCLUDE_DIRS में जोड़ा जाना चाहिए fileएस। CMakeLists.txt की सामग्री इस प्रकार है:
1. #v3.5 को वर्तमान प्रोजेक्ट द्वारा समर्थित सबसे पुराने CMake संस्करण के रूप में निर्दिष्ट करें 2. #संकलन जारी रखने से पहले v3.5 से कम संस्करण को अपग्रेड किया जाना चाहिए 3. cmake_minimum_required(VERSION 3.5) 4. #ESP का डिफ़ॉल्ट CMake कॉन्फ़िगरेशन शामिल करें -आईडीएफ संकलन प्रणाली
अध्याय 4. विकास परिवेश की स्थापना 55
5. include($ENV{IDF_PATH}/tools/cmake/project.cmake) 6. #"ब्लिंक" नामक एक प्रोजेक्ट बनाएं 7. प्रोजेक्ट(myProject)
उनमें से, रूट निर्देशिका में CMakeLists.txt में मुख्य रूप से $ENV{IDF_ PATH}/tools/cmake/project.cmake शामिल है, जो मुख्य CMake कॉन्फ़िगरेशन है file ईएसपी-आईडीएफ द्वारा प्रदान किया गया। इसका उपयोग धोखा देने के लिए किया जाता है
दस्तावेज़ / संसाधन
![]() |
एस्प्रेसिफ़ सिस्टम्स ESP32-C3 वायरलेस एडवेंचर [पीडीएफ] उपयोगकर्ता गाइड ESP32-C3 वायरलेस एडवेंचर, ESP32-C3, वायरलेस एडवेंचर, एडवेंचर |