सामग्री लपवा
2 ESP32-C3 वायरलेस साहस
2.1 IoT साठी एक व्यापक मार्गदर्शक

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

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

IoT साठी एक व्यापक मार्गदर्शक

Espressif Systems 12 जून 2023

तपशील

  • उत्पादन: ESP32-C3 वायरलेस साहस
  • निर्माता: एस्प्रेसिफ सिस्टम्स
  • तारीख: 12 जून 2023

उत्पादन वापर सूचना

तयारी

ESP32-C3 वायरलेस ॲडव्हेंचर वापरण्यापूर्वी, तुम्ही असल्याची खात्री करा
IoT च्या संकल्पना आणि आर्किटेक्चरशी परिचित. हे मदत करेल
डिव्हाइस मोठ्या IoT इकोसिस्टममध्ये कसे बसते हे तुम्हाला समजले आहे
आणि स्मार्ट घरांमध्ये त्याचे संभाव्य अनुप्रयोग.

IoT प्रकल्पांचा परिचय आणि सराव

या विभागात, तुम्ही ठराविक IoT प्रकल्पांबद्दल जाणून घ्याल,
सामान्य IoT उपकरणांसाठी मूलभूत मॉड्यूल्स, मूलभूत मॉड्यूल्ससह
क्लायंट ऍप्लिकेशन्स आणि सामान्य IoT क्लाउड प्लॅटफॉर्म. हे होईल
आपल्याला समजून घेण्यासाठी आणि तयार करण्यासाठी एक पाया प्रदान करा
स्वतःचे IoT प्रकल्प.

सराव: स्मार्ट लाइट प्रोजेक्ट

या सराव प्रकल्पामध्ये, आपण स्मार्ट कसे तयार करावे हे शिकाल
ESP32-C3 वायरलेस ॲडव्हेंचर वापरून प्रकाश. प्रकल्पाची रचना,
कार्ये, हार्डवेअर तयार करणे आणि विकास प्रक्रिया असेल
तपशीलवार स्पष्ट केले.

प्रकल्पाची रचना

या प्रकल्पात अनेक घटकांचा समावेश आहे
ESP32-C3 वायरलेस ॲडव्हेंचर, LEDs, सेन्सर्स आणि क्लाउड
बॅकएंड

प्रकल्प कार्ये

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

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

प्रकल्पाची तयारी करण्यासाठी, आपल्याला गोळा करणे आवश्यक आहे
आवश्यक हार्डवेअर घटक, जसे की ESP32-C3 वायरलेस
साहसी बोर्ड, LEDs, प्रतिरोधक आणि वीज पुरवठा.

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

विकास प्रक्रियेमध्ये विकासाची स्थापना समाविष्ट असते
पर्यावरण, LEDs नियंत्रित करण्यासाठी कोड लिहिणे, शी कनेक्ट करणे
क्लाउड बॅकएंड, आणि स्मार्टच्या कार्यक्षमतेची चाचणी करत आहे
प्रकाश

ईएसपी रेनमेकरचा परिचय

ESP RainMaker IoT विकसित करण्यासाठी एक शक्तिशाली फ्रेमवर्क आहे
उपकरणे या विभागात, तुम्ही ESP RainMaker काय आहे आणि ते शिकाल
ते तुमच्या प्रकल्पांमध्ये कसे लागू केले जाऊ शकते.

ईएसपी रेनमेकर म्हणजे काय?

ईएसपी रेनमेकर हा क्लाउड-आधारित प्लॅटफॉर्म आहे जो एक संच प्रदान करतो
IoT उपकरणे तयार आणि व्यवस्थापित करण्यासाठी साधने आणि सेवा.

ईएसपी रेनमेकरची अंमलबजावणी

हा विभाग यात गुंतलेले विविध घटक स्पष्ट करतो
दावा करणाऱ्या सेवेसह ESP RainMaker ची अंमलबजावणी करणे,
रेनमेकर एजंट, क्लाउड बॅकएंड आणि रेनमेकर क्लायंट.

सराव: ESP RainMaker सह विकसित करण्यासाठी मुख्य मुद्दे

या सराव विभागात, तुम्ही मुख्य मुद्द्यांबद्दल जाणून घ्याल
ESP RainMaker सह विकसित करताना विचारात घ्या. यामध्ये उपकरणाचा समावेश आहे
दावा करणे, डेटा सिंक्रोनाइझेशन आणि वापरकर्ता व्यवस्थापन.

ईएसपी रेनमेकरची वैशिष्ट्ये

ईएसपी रेनमेकर युजर मॅनेजमेंट, एंडसाठी विविध वैशिष्ट्ये ऑफर करते
वापरकर्ते आणि प्रशासक. ही वैशिष्ट्ये सुलभ डिव्हाइससाठी परवानगी देतात
सेटअप, रिमोट कंट्रोल आणि मॉनिटरिंग.

विकास पर्यावरण सेट अप

हा विभाग एक ओव्हर प्रदान करतोview ESP-IDF (Espressif IoT
डेव्हलपमेंट फ्रेमवर्क), जे अधिकृत विकास फ्रेमवर्क आहे
ESP32-आधारित उपकरणांसाठी. च्या विविध आवृत्त्या स्पष्ट करते
ESP-IDF आणि विकास वातावरण कसे सेट करावे.

हार्डवेअर आणि ड्रायव्हर विकास

ESP32-C3 वर आधारित स्मार्ट लाइट उत्पादनांचे हार्डवेअर डिझाइन

हा विभाग स्मार्ट लाइटच्या हार्डवेअर डिझाइनवर लक्ष केंद्रित करतो
ESP32-C3 वायरलेस ॲडव्हेंचरवर आधारित उत्पादने. हे कव्हर करते
वैशिष्ट्ये आणि स्मार्ट प्रकाश उत्पादनांची रचना, तसेच
ESP32-C3 कोर सिस्टमचे हार्डवेअर डिझाइन.

स्मार्ट लाइट उत्पादनांची वैशिष्ट्ये आणि रचना

हा उपविभाग तयार करणारी वैशिष्ट्ये आणि घटक स्पष्ट करतो
स्मार्ट लाइट उत्पादने. हे विविध कार्यक्षमतेची चर्चा करते
आणि स्मार्ट दिवे तयार करण्यासाठी डिझाइन विचार.

ESP32-C3 कोर सिस्टमचे हार्डवेअर डिझाइन

ESP32-C3 कोर सिस्टमच्या हार्डवेअर डिझाइनमध्ये शक्ती समाविष्ट आहे
पुरवठा, पॉवर-ऑन अनुक्रम, सिस्टम रीसेट, SPI फ्लॅश, घड्याळ स्रोत,
आणि आरएफ आणि अँटेना विचारात घ्या. हा उपविभाग प्रदान करतो
या पैलूंवर तपशीलवार माहिती.

वारंवार विचारले जाणारे प्रश्न

प्रश्न: ईएसपी रेनमेकर म्हणजे काय?

A: ESP RainMaker हा क्लाउड-आधारित प्लॅटफॉर्म आहे जो साधने पुरवतो
आणि IoT उपकरणे तयार आणि व्यवस्थापित करण्यासाठी सेवा. ते सोपे करते
विकास प्रक्रिया आणि सुलभ डिव्हाइस सेटअप, रिमोटसाठी अनुमती देते
नियंत्रण आणि देखरेख.

प्रश्न: मी विकासाचे वातावरण कसे सेट करू शकतो
ESP32-C3?

A: ESP32-C3 साठी विकास वातावरण सेट करण्यासाठी, तुम्हाला आवश्यक आहे
ESP-IDF (Espressif IoT विकास फ्रेमवर्क) स्थापित करण्यासाठी आणि
प्रदान केलेल्या सूचनांनुसार ते कॉन्फिगर करा. ESP-IDF आहे
ESP32-आधारित उपकरणांसाठी अधिकृत विकास फ्रेमवर्क.

प्रश्न: ईएसपी रेनमेकरची वैशिष्ट्ये काय आहेत?

A: ESP RainMaker वापरकर्त्यासह विविध वैशिष्ट्ये ऑफर करतो
व्यवस्थापन, अंतिम वापरकर्ता वैशिष्ट्ये आणि प्रशासक वैशिष्ट्ये. वापरकर्ता व्यवस्थापन
सुलभ डिव्हाइस दावा आणि डेटा सिंक्रोनाइझेशनसाठी अनुमती देते. अंतिम वापरकर्ता
वैशिष्ट्ये मोबाइल ॲपद्वारे डिव्हाइसचे रिमोट कंट्रोल सक्षम करतात किंवा
web इंटरफेस प्रशासन वैशिष्ट्ये डिव्हाइस निरीक्षणासाठी साधने प्रदान करतात
आणि व्यवस्थापन.

ESP32-C3 वायरलेस साहस
IoT साठी एक व्यापक मार्गदर्शक
Espressif Systems 12 जून 2023

सामग्री

मी तयारी

1

1 IoT चा परिचय

3

1.1 IoT चे आर्किटेक्चर. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 स्मार्ट होम्समध्ये IoT ऍप्लिकेशन. . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 IoT प्रकल्पांचा परिचय आणि सराव

9

2.1 ठराविक IoT प्रकल्पांचा परिचय. . . . . . . . . . . . . . . . . . . . . . . . ९

2.1.1 सामान्य IoT उपकरणांसाठी मूलभूत मॉड्यूल्स. . . . . . . . . . . . . . . . . ९

2.1.2 क्लायंट ऍप्लिकेशन्सचे मूलभूत मॉड्यूल्स. . . . . . . . . . . . . . . . . . . 10

2.1.3 कॉमन IoT क्लाउड प्लॅटफॉर्मचा परिचय. . . . . . . . . . . . . . 11

२.२ सराव: स्मार्ट लाइट प्रोजेक्ट. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2

२.२.१ प्रकल्पाची रचना. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1

2.2.2 प्रकल्प कार्ये. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2.3 हार्डवेअर तयारी. . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.2.4 विकास प्रक्रिया . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

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

3 ईएसपी रेनमेकरचा परिचय

19

3.1 ईएसपी रेनमेकर म्हणजे काय? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2 ईएसपी रेनमेकरची अंमलबजावणी. . . . . . . . . . . . . . . . . . . . . . २१

३.२.१ सेवेचा दावा करणे. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1

3.2.2 रेनमेकर एजंट. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.2.3 क्लाउड बॅकएंड . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.2.4 रेनमेकर क्लायंट. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . २४

3.3 सराव: ESP RainMaker सह विकसित करण्यासाठी मुख्य मुद्दे. . . . . . . . . . . . २५

3.4 ESP RainMaker ची वैशिष्ट्ये. . . . . . . . . . . . . . . . . . . . . . . . . . . . २६

3.4.1 वापरकर्ता व्यवस्थापन. . . . . . . . . . . . . . . . . . . . . . . . . . . . . २६

3.4.2 अंतिम वापरकर्ता वैशिष्ट्ये. . . . . . . . . . . . . . . . . . . . . . . . . . . . . २७

3.4.3 प्रशासन वैशिष्ट्ये. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . २८

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

4 विकास पर्यावरण सेट करणे

31

4.1 ESP-IDF ओव्हरview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ६४

4.1.1 ESP-IDF आवृत्त्या . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3

4.1.2 ESP-IDF Git वर्कफ्लो . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.3 योग्य आवृत्ती निवडणे. . . . . . . . . . . . . . . . . . . . . . . . ३४ ४.१.४ ओव्हरview ESP-IDF SDK निर्देशिका ची. . . . . . . . . . . . . . . . . . . . 34 4.2 ESP-IDF विकास पर्यावरण सेट करणे. . . . . . . . . . . . . . . . . 38 4.2.1 लिनक्सवर ESP-IDF विकास पर्यावरण सेट करणे. . . . . . . . 38 4.2.2 Windows वर ESP-IDF विकास पर्यावरण सेट करणे. . . . . . 40 4.2.3 Mac वर ESP-IDF विकास पर्यावरण सेट करणे. . . . . . . . . 45 4.2.4 VS कोड स्थापित करणे. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2.5 तृतीय-पक्ष विकास पर्यावरणाचा परिचय. . . . . . . . 46 4.3 ESP-IDF संकलन प्रणाली. . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.1 संकलन प्रणालीच्या मूलभूत संकल्पना. . . . . . . . . . . . . . . . . . 47 4.3.2 प्रकल्प File रचना. . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3.3 संकलन प्रणालीचे डीफॉल्ट बिल्ड नियम. . . . . . . . . . . . . 50 4.3.4 संकलन स्क्रिप्टचा परिचय. . . . . . . . . . . . . . . . . . 51 4.3.5 कॉमन कमांड्सचा परिचय. . . . . . . . . . . . . . . . . . . 52 4.4 सराव: संकलित करणे उदाample प्रोग्राम "ब्लिंक" . . . . . . . . . . . . . . . . . . 53 4.4.1 उदाampविश्लेषण . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.4.2 ब्लिंक प्रोग्राम संकलित करणे. . . . . . . . . . . . . . . . . . . . . . . 56 4.4.3 ब्लिंक प्रोग्राम फ्लॅश करणे. . . . . . . . . . . . . . . . . . . . . . . . 59 4.4.4 ब्लिंक प्रोग्रामचे सीरियल पोर्ट लॉग विश्लेषण. . . . . . . . . . . . . . 60 4.5 सारांश. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ६३

II हार्डवेअर आणि ड्रायव्हर विकास

65

5 ESP32-C3 वर आधारित स्मार्ट लाइट उत्पादनांचे हार्डवेअर डिझाइन

67

5.1 स्मार्ट लाइट उत्पादनांची वैशिष्ट्ये आणि रचना. . . . . . . . . . . . . . . ६७

5.2 ESP32-C3 कोर सिस्टमचे हार्डवेअर डिझाइन. . . . . . . . . . . . . . . . . . . 70

5.2.1 वीज पुरवठा. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ७४

5.2.2 पॉवर-ऑन अनुक्रम आणि सिस्टम रीसेट. . . . . . . . . . . . . . . . . . ७४

5.2.3 SPI फ्लॅश. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

5.2.4 घड्याळ स्रोत. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

5.2.5 RF आणि अँटेना . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ७६

5.2.6 स्ट्रॅपिंग पिन . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ७९

5.2.7 GPIO आणि PWM कंट्रोलर. . . . . . . . . . . . . . . . . . . . . . . . . ७९

5.3 सराव: ESP32-C3 सह स्मार्ट लाइट सिस्टम तयार करणे. . . . . . . . . . . . . 80

5.3.1 मॉड्यूल्स निवडणे. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

5.3.2 PWM सिग्नलचे GPIO कॉन्फिगर करणे. . . . . . . . . . . . . . . . . . . . ८२

5.3.3 फर्मवेअर आणि डीबगिंग इंटरफेस डाउनलोड करणे. . . . . . . . . . . . ८२

5.3.4 RF डिझाइनसाठी मार्गदर्शक तत्त्वे. . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3.5 वीज पुरवठा डिझाइनसाठी मार्गदर्शक तत्त्वे. . . . . . . . . . . . . . . . . . . 86 5.4 सारांश. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ८६

6 चालक विकास

87

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

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

6.3 एलईडी ड्रायव्हर मूलभूत . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ८९

6.3.1 कलर स्पेस . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ८९

6.3.2 LED ड्रायव्हर . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ९४

6.3.3 एलईडी डिमिंग . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ९४

6.3.4 PWM चा परिचय. . . . . . . . . . . . . . . . . . . . . . . . . . . . ९५

6.4 एलईडी डिमिंग ड्रायव्हर डेव्हलपमेंट. . . . . . . . . . . . . . . . . . . . . . . . ९६

6.4.1 नॉन-व्होलाटाइल स्टोरेज (NVS) . . . . . . . . . . . . . . . . . . . . . . . . ९७

6.4.2 LED PWM कंट्रोलर (LEDC) . . . . . . . . . . . . . . . . . . . . . . . ९८

6.4.3 LED PWM प्रोग्रामिंग . . . . . . . . . . . . . . . . . . . . . . . . . 100

6.5 सराव: स्मार्ट लाइट प्रोजेक्टमध्ये ड्रायव्हर्स जोडणे. . . . . . . . . . . . . . . . . 103

6.5.1 बटण ड्रायव्हर . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

6.5.2 एलईडी डिमिंग ड्रायव्हर. . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

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

III वायरलेस कम्युनिकेशन आणि नियंत्रण

109

7 वाय-फाय कॉन्फिगरेशन आणि कनेक्शन

111

7.1 Wi-Fi च्या मूलभूत गोष्टी. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.1 Wi-Fi चा परिचय. . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.2 IEEE 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 Wi-Fi नेटवर्क कॉन्फिगरेशन. . . . . . . . . . . . . . . . . . . . . . . . . . . 131

7.3.1 Wi-Fi नेटवर्क कॉन्फिगरेशन मार्गदर्शक. . . . . . . . . . . . . . . . . . . . 131

7.3.2 SoftAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

7.3.3 SmartConfig. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

7.3.4 ब्लूटूथ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

7.3.5 इतर पद्धती. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

7.4 वाय-फाय प्रोग्रामिंग . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.1 ESP-IDF मधील वाय-फाय घटक. . . . . . . . . . . . . . . . . . . . . . . 139 7.4.2 व्यायाम: वाय-फाय कनेक्शन . . . . . . . . . . . . . . . . . . . . . . . . 141 7.4.3 व्यायाम: स्मार्ट वाय-फाय कनेक्शन. . . . . . . . . . . . . . . . . . . . . 145
७.५ सराव: स्मार्ट लाइट प्रोजेक्टमध्ये वाय-फाय कॉन्फिगरेशन. . . . . . . . . . . . . . . 7.5 156 स्मार्ट लाइट प्रोजेक्टमध्ये वाय-फाय कनेक्शन. . . . . . . . . . . . . . . . . 7.5.1 156 स्मार्ट वाय-फाय कॉन्फिगरेशन. . . . . . . . . . . . . . . . . . . . . . . . . १५७
7.6 सारांश. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . १७

8 स्थानिक नियंत्रण

159

8.1 स्थानिक नियंत्रणाचा परिचय. . . . . . . . . . . . . . . . . . . . . . . . . . . १५९

8.1.1 स्थानिक नियंत्रणाचा वापर. . . . . . . . . . . . . . . . . . . . . . . . 161

8.1.2 अडवानtagस्थानिक नियंत्रणाचे es. . . . . . . . . . . . . . . . . . . . . . . . 161

8.1.3 स्मार्टफोनद्वारे नियंत्रित उपकरणे शोधणे. . . . . . . . . . 161

8.1.4 स्मार्टफोन आणि उपकरणांमधील डेटा कम्युनिकेशन. . . . . . . . 162

8.2 सामान्य स्थानिक शोध पद्धती. . . . . . . . . . . . . . . . . . . . . . . . 162

८.२.१ प्रसारण. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.1

8.2.2 मल्टीकास्ट . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

8.2.3 ब्रॉडकास्ट आणि मल्टीकास्ट मधील तुलना. . . . . . . . . . . . . . १७६

8.2.4 स्थानिक शोधासाठी मल्टीकास्ट ऍप्लिकेशन प्रोटोकॉल mDNS. . . . . . . . १७६

8.3 स्थानिक डेटासाठी कॉमन कम्युनिकेशन प्रोटोकॉल. . . . . . . . . . . . . . . 179

8.3.1 ट्रान्समिशन कंट्रोल प्रोटोकॉल (TCP) . . . . . . . . . . . . . . . . . . . 179

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

8.3.3 वापरकर्ता दाtagरॅम प्रोटोकॉल (यूडीपी) . . . . . . . . . . . . . . . . . . . . . 189

8.3.4 प्रतिबंधित ऍप्लिकेशन प्रोटोकॉल (CoAP). . . . . . . . . . . . . . . . १९२

8.3.5 ब्लूटूथ प्रोटोकॉल . . . . . . . . . . . . . . . . . . . . . . . . . . . . १९७

8.3.6 डेटा कम्युनिकेशन प्रोटोकॉलचा सारांश. . . . . . . . . . . . . . . 203

8.4 डेटा सुरक्षिततेची हमी. . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

8.4.1 ट्रान्सपोर्ट लेयर सिक्युरिटी (TLS) चा परिचय. . . . . . . . . . . . . 207

8.4.2 दा परिचयtagरॅम ट्रान्सपोर्ट लेयर सिक्युरिटी (डीटीएलएस) . . . . . . 213

8.5 सराव: स्मार्ट लाइट प्रोजेक्टमध्ये स्थानिक नियंत्रण. . . . . . . . . . . . . . . . . . 217

8.5.1 Wi-Fi-आधारित स्थानिक नियंत्रण सर्व्हर तयार करणे. . . . . . . . . . . . . . . 217

8.5.2 स्क्रिप्ट वापरून स्थानिक नियंत्रण कार्यक्षमतेची पडताळणी करणे. . . . . . . . . . . 221

8.5.3 ब्लूटूथ-आधारित स्थानिक नियंत्रण सर्व्हर तयार करणे. . . . . . . . . . . . 222

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

9 मेघ नियंत्रण

225

9.1 रिमोट कंट्रोलचा परिचय. . . . . . . . . . . . . . . . . . . . . . . . . . 225

9.2 क्लाउड डेटा कम्युनिकेशन प्रोटोकॉल. . . . . . . . . . . . . . . . . . . . . . 226

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

10 स्मार्टफोन ॲप डेव्हलपमेंट

269

10.1 स्मार्टफोन ॲप डेव्हलपमेंटचा परिचय. . . . . . . . . . . . . . . . . . २६९

10.1.1 ओव्हरview स्मार्टफोन ॲप डेव्हलपमेंटचे. . . . . . . . . . . . . . . 270

10.1.2 Android प्रकल्पाची रचना. . . . . . . . . . . . . . . . . . . . . . 270

10.1.3 iOS प्रकल्पाची रचना. . . . . . . . . . . . . . . . . . . . . . . . २७१

10.1.4 Android क्रियाकलापाचे जीवनचक्र. . . . . . . . . . . . . . . . . . . . . . २७२

10.1.5 iOS चे जीवनचक्र Viewनियंत्रक. . . . . . . . . . . . . . . . . . . . . . २७३

10.2 नवीन स्मार्टफोन ॲप प्रोजेक्ट तयार करणे. . . . . . . . . . . . . . . . . . . . . २७५

10.2.1 Android विकासासाठी तयारी करत आहे. . . . . . . . . . . . . . . . . . . २७५

10.2.2 नवीन Android प्रकल्प तयार करणे. . . . . . . . . . . . . . . . . . . . . . २७५

10.2.3 MyRainmaker साठी अवलंबित्व जोडणे. . . . . . . . . . . . . . . . . २७६

10.2.4 Android मध्ये परवानगी विनंती. . . . . . . . . . . . . . . . . . . . . . २७७

10.2.5 iOS विकासासाठी तयारी करत आहे. . . . . . . . . . . . . . . . . . . . . . २७७

10.2.6 नवीन iOS प्रकल्प तयार करणे. . . . . . . . . . . . . . . . . . . . . . . . २७८

10.2.7 MyRainmaker साठी अवलंबित्व जोडणे. . . . . . . . . . . . . . . . . २७६

10.2.8 iOS मध्ये परवानगीची विनंती. . . . . . . . . . . . . . . . . . . . . . . . . 280

10.3 ॲपच्या कार्यात्मक आवश्यकतांचे विश्लेषण. . . . . . . . . . . . . . . . . . २८१

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 RainMaker API चा परिचय. . . . . . . . . . . . . . . . . . . . . . 285 10.4.2 स्मार्टफोनद्वारे संप्रेषण सुरू करणे. . . . . . . . . . . . . . . . 286 10.4.3 खाते नोंदणी. . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 10.4.4 खाते लॉगिन करा. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 10.5 डिव्हाइस प्रोव्हिजनिंगचा विकास. . . . . . . . . . . . . . . . . . . . . . . 292 10.5.1 स्कॅनिंग उपकरणे. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 10.5.2 कनेक्टिंग डिव्हाइसेस. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 10.5.3 सिक्रेट की व्युत्पन्न करणे. . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.4 नोड आयडी मिळवणे. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.5 प्रोव्हिजनिंग डिव्हाइसेस. . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 10.6 उपकरण नियंत्रणाचा विकास. . . . . . . . . . . . . . . . . . . . . . . . . . 302 10.6.1 क्लाउड खात्यांसाठी उपकरणे बंधनकारक. . . . . . . . . . . . . . . . . . . . 303 10.6.2 उपकरणांची यादी मिळवणे. . . . . . . . . . . . . . . . . . . . . . . . . . 305 10.6.3 डिव्हाइस स्थिती मिळवणे. . . . . . . . . . . . . . . . . . . . . . . . . . . 308 10.6.4 डिव्हाइस स्थिती बदलणे. . . . . . . . . . . . . . . . . . . . . . . . . . 310 10.7 शेड्युलिंग आणि वापरकर्ता केंद्राचा विकास. . . . . . . . . . . . . . . . . . . 313 10.7.1 शेड्युलिंग कार्याची अंमलबजावणी करणे. . . . . . . . . . . . . . . . . . . . 313 10.7.2 वापरकर्ता केंद्राची अंमलबजावणी करणे. . . . . . . . . . . . . . . . . . . . . . . . . 315 10.7.3 अधिक क्लाउड API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 10.8 सारांश . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ३१९

11 फर्मवेअर अपग्रेड आणि आवृत्ती व्यवस्थापन

321

11.1 फर्मवेअर अपग्रेड. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

11.1.1 ओव्हरview विभाजन सारण्यांचे. . . . . . . . . . . . . . . . . . . . . . . . 322

11.1.2 फर्मवेअर बूट प्रक्रिया. . . . . . . . . . . . . . . . . . . . . . . . . . . 324

11.1.3 ओव्हरview ओटीए यंत्रणा . . . . . . . . . . . . . . . . . . . . . ३२६

11.2 फर्मवेअर आवृत्ती व्यवस्थापन. . . . . . . . . . . . . . . . . . . . . . . . . . ३२९

11.2.1 फर्मवेअर चिन्हांकित करणे. . . . . . . . . . . . . . . . . . . . . . . . . . . . . ३२९

11.2.2 रोलबॅक आणि अँटी-रोलबॅक. . . . . . . . . . . . . . . . . . . . . . . . ३३१

11.3 सराव: ओव्हर-द-एअर (OTA) उदाampले . . . . . . . . . . . . . . . . . . . . . . . ३३२

11.3.1 स्थानिक होस्टद्वारे फर्मवेअर अपग्रेड करा. . . . . . . . . . . . . . . . . ३३२

11.3.2 ESP RainMaker द्वारे फर्मवेअर अपग्रेड करा. . . . . . . . . . . . . . . ३३५

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

IV ऑप्टिमायझेशन आणि मोठ्या प्रमाणात उत्पादन

343

12 पॉवर मॅनेजमेंट आणि लो-पॉवर ऑप्टिमायझेशन

345

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

12.1.1 डायनॅमिक फ्रिक्वेन्सी स्केलिंग. . . . . . . . . . . . . . . . . . . . . . . . ३४६

12.1.2 पॉवर मॅनेजमेंट कॉन्फिगरेशन. . . . . . . . . . . . . . . . . . . . ३४८

12.2 ESP32-C3 लो-पॉवर मोड . . . . . . . . . . . . . . . . . . . . . . . . . . . . ३४८

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

12.2.2 लाइट-स्लीप मोड. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351

12.2.3 डीप-स्लीप मोड. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356

12.2.4 विविध पॉवर मोडमध्ये सध्याचा वापर. . . . . . . . . . . . . 358

12.3 पॉवर मॅनेजमेंट आणि लो-पॉवर डीबगिंग. . . . . . . . . . . . . . . . . 359

12.3.1 लॉग डीबगिंग. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ३६०

12.3.2 GPIO डीबगिंग. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ३६२

12.4 सराव: स्मार्ट लाइट प्रोजेक्टमध्ये पॉवर मॅनेजमेंट. . . . . . . . . . . . . . . ३६३

12.4.1 पॉवर मॅनेजमेंट वैशिष्ट्य कॉन्फिगर करणे. . . . . . . . . . . . . . . . . ३६४

12.4.2 पॉवर मॅनेजमेंट लॉक वापरा. . . . . . . . . . . . . . . . . . . . . . ३६५

12.4.3 वीज वापर सत्यापित करणे. . . . . . . . . . . . . . . . . . . . . . . ३६६

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

13 वर्धित डिव्हाइस सुरक्षा वैशिष्ट्ये

369

13.1 ओव्हरview IoT डिव्हाइस डेटा सुरक्षा . . . . . . . . . . . . . . . . . . . . . . . ३६९

13.1.1 IoT डिव्हाइस डेटा का सुरक्षित करायचा? . . . . . . . . . . . . . . . . . . . . . . ३७०

13.1.2 IoT डिव्हाइस डेटा सुरक्षिततेसाठी मूलभूत आवश्यकता. . . . . . . . . . . . ३७१

13.2 डेटा इंटिग्रिटी प्रोटेक्शन. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ३७२

13.2.1 अखंडता पडताळणी पद्धतीचा परिचय. . . . . . . . . . . . . . ३७२

13.2.2 फर्मवेअर डेटाची अखंडता पडताळणी. . . . . . . . . . . . . . . . . . ३७३

13.2.3 उदाampले . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ३७४

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

13.3.1 डेटा एन्क्रिप्शनचा परिचय. . . . . . . . . . . . . . . . . . . . . . ३७४

13.3.2 फ्लॅश एनक्रिप्शन योजनेचा परिचय. . . . . . . . . . . . . . . . . ३७६

13.3.3 फ्लॅश एनक्रिप्शन की स्टोरेज. . . . . . . . . . . . . . . . . . . . . . . ३७९

13.3.4 फ्लॅश एनक्रिप्शनचे कार्य मोड. . . . . . . . . . . . . . . . . . . . ३८०

13.3.5 फ्लॅश एनक्रिप्शन प्रक्रिया. . . . . . . . . . . . . . . . . . . . . . . . . . ३८१

13.3.6 NVS एन्क्रिप्शनचा परिचय. . . . . . . . . . . . . . . . . . . . . . ३८३

13.3.7 उदाampफ्लॅश एनक्रिप्शन आणि NVS एन्क्रिप्शनचे लेस. . . . . . . . . . . ३८४

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

13.4.1 डिजिटल स्वाक्षरीचा परिचय. . . . . . . . . . . . . . . . . . . . . ३८६

13.4.2 ओव्हरview सुरक्षित बूट योजनेचे. . . . . . . . . . . . . . . . . . . . . ३८८

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 सारांश . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ३९८

14 मोठ्या प्रमाणात उत्पादनासाठी फर्मवेअर बर्निंग आणि चाचणी

399

14.1 मोठ्या प्रमाणात उत्पादनामध्ये फर्मवेअर बर्निंग. . . . . . . . . . . . . . . . . . . . . . 399

14.1.1 डेटा विभाजने परिभाषित करणे. . . . . . . . . . . . . . . . . . . . . . . . . . 399

14.1.2 फर्मवेअर बर्निंग. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402

14.2 मोठ्या प्रमाणावर उत्पादन चाचणी. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403

14.3 सराव: स्मार्ट लाइट प्रोजेक्टमध्ये मोठ्या प्रमाणावर उत्पादन डेटा. . . . . . . . . . . . . 404

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

15 ESP अंतर्दृष्टी: रिमोट मॉनिटरिंग प्लॅटफॉर्म

405

15.1 ईएसपी इनसाइट्सचा परिचय. . . . . . . . . . . . . . . . . . . . . . . . . . . . 405

15.2 ESP अंतर्दृष्टीसह प्रारंभ करणे. . . . . . . . . . . . . . . . . . . . . . . . . 409

15.2.1 esp-insights प्रोजेक्टमध्ये ESP इनसाइट्ससह प्रारंभ करणे. . . . . . 409

15.2.2 धावणे उदाample esp-insights प्रकल्पात. . . . . . . . . . . . . . . 411

15.2.3 रिपोर्टिंग कोरडंप माहिती. . . . . . . . . . . . . . . . . . . . . 411

15.2.4 स्वारस्य नोंदी सानुकूलित करणे. . . . . . . . . . . . . . . . . . . . . . . . ४१२

15.2.5 रिपोर्टिंग रीबूट कारण. . . . . . . . . . . . . . . . . . . . . . . . . ४१३

15.2.6 सानुकूल मेट्रिक्सचा अहवाल देणे. . . . . . . . . . . . . . . . . . . . . . . . . ४१३

15.3 सराव: स्मार्ट लाइट प्रोजेक्टमध्ये ESP इनसाइट्स वापरणे. . . . . . . . . . . . . . . ४१६

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

परिचय
ESP32-C3 एक सिंगल-कोर वाय-फाय आणि ब्लूटूथ 5 (LE) मायक्रोकंट्रोलर SoC आहे, जो ओपन-सोर्स RISC-V आर्किटेक्चरवर आधारित आहे. हे उर्जा, I/O क्षमता आणि सुरक्षिततेचे योग्य संतुलन साधते, अशा प्रकारे कनेक्ट केलेल्या उपकरणांसाठी इष्टतम किफायतशीर उपाय ऑफर करते. ESP32-C3 कुटुंबातील विविध ऍप्लिकेशन्स दर्शविण्यासाठी, Espressif चे हे पुस्तक तुम्हाला AIoT च्या माध्यमातून एका मनोरंजक प्रवासात घेऊन जाईल, IoT प्रकल्प विकास आणि पर्यावरण सेटअपच्या मूलभूत गोष्टींपासून ते व्यावहारिक पूर्वापर्यंत.ampलेस पहिले चार अध्याय IoT, ESP RainMaker आणि ESP-IDF बद्दल बोलतात. धडा 5 आणि 6 हार्डवेअर डिझाइन आणि ड्रायव्हर विकासाबद्दल थोडक्यात. जसजसे तुम्ही प्रगती कराल, तसतसे तुम्हाला वाय-फाय नेटवर्क आणि मोबाईल ॲप्स द्वारे तुमचा प्रोजेक्ट कसा कॉन्फिगर करायचा ते सापडेल. शेवटी, तुम्ही तुमचा प्रकल्प ऑप्टिमाइझ करायला आणि मोठ्या प्रमाणावर उत्पादनात टाकायला शिकाल.
तुम्ही संबंधित क्षेत्रातील अभियंता, सॉफ्टवेअर आर्किटेक्ट, शिक्षक, विद्यार्थी किंवा IoT मध्ये स्वारस्य असलेले कोणीही असल्यास, हे पुस्तक तुमच्यासाठी आहे.
तुम्ही कोड उदा डाउनलोड करू शकताampGitHub वरील Espressif च्या साइटवरून या पुस्तकात वापरलेले le. IoT विकासावरील नवीनतम माहितीसाठी, कृपया आमच्या अधिकृत खात्याचे अनुसरण करा.

प्रस्तावना
माहिती देणारे जग
इंटरनेटच्या लाटेवर स्वार होऊन, इंटरनेट ऑफ थिंग्ज (IoT) ने डिजिटल अर्थव्यवस्थेत पायाभूत सुविधांचा एक नवीन प्रकार बनण्यासाठी भव्य पदार्पण केले. तंत्रज्ञानाला लोकांच्या जवळ आणण्यासाठी, Espressif Systems या दृष्टीकोनासाठी कार्य करते की जीवनाच्या सर्व क्षेत्रातील विकासक आपल्या काळातील काही अत्यंत महत्त्वाच्या समस्यांचे निराकरण करण्यासाठी IoT वापरू शकतात. “इंटेलिजेंट नेटवर्क ऑफ ऑल थिंग्ज” चे जग आपल्याला भविष्याकडून अपेक्षित आहे.
आमच्या स्वतःच्या चिप्सची रचना त्या दृष्टीचा एक महत्त्वाचा घटक बनवते. ही मॅरेथॉन आहे, ज्यासाठी तंत्रज्ञानाच्या सीमांविरुद्ध सतत प्रगती करणे आवश्यक आहे. “गेम चेंजर” ESP8266 पासून वाय-फाय आणि ब्लूटूथर (LE) कनेक्टिव्हिटी एकत्रित करणाऱ्या ESP32 मालिकेपर्यंत, त्यानंतर AI प्रवेगने सुसज्ज असलेल्या ESP32-S3 पर्यंत, Espressif कधीही AIoT सोल्यूशन्ससाठी उत्पादने संशोधन आणि विकसित करणे थांबवत नाही. आमच्या ओपन-सोर्स सॉफ्टवेअरसह, जसे की IoT डेव्हलपमेंट फ्रेमवर्क ESP-IDF, मेश डेव्हलपमेंट फ्रेमवर्क ESP-MDF, आणि डिव्हाइस कनेक्टिव्हिटी प्लॅटफॉर्म ESP RainMaker, आम्ही AIoT ऍप्लिकेशन्स तयार करण्यासाठी एक स्वतंत्र फ्रेमवर्क तयार केले आहे.
जुलै 2022 पर्यंत, Espressif च्या IoT चिपसेटची एकत्रित शिपमेंट 800 दशलक्ष ओलांडली आहे, वाय-फाय MCU मार्केटमध्ये आघाडीवर आहे आणि जगभरात मोठ्या संख्येने कनेक्ट केलेल्या डिव्हाइसेसना पॉवर अप करत आहे. उत्कृष्टतेचा पाठपुरावा केल्याने प्रत्येक Espressif उत्पादन त्याच्या उच्च स्तरावरील एकात्मता आणि किमतीच्या कार्यक्षमतेसाठी एक मोठा हिट बनते. ESP32-C3 चे प्रकाशन Espressif च्या स्वयं-विकसित तंत्रज्ञानाचा एक महत्त्वाचा टप्पा आहे. हे एकल-कोर, 32-बिट, RISC-V-आधारित MCU आहे ज्यामध्ये 400KB SRAM आहे, जे 160MHz वर चालू शकते. यात 2.4 GHz Wi-Fi आणि Bluetooth 5 (LE) लाँग-रेंज सपोर्टसह एकत्रित केले आहे. हे सामर्थ्य, I/O क्षमता आणि सुरक्षिततेचे उत्तम संतुलन साधते, अशा प्रकारे कनेक्ट केलेल्या उपकरणांसाठी इष्टतम किफायतशीर उपाय ऑफर करते. अशा शक्तिशाली ESP32-C3 वर आधारित, हे पुस्तक वाचकांना तपशीलवार उदाहरणांसह IoT-संबंधित ज्ञान समजून घेण्यास मदत करण्यासाठी आहे.ampलेस
आम्ही हे पुस्तक का लिहिले?
Espressif Systems ही अर्धसंवाहक कंपनीपेक्षा जास्त आहे. ही एक IoT प्लॅटफॉर्म कंपनी आहे, जी नेहमीच तंत्रज्ञानाच्या क्षेत्रात प्रगती आणि नवकल्पनांसाठी प्रयत्नशील असते. त्याच वेळी, Espressif ने मुक्त-स्रोत केले आहे आणि त्याची स्वयं-विकसित ऑपरेटिंग सिस्टम आणि सॉफ्टवेअर फ्रेमवर्क समुदायासोबत सामायिक केले आहे, ज्यामुळे एक अद्वितीय इकोसिस्टम तयार झाली आहे. अभियंते, निर्माते आणि तंत्रज्ञान उत्साही Espressif च्या उत्पादनांवर आधारित नवीन सॉफ्टवेअर अनुप्रयोग सक्रियपणे विकसित करतात, मुक्तपणे संवाद साधतात आणि त्यांचा अनुभव शेअर करतात. YouTube आणि GitHub सारख्या विविध प्लॅटफॉर्मवर तुम्ही विकासकांच्या आकर्षक कल्पना नेहमी पाहू शकता. एस्प्रेसिफच्या उत्पादनांच्या लोकप्रियतेने इंग्रजी, चीनी, जर्मन, फ्रेंच आणि जपानीसह दहा पेक्षा जास्त भाषांमध्ये एस्प्रेसिफ चिपसेटवर आधारित 100 पेक्षा जास्त पुस्तके तयार केलेल्या लेखकांच्या वाढत्या संख्येला उत्तेजन दिले आहे.

हे समुदाय भागीदारांचे समर्थन आणि विश्वास आहे जे एस्प्रेसिफच्या सतत नवनिर्मितीला प्रोत्साहन देते. “आम्ही आमच्या चिप्स, ऑपरेटिंग सिस्टम्स, फ्रेमवर्क, सोल्यूशन्स, क्लाउड, व्यवसाय पद्धती, साधने, दस्तऐवजीकरण, लेखन, कल्पना इ. समकालीन जीवनातील सर्वात महत्त्वाच्या समस्यांमध्ये लोकांना आवश्यक असलेल्या उत्तरांसाठी अधिक समर्पक बनवण्याचा प्रयत्न करतो. ही एस्प्रेसिफची सर्वोच्च महत्त्वाकांक्षा आणि नैतिक होकाशा आहे.” श्री टीओ स्वी ॲन, एस्प्रेसिफचे संस्थापक आणि मुख्य कार्यकारी अधिकारी म्हणाले.
Espressif वाचन आणि कल्पनांना महत्त्व देते. IoT तंत्रज्ञानाच्या सतत अपग्रेडिंगमुळे अभियंत्यांवर उच्च आवश्यकता निर्माण झाल्यामुळे, आम्ही अधिक लोकांना IoT चिप्स, ऑपरेटिंग सिस्टम, सॉफ्टवेअर फ्रेमवर्क, ऍप्लिकेशन स्कीम आणि क्लाउड सेवा उत्पादनांमध्ये द्रुतपणे प्रभुत्व मिळविण्यात कशी मदत करू शकतो? या म्हणीप्रमाणे, माणसाला मासे देण्यापेक्षा मासे कसे पकडायचे हे शिकवणे चांगले. एका विचारमंथन सत्रात, आम्हाला असे वाटले की आम्ही IoT विकासाच्या मुख्य ज्ञानाची पद्धतशीरपणे क्रमवारी लावण्यासाठी एक पुस्तक लिहू शकतो. आम्ही ते बंद केले, त्वरीत वरिष्ठ अभियंत्यांचा एक गट गोळा केला आणि एम्बेडेड प्रोग्रामिंग, IoT हार्डवेअर आणि सॉफ्टवेअर डेव्हलपमेंटमधील तांत्रिक टीमचा अनुभव एकत्रित केला, या सर्वांनी या पुस्तकाच्या प्रकाशनात योगदान दिले. लेखन प्रक्रियेत, आम्ही वस्तुनिष्ठ आणि निष्पक्ष होण्याचा प्रयत्न केला, कोकून काढून टाकला आणि इंटरनेट ऑफ थिंग्जची जटिलता आणि आकर्षण सांगण्यासाठी संक्षिप्त अभिव्यक्ती वापरल्या. विकास प्रक्रियेत आलेल्या प्रश्नांची स्पष्टपणे उत्तरे देण्यासाठी आणि संबंधित तंत्रज्ञ आणि निर्णय-निर्मात्यांना व्यावहारिक IoT विकास मार्गदर्शक तत्त्वे प्रदान करण्यासाठी आम्ही सामान्य प्रश्नांचा काळजीपूर्वक सारांश केला, समुदायाच्या अभिप्राय आणि सूचनांचा संदर्भ दिला.
पुस्तकाची रचना
हे पुस्तक अभियंता-केंद्रित दृष्टीकोन घेते आणि IoT प्रकल्प विकासासाठी आवश्यक ज्ञान टप्प्याटप्प्याने स्पष्ट करते. हे खालीलप्रमाणे चार भागांनी बनलेले आहे.
· तयारी (धडा 1): हा भाग IoT च्या आर्किटेक्चरची ओळख करून देतो, ठराविक IoT प्रोजेक्ट फ्रेमवर्क, ESP RainMakerr क्लाउड प्लॅटफॉर्म आणि विकास वातावरण ESP-IDF, ज्यामुळे IoT प्रकल्पाच्या विकासासाठी एक भक्कम पाया घालता येईल.
· हार्डवेअर आणि ड्रायव्हर डेव्हलपमेंट (धडा 5): ESP6-C32 चिपसेटवर आधारित, हा भाग किमान हार्डवेअर सिस्टम आणि ड्रायव्हर डेव्हलपमेंटचा तपशीलवार वर्णन करतो आणि मंद होणे, कलर ग्रेडिंग आणि वायरलेस कम्युनिकेशनचे नियंत्रण लागू करतो.
· वायरलेस कम्युनिकेशन आणि कंट्रोल (धडा 7): हा भाग ESP11-C32 चिप, स्थानिक आणि क्लाउड कंट्रोल प्रोटोकॉल आणि डिव्हाइसेसच्या स्थानिक आणि रिमोट कंट्रोलवर आधारित बुद्धिमान वाय-फाय कॉन्फिगरेशन योजना स्पष्ट करतो. हे स्मार्टफोन ॲप्स विकसित करण्यासाठी, फर्मवेअर अपग्रेड आणि आवृत्ती व्यवस्थापनासाठी योजना देखील प्रदान करते.
ऑप्टिमायझेशन आणि मास प्रोडक्शन (धडा 12-15): हा भाग प्रगत IoT ऍप्लिकेशन्ससाठी आहे, पॉवर मॅनेजमेंटमधील उत्पादनांचे ऑप्टिमायझेशन, लो-पॉवर ऑप्टिमायझेशन आणि वर्धित सुरक्षा यावर लक्ष केंद्रित करतो. हे मोठ्या प्रमाणावर उत्पादनामध्ये फर्मवेअर बर्निंग आणि चाचणी आणि रिमोट मॉनिटरिंग प्लॅटफॉर्म ESP इनसाइट्सद्वारे डिव्हाइस फर्मवेअरच्या चालू स्थितीचे आणि लॉगचे निदान कसे करावे हे देखील सादर करते.

स्त्रोत कोड बद्दल
वाचक माजी चालवू शकतातampया पुस्तकातील le प्रोग्राम्स, एकतर कोड मॅन्युअली प्रविष्ट करून किंवा पुस्तकासोबत असलेला स्त्रोत कोड वापरून. आम्ही सिद्धांत आणि सराव यांच्या संयोजनावर भर देतो आणि अशा प्रकारे जवळजवळ प्रत्येक अध्यायात स्मार्ट लाइट प्रकल्पावर आधारित सराव विभाग सेट करतो. सर्व कोड ओपन सोर्स केलेले आहेत. GitHub आणि आमच्या अधिकृत फोरम esp32.com वरील या पुस्तकाशी संबंधित विभागांमध्ये स्त्रोत कोड डाउनलोड करण्यासाठी आणि त्यावर चर्चा करण्यासाठी वाचकांचे स्वागत आहे. या पुस्तकाचा मुक्त-स्रोत कोड अपाचे परवाना 2.0 च्या अटींच्या अधीन आहे.
लेखकाची नोंद
हे पुस्तक अधिकृतपणे Espressif Systems ने तयार केले आहे आणि कंपनीच्या वरिष्ठ अभियंत्यांनी लिहिले आहे. हे IoT-संबंधित उद्योगांमधील व्यवस्थापक आणि R&D कर्मचारी, संबंधित क्षेत्रातील शिक्षक आणि विद्यार्थी आणि इंटरनेट ऑफ थिंग्जच्या क्षेत्रातील उत्साही यांच्यासाठी योग्य आहे. आम्हाला आशा आहे की हे पुस्तक वर्क मॅन्युअल, एक संदर्भ आणि बेडसाइड बुक म्हणून काम करेल, एक चांगला शिक्षक आणि मित्र होण्यासाठी.
हे पुस्तक संकलित करताना, आम्ही देश-विदेशातील तज्ञ, विद्वान आणि तंत्रज्ञांच्या काही संबंधित संशोधन परिणामांचा संदर्भ दिला आणि आम्ही त्यांचा शैक्षणिक मानदंडांनुसार उल्लेख करण्याचा सर्वोत्तम प्रयत्न केला. तथापि, काही वगळणे अपरिहार्य आहे, म्हणून आम्ही येथे सर्व संबंधित लेखकांबद्दल मनापासून आदर आणि कृतज्ञता व्यक्त करू इच्छितो. याव्यतिरिक्त, आम्ही इंटरनेटवरून माहिती उद्धृत केली आहे, म्हणून आम्ही मूळ लेखक आणि प्रकाशकांचे आभार मानू इच्छितो आणि दिलगीर आहोत की आम्ही प्रत्येक माहितीचा स्रोत सूचित करू शकत नाही.
उच्च दर्जाचे पुस्तक तयार करण्यासाठी, आम्ही अंतर्गत चर्चेच्या फेऱ्या आयोजित केल्या आहेत आणि चाचणी वाचक आणि प्रकाशक संपादकांच्या सूचना आणि प्रतिक्रियांमधून शिकलो आहोत. येथे, या यशस्वी कार्यात सर्वांनी योगदान दिलेल्या तुमच्या मदतीबद्दल आम्ही तुमचे आभार मानू इच्छितो.
शेवटचे, पण सर्वात महत्त्वाचे म्हणजे, Espressif मधील प्रत्येकाचे आभार ज्यांनी आमच्या उत्पादनांच्या जन्मासाठी आणि लोकप्रियतेसाठी खूप मेहनत घेतली.
IoT प्रकल्पांच्या विकासामध्ये विस्तृत ज्ञानाचा समावेश होतो. पुस्तकाची लांबी, तसेच लेखकाची पातळी आणि अनुभव यापुरते मर्यादित, वगळणे अटळ आहे. त्यामुळे तज्ज्ञांनी आणि वाचकांनी टीका करून आमच्या चुका दुरुस्त कराव्यात ही नम्र विनंती. या पुस्तकासाठी तुमच्या काही सूचना असल्यास, कृपया book@espressif.com वर आमच्याशी संपर्क साधा. आम्ही तुमच्या अभिप्रायाची वाट पाहत आहोत.

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

धडा १

परिचय

करण्यासाठी

IoT

20 व्या शतकाच्या शेवटी, संगणक नेटवर्क आणि दळणवळण तंत्रज्ञानाच्या वाढीसह, इंटरनेट वेगाने लोकांच्या जीवनात समाकलित झाले. इंटरनेट तंत्रज्ञान विकसित होत असताना, इंटरनेट ऑफ थिंग्ज (IoT) ची कल्पना जन्माला आली. शब्दशः, IoT म्हणजे इंटरनेट जिथे गोष्टी कनेक्ट केल्या जातात. मूळ इंटरनेट जागा आणि वेळेची मर्यादा तोडून "व्यक्ती आणि व्यक्ती" मधील अंतर कमी करत असताना, IoT "गोष्टी" ला एक महत्वाचा सहभागी बनवते, "लोक" आणि "गोष्टी" यांना जवळ आणते. नजीकच्या भविष्यात, IoT माहिती उद्योगाची प्रेरक शक्ती बनणार आहे.
तर, इंटरनेट ऑफ थिंग्ज म्हणजे काय?
इंटरनेट ऑफ थिंग्जची अचूक व्याख्या करणे कठीण आहे, कारण त्याचा अर्थ आणि व्याप्ती सतत विकसित होत आहे. 1995 मध्ये, बिल गेट्स यांनी त्यांच्या The Road Ahead या पुस्तकात प्रथम IoT ची कल्पना मांडली. सोप्या भाषेत सांगायचे तर IoT वस्तूंना इंटरनेटद्वारे एकमेकांशी माहितीची देवाणघेवाण करण्यास सक्षम करते. त्याचे अंतिम ध्येय "सर्वकाही इंटरनेट" स्थापित करणे आहे. हे IoT चा प्रारंभिक अर्थ आहे, तसेच भविष्यातील तंत्रज्ञानाची कल्पनारम्य आहे. तीस वर्षांनंतर, अर्थव्यवस्था आणि तंत्रज्ञानाच्या वेगवान विकासासह, कल्पनारम्य प्रत्यक्षात येत आहे. स्मार्ट उपकरणे, स्मार्ट घरे, स्मार्ट शहरे, वाहनांचे इंटरनेट आणि वेअरेबल उपकरणांपासून, IoT तंत्रज्ञानाद्वारे समर्थित “मेटाव्हर्स” पर्यंत, नवीन संकल्पना सतत उदयास येत आहेत. या प्रकरणात, आम्ही इंटरनेट ऑफ थिंग्जच्या आर्किटेक्चरच्या स्पष्टीकरणासह सुरुवात करू आणि नंतर सर्वात सामान्य IoT ऍप्लिकेशन, स्मार्ट होम सादर करू, ज्यामुळे तुम्हाला IoT ची स्पष्ट समज मिळण्यास मदत होईल.
1.1 IoT चे आर्किटेक्चर
इंटरनेट ऑफ थिंग्जमध्ये अनेक तंत्रज्ञानाचा समावेश आहे ज्यांच्या विविध उद्योगांमध्ये विविध अनुप्रयोग गरजा आणि फॉर्म आहेत. IoT ची रचना, मुख्य तंत्रज्ञान आणि अनुप्रयोग वैशिष्ट्ये क्रमवारी लावण्यासाठी, एक एकीकृत आर्किटेक्चर आणि एक मानक तांत्रिक प्रणाली स्थापित करणे आवश्यक आहे. या पुस्तकात, IoT चे आर्किटेक्चर फक्त चार स्तरांमध्ये विभागले गेले आहे: धारणा आणि नियंत्रण स्तर, नेटवर्क स्तर, प्लॅटफॉर्म स्तर आणि अनुप्रयोग स्तर.
धारणा आणि नियंत्रण स्तर IoT आर्किटेक्चरचा सर्वात मूलभूत घटक म्हणून, IoT च्या सर्वसमावेशक सेन्सिंगची जाणीव करण्यासाठी धारणा आणि नियंत्रण स्तर हा मुख्य घटक आहे. माहिती गोळा करणे, ओळखणे आणि नियंत्रित करणे हे त्याचे मुख्य कार्य आहे. यात आकलन क्षमतेसह विविध उपकरणे असतात,
3

ओळख, नियंत्रण आणि अंमलबजावणी, आणि भौतिक गुणधर्म, वर्तणूक ट्रेंड आणि डिव्हाइस स्थिती यासारख्या डेटा पुनर्प्राप्त आणि विश्लेषणासाठी जबाबदार आहे. अशा प्रकारे, IoT ला वास्तविक भौतिक जग ओळखता येते. याशिवाय, लेयर डिव्हाइसची स्थिती नियंत्रित करण्यास देखील सक्षम आहे.
या लेयरची सर्वात सामान्य उपकरणे विविध सेन्सर आहेत, जी माहिती संकलन आणि ओळखण्यात महत्त्वाची भूमिका बजावतात. सेन्सर्स हे मानवी संवेदी अवयवांसारखे असतात, जसे की दृष्टीच्या बरोबरीचे प्रकाशसंवेदी सेन्सर, ऐकण्यासाठी ध्वनिक सेन्सर, वासासाठी गॅस सेन्सर्स आणि स्पर्श करण्यासाठी दाब- आणि तापमान-संवेदनशील सेन्सर्स. या सर्व "संवेदी अवयव" सह, वस्तू "जिवंत" बनतात आणि भौतिक जगाची बुद्धिमान समज, ओळख आणि हाताळणी करण्यास सक्षम असतात.
नेटवर्क लेयर हे नेटवर्क लेयरचे मुख्य कार्य म्हणजे परसेप्शन आणि कंट्रोल लेयरमधून मिळालेल्या डेटासह विशिष्ट टार्गेटवर, तसेच ॲप्लिकेशन लेयरमधून परत परसेप्शन आणि कंट्रोल लेयरवर जारी केलेल्या कमांडसह माहिती प्रसारित करणे. आयओटी प्रणालीच्या विविध स्तरांना जोडणारा हा महत्त्वाचा संवाद पूल आहे. इंटरनेट ऑफ थिंग्जचे मूलभूत मॉडेल सेट करण्यासाठी, नेटवर्कमध्ये ऑब्जेक्ट्स समाकलित करण्यासाठी दोन चरणांचा समावेश आहे: इंटरनेटमध्ये प्रवेश आणि इंटरनेटद्वारे प्रसार.
इंटरनेट इंटरनेटचा प्रवेश व्यक्ती आणि व्यक्ती यांच्यातील परस्पर संबंध सक्षम करते, परंतु मोठ्या कुटुंबात गोष्टी समाविष्ट करण्यात अयशस्वी होते. IoT च्या आगमनापूर्वी, बहुतेक गोष्टी "नेटवर्क सक्षम" नव्हत्या. तंत्रज्ञानाच्या निरंतर विकासाबद्दल धन्यवाद, IoT गोष्टींना इंटरनेटशी जोडण्यासाठी व्यवस्थापित करते, अशा प्रकारे "लोक आणि गोष्टी", आणि "गोष्टी आणि गोष्टी" यांच्यातील परस्परसंबंध ओळखतात. इंटरनेट कनेक्शन लागू करण्याचे दोन सामान्य मार्ग आहेत: वायर्ड नेटवर्क ऍक्सेस आणि वायरलेस नेटवर्क ऍक्सेस.
वायर्ड नेटवर्क ऍक्सेस पद्धतींमध्ये इथरनेट, सीरियल कम्युनिकेशन (उदा. RS-232, RS-485) आणि USB यांचा समावेश होतो, तर वायरलेस नेटवर्क ऍक्सेस वायरलेस कम्युनिकेशनवर अवलंबून असतो, ज्याला पुढे शॉर्ट-रेंज वायरलेस कम्युनिकेशन आणि लाँग-रेंज वायरलेस कम्युनिकेशनमध्ये विभागले जाऊ शकते.
शॉर्ट-रेंज वायरलेस कम्युनिकेशनमध्ये ZigBee, Bluetoothr, Wi-Fi, नियर-फील्ड कम्युनिकेशन (NFC), आणि रेडिओ फ्रिक्वेन्सी आयडेंटिफिकेशन (RFID) यांचा समावेश होतो. लाँग-रेंज वायरलेस कम्युनिकेशनमध्ये एन्हांस्ड मशीन टाइप कम्युनिकेशन (eMTC), LoRa, नॅरो बँड इंटरनेट ऑफ थिंग्ज (NB-IoT), 2G, 3G, 4G, 5G, इ.
इंटरनेटद्वारे ट्रान्समिशन इंटरनेट ऍक्सेसच्या वेगवेगळ्या पद्धतींमुळे डेटाच्या संबंधित भौतिक ट्रान्समिशन लिंक होतात. पुढील गोष्ट म्हणजे डेटा प्रसारित करण्यासाठी कोणता संप्रेषण प्रोटोकॉल वापरायचा हे ठरविणे. इंटरनेट टर्मिनल्सच्या तुलनेत, बऱ्याच IoT टर्मिनल्समध्ये सध्या कमी आहेत
4 ESP32-C3 वायरलेस साहस: IoT साठी एक व्यापक मार्गदर्शक

उपलब्ध संसाधने, जसे की प्रक्रिया कार्यप्रदर्शन, स्टोरेज क्षमता, नेटवर्क रेट इ., त्यामुळे आयओटी ऍप्लिकेशन्समध्ये कमी संसाधने व्यापणारा संप्रेषण प्रोटोकॉल निवडणे आवश्यक आहे. दोन कम्युनिकेशन प्रोटोकॉल आहेत जे आज मोठ्या प्रमाणावर वापरले जातात: मेसेज क्यूइंग टेलिमेट्री ट्रान्सपोर्ट (MQTT) आणि कंस्ट्रेन्ड ऍप्लिकेशन प्रोटोकॉल (CoAP).
प्लॅटफॉर्म स्तर प्लॅटफॉर्म स्तर मुख्यतः IoT क्लाउड प्लॅटफॉर्मचा संदर्भ देते. जेव्हा सर्व IoT टर्मिनल नेटवर्क केलेले असतात, तेव्हा त्यांचा डेटा गणना आणि संग्रहित करण्यासाठी IoT क्लाउड प्लॅटफॉर्मवर एकत्रित करणे आवश्यक आहे. प्लॅटफॉर्म लेयर मुख्यत्वे मोठ्या उपकरणांमध्ये प्रवेश आणि व्यवस्थापन सुलभ करण्यासाठी IoT अनुप्रयोगांना समर्थन देते. हे IoT टर्मिनल्स क्लाउड प्लॅटफॉर्मशी जोडते, टर्मिनल डेटा संकलित करते आणि टर्मिनल्सना आदेश जारी करते, जेणेकरून रिमोट कंट्रोल लागू करता येईल. इंडस्ट्री ऍप्लिकेशन्सना उपकरणे नियुक्त करण्यासाठी मध्यवर्ती सेवा म्हणून, प्लॅटफॉर्म लेयर संपूर्ण IoT आर्किटेक्चरमध्ये एक कनेक्टिंग भूमिका बजावते, अमूर्त व्यवसाय तर्क आणि प्रमाणित कोर डेटा मॉडेल धारण करते, जे केवळ डिव्हाइसेसच्या जलद प्रवेशाची जाणीव करू शकत नाही तर शक्तिशाली मॉड्यूलर क्षमता देखील प्रदान करते. उद्योग अनुप्रयोग परिस्थितीत विविध गरजा पूर्ण करण्यासाठी. प्लॅटफॉर्म लेयरमध्ये मुख्यतः फंक्शनल मॉड्यूल्स समाविष्ट आहेत जसे की डिव्हाइस प्रवेश, डिव्हाइस व्यवस्थापन, सुरक्षा व्यवस्थापन, संदेश संप्रेषण, देखरेख ऑपरेशन आणि देखभाल आणि डेटा अनुप्रयोग.
· डिव्हाइस प्रवेश, टर्मिनल आणि IoT क्लाउड प्लॅटफॉर्ममधील कनेक्शन आणि संप्रेषण लक्षात घेणे.
· डिव्हाइस व्यवस्थापन, डिव्हाइस निर्मिती, डिव्हाइस देखभाल, डेटा रूपांतरण, डेटा सिंक्रोनाइझेशन आणि डिव्हाइस वितरण यासारख्या कार्यांसह.
· सुरक्षा व्यवस्थापन, सुरक्षा प्रमाणीकरण आणि संप्रेषण सुरक्षिततेच्या दृष्टीकोनातून IoT डेटा ट्रान्समिशनची सुरक्षा सुनिश्चित करणे.
· संदेश संप्रेषण, तीन ट्रान्समिशन दिशानिर्देशांसह, म्हणजेच टर्मिनल IoT क्लाउड प्लॅटफॉर्मवर डेटा पाठवते, IoT क्लाउड प्लॅटफॉर्म सर्व्हर साइड किंवा इतर IoT क्लाउड प्लॅटफॉर्मवर डेटा पाठवते आणि सर्व्हर साइड दूरस्थपणे IoT डिव्हाइस नियंत्रित करते.
· निरीक्षण O&M, निरीक्षण आणि निदान, फर्मवेअर अपग्रेड, ऑनलाइन डीबगिंग, लॉग सेवा इ.
· डेटा ऍप्लिकेशन्स, ज्यामध्ये डेटाचे स्टोरेज, विश्लेषण आणि ऍप्लिकेशन समाविष्ट आहे.
ॲप्लिकेशन लेयर ॲप्लिकेशन लेयर प्लॅटफॉर्म लेयरमधील डेटाचा वापर ॲप्लिकेशन व्यवस्थापित करण्यासाठी, डेटाबेस आणि विश्लेषण सॉफ्टवेअर सारख्या साधनांसह फिल्टरिंग आणि प्रक्रिया करण्यासाठी करते. परिणामी डेटा स्मार्ट हेल्थकेअर, स्मार्ट कृषी, स्मार्ट घरे आणि स्मार्ट शहरे यासारख्या वास्तविक-जगातील IoT अनुप्रयोगांसाठी वापरला जाऊ शकतो.
अर्थात, IoT च्या आर्किटेक्चरला अधिक स्तरांमध्ये विभागले जाऊ शकते, परंतु त्यात कितीही स्तर असले तरीही, मूलभूत तत्त्व मूलत: समानच राहते. शिकत आहे
धडा 1. IoT 5 चा परिचय

IoT च्या आर्किटेक्चरबद्दल आमची IoT तंत्रज्ञानाची समज वाढवण्यास आणि पूर्णपणे कार्यक्षम IoT प्रकल्प तयार करण्यात मदत होते.
1.2 स्मार्ट होम्समध्ये IoT ऍप्लिकेशन
IoT ने जीवनाच्या सर्व क्षेत्रात प्रवेश केला आहे आणि आमच्यासाठी सर्वात जवळचा IoT अनुप्रयोग म्हणजे स्मार्ट होम. अनेक पारंपारिक उपकरणे आता एक किंवा अधिक IoT उपकरणांनी सुसज्ज आहेत आणि अनेक नवीन बांधलेली घरे सुरुवातीपासूनच IoT तंत्रज्ञानाने डिझाइन केलेली आहेत. आकृती 1.1 काही सामान्य स्मार्ट होम उपकरणे दाखवते.
आकृती 1.1. सामान्य स्मार्ट होम उपकरणे स्मार्ट होमचा विकास फक्त स्मार्ट उत्पादनांमध्ये विभागला जाऊ शकतो.tage, दृश्य इंटरकनेक्शन stage आणि बुद्धिमान stage, आकृती 1.2 मध्ये दाखवल्याप्रमाणे.
आकृती 1.2. विकास एसtage of smart home 6 ESP32-C3 Wireless Adventure: A Comprehensive Guide to IoT

प्रथम एसtage हे स्मार्ट उत्पादनांबद्दल आहे. पारंपारिक घरांपेक्षा वेगळे, स्मार्ट घरांमध्ये, IoT उपकरणे सेन्सरसह सिग्नल प्राप्त करतात आणि Wi-Fi, Bluetooth LE आणि ZigBee सारख्या वायरलेस कम्युनिकेशन तंत्रज्ञानाद्वारे नेटवर्क केले जातात. वापरकर्ते विविध प्रकारे स्मार्ट उत्पादने नियंत्रित करू शकतात, जसे की स्मार्टफोन ॲप्स, व्हॉइस असिस्टंट, स्मार्ट स्पीकर कंट्रोल इ.tage दृश्य इंटरकनेक्शनवर लक्ष केंद्रित करते. यामध्ये एसtage, विकसक आता एकल स्मार्ट उत्पादन नियंत्रित करण्याचा विचार करत नाहीत, परंतु दोन किंवा अधिक स्मार्ट उत्पादनांना एकमेकांशी जोडण्याचा, एका विशिष्ट मर्यादेपर्यंत स्वयंचलित करणे आणि शेवटी एक सानुकूल दृश्य मोड तयार करण्याचा विचार करत आहेत. उदाample, जेव्हा वापरकर्ता कोणतेही दृश्य मोड बटण दाबतो, तेव्हा दिवे, पडदे आणि एअर कंडिशनर्स आपोआप प्रीसेटशी जुळवून घेतात. अर्थात, ट्रिगर अटी आणि अंमलबजावणी कृतींसह, लिंकेज लॉजिक सहजपणे सेट केले जाण्याची पूर्वअट आहे. कल्पना करा की जेव्हा घरातील तापमान 10°C पेक्षा कमी होते तेव्हा एअर कंडिशनिंग हीटिंग मोड ट्रिगर होतो; की सकाळी 7 वाजता, वापरकर्त्याला जागे करण्यासाठी संगीत वाजवले जाते, स्मार्ट पडदे उघडले जातात आणि राईस कुकर किंवा ब्रेड टोस्टर स्मार्ट सॉकेटमधून सुरू होते; वापरकर्ता उठतो आणि धुणे पूर्ण करतो, नाश्ता आधीच दिला जातो, जेणेकरून कामावर जाण्यास उशीर होणार नाही. आपले जीवन किती सोयीचे झाले आहे! तिसरा एसtagई गुप्तचर s ला जातोtage अधिक स्मार्ट होम डिव्हाइसेस ॲक्सेस केल्याने, डेटाचे प्रकार जनरेट केले जातील. क्लाउड कॉम्प्युटिंग, बिग डेटा आणि आर्टिफिशियल इंटेलिजन्सच्या मदतीने स्मार्ट होम्समध्ये “स्मार्ट मेंदू” लावल्यासारखे आहे, ज्याला वापरकर्त्याकडून वारंवार आदेशांची आवश्यकता नाही. ते मागील परस्परसंवादांमधून डेटा संकलित करतात आणि वापरकर्त्याच्या वर्तन पद्धती आणि प्राधान्ये जाणून घेतात, जेणेकरून निर्णय घेण्यासाठी शिफारसी प्रदान करण्यासह क्रियाकलाप स्वयंचलित करता येतील. सध्या, बहुतेक स्मार्ट घरे घटनास्थळी आहेत इंटरकनेक्शन एसtage स्मार्ट उत्पादनांचा प्रवेश दर आणि बुद्धिमत्ता वाढत असताना, संप्रेषण प्रोटोकॉलमधील अडथळे दूर केले जात आहेत. भविष्यात, आयर्न मॅनमधील AI सिस्टीम जार्विस प्रमाणेच स्मार्ट घरे खरोखरच “स्मार्ट” बनतील, जी वापरकर्त्याला केवळ विविध उपकरणांवर नियंत्रण ठेवण्यास, दैनंदिन व्यवहार हाताळण्यास मदत करू शकत नाही, परंतु त्यांच्याकडे सुपर संगणन शक्ती आणि विचार करण्याची क्षमता देखील आहे. बुद्धिमान एस मध्येtagई, मानवांना प्रमाण आणि दर्जा या दोन्ही बाबतीत चांगल्या सेवा मिळतील.
धडा 1. IoT 7 चा परिचय

8 ESP32-C3 वायरलेस साहस: IoT साठी एक व्यापक मार्गदर्शक

अध्याय परिचय आणि २ 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 उपकरणांसाठी, खाते बंधनकारक आणि प्रारंभिक कॉन्फिगरेशन एकाच ऑपरेशनल प्रक्रियेत पूर्ण केले जाते, उदाहरणार्थample, Wi-Fi नेटवर्क कॉन्फिगर करून वापरकर्त्यांसह डिव्हाइस कनेक्ट करणे.
IoT क्लाउड प्लॅटफॉर्मसह परस्परसंवाद IoT डिव्हाइसेसचे निरीक्षण आणि नियंत्रण करण्यासाठी, त्यांना IoT क्लाउड प्लॅटफॉर्मशी कनेक्ट करणे देखील आवश्यक आहे, जेणेकरून एकमेकांमधील परस्परसंवादाद्वारे आदेश आणि स्थितीचा अहवाल द्या.
डिव्हाइस नियंत्रण IoT क्लाउड प्लॅटफॉर्मसह कनेक्ट केलेले असताना, डिव्हाइस क्लाउडशी संवाद साधू शकतात आणि नोंदणीकृत, बंधनकारक किंवा नियंत्रित केले जाऊ शकतात. वापरकर्ते आयओटी क्लाउड प्लॅटफॉर्म किंवा स्थानिक कम्युनिकेशन प्रोटोकॉलद्वारे स्मार्टफोन ॲपवर उत्पादन स्थितीची चौकशी करू शकतात आणि इतर ऑपरेशन्स करू शकतात.
फर्मवेअर अपग्रेड IoT उपकरणे उत्पादकांच्या गरजांवर आधारित फर्मवेअर अपग्रेड देखील साध्य करू शकतात. क्लाउडद्वारे पाठवलेल्या कमांड्स प्राप्त करून, फर्मवेअर अपग्रेड आणि आवृत्ती व्यवस्थापन लक्षात येईल. या फर्मवेअर अपग्रेड वैशिष्ट्यासह, तुम्ही IoT उपकरणांची कार्ये सतत वाढवू शकता, दोष दूर करू शकता आणि वापरकर्ता अनुभव सुधारू शकता.
2.1.2 क्लायंट ऍप्लिकेशन्सचे मूलभूत मॉड्यूल
क्लायंट ॲप्लिकेशन्स (उदा. स्मार्टफोन ॲप्स) मध्ये प्रामुख्याने खालील मूलभूत मॉड्यूल समाविष्ट आहेत:
खाते प्रणाली आणि अधिकृतता हे खाते आणि डिव्हाइस अधिकृततेला समर्थन देते.
डिव्हाइस कंट्रोल स्मार्टफोन ॲप्स सहसा कंट्रोलिंग फंक्शन्ससह सुसज्ज असतात. वापरकर्ते सहजपणे IoT उपकरणांशी कनेक्ट करू शकतात आणि ते कधीही, कुठेही स्मार्टफोन ॲप्सद्वारे व्यवस्थापित करू शकतात. वास्तविक-जगातील स्मार्ट होममध्ये, डिव्हाइसेसना मुख्यतः स्मार्टफोन ॲप्सद्वारे नियंत्रित केले जाते, जे केवळ उपकरणांचे बुद्धिमान व्यवस्थापन सक्षम करत नाही तर मनुष्यबळाच्या खर्चातही बचत करते. म्हणून, क्लायंट ऍप्लिकेशन्ससाठी डिव्हाइस नियंत्रण आवश्यक आहे, जसे की डिव्हाइस फंक्शन विशेषता नियंत्रण, दृश्य नियंत्रण, शेड्यूलिंग, रिमोट कंट्रोल, डिव्हाइस लिंकेज इ. स्मार्ट होम वापरकर्ते वैयक्तिक गरजांनुसार दृश्ये सानुकूलित देखील करू शकतात, प्रकाश नियंत्रित करणे, घरगुती उपकरणे, प्रवेशद्वार , इत्यादी, घरगुती जीवन अधिक आरामदायक आणि सोयीस्कर बनवण्यासाठी. ते एअर कंडिशनिंगला वेळ देऊ शकतात, ते दूरस्थपणे बंद करू शकतात, एकदा दरवाजा अनलॉक केल्यावर हॉलवे लाइट स्वयंचलितपणे सेट करू शकतात किंवा एका बटणाने "थिएटर" मोडवर स्विच करू शकतात.
सूचना क्लायंट ॲप्लिकेशन्स IoT डिव्हाइसेसची रिअल-टाइम स्थिती अद्यतनित करतात आणि जेव्हा डिव्हाइसेस असामान्य होतात तेव्हा सूचना पाठवतात.
10 ESP32-C3 वायरलेस साहस: IoT साठी एक व्यापक मार्गदर्शक

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

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

२.२.१ प्रकल्पाची रचना
स्मार्ट लाईट प्रकल्पात तीन भाग असतात: i. ESP32-C3 वर आधारित स्मार्ट लाइट डिव्हाइसेस, IoT क्लाउड प्लॅटफॉर्मशी संवाद साधण्यासाठी आणि LED l चे स्विच, ब्राइटनेस आणि रंग तापमान नियंत्रित करण्यासाठी जबाबदारamp मणी ii स्मार्टफोन ॲप्स (Android आणि iOS वर चालणाऱ्या टॅबलेट ॲप्ससह), स्मार्ट लाइट उत्पादनांच्या नेटवर्क कॉन्फिगरेशनसाठी तसेच त्यांची स्थिती तपासण्यासाठी आणि नियंत्रित करण्यासाठी जबाबदार आहेत.
iii ESP RainMaker वर आधारित IoT क्लाउड प्लॅटफॉर्म. सरलीकरणासाठी, आम्ही या पुस्तकात संपूर्णपणे IoT क्लाउड प्लॅटफॉर्म आणि व्यवसाय सर्व्हरचा विचार करतो. ESP RainMaker बद्दल तपशील अध्याय 3 मध्ये प्रदान केला जाईल.
स्मार्ट लाइट प्रोजेक्ट स्ट्रक्चर आणि IoT च्या आर्किटेक्चरमधील पत्रव्यवहार आकृती 2.1 मध्ये दर्शविला आहे.
आकृती 2.1. स्मार्ट लाइट प्रकल्पाची रचना
2.2.2 प्रकल्प कार्ये
संरचनेनुसार विभागले, प्रत्येक भागाची कार्ये खालीलप्रमाणे आहेत. स्मार्ट प्रकाश साधने
· नेटवर्क कॉन्फिगरेशन आणि कनेक्शन. · एलईडी PWM नियंत्रण, जसे की स्विच, ब्राइटनेस, रंग तापमान इ. · ऑटोमेशन किंवा दृश्य नियंत्रण, उदा., वेळ स्विच. · फ्लॅशचे एन्क्रिप्शन आणि सुरक्षित बूट. · फर्मवेअर अपग्रेड आणि आवृत्ती व्यवस्थापन.
धडा 2. IoT प्रकल्पांचा परिचय आणि सराव 13

स्मार्टफोन ॲप्स · नेटवर्क कॉन्फिगरेशन आणि डिव्हाइस बंधनकारक. · स्मार्ट लाइट उत्पादन नियंत्रण, जसे की स्विच, ब्राइटनेस, रंग तापमान इ. · ऑटोमेशन किंवा सीन सेटिंग्ज, उदा, वेळ स्विच. · स्थानिक/रिमोट कंट्रोल. · वापरकर्ता नोंदणी, लॉगिन इ.
ESP RainMaker IoT क्लाउड प्लॅटफॉर्म · IoT डिव्हाइस प्रवेश सक्षम करणे. · स्मार्टफोन ॲप्सना प्रवेश करण्यायोग्य डिव्हाइस ऑपरेशन API प्रदान करणे. · फर्मवेअर अपग्रेड आणि आवृत्ती व्यवस्थापन.
2.2.3 हार्डवेअर तयारी
प्रकल्प प्रत्यक्षात आणण्यात स्वारस्य असल्यास, आपल्याला खालील हार्डवेअरची देखील आवश्यकता असेल: स्मार्ट दिवे, स्मार्टफोन, वाय-फाय राउटर आणि विकास वातावरणाच्या स्थापना आवश्यकता पूर्ण करणारा संगणक. स्मार्ट दिवे
स्मार्ट दिवे हे एक नवीन प्रकारचे बल्ब आहेत, ज्याचा आकार सामान्य इनॅन्डेन्सेंट बल्ब सारखा आहे. एक स्मार्ट लाइट कॅपेसिटर स्टेप-डाउन रेग्युलेटेड पॉवर सप्लाय, वायरलेस मॉड्यूल (बिल्ट-इन ESP32-C3 सह), LED कंट्रोलर आणि RGB LED मॅट्रिक्सने बनलेला असतो. पॉवरशी कनेक्ट केल्यावर, 15 V DC voltagकॅपेसिटर स्टेप-डाउन, डायोड रेक्टिफिकेशन आणि रेग्युलेशन नंतरचे आउटपुट LED कंट्रोलर आणि LED मॅट्रिक्सला ऊर्जा प्रदान करते. बंद (दिवे चालू) आणि उघडे (दिवे बंद) दरम्यान आरजीबी एलईडी मॅट्रिक्स स्विच करून, एलईडी कंट्रोलर विशिष्ट अंतराने उच्च आणि निम्न पातळी स्वयंचलितपणे पाठवू शकतो, जेणेकरून ते निळसर, पिवळा, हिरवा, जांभळा, निळा, लाल आणि पांढरा प्रकाश. वायरलेस मॉड्यूल वाय-फाय राउटरशी कनेक्ट करण्यासाठी, स्मार्ट लाइट्सची स्थिती प्राप्त करण्यासाठी आणि अहवाल देण्यासाठी आणि LED नियंत्रित करण्यासाठी कमांड पाठवण्यासाठी जबाबदार आहे.
आकृती 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 LED लाईट्सच्या पट्टीने जोडलेला आहे.
आकृती 2.3. ESP32-C3-Lyra 40 LED लाइटच्या पट्टीने जोडलेले आहे
स्मार्टफोन (Android/iOS) स्मार्ट लाइट प्रोजेक्टमध्ये स्मार्ट लाइट उत्पादने सेट अप आणि नियंत्रित करण्यासाठी स्मार्टफोन ॲप विकसित करणे समाविष्ट आहे.
वाय-फाय राउटर वाय-फाय राउटर वायर्ड नेटवर्क सिग्नल्स आणि मोबाईल नेटवर्क सिग्नल्स वायरलेस नेटवर्क सिग्नल्समध्ये रूपांतरित करतात, संगणक, स्मार्टफोन, टॅब्लेट आणि नेटवर्कशी कनेक्ट होण्यासाठी इतर वायरलेस डिव्हाइसेससाठी. उदाampत्यामुळे, वाय-फाय उपकरणांचे वायरलेस नेटवर्किंग साध्य करण्यासाठी घरातील ब्रॉडबँड केवळ वाय-फाय राउटरशी कनेक्ट करणे आवश्यक आहे. वाय-फाय राउटरद्वारे समर्थित मुख्य प्रवाहातील प्रोटोकॉल मानक IEEE 802.11n आहे, ज्याचा सरासरी TxRate 300 Mbps किंवा 600 Mbps आहे. ते IEEE 802.11b आणि IEEE 802.11g शी बॅकवर्ड सुसंगत आहेत. Espressif ची ESP32-C3 चिप IEEE 802.11b/g/n ला सपोर्ट करते, त्यामुळे तुम्ही सिंगल-बँड (2.4 GHz) किंवा ड्युअल-बँड (2.4 GHz आणि 5 GHz) वाय-फाय राउटर निवडू शकता.
धडा 4 मध्ये संगणक (Linux/macOS/Windows) विकास वातावरण सादर केले जाईल. धडा 2. IoT प्रकल्पांचा परिचय आणि सराव 15

2.2.4 विकास प्रक्रिया
आकृती 2.4. स्मार्ट लाइट प्रकल्प विकसित करण्याचे टप्पे
हार्डवेअर डिझाइन IoT उपकरणांचे हार्डवेअर डिझाइन IoT प्रकल्पासाठी आवश्यक आहे. एक संपूर्ण स्मार्ट प्रकाश प्रकल्प अल निर्मिती हेतू आहेamp मुख्य पुरवठा अंतर्गत काम. विविध उत्पादक एलamps भिन्न शैली आणि ड्रायव्हर प्रकार, परंतु त्यांचे वायरलेस मॉड्यूल सहसा समान कार्याचे असतात. स्मार्ट लाइट प्रकल्पाची विकास प्रक्रिया सुलभ करण्यासाठी, या पुस्तकात फक्त हार्डवेअर डिझाइन आणि वायरलेस मॉड्यूल्सचे सॉफ्टवेअर डेव्हलपमेंट समाविष्ट आहे.
IoT क्लाउड प्लॅटफॉर्म कॉन्फिगरेशन IoT क्लाउड प्लॅटफॉर्म वापरण्यासाठी, तुम्हाला बॅकएंडवर प्रोजेक्ट कॉन्फिगर करणे आवश्यक आहे, जसे की उत्पादने तयार करणे, डिव्हाइस तयार करणे, डिव्हाइस गुणधर्म सेट करणे इ.
IoT उपकरणांसाठी एम्बेडेड सॉफ्टवेअर डेव्हलपमेंट ESP-IDF, Espressif च्या डिव्हाइस-साइड SDK सह अपेक्षित कार्ये लागू करा, ज्यात IoT क्लाउड प्लॅटफॉर्मशी कनेक्ट करणे, LED ड्राइव्हर्स विकसित करणे आणि फर्मवेअर अपग्रेड करणे समाविष्ट आहे.
स्मार्टफोन ॲप डेव्हलपमेंट वापरकर्ता नोंदणी आणि लॉगिन, डिव्हाइस नियंत्रण आणि इतर कार्ये पूर्ण करण्यासाठी Android आणि iOS प्रणालींसाठी स्मार्टफोन ॲप्स विकसित करा.
IoT डिव्हाइस ऑप्टिमायझेशन एकदा IoT डिव्हाइस फंक्शन्सचा मूलभूत विकास पूर्ण झाल्यानंतर, तुम्ही पॉवर ऑप्टिमायझेशनसारख्या ऑप्टिमायझेशन कार्यांकडे वळू शकता.
मोठ्या प्रमाणावर उत्पादन चाचणी संबंधित मानकांनुसार मोठ्या प्रमाणावर उत्पादन चाचण्या करा, जसे की उपकरण कार्य चाचणी, वृद्धत्व चाचणी, RF चाचणी इ.
वर सूचीबद्ध केलेल्या पायऱ्या असूनही, स्मार्ट लाइट प्रकल्प अशा प्रक्रियेच्या अधीन असणे आवश्यक नाही कारण एकाच वेळी भिन्न कार्ये देखील केली जाऊ शकतात. उदाample, एम्बेडेड सॉफ्टवेअर आणि स्मार्टफोन ॲप्स समांतर विकसित केले जाऊ शकतात. IoT डिव्हाइस ऑप्टिमायझेशन आणि मोठ्या प्रमाणावर उत्पादन चाचणी यासारख्या काही चरणांची पुनरावृत्ती करणे देखील आवश्यक असू शकते.
16 ESP32-C3 वायरलेस साहस: IoT साठी एक व्यापक मार्गदर्शक

2.3 सारांश
या धड्यात, आम्ही प्रथम IoT प्रकल्पाचे मूलभूत घटक आणि कार्यात्मक मॉड्यूल्सची माहिती दिली, नंतर त्याची रचना, कार्ये, हार्डवेअर तयार करणे आणि विकास प्रक्रियेचा संदर्भ देऊन सरावासाठी स्मार्ट लाइट केस सादर केला. वाचक सरावातून निष्कर्ष काढू शकतात आणि भविष्यात किमान चुकांसह IoT प्रकल्प पूर्ण करण्याचा आत्मविश्वास बाळगू शकतात.
धडा 2. IoT प्रकल्पांचा परिचय आणि सराव 17

18 ESP32-C3 वायरलेस साहस: IoT साठी एक व्यापक मार्गदर्शक

धडा १

परिचय

करण्यासाठी

ESP

रेनमेकर

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

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

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

Python APIs A Python-आधारित CLI, जे RainMaker SDK सह येते, स्मार्टफोन वैशिष्ट्यांप्रमाणेच सर्व कार्ये लागू करण्यासाठी प्रदान केले आहे. Python API बद्दल अधिक माहितीसाठी, कृपया https://bookc3.espressif.com/rm/python-api-reference ला भेट द्या.
ॲडमिन सीएलआय ॲडमिन सीएलआय, उच्च पातळीच्या प्रवेशासह, मोठ्या प्रमाणात डिव्हाइस प्रमाणपत्रे व्युत्पन्न करण्यासाठी ESP RainMaker खाजगी तैनातीसाठी प्रदान केले जाते.
3.2.1 सेवेचा दावा करणे
रेनमेकर उपकरणे आणि क्लाउड बॅकएंडमधील सर्व संप्रेषण MQTT+TLS द्वारे केले जाते. ESP RainMaker च्या संदर्भात, “क्लेमिंग” ही एक प्रक्रिया आहे ज्यामध्ये क्लाउड बॅकएंडशी कनेक्ट होण्यासाठी डिव्हाइसेस क्लेमिंग सेवेकडून प्रमाणपत्रे मिळवतात. लक्षात घ्या की क्लेमिंग सर्व्हिस केवळ सार्वजनिक रेनमेकर सेवेसाठी लागू आहे, तर खाजगी उपयोजनासाठी, ॲडमिन CLI द्वारे मोठ्या प्रमाणात डिव्हाइस प्रमाणपत्रे तयार करणे आवश्यक आहे. ESP RainMaker तीन प्रकारच्या क्लेमिंग सेवेला सपोर्ट करते: सेल्फ क्लेमिंग
इंटरनेटशी कनेक्ट केल्यानंतर eFuse मध्ये प्री-प्रोग्राम केलेल्या गुप्त कीद्वारे डिव्हाइस स्वतः प्रमाणपत्रे मिळवते. होस्ट ड्राइव्हन क्लेमिंग डेव्हलपमेंट होस्टकडून रेनमेकर खात्यासह प्रमाणपत्रे मिळविली जातात. असिस्टेड क्लेमिंग प्रोव्हिजनिंग दरम्यान स्मार्टफोन ॲप्लिकेशन्सद्वारे प्रमाणपत्रे मिळविली जातात.
३.२.२ रेनमेकर एजंट
आकृती 3.3. रेनमेकर SDK ची रचना रेनमेकर एजंटचे प्राथमिक कार्य कनेक्टिव्हिटी प्रदान करणे आणि अपलिंक/डाउनलिंक क्लाउड डेटावर प्रक्रिया करण्यासाठी ऍप्लिकेशन लेयरला मदत करणे आहे. हे RainMaker SDK 22 ESP32-C3 Wireless Adventure: A Comprehensive Guide to IoT द्वारे तयार केले आहे.

आणि RTOS, NVS आणि MQTT सारख्या ESP-IDF घटकांचा वापर करून सिद्ध ESP-IDF फ्रेमवर्कवर आधारित विकसित केले आहे. आकृती 3.3 रेनमेकर SDK ची रचना दाखवते.
रेनमेकर SDK मध्ये दोन प्रमुख वैशिष्ट्ये समाविष्ट आहेत.
जोडणी
i डिव्हाइस प्रमाणपत्रे मिळवण्यासाठी क्लेमिंग सेवेला सहकार्य करणे.
ii रिमोट कनेक्टिव्हिटी प्रदान करण्यासाठी सुरक्षित MQTT प्रोटोकॉल वापरून क्लाउड बॅकएंडशी कनेक्ट करणे आणि रिमोट कंट्रोल, संदेश रिपोर्टिंग, वापरकर्ता व्यवस्थापन, डिव्हाइस व्यवस्थापन इ. ते डीफॉल्टनुसार ESP-IDF मध्ये MQTT घटक वापरते आणि इतरांशी इंटरफेस करण्यासाठी ॲब्स्ट्रॅक्शन लेयर प्रदान करते. प्रोटोकॉल स्टॅक.
iii वाय-फाय कनेक्शन आणि प्रोव्हिजनिंगसाठी वायफाय प्रोव्हिजनिंग घटक, OTA अपग्रेडसाठी esp https ota घटक आणि स्थानिक डिव्हाइस शोध आणि कनेक्शनसाठी esp स्थानिक ctrl घटक प्रदान करणे. ही सर्व उद्दिष्टे साध्या कॉन्फिगरेशनद्वारे साध्य करता येतात.
डेटा प्रोसेसिंग
i क्लेमिंग सेवेद्वारे जारी केलेले डिव्हाइस प्रमाणपत्रे आणि RainMaker चालवताना आवश्यक असलेला डेटा संग्रहित करणे, nvs फ्लॅश घटकाद्वारे प्रदान केलेला इंटरफेस वापरून डीफॉल्टनुसार, आणि थेट वापरासाठी विकसकांसाठी API प्रदान करणे.
ii अपलिंक/डाउनलिंक क्लाउड डेटावर प्रक्रिया करण्यासाठी कॉलबॅक यंत्रणा वापरणे आणि विकसकांद्वारे सुलभ प्रक्रियेसाठी अनुप्रयोग स्तरावरील डेटा स्वयंचलितपणे अनब्लॉक करणे. उदाampले, RainMaker SDK TSL (थिंग स्पेसिफिकेशन लँग्वेज) डेटा स्थापित करण्यासाठी समृद्ध इंटरफेस प्रदान करते, जे IoT डिव्हाइसेसचे वर्णन करण्यासाठी आणि वेळ, काउंटडाउन आणि व्हॉइस कंट्रोल सारखी कार्ये लागू करण्यासाठी TSL मॉडेल्स परिभाषित करण्यासाठी आवश्यक आहेत. वेळेसारख्या मूलभूत संवादात्मक वैशिष्ट्यांसाठी, RainMaker SDK एक विकास-मुक्त समाधान प्रदान करते जे आवश्यकतेनुसार सक्षम केले जाऊ शकते. त्यानंतर, रेनमेकर एजंट थेट डेटावर प्रक्रिया करेल, संबंधित MQTT विषयाद्वारे क्लाउडवर पाठवेल आणि कॉलबॅक यंत्रणेद्वारे क्लाउड बॅकएंडमधील डेटा बदल फीड बॅक करेल.
3.2.3 क्लाउड बॅकएंड
क्लाउड बॅकएंड हे AWS सर्व्हरलेस कॉम्प्युटिंगवर तयार केले आहे आणि AWS कॉग्निटो (आयडेंटिटी मॅनेजमेंट सिस्टम), Amazon API गेटवे, AWS Lambda (सर्व्हरलेस कॉम्प्युटिंग सेवा), Amazon DynamoDB (NoSQL डेटाबेस), AWS IoT Core (IoT ऍक्सेस कोर जे MQTT ऍक्सेस प्रदान करते) द्वारे प्राप्त केले आहे. आणि नियम फिल्टरिंग), Amazon Simple Email Service (SES simple mail service), Amazon CloudFront (जलद वितरण नेटवर्क), Amazon Simple Queue Service (SQS मेसेज queing), आणि Amazon S3 (बकेट स्टोरेज सेवा). स्केलेबिलिटी आणि सुरक्षितता ऑप्टिमाइझ करणे हे त्याचे उद्दिष्ट आहे. ESP RainMaker सह, डेव्हलपर क्लाउडमध्ये कोड न लिहिता डिव्हाइसेस व्यवस्थापित करू शकतात. उपकरणांद्वारे नोंदवलेले संदेश पारदर्शकपणे प्रसारित केले जातात
धडा 3. ईएसपी रेनमेकरचा परिचय 23

अनुप्रयोग क्लायंट किंवा इतर तृतीय-पक्ष सेवा. तक्ता 3.1 क्लाउड बॅकएंडमध्ये वापरलेली AWS क्लाउड उत्पादने आणि कार्ये दर्शविते, ज्यामध्ये अधिक उत्पादने आणि वैशिष्ट्ये विकसित होत आहेत.
तक्ता 3.1. क्लाउड बॅकएंडद्वारे वापरलेली AWS क्लाउड उत्पादने आणि कार्ये

RainMaker द्वारे वापरलेले AWS क्लाउड उत्पादन

कार्य

AWS कॉग्निटो

वापरकर्ता क्रेडेन्शियल्स व्यवस्थापित करणे आणि तृतीय-पक्ष लॉगिनचे समर्थन करणे

AWS लांबडा

क्लाउड बॅकएंडचे मुख्य व्यवसाय तर्क लागू करणे

Amazon Timestream संग्रहित वेळ मालिका डेटा

Amazon DynamoDB ग्राहकांची खाजगी माहिती साठवत आहे

AWS IoT कोर

MQTT संप्रेषणास समर्थन

ऍमेझॉन SES

ईमेल पाठवण्याच्या सेवा प्रदान करणे

ॲमेझॉन क्लाउडफ्रंट बॅकएंडच्या व्यवस्थापनाला गती देत ​​आहे webसाइट प्रवेश

Amazon SQS

AWS IoT Core वरून संदेश फॉरवर्ड करणे

३.२.४ रेनमेकर क्लायंट
रेनमेकर क्लायंट, जसे की App आणि CLI, REST API द्वारे क्लाउड बॅकएंडशी संवाद साधतात. REST API बद्दल तपशीलवार माहिती आणि सूचना Espressif द्वारे प्रदान केलेल्या Swagger दस्तऐवजीकरणामध्ये आढळू शकतात. रेनमेकरचा मोबाइल ॲप्लिकेशन क्लायंट iOS आणि Android या दोन्ही प्रणालींसाठी उपलब्ध आहे. हे डिव्हाइस तरतूद, नियंत्रण आणि सामायिकरण तसेच काउंटडाउन कार्ये तयार आणि सक्षम करण्यास आणि तृतीय-पक्ष प्लॅटफॉर्मशी कनेक्ट करण्यास अनुमती देते. ते उपकरणांद्वारे नोंदवलेल्या कॉन्फिगरेशननुसार स्वयंचलितपणे UI आणि चिन्ह लोड करू शकते आणि TSL डिव्हाइस पूर्णपणे प्रदर्शित करू शकते.
उदाampले, RainMaker SDK-प्रदान केलेल्या माजी वर एक स्मार्ट लाइट तयार केला असल्यासamples, तरतूद पूर्ण झाल्यावर बल्ब लाइटचे चिन्ह आणि UI स्वयंचलितपणे लोड केले जातील. वापरकर्ते इंटरफेसद्वारे प्रकाशाचा रंग आणि ब्राइटनेस बदलू शकतात आणि त्यांच्या ESP RainMaker खात्यांशी Alexa Smart Home Skill किंवा Google Smart Home Actions लिंक करून तृतीय-पक्ष नियंत्रण मिळवू शकतात. आकृती 3.4 आयकॉन आणि UI एक्स दाखवतेampAlexa, Google Home आणि ESP RainMaker App वर अनुक्रमे बल्ब लाइट.

24 ESP32-C3 वायरलेस साहस: IoT साठी एक व्यापक मार्गदर्शक

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

(b) उदाample - Google Home

(c) उदाample - ESP रेनमेकर
आकृती 3.4. उदाampAlexa, Google Home आणि ESP RainMaker ॲपवरील बल्ब लाइटचे आयकॉन आणि UI
3.3 सराव: ESP RainMaker सह विकसित करण्यासाठी मुख्य मुद्दे
एकदा डिव्हाईस ड्रायव्हर लेयर पूर्ण झाल्यानंतर, डेव्हलपर TSL मॉडेल्स तयार करण्यास आणि RainMaker SDK द्वारे प्रदान केलेल्या APIs वापरून डाउनलिंक डेटावर प्रक्रिया करण्यास प्रारंभ करू शकतात आणि उत्पादन व्याख्या आणि आवश्यकतांवर आधारित ESP RainMaker मूलभूत सेवा सक्षम करू शकतात.
धडा 3. ईएसपी रेनमेकरचा परिचय 25

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

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

उपकरण सामायिकरण एक किंवा अधिक उपकरणे एक किंवा अधिक वापरकर्त्यांसह सामायिक केली जाऊ शकतात.
पुश सूचना अंतिम वापरकर्त्यांना इव्हेंटसाठी पुश सूचना प्राप्त होतील जसे की · नवीन डिव्हाइस(ले) जोडले/काढले गेले · डिव्हाइस क्लाउडशी कनेक्ट केलेले · डिव्हाइस क्लाउडवरून डिस्कनेक्ट केलेले · डिव्हाइस सामायिकरण विनंत्या तयार/स्वीकारल्या/नाकारल्या · डिव्हाइसद्वारे सूचित केलेले अलर्ट संदेश
लाइट्स, स्विचेस, सॉकेट्स, पंखे आणि तापमान सेन्सर्ससह रेनमेकर उपकरणे नियंत्रित करण्यासाठी तृतीय पक्ष एकत्रीकरण अलेक्सा आणि Google व्हॉइस असिस्टंट समर्थित आहेत.
3.4.3 प्रशासन वैशिष्ट्ये
प्रशासक वैशिष्ट्ये प्रशासकांना डिव्हाइस नोंदणी, डिव्हाइस गटीकरण आणि OTA अपग्रेड लागू करण्याची परवानगी देतात आणि view आकडेवारी आणि ESP अंतर्दृष्टी डेटा.
डिव्हाइस नोंदणी डिव्हाइस प्रमाणपत्रे व्युत्पन्न करा आणि प्रशासक CLI (केवळ खाजगी सर्व्हर) सह नोंदणी करा.
डिव्हाइस ग्रुपिंग डिव्हाइस माहितीवर आधारित अमूर्त किंवा संरचित गट तयार करा (केवळ खाजगी सर्व्हर).
ओव्हर-द-एअर (OTA) अपग्रेड आवृत्ती आणि मॉडेलवर आधारित फर्मवेअर अपलोड करा, एक किंवा अधिक उपकरणांवर किंवा गट मॉनिटर, रद्द करा किंवा OTA जॉब संग्रहित करा.
View आकडेवारी Viewसक्षम आकडेवारीमध्ये हे समाविष्ट आहे: · डिव्हाइस नोंदणी (प्रशासनाद्वारे नोंदणीकृत प्रमाणपत्रे) · डिव्हाइस सक्रियकरण (डिव्हाइस प्रथमच कनेक्ट केलेले) · वापरकर्ता खाती · वापरकर्ता-डिव्हाइस असोसिएशन
View ESP अंतर्दृष्टी डेटा Viewसक्षम ESP अंतर्दृष्टी डेटामध्ये हे समाविष्ट आहे: · त्रुटी, चेतावणी आणि सानुकूल लॉग · क्रॅश अहवाल आणि विश्लेषण · रीबूट कारणे · मेट्रिक्स जसे मेमरी वापर, RSSI इ. · कस्टम मेट्रिक्स आणि व्हेरिएबल्स
28 ESP32-C3 वायरलेस साहस: IoT साठी एक व्यापक मार्गदर्शक

3.5 सारांश
या प्रकरणात, आम्ही सार्वजनिक रेनमेकर तैनाती आणि खाजगी उपयोजन यांच्यातील काही प्रमुख फरक सादर केले आहेत. Espressif ने लॉन्च केलेले खाजगी ESP RainMaker सोल्यूशन अत्यंत विश्वासार्ह आणि विस्तारण्यायोग्य आहे. सर्व ESP32 मालिका चिप्स जोडल्या गेल्या आहेत आणि AWS शी जुळवून घेतल्या आहेत, ज्यामुळे खर्च मोठ्या प्रमाणात कमी होतो. AWS क्लाउड उत्पादनांबद्दल न शिकता विकसक प्रोटोटाइप पडताळणीवर लक्ष केंद्रित करू शकतात. आम्ही ESP RainMaker ची अंमलबजावणी आणि वैशिष्ट्ये आणि प्लॅटफॉर्म वापरून विकासासाठी काही प्रमुख मुद्दे देखील स्पष्ट केले.
Android साठी ESP RainMaker डाउनलोड करण्यासाठी स्कॅन करा iOS साठी ESP RainMaker डाउनलोड करण्यासाठी स्कॅन करा
धडा 3. ईएसपी रेनमेकरचा परिचय 29

30 ESP32-C3 वायरलेस साहस: IoT साठी एक व्यापक मार्गदर्शक

अध्याय 4 विकास पर्यावरणाची स्थापना
हा धडा ESP-IDF वर केंद्रित आहे, ESP32-C3 साठी अधिकृत सॉफ्टवेअर डेव्हलपमेंट फ्रेमवर्क. आम्ही विविध ऑपरेटिंग सिस्टीमवर वातावरण कसे सेट करावे आणि ESP-IDF ची प्रोजेक्ट स्ट्रक्चर आणि बिल्ड सिस्टम तसेच संबंधित डेव्हलपमेंट टूल्सचा वापर कसा करावा हे स्पष्ट करू. मग आम्ही एक्स कंपाइलिंग आणि रनिंग प्रोसेस सादर करूample प्रकल्प, प्रत्येक s वर आउटपुट लॉगचे तपशीलवार स्पष्टीकरण देत असतानाtage.
4.1 ESP-IDF ओव्हरview
ESP-IDF (Espressif IoT डेव्हलपमेंट फ्रेमवर्क) एक-स्टॉप IoT डेव्हलपमेंट फ्रेमवर्क आहे जो Espressif तंत्रज्ञानाद्वारे प्रदान केला जातो. हे मुख्य विकास भाषा म्हणून C/C++ वापरते आणि Linux, Mac आणि Windows सारख्या मुख्य प्रवाहातील ऑपरेटिंग सिस्टम अंतर्गत क्रॉस-कंपिलेशनला समर्थन देते. माजीampया पुस्तकात समाविष्ट केलेले le प्रोग्राम्स ESP-IDF वापरून विकसित केले आहेत, जे खालील वैशिष्ट्ये ऑफर करतात: · SoC सिस्टम-स्तरीय ड्रायव्हर्स. ESP-IDF मध्ये ESP32, ESP32-S2, ESP32-C3, साठी ड्रायव्हर्स समाविष्ट आहेत.
आणि इतर चिप्स. या ड्रायव्हर्समध्ये पेरिफेरल लो लेव्हल (LL) लायब्ररी, हार्डवेअर ॲब्स्ट्रॅक्शन लेयर (HAL) लायब्ररी, RTOS सपोर्ट आणि अप्पर-लेयर ड्रायव्हर सॉफ्टवेअर इ. · आवश्यक घटक समाविष्ट आहेत. ESP-IDF IoT विकासासाठी आवश्यक मूलभूत घटक समाविष्ट करते. यामध्ये HTTP आणि MQTT सारखे एकाधिक नेटवर्क प्रोटोकॉल स्टॅक, डायनॅमिक फ्रिक्वेन्सी मॉड्युलेशनसह पॉवर मॅनेजमेंट फ्रेमवर्क आणि फ्लॅश एनक्रिप्शन आणि सिक्योर बूट इत्यादी वैशिष्ट्ये समाविष्ट आहेत. · विकास आणि उत्पादन साधने. ईएसपी-आयडीएफ विकास आणि मोठ्या प्रमाणात उत्पादनादरम्यान बिल्डिंग, फ्लॅश आणि डीबगिंगसाठी सामान्यतः वापरलेली साधने प्रदान करते (आकृती 4.1 पहा), जसे की सीमेकवर आधारित बिल्डिंग सिस्टम, जीसीसीवर आधारित क्रॉस-कंपिलेशन टूल चेन आणि जे.TAG OpenOCD, इ. वर आधारित डीबगिंग साधन. हे लक्षात घेण्यासारखे आहे की ESP-IDF कोड प्रामुख्याने Apache 2.0 मुक्त-स्रोत परवान्याचे पालन करतो. मुक्त-स्रोत परवान्याच्या अटींचे पालन करताना वापरकर्ते निर्बंधांशिवाय वैयक्तिक किंवा व्यावसायिक सॉफ्टवेअर विकसित करू शकतात. याव्यतिरिक्त, वापरकर्त्यांना कायमस्वरूपी पेटंट परवाने विनामूल्य दिले जातात, स्त्रोत कोडमध्ये कोणतेही बदल न करता ओपन-सोर्सच्या बंधनाशिवाय.
31

आकृती 4.1.

बिल्डिंग, फ्लॅशिंग आणि डीबग-

विकास आणि मोठ्या प्रमाणात उत्पादनासाठी ging टूल्स

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

तक्ता 4.1. Espressif चिप्ससाठी विविध ESP-IDF आवृत्त्यांची समर्थन स्थिती

मालिका ESP32 ESP32-S2 ESP32-C3 ESP32-S3 ESP32-C2 ESP32-H2

v4.1 समर्थित

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

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

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

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

32 ESP32-C3 वायरलेस साहस: IoT साठी एक व्यापक मार्गदर्शक

मुख्य आवृत्त्यांच्या पुनरावृत्तीमध्ये फ्रेमवर्क स्ट्रक्चरमध्ये समायोजन आणि संकलन प्रणालीमध्ये अद्यतने समाविष्ट असतात. उदाample, v3.* वरून v4.* मधील प्रमुख बदल म्हणजे बिल्ड सिस्टीमचे मेक ते सीमेक पर्यंत हळूहळू स्थलांतर. दुसरीकडे, किरकोळ आवृत्त्यांच्या पुनरावृत्तीमध्ये विशेषत: नवीन वैशिष्ट्ये जोडणे किंवा नवीन चिप्ससाठी समर्थन समाविष्ट आहे.
स्थिर आवृत्त्या आणि GitHub शाखांमधील संबंध वेगळे करणे आणि समजून घेणे महत्त्वाचे आहे. v*.* किंवा v*** असे लेबल केलेल्या आवृत्त्या स्थिर आवृत्त्यांचे प्रतिनिधित्व करतात ज्यांनी Espressif द्वारे पूर्ण अंतर्गत चाचणी उत्तीर्ण केली आहे. एकदा निश्चित केल्यावर, त्याच आवृत्तीसाठी कोड, टूल चेन आणि रिलीझ दस्तऐवज अपरिवर्तित राहतात. तथापि, GitHub शाखा (उदा., प्रकाशन/v4.3 शाखा) वारंवार कोड कमिट करतात, अनेकदा दररोज. त्यामुळे, एकाच शाखेच्या अंतर्गत दोन कोड स्निपेट्स भिन्न असू शकतात, ज्यामुळे विकासकांनी त्यांचे कोड तत्परतेने अपडेट करणे आवश्यक आहे.
4.1.2 ESP-IDF Git वर्कफ्लो
एस्प्रेसिफ ईएसपी-आयडीएफसाठी विशिष्ट गिट वर्कफ्लोचे अनुसरण करते, खालीलप्रमाणे वर्णन केले आहे:
· मुख्य विकास शाखा म्हणून काम करणाऱ्या मुख्य शाखेत नवीन बदल केले जातात. मास्टर ब्रँचवरील ESP-IDF आवृत्ती नेहमी -dev असते tag ते सध्या विकासाधीन आहे हे सूचित करण्यासाठी, जसे की v4.3-dev. मुख्य शाखेतील बदल प्रथम पुन्हा केले जातीलviewed आणि Espressif च्या अंतर्गत भांडारात चाचणी केली आणि नंतर स्वयंचलित चाचणी पूर्ण झाल्यानंतर GitHub वर ढकलले.
· नवीन आवृत्तीने मास्टर ब्रँचवर फीचर डेव्हलपमेंट पूर्ण केल्यावर आणि बीटा टेस्टिंगमध्ये प्रवेश करण्याचे निकष पूर्ण केल्यावर, ते नवीन शाखेत बदलते, जसे की रिलीज/ v4.3. याशिवाय ही नवीन शाखा आहे tagged एक प्री-रिलीझ आवृत्ती, जसे की v4.3-beta1. शाखांच्या संपूर्ण यादीत प्रवेश करण्यासाठी विकसक गिटहब प्लॅटफॉर्मचा संदर्भ घेऊ शकतात आणि tags ESP-IDF साठी. हे लक्षात घेणे महत्त्वाचे आहे की बीटा आवृत्ती (प्री-रिलीझ आवृत्ती) मध्ये अद्याप ज्ञात समस्यांची लक्षणीय संख्या असू शकते. बीटा आवृत्तीची सतत चाचणी होत असल्याने, या आवृत्तीत आणि मुख्य शाखेत एकाच वेळी दोष निराकरणे जोडली जातात. दरम्यान, मुख्य शाखेने पुढील आवृत्तीसाठी नवीन वैशिष्ट्ये विकसित करण्यास आधीच सुरुवात केली असेल. जेव्हा चाचणी जवळजवळ पूर्ण होते, तेव्हा शाखेत रिलीझ उमेदवार (rc) लेबल जोडले जाते, हे सूचित करते की ते अधिकृत प्रकाशनासाठी संभाव्य उमेदवार आहे, जसे की 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 आवृत्ती किंवा तिची सुधारित आवृत्ती निवडण्याचा सल्ला दिला जातो, जी माजी सह संरेखित होतेample आवृत्ती या पुस्तकात वापरली आहे.
· मोठ्या प्रमाणात उत्पादनाच्या उद्देशाने, सर्वात अद्ययावत तांत्रिक समर्थनाचा लाभ घेण्यासाठी नवीनतम स्थिर आवृत्ती वापरण्याची शिफारस केली जाते.
· तुमचा नवीन चिप्सचा प्रयोग किंवा नवीन उत्पादन वैशिष्ट्ये एक्सप्लोर करण्याचा विचार असल्यास, कृपया मास्टर शाखा वापरा. नवीनतम आवृत्तीमध्ये सर्व नवीनतम वैशिष्ट्ये आहेत, परंतु लक्षात ठेवा की तेथे ज्ञात किंवा अज्ञात बग असू शकतात.
· वापरल्या जाणाऱ्या स्थिर आवृत्तीमध्ये इच्छित नवीन वैशिष्ट्यांचा समावेश नसल्यास आणि आपण मास्टर शाखेशी संबंधित जोखीम कमी करू इच्छित असल्यास, संबंधित प्रकाशन शाखा वापरण्याचा विचार करा, जसे की रिलीज/v4.4 शाखा. Espressif चे GitHub रेपॉजिटरी प्रथम प्रकाशन/v4.4 शाखा तयार करेल आणि त्यानंतर सर्व वैशिष्ट्यांचा विकास आणि चाचणी पूर्ण केल्यानंतर या शाखेच्या विशिष्ट ऐतिहासिक स्नॅपशॉटवर आधारित स्थिर v4.4 आवृत्ती जारी करेल.
4.1.4 ओव्हरview ESP-IDF SDK निर्देशिका
ESP-IDF SDK मध्ये दोन मुख्य निर्देशिका असतात: esp-idf आणि .espressif. पूर्वीच्या मध्ये ESP-IDF भांडाराचा स्त्रोत कोड आहे files आणि संकलन स्क्रिप्ट, तर नंतरचे मुख्यतः संकलन साधन साखळी आणि इतर सॉफ्टवेअर संग्रहित करते. या दोन डिरेक्टरीजची ओळख विकासकांना उपलब्ध संसाधनांचा अधिक चांगला वापर करण्यास आणि विकास प्रक्रियेला गती देण्यास मदत करेल. ESP-IDF ची निर्देशिका रचना खाली वर्णन केली आहे:
(1) ESP-IDF रेपॉजिटरी कोड निर्देशिका (/esp/esp-idf), आकृती 4.2 मध्ये दाखवल्याप्रमाणे.
a घटक निर्देशिका घटक
ही कोर निर्देशिका ESP-IDF चे अनेक आवश्यक सॉफ्टवेअर घटक एकत्रित करते. या निर्देशिकेतील घटकांवर अवलंबून न राहता कोणताही प्रकल्प कोड संकलित केला जाऊ शकत नाही. यामध्ये विविध एस्प्रेसिफ चिप्ससाठी ड्रायव्हर समर्थन समाविष्ट आहे. एलएल लायब्ररी आणि एचएएल लायब्ररी इंटरफेस पासून परिधीयांसाठी उच्च-स्तरीय ड्रायव्हर आणि आभासी File प्रणाली (VFS) स्तर समर्थन, विकासक त्यांच्या विकासाच्या गरजांसाठी विविध स्तरांवर योग्य घटक निवडू शकतात. ESP-IDF TCP/IP, HTTP, MQTT, सारख्या एकाधिक मानक नेटवर्क प्रोटोकॉल स्टॅकला देखील समर्थन देते. Webसॉकेट इ. डेव्हलपर नेटवर्क ऍप्लिकेशन्स तयार करण्यासाठी सॉकेट सारख्या परिचित इंटरफेसचा वापर करू शकतात. घटक समजून देतात-
34 ESP32-C3 वायरलेस साहस: IoT साठी एक व्यापक मार्गदर्शक

आकृती 4.2. ESP-IDF रेपॉजिटरी कोड निर्देशिका
sive कार्यक्षमता आणि अनुप्रयोगांमध्ये सहजपणे समाकलित केले जाऊ शकते, विकासकांना पूर्णपणे व्यवसाय तर्कावर लक्ष केंद्रित करण्यास अनुमती देते. काही सामान्य घटकांमध्ये हे समाविष्ट आहे: · ड्रायव्हर: या घटकामध्ये विविध Espressif साठी परिधीय ड्रायव्हर प्रोग्राम समाविष्ट आहेत
चिप मालिका, जसे की GPIO, I2C, SPI, UART, LEDC (PWM), इ. या घटकातील पेरिफेरल ड्रायव्हर प्रोग्राम्स चिप-स्वतंत्र अमूर्त इंटरफेस देतात. प्रत्येक परिधीय एक सामान्य शीर्षलेख आहे file (जसे की gpio.h), विविध चिप-विशिष्ट समर्थन प्रश्नांना सामोरे जाण्याची गरज दूर करते. · esp_wifi: वाय-फाय, एक विशेष परिधीय म्हणून, एक वेगळा घटक मानला जातो. यामध्ये विविध वाय-फाय ड्रायव्हर मोडचे आरंभीकरण, पॅरामीटर कॉन्फिगरेशन आणि इव्हेंट प्रक्रिया यासारख्या एकाधिक API समाविष्ट आहेत. या घटकाची काही कार्ये स्टॅटिक लिंक लायब्ररीच्या स्वरूपात प्रदान केली जातात. ESP-IDF वापरण्यास सुलभतेसाठी सर्वसमावेशक ड्रायव्हर दस्तऐवजीकरण देखील प्रदान करते.
धडा 4. विकास पर्यावरण सेट अप करणे 35

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

उदाample, माजीamples in usb/host फक्त USB होस्ट हार्डवेअर (जसे की ESP32-S3) असलेल्या पेरिफेरलसाठी लागू आहे, आणि ESP32-C3 मध्ये हे परिधीय नाही. लक्ष्य सेट करताना संकलन प्रणाली विशेषत: प्रॉम्प्ट प्रदान करते. README file प्रत्येक माजीample समर्थित चिप्सची यादी करते. · प्रोटोकॉल: या उप-डिरेक्टरीमध्ये उदाampएमक्यूटीटी, एचटीटीपी, एचटीटीपी सर्व्हर, पीपीपीओएस, मॉडबस, एमडीएनएस, एसएनटीपी यासह विविध कम्युनिकेशन प्रोटोकॉलसाठी लेस, संप्रेषण प्रोटोकॉलची विस्तृत श्रेणी व्यापतेampIoT विकासासाठी आवश्यक आहे. · तरतूद करणे: येथे, तुम्हाला प्रोव्हिजनिंग एक्सampविविध पद्धतींसाठी, जसे की वाय-फाय तरतूद आणि ब्लूटूथ LE तरतूद. · सिस्टम: या उप-डिरेक्टरीमध्ये सिस्टम डीबगिंग समाविष्ट आहेamples (उदा. स्टॅक ट्रेसिंग, रनटाइम ट्रेसिंग, टास्क मॉनिटरिंग), पॉवर मॅनेजमेंट उदाamples (उदा., विविध स्लीप मोड, को-प्रोसेसर), आणि माजीampकन्सोल टर्मिनल, इव्हेंट लूप आणि सिस्टम टाइमर सारख्या सामान्य सिस्टम घटकांशी संबंधित. · स्टोरेज: या उप-डिरेक्टरीमध्ये, तुम्हाला एक्सampसर्व काही file ESP-IDF (जसे की फ्लॅश, SD कार्ड आणि इतर स्टोरेज मीडियाचे वाचन आणि लेखन) द्वारे समर्थित प्रणाली आणि स्टोरेज यंत्रणा, तसेच माजीamples of non-volatile store (NVS), FatFS, SPIFFS आणि इतर file सिस्टम ऑपरेशन्स. · सुरक्षा: या उप-डिरेक्टरीमध्ये उदाampफ्लॅश एनक्रिप्शनशी संबंधित. (2) ESP-IDF संकलन साधन साखळी निर्देशिका (/.espressif), आकृती 4.3 मध्ये दर्शविल्याप्रमाणे.
आकृती 4.3. ESP-IDF संकलन साधन साखळी निर्देशिका
धडा 4. विकास पर्यावरण सेट अप करणे 37

a सॉफ्टवेअर वितरण निर्देशिका जि
ESP-IDF टूल चेन आणि इतर सॉफ्टवेअर कॉम्प्रेस्ड पॅकेजेसच्या स्वरूपात वितरित केले जातात. इंस्टॉलेशन प्रक्रियेदरम्यान, इंस्टॉलेशन टूल प्रथम कॉम्प्रेस केलेले पॅकेज डिस्ट डिरेक्टरीमध्ये डाउनलोड करते, आणि नंतर ते निर्दिष्ट निर्देशिकेमध्ये काढते. स्थापना पूर्ण झाल्यावर, या निर्देशिकेतील सामग्री सुरक्षितपणे काढली जाऊ शकते.
b Python आभासी वातावरण निर्देशिका python env
ESP-IDF च्या विविध आवृत्त्या Python पॅकेजेसच्या विशिष्ट आवृत्त्यांवर अवलंबून असतात. ही पॅकेजेस एकाच होस्टवर थेट स्थापित केल्याने पॅकेज आवृत्त्यांमध्ये संघर्ष होऊ शकतो. याचे निराकरण करण्यासाठी, ESP-IDF विविध पॅकेज आवृत्त्या वेगळे करण्यासाठी Python आभासी वातावरणाचा वापर करते. या यंत्रणेसह, विकासक एकाच होस्टवर ESP-IDF च्या अनेक आवृत्त्या स्थापित करू शकतात आणि भिन्न पर्यावरणीय चल आयात करून त्यांच्यामध्ये सहजपणे स्विच करू शकतात.
c ESP-IDF संकलन साधन साखळी निर्देशिका साधने
या निर्देशिकेत मुख्यतः ईएसपी-आयडीएफ प्रकल्प संकलित करण्यासाठी आवश्यक क्रॉस-कंपीलेशन साधने समाविष्ट आहेत, जसे की सीमेक टूल्स, निन्जा बिल्ड टूल्स आणि जीसीसी टूल चेन जी अंतिम एक्झिक्युटेबल प्रोग्राम तयार करते. याव्यतिरिक्त, या निर्देशिकेत संबंधित शीर्षलेखासह C/C++ भाषेची मानक लायब्ररी आहे. files जर प्रोग्राम सिस्टम हेडरचा संदर्भ देत असेल file जसे #समाविष्ट करा , संकलन साधन साखळी stdio.h शोधेल file या निर्देशिकेत.
4.2 ESP-IDF विकास पर्यावरण सेट अप करणे
ESP-IDF विकास वातावरण विंडोज, लिनक्स आणि मॅकओएस सारख्या मुख्य प्रवाहातील ऑपरेटिंग सिस्टमला समर्थन देते. हा विभाग प्रत्येक सिस्टीमवर विकासाचे वातावरण कसे सेट करायचे ते सादर करेल. लिनक्स सिस्टीमवर ESP32-C3 विकसित करण्याची शिफारस केली जाते, जी येथे तपशीलवार सादर केली जाईल. विकास साधनांच्या समानतेमुळे अनेक सूचना प्लॅटफॉर्मवर लागू होतात. म्हणून, या विभागातील मजकूर काळजीपूर्वक वाचण्याचा सल्ला दिला जातो.
टीप तुम्ही https://bookc3.espressif.com/esp32c3 येथे उपलब्ध ऑनलाइन दस्तऐवजांचा संदर्भ घेऊ शकता, जे या विभागात नमूद केलेल्या आज्ञा प्रदान करतात.
4.2.1 Linux वर ESP-IDF विकास वातावरण सेट करणे
ESP-IDF डेव्हलपमेंट वातावरणासाठी आवश्यक असलेली GNU डेव्हलपमेंट आणि डीबगिंग साधने ही लिनक्स प्रणालीची मूळ आहेत. याव्यतिरिक्त, लिनक्समधील कमांड-लाइन टर्मिनल शक्तिशाली आणि वापरकर्त्यासाठी अनुकूल आहे, ज्यामुळे ते 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 log कमांड वापरू शकता view ESP-IDF च्या निर्मितीपासून कोडमधील सर्व बदल. याव्यतिरिक्त, Git चा वापर ESP-IDF मध्ये आवृत्ती माहितीची पुष्टी करण्यासाठी देखील केला जातो, जी विशिष्ट आवृत्त्यांशी संबंधित योग्य टूल चेन स्थापित करण्यासाठी आवश्यक आहे. Git सोबत, इतर महत्वाच्या सिस्टम टूल्समध्ये Python समाविष्ट आहे. ESP-IDF मध्ये Python मध्ये लिहिलेल्या असंख्य ऑटोमेशन स्क्रिप्ट समाविष्ट आहेत. CMake, Ninja-build आणि Ccache सारखी साधने C/C++ प्रकल्पांमध्ये मोठ्या प्रमाणावर वापरली जातात आणि ESP-IDF मध्ये डीफॉल्ट कोड संकलन आणि बिल्डिंग टूल्स म्हणून काम करतात. libusb-1.0-0 आणि dfu-util हे USB सीरियल कम्युनिकेशन आणि फर्मवेअर बर्निंगसाठी वापरले जाणारे मुख्य ड्रायव्हर्स आहेत. सॉफ्टवेअर पॅकेजेस इन्स्टॉल झाल्यावर, तुम्ही apt show वापरू शकता प्रत्येक पॅकेजचे तपशीलवार वर्णन मिळविण्यासाठी आदेश. उदाample, Git टूलसाठी वर्णन माहिती प्रिंट करण्यासाठी apt show git वापरा.
प्रश्न: पायथन आवृत्ती समर्थित नसल्यास काय करावे? A: ESP-IDF v4.3 ला पायथन आवृत्ती आवश्यक आहे जी v3.6 पेक्षा कमी नाही. उबंटूच्या जुन्या आवृत्त्यांसाठी, कृपया पायथनची उच्च आवृत्ती व्यक्तिचलितपणे डाउनलोड आणि स्थापित करा आणि पायथन 3 ला डीफॉल्ट पायथन वातावरण म्हणून सेट करा. आपण कीवर्ड अपडेट-अल्टरनेटिव्ह पायथन शोधून तपशीलवार सूचना शोधू शकता.
2. ESP-IDF रेपॉजिटरी कोड डाउनलोड करा
टर्मिनल उघडा आणि mkdir कमांड वापरून तुमच्या होम डिरेक्टरीमध्ये esp नावाचे फोल्डर तयार करा. तुम्ही इच्छित असल्यास तुम्ही फोल्डरसाठी वेगळे नाव निवडू शकता. फोल्डर प्रविष्ट करण्यासाठी cd कमांड वापरा.
धडा 4. विकास पर्यावरण सेट अप करणे 39

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

· ऑफलाइन ESP-IDF टूल्स इंस्टॉलर हा इंस्टॉलर मोठा आहे, सुमारे 1 GB आकारमानाचा आहे आणि त्यात पर्यावरण सेटअपसाठी आवश्यक असलेले सर्व सॉफ्टवेअर पॅकेजेस आणि कोड आहेत. मुख्य advantagऑफलाइन इंस्टॉलरचे e हे आहे की ते इंटरनेट प्रवेशाशिवाय संगणकांवर वापरले जाऊ शकते आणि सामान्यत: उच्च प्रतिष्ठापन यश दर आहे. हे नोंद घ्यावे की ऑफलाइन इंस्टॉलर केवळ v*.* किंवा v** द्वारे ओळखल्या जाणाऱ्या ESP-IDF चे स्थिर प्रकाशन स्थापित करू शकतो.
2. इंस्टॉलरची योग्य आवृत्ती डाऊनलोड केल्यानंतर ESP-IDF टूल्स इंस्टॉलर चालवा (पूर्व साठी ESP-IDF टूल्स ऑफलाइन 4.3.2 घ्याample येथे), exe वर डबल-क्लिक करा file ESP-IDF इंस्टॉलेशन इंटरफेस लाँच करण्यासाठी. ऑफलाइन इंस्टॉलर वापरून ईएसपी-आयडीएफ स्थिर आवृत्ती v4.3.2 कशी स्थापित करावी हे खालील दाखवते.
(1) आकृती 4.4 मध्ये दर्शविलेल्या "इन्स्टॉलेशन भाषा निवडा" इंटरफेसमध्ये, ड्रॉप-डाउन सूचीमधून वापरायची भाषा निवडा.
आकृती 4.4. “इन्स्टॉलेशन भाषा निवडा” इंटरफेस (2) भाषा निवडल्यानंतर, “परवाना करार” इंटरफेस पॉप अप करण्यासाठी “ओके” वर क्लिक करा
(आकृती 4.5 पहा). प्रतिष्ठापन परवाना करार काळजीपूर्वक वाचल्यानंतर, “मी करार स्वीकारतो” निवडा आणि “पुढील” क्लिक करा.
आकृती 4.5. "परवाना करार" इंटरफेस धडा 4. विकास पर्यावरण सेट अप करणे 41

(३) रेview “प्री-इंस्टॉलेशन सिस्टम चेक” इंटरफेसमधील सिस्टम कॉन्फिगरेशन (आकृती 4.6 पहा). विंडोज आवृत्ती आणि स्थापित अँटीव्हायरस सॉफ्टवेअर माहिती तपासा. सर्व कॉन्फिगरेशन आयटम सामान्य असल्यास "पुढील" क्लिक करा. अन्यथा, मुख्य आयटमवर आधारित उपायांसाठी तुम्ही "पूर्ण लॉग" वर क्लिक करू शकता.
आकृती 4.6. "इंस्टॉलेशनपूर्वी सिस्टम तपासा" इंटरफेस टिप्स
तुम्ही मदतीसाठी https://github.com/espressif/idf-installer/issues वर लॉग सबमिट करू शकता. (4) ESP-IDF प्रतिष्ठापन निर्देशिका निवडा. येथे दाखवल्याप्रमाणे 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) इंस्टॉलेशन पूर्ण झाल्यानंतर, “ESP-IDF नोंदणी करा” तपासण्याची शिफारस केली जाते.
अँटीव्हायरस सॉफ्टवेअर हटवण्यापासून रोखण्यासाठी टूल्स एक्झिक्यूटेबल Windows Defender exclusions…” files अपवर्जन आयटम जोडणे देखील अँटीव्हायरसद्वारे वारंवार स्कॅन करणे वगळू शकते
धडा 4. विकास पर्यावरण सेट अप करणे 43

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

आकृती 4.12. विकास वातावरण स्थापित
आकृती 4.13. ESP-IDF 4.3 CMD
4.2.3 Mac वर ESP-IDF विकास पर्यावरण सेट करणे
Mac सिस्टीमवर ESP-IDF डेव्हलपमेंट एन्व्हायर्नमेंट इन्स्टॉल करण्याची प्रक्रिया Linux सिस्टीम प्रमाणेच असते. रेपॉजिटरी कोड डाउनलोड करण्यासाठी आणि टूल चेन स्थापित करण्यासाठी आज्ञा अगदी समान आहेत. अवलंबित्व पॅकेजेस स्थापित करण्यासाठी फक्त आदेश थोडे वेगळे आहेत. 1. अवलंबित्व पॅकेजेस स्थापित करा टर्मिनल उघडा, आणि खालील आदेश चालवून, पायथन पॅकेज व्यवस्थापन साधन, pip स्थापित करा:
% sudo सोपे स्थापित pip
खालील आदेश चालवून होमब्रू, macOS साठी पॅकेज व्यवस्थापन साधन स्थापित करा:
% /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ HEAD/install.sh)”
खालील आदेश चालवून आवश्यक अवलंबित्व पॅकेजेस स्थापित करा:
% brew python3 install cmake ninja ccache dfu-util
2. ESP-IDF रेपॉजिटरी कोड डाउनलोड करा ESP-IDF रेपॉजिटरी कोड डाउनलोड करण्यासाठी विभाग 4.2.1 मध्ये दिलेल्या सूचनांचे अनुसरण करा. लिनक्स सिस्टमवर डाऊनलोड करण्यासाठी पायऱ्या सारख्याच आहेत.
धडा 4. विकास पर्यावरण सेट अप करणे 45

3. ESP-IDF डेव्हलपमेंट टूल चेन स्थापित करा
ESP-IDF डेव्हलपमेंट टूल चेन स्थापित करण्यासाठी विभाग 4.2.1 मध्ये दिलेल्या सूचनांचे अनुसरण करा. लिनक्स सिस्टीमवर इन्स्टॉलेशनसाठी पायऱ्या सारख्याच आहेत.
4.2.4 VS कोड स्थापित करणे
डीफॉल्टनुसार, ESP-IDF SDK मध्ये कोड संपादन साधन समाविष्ट नाही (जरी Windows साठी नवीनतम ESP-IDF इंस्टॉलर ESP-IDF Eclipse इंस्टॉल करण्याचा पर्याय देते). कोड संपादित करण्यासाठी तुम्ही तुमच्या आवडीचे कोणतेही मजकूर संपादन साधन वापरू शकता आणि नंतर टर्मिनल कमांड वापरून ते संकलित करू शकता.
एक लोकप्रिय कोड संपादन साधन म्हणजे व्हीएस कोड (व्हिज्युअल स्टुडिओ कोड), जे वापरकर्ता-अनुकूल इंटरफेससह विनामूल्य आणि वैशिष्ट्यपूर्ण कोड संपादक आहे. हे विविध ऑफर देते plugins जे कोड नेव्हिगेशन, सिंटॅक्स हायलाइटिंग, Git आवृत्ती नियंत्रण आणि टर्मिनल इंटिग्रेशन यांसारख्या कार्यक्षमता प्रदान करतात. याव्यतिरिक्त, Espressif ने VS कोडसाठी Espressif IDF नावाचे समर्पित प्लगइन विकसित केले आहे, जे प्रोजेक्ट कॉन्फिगरेशन आणि डीबगिंग सुलभ करते.
VS कोडमधील वर्तमान फोल्डर द्रुतपणे उघडण्यासाठी तुम्ही टर्मिनलमधील कोड कमांड वापरू शकता. वैकल्पिकरित्या, तुम्ही VS कोडमध्ये सिस्टमचे डीफॉल्ट टर्मिनल कन्सोल उघडण्यासाठी शॉर्टकट Ctrl+ वापरू शकता.
टिप्स ESP32-C3 कोड डेव्हलपमेंटसाठी VS कोड वापरण्याची शिफारस केली जाते. https://code.visualstudio.com/ येथे VS कोडची नवीनतम आवृत्ती डाउनलोड आणि स्थापित करा.
4.2.5 तृतीय-पक्ष विकास पर्यावरणाचा परिचय
अधिकृत ESP-IDF विकास वातावरणाव्यतिरिक्त, जे प्रामुख्याने C भाषा वापरते, ESP32-C3 इतर मुख्य प्रवाहातील प्रोग्रामिंग भाषा आणि तृतीय-पक्ष विकास वातावरणाच्या विस्तृत श्रेणीला देखील समर्थन देते. काही उल्लेखनीय पर्यायांमध्ये हे समाविष्ट आहे:
Arduino: ESP32-C3 सह विविध मायक्रोकंट्रोलर्सना समर्थन देणारे हार्डवेअर आणि सॉफ्टवेअर दोन्हीसाठी एक मुक्त-स्रोत प्लॅटफॉर्म.
हे C++ भाषा वापरते आणि एक सरलीकृत आणि प्रमाणित API ऑफर करते, सामान्यतः Arduino भाषा म्हणून ओळखले जाते. Arduino मोठ्या प्रमाणावर प्रोटोटाइप विकास आणि शैक्षणिक संदर्भांमध्ये वापरले जाते. हे एक्स्टेंसिबल सॉफ्टवेअर पॅकेज आणि एक IDE प्रदान करते जे सहज संकलन आणि फ्लॅशिंगसाठी परवानगी देते.
मायक्रोपायथन: एम्बेडेड मायक्रोकंट्रोलर प्लॅटफॉर्मवर चालण्यासाठी डिझाइन केलेले पायथन 3 भाषा दुभाषी.
सोप्या स्क्रिप्ट भाषेसह, ते ESP32-C3 च्या परिधीय संसाधनांमध्ये (जसे की UART, SPI आणि I2C) आणि संप्रेषण कार्ये (जसे की वाय-फाय आणि ब्लूटूथ LE) मध्ये थेट प्रवेश करू शकते.
46 ESP32-C3 वायरलेस साहस: IoT साठी एक व्यापक मार्गदर्शक

हे हार्डवेअर परस्परसंवाद सुलभ करते. मायक्रोपायथन, पायथनच्या विस्तृत गणितीय ऑपरेशन लायब्ररीसह एकत्रित, ESP32-C3 वर जटिल अल्गोरिदमची अंमलबजावणी सक्षम करते, AI-संबंधित अनुप्रयोगांच्या विकासास सुलभ करते. लिपी भाषा म्हणून, वारंवार संकलनाची गरज नाही; बदल केले जाऊ शकतात आणि स्क्रिप्ट थेट कार्यान्वित केल्या जाऊ शकतात.
NodeMCU: ESP मालिका चिप्ससाठी विकसित केलेला LUA भाषा दुभाषी.
हे ESP चिप्सच्या जवळजवळ सर्व परिधीय कार्यांना समर्थन देते आणि मायक्रोपायथॉनपेक्षा हलके आहे. MicroPython प्रमाणेच, NodeMCU स्क्रिप्ट भाषा वापरते, वारंवार संकलनाची गरज दूर करते.
शिवाय, ESP32-C3 देखील NuttX आणि Zephyr ऑपरेटिंग सिस्टमला समर्थन देते. NuttX ही एक रिअल-टाइम ऑपरेटिंग सिस्टम आहे जी POSIX-सुसंगत इंटरफेस प्रदान करते, अनुप्रयोग पोर्टेबिलिटी वाढवते. Zephyr ही एक लहान रिअल-टाइम ऑपरेटिंग सिस्टम आहे जी विशेषतः IoT ऍप्लिकेशन्ससाठी डिझाइन केलेली आहे. यामध्ये IoT विकासासाठी आवश्यक असलेल्या असंख्य सॉफ्टवेअर लायब्ररींचा समावेश आहे, हळूहळू सर्वसमावेशक सॉफ्टवेअर इकोसिस्टममध्ये विकसित होत आहे.
हे पुस्तक वर नमूद केलेल्या विकास वातावरणासाठी तपशीलवार स्थापना सूचना प्रदान करत नाही. संबंधित कागदपत्रे आणि सूचनांचे पालन करून तुम्ही तुमच्या गरजांवर आधारित विकास वातावरण स्थापित करू शकता.
4.3 ESP-IDF संकलन प्रणाली
4.3.1 संकलन प्रणालीच्या मूलभूत संकल्पना
ईएसपी-आयडीएफ प्रकल्प हा एंट्री फंक्शन आणि एकाधिक स्वतंत्र कार्यात्मक घटकांसह मुख्य प्रोग्रामचा संग्रह आहे. उदाample, LED स्विचेस नियंत्रित करणाऱ्या प्रकल्पामध्ये मुख्यतः एंट्री प्रोग्राम मेन आणि GPIO नियंत्रित करणारा ड्रायव्हर घटक असतो. जर तुम्हाला LED रिमोट कंट्रोलचा अनुभव घ्यायचा असेल तर तुम्हाला वाय-फाय, टीसीपी/आयपी प्रोटोकॉल स्टॅक इ. देखील जोडणे आवश्यक आहे.
संकलन प्रणाली संकलित, दुवा आणि एक्झिक्युटेबल जनरेट करू शकते fileबिल्डिंग नियमांच्या संचाद्वारे कोडसाठी s (.bin). ESP-IDF v4.0 आणि वरील आवृत्त्यांची संकलन प्रणाली डीफॉल्टनुसार CMake वर आधारित आहे आणि संकलित स्क्रिप्ट CMakeLists.txt कोडचे संकलन वर्तन नियंत्रित करण्यासाठी वापरली जाऊ शकते. CMake च्या मूलभूत वाक्यरचनाला समर्थन देण्याव्यतिरिक्त, ESP-IDF संकलन प्रणाली डीफॉल्ट संकलन नियम आणि CMake फंक्शन्सचा एक संच देखील परिभाषित करते आणि तुम्ही साध्या विधानांसह संकलन स्क्रिप्ट लिहू शकता.
4.3.2 प्रकल्प File रचना
प्रोजेक्ट एक फोल्डर आहे ज्यामध्ये एंट्री प्रोग्राम मुख्य, वापरकर्ता-परिभाषित घटक आणि fileएक्झिक्युटेबल ऍप्लिकेशन्स तयार करण्यासाठी आवश्यक आहे, जसे की संकलन स्क्रिप्ट्स, कॉन्फिगरेशन
धडा 4. विकास पर्यावरण सेट अप करणे 47

files, विभाजन तक्ते इ. प्रकल्प कॉपी आणि पास केले जाऊ शकतात आणि तेच एक्झिक्युटेबल file ESP-IDF विकास वातावरणाच्या समान आवृत्तीसह मशीनमध्ये संकलित आणि व्युत्पन्न केले जाऊ शकते. एक सामान्य ESP-IDF प्रकल्प file रचना आकृती 4.14 मध्ये दर्शविली आहे.
आकृती 4.14. ठराविक ESP-IDF प्रकल्प file रचना ESP-IDF, ESP32, ESP32-S मालिका, ESP32-C मालिका, ESP32-H मालिका, इत्यादींसह Espressif कडील एकाधिक IoT चिप्सला समर्थन देत असल्याने, कोड संकलित करण्यापूर्वी लक्ष्य निश्चित करणे आवश्यक आहे. लक्ष्य हे दोन्ही हार्डवेअर उपकरण आहे जे ऍप्लिकेशन प्रोग्राम चालवते आणि संकलन प्रणालीचे बिल्ड लक्ष्य आहे. तुमच्या गरजेनुसार, तुम्ही तुमच्या प्रकल्पासाठी एक किंवा अधिक लक्ष्ये निर्दिष्ट करू शकता. उदाample, idf.py सेट-लक्ष्य esp32c3 कमांडद्वारे, तुम्ही संकलन लक्ष्य ESP32-C3 वर सेट करू शकता, ज्या दरम्यान ESP32C3 साठी डीफॉल्ट पॅरामीटर्स आणि संकलन साधन साखळी मार्ग लोड केला जाईल. संकलनानंतर, ESP32C3 साठी एक एक्झिक्यूटेबल प्रोग्राम तयार केला जाऊ शकतो. वेगळे लक्ष्य सेट करण्यासाठी तुम्ही कमांड सेट-टार्गेट पुन्हा चालवू शकता आणि संकलन प्रणाली आपोआप साफ होईल आणि पुन्हा कॉन्फिगर करेल. घटक
ESP-IDF मधील घटक हे संकलन प्रणालीमध्ये व्यवस्थापित केलेले मॉड्यूलर आणि स्वतंत्र कोड युनिट्स आहेत. ते फोल्डर म्हणून आयोजित केले जातात, फोल्डरचे नाव डीफॉल्टनुसार घटकाचे नाव दर्शवते. प्रत्येक घटकाची स्वतःची संकलन स्क्रिप्ट असते जी 48 ESP32-C3 वायरलेस ॲडव्हेंचर: A Comprehensive Guide to IoT

त्याचे संकलन पॅरामीटर्स आणि अवलंबित्व निर्दिष्ट करते. संकलन प्रक्रियेदरम्यान, घटक स्वतंत्र स्थिर ग्रंथालयांमध्ये संकलित केले जातात (.a files) आणि अखेरीस अनुप्रयोग कार्यक्रम तयार करण्यासाठी इतर घटकांसह एकत्रित केले.
ESP-IDF घटकांच्या स्वरूपात ऑपरेटिंग सिस्टम, परिधीय ड्रायव्हर्स आणि नेटवर्क प्रोटोकॉल स्टॅक यासारखी आवश्यक कार्ये प्रदान करते. हे घटक ESP-IDF रूट निर्देशिकेत असलेल्या घटक निर्देशिकेत संग्रहित केले जातात. विकसकांना हे घटक myProject च्या घटक निर्देशिकेत कॉपी करण्याची आवश्यकता नाही. त्याऐवजी, त्यांना प्रकल्पाच्या CMakeLists.txt मध्ये या घटकांचे अवलंबित्व संबंध निर्दिष्ट करणे आवश्यक आहे file REQUIRES किंवा PRIV_REQUIRES निर्देश वापरणे. संकलन प्रणाली आपोआप आवश्यक घटक शोधून संकलित करेल.
म्हणून, myProject अंतर्गत घटक निर्देशिका आवश्यक नाही. हे केवळ प्रकल्पाचे काही सानुकूल घटक समाविष्ट करण्यासाठी वापरले जाते, जे तृतीय-पक्ष लायब्ररी किंवा वापरकर्ता-परिभाषित कोड असू शकतात. याव्यतिरिक्त, घटक ईएसपी-आयडीएफ किंवा सध्याच्या प्रकल्पाव्यतिरिक्त इतर कोणत्याही निर्देशिकेतून प्राप्त केले जाऊ शकतात, जसे की दुसऱ्या निर्देशिकेत सेव्ह केलेल्या ओपन-सोर्स प्रोजेक्टमधून. या प्रकरणात, तुम्हाला फक्त रूट डिरेक्टरी अंतर्गत CMakeLists.txt मध्ये EXTRA_COMPONENT_DIRS व्हेरिएबल सेट करून घटकाचा मार्ग जोडण्याची आवश्यकता आहे. ही निर्देशिका समान नाव असलेल्या कोणत्याही ESP-IDF घटकाला ओव्हरराइड करेल, योग्य घटक वापरल्याची खात्री करून.
एंट्री प्रोग्राम मुख्य प्रकल्पातील मुख्य डिरेक्टरी त्याचप्रमाणे आहे file इतर घटकांप्रमाणे रचना (उदा., घटक1). तथापि, त्याला विशेष महत्त्व आहे कारण हा एक अनिवार्य घटक आहे जो प्रत्येक प्रकल्पात अस्तित्वात असणे आवश्यक आहे. मुख्य निर्देशिकेत प्रोजेक्टचा सोर्स कोड आणि वापरकर्ता प्रोग्रामचा एंट्री पॉईंट असतो, विशेषत: app_main नावाचा. डीफॉल्टनुसार, वापरकर्ता प्रोग्रामची अंमलबजावणी या एंट्री पॉईंटपासून सुरू होते. मुख्य घटक देखील भिन्न आहे कारण तो शोध मार्गातील सर्व घटकांवर स्वयंचलितपणे अवलंबून असतो. म्हणून, CMakeLists.txt मधील REQUIRES किंवा PRIV_REQUIRES निर्देशांचा वापर करून अवलंबित्व स्पष्टपणे सूचित करण्याची आवश्यकता नाही file.
कॉन्फिगरेशन file प्रकल्पाच्या मूळ निर्देशिकेत कॉन्फिगरेशन आहे file sdkconfig म्हणतात, ज्यामध्ये प्रोजेक्टमधील सर्व घटकांसाठी कॉन्फिगरेशन पॅरामीटर्स असतात. sdkconfig file संकलन प्रणालीद्वारे स्वयंचलितपणे व्युत्पन्न केले जाते आणि idf.py menuconfig आदेशाद्वारे सुधारित आणि पुनर्निर्मित केले जाऊ शकते. मेन्यूकॉन्फिग पर्याय मुख्यतः प्रकल्पाच्या Kconfig.projbuild आणि घटकांच्या Kconfig मधून उद्भवतात. घटक विकासक सामान्यतः घटक लवचिक आणि कॉन्फिगर करण्यायोग्य करण्यासाठी Kconfig मध्ये कॉन्फिगरेशन आयटम जोडतात.
बिल्ड डिरेक्टरी डीफॉल्टनुसार, प्रोजेक्टमधील बिल्ड डिरेक्टरी इंटरमीडिएट स्टोअर करते files आणि fi-
धडा 4. विकास पर्यावरण सेट अप करणे 49

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

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

संकलन ESP-IDF च्या कस्टम फंक्शन idf_component_register सह, घटक संकलन स्क्रिप्टसाठी किमान आवश्यक कोड खालीलप्रमाणे आहे:

1. idf_component_register(SRCS “src1.c”

2.

INCLUDE_DIRS "समाविष्ट करा"

3.

घटक आवश्यक आहे1)

SRCS पॅरामीटर स्त्रोताची सूची प्रदान करते files घटकामध्ये, अनेक असल्यास रिक्त स्थानांद्वारे विभक्त files INCLUDE_DIRS पॅरामीटर सार्वजनिक शीर्षलेखाची सूची प्रदान करते file घटकासाठी निर्देशिका, जी सध्याच्या घटकावर अवलंबून असलेल्या इतर घटकांसाठी शोध पथ समाविष्ट करण्यासाठी जोडली जाईल. REQUIRES पॅरामीटर वर्तमान घटकासाठी सार्वजनिक घटक अवलंबित्व ओळखतो. घटकांनी ते कोणत्या घटकांवर अवलंबून आहेत हे स्पष्टपणे सांगणे आवश्यक आहे, जसे की component2 घटक1 वर अवलंबून आहे. तथापि, मुख्य घटकासाठी, जे डीफॉल्टनुसार सर्व घटकांवर अवलंबून असते, REQUIRES पॅरामीटर वगळले जाऊ शकते.

याशिवाय, मूळ CMake कमांड्स देखील संकलन स्क्रिप्टमध्ये वापरल्या जाऊ शकतात. उदाample, व्हेरिएबल्स सेट करण्यासाठी सेट कमांड वापरा, जसे की सेट(व्हेरिएबल “व्हॅल्यू”).

4.3.5 कॉमन कमांड्सचा परिचय
कोड संकलनाच्या प्रक्रियेत ESP-IDF CMake (प्रोजेक्ट कॉन्फिगरेशन टूल), निन्जा (प्रोजेक्ट बिल्डिंग टूल) आणि एस्प्टूल (फ्लॅश टूल) वापरते. प्रत्येक साधन संकलन, बिल्डिंग आणि फ्लॅश प्रक्रियेमध्ये भिन्न भूमिका बजावते आणि वेगवेगळ्या ऑपरेटिंग कमांडसचे समर्थन देखील करते. वापरकर्ता ऑपरेशन सुलभ करण्यासाठी, ESP-IDF एक युनिफाइड फ्रंट-एंड idf.py जोडते जे वरील आदेशांना त्वरित कॉल करण्यास अनुमती देते.
idf.py वापरण्यापूर्वी, याची खात्री करा:
· ESP-IDF चे पर्यावरण परिवर्तनशील IDF_PATH सध्याच्या टर्मिनलमध्ये जोडले गेले आहे. कमांड एक्झिक्यूशन डिरेक्टरी ही प्रोजेक्टची रूट डिरेक्टरी आहे, ज्यामध्ये
प्रकल्प संकलन स्क्रिप्ट CMakeLists.txt.
idf.py च्या सामान्य आज्ञा खालीलप्रमाणे आहेत:
· idf.py –help: आदेशांची सूची आणि त्यांच्या वापर सूचना प्रदर्शित करणे. · idf.py सेट-लक्ष्य : संकलन taidf.py fullcleanrget सेट करणे, जसे
बदली म्हणून esp32c3 सह. · idf.py मेनूकॉन्फिगरेशन: मेनूकॉन्फिग लाँच करणे, एक टर्मिनल ग्राफिकल कॉन्फिगरेशन
टूल, जे कॉन्फिगरेशन पर्याय निवडू किंवा सुधारू शकते आणि कॉन्फिगरेशन परिणाम sdkconfig मध्ये जतन केले जातात file. · idf.py बिल्ड: कोड संकलन सुरू करणे. मध्यंतरी files आणि संकलनाद्वारे व्युत्पन्न केलेला अंतिम एक्झिक्युटेबल प्रोग्राम डीफॉल्टनुसार प्रकल्पाच्या बिल्ड निर्देशिकेत जतन केला जाईल. संकलन प्रक्रिया वाढीव आहे, याचा अर्थ असा की जर फक्त एक स्रोत file सुधारित केले आहे, फक्त सुधारित file पुढील वेळी संकलित केले जाईल.

52 ESP32-C3 वायरलेस साहस: IoT साठी एक व्यापक मार्गदर्शक

· idf.py क्लीन: इंटरमीडिएट साफ करणे files प्रकल्प संकलन द्वारे व्युत्पन्न. पुढील संकलनात संपूर्ण प्रकल्पाचे संकलन करण्यास भाग पाडले जाईल. लक्षात ठेवा की CMake कॉन्फिगरेशन आणि मेनूकॉन्फिगरेशनद्वारे केलेले कॉन्फिगरेशन बदल क्लीनअप दरम्यान हटवले जाणार नाहीत.
· idf.py fullclean: सर्व CMake कॉन्फिगरेशन आउटपुटसह संपूर्ण बिल्ड निर्देशिका हटवणे files प्रकल्प पुन्हा तयार करताना, CMake सुरवातीपासून प्रकल्प कॉन्फिगर करेल. कृपया लक्षात घ्या की ही आज्ञा सर्व पुनरावृत्तीने हटवेल files बिल्ड डिरेक्टरीमध्ये आहे, त्यामुळे सावधगिरीने आणि प्रोजेक्ट कॉन्फिगरेशनचा वापर करा file हटवले जाणार नाही.
· idf.py फ्लॅश: एक्झिक्युटेबल प्रोग्राम बायनरी फ्लॅश करणे file लक्ष्य ESP32-C3 वर बिल्ड द्वारे व्युत्पन्न. पर्याय - पी आणि -ब अनुक्रमे फ्लॅशिंगसाठी सिरीयल पोर्टचे डिव्हाइस नाव आणि बॉड दर सेट करण्यासाठी वापरले जातात. हे दोन पर्याय निर्दिष्ट न केल्यास, सिरीयल पोर्ट स्वयंचलितपणे शोधले जाईल आणि डीफॉल्ट बॉड दर वापरला जाईल.
· idf.py मॉनिटर: लक्ष्य ESP32-C3 चे सिरीयल पोर्ट आउटपुट प्रदर्शित करणे. होस्ट-साइड सिरीयल पोर्टचे डिव्हाइस नाव निर्दिष्ट करण्यासाठी -p पर्याय वापरला जाऊ शकतो. सीरियल पोर्ट प्रिंटिंग दरम्यान, मॉनिटरमधून बाहेर पडण्यासाठी Ctrl+] की संयोजन दाबा.
आवश्यकतेनुसार वरील आज्ञा देखील एकत्र केल्या जाऊ शकतात. उदाample, कमांड idf.py बिल्ड फ्लॅश मॉनिटर कोड संकलित करेल, फ्लॅश करेल आणि क्रमाने सिरीयल पोर्ट मॉनिटर उघडेल.
ESP-IDF संकलन प्रणालीबद्दल अधिक जाणून घेण्यासाठी तुम्ही https://bookc3.espressif.com/build-system ला भेट देऊ शकता.
4.4 सराव: संकलित करणे उदाample कार्यक्रम "ब्लिंक"
4.4.1 उदाampविश्लेषण
हा विभाग ब्लिंक हा कार्यक्रम माजी म्हणून घेईलampविश्लेषण करण्यासाठी le file वास्तविक प्रकल्पाची रचना आणि कोडिंग नियम तपशीलवार. ब्लिंक प्रोग्राम एलईडी ब्लिंकिंग इफेक्ट लागू करतो आणि प्रोजेक्ट डिरेक्टरीमध्ये स्थित आहेamples/get-started/blink, ज्यामध्ये स्रोत आहे file, कॉन्फिगरेशन files, आणि अनेक संकलन स्क्रिप्ट.
या पुस्तकात सादर करण्यात आलेला स्मार्ट लाईट प्रकल्प या माजीampकार्यक्रम. शेवटी पूर्ण करण्यासाठी कार्ये हळूहळू नंतरच्या अध्यायांमध्ये जोडली जातील.
स्त्रोत कोड संपूर्ण विकास प्रक्रिया प्रदर्शित करण्यासाठी, ब्लिंक प्रोग्राम esp32c3-iot-projects/device firmware/1 blink वर कॉपी केला गेला आहे.
ब्लिंक प्रकल्पाची निर्देशिका रचना files आकृती 4.15 मध्ये दाखवले आहे.
ब्लिंक प्रोजेक्टमध्ये फक्त एक मुख्य डिरेक्टरी आहे, जो एक विशेष घटक आहे
धडा 4. विकास पर्यावरण सेट अप करणे 53

आकृती 4.15. File ब्लिंक प्रकल्पाची निर्देशिका रचना

कलम 4.3.2 मध्ये वर्णन केल्याप्रमाणे समाविष्ट करणे आवश्यक आहे. मुख्य डिरेक्ट्रीचा वापर प्रामुख्याने app_main() फंक्शनच्या अंमलबजावणीसाठी केला जातो, जो वापरकर्ता प्रोग्रामचा एंट्री पॉइंट आहे. ब्लिंक प्रोजेक्टमध्ये घटक निर्देशिकेचा समावेश नाही, कारण हे माजीample ला फक्त ESP-IDF सह येणारे घटक वापरण्याची आवश्यकता आहे आणि अतिरिक्त घटकांची आवश्यकता नाही. ब्लिंक प्रोजेक्टमध्ये समाविष्ट CMakeLists.txt चा वापर संकलन प्रक्रियेचे मार्गदर्शन करण्यासाठी केला जातो, तर Kconfig.projbuild चा वापर या माजी साठी कॉन्फिगरेशन आयटम जोडण्यासाठी केला जातोampमेनूकॉन्फिगमध्ये le प्रोग्राम. इतर अनावश्यक files कोडच्या संकलनावर परिणाम करणार नाही, म्हणून त्यांची येथे चर्चा केली जाणार नाही. ब्लिंक प्रकल्पाचा तपशीलवार परिचय files खालीलप्रमाणे आहे.

1. /*blink.c मध्ये खालील शीर्षलेख समाविष्ट आहे files*/

2. #समाविष्ट करा

// मानक सी लायब्ररी शीर्षलेख file

3. #"freertos/freeRTOS.h" //FreeRTOS मुख्य शीर्षलेख समाविष्ट करा file

4. #"freertos/task.h" समाविष्ट करा

//FreeRTOS कार्य शीर्षलेख file

5. # "sdkconfig.h" समाविष्ट करा

//कॉन्फिगरेशन शीर्षलेख file kconfig द्वारे व्युत्पन्न

6. # "driver/gpio.h" समाविष्ट करा

//GPIO ड्रायव्हर शीर्षलेख file

स्रोत file blink.c मध्ये हेडरची मालिका आहे fileकार्य घोषणाशी संबंधित आहे-

tions ESP-IDF साधारणपणे मानक लायब्ररी शीर्षलेख समाविष्ट करण्याच्या क्रमाचे अनुसरण करते files, FreeR-

TOS शीर्षलेख files, ड्रायव्हर शीर्षलेख files, इतर घटक शीर्षलेख files, आणि प्रकल्प शीर्षलेख files.

शीर्षलेख कोणत्या क्रमाने files समाविष्ट केल्याने अंतिम संकलन परिणामांवर परिणाम होऊ शकतो, म्हणून प्रयत्न करा

डीफॉल्ट नियमांचे पालन करा. हे लक्षात घ्यावे की sdkconfig.h स्वयंचलितपणे व्युत्पन्न होते

kconfig द्वारे आणि फक्त idf.py menuconfig आदेशाद्वारे कॉन्फिगर केले जाऊ शकते.

या शीर्षलेखाचे थेट बदल file अधिलिखित केले जाईल.

1. /*आपण idf.py मेनूकॉन्फिगमध्ये LED शी संबंधित GPIO निवडू शकता आणि मेनूकॉन्फिगचा बदल परिणाम म्हणजे CONFIG_BLINK चे मूल्य

_GPIO बदलले जाईल. आपण थेट मॅक्रो व्याख्या सुधारित देखील करू शकता

येथे, आणि CONFIG_BLINK_GPIO ला एका निश्चित मूल्यामध्ये बदला.*/ 2. #BLINK_GPIO CONFIG_BLINK_GPIO परिभाषित करा

3. void app_main(void)

४. {

5.

/*IO ला GPIO डीफॉल्ट फंक्शन म्हणून कॉन्फिगर करा, पुल-अप मोड सक्षम करा आणि

6.

इनपुट आणि आउटपुट मोड अक्षम करा*/

7.

gpio_reset_pin(BLINK_GPIO);

54 ESP32-C3 वायरलेस साहस: IoT साठी एक व्यापक मार्गदर्शक

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

/*GPIO ला आउटपुट मोडवर सेट करा*/ gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT); तेव्हा(1) {
/*प्रिंट लॉग*/ printf("LEDn बंद करणे"); /*एलईडी बंद करा (आउटपुट कमी पातळी)*/ gpio_set_level(BLINK_GPIO, 0); /*विलंब (1000 ms)*/ vTaskDelay(1000 / portTICK_PERIOD_MS); printf("LEDn चालू करणे"); /*एलईडी चालू करा (आउटपुट उच्च स्तर)*/ gpio_set_level(BLINK_GPIO, 1); vTaskDelay(1000 / portTICK_PERIOD_MS); }

ब्लिंक एक्स मध्ये app_main() फंक्शनample प्रोग्राम वापरकर्ता प्रोग्रामसाठी एंट्री पॉइंट म्हणून काम करतो. हे एक साधे फंक्शन आहे ज्यामध्ये कोणतेही पॅरामीटर्स नाहीत आणि रिटर्न व्हॅल्यू नाहीत. सिस्टमने इनिशिएलायझेशन पूर्ण केल्यानंतर हे फंक्शन कॉल केले जाते, ज्यामध्ये लॉग सीरियल पोर्ट सुरू करणे, सिंगल/ड्युअल कोर कॉन्फिगर करणे आणि वॉचडॉग कॉन्फिगर करणे यासारख्या कामांचा समावेश होतो.

app_main() फंक्शन मेन नावाच्या टास्कच्या संदर्भात चालते. या कार्याचा स्टॅक आकार आणि प्राधान्य मेनूकॉन्फिग कॉम्पोनंटकॉन्फिग कॉमन ESP-संबंधित मध्ये समायोजित केले जाऊ शकते.

LED ब्लिंक करण्यासारख्या सोप्या कामांसाठी, सर्व आवश्यक कोड थेट app_main() फंक्शनमध्ये लागू केले जाऊ शकतात. यामध्ये सामान्यतः LED शी संबंधित GPIO सुरू करणे आणि LED चालू आणि बंद करण्यासाठी थोडा वेळ(1) लूप वापरणे समाविष्ट असते. वैकल्पिकरित्या, LED ब्लिंकिंग हाताळणारे नवीन कार्य तयार करण्यासाठी तुम्ही FreeRTOS API वापरू शकता. एकदा नवीन कार्य यशस्वीरित्या तयार झाल्यानंतर, तुम्ही app_main() फंक्शनमधून बाहेर पडू शकता.

main/CMakeLists.txt ची सामग्री file, जे मुख्य घटकासाठी संकलन प्रक्रियेचे मार्गदर्शन करते, खालीलप्रमाणे आहे:

1. idf_component_register(SRCS “blink.c” INCLUDE_DIRS “.” )

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

धडा 4. विकास पर्यावरण सेट अप करणे 55

5. समाविष्ट करा($ENV{IDF_PATH}/tools/cmake/project.cmake) 6. #“ब्लिंक” नावाचा प्रकल्प तयार करा 7. प्रकल्प(myProject)
त्यापैकी, मूळ निर्देशिकेतील CMakeLists.txt मध्ये प्रामुख्याने $ENV{IDF_ PATH}/tools/cmake/project.cmake समाविष्ट आहे, जे मुख्य CMake कॉन्फिगरेशन आहे file ESP-IDF द्वारे प्रदान केलेले. हे फसवणूक करण्यासाठी वापरले जाते

कागदपत्रे / संसाधने

एस्प्रेसिफ सिस्टम्स ESP32-C3 वायरलेस ॲडव्हेंचर [pdf] वापरकर्ता मार्गदर्शक
ESP32-C3 वायरलेस ॲडव्हेंचर, ESP32-C3, वायरलेस ॲडव्हेंचर, ॲडव्हेंचर

संदर्भ

एक टिप्पणी द्या

तुमचा ईमेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित आहेत *