સામગ્રી છુપાવો
2 ESP32-C3 વાયરલેસ એડવેન્ચર
2.1 IoT માટે વ્યાપક માર્ગદર્શિકા

ESP32-C3 વાયરલેસ એડવેન્ચર

ESP32-C3 વાયરલેસ એડવેન્ચર

IoT માટે વ્યાપક માર્ગદર્શિકા

એસ્પ્રેસિફ સિસ્ટમ્સ જૂન 12, 2023

વિશિષ્ટતાઓ

  • ઉત્પાદન: ESP32-C3 વાયરલેસ સાહસ
  • ઉત્પાદક: એસ્પ્રેસિફ સિસ્ટમ્સ
  • તારીખ: જૂન 12, 2023

ઉત્પાદન વપરાશ સૂચનાઓ

તૈયારી

ESP32-C3 વાયરલેસ એડવેન્ચરનો ઉપયોગ કરતા પહેલા, ખાતરી કરો કે તમે છો
IoT ના ખ્યાલો અને આર્કિટેક્ચરથી પરિચિત. આ મદદ કરશે
તમે સમજો છો કે ઉપકરણ મોટા IoT ઇકોસિસ્ટમમાં કેવી રીતે બંધબેસે છે
અને સ્માર્ટ હોમ્સમાં તેની સંભવિત એપ્લિકેશનો.

IoT પ્રોજેક્ટ્સનો પરિચય અને પ્રેક્ટિસ

આ વિભાગમાં, તમે લાક્ષણિક IoT પ્રોજેક્ટ્સ વિશે શીખી શકશો,
સામાન્ય IoT ઉપકરણો માટે મૂળભૂત મોડ્યુલો, મૂળભૂત મોડ્યુલો સહિત
ક્લાયંટ એપ્લિકેશન્સ અને સામાન્ય IoT ક્લાઉડ પ્લેટફોર્મ્સ. આ થઈ શકે
તમને સમજવા અને બનાવવા માટે પાયો પૂરો પાડે છે
પોતાના IoT પ્રોજેક્ટ્સ.

પ્રેક્ટિસ: સ્માર્ટ લાઇટ પ્રોજેક્ટ

આ પ્રેક્ટિસ પ્રોજેક્ટમાં, તમે સ્માર્ટ કેવી રીતે બનાવવું તે શીખી શકશો
ESP32-C3 વાયરલેસ એડવેન્ચરનો ઉપયોગ કરીને પ્રકાશ. પ્રોજેક્ટ માળખું,
કાર્યો, હાર્ડવેર તૈયારી અને વિકાસ પ્રક્રિયા હશે
વિગતવાર સમજાવ્યું.

પ્રોજેક્ટ માળખું

પ્રોજેક્ટમાં ઘણા ઘટકોનો સમાવેશ થાય છે, જેમાં સમાવેશ થાય છે
ESP32-C3 વાયરલેસ એડવેન્ચર, LEDs, સેન્સર અને ક્લાઉડ
બેકએન્ડ.

પ્રોજેક્ટ કાર્યો

સ્માર્ટ લાઇટ પ્રોજેક્ટ તમને તેજને નિયંત્રિત કરવાની મંજૂરી આપે છે અને
મોબાઇલ એપ્લિકેશન દ્વારા દૂરથી એલઇડીનો રંગ અથવા web
ઇન્ટરફેસ

હાર્ડવેર તૈયારી

પ્રોજેક્ટ માટે તૈયાર કરવા માટે, તમારે એકત્રિત કરવાની જરૂર પડશે
જરૂરી હાર્ડવેર ઘટકો, જેમ કે ESP32-C3 વાયરલેસ
એડવેન્ચર બોર્ડ, એલઈડી, રેઝિસ્ટર અને પાવર સપ્લાય.

વિકાસ પ્રક્રિયા

વિકાસ પ્રક્રિયામાં વિકાસની સ્થાપનાનો સમાવેશ થાય છે
પર્યાવરણ, એલઈડીને નિયંત્રિત કરવા માટે કોડ લખવા, સાથે જોડાઈ રહ્યું છે
ક્લાઉડ બેકએન્ડ, અને સ્માર્ટની કાર્યક્ષમતાનું પરીક્ષણ
પ્રકાશ

ESP રેઇનમેકરનો પરિચય

ESP RainMaker IoT વિકસાવવા માટે એક શક્તિશાળી માળખું છે
ઉપકરણો આ વિભાગમાં, તમે ESP રેઇનમેકર શું છે અને તે શીખી શકશો
તે તમારા પ્રોજેક્ટ્સમાં કેવી રીતે લાગુ કરી શકાય છે.

ESP RainMaker શું છે?

ESP RainMaker એ ક્લાઉડ-આધારિત પ્લેટફોર્મ છે જે એક સેટ પ્રદાન કરે છે
IoT ઉપકરણોના નિર્માણ અને સંચાલન માટે સાધનો અને સેવાઓ.

ESP RainMaker નું અમલીકરણ

આ વિભાગમાં સામેલ વિવિધ ઘટકો સમજાવે છે
દાવો કરતી સેવા સહિત, ESP RainMaker નો અમલ કરવો,
રેઈનમેકર એજન્ટ, ક્લાઉડ બેકએન્ડ અને રેઈનમેકર ક્લાયંટ.

પ્રેક્ટિસ: ESP RainMaker સાથે વિકાસ કરવા માટેના મુખ્ય મુદ્દા

આ પ્રેક્ટિસ વિભાગમાં, તમે મુખ્ય મુદ્દાઓ વિશે શીખી શકશો
ESP RainMaker સાથે વિકાસ કરતી વખતે ધ્યાનમાં લો. આમાં ઉપકરણનો સમાવેશ થાય છે
દાવો, ડેટા સિંક્રનાઇઝેશન અને વપરાશકર્તા વ્યવસ્થાપન.

ESP RainMaker ની વિશેષતાઓ

ESP RainMaker વપરાશકર્તા સંચાલન, અંત માટે વિવિધ સુવિધાઓ પ્રદાન કરે છે
વપરાશકર્તાઓ અને સંચાલકો. આ સુવિધાઓ સરળ ઉપકરણ માટે પરવાનગી આપે છે
સેટઅપ, રીમોટ કંટ્રોલ અને મોનીટરીંગ.

વિકાસ પર્યાવરણ સુયોજિત કરી રહ્યા છીએ

આ વિભાગ એક ઓવર પ્રદાન કરે છેview ESP-IDF (Espressif IoT
ડેવલપમેન્ટ ફ્રેમવર્ક), જે સત્તાવાર વિકાસ માળખું છે
ESP32-આધારિત ઉપકરણો માટે. તે ની વિવિધ આવૃત્તિઓ સમજાવે છે
ESP-IDF અને વિકાસ વાતાવરણ કેવી રીતે સેટ કરવું.

હાર્ડવેર અને ડ્રાઈવર વિકાસ

ESP32-C3 પર આધારિત સ્માર્ટ લાઇટ પ્રોડક્ટ્સની હાર્ડવેર ડિઝાઇન

આ વિભાગ સ્માર્ટ લાઇટની હાર્ડવેર ડિઝાઇન પર ધ્યાન કેન્દ્રિત કરે છે
ESP32-C3 વાયરલેસ એડવેન્ચર પર આધારિત ઉત્પાદનો. તે આવરી લે છે
સુવિધાઓ અને સ્માર્ટ લાઇટ ઉત્પાદનોની રચના, તેમજ
ESP32-C3 કોર સિસ્ટમની હાર્ડવેર ડિઝાઇન.

સ્માર્ટ લાઇટ પ્રોડક્ટ્સની સુવિધાઓ અને રચના

આ પેટાવિભાગ તે લક્ષણો અને ઘટકોને સમજાવે છે જે બનાવે છે
અપ સ્માર્ટ લાઇટ ઉત્પાદનો. તે વિવિધ કાર્યોની ચર્ચા કરે છે
અને સ્માર્ટ લાઇટ બનાવવા માટે ડિઝાઇન વિચારણા.

ESP32-C3 કોર સિસ્ટમની હાર્ડવેર ડિઝાઇન

ESP32-C3 કોર સિસ્ટમની હાર્ડવેર ડિઝાઇનમાં પાવરનો સમાવેશ થાય છે
સપ્લાય, પાવર-ઓન સિક્વન્સ, સિસ્ટમ રીસેટ, SPI ફ્લેશ, ઘડિયાળ સ્ત્રોત,
અને આરએફ અને એન્ટેના વિચારણાઓ. આ પેટાકલમ પ્રદાન કરે છે
આ પાસાઓ પર વિગતવાર માહિતી.

FAQ

પ્ર: ESP RainMaker શું છે?

A: ESP RainMaker એ ક્લાઉડ-આધારિત પ્લેટફોર્મ છે જે ટૂલ્સ પ્રદાન કરે છે
અને IoT ઉપકરણોના નિર્માણ અને સંચાલન માટે સેવાઓ. તે સરળ બનાવે છે
વિકાસ પ્રક્રિયા અને સરળ ઉપકરણ સેટઅપ માટે પરવાનગી આપે છે, દૂરસ્થ
નિયંત્રણ અને દેખરેખ.

પ્ર: હું વિકાસનું વાતાવરણ કેવી રીતે સેટ કરી શકું
ESP32-C3?

A: ESP32-C3 માટે ડેવલપમેન્ટ એન્વાયર્નમેન્ટ સેટ કરવા માટે, તમારે જરૂર છે
ESP-IDF (Espressif IoT ડેવલપમેન્ટ ફ્રેમવર્ક) ઇન્સ્ટોલ કરવા અને
પૂરી પાડવામાં આવેલ સૂચનાઓ અનુસાર તેને ગોઠવો. ESP-IDF છે
ESP32-આધારિત ઉપકરણો માટે સત્તાવાર વિકાસ માળખું.

પ્ર: ESP RainMaker ની વિશેષતાઓ શું છે?

A: ESP RainMaker વપરાશકર્તા સહિત વિવિધ સુવિધાઓ પ્રદાન કરે છે
મેનેજમેન્ટ, અંતિમ વપરાશકર્તા સુવિધાઓ અને એડમિન સુવિધાઓ. વપરાશકર્તા સંચાલન
સરળ ઉપકરણ દાવો અને ડેટા સિંક્રનાઇઝેશન માટે પરવાનગી આપે છે. અંતિમ વપરાશકર્તા
સુવિધાઓ મોબાઇલ એપ્લિકેશન દ્વારા ઉપકરણોના રિમોટ કંટ્રોલને સક્ષમ કરે છે અથવા
web ઈન્ટરફેસ એડમિન સુવિધાઓ ઉપકરણ મોનિટરિંગ માટે સાધનો પ્રદાન કરે છે
અને મેનેજમેન્ટ.

ESP32-C3 વાયરલેસ એડવેન્ચર
IoT માટે વ્યાપક માર્ગદર્શિકા
એસ્પ્રેસિફ સિસ્ટમ્સ જૂન 12, 2023

સામગ્રી

હું તૈયારી

1

1 IoT નો પરિચય

3

1.1 IoTનું આર્કિટેક્ચર. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 સ્માર્ટ હોમ્સમાં IoT એપ્લિકેશન. . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 IoT પ્રોજેક્ટ્સનો પરિચય અને પ્રેક્ટિસ

9

2.1 લાક્ષણિક IoT પ્રોજેક્ટ્સનો પરિચય. . . . . . . . . . . . . . . . . . . . . . . . 9

2.1.1 સામાન્ય IoT ઉપકરણો માટે મૂળભૂત મોડ્યુલો. . . . . . . . . . . . . . . . . 9

2.1.2 ક્લાયન્ટ એપ્લિકેશન્સના મૂળભૂત મોડ્યુલો. . . . . . . . . . . . . . . . . . . 10

2.1.3 સામાન્ય IoT ક્લાઉડ પ્લેટફોર્મ્સનો પરિચય. . . . . . . . . . . . . . 11

2.2 પ્રેક્ટિસ: સ્માર્ટ લાઇટ પ્રોજેક્ટ. . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.1 પ્રોજેક્ટ સ્ટ્રક્ચર. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2.2 પ્રોજેક્ટ કાર્યો. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2.3 હાર્ડવેર તૈયારી. . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.2.4 વિકાસ પ્રક્રિયા. . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.3 સારાંશ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3 ઇએસપી રેઇનમેકરનો પરિચય

19

3.1 ESP રેઇનમેકર શું છે? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2 ઇએસપી રેઇનમેકરનું અમલીકરણ. . . . . . . . . . . . . . . . . . . . . . 21

3.2.1 સેવાનો દાવો કરવો. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.2.2 રેઇનમેકર એજન્ટ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.2.3 ક્લાઉડ બેકએન્ડ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.2.4 રેઇનમેકર ક્લાયન્ટ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.3 પ્રેક્ટિસ: ESP RainMaker સાથે ડેવલપ કરવા માટેના મુખ્ય મુદ્દાઓ. . . . . . . . . . . . 25

3.4 ESP રેઇનમેકરની વિશેષતાઓ. . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.4.1 વપરાશકર્તા વ્યવસ્થાપન. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.4.2 અંતિમ વપરાશકર્તા સુવિધાઓ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.4.3 એડમિન સુવિધાઓ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.5 સારાંશ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4 વિકાસ પર્યાવરણની સ્થાપના

31

4.1 ESP-IDF ઓવરview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 છે

4.1.1 ESP-IDF સંસ્કરણો. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3

4.1.2 ESP-IDF ગિટ વર્કફ્લો . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.3 યોગ્ય આવૃત્તિ પસંદ કરી રહ્યા છીએ. . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.4 ઓવરview ESP-IDF SDK ડિરેક્ટરી . . . . . . . . . . . . . . . . . . . . 34 4.2 ESP-IDF ડેવલપમેન્ટ એન્વાયર્નમેન્ટ સેટઅપ કરવું. . . . . . . . . . . . . . . . . 38 4.2.1 Linux પર ESP-IDF ડેવલપમેન્ટ એન્વાયર્નમેન્ટ સુયોજિત કરી રહ્યું છે. . . . . . . . 38 4.2.2 વિન્ડોઝ પર 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 પ્રેક્ટિસ: કમ્પાઇલિંગ એક્સampલે પ્રોગ્રામ "બ્લિંક" . . . . . . . . . . . . . . . . . . 53 4.4.1 Exampલે એનાલિસિસ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.4.2 બ્લિંક પ્રોગ્રામ કમ્પાઈલ કરી રહ્યા છે. . . . . . . . . . . . . . . . . . . . . . . 56 4.4.3 બ્લિંક પ્રોગ્રામ ફ્લેશિંગ. . . . . . . . . . . . . . . . . . . . . . . . 59 4.4.4 બ્લિંક પ્રોગ્રામનું સીરીયલ પોર્ટ લોગ વિશ્લેષણ. . . . . . . . . . . . . . 60 4.5 સારાંશ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

II હાર્ડવેર અને ડ્રાઈવર વિકાસ

65

ESP5-C32 પર આધારિત સ્માર્ટ લાઇટ પ્રોડક્ટ્સની 3 હાર્ડવેર ડિઝાઇન

67

5.1 સ્માર્ટ લાઇટ પ્રોડક્ટ્સની સુવિધાઓ અને રચના. . . . . . . . . . . . . . . 67

5.2 ESP32-C3 કોર સિસ્ટમની હાર્ડવેર ડિઝાઇન. . . . . . . . . . . . . . . . . . . 70

5.2.1 પાવર સપ્લાય. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

5.2.2 પાવર-ઓન સિક્વન્સ અને સિસ્ટમ રીસેટ. . . . . . . . . . . . . . . . . . 74

5.2.3 SPI ફ્લેશ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

5.2.4 ઘડિયાળનો સ્ત્રોત. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

5.2.5 RF અને એન્ટેના. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

5.2.6 સ્ટ્રેપિંગ પિન . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.2.7 GPIO અને PWM કંટ્રોલર. . . . . . . . . . . . . . . . . . . . . . . . . 79

5.3 પ્રેક્ટિસ: ESP32-C3 સાથે સ્માર્ટ લાઇટ સિસ્ટમ બનાવવી. . . . . . . . . . . . . 80

5.3.1 મોડ્યુલો પસંદ કરી રહ્યા છીએ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

5.3.2 PWM સિગ્નલોના GPIO ની ગોઠવણી. . . . . . . . . . . . . . . . . . . . 82

5.3.3 ફર્મવેર અને ડીબગીંગ ઈન્ટરફેસ ડાઉનલોડ કરી રહ્યા છીએ. . . . . . . . . . . . 82

5.3.4 RF ડિઝાઇન માટે માર્ગદર્શિકા. . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3.5 પાવર સપ્લાય ડિઝાઇન માટેની માર્ગદર્શિકા. . . . . . . . . . . . . . . . . . . 86 5.4 સારાંશ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

6 ડ્રાઈવર વિકાસ

87

6.1 ડ્રાઈવર વિકાસ પ્રક્રિયા. . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

6.2 ESP32-C3 પેરિફેરલ એપ્લિકેશન્સ. . . . . . . . . . . . . . . . . . . . . . . . . 88

6.3 LED ડ્રાઈવર બેઝિક્સ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6.3.1 કલર સ્પેસ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6.3.2 LED ડ્રાઈવર . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

6.3.3 LED ડિમિંગ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

6.3.4 PWM નો પરિચય. . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

6.4 LED ડિમિંગ ડ્રાઇવર ડેવલપમેન્ટ. . . . . . . . . . . . . . . . . . . . . . . . 96

6.4.1 નોન-વોલેટાઇલ સ્ટોરેજ (NVS) . . . . . . . . . . . . . . . . . . . . . . . . 97

6.4.2 LED PWM કંટ્રોલર (LEDC) . . . . . . . . . . . . . . . . . . . . . . . 98

6.4.3 LED PWM પ્રોગ્રામિંગ. . . . . . . . . . . . . . . . . . . . . . . . . . 100

6.5 પ્રેક્ટિસ: સ્માર્ટ લાઇટ પ્રોજેક્ટમાં ડ્રાઇવરો ઉમેરવા. . . . . . . . . . . . . . . . . 103

6.5.1 બટન ડ્રાઈવર. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

6.5.2 LED ડિમિંગ ડ્રાઇવર. . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

6.6 સારાંશ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

III વાયરલેસ કોમ્યુનિકેશન અને કંટ્રોલ

109

7 Wi-Fi રૂપરેખાંકન અને જોડાણ

111

7.1 Wi-Fi ની મૂળભૂત બાબતો. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.1 Wi-Fi નો પરિચય. . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.2 IEEE 802.11 નું ઉત્ક્રાંતિ. . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.3 Wi-Fi ખ્યાલો. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

7.1.4 Wi-Fi કનેક્શન. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Wi-Fi પ્રોગ્રામિંગ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.1 ESP-IDF માં Wi-Fi ઘટકો. . . . . . . . . . . . . . . . . . . . . . . 139 7.4.2 વ્યાયામ: Wi-Fi કનેક્શન. . . . . . . . . . . . . . . . . . . . . . . . 141 7.4.3 વ્યાયામ: સ્માર્ટ Wi-Fi કનેક્શન. . . . . . . . . . . . . . . . . . . . . 145
7.5 પ્રેક્ટિસ: સ્માર્ટ લાઇટ પ્રોજેક્ટમાં Wi-Fi કન્ફિગરેશન. . . . . . . . . . . . . . . 156 7.5.1 સ્માર્ટ લાઇટ પ્રોજેક્ટમાં Wi-Fi કનેક્શન. . . . . . . . . . . . . . . . . 156 7.5.2 સ્માર્ટ વાઇ-ફાઇ કન્ફિગરેશન. . . . . . . . . . . . . . . . . . . . . . . . . 157
7.6 સારાંશ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

8 સ્થાનિક નિયંત્રણ

159

8.1 સ્થાનિક નિયંત્રણનો પરિચય. . . . . . . . . . . . . . . . . . . . . . . . . . . 159

8.1.1 સ્થાનિક નિયંત્રણની અરજી. . . . . . . . . . . . . . . . . . . . . . . . 161

8.1.2 અડવાનtagસ્થાનિક નિયંત્રણના es. . . . . . . . . . . . . . . . . . . . . . . . 161

8.1.3 સ્માર્ટફોન દ્વારા નિયંત્રિત ઉપકરણોની શોધ કરવી. . . . . . . . . . 161

8.1.4 સ્માર્ટફોન અને ઉપકરણો વચ્ચે ડેટા કોમ્યુનિકેશન. . . . . . . . 162

8.2 સામાન્ય સ્થાનિક શોધ પદ્ધતિઓ. . . . . . . . . . . . . . . . . . . . . . . . 162

8.2.1 પ્રસારણ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

8.2.2 મલ્ટિકાસ્ટ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

8.2.3 બ્રોડકાસ્ટ અને મલ્ટિકાસ્ટ વચ્ચે સરખામણી. . . . . . . . . . . . . . 176

8.2.4 સ્થાનિક શોધ માટે મલ્ટીકાસ્ટ એપ્લિકેશન પ્રોટોકોલ mDNS. . . . . . . . 176

8.3 સ્થાનિક ડેટા માટે કોમન કોમ્યુનિકેશન પ્રોટોકોલ્સ. . . . . . . . . . . . . . . 179

8.3.1 ટ્રાન્સમિશન કંટ્રોલ પ્રોટોકોલ (TCP) . . . . . . . . . . . . . . . . . . . 179

8.3.2 હાયપરટેક્સ્ટ ટ્રાન્સફર પ્રોટોકોલ (HTTP) . . . . . . . . . . . . . . . . . . 185

8.3.3 વપરાશકર્તા ડાtagરેમ પ્રોટોકોલ (યુડીપી) . . . . . . . . . . . . . . . . . . . . . 189

8.3.4 કન્સ્ટ્રેઇન્ડ એપ્લિકેશન પ્રોટોકોલ (CoAP) . . . . . . . . . . . . . . . . 192

8.3.5 બ્લૂટૂથ પ્રોટોકોલ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

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 સારાંશ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

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 સારાંશ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

10 સ્માર્ટફોન એપ ડેવલપમેન્ટ

269

10.1 સ્માર્ટફોન એપ ડેવલપમેન્ટનો પરિચય. . . . . . . . . . . . . . . . . . 269

10.1.1 ઓવરview સ્માર્ટફોન એપ ડેવલપમેન્ટનું. . . . . . . . . . . . . . . 270

10.1.2 એન્ડ્રોઇડ પ્રોજેક્ટનું માળખું. . . . . . . . . . . . . . . . . . . . . . 270

10.1.3 iOS પ્રોજેક્ટનું માળખું. . . . . . . . . . . . . . . . . . . . . . . . 271

10.1.4 Android પ્રવૃત્તિનું જીવનચક્ર. . . . . . . . . . . . . . . . . . . . . . 272

10.1.5 iOS નું જીવનચક્ર Viewનિયંત્રક . . . . . . . . . . . . . . . . . . . . . . 273

10.2 નવો સ્માર્ટફોન એપ પ્રોજેક્ટ બનાવવો. . . . . . . . . . . . . . . . . . . . . 275

10.2.1 એન્ડ્રોઇડ ડેવલપમેન્ટ માટે તૈયારી કરી રહ્યું છે. . . . . . . . . . . . . . . . . . . 275

10.2.2 નવો એન્ડ્રોઇડ પ્રોજેક્ટ બનાવવો. . . . . . . . . . . . . . . . . . . . . . 275

10.2.3 MyRainmaker માટે નિર્ભરતા ઉમેરવી. . . . . . . . . . . . . . . . . 276

10.2.4 એન્ડ્રોઇડમાં પરવાનગીની વિનંતી. . . . . . . . . . . . . . . . . . . . . . 277

10.2.5 iOS વિકાસ માટે તૈયારી. . . . . . . . . . . . . . . . . . . . . . 277

10.2.6 નવો iOS પ્રોજેક્ટ બનાવવો. . . . . . . . . . . . . . . . . . . . . . . . 278

10.2.7 MyRainmaker માટે નિર્ભરતા ઉમેરવી. . . . . . . . . . . . . . . . . 279

10.2.8 iOS માં પરવાનગીની વિનંતી. . . . . . . . . . . . . . . . . . . . . . . . . 280

10.3 એપ્લિકેશનની કાર્યાત્મક આવશ્યકતાઓનું વિશ્લેષણ. . . . . . . . . . . . . . . . . . 281

10.3.1 પ્રોજેક્ટની કાર્યાત્મક આવશ્યકતાઓનું વિશ્લેષણ. . . . . . . . . . . . 282

10.3.2 વપરાશકર્તા વ્યવસ્થાપન આવશ્યકતાઓનું વિશ્લેષણ. . . . . . . . . . . . . . . 282 10.3.3 ઉપકરણ જોગવાઈ અને બંધનકર્તા આવશ્યકતાઓનું વિશ્લેષણ. . . . . . . 283 10.3.4 રીમોટ-કંટ્રોલ આવશ્યકતાઓનું વિશ્લેષણ. . . . . . . . . . . . . . . . 283 10.3.5 સુનિશ્ચિત આવશ્યકતાઓનું વિશ્લેષણ. . . . . . . . . . . . . . . . . . . 284 10.3.6 વપરાશકર્તા કેન્દ્રની આવશ્યકતાઓનું વિશ્લેષણ. . . . . . . . . . . . . . . . . . 285 10.4 યુઝર મેનેજમેન્ટનો વિકાસ. . . . . . . . . . . . . . . . . . . . . . . . 285 10.4.1 RainMaker API નો પરિચય. . . . . . . . . . . . . . . . . . . . . . 285 10.4.2 સ્માર્ટફોન દ્વારા સંચાર શરૂ કરવો. . . . . . . . . . . . . . . . 286 10.4.3 એકાઉન્ટ રજીસ્ટ્રેશન. . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 10.4.4 એકાઉન્ટ લોગિન. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 10.5 ઉપકરણ જોગવાઈનો વિકાસ. . . . . . . . . . . . . . . . . . . . . . . 292 10.5.1 સ્કેનિંગ ઉપકરણો. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 10.5.2 કનેક્ટિંગ ઉપકરણો. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 10.5.3 સિક્રેટ કી જનરેટ કરી રહી છે. . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.4 નોડ ID મેળવવું. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.5 જોગવાઈ ઉપકરણો. . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 10.6 ઉપકરણ નિયંત્રણનો વિકાસ. . . . . . . . . . . . . . . . . . . . . . . . . . 302 10.6.1 ક્લાઉડ એકાઉન્ટ્સ માટે ઉપકરણોને બંધનકર્તા. . . . . . . . . . . . . . . . . . . . 303 10.6.2 ઉપકરણોની યાદી મેળવવી. . . . . . . . . . . . . . . . . . . . . . . . . . 305 10.6.3 ઉપકરણ સ્થિતિ મેળવવી. . . . . . . . . . . . . . . . . . . . . . . . . . . 308 10.6.4 ઉપકરણ સ્થિતિ બદલવી. . . . . . . . . . . . . . . . . . . . . . . . . . 310 10.7 શેડ્યુલિંગ અને યુઝર સેન્ટરનો વિકાસ. . . . . . . . . . . . . . . . . . . 313 10.7.1 સુનિશ્ચિત કાર્યનો અમલ કરવો. . . . . . . . . . . . . . . . . . . . 313 10.7.2 વપરાશકર્તા કેન્દ્રનો અમલ કરવો. . . . . . . . . . . . . . . . . . . . . . . . . 315 10.7.3 વધુ ક્લાઉડ API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 10.8 સારાંશ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319

11 ફર્મવેર અપગ્રેડ અને વર્ઝન મેનેજમેન્ટ

321

11.1 ફર્મવેર અપગ્રેડ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

11.1.1 ઓવરview પાર્ટીશન કોષ્ટકોનું. . . . . . . . . . . . . . . . . . . . . . . . 322

11.1.2 ફર્મવેર બુટ પ્રક્રિયા. . . . . . . . . . . . . . . . . . . . . . . . . . . 324

11.1.3 ઓવરview OTA મિકેનિઝમની . . . . . . . . . . . . . . . . . . . . 326

11.2 ફર્મવેર વર્ઝન મેનેજમેન્ટ. . . . . . . . . . . . . . . . . . . . . . . . . . 329

11.2.1 ફર્મવેર માર્કિંગ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329

11.2.2 રોલબેક અને એન્ટી-રોલબેક. . . . . . . . . . . . . . . . . . . . . . . . 331

11.3 પ્રેક્ટિસ: ઓવર-ધ-એર (OTA) એક્સampલે . . . . . . . . . . . . . . . . . . . . . . 332

11.3.1 સ્થાનિક હોસ્ટ દ્વારા ફર્મવેરને અપગ્રેડ કરો. . . . . . . . . . . . . . . . . 332

11.3.2 ESP RainMaker દ્વારા ફર્મવેરને અપગ્રેડ કરો. . . . . . . . . . . . . . . 335

11.4 સારાંશ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342

IV ઓપ્ટિમાઇઝેશન અને માસ પ્રોડક્શન

343

12 પાવર મેનેજમેન્ટ અને લો-પાવર ઓપ્ટિમાઇઝેશન

345

12.1 ESP32-C3 પાવર મેનેજમેન્ટ. . . . . . . . . . . . . . . . . . . . . . . . . . . 345

12.1.1 ડાયનેમિક ફ્રીક્વન્સી સ્કેલિંગ. . . . . . . . . . . . . . . . . . . . . . . . 346

12.1.2 પાવર મેનેજમેન્ટ કન્ફિગરેશન. . . . . . . . . . . . . . . . . . . . 348

12.2 ESP32-C3 લો-પાવર મોડ. . . . . . . . . . . . . . . . . . . . . . . . . . . . 348

12.2.1 મોડેમ-સ્લીપ મોડ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349

12.2.2 લાઇટ-સ્લીપ મોડ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351

12.2.3 ડીપ-સ્લીપ મોડ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356

12.2.4 વિવિધ પાવર મોડ્સમાં વર્તમાન વપરાશ. . . . . . . . . . . . . 358

12.3 પાવર મેનેજમેન્ટ અને લો-પાવર ડીબગીંગ. . . . . . . . . . . . . . . . . 359

12.3.1 લોગ ડીબગીંગ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360

12.3.2 GPIO ડિબગીંગ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362

12.4 પ્રેક્ટિસ: સ્માર્ટ લાઇટ પ્રોજેક્ટમાં પાવર મેનેજમેન્ટ. . . . . . . . . . . . . . . 363

12.4.1 પાવર મેનેજમેન્ટ ફીચર રૂપરેખાંકિત કરવું. . . . . . . . . . . . . . . . . 364

12.4.2 પાવર મેનેજમેન્ટ લોકનો ઉપયોગ કરો. . . . . . . . . . . . . . . . . . . . . . 365

12.4.3 પાવર વપરાશની ચકાસણી કરવી. . . . . . . . . . . . . . . . . . . . . . . 366

12.5 સારાંશ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367

13 ઉન્નત ઉપકરણ સુરક્ષા સુવિધાઓ

369

13.1 ઓવરview IoT ઉપકરણ ડેટા સુરક્ષાનું. . . . . . . . . . . . . . . . . . . . . . . 369

13.1.1 શા માટે IoT ઉપકરણ ડેટા સુરક્ષિત કરવો? . . . . . . . . . . . . . . . . . . . . . . 370

13.1.2 IoT ઉપકરણ ડેટા સુરક્ષા માટેની મૂળભૂત આવશ્યકતાઓ. . . . . . . . . . . . 371

13.2 ડેટા ઇન્ટિગ્રિટી પ્રોટેક્શન. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372

13.2.1 અખંડિતતા ચકાસણી પદ્ધતિનો પરિચય. . . . . . . . . . . . . . 372

13.2.2 ફર્મવેર ડેટાની અખંડિતતા ચકાસણી. . . . . . . . . . . . . . . . . . 373

13.2.3 ઉદાampલે . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374

13.3 ડેટા ગોપનીયતા રક્ષણ. . . . . . . . . . . . . . . . . . . . . . . . . . 374

13.3.1 ડેટા એન્ક્રિપ્શનનો પરિચય. . . . . . . . . . . . . . . . . . . . . . 374

13.3.2 ફ્લેશ એન્ક્રિપ્શન સ્કીમનો પરિચય. . . . . . . . . . . . . . . . . 376

13.3.3 ફ્લેશ એન્ક્રિપ્શન કી સ્ટોરેજ. . . . . . . . . . . . . . . . . . . . . . . 379

13.3.4 ફ્લેશ એન્ક્રિપ્શનનો વર્કિંગ મોડ. . . . . . . . . . . . . . . . . . . . 380

13.3.5 ફ્લેશ એન્ક્રિપ્શન પ્રક્રિયા. . . . . . . . . . . . . . . . . . . . . . . . . . 381

13.3.6 NVS એન્ક્રિપ્શનનો પરિચય. . . . . . . . . . . . . . . . . . . . . . 383

13.3.7 ઉદાampફ્લેશ એન્ક્રિપ્શન અને NVS એન્ક્રિપ્શનના લેસ. . . . . . . . . . . 384

13.4 ડેટા કાયદેસરતા રક્ષણ. . . . . . . . . . . . . . . . . . . . . . . . . . . . 386

13.4.1 ડિજિટલ હસ્તાક્ષરનો પરિચય. . . . . . . . . . . . . . . . . . . . . 386

13.4.2 ઓવરview સિક્યોર બૂટ સ્કીમની. . . . . . . . . . . . . . . . . . . . . 388

13.4.3 સોફ્ટવેર સિક્યોર બુટનો પરિચય. . . . . . . . . . . . . . . . . . . 388 13.4.4 હાર્ડવેર સિક્યોર બુટનો પરિચય. . . . . . . . . . . . . . . . . . 390 13.4.5 Exampલેસ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 13.5 પ્રેક્ટિસ: મોટા પાયે ઉત્પાદનમાં સુરક્ષા સુવિધાઓ. . . . . . . . . . . . . . . . . . 396 13.5.1 ફ્લેશ એન્ક્રિપ્શન અને સિક્યોર બૂટ. . . . . . . . . . . . . . . . . . . . . 396 13.5.2 બેચ ફ્લેશ ટૂલ્સ સાથે ફ્લેશ એન્ક્રિપ્શન અને સિક્યોર બૂટને સક્ષમ કરવું. . 397 13.5.3 સ્માર્ટ લાઇટ પ્રોજેક્ટમાં ફ્લેશ એન્ક્રિપ્શન અને સિક્યોર બૂટને સક્ષમ કરવું. . . 398 13.6 સારાંશ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398

14 મોટા પ્રમાણમાં ઉત્પાદન માટે ફર્મવેર બર્નિંગ અને પરીક્ષણ

399

14.1 મોટા પ્રમાણમાં ઉત્પાદનમાં ફર્મવેર બર્નિંગ. . . . . . . . . . . . . . . . . . . . . . 399

14.1.1 ડેટા પાર્ટીશનો વ્યાખ્યાયિત કરી રહ્યા છીએ. . . . . . . . . . . . . . . . . . . . . . . . . . 399

14.1.2 ફર્મવેર બર્નિંગ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402

14.2 સામૂહિક ઉત્પાદન પરીક્ષણ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403

14.3 પ્રેક્ટિસ: સ્માર્ટ લાઇટ પ્રોજેક્ટમાં માસ પ્રોડક્શન ડેટા. . . . . . . . . . . . . 404

14.4 સારાંશ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404

15 ESP આંતરદૃષ્ટિ: રિમોટ મોનિટરિંગ પ્લેટફોર્મ

405

15.1 ESP આંતરદૃષ્ટિનો પરિચય. . . . . . . . . . . . . . . . . . . . . . . . . . . . 405

15.2 ESP આંતરદૃષ્ટિ સાથે પ્રારંભ કરવું. . . . . . . . . . . . . . . . . . . . . . . . . 409

15.2.1 esp-insights પ્રોજેક્ટમાં ESP આંતરદૃષ્ટિ સાથે શરૂઆત કરવી. . . . . . 409

15.2.2 ચાલી રહેલ એક્સampesp-insights પ્રોજેક્ટમાં લે છે. . . . . . . . . . . . . . . 411

15.2.3 રિપોર્ટિંગ કોરેડમ્પ માહિતી. . . . . . . . . . . . . . . . . . . . . 411

15.2.4 રૂચિના લોગને કસ્ટમાઇઝ કરવું. . . . . . . . . . . . . . . . . . . . . . . . 412

15.2.5 રીબુટ રીઝનની જાણ કરવી. . . . . . . . . . . . . . . . . . . . . . . . . 413

15.2.6 કસ્ટમ મેટ્રિક્સની જાણ કરવી. . . . . . . . . . . . . . . . . . . . . . . . . 413

15.3 પ્રેક્ટિસ: સ્માર્ટ લાઇટ પ્રોજેક્ટમાં ESP ઇનસાઇટ્સનો ઉપયોગ કરવો. . . . . . . . . . . . . . . 416

15.4 સારાંશ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417

પરિચય
ESP32-C3 એ સિંગલ-કોર Wi-Fi અને બ્લૂટૂથ 5 (LE) માઇક્રોકન્ટ્રોલર SoC છે, જે ઓપન-સોર્સ RISC-V આર્કિટેક્ચર પર આધારિત છે. તે પાવર, I/O ક્ષમતાઓ અને સુરક્ષાના યોગ્ય સંતુલનને અસર કરે છે, આમ કનેક્ટેડ ઉપકરણો માટે શ્રેષ્ઠ ખર્ચ-અસરકારક ઉકેલ ઓફર કરે છે. ESP32-C3 પરિવારની વિવિધ એપ્લિકેશનો બતાવવા માટે, Espressifનું આ પુસ્તક તમને AIoT દ્વારા એક રસપ્રદ સફર પર લઈ જશે, જેમાં IoT પ્રોજેક્ટ ડેવલપમેન્ટ અને પર્યાવરણ સેટઅપની મૂળભૂત બાબતોથી લઈને વ્યવહારિક પૂર્વ સુધી.ampલેસ પ્રથમ ચાર પ્રકરણો IoT, ESP RainMaker અને ESP-IDF વિશે વાત કરે છે. હાર્ડવેર ડિઝાઇન અને ડ્રાઇવર ડેવલપમેન્ટ પર પ્રકરણ 5 અને 6 સંક્ષિપ્ત. જેમ જેમ તમે પ્રગતિ કરશો તેમ, તમે Wi-Fi નેટવર્ક્સ અને મોબાઇલ એપ્લિકેશન્સ દ્વારા તમારા પ્રોજેક્ટને કેવી રીતે ગોઠવવું તે શોધી શકશો. છેલ્લે, તમે તમારા પ્રોજેક્ટને ઑપ્ટિમાઇઝ કરવાનું અને તેને મોટા પાયે ઉત્પાદનમાં મૂકવાનું શીખી શકશો.
જો તમે સંબંધિત ક્ષેત્રોમાં એન્જિનિયર છો, સોફ્ટવેર આર્કિટેક્ટ છો, શિક્ષક છો, વિદ્યાર્થી છો અથવા IoT માં રસ ધરાવનાર કોઈપણ વ્યક્તિ છો, તો આ પુસ્તક તમારા માટે છે.
તમે કોડ એક્સ ડાઉનલોડ કરી શકો છોampGitHub પર Espressif ની સાઈટ પરથી આ પુસ્તકમાં વપરાયેલ le. IoT વિકાસ પર નવીનતમ માહિતી માટે, કૃપા કરીને અમારા સત્તાવાર એકાઉન્ટને અનુસરો.

પ્રસ્તાવના
એક માહિતીપ્રદ વિશ્વ
ઈન્ટરનેટની લહેર પર સવાર થઈને ઈન્ટરનેટ ઓફ થિંગ્સ (IoT) એ ડિજિટલ ઈકોનોમીમાં નવા પ્રકારનું ઈન્ફ્રાસ્ટ્રક્ચર બનવા માટે તેની ભવ્ય શરૂઆત કરી. ટેક્નોલોજીને લોકોની નજીક લાવવા માટે, Espressif Systems એ વિઝન માટે કામ કરે છે કે જીવનના તમામ ક્ષેત્રોના વિકાસકર્તાઓ આપણા સમયની કેટલીક સૌથી અઘરી સમસ્યાઓના ઉકેલ માટે IoT નો ઉપયોગ કરી શકે. "બધી વસ્તુઓનું બુદ્ધિશાળી નેટવર્ક" ની દુનિયા એ છે જેની આપણે ભવિષ્યમાંથી અપેક્ષા રાખીએ છીએ.
અમારી પોતાની ચિપ્સ ડિઝાઇન કરવી એ તે દ્રષ્ટિનો એક મહત્વપૂર્ણ ઘટક બનાવે છે. તે એક મેરેથોન બનવાની છે, જેમાં તકનીકી સીમાઓ સામે સતત સફળતાની જરૂર છે. “ગેમ ચેન્જર” ESP8266 થી લઈને ESP32 શ્રેણીમાં Wi-Fi અને બ્લૂટૂથર (LE) કનેક્ટિવિટી સંકલિત કરે છે, ત્યારબાદ ESP32-S3 AI પ્રવેગક દ્વારા સજ્જ છે, Espressif ક્યારેય AIoT સોલ્યુશન્સ માટે ઉત્પાદનોનું સંશોધન અને વિકાસ કરવાનું બંધ કરતું નથી. અમારા ઓપન-સોર્સ સોફ્ટવેર, જેમ કે IoT ડેવલપમેન્ટ ફ્રેમવર્ક ESP-IDF, મેશ ડેવલપમેન્ટ ફ્રેમવર્ક ESP-MDF, અને ઉપકરણ કનેક્ટિવિટી પ્લેટફોર્મ ESP RainMaker સાથે, અમે AIoT એપ્લિકેશન્સ બનાવવા માટે એક સ્વતંત્ર ફ્રેમવર્ક બનાવ્યું છે.
જુલાઈ 2022 સુધીમાં, Espressif ના IoT ચિપસેટ્સનું સંચિત શિપમેન્ટ 800 મિલિયનને વટાવી ગયું છે, જે Wi-Fi MCU માર્કેટમાં અગ્રણી છે અને વિશ્વભરમાં કનેક્ટેડ ઉપકરણોની વિશાળ સંખ્યાને પાવર અપ કરે છે. ઉત્કૃષ્ટતા માટે શોધ દરેક Espressif ઉત્પાદનને તેના ઉચ્ચ સ્તરના એકીકરણ અને ખર્ચ કાર્યક્ષમતા માટે મોટી હિટ બનાવે છે. ESP32-C3નું પ્રકાશન એસ્પ્રેસિફની સ્વ-વિકસિત ટેક્નોલૉજીનો નોંધપાત્ર સીમાચિહ્નરૂપ છે. તે 32KB SRAM સાથે સિંગલ-કોર, 400-બીટ, RISC-V-આધારિત MCU છે, જે 160MHz પર ચાલી શકે છે. તેમાં 2.4 ગીગાહર્ટ્ઝ વાઇ-ફાઇ અને બ્લૂટૂથ 5 (LE) લાંબા અંતરના સપોર્ટ સાથે સંકલિત છે. તે પાવર, I/O ક્ષમતાઓ અને સુરક્ષાના સુંદર સંતુલનને અસર કરે છે, આમ કનેક્ટેડ ઉપકરણો માટે શ્રેષ્ઠ ખર્ચ-અસરકારક ઉકેલ ઓફર કરે છે. આવા શક્તિશાળી ESP32-C3 પર આધારિત, આ પુસ્તકનો હેતુ વાચકોને IoT-સંબંધિત જ્ઞાનને વિગતવાર દ્રષ્ટાંત અને પ્રાયોગિક ભૂતપૂર્વ સાથે સમજવામાં મદદ કરવાનો છે.ampલેસ
અમે આ પુસ્તક શા માટે લખ્યું?
એસ્પ્રેસિફ સિસ્ટમ્સ સેમિકન્ડક્ટર કંપની કરતાં વધુ છે. તે એક IoT પ્લેટફોર્મ કંપની પણ છે, જે હંમેશા ટેક્નોલોજીના ક્ષેત્રમાં સફળતા અને નવીનતાઓ માટે પ્રયત્નશીલ રહે છે. તે જ સમયે, એસ્પ્રેસિફે ઓપન-સોર્સ કર્યું છે અને તેની સ્વ-વિકસિત ઓપરેટિંગ સિસ્ટમ અને સોફ્ટવેર ફ્રેમવર્ક સમુદાય સાથે શેર કર્યું છે, જે એક અનન્ય ઇકોસિસ્ટમ બનાવે છે. ઇજનેરો, નિર્માતાઓ અને ટેક્નોલોજી ઉત્સાહીઓ એસ્પ્રેસિફના ઉત્પાદનો પર આધારિત નવી સોફ્ટવેર એપ્લિકેશનો સક્રિયપણે વિકસાવે છે, મુક્તપણે વાતચીત કરે છે અને તેમનો અનુભવ શેર કરે છે. તમે YouTube અને GitHub જેવા વિવિધ પ્લેટફોર્મ પર વિકાસકર્તાઓના આકર્ષક વિચારો જોઈ શકો છો. એસ્પ્રેસિફના ઉત્પાદનોની લોકપ્રિયતાએ એવા લેખકોની સંખ્યાને ઉત્તેજિત કરી છે કે જેમણે અંગ્રેજી, ચાઇનીઝ, જર્મન, ફ્રેન્ચ અને જાપાનીઝ સહિત દસથી વધુ ભાષાઓમાં એસ્પ્રેસિફ ચિપસેટ્સ પર આધારિત 100 થી વધુ પુસ્તકોનું નિર્માણ કર્યું છે.

તે સમુદાય ભાગીદારોનો ટેકો અને વિશ્વાસ છે જે Espressifની સતત નવીનતાને પ્રોત્સાહિત કરે છે. “અમે અમારી ચિપ્સ, ઑપરેટિંગ સિસ્ટમ્સ, ફ્રેમવર્ક, સોલ્યુશન્સ, ક્લાઉડ, બિઝનેસ પ્રેક્ટિસ, ટૂલ્સ, દસ્તાવેજીકરણ, લખાણો, વિચારો વગેરેને સમકાલીન જીવનની સૌથી અઘરી સમસ્યાઓમાં લોકોને જોઈતા જવાબો માટે વધુ સુસંગત બનાવવાનો પ્રયત્ન કરીએ છીએ. આ એસ્પ્રેસિફની સર્વોચ્ચ મહત્વાકાંક્ષા અને નૈતિક હોકાયંત્ર છે.” શ્રી ટીઓ સ્વી એન, એસ્પ્રેસિફના સ્થાપક અને સીઇઓ જણાવ્યું હતું.
Espressif વાંચન અને વિચારોને મહત્વ આપે છે. IoT ટેક્નોલૉજીના સતત અપગ્રેડિંગથી એન્જિનિયરો પર ઉચ્ચ જરૂરિયાતો ઊભી થાય છે, તેથી અમે વધુ લોકોને IoT ચિપ્સ, ઑપરેટિંગ સિસ્ટમ્સ, સૉફ્ટવેર ફ્રેમવર્ક, એપ્લિકેશન સ્કીમ્સ અને ક્લાઉડ સર્વિસ પ્રોડક્ટ્સમાં ઝડપથી નિપુણતા મેળવવા માટે કેવી રીતે મદદ કરી શકીએ? કહેવત છે તેમ, માણસને માછલી આપવા કરતાં માછલી કેવી રીતે કરવી તે શીખવવું વધુ સારું છે. મંથન સત્રમાં, અમને એવું લાગ્યું કે અમે IoT વિકાસના મુખ્ય જ્ઞાનને વ્યવસ્થિત રીતે ગોઠવવા માટે એક પુસ્તક લખી શકીએ છીએ. અમે તેને દૂર કરી, વરિષ્ઠ ઇજનેરોના જૂથને ઝડપથી ભેગા કર્યા, અને એમ્બેડેડ પ્રોગ્રામિંગ, IoT હાર્ડવેર અને સૉફ્ટવેર ડેવલપમેન્ટમાં તકનીકી ટીમના અનુભવને જોડ્યા, આ બધાએ આ પુસ્તકના પ્રકાશનમાં ફાળો આપ્યો. લેખનની પ્રક્રિયામાં, અમે ઉદ્દેશ્ય અને ન્યાયી બનવા માટે અમારા શ્રેષ્ઠ પ્રયાસો કર્યા, કોકૂનથી છૂટકારો મેળવ્યો, અને વસ્તુઓના ઇન્ટરનેટની જટિલતા અને આકર્ષણને કહેવા માટે સંક્ષિપ્ત અભિવ્યક્તિઓનો ઉપયોગ કર્યો. અમે વિકાસની પ્રક્રિયામાં આવતા પ્રશ્નોના સ્પષ્ટ જવાબ આપવા અને સંબંધિત ટેકનિશિયન અને નિર્ણય લેનારાઓ માટે વ્યવહારુ IoT વિકાસ માર્ગદર્શિકા પ્રદાન કરવા માટે, સમુદાયના પ્રતિસાદ અને સૂચનોનો સંદર્ભ આપતા સામાન્ય પ્રશ્નોનો કાળજીપૂર્વક સારાંશ આપ્યો.
પુસ્તક માળખું
આ પુસ્તક ઇજનેર-કેન્દ્રિત પરિપ્રેક્ષ્ય લે છે અને IoT પ્રોજેક્ટ વિકાસ માટે જરૂરી જ્ઞાનને તબક્કાવાર સમજાવે છે. તે નીચે મુજબ ચાર ભાગોથી બનેલું છે:
· તૈયારી (પ્રકરણ 1): આ ભાગ IoT ના આર્કિટેક્ચર, લાક્ષણિક IoT પ્રોજેક્ટ ફ્રેમવર્ક, ESP RainMakerr ક્લાઉડ પ્લેટફોર્મ અને વિકાસ પર્યાવરણ ESP-IDF નો પરિચય આપે છે, જેથી IoT પ્રોજેક્ટના વિકાસ માટે મજબૂત પાયો નાખે.
હાર્ડવેર અને ડ્રાઈવર ડેવલપમેન્ટ (પ્રકરણ 5): ESP6-C32 ચિપસેટ પર આધારિત, આ ભાગ ન્યૂનતમ હાર્ડવેર સિસ્ટમ અને ડ્રાઈવર ડેવલપમેન્ટ પર વિસ્તૃત રીતે જણાવે છે અને ડિમિંગ, કલર ગ્રેડિંગ અને વાયરલેસ કમ્યુનિકેશનના નિયંત્રણને લાગુ કરે છે.
· વાયરલેસ કોમ્યુનિકેશન એન્ડ કંટ્રોલ (પ્રકરણ 7): આ ભાગ ESP11-C32 ચિપ, સ્થાનિક અને ક્લાઉડ કંટ્રોલ પ્રોટોકોલ અને ઉપકરણોના સ્થાનિક અને રિમોટ કંટ્રોલ પર આધારિત બુદ્ધિશાળી Wi-Fi રૂપરેખાંકન યોજનાને સમજાવે છે. તે સ્માર્ટફોન એપ્લિકેશન્સ, ફર્મવેર અપગ્રેડ અને વર્ઝન મેનેજમેન્ટ વિકસાવવા માટેની યોજનાઓ પણ પ્રદાન કરે છે.
· ઑપ્ટિમાઇઝેશન અને માસ પ્રોડક્શન (પ્રકરણ 12-15): આ ભાગ અદ્યતન IoT એપ્લિકેશન્સ માટે બનાવાયેલ છે, પાવર મેનેજમેન્ટમાં ઉત્પાદનોના ઑપ્ટિમાઇઝેશન, લો-પાવર ઑપ્ટિમાઇઝેશન અને ઉન્નત સુરક્ષા પર ધ્યાન કેન્દ્રિત કરે છે. તે સામૂહિક ઉત્પાદનમાં ફર્મવેર બર્નિંગ અને પરીક્ષણનો પણ પરિચય આપે છે, અને રિમોટ મોનિટરિંગ પ્લેટફોર્મ ESP ઇનસાઇટ્સ દ્વારા ઉપકરણ ફર્મવેરની ચાલી રહેલ સ્થિતિ અને લોગનું નિદાન કેવી રીતે કરવું.

સ્ત્રોત કોડ વિશે
વાચકો માજી ચલાવી શકે છેampઆ પુસ્તકમાં લે પ્રોગ્રામ્સ, ક્યાં તો જાતે કોડ દાખલ કરીને અથવા પુસ્તક સાથેના સ્રોત કોડનો ઉપયોગ કરીને. અમે સિદ્ધાંત અને પ્રેક્ટિસના સંયોજન પર ભાર મૂકીએ છીએ અને આ રીતે લગભગ દરેક પ્રકરણમાં સ્માર્ટ લાઇટ પ્રોજેક્ટ પર આધારિત પ્રેક્ટિસ વિભાગ સેટ કરીએ છીએ. તમામ કોડ ઓપન સોર્સ છે. GitHub અને અમારા અધિકૃત ફોરમ esp32.com પર આ પુસ્તક સંબંધિત વિભાગોમાં સ્રોત કોડ ડાઉનલોડ કરવા અને તેની ચર્ચા કરવા માટે વાચકોનું સ્વાગત છે. આ પુસ્તકનો ઓપન-સોર્સ કોડ Apache License 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 નોંધ અથવા ટીપ્સ.
આ પુસ્તકમાંના મોટાભાગના આદેશો Linux હેઠળ ચલાવવામાં આવે છે, જેને "$" અક્ષર દ્વારા સંકેત આપવામાં આવે છે. જો આદેશને ચલાવવા માટે સુપરયુઝર વિશેષાધિકારોની જરૂર હોય, તો પ્રોમ્પ્ટને "#" દ્વારા બદલવામાં આવશે. મેક સિસ્ટમ પર કમાન્ડ પ્રોમ્પ્ટ “%” છે, જેમ કે મેક પર ESP-IDF ઇન્સ્ટોલ કરવા વિભાગ 4.2.3 માં વપરાયેલ છે.
આ પુસ્તકમાં મુખ્ય ટેક્સ્ટ ચાર્ટરમાં છાપવામાં આવશે, જ્યારે કોડ ભૂતપૂર્વampલેસ, ઘટકો, કાર્યો, ચલો, કોડ file નામો, કોડ ડિરેક્ટરીઓ અને સ્ટ્રિંગ્સ કુરિયર ન્યૂમાં હશે.
આદેશો અથવા ટેક્સ્ટ કે જેને વપરાશકર્તા દ્વારા ઇનપુટ કરવાની જરૂર છે, અને "Enter" કી દબાવીને દાખલ કરી શકાય તેવા આદેશો કુરિયર ન્યૂ બોલ્ડમાં છાપવામાં આવશે. લોગ્સ અને કોડ બ્લોક આછા વાદળી રંગના બોક્સમાં રજૂ કરવામાં આવશે.
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 પાર્ટીશન કદ

પ્રકરણ 1

પરિચય

થી

આઇઓટી

20મી સદીના અંતમાં, કોમ્પ્યુટર નેટવર્ક અને કોમ્યુનિકેશન ટેક્નોલોજીના ઉદય સાથે, ઈન્ટરનેટ ઝડપથી લોકોના જીવનમાં એકીકૃત થઈ ગયું. જેમ જેમ ઈન્ટરનેટ ટેક્નોલોજી પરિપક્વ થઈ રહી છે, તેમ ઈન્ટરનેટ ઓફ થિંગ્સ (IoT) નો વિચાર જન્મ્યો. શાબ્દિક રીતે, IoT નો અર્થ એક ઇન્ટરનેટ છે જ્યાં વસ્તુઓ જોડાયેલ છે. જ્યારે મૂળ ઈન્ટરનેટ જગ્યા અને સમયની મર્યાદાઓને તોડે છે અને "વ્યક્તિ અને વ્યક્તિ" વચ્ચેનું અંતર ઘટાડે છે, ત્યારે IoT "વસ્તુઓ" ને એક મહત્વપૂર્ણ સહભાગી બનાવે છે, "લોકો" અને "વસ્તુઓ" ને એકબીજાની નજીક લાવે છે. નજીકના ભવિષ્યમાં, IoT માહિતી ઉદ્યોગનું પ્રેરક બળ બનવા માટે તૈયાર છે.
તો, ઈન્ટરનેટ ઓફ થિંગ્સ શું છે?
વસ્તુઓના ઇન્ટરનેટને ચોક્કસ રીતે વ્યાખ્યાયિત કરવું મુશ્કેલ છે, કારણ કે તેનો અર્થ અને અવકાશ સતત વિકસિત થઈ રહ્યો છે. 1995 માં, બિલ ગેટ્સે પ્રથમ વખત તેમના પુસ્તક ધ રોડ અહેડમાં IoTનો વિચાર રજૂ કર્યો હતો. સરળ શબ્દોમાં કહીએ તો, IoT ઑબ્જેક્ટ્સને ઈન્ટરનેટ દ્વારા એકબીજા સાથે માહિતીની આપલે કરવા સક્ષમ બનાવે છે. તેનું અંતિમ ધ્યેય "બધુંનું ઇન્ટરનેટ" સ્થાપિત કરવાનું છે. આ IoTનું પ્રારંભિક અર્થઘટન છે, તેમજ ભવિષ્યની ટેક્નોલોજીની કલ્પના છે. ત્રીસ વર્ષ પછી, અર્થતંત્ર અને ટેકનોલોજીના ઝડપી વિકાસ સાથે, કાલ્પનિક વાસ્તવિકતામાં આવી રહી છે. સ્માર્ટ ઉપકરણો, સ્માર્ટ હોમ્સ, સ્માર્ટ સિટીઝ, ઈન્ટરનેટ ઓફ વ્હીકલ અને વેરેબલ ડિવાઈસથી લઈને IoT ટેક્નોલોજી દ્વારા સપોર્ટેડ “મેટાવર્સ” સુધી, નવી વિભાવનાઓ સતત ઉભરી રહી છે. આ પ્રકરણમાં, અમે ઈન્ટરનેટ ઓફ થિંગ્સના આર્કિટેક્ચરની સમજૂતી સાથે શરૂઆત કરીશું, અને પછી સૌથી સામાન્ય IoT એપ્લિકેશન, સ્માર્ટ હોમનો પરિચય આપીશું, જેથી તમને IoTની સ્પષ્ટ સમજ મેળવવામાં મદદ મળે.
1.1 આઇઓટીનું આર્કિટેક્ચર
ઈન્ટરનેટ ઓફ થિંગ્સમાં બહુવિધ તકનીકોનો સમાવેશ થાય છે જે વિવિધ ઉદ્યોગોમાં વિવિધ એપ્લિકેશન જરૂરિયાતો અને સ્વરૂપો ધરાવે છે. માળખું, મુખ્ય તકનીકો અને IoT ની એપ્લિકેશન લાક્ષણિકતાઓને સૉર્ટ કરવા માટે, એક એકીકૃત આર્કિટેક્ચર અને પ્રમાણભૂત તકનીકી સિસ્ટમ સ્થાપિત કરવી જરૂરી છે. આ પુસ્તકમાં, IoT ના આર્કિટેક્ચરને ફક્ત ચાર સ્તરોમાં વિભાજિત કરવામાં આવ્યું છે: ધારણા અને નિયંત્રણ સ્તર, નેટવર્ક સ્તર, પ્લેટફોર્મ સ્તર અને એપ્લિકેશન સ્તર.
ધારણા અને નિયંત્રણ સ્તર IoT આર્કિટેક્ચરના સૌથી મૂળભૂત તત્વ તરીકે, IoT ના વ્યાપક સંવેદનાને સમજવા માટે પર્સેપ્શન અને કંટ્રોલ લેયર મુખ્ય છે. તેનું મુખ્ય કાર્ય માહિતી એકત્રિત કરવાનું, ઓળખવાનું અને નિયંત્રિત કરવાનું છે. તે દ્રષ્ટિની ક્ષમતા સાથે વિવિધ ઉપકરણોનો સમાવેશ કરે છે,
3

ઓળખ, નિયંત્રણ અને અમલ, અને સામગ્રી ગુણધર્મો, વર્તન વલણો અને ઉપકરણ સ્થિતિ જેવા ડેટાને પુનઃપ્રાપ્ત કરવા અને વિશ્લેષણ કરવા માટે જવાબદાર છે. આ રીતે, IoT વાસ્તવિક ભૌતિક વિશ્વને ઓળખે છે. આ ઉપરાંત, સ્તર ઉપકરણની સ્થિતિને નિયંત્રિત કરવામાં પણ સક્ષમ છે.
આ સ્તરના સૌથી સામાન્ય ઉપકરણો વિવિધ સેન્સર છે, જે માહિતી સંગ્રહ અને ઓળખમાં મહત્વપૂર્ણ ભૂમિકા ભજવે છે. સેન્સર્સ માનવ સંવેદનાત્મક અંગો જેવા છે, જેમ કે દ્રષ્ટિની સમાન ફોટોસેન્સિટિવ સેન્સર, સાંભળવા માટે એકોસ્ટિક સેન્સર્સ, ગંધ માટે ગેસ સેન્સર્સ અને સ્પર્શ માટે દબાણ- અને તાપમાન-સંવેદનશીલ સેન્સર્સ. આ બધા "સંવેદનાત્મક અવયવો" સાથે, પદાર્થો "જીવંત" બને છે અને ભૌતિક વિશ્વની બુદ્ધિશાળી દ્રષ્ટિ, માન્યતા અને હેરફેર માટે સક્ષમ બને છે.
નેટવર્ક લેયર નેટવર્ક લેયરનું મુખ્ય કાર્ય માહિતીને પ્રસારિત કરવાનું છે, જેમાં પર્સેપ્શન અને કંટ્રોલ લેયરમાંથી મેળવેલ ડેટાને નિર્દિષ્ટ ટાર્ગેટ પર તેમજ એપ્લીકેશન લેયરમાંથી જારી કરાયેલા આદેશો પર્સેપ્શન અને કંટ્રોલ લેયર પર પાછા મોકલવામાં આવે છે. તે 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 માટે વ્યાપક માર્ગદર્શિકા

ઉપલબ્ધ સંસાધનો, જેમ કે પ્રોસેસિંગ પર્ફોર્મન્સ, સ્ટોરેજ કેપેસિટી, નેટવર્ક રેટ, વગેરે, તેથી તે સંચાર પ્રોટોકોલ પસંદ કરવા માટે જરૂરી છે જે 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, દ્રશ્ય ઇન્ટરકનેક્શન એસtage અને બુદ્ધિશાળી એસtage, આકૃતિ 1.2 માં બતાવ્યા પ્રમાણે.
આકૃતિ 1.2. વિકાસ એસtage of smart home 6 ESP32-C3 વાયરલેસ એડવેન્ચર: IoT માટે એક વ્યાપક માર્ગદર્શિકા

પ્રથમ એસtage સ્માર્ટ ઉત્પાદનો વિશે છે. પરંપરાગત ઘરોથી અલગ, સ્માર્ટ ઘરોમાં, IoT ઉપકરણો સેન્સર સાથે સિગ્નલ મેળવે છે અને Wi-Fi, Bluetooth LE અને ZigBee જેવી વાયરલેસ કોમ્યુનિકેશન ટેક્નોલોજી દ્વારા નેટવર્ક કરવામાં આવે છે. વપરાશકર્તાઓ સ્માર્ટ ઉત્પાદનોને વિવિધ રીતે નિયંત્રિત કરી શકે છે, જેમ કે સ્માર્ટફોન એપ્લિકેશન્સ, વૉઇસ આસિસ્ટન્ટ્સ, સ્માર્ટ સ્પીકર કંટ્રોલ વગેરે. બીજુંtage દ્રશ્ય ઇન્ટરકનેક્શન પર ધ્યાન કેન્દ્રિત કરે છે. આમાં એસtage, વિકાસકર્તાઓ હવે સિંગલ સ્માર્ટ પ્રોડક્ટને નિયંત્રિત કરવાનું વિચારતા નથી, પરંતુ બે કે તેથી વધુ સ્માર્ટ પ્રોડક્ટ્સને એકબીજા સાથે જોડવાનું, અમુક હદ સુધી સ્વચાલિત કરવાનું અને અંતે કસ્ટમ સીન મોડ બનાવવાનું વિચારી રહ્યા છે. માજી માટેampતેથી, જ્યારે વપરાશકર્તા કોઈપણ દ્રશ્ય મોડ બટન દબાવશે, ત્યારે લાઇટ, પડદા અને એર કંડિશનર્સ આપમેળે પ્રીસેટ્સ માટે અનુકૂળ થઈ જશે. અલબત્ત, ટ્રિગર શરતો અને એક્ઝેક્યુશન ક્રિયાઓ સહિત લિંકેજ લોજિક સહેલાઈથી સેટ કરવામાં આવે તે પૂર્વશરત છે. કલ્પના કરો કે જ્યારે ઘરની અંદરનું તાપમાન 10 ડિગ્રી સેલ્સિયસથી નીચે જાય ત્યારે એર કન્ડીશનીંગ હીટિંગ મોડ ટ્રિગર થાય છે; કે સવારે 7 વાગ્યે, વપરાશકર્તાને જગાડવા માટે સંગીત વગાડવામાં આવે છે, સ્માર્ટ કર્ટેન્સ ખોલવામાં આવે છે, અને ચોખા કૂકર અથવા બ્રેડ ટોસ્ટર સ્માર્ટ સોકેટ દ્વારા શરૂ થાય છે; જેમ જેમ વપરાશકર્તા ઉઠે છે અને ધોવાનું સમાપ્ત કરે છે, નાસ્તો પહેલેથી જ પીરસવામાં આવે છે, જેથી કામ પર જવા માટે કોઈ વિલંબ ન થાય. આપણું જીવન કેટલું અનુકૂળ બની ગયું છે! ત્રીજા એસtage બાતમી s પર જાય છેtagઇ. જેમ જેમ વધુ સ્માર્ટ હોમ ડિવાઈસ એક્સેસ થશે, તેમ ડેટાના પ્રકારો જનરેટ થશે. ક્લાઉડ કમ્પ્યુટિંગ, મોટા ડેટા અને કૃત્રિમ બુદ્ધિમત્તાની મદદથી, તે સ્માર્ટ હોમ્સમાં "સ્માર્ટ મગજ" રોપવામાં આવ્યું છે, જેને હવે વપરાશકર્તા તરફથી વારંવાર આદેશોની જરૂર નથી. તેઓ અગાઉની ક્રિયાપ્રતિક્રિયાઓમાંથી ડેટા એકત્રિત કરે છે અને વપરાશકર્તાની વર્તણૂક પેટર્ન અને પસંદગીઓ શીખે છે, જેથી નિર્ણય લેવા માટેની ભલામણો પૂરી પાડવા સહિતની પ્રવૃત્તિઓને સ્વચાલિત કરી શકાય. હાલમાં, મોટાભાગના સ્માર્ટ ઘરો સીન ઇન્ટરકનેક્શન પર છેtagઇ. જેમ જેમ સ્માર્ટ ઉત્પાદનોનો ઘૂંસપેંઠ દર અને બુદ્ધિ વધે છે તેમ, સંચાર પ્રોટોકોલ વચ્ચેના અવરોધો દૂર કરવામાં આવે છે. ભવિષ્યમાં, સ્માર્ટ હોમ્સ ખરેખર "સ્માર્ટ" બનવા માટે બંધાયેલા છે, જેમ કે આયર્ન મૅનમાં AI સિસ્ટમ જાર્વિસ, જે ફક્ત વપરાશકર્તાને વિવિધ ઉપકરણોને નિયંત્રિત કરવામાં, દૈનિક બાબતોને નિયંત્રિત કરવામાં મદદ કરી શકે છે, પરંતુ સુપર કમ્પ્યુટિંગ પાવર અને વિચારવાની ક્ષમતા પણ ધરાવે છે. માં બુદ્ધિશાળી એસtage, માણસોને જથ્થા અને ગુણવત્તા બંને રીતે સારી સેવાઓ પ્રાપ્ત થશે.
પ્રકરણ 1. IoT 7 નો પરિચય

8 ESP32-C3 વાયરલેસ એડવેન્ચર: IoT માટે વ્યાપક માર્ગદર્શિકા

2 IoT પ્રોજેક્ટ્સનો પ્રકરણ પરિચય અને પ્રેક્ટિસ
પ્રકરણ 1 માં, અમે IoT ના આર્કિટેક્ચર, અને ધારણા અને નિયંત્રણ સ્તર, નેટવર્ક સ્તર, પ્લેટફોર્મ સ્તર અને એપ્લિકેશન સ્તરની ભૂમિકાઓ અને આંતરસંબંધો તેમજ સ્માર્ટ હોમના વિકાસની રજૂઆત કરી છે. જો કે, જેમ કે જ્યારે આપણે રંગવાનું શીખીએ છીએ, ત્યારે સૈદ્ધાંતિક જ્ઞાન જાણવું પૂરતું નથી. ટેક્નોલોજીમાં ખરેખર નિપુણતા મેળવવા માટે IoT પ્રોજેક્ટને વ્યવહારમાં મૂકવા માટે આપણે "આપણા હાથ ગંદા કરવા" પડશે. વધુમાં, જ્યારે કોઈ પ્રોજેક્ટ મોટા પાયે ઉત્પાદન તરફ જાય છેtage, નેટવર્ક કનેક્શન, રૂપરેખાંકન, 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 ઉપકરણો ઉત્પાદકોની જરૂરિયાતોને આધારે ફર્મવેર અપગ્રેડ પણ પ્રાપ્ત કરી શકે છે. ક્લાઉડ દ્વારા મોકલવામાં આવેલ આદેશો પ્રાપ્ત કરીને, ફર્મવેર અપગ્રેડ અને વર્ઝન મેનેજમેન્ટ સાકાર થશે. આ ફર્મવેર અપગ્રેડ સુવિધા સાથે, તમે IoT ઉપકરણોના કાર્યોને સતત વધારી શકો છો, ખામીઓ દૂર કરી શકો છો અને વપરાશકર્તા અનુભવને સુધારી શકો છો.
2.1.2 ક્લાયન્ટ એપ્લિકેશન્સના મૂળભૂત મોડ્યુલો
ક્લાયન્ટ એપ્લિકેશન્સ (દા.ત., સ્માર્ટફોન એપ્લિકેશન્સ) મુખ્યત્વે નીચેના મૂળભૂત મોડ્યુલોનો સમાવેશ કરે છે:
એકાઉન્ટ સિસ્ટમ અને અધિકૃતતા તે એકાઉન્ટ અને ઉપકરણ અધિકૃતતાને સમર્થન આપે છે.
ઉપકરણ નિયંત્રણ સ્માર્ટફોન એપ્લિકેશનો સામાન્ય રીતે નિયંત્રણ કાર્યોથી સજ્જ હોય ​​છે. વપરાશકર્તાઓ સરળતાથી IoT ઉપકરણો સાથે કનેક્ટ થઈ શકે છે, અને તેમને કોઈપણ સમયે, ગમે ત્યાં સ્માર્ટફોન એપ્લિકેશન દ્વારા સંચાલિત કરી શકે છે. વાસ્તવિક દુનિયાના સ્માર્ટ હોમમાં, ઉપકરણો મોટાભાગે સ્માર્ટફોન એપ્લિકેશનો દ્વારા નિયંત્રિત થાય છે, જે ફક્ત ઉપકરણોના બુદ્ધિશાળી સંચાલનને સક્ષમ કરતું નથી, પરંતુ માનવશક્તિનો ખર્ચ પણ બચાવે છે. તેથી, ક્લાયંટ એપ્લિકેશન્સ માટે ઉપકરણ નિયંત્રણ આવશ્યક છે, જેમ કે ઉપકરણ કાર્ય વિશેષતા નિયંત્રણ, દ્રશ્ય નિયંત્રણ, શેડ્યૂલિંગ, રિમોટ કંટ્રોલ, ઉપકરણ લિંકેજ, વગેરે. સ્માર્ટ હોમ વપરાશકર્તાઓ વ્યક્તિગત જરૂરિયાતો અનુસાર દ્રશ્યોને કસ્ટમાઇઝ કરી શકે છે, લાઇટિંગ, ઘરનાં ઉપકરણો, પ્રવેશદ્વારને નિયંત્રિત કરી શકે છે. , વગેરે, ઘરના જીવનને વધુ આરામદાયક અને અનુકૂળ બનાવવા માટે. તેઓ એર કન્ડીશનીંગનો સમય કાઢી શકે છે, તેને દૂરથી બંધ કરી શકે છે, એકવાર દરવાજો અનલૉક થઈ જાય પછી હૉલવેની લાઇટ ઑટોમૅટિક રીતે ચાલુ કરી શકે છે અથવા એક જ બટન વડે "થિયેટર" મોડ પર સ્વિચ કરી શકે છે.
સૂચના ક્લાયન્ટ એપ્લિકેશન્સ IoT ઉપકરણોની રીઅલ-ટાઇમ સ્થિતિને અપડેટ કરે છે, અને જ્યારે ઉપકરણો અસામાન્ય થઈ જાય ત્યારે ચેતવણીઓ મોકલે છે.
10 ESP32-C3 વાયરલેસ એડવેન્ચર: IoT માટે વ્યાપક માર્ગદર્શિકા

વેચાણ પછીની ગ્રાહક સેવા સ્માર્ટફોન એપ્લિકેશન્સ ઉત્પાદનો માટે વેચાણ પછીની સેવાઓ પૂરી પાડી શકે છે, જેથી IoT ઉપકરણની નિષ્ફળતા અને તકનીકી કામગીરીને લગતી સમસ્યાઓને સમયસર ઉકેલી શકાય.
વૈશિષ્ટિકૃત કાર્યો વિવિધ વપરાશકર્તાઓની જરૂરિયાતોને પહોંચી વળવા માટે, અન્ય કાર્યો ઉમેરી શકાય છે, જેમ કે શેક, એનએફસી, જીપીએસ, વગેરે. જીપીએસ સ્થાન અને અંતર અનુસાર દ્રશ્ય કામગીરીની ચોકસાઈ સેટ કરવામાં મદદ કરી શકે છે, જ્યારે શેક ફંક્શન વપરાશકર્તાઓને સેટ કરવાની મંજૂરી આપે છે. ધ્રુજારી દ્વારા ચોક્કસ ઉપકરણ અથવા દ્રશ્ય માટે એક્ઝિક્યુટ કરવાના આદેશો.
2.1.3 સામાન્ય IoT ક્લાઉડ પ્લેટફોર્મ્સનો પરિચય
IoT ક્લાઉડ પ્લેટફોર્મ એક ઓલ-ઇન-વન પ્લેટફોર્મ છે જે ઉપકરણ સંચાલન, ડેટા સુરક્ષા સંચાર અને સૂચના સંચાલન જેવા કાર્યોને એકીકૃત કરે છે. તેમના લક્ષ્ય જૂથ અને ઍક્સેસિબિલિટી અનુસાર, IoT ક્લાઉડ પ્લેટફોર્મને સાર્વજનિક IoT ક્લાઉડ પ્લેટફોર્મ (ત્યારબાદ "પબ્લિક ક્લાઉડ" તરીકે ઓળખવામાં આવે છે) અને ખાનગી IoT ક્લાઉડ પ્લેટફોર્મ્સ (ત્યારબાદ "ખાનગી ક્લાઉડ" તરીકે ઓળખવામાં આવે છે)માં વિભાજિત કરી શકાય છે.
સાર્વજનિક ક્લાઉડ સામાન્ય રીતે સાહસો અથવા વ્યક્તિઓ માટે શેર કરેલ IoT ક્લાઉડ પ્લેટફોર્મ સૂચવે છે, જે પ્લેટફોર્મ પ્રદાતાઓ દ્વારા સંચાલિત અને જાળવવામાં આવે છે અને ઇન્ટરનેટ દ્વારા શેર કરવામાં આવે છે. તે મફત અથવા ઓછા ખર્ચે હોઈ શકે છે, અને સમગ્ર ખુલ્લા જાહેર નેટવર્કમાં સેવાઓ પ્રદાન કરે છે, જેમ કે અલીબાબા ક્લાઉડ, ટેનસેન્ટ ક્લાઉડ, બાયડુ ક્લાઉડ, AWS IoT, Google IoT, વગેરે. સહાયક પ્લેટફોર્મ તરીકે, પબ્લિક ક્લાઉડ અપસ્ટ્રીમ સેવા પ્રદાતાઓને એકીકૃત કરી શકે છે અને ડાઉનસ્ટ્રીમ અંતિમ વપરાશકર્તાઓ નવી મૂલ્ય સાંકળ અને ઇકોસિસ્ટમ બનાવવા માટે.
ખાનગી ક્લાઉડ ફક્ત એન્ટરપ્રાઇઝના ઉપયોગ માટે બનાવવામાં આવ્યું છે, આમ ડેટા, સુરક્ષા અને સેવાની ગુણવત્તા પર શ્રેષ્ઠ નિયંત્રણની ખાતરી આપે છે. તેની સેવાઓ અને ઈન્ફ્રાસ્ટ્રક્ચર એન્ટરપ્રાઈઝ દ્વારા અલગથી જાળવવામાં આવે છે, અને સહાયક હાર્ડવેર અને સોફ્ટવેર પણ ચોક્કસ વપરાશકર્તાઓને સમર્પિત છે. એન્ટરપ્રાઇઝ તેમના વ્યવસાયની જરૂરિયાતોને પહોંચી વળવા ક્લાઉડ સેવાઓને કસ્ટમાઇઝ કરી શકે છે. હાલમાં, કેટલાક સ્માર્ટ હોમ ઉત્પાદકો પાસે પહેલેથી જ ખાનગી IoT ક્લાઉડ પ્લેટફોર્મ્સ છે અને તેના આધારે સ્માર્ટ હોમ એપ્લિકેશન્સ વિકસાવી છે.
પબ્લિક ક્લાઉડ અને પ્રાઈવેટ ક્લાઉડની પોતાની એડવાન છેtages, જે પછીથી સમજાવવામાં આવશે.
કોમ્યુનિકેશન કનેક્ટિવિટી હાંસલ કરવા માટે, બિઝનેસ સર્વર્સ, IoT ક્લાઉડ પ્લેટફોર્મ્સ અને સ્માર્ટફોન એપ્લિકેશન્સ સાથે, ઉપકરણ બાજુ પર ઓછામાં ઓછું એમ્બેડેડ વિકાસ પૂર્ણ કરવું જરૂરી છે. આટલા વિશાળ પ્રોજેક્ટનો સામનો કરતા, પબ્લિક ક્લાઉડ સામાન્ય રીતે પ્રક્રિયાને ઝડપી બનાવવા માટે ઉપકરણ-બાજુ અને સ્માર્ટફોન એપ્લિકેશન્સ માટે સોફ્ટવેર ડેવલપમેન્ટ કિટ્સ પ્રદાન કરે છે. સાર્વજનિક અને ખાનગી બંને ક્લાઉડ ઉપકરણ ઍક્સેસ, ઉપકરણ સંચાલન, ઉપકરણ શેડો અને સંચાલન અને જાળવણી સહિત સેવાઓ પ્રદાન કરે છે.
ડિવાઇસ એક્સેસ IoT ક્લાઉડ પ્લેટફોર્મને પ્રોટોકોલનો ઉપયોગ કરીને ડિવાઇસ એક્સેસ માટે માત્ર ઇન્ટરફેસ જ પ્રદાન કરવાની જરૂર નથી
પ્રકરણ 2. IoT પ્રોજેક્ટ્સનો પરિચય અને પ્રેક્ટિસ 11

જેમ કે MQTT, CoAP, HTTPS, અને Webસોકેટ, પણ બનાવટી અને ગેરકાયદેસર ઉપકરણોને અવરોધિત કરવા માટે ઉપકરણ સુરક્ષા પ્રમાણીકરણનું કાર્ય, અસરકારક રીતે ચેડા થવાના જોખમને ઘટાડે છે. આવા પ્રમાણીકરણ સામાન્ય રીતે વિવિધ મિકેનિઝમ્સને સપોર્ટ કરે છે, તેથી જ્યારે ઉપકરણો મોટા પ્રમાણમાં ઉત્પન્ન થાય છે, ત્યારે પસંદ કરેલ પ્રમાણીકરણ પદ્ધતિ અનુસાર ઉપકરણ પ્રમાણપત્રને પૂર્વ-સોંપણી કરવું અને તેને ઉપકરણોમાં બર્ન કરવું જરૂરી છે.
ઉપકરણ સંચાલન IoT ક્લાઉડ પ્લેટફોર્મ્સ દ્વારા પ્રદાન કરવામાં આવેલ ઉપકરણ સંચાલન કાર્ય ઉત્પાદકોને તેમના ઉપકરણોની સક્રિયકરણ સ્થિતિ અને વાસ્તવિક સમયમાં ઑનલાઇન સ્થિતિને મોનિટર કરવામાં મદદ કરી શકે છે, પરંતુ ઉપકરણોને ઉમેરવા / દૂર કરવા, પુનઃપ્રાપ્ત કરવા, જૂથો ઉમેરવા / કાઢી નાખવા, ફર્મવેર અપગ્રેડ જેવા વિકલ્પોની મંજૂરી આપે છે. , અને વર્ઝન મેનેજમેન્ટ.
ઉપકરણ શેડો IoT ક્લાઉડ પ્લેટફોર્મ દરેક ઉપકરણ માટે સતત વર્ચ્યુઅલ સંસ્કરણ (ઉપકરણ શેડો) બનાવી શકે છે, અને ઉપકરણ શેડોની સ્થિતિને સિંક્રનાઇઝ કરી શકાય છે અને ઇન્ટરનેટ ટ્રાન્સમિશન પ્રોટોકોલ દ્વારા સ્માર્ટફોન એપ્લિકેશન અથવા અન્ય ઉપકરણો દ્વારા મેળવી શકાય છે. ઉપકરણ શેડો દરેક ઉપકરણની નવીનતમ અહેવાલ સ્થિતિ અને અપેક્ષિત સ્થિતિને સંગ્રહિત કરે છે, અને જો ઉપકરણ ઑફલાઇન હોય, તો પણ તે API ને કૉલ કરીને સ્થિતિ પ્રાપ્ત કરી શકે છે. ઉપકરણ શેડો હંમેશા-ચાલુ API પ્રદાન કરે છે, જે ઉપકરણો સાથે ક્રિયાપ્રતિક્રિયા કરતી સ્માર્ટફોન એપ્લિકેશન્સ બનાવવાનું સરળ બનાવે છે.
સંચાલન અને જાળવણી O&M કાર્યમાં ત્રણ પાસાઓનો સમાવેશ થાય છે: · IoT ઉપકરણો અને સૂચનાઓ વિશે આંકડાકીય માહિતીનું પ્રદર્શન. લોગ મેનેજમેન્ટ ઉપકરણ વર્તણૂક, ઉપર/નીચે સંદેશ પ્રવાહ અને સંદેશ સામગ્રી વિશે માહિતી પુનઃપ્રાપ્ત કરવાની મંજૂરી આપે છે. ઉપકરણ ડિબગીંગ કમાન્ડ ડિલિવરી, રૂપરેખાંકન અપડેટ અને IoT ક્લાઉડ પ્લેટફોર્મ્સ અને ઉપકરણ સંદેશાઓ વચ્ચેની ક્રિયાપ્રતિક્રિયા તપાસવાનું સમર્થન કરે છે.
2.2 પ્રેક્ટિસ: સ્માર્ટ લાઇટ પ્રોજેક્ટ
દરેક પ્રકરણમાં સૈદ્ધાંતિક પરિચય પછી, તમને અનુભવ મેળવવામાં મદદ કરવા માટે સ્માર્ટ લાઇટ પ્રોજેક્ટ સાથે સંબંધિત પ્રેક્ટિસ વિભાગ મળશે. આ પ્રોજેક્ટ Espressif ની ESP32-C3 ચિપ અને ESP RainMaker IoT ક્લાઉડ પ્લેટફોર્મ પર આધારિત છે, અને સ્માર્ટ લાઇટ પ્રોડક્ટ્સમાં વાયરલેસ મોડ્યુલ હાર્ડવેર, ESP32C3 પર આધારિત સ્માર્ટ ઉપકરણો માટે એમ્બેડેડ સોફ્ટવેર, સ્માર્ટફોન એપ્લિકેશન્સ અને ESP RainMaker ક્રિયાપ્રતિક્રિયાને આવરી લે છે.
સ્ત્રોત કોડ વધુ સારી રીતે શીખવા અને અનુભવ વિકસાવવા માટે, આ પુસ્તકમાંનો પ્રોજેક્ટ ઓપનસોર્સ કરવામાં આવ્યો છે. તમે https://github પર અમારા GitHub ભંડારમાંથી સ્રોત કોડ ડાઉનલોડ કરી શકો છો. com/espressif/book-esp32c3-iot-projects.
12 ESP32-C3 વાયરલેસ એડવેન્ચર: IoT માટે વ્યાપક માર્ગદર્શિકા

2.2.1 પ્રોજેક્ટ સ્ટ્રક્ચર
સ્માર્ટ લાઇટ પ્રોજેક્ટમાં ત્રણ ભાગોનો સમાવેશ થાય છે: 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 પ્રોજેક્ટ કાર્યો
બંધારણ મુજબ વિભાજિત, દરેક ભાગના કાર્યો નીચે મુજબ છે. સ્માર્ટ લાઇટ ઉપકરણો
· નેટવર્ક ગોઠવણી અને જોડાણ. · LED PWM નિયંત્રણ, જેમ કે સ્વીચ, બ્રાઇટનેસ, કલર ટેમ્પરેચર વગેરે. · ઓટોમેશન અથવા સીન કંટ્રોલ, દા.ત., ટાઈમ સ્વિચ. એન્ક્રિપ્શન અને ફ્લેશનું સુરક્ષિત બુટ. · ફર્મવેર અપગ્રેડ અને વર્ઝન મેનેજમેન્ટ.
પ્રકરણ 2. IoT પ્રોજેક્ટ્સનો પરિચય અને પ્રેક્ટિસ 13

સ્માર્ટફોન એપ્લિકેશન્સ · નેટવર્ક ગોઠવણી અને ઉપકરણ બંધનકર્તા. · સ્માર્ટ લાઇટ પ્રોડક્ટ કંટ્રોલ, જેમ કે સ્વીચ, બ્રાઇટનેસ, કલર ટેમ્પરેચર વગેરે. · ઓટોમેશન અથવા સીન સેટિંગ્સ, દા.ત., ટાઇમ સ્વિચ · સ્થાનિક/રિમોટ કંટ્રોલ. · વપરાશકર્તા નોંધણી, લૉગિન, વગેરે.
ESP RainMaker IoT ક્લાઉડ પ્લેટફોર્મ · IoT ઉપકરણ ઍક્સેસ સક્ષમ કરી રહ્યું છે. · સ્માર્ટફોન એપ્લિકેશનો માટે સુલભ ઉપકરણ ઓપરેશન API પ્રદાન કરવું. · ફર્મવેર અપગ્રેડ અને વર્ઝન મેનેજમેન્ટ.
2.2.3 હાર્ડવેર તૈયારી
જો પ્રોજેક્ટને વ્યવહારમાં લાવવામાં રસ હોય, તો તમારે નીચેના હાર્ડવેરની પણ જરૂર પડશે: સ્માર્ટ લાઇટ્સ, સ્માર્ટફોન, વાઇ-ફાઇ રાઉટર્સ અને એક કમ્પ્યુટર જે વિકાસ પર્યાવરણની ઇન્સ્ટોલેશન આવશ્યકતાઓને પૂર્ણ કરે છે. સ્માર્ટ લાઇટ
સ્માર્ટ લાઇટ એ એક નવા પ્રકારના બલ્બ છે, જેનો આકાર સામાન્ય અગ્નિથી પ્રકાશિત બલ્બ જેવો જ છે. એક સ્માર્ટ લાઇટ કેપેસિટર સ્ટેપ-ડાઉન રેગ્યુલેટેડ પાવર સપ્લાય, વાયરલેસ મોડ્યુલ (બિલ્ટ-ઇન ESP32-C3 સાથે), LED કંટ્રોલર અને RGB LED મેટ્રિક્સથી બનેલી છે. જ્યારે પાવર સાથે જોડાયેલ હોય, ત્યારે 15 V DC voltagકેપેસિટર સ્ટેપ-ડાઉન, ડાયોડ સુધારણા અને નિયમન પછી e આઉટપુટ LED નિયંત્રક અને LED મેટ્રિક્સને ઊર્જા પૂરી પાડે છે. એલઇડી કંટ્રોલર અમુક સમયાંતરે આરજીબી એલઇડી મેટ્રિક્સને બંધ (લાઇટ ચાલુ) અને ખુલ્લી (લાઇટ બંધ) વચ્ચે સ્વિચ કરીને, ઉચ્ચ અને નીચા સ્તરને આપમેળે મોકલી શકે છે, જેથી તે સ્યાન, પીળો, લીલો, જાંબલી, વાદળી, લાલ અને સફેદ પ્રકાશ. વાયરલેસ મોડ્યુલ Wi-Fi રાઉટર સાથે કનેક્ટ કરવા, સ્માર્ટ લાઇટની સ્થિતિ પ્રાપ્ત કરવા અને તેની જાણ કરવા અને LED ને નિયંત્રિત કરવા આદેશો મોકલવા માટે જવાબદાર છે.
આકૃતિ 2.2. એક સિમ્યુલેટેડ સ્માર્ટ લાઇટ
પ્રારંભિક વિકાસમાં એસtage, તમે RGB LED l સાથે જોડાયેલા ESP32-C3DevKitM-1 બોર્ડનો ઉપયોગ કરીને સ્માર્ટ લાઇટનું અનુકરણ કરી શકો છો.amp માળા (આકૃતિ 2.2 જુઓ). પરંતુ તમારે જોઈએ
14 ESP32-C3 વાયરલેસ એડવેન્ચર: IoT માટે વ્યાપક માર્ગદર્શિકા

નોંધ કરો કે સ્માર્ટ લાઇટ એસેમ્બલ કરવાનો આ એકમાત્ર રસ્તો નથી. આ પુસ્તકમાં પ્રોજેક્ટની હાર્ડવેર ડિઝાઇનમાં માત્ર વાયરલેસ મોડ્યુલ છે (બિલ્ટ-ઇન ESP32-C3 સાથે), પરંતુ સંપૂર્ણ સ્માર્ટ લાઇટ હાર્ડવેર ડિઝાઇન નથી. વધુમાં, એસ્પ્રેસિફ ઑડિયો સાથે લાઇટને નિયંત્રિત કરવા માટે ESP32-C3-આધારિત ઑડિયો ડેવલપમેન્ટ બોર્ડ ESP32C3-Lyra પણ બનાવે છે. બોર્ડમાં માઇક્રોફોન અને સ્પીકર્સ માટે ઇન્ટરફેસ છે અને તે LED સ્ટ્રીપ્સને નિયંત્રિત કરી શકે છે. તેનો ઉપયોગ અલ્ટ્રા-લો-કોસ્ટ, ઉચ્ચ પ્રદર્શન ઓડિયો બ્રોડકાસ્ટર્સ અને રિધમ લાઇટ સ્ટ્રીપ્સ વિકસાવવા માટે થઈ શકે છે. આકૃતિ 2.3 એ ESP32-C3Lyra બોર્ડ બતાવે છે જે 40 LED લાઇટની સ્ટ્રીપ સાથે જોડાયેલ છે.
આકૃતિ 2.3. ESP32-C3-Lyra 40 LED લાઇટની સ્ટ્રીપ સાથે જોડાયેલ છે
સ્માર્ટફોન્સ (Android/iOS) સ્માર્ટ લાઇટ પ્રોજેક્ટમાં સ્માર્ટ લાઇટ પ્રોડક્ટ્સ સેટ કરવા અને નિયંત્રિત કરવા માટે સ્માર્ટફોન એપ્લિકેશનના વિકાસનો સમાવેશ થાય છે.
વાઇ-ફાઇ રાઉટર્સ વાઇ-ફાઇ રાઉટર્સ વાયર્ડ નેટવર્ક સિગ્નલ અને મોબાઇલ નેટવર્ક સિગ્નલને વાયરલેસ નેટવર્ક સિગ્નલમાં કન્વર્ટ કરે છે, કમ્પ્યુટર, સ્માર્ટફોન, ટેબ્લેટ અને અન્ય વાયરલેસ ઉપકરણોને નેટવર્કથી કનેક્ટ કરવા માટે. માજી માટેampતેથી, Wi-Fi ઉપકરણોના વાયરલેસ નેટવર્કિંગને પ્રાપ્ત કરવા માટે ઘરમાં બ્રોડબેન્ડને ફક્ત Wi-Fi રાઉટર સાથે કનેક્ટ કરવાની જરૂર છે. Wi-Fi રાઉટર્સ દ્વારા સપોર્ટેડ મુખ્ય પ્રવાહના પ્રોટોકોલ સ્ટાન્ડર્ડ 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) Wi-Fi રાઉટર પસંદ કરી શકો છો.
પ્રકરણ 4 માં કમ્પ્યુટર (Linux/macOS/Windows) ડેવલપમેન્ટ એન્વાયર્નમેન્ટ રજૂ કરવામાં આવશે. પ્રકરણ 2. IoT પ્રોજેક્ટ્સ 15 નો પરિચય અને પ્રેક્ટિસ

૨.૨.૪ વિકાસ પ્રક્રિયા
આકૃતિ 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 માટે વ્યાપક માર્ગદર્શિકા

પ્રકરણ 3

પરિચય

થી

ESP

રેઈનમેકર

ઈન્ટરનેટ ઓફ થિંગ્સ (IoT) લોકોની જીવનશૈલી બદલવાની અનંત શક્યતાઓ પ્રદાન કરે છે, છતાં IoT એન્જિનિયરિંગનો વિકાસ પડકારોથી ભરેલો છે. જાહેર વાદળો સાથે, ટર્મિનલ ઉત્પાદકો નીચેના ઉકેલો દ્વારા ઉત્પાદન કાર્યક્ષમતાને અમલમાં મૂકી શકે છે:
સોલ્યુશન પ્રદાતાઓના ક્લાઉડ પ્લેટફોર્મ પર આધારિત આ રીતે, ટર્મિનલ ઉત્પાદકોએ માત્ર ઉત્પાદન હાર્ડવેરને ડિઝાઇન કરવાની જરૂર છે, પછી પ્રદાન કરેલ કોમ્યુનિકેશન મોડ્યુલનો ઉપયોગ કરીને હાર્ડવેરને ક્લાઉડ સાથે કનેક્ટ કરવાની અને માર્ગદર્શિકાને અનુસરીને ઉત્પાદન કાર્યોને ગોઠવવાની જરૂર છે. આ એક કાર્યક્ષમ અભિગમ છે કારણ કે તે સર્વર-સાઇડ અને એપ્લિકેશન-સાઇડ ડેવલપમેન્ટ અને ઓપરેશન્સ અને મેઇન્ટેનન્સ (O&M)ની જરૂરિયાતને દૂર કરે છે. તે ટર્મિનલ ઉત્પાદકોને ક્લાઉડ અમલીકરણને ધ્યાનમાં લીધા વિના હાર્ડવેર ડિઝાઇન પર ધ્યાન કેન્દ્રિત કરવાની મંજૂરી આપે છે. જો કે, આવા સોલ્યુશન્સ (દા.ત., ઉપકરણ ફર્મવેર અને એપ) સામાન્ય રીતે ઓપન સોર્સ હોતા નથી, તેથી ઉત્પાદન કાર્યો પ્રદાતાના ક્લાઉડ પ્લેટફોર્મ દ્વારા મર્યાદિત હશે જે કસ્ટમાઇઝ કરી શકાતા નથી. દરમિયાન, વપરાશકર્તા અને ઉપકરણ ડેટા પણ ક્લાઉડ પ્લેટફોર્મ સાથે સંબંધિત છે.
ક્લાઉડ પ્રોડક્ટ્સ પર આધારિત આ સોલ્યુશનમાં, હાર્ડવેર ડિઝાઈન પૂર્ણ કર્યા પછી, ટર્મિનલ ઉત્પાદકોએ પબ્લિક ક્લાઉડ દ્વારા પ્રદાન કરવામાં આવેલ એક અથવા વધુ ક્લાઉડ પ્રોડક્ટ્સનો ઉપયોગ કરીને ક્લાઉડ ફંક્શનનો અમલ કરવાની જરૂર નથી, પરંતુ હાર્ડવેરને ક્લાઉડ સાથે લિંક કરવાની પણ જરૂર છે. માજી માટેampલે, એમેઝોન સાથે જોડાવા માટે Web સર્વિસીસ (AWS), ટર્મિનલ ઉત્પાદકોએ AWS પ્રોડક્ટ્સ જેમ કે એમેઝોન API ગેટવે, AWS IoT કોર અને AWS લેમ્બડાનો ઉપયોગ ઉપકરણ ઍક્સેસ, રિમોટ કંટ્રોલ, ડેટા સ્ટોરેજ, યુઝર મેનેજમેન્ટ અને અન્ય મૂળભૂત કાર્યોને સક્ષમ કરવા માટે કરવાની જરૂર છે. તે માત્ર ટર્મિનલ ઉત્પાદકોને ગહન સમજણ અને સમૃદ્ધ અનુભવ સાથે ક્લાઉડ ઉત્પાદનોનો લવચીક ઉપયોગ અને ગોઠવણી કરવા માટે કહે છે, પરંતુ તેમને પ્રારંભિક અને પછીના ઉત્પાદન માટે બાંધકામ અને જાળવણી ખર્ચને ધ્યાનમાં લેવાની પણ જરૂર છે.tages આ કંપનીની ઊર્જા અને સંસાધનો માટે મોટા પડકારો ઉભો કરે છે.
જાહેર વાદળોની તુલનામાં, ખાનગી વાદળો સામાન્ય રીતે ચોક્કસ પ્રોજેક્ટ્સ અને ઉત્પાદનો માટે બનાવવામાં આવે છે. ખાનગી ક્લાઉડ ડેવલપર્સને પ્રોટોકોલ ડિઝાઇન અને બિઝનેસ લોજિક અમલીકરણમાં ઉચ્ચતમ સ્તરની સ્વતંત્રતા આપવામાં આવે છે. ટર્મિનલ ઉત્પાદકો ઇચ્છા મુજબ ઉત્પાદનો અને ડિઝાઇન યોજનાઓ બનાવી શકે છે અને વપરાશકર્તા ડેટાને સરળતાથી સંકલિત અને સશક્તિકરણ કરી શકે છે. એડવાન સાથે જાહેર ક્લાઉડની ઉચ્ચ સુરક્ષા, માપનીયતા અને વિશ્વસનીયતાનું સંયોજનtagખાનગી ક્લાઉડના es, Espressif એ ESP લોન્ચ કર્યું
19

RainMaker, એમેઝોન ક્લાઉડ પર આધારિત ઊંડો સંકલિત ખાનગી ક્લાઉડ સોલ્યુશન. વપરાશકર્તાઓ ESP RainMaker નો ઉપયોગ કરી શકે છે અને AWS એકાઉન્ટ વડે ખાનગી ક્લાઉડ બનાવી શકે છે.
3.1 ESP રેઇનમેકર શું છે?
ESP RainMaker એ એક સંપૂર્ણ AIoT પ્લેટફોર્મ છે જે બહુવિધ પુખ્ત AWS ઉત્પાદનો સાથે બનેલ છે. તે મોટા પાયે ઉત્પાદન માટે જરૂરી વિવિધ સેવાઓ પૂરી પાડે છે જેમ કે ઉપકરણ ક્લાઉડ એક્સેસ, ઉપકરણ અપગ્રેડ, બેકએન્ડ મેનેજમેન્ટ, તૃતીય-પક્ષ લૉગિન, વૉઇસ એકીકરણ અને વપરાશકર્તા સંચાલન. AWS દ્વારા પૂરી પાડવામાં આવેલ સર્વરલેસ એપ્લિકેશન રિપોઝીટરી (SAR) નો ઉપયોગ કરીને, ટર્મિનલ ઉત્પાદકો ઝડપથી ESP RainMaker ને તેમના AWS એકાઉન્ટ્સમાં જમાવી શકે છે, જે સમય-કાર્યક્ષમ અને ચલાવવા માટે સરળ છે. Espressif દ્વારા સંચાલિત અને જાળવવામાં આવેલ, ESP RainMaker દ્વારા ઉપયોગમાં લેવાતો SAR વિકાસકર્તાઓને ક્લાઉડ જાળવણી ખર્ચ ઘટાડવામાં અને AIoT ઉત્પાદનોના વિકાસને વેગ આપવામાં મદદ કરે છે, આમ સુરક્ષિત, સ્થિર અને કસ્ટમાઇઝ કરી શકાય તેવા AIoT સોલ્યુશન્સનું નિર્માણ કરે છે. આકૃતિ 3.1 ESP RainMaker નું આર્કિટેક્ચર બતાવે છે.
આકૃતિ 3.1. ESP રેઇનમેકરનું આર્કિટેક્ચર
Espressif દ્વારા ESP RainMaker પબ્લિક સર્વર બધા ESP ઉત્સાહીઓ, નિર્માતાઓ અને ઉકેલ મૂલ્યાંકન માટે શિક્ષકો માટે મફત છે. ડેવલપર્સ Apple, Google, અથવા GitHub એકાઉન્ટ્સ વડે લૉગ ઇન કરી શકે છે અને ઝડપથી તેમના પોતાના IoT એપ્લિકેશન પ્રોટોટાઇપ બનાવી શકે છે. સાર્વજનિક સર્વર એલેક્સા અને ગૂગલ હોમને એકીકૃત કરે છે અને વૉઇસ કંટ્રોલ સેવાઓ પ્રદાન કરે છે, જે એલેક્સા સ્કિલ અને ગૂગલ ઍક્શન્સ દ્વારા સપોર્ટેડ છે. તેનું સિમેન્ટીક રેકગ્નિશન ફંક્શન પણ તૃતીય પક્ષો દ્વારા સંચાલિત છે. RainMaker IoT ઉપકરણો માત્ર ચોક્કસ ક્રિયાઓનો પ્રતિસાદ આપે છે. સમર્થિત વૉઇસ આદેશોની સંપૂર્ણ સૂચિ માટે, કૃપા કરીને તૃતીય-પક્ષ પ્લેટફોર્મ તપાસો. વધુમાં, Espressif સ્માર્ટફોન દ્વારા ઉત્પાદનોને નિયંત્રિત કરવા માટે વપરાશકર્તાઓ માટે સાર્વજનિક RainMaker એપ્લિકેશન ઓફર કરે છે. 20 ESP32-C3 વાયરલેસ સાહસ: IoT માટે વ્યાપક માર્ગદર્શિકા

3.2 ESP રેઇનમેકરનું અમલીકરણ
આકૃતિ 3.2 માં બતાવ્યા પ્રમાણે, ESP RainMaker ચાર ભાગો ધરાવે છે: · સેવાનો દાવો કરવો, RainMaker ઉપકરણોને ગતિશીલ રીતે પ્રમાણપત્રો મેળવવા સક્ષમ બનાવે છે. · રેઈનમેકર ક્લાઉડ (ક્લાઉડ બેકએન્ડ તરીકે પણ ઓળખાય છે), સંદેશ ફિલ્ટરિંગ, યુઝર મેનેજમેન્ટ, ડેટા સ્ટોરેજ અને તૃતીય-પક્ષ એકીકરણ જેવી સેવાઓ પ્રદાન કરે છે. · રેઈનમેકર એજન્ટ, રેઈનમેકર ઉપકરણોને રેઈનમેકર ક્લાઉડ સાથે જોડવા સક્ષમ બનાવે છે. · રેઈનમેકર ક્લાયન્ટ (રેનમેકર એપ અથવા CLI સ્ક્રિપ્ટ્સ), જોગવાઈ, વપરાશકર્તા બનાવટ, ઉપકરણ જોડાણ અને નિયંત્રણ વગેરે માટે.
આકૃતિ 3.2. ESP રેઇનમેકરનું માળખું
ESP RainMaker ઉત્પાદન વિકાસ અને મોટા પાયે ઉત્પાદન માટે સાધનોનો સંપૂર્ણ સેટ પૂરો પાડે છે, જેમાં નીચેનાનો સમાવેશ થાય છે: RainMaker SDK
RainMaker SDK ESP-IDF પર આધારિત છે અને ફર્મવેર ડેવલપમેન્ટ માટે ઉપકરણ-સાઇડ એજન્ટ અને સંબંધિત C API નો સ્રોત કોડ પ્રદાન કરે છે. વિકાસકર્તાઓએ ફક્ત એપ્લિકેશન લોજિક લખવાની જરૂર છે અને બાકીનું રેઈનમેકર ફ્રેમવર્ક પર છોડી દેવું જોઈએ. C API વિશે વધુ માહિતી માટે, કૃપા કરીને https://bookc3.espressif.com/rm/c-api-reference ની મુલાકાત લો. રેઈનમેકર એપ રેઈનમેકર એપનું સાર્વજનિક સંસ્કરણ વિકાસકર્તાઓને ઉપકરણની જોગવાઈ પૂર્ણ કરવા અને ઉપકરણોની સ્થિતિ (દા.ત., સ્માર્ટ લાઇટિંગ ઉત્પાદનો)ને નિયંત્રિત કરવા અને ક્વેરી કરવાની મંજૂરી આપે છે. તે iOS અને Android બંને એપ સ્ટોર્સ પર ઉપલબ્ધ છે. વધુ વિગતો માટે, કૃપા કરીને પ્રકરણ 10 નો સંદર્ભ લો. REST APIs REST API વપરાશકર્તાઓને RainMaker એપ જેવી જ તેમની પોતાની એપ્લિકેશન બનાવવામાં મદદ કરે છે. વધુ માહિતી માટે, કૃપા કરીને https://swaggerapis.rainmaker.espressif.com/ ની મુલાકાત લો.
પ્રકરણ 3. ESP રેઈનમેકર 21નો પરિચય

Python APIs એ પાયથોન-આધારિત CLI, જે RainMaker SDK સાથે આવે છે, સ્માર્ટફોન સુવિધાઓ જેવા જ તમામ કાર્યોને અમલમાં મૂકવા માટે પ્રદાન કરવામાં આવે છે. Python API વિશે વધુ માહિતી માટે, કૃપા કરીને https://bookc3.espressif.com/rm/python-api-reference ની મુલાકાત લો.
એડમિન CLI એડમિન CLI, ઉચ્ચ સ્તરની ઍક્સેસ સાથે, ESP RainMaker ખાનગી જમાવટ માટે બલ્કમાં ઉપકરણ પ્રમાણપત્રો જનરેટ કરવા માટે પ્રદાન કરવામાં આવે છે.
3.2.1 સેવાનો દાવો કરવો
RainMaker ઉપકરણો અને ક્લાઉડ બેકએન્ડ વચ્ચેનો તમામ સંચાર MQTT+TLS દ્વારા કરવામાં આવે છે. ESP RainMaker ના સંદર્ભમાં, "ક્લેમિંગ" એ એવી પ્રક્રિયા છે જેમાં ઉપકરણો ક્લાઉડ બેકએન્ડ સાથે કનેક્ટ થવા માટે ક્લેમિંગ સર્વિસમાંથી પ્રમાણપત્રો મેળવે છે. નોંધ કરો કે દાવો કરવાની સેવા ફક્ત સાર્વજનિક રેઈનમેકર સેવાને જ લાગુ પડે છે, જ્યારે ખાનગી જમાવટ માટે, ઉપકરણ પ્રમાણપત્રો એડમિન CLI દ્વારા બલ્કમાં જનરેટ કરવા જરૂરી છે. ESP RainMaker ત્રણ પ્રકારની ક્લેઈંગ સર્વિસને સપોર્ટ કરે છે: સેલ્ફ ક્લેઈંગ
ઈન્ટરનેટ સાથે કનેક્ટ થયા પછી eFuse માં પ્રી-પ્રોગ્રામ કરેલી ગુપ્ત કી દ્વારા ઉપકરણ પોતે પ્રમાણપત્રો મેળવે છે. હોસ્ટ ડ્રિવન ક્લેઈંગ રેઈનમેકર એકાઉન્ટ સાથે ડેવલપમેન્ટ હોસ્ટ પાસેથી પ્રમાણપત્રો મેળવવામાં આવે છે. આસિસ્ટેડ ક્લેમિંગ પ્રમાણપત્રો જોગવાઈ દરમિયાન સ્માર્ટફોન એપ્લિકેશન દ્વારા મેળવવામાં આવે છે.
3.2.2 રેઇનમેકર એજન્ટ
આકૃતિ 3.3. રેઈનમેકર એસડીકેનું માળખું રેઈનમેકર એજન્ટનું પ્રાથમિક કાર્ય કનેક્ટિવિટી પ્રદાન કરવાનું છે અને એપ્લીકેશન લેયરને અપલિંક/ડાઉનલિંક ક્લાઉડ ડેટા પર પ્રક્રિયા કરવામાં મદદ કરવાનું છે. તે RainMaker SDK 22 ESP32-C3 વાયરલેસ એડવેન્ચર દ્વારા બનાવવામાં આવ્યું છે: IoT માટે એક વ્યાપક માર્ગદર્શિકા

અને RTOS, NVS અને MQTT જેવા ESP-IDF ઘટકોનો ઉપયોગ કરીને સાબિત ESP-IDF ફ્રેમવર્કના આધારે વિકસાવવામાં આવ્યું છે. આકૃતિ 3.3 રેઈનમેકર SDK ની રચના બતાવે છે.
RainMaker SDK માં બે મુખ્ય સુવિધાઓ શામેલ છે.
જોડાણ
i ઉપકરણ પ્રમાણપત્રો મેળવવા માટે દાવો સેવા સાથે સહકાર.
ii. રિમોટ કનેક્ટિવિટી પ્રદાન કરવા અને રિમોટ કંટ્રોલ, મેસેજ રિપોર્ટિંગ, યુઝર મેનેજમેન્ટ, ડિવાઈસ મેનેજમેન્ટ વગેરેનો અમલ કરવા માટે સુરક્ષિત MQTT પ્રોટોકોલનો ઉપયોગ કરીને ક્લાઉડ બેકએન્ડ સાથે કનેક્ટ કરવું. તે ડિફૉલ્ટ રૂપે ESP-IDF માં MQTT ઘટકનો ઉપયોગ કરે છે અને અન્ય સાથે ઇન્ટરફેસ કરવા માટે એબ્સ્ટ્રેક્શન લેયર પ્રદાન કરે છે. પ્રોટોકોલ સ્ટેક્સ.
iii Wi-Fi કનેક્શન અને જોગવાઈ માટે wifi પ્રોવિઝનિંગ ઘટક, OTA અપગ્રેડ માટે esp https ota ઘટક અને સ્થાનિક ઉપકરણ શોધ અને કનેક્શન માટે esp સ્થાનિક ctrl ઘટક પ્રદાન કરવું. આ બધા ઉદ્દેશ્યો સરળ રૂપરેખાંકન દ્વારા પ્રાપ્ત કરી શકાય છે.
ડેટા પ્રોસેસિંગ
i ક્લેમિંગ સર્વિસ દ્વારા જારી કરાયેલ ઉપકરણ પ્રમાણપત્રો અને રેઇનમેકર ચલાવતી વખતે જરૂરી ડેટાનો સંગ્રહ કરવો, ડિફોલ્ટ રૂપે 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 કોર (IoT એક્સેસ કોર જે MQTT એક્સેસ પ્રદાન કરે છે) દ્વારા પ્રાપ્ત થાય છે. અને નિયમ ફિલ્ટરિંગ), એમેઝોન સિમ્પલ ઈમેઈલ સર્વિસ (એસઈએસ સિમ્પલ મેઈલ સર્વિસ), એમેઝોન ક્લાઉડફ્રન્ટ (ફાસ્ટ ડિલિવરી નેટવર્ક), એમેઝોન સિમ્પલ કતાર સર્વિસ (એસક્યુએસ મેસેજ કતાર), અને એમેઝોન એસ3 (બકેટ સ્ટોરેજ સર્વિસ). તેનો હેતુ માપનીયતા અને સુરક્ષાને શ્રેષ્ઠ બનાવવાનો છે. ESP RainMaker સાથે, વિકાસકર્તાઓ ક્લાઉડમાં કોડ લખ્યા વિના ઉપકરણોનું સંચાલન કરી શકે છે. ઉપકરણો દ્વારા જાણ કરાયેલા સંદેશાઓ પારદર્શક રીતે પ્રસારિત થાય છે
પ્રકરણ 3. ESP રેઈનમેકર 23નો પરિચય

એપ્લિકેશન ક્લાયંટ અથવા અન્ય તૃતીય-પક્ષ સેવાઓ. કોષ્ટક 3.1 એ AWS ક્લાઉડ ઉત્પાદનો અને ક્લાઉડ બેકએન્ડમાં ઉપયોગમાં લેવાતા કાર્યો દર્શાવે છે, જેમાં વધુ ઉત્પાદનો અને સુવિધાઓ વિકાસ હેઠળ છે.
કોષ્ટક 3.1. AWS ક્લાઉડ પ્રોડક્ટ્સ અને ક્લાઉડ બેકએન્ડ દ્વારા ઉપયોગમાં લેવાતા કાર્યો

RainMaker દ્વારા ઉપયોગમાં લેવાતું AWS ક્લાઉડ ઉત્પાદન

કાર્ય

AWS કોગ્નિટો

વપરાશકર્તા ઓળખપત્રોનું સંચાલન કરવું અને તૃતીય-પક્ષ લોગીન્સને સમર્થન આપવું

AWS લેમ્બડા

ક્લાઉડ બેકએન્ડના મુખ્ય વ્યવસાય તર્કને અમલમાં મૂકવું

એમેઝોન ટાઇમસ્ટ્રીમ સ્ટોરિંગ ટાઇમ સિરીઝ ડેટા

Amazon DynamoDB ગ્રાહકોની ખાનગી માહિતીનો સંગ્રહ કરે છે

AWS IoT કોર

MQTT સંચારને સહાયક

એમેઝોન એસઇએસ

ઈમેલ મોકલવાની સેવાઓ પૂરી પાડવી

એમેઝોન ક્લાઉડફ્રન્ટ બેકએન્ડના સંચાલનને વેગ આપે છે webસાઇટ ઍક્સેસ

એમેઝોન SQS

AWS IoT કોર તરફથી સંદેશાઓ ફોરવર્ડ કરી રહ્યાં છે

3.2.4 રેઇનમેકર ક્લાયન્ટ
RainMaker ક્લાયન્ટ્સ, જેમ કે App અને CLI, REST API દ્વારા ક્લાઉડ બેકએન્ડ સાથે વાતચીત કરે છે. REST API વિશે વિગતવાર માહિતી અને સૂચનાઓ Espressif દ્વારા પ્રદાન કરવામાં આવેલ સ્વેગર દસ્તાવેજોમાં મળી શકે છે. RainMaker નું મોબાઇલ એપ્લિકેશન ક્લાયંટ iOS અને Android બંને સિસ્ટમ માટે ઉપલબ્ધ છે. તે ઉપકરણની જોગવાઈ, નિયંત્રણ અને શેરિંગ તેમજ કાઉન્ટડાઉન કાર્યો બનાવવા અને સક્ષમ કરવા અને તૃતીય-પક્ષ પ્લેટફોર્મ્સ સાથે કનેક્ટ કરવાની મંજૂરી આપે છે. તે આપમેળે UI અને આઇકોન્સને ઉપકરણો દ્વારા જાણ કરવામાં આવેલ રૂપરેખાંકન અનુસાર લોડ કરી શકે છે અને ઉપકરણ TSL ને સંપૂર્ણ રીતે પ્રદર્શિત કરી શકે છે.
માજી માટેampલે, જો રેનમેકર SDK-પૂરાવેલ એક્સ પર સ્માર્ટ લાઇટ બનાવવામાં આવી હોયampજો, જોગવાઈ પૂર્ણ થાય ત્યારે બલ્બ લાઇટનું આઇકોન અને UI આપમેળે લોડ થશે. વપરાશકર્તાઓ ઇન્ટરફેસ દ્વારા પ્રકાશનો રંગ અને તેજ બદલી શકે છે અને એલેક્સા સ્માર્ટ હોમ સ્કિલ અથવા ગૂગલ સ્માર્ટ હોમ એક્શન્સને તેમના ESP રેનમેકર એકાઉન્ટ્સ સાથે લિંક કરીને તૃતીય-પક્ષ નિયંત્રણ પ્રાપ્ત કરી શકે છે. આકૃતિ 3.4 આઇકોન અને UI ex બતાવે છેampએલેક્સા, ગૂગલ હોમ અને ઇએસપી રેઇનમેકર એપ પર અનુક્રમે બલ્બ લાઇટ.

24 ESP32-C3 વાયરલેસ એડવેન્ચર: IoT માટે વ્યાપક માર્ગદર્શિકા

(a) ઉદાampલે - એલેક્સા

(b) ઉદાample - ગૂગલ હોમ

(c) ઉદાample - ESP RainMaker
આકૃતિ 3.4. ઉદાampએલેક્સા, ગૂગલ હોમ અને ઇએસપી રેઇનમેકર એપ્લિકેશન પર બલ્બ લાઇટના આઇકન અને UI
3.3 પ્રેક્ટિસ: ESP RainMaker સાથે વિકાસ કરવા માટેના મુખ્ય મુદ્દા
એકવાર ઉપકરણ ડ્રાઈવર સ્તર પૂર્ણ થઈ જાય, પછી વિકાસકર્તાઓ TSL મોડેલ બનાવવાનું શરૂ કરી શકે છે અને RainMaker SDK દ્વારા પ્રદાન કરવામાં આવેલ API નો ઉપયોગ કરીને ડાઉનલિંક ડેટાની પ્રક્રિયા કરી શકે છે, અને ઉત્પાદન વ્યાખ્યા અને જરૂરિયાતોને આધારે ESP RainMaker મૂળભૂત સેવાઓને સક્ષમ કરી શકે છે.
પ્રકરણ 3. ESP રેઈનમેકર 25નો પરિચય

આ પુસ્તકનો વિભાગ 9.4 રેઈનમેકરમાં LED સ્માર્ટ લાઇટના અમલીકરણને સમજાવશે. ડીબગીંગ દરમિયાન, ડેવલપર્સ સ્માર્ટ લાઇટ (અથવા સ્વેગરથી REST API ને કૉલ કરો) સાથે વાતચીત કરવા માટે RainMaker SDK માં CLI ટૂલ્સનો ઉપયોગ કરી શકે છે.
પ્રકરણ 10 સ્માર્ટફોન એપ્લિકેશનો વિકસાવવામાં REST API ના ઉપયોગને વિસ્તૃત કરશે. LED સ્માર્ટ લાઇટના OTA અપગ્રેડ્સને પ્રકરણ 11 માં આવરી લેવામાં આવશે. જો વિકાસકર્તાઓએ ESP ઇનસાઇટ્સ રિમોટ મોનિટરિંગને સક્ષમ કર્યું હોય, તો ESP RainMaker મેનેજમેન્ટ બેકએન્ડ ESP ઇનસાઇટ્સ ડેટા પ્રદર્શિત કરશે. વિગતો પ્રકરણ 15 માં રજૂ કરવામાં આવશે.
ESP RainMaker ખાનગી જમાવટને સમર્થન આપે છે, જે જાહેર રેઈનમેકર સર્વરથી નીચેની રીતે અલગ પડે છે:
સેવાનો દાવો કરવો ખાનગી જમાવટમાં પ્રમાણપત્રો જનરેટ કરવા માટે, દાવો કરવાને બદલે રેઈનમેકર એડમિન CLI નો ઉપયોગ કરવો જરૂરી છે. સાર્વજનિક સર્વર સાથે, વિકાસકર્તાઓને ફર્મવેર અપગ્રેડને અમલમાં મૂકવા માટે એડમિન અધિકારો આપવા આવશ્યક છે, પરંતુ વ્યવસાયિક જમાવટમાં તે અનિચ્છનીય છે. તેથી, સ્વ-દાવા માટે ન તો અલગ પ્રમાણીકરણ સેવા પ્રદાન કરી શકાય છે, ન તો હોસ્ટ સંચાલિત અથવા સહાયિત દાવા માટે એડમિન અધિકારો.
ફોન એપ્લિકેશન્સ ખાનગી ડિપ્લોયમેન્ટ્સમાં, એકાઉન્ટ સિસ્ટમ્સ ઇન્ટરઓપરેબલ નથી તેની ખાતરી કરવા માટે એપ્લિકેશન્સને અલગથી રૂપરેખાંકિત અને કમ્પાઇલ કરવાની જરૂર છે.
તૃતીય પક્ષ લૉગિન અને વૉઇસ ઇન્ટિગ્રેશન ડેવલપર્સે 3જી પાર્ટી લૉગિન તેમજ એલેક્સા સ્કિલ અને Google વૉઇસ આસિસ્ટન્ટ ઇન્ટિગ્રેશનને સક્ષમ કરવા માટે Google અને Apple ડેવલપર એકાઉન્ટ દ્વારા અલગથી કન્ફિગર કરવું પડશે.
ટીપ્સ ક્લાઉડ ડિપ્લોયમેન્ટ વિશે વિગતો માટે, કૃપા કરીને https://customer.rainmaker.espressif ની મુલાકાત લો. કોમ. ફર્મવેરના સંદર્ભમાં, સાર્વજનિક સર્વરથી ખાનગી સર્વર પર સ્થાનાંતરણ માટે ફક્ત ઉપકરણ પ્રમાણપત્રોને બદલવાની જરૂર છે, જે સ્થાનાંતરણ કાર્યક્ષમતામાં મોટા પ્રમાણમાં સુધારો કરે છે અને સ્થળાંતર અને ગૌણ ડિબગીંગની કિંમત ઘટાડે છે.
3.4 ESP RainMaker ની વિશેષતાઓ
ESP RainMaker સુવિધાઓ મુખ્યત્વે ત્રણ પાસાઓ પર લક્ષિત છે - વપરાશકર્તા સંચાલન, અંતિમ વપરાશકર્તાઓ અને સંચાલકો. બધી સુવિધાઓ જાહેર અને ખાનગી બંને સર્વરમાં સમર્થિત છે સિવાય કે અન્યથા જણાવવામાં આવે.
3.4.1 વપરાશકર્તા સંચાલન
વપરાશકર્તા સંચાલન સુવિધાઓ અંતિમ વપરાશકર્તાઓને નોંધણી કરવા, લૉગ ઇન કરવા, પાસવર્ડ બદલવા, પાસવર્ડ પુનઃપ્રાપ્ત કરવા વગેરેની મંજૂરી આપે છે.
26 ESP32-C3 વાયરલેસ એડવેન્ચર: IoT માટે વ્યાપક માર્ગદર્શિકા

નોંધણી કરો અને લોગ ઇન કરો RainMaker દ્વારા સમર્થિત નોંધણી અને લોગિન પદ્ધતિઓમાં નીચેનાનો સમાવેશ થાય છે: · ઈમેલ આઈડી + પાસવર્ડ · ફોન નંબર + પાસવર્ડ · Google એકાઉન્ટ · Apple એકાઉન્ટ · GitHub એકાઉન્ટ (ફક્ત જાહેર સર્વર) · Amazon એકાઉન્ટ (માત્ર ખાનગી સર્વર)
નોંધ Google/Amazon નો ઉપયોગ કરીને સાઇન અપ કરો વપરાશકર્તાનું ઈમેલ સરનામું RainMaker સાથે શેર કરે છે. Apple ઉપયોગ કરીને સાઇન અપ કરો એક ડમી સરનામું શેર કરે છે જે Apple ખાસ કરીને RainMaker સેવા માટે વપરાશકર્તા માટે અસાઇન કરે છે. પ્રથમ વખત Google, Apple અથવા Amazon એકાઉન્ટ વડે સાઇન ઇન કરનારા વપરાશકર્તાઓ માટે RainMaker એકાઉન્ટ આપમેળે બનાવવામાં આવશે.
પાસવર્ડ બદલો ફક્ત ઈમેઈલ આઈડી/ફોન નંબર આધારિત લોગીન માટે માન્ય છે. પાસવર્ડ બદલાયા પછી અન્ય તમામ સક્રિય સત્રો લૉગ આઉટ થઈ જશે. AWS કોગ્નિટો બિહેવિયર મુજબ, લૉગ-આઉટ સત્રો 1 કલાક સુધી સક્રિય રહી શકે છે.
પાસવર્ડ પુનઃપ્રાપ્ત કરો ફક્ત ઈમેલ આઈડી/ફોન નંબર આધારિત લોગિન માટે માન્ય છે.
3.4.2 અંતિમ વપરાશકર્તા સુવિધાઓ
અંતિમ વપરાશકર્તાઓ માટે ખુલ્લી સુવિધાઓમાં સ્થાનિક અને રિમોટ કંટ્રોલ અને મોનિટરિંગ, શેડ્યુલિંગ, ઉપકરણ જૂથ, ઉપકરણ શેરિંગ, પુશ સૂચનાઓ અને તૃતીય-પક્ષ સંકલનનો સમાવેશ થાય છે.
રિમોટ કંટ્રોલ અને મોનિટરિંગ · એક અથવા બધા ઉપકરણો માટે ક્વેરી રૂપરેખાંકન, પરિમાણ મૂલ્યો અને કનેક્શન સ્થિતિ. સિંગલ અથવા બહુવિધ ઉપકરણો માટે પરિમાણો સેટ કરો.
સ્થાનિક નિયંત્રણ અને દેખરેખ મોબાઇલ ફોન અને ઉપકરણને સ્થાનિક નિયંત્રણ માટે સમાન નેટવર્ક સાથે કનેક્ટ કરવાની જરૂર છે.
સુનિશ્ચિત · વપરાશકર્તાઓ ચોક્કસ સમયે ચોક્કસ ક્રિયાઓ પૂર્વ-સેટ કરે છે. શેડ્યૂલનો અમલ કરતી વખતે ઉપકરણ માટે કોઈ ઇન્ટરનેટ કનેક્શનની જરૂર નથી. એક અથવા બહુવિધ ઉપકરણો માટે એક વખત અથવા પુનરાવર્તન (દિવસો નિર્દિષ્ટ કરીને).
ઉપકરણ જૂથીકરણ બહુ-સ્તરીય અમૂર્ત જૂથીકરણને સમર્થન આપે છે હોમ રૂમ સ્ટ્રક્ચર બનાવવા માટે ગ્રુપ મેટાડેટાનો ઉપયોગ કરી શકાય છે.
પ્રકરણ 3. ESP રેઈનમેકર 27નો પરિચય

ઉપકરણ શેરિંગ એક અથવા વધુ ઉપકરણો એક અથવા વધુ વપરાશકર્તાઓ સાથે શેર કરી શકાય છે.
પુશ સૂચનાઓ અંતિમ વપરાશકર્તાઓને ઇવેન્ટ્સ માટે પુશ સૂચનાઓ પ્રાપ્ત થશે જેમ કે · નવું ઉપકરણ(ઓ) ઉમેરાયેલ/દૂર કરેલ · ઉપકરણ ક્લાઉડથી કનેક્ટ થયેલ છે · ઉપકરણ ક્લાઉડથી ડિસ્કનેક્ટ થયેલ છે · ઉપકરણ શેરિંગ વિનંતીઓ બનાવેલ/સ્વીકૃત/નકારવામાં આવી છે · ઉપકરણો દ્વારા જાણ કરાયેલ ચેતવણી સંદેશાઓ
તૃતીય પક્ષ સંકલન એલેક્સા અને ગૂગલ વોઈસ આસિસ્ટન્ટ રેઈનમેકર ઉપકરણોને નિયંત્રિત કરવા માટે સમર્થિત છે, જેમાં લાઈટ્સ, સ્વિચ, સોકેટ્સ, પંખા અને તાપમાન સેન્સરનો સમાવેશ થાય છે.
3.4.3 એડમિન સુવિધાઓ
એડમિન ફીચર્સ એડમિનિસ્ટ્રેટર્સને ડિવાઇસ રજીસ્ટ્રેશન, ડિવાઇસ ગ્રુપિંગ અને OTA અપગ્રેડને અમલમાં મૂકવાની મંજૂરી આપે છે અને view આંકડા અને ESP આંતરદૃષ્ટિ ડેટા.
ઉપકરણ નોંધણી ઉપકરણ પ્રમાણપત્રો જનરેટ કરો અને એડમિન CLI (માત્ર ખાનગી સર્વર) સાથે નોંધણી કરો.
ઉપકરણ જૂથ ઉપકરણ માહિતીના આધારે અમૂર્ત અથવા સંરચિત જૂથો બનાવો (માત્ર ખાનગી સર્વર).
ઓવર-ધ-એર (OTA) અપગ્રેડ કરે છે વર્ઝન અને મોડલ પર આધારિત ફર્મવેર અપલોડ કરો, એક અથવા વધુ ઉપકરણો અથવા જૂથ મોનિટર, રદ કરો અથવા OTA જોબ્સને આર્કાઇવ કરો.
View આંકડા Viewસક્ષમ આંકડાઓમાં નીચેનાનો સમાવેશ થાય છે: · ઉપકરણ નોંધણીઓ (એડમિન દ્વારા નોંધાયેલ પ્રમાણપત્રો) · ઉપકરણ સક્રિયકરણ (ઉપકરણ પ્રથમ વખત કનેક્ટ થયેલ છે) · વપરાશકર્તા એકાઉન્ટ્સ · વપરાશકર્તા-ઉપકરણ એસોસિએશન
View ESP આંતરદૃષ્ટિ ડેટા Viewસક્ષમ ESP આંતરદૃષ્ટિ ડેટામાં શામેલ છે: · ભૂલો, ચેતવણીઓ અને કસ્ટમ લૉગ્સ · ક્રેશ રિપોર્ટ્સ અને વિશ્લેષણ · રીબૂટ કારણો · મેટ્રિક્સ જેમ કે મેમરી વપરાશ, RSSI, વગેરે. કસ્ટમ મેટ્રિક્સ અને ચલ
28 ESP32-C3 વાયરલેસ એડવેન્ચર: IoT માટે વ્યાપક માર્ગદર્શિકા

3.5 સારાંશ
આ પ્રકરણમાં, અમે સાર્વજનિક રેઈનમેકર જમાવટ અને ખાનગી જમાવટ વચ્ચેના કેટલાક મુખ્ય તફાવતો રજૂ કર્યા છે. Espressif દ્વારા શરૂ કરાયેલ ખાનગી ESP RainMaker સોલ્યુશન અત્યંત વિશ્વસનીય અને એક્સ્ટેન્સિબલ છે. તમામ ESP32 સિરીઝની ચિપ્સ AWS સાથે જોડાયેલી છે અને અનુકૂલિત કરવામાં આવી છે, જે ખર્ચમાં ઘણો ઘટાડો કરે છે. વિકાસકર્તાઓ AWS ક્લાઉડ ઉત્પાદનો વિશે શીખ્યા વિના પ્રોટોટાઇપ ચકાસણી પર ધ્યાન કેન્દ્રિત કરી શકે છે. અમે ESP RainMaker ના અમલીકરણ અને વિશેષતાઓ અને પ્લેટફોર્મનો ઉપયોગ કરીને વિકાસ માટેના કેટલાક મુખ્ય મુદ્દાઓ પણ સમજાવ્યા.
Android માટે ESP RainMaker ડાઉનલોડ કરવા માટે સ્કેન કરો iOS માટે ESP RainMaker ડાઉનલોડ કરવા માટે સ્કેન કરો
પ્રકરણ 3. ESP રેઈનમેકર 29નો પરિચય

30 ESP32-C3 વાયરલેસ એડવેન્ચર: IoT માટે વ્યાપક માર્ગદર્શિકા

પ્રકરણ 4 વિકાસ પર્યાવરણની સ્થાપના
આ પ્રકરણ ESP-IDF પર ધ્યાન કેન્દ્રિત કરે છે, ESP32-C3 માટે સત્તાવાર સોફ્ટવેર ડેવલપમેન્ટ માળખું. અમે વિવિધ ઓપરેટિંગ સિસ્ટમ્સ પર પર્યાવરણ કેવી રીતે સેટ કરવું તે સમજાવીશું, અને ESP-IDF ની પ્રોજેક્ટ સ્ટ્રક્ચર અને બિલ્ડ સિસ્ટમ, તેમજ સંબંધિત વિકાસ સાધનોનો ઉપયોગ રજૂ કરીશું. પછી અમે એક્સની કમ્પાઈલિંગ અને રનિંગ પ્રોસેસ રજૂ કરીશુંample પ્રોજેક્ટ, દરેક s પર આઉટપુટ લોગની વિગતવાર સમજૂતી ઓફર કરતી વખતેtage.
4.1 ESP-IDF ઓવરview
ESP-IDF (Espressif IoT ડેવલપમેન્ટ ફ્રેમવર્ક) એ એસ્પ્રેસિફ ટેક્નોલોજી દ્વારા પ્રદાન કરવામાં આવેલ વન-સ્ટોપ IoT ડેવલપમેન્ટ ફ્રેમવર્ક છે. તે મુખ્ય વિકાસ ભાષા તરીકે 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 જેવા બહુવિધ નેટવર્ક પ્રોટોકોલ સ્ટેક્સ, ડાયનેમિક ફ્રીક્વન્સી મોડ્યુલેશન સાથે પાવર મેનેજમેન્ટ ફ્રેમવર્ક અને ફ્લેશ એન્ક્રિપ્શન અને સિક્યોર બૂટ વગેરે જેવી સુવિધાઓનો સમાવેશ થાય છે. · વિકાસ અને ઉત્પાદન સાધનો. ESP-IDF વિકાસ અને મોટા પાયે ઉત્પાદન દરમિયાન બિલ્ડિંગ, ફ્લેશ અને ડિબગીંગ માટે સામાન્ય રીતે ઉપયોગમાં લેવાતા સાધનો પૂરા પાડે છે (જુઓ આકૃતિ 4.1), જેમ કે CMake પર આધારિત બિલ્ડિંગ સિસ્ટમ, GCC પર આધારિત ક્રોસ-કમ્પાઇલેશન ટૂલ ચેઇન અને JTAG 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 અને તેથી વધુ. એસ્પ્રેસિફ સિસ્ટમ્સ બગ ફિક્સેસ માટે 30-મહિનાના સમર્થનની ખાતરી કરે છે અને દરેક પ્રકાશિત પેટા-સંસ્કરણ માટે સુરક્ષા પેચો. તેથી, સબવર્ઝનના રિવિઝન પણ નિયમિત રીતે બહાર પાડવામાં આવે છે, જેમ કે v4.3.1, v4.2.2, વગેરે. કોષ્ટક 4.1 એસ્પ્રેસિફ ચિપ્સ માટે વિવિધ ESP-IDF વર્ઝનની સપોર્ટ સ્થિતિ દર્શાવે છે, જે દર્શાવે છે કે શું તેઓ પૂર્વમાં છે.view stage (પૂર્વ માટે સપોર્ટ ઓફર કરે છેview આવૃત્તિઓ, જેમાં અમુક વિશેષતાઓ અથવા દસ્તાવેજોનો અભાવ હોઈ શકે છે) અથવા સત્તાવાર રીતે સમર્થિત છે.

કોષ્ટક 4.1. એસ્પ્રેસિફ ચિપ્સ માટે વિવિધ 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 ગિટ વર્કફ્લો
Espressif ESP-IDF માટે ચોક્કસ ગિટ વર્કફ્લોને અનુસરે છે, જે નીચે પ્રમાણે દર્શાવેલ છે:
મુખ્ય શાખામાં નવા ફેરફારો કરવામાં આવ્યા છે, જે મુખ્ય વિકાસ શાખા તરીકે કામ કરે છે. મુખ્ય શાખા પરના ESP-IDF સંસ્કરણમાં હંમેશા -dev હોય છે tag તે સૂચવવા માટે કે તે હાલમાં વિકાસ હેઠળ છે, જેમ કે v4.3-dev. માસ્ટર બ્રાન્ચ પરના ફેરફારો પહેલા ફરીથી થશેviewed અને Espressif ના આંતરિક ભંડારમાં પરીક્ષણ કર્યું, અને પછી સ્વચાલિત પરીક્ષણ પૂર્ણ થયા પછી GitHub પર ધકેલવામાં આવ્યું.
· એકવાર નવું વર્ઝન માસ્ટર બ્રાન્ચ પર ફિચર ડેવલપમેન્ટ પૂર્ણ કરી લે અને બીટા ટેસ્ટિંગમાં દાખલ થવાના માપદંડને પૂર્ણ કરી લે, તે નવી બ્રાન્ચમાં સંક્રમિત થાય છે, જેમ કે રિલીઝ/ v4.3. આ ઉપરાંત આ નવી શાળા છે tagged એક પૂર્વ-પ્રકાશન સંસ્કરણ તરીકે, જેમ કે v4.3-beta1. વિકાસકર્તાઓ શાખાઓની સંપૂર્ણ સૂચિને ઍક્સેસ કરવા માટે GitHub પ્લેટફોર્મનો સંદર્ભ લઈ શકે છે અને tags ESP-IDF માટે. એ નોંધવું અગત્યનું છે કે બીટા વર્ઝન (પ્રી-રીલીઝ વર્ઝન)માં હજુ પણ નોંધપાત્ર સંખ્યામાં જાણીતી સમસ્યાઓ હોઈ શકે છે. જેમ જેમ બીટા સંસ્કરણ સતત પરીક્ષણમાંથી પસાર થાય છે, તેમ આ સંસ્કરણ અને મુખ્ય શાખા બંનેમાં એક સાથે બગ ફિક્સ ઉમેરવામાં આવે છે. દરમિયાન, માસ્ટર બ્રાન્ચે કદાચ આગલા સંસ્કરણ માટે નવી સુવિધાઓ વિકસાવવાનું શરૂ કરી દીધું હશે. જ્યારે પરીક્ષણ લગભગ પૂર્ણ થાય છે, ત્યારે બ્રાન્ચમાં રીલીઝ ઉમેદવાર (rc) લેબલ ઉમેરવામાં આવે છે, જે સૂચવે છે કે તે v4.3-rc1 જેવા સત્તાવાર પ્રકાશન માટે સંભવિત ઉમેદવાર છે. આ સમયે એસtage, શાખા પ્રી-રિલીઝ વર્ઝન રહે છે.
· જો કોઈ મોટી ભૂલો મળી નથી અથવા જાણ કરવામાં આવી નથી, તો પ્રી-રીલીઝ વર્ઝન આખરે મેજર વર્ઝન લેબલ (દા.ત., v5.0) અથવા નાના વર્ઝન લેબલ (દા.ત., v4.3) મેળવે છે અને તે સત્તાવાર રીલીઝ વર્ઝન બની જાય છે, જે દસ્તાવેજીકૃત છે. પ્રકાશન નોંધો પૃષ્ઠમાં. ત્યારબાદ, આ સંસ્કરણમાં ઓળખાયેલ કોઈપણ ભૂલો પ્રકાશન શાખા પર સુધારેલ છે. મેન્યુઅલ પરીક્ષણ પૂર્ણ થયા પછી, શાખાને બગ-ફિક્સ વર્ઝન લેબલ (દા.ત., v4.3.2) સોંપવામાં આવે છે, જે પ્રકાશન નોંધો પૃષ્ઠ પર પણ પ્રતિબિંબિત થાય છે.
પ્રકરણ 4. વિકાસ પર્યાવરણની સ્થાપના 33

4.1.3 યોગ્ય સંસ્કરણ પસંદ કરવું
ESP-IDFએ વર્ઝન v32 થી ESP3-C4.3 ને સમર્થન આપવાનું સત્તાવાર રીતે શરૂ કર્યું હોવાથી, અને આ પુસ્તક લખતી વખતે v4.4 હજુ સુધી સત્તાવાર રીતે બહાર પાડવામાં આવ્યું નથી, આ પુસ્તકમાં વપરાતું સંસ્કરણ v4.3.2 છે, જે સુધારેલું સંસ્કરણ છે. v4.3 ના. જો કે, એ નોંધવું અગત્યનું છે કે તમે આ પુસ્તક વાંચો ત્યાં સુધીમાં, v4.4 અથવા નવી આવૃત્તિઓ પહેલેથી જ ઉપલબ્ધ હશે. સંસ્કરણ પસંદ કરતી વખતે, અમે નીચેનાની ભલામણ કરીએ છીએ:
એન્ટ્રી-લેવલ ડેવલપર્સ માટે, સ્થિર v4.3 સંસ્કરણ અથવા તેનું સુધારેલું સંસ્કરણ પસંદ કરવાની સલાહ આપવામાં આવે છે, જે ભૂતપૂર્વ સાથે સંરેખિત થાય છેampઆ પુસ્તકમાં વપરાયેલ le સંસ્કરણ.
· મોટા પાયે ઉત્પાદન હેતુઓ માટે, સૌથી અદ્યતન તકનીકી સપોર્ટનો લાભ મેળવવા માટે નવીનતમ સ્થિર સંસ્કરણનો ઉપયોગ કરવાની ભલામણ કરવામાં આવે છે.
જો તમે નવી ચિપ્સ સાથે પ્રયોગ કરવા અથવા નવી પ્રોડક્ટની વિશેષતાઓ શોધવા માંગતા હો, તો કૃપા કરીને માસ્ટર બ્રાન્ચનો ઉપયોગ કરો. નવીનતમ સંસ્કરણમાં તમામ નવીનતમ સુવિધાઓ શામેલ છે, પરંતુ ધ્યાનમાં રાખો કે ત્યાં જાણીતી અથવા અજાણી ભૂલો હોઈ શકે છે.
· જો ઉપયોગમાં લેવાતા સ્થિર સંસ્કરણમાં ઇચ્છિત નવી સુવિધાઓ શામેલ નથી અને તમે મુખ્ય શાખા સાથે સંકળાયેલા જોખમોને ઘટાડવા માંગતા હો, તો અનુરૂપ પ્રકાશન શાખાનો ઉપયોગ કરવાનું વિચારો, જેમ કે રિલીઝ/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 કાર્યક્ષમતા અને એપ્લિકેશનમાં સરળતાથી સંકલિત કરી શકાય છે, વિકાસકર્તાઓને ફક્ત વ્યવસાયના તર્ક પર ધ્યાન કેન્દ્રિત કરવાની મંજૂરી આપે છે. કેટલાક સામાન્ય ઘટકોમાં નીચેનાનો સમાવેશ થાય છે: · ડ્રાઇવર: આ ઘટક વિવિધ એસ્પ્રેસીફ માટે પેરિફેરલ ડ્રાઇવર પ્રોગ્રામ ધરાવે છે.
ચિપ શ્રેણી, જેમ કે GPIO, I2C, SPI, UART, LEDC (PWM), વગેરે. આ ઘટકમાં પેરિફેરલ ડ્રાઇવર પ્રોગ્રામ્સ ચિપ-સ્વતંત્ર અમૂર્ત ઇન્ટરફેસ ઓફર કરે છે. દરેક પેરિફેરલમાં એક સામાન્ય હેડર હોય છે file (જેમ કે gpio.h), વિવિધ ચિપ-વિશિષ્ટ સપોર્ટ પ્રશ્નો સાથે વ્યવહાર કરવાની જરૂરિયાતને દૂર કરે છે. · esp_wifi: Wi-Fi, એક વિશિષ્ટ પેરિફેરલ તરીકે, એક અલગ ઘટક તરીકે ગણવામાં આવે છે. તેમાં બહુવિધ API નો સમાવેશ થાય છે જેમ કે વિવિધ Wi-Fi ડ્રાઇવર મોડની શરૂઆત, પેરામીટર કન્ફિગરેશન અને ઇવેન્ટ પ્રોસેસિંગ. આ ઘટકના અમુક કાર્યો સ્ટેટિક લિંક લાઇબ્રેરીઓના સ્વરૂપમાં પ્રદાન કરવામાં આવે છે. ESP-IDF ઉપયોગની સરળતા માટે વ્યાપક ડ્રાઈવર દસ્તાવેજીકરણ પણ પ્રદાન કરે છે.
પ્રકરણ 4. વિકાસ પર્યાવરણની સ્થાપના 35

ફ્રીર્ટોસ: આ ઘટકમાં સંપૂર્ણ ફ્રીઆરટીઓએસ કોડ છે. આ ઓપરેટિંગ સિસ્ટમ માટે વ્યાપક આધાર પૂરો પાડવા ઉપરાંત, 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 પણ કોર સ્ક્રિપ્ટ ધરાવે છે. fileESP-IDF સંકલન નિયમોના અમલીકરણ માટેના પાયા તરીકે સેવા આપતા સંકલન પ્રણાલીના s. એન્વાયર્નમેન્ટ વેરીએબલ ઉમેરતી વખતે, ટૂલ્સ ડિરેક્ટરીમાં સમાવિષ્ટો સિસ્ટમ એન્વાયર્નમેન્ટ વેરીએબલમાં ઉમેરવામાં આવે છે, જે idf.py ને પ્રોજેક્ટ પાથ હેઠળ સીધા જ ચલાવવાની મંજૂરી આપે છે.
ડી. ઉદાample પ્રોગ્રામ ડિરેક્ટરી exampલેસ
આ ડિરેક્ટરીમાં ESP-IDF એક્સના વિશાળ સંગ્રહનો સમાવેશ થાય છેample પ્રોગ્રામ્સ કે જે ઘટક API નો ઉપયોગ દર્શાવે છે. માજીampલેસને તેમની શ્રેણીઓના આધારે વિવિધ પેટા નિર્દેશિકાઓમાં ગોઠવવામાં આવે છે:
· ગેટ-સ્ટાર્ટ: આ સબ-ડિરેક્ટરીમાં એન્ટ્રી-લેવલ એક્સનો સમાવેશ થાય છેampવપરાશકર્તાઓને મૂળભૂત બાબતોને સમજવામાં મદદ કરવા માટે "હેલો વર્લ્ડ" અને "બ્લિંક" જેવા.
· બ્લૂટૂથ: તમે બ્લૂટૂથ સંબંધિત એક્સ શોધી શકો છોamples અહીં, Bluetooth LE Mesh, Bluetooth LE HID, BluFi અને વધુ સહિત.
· વાઇફાઇ: આ સબ-ડિરેક્ટરી વાઇ-ફાઇ એક્સ પર ફોકસ કરે છેampલેસ, Wi-Fi SoftAP, Wi-Fi સ્ટેશન, espnow, તેમજ માલિકીનું સંચાર પ્રોટોકોલ જેવા મૂળભૂત કાર્યક્રમો સહિતampEspressif માંથી લેસ. તેમાં બહુવિધ એપ્લિકેશન લેયરનો પણ સમાવેશ થાય છેampલેસ Wi-Fi પર આધારિત છે, જેમ કે Iperf, Sniffer અને Smart Config.
· પેરિફેરલ્સ: આ વ્યાપક પેટા-ડિરેક્ટરી આગળ પેરિફેરલ નામોના આધારે અસંખ્ય સબફોલ્ડરમાં વિભાજિત છે. તેમાં મુખ્યત્વે પેરિફેરલ ડ્રાઇવર એક્સampએસ્પ્રેસિફ ચિપ્સ માટે, દરેક ભૂતપૂર્વ સાથેample અનેક ઉપ-ભૂતપૂર્વ દર્શાવતાampલેસ દાખલા તરીકે, gpio સબ-ડિરેક્ટરીમાં બે એક્સનો સમાવેશ થાય છેampલેસ: GPIO અને GPIO મેટ્રિક્સ કીબોર્ડ. એ નોંધવું અગત્યનું છે કે બધા ભૂતપૂર્વ નથીampઆ નિર્દેશિકામાંના લેસ ESP32-C3 ને લાગુ પડે છે.
36 ESP32-C3 વાયરલેસ એડવેન્ચર: IoT માટે વ્યાપક માર્ગદર્શિકા

માજી માટેample, ભૂતપૂર્વampયુએસબી/હોસ્ટમાં લેસ ફક્ત યુએસબી હોસ્ટ હાર્ડવેર (જેમ કે ESP32-S3) સાથેના પેરિફેરલ પર જ લાગુ પડે છે, અને ESP32-C3 પાસે આ પેરિફેરલ નથી. સંકલન સિસ્ટમ સામાન્ય રીતે લક્ષ્ય સેટ કરતી વખતે પ્રોમ્પ્ટ પ્રદાન કરે છે. આ README file દરેક ભૂતપૂર્વample સપોર્ટેડ ચિપ્સની યાદી આપે છે. · પ્રોટોકોલ્સ: આ સબ-ડિરેક્ટરીમાં ભૂતપૂર્વampMQTT, HTTP, HTTP સર્વર, PPPoS, Modbus, mDNS, SNTP સહિત વિવિધ કોમ્યુનિકેશન પ્રોટોકોલ માટે લેસ, જેમાં કોમ્યુનિકેશન પ્રોટોકોલ એક્સની વિશાળ શ્રેણીને આવરી લે છે.ampIoT વિકાસ માટે જરૂરી છે. · જોગવાઈ: અહીં, તમે જોગવાઈ ભૂતપૂર્વ જોશોampવિવિધ પદ્ધતિઓ માટે લેસ, જેમ કે Wi-Fi જોગવાઈ અને બ્લૂટૂથ LE જોગવાઈ. · સિસ્ટમ: આ સબ-ડિરેક્ટરીમાં સિસ્ટમ ડિબગીંગ એક્સનો સમાવેશ થાય છેampલેસ (દા.ત., સ્ટેક ટ્રેસિંગ, રનટાઇમ ટ્રેસિંગ, ટાસ્ક મોનિટરિંગ), પાવર મેનેજમેન્ટ એક્સampલેસ (દા.ત., વિવિધ સ્લીપ મોડ્સ, કો-પ્રોસેસર્સ), અને ભૂતપૂર્વampકન્સોલ ટર્મિનલ, ઇવેન્ટ લૂપ અને સિસ્ટમ ટાઈમર જેવા સામાન્ય સિસ્ટમ ઘટકો સાથે સંબંધિત. · સંગ્રહ: આ સબ-ડિરેક્ટરીમાં, તમે શોધશો ભૂતપૂર્વampબધા જ file ESP-IDF દ્વારા સમર્થિત સિસ્ટમો અને સ્ટોરેજ મિકેનિઝમ્સ (જેમ કે ફ્લેશ, SD કાર્ડ અને અન્ય સ્ટોરેજ મીડિયાનું વાંચન અને લેખન), તેમજ ભૂતપૂર્વampનોન-વોલેટાઇલ સ્ટોરેજ (NVS), FatFS, SPIFFS અને અન્ય file સિસ્ટમ કામગીરી. · સુરક્ષા: આ સબ-ડિરેક્ટરીમાં ભૂતપૂર્વampફ્લેશ એન્ક્રિપ્શનથી સંબંધિત. (2) ESP-IDF કમ્પાઇલેશન ટૂલ ચેઇન ડિરેક્ટરી (/.espressif), આકૃતિ 4.3 માં બતાવ્યા પ્રમાણે.
આકૃતિ 4.3. ESP-IDF સંકલન સાધન સાંકળ નિર્દેશિકા
પ્રકરણ 4. વિકાસ પર્યાવરણની સ્થાપના 37

a સોફ્ટવેર વિતરણ ડિરેક્ટરી જી
ESP-IDF ટૂલ ચેઇન અને અન્ય સોફ્ટવેર સંકુચિત પેકેજોના સ્વરૂપમાં વિતરિત કરવામાં આવે છે. સ્થાપન પ્રક્રિયા દરમિયાન, સ્થાપન સાધન પ્રથમ સંકુચિત પેકેજને ડિસ્ટ ડિરેક્ટરીમાં ડાઉનલોડ કરે છે, અને પછી તેને ઉલ્લેખિત ડિરેક્ટરીમાં બહાર કાઢે છે. એકવાર ઇન્સ્ટોલેશન પૂર્ણ થઈ જાય, આ ડિરેક્ટરીમાં સમાવિષ્ટો સુરક્ષિત રીતે દૂર કરી શકાય છે.
b પાયથોન વર્ચ્યુઅલ એન્વાયર્નમેન્ટ ડિરેક્ટરી પાયથોન env
ESP-IDF ની વિવિધ આવૃત્તિઓ Python પેકેજોની ચોક્કસ આવૃત્તિઓ પર આધાર રાખે છે. આ પેકેજોને સમાન હોસ્ટ પર સીધું સ્થાપિત કરવાથી પેકેજ સંસ્કરણો વચ્ચે તકરાર થઈ શકે છે. આને સંબોધવા માટે, ESP-IDF પાયથોન વર્ચ્યુઅલ વાતાવરણનો ઉપયોગ વિવિધ પેકેજ વર્ઝનને અલગ કરવા માટે કરે છે. આ મિકેનિઝમ વડે, વિકાસકર્તાઓ એક જ હોસ્ટ પર ESP-IDF ના બહુવિધ સંસ્કરણો ઇન્સ્ટોલ કરી શકે છે અને વિવિધ પર્યાવરણ વેરીએબલ્સને આયાત કરીને તેમની વચ્ચે સરળતાથી સ્વિચ કરી શકે છે.
c ESP-IDF કમ્પાઇલેશન ટૂલ ચેઇન ડિરેક્ટરી ટૂલ્સ
આ ડાયરેક્ટરી મુખ્યત્વે ESP-IDF પ્રોજેક્ટ્સને કમ્પાઈલ કરવા માટે જરૂરી ક્રોસ-કમ્પાઈલેશન ટૂલ્સ ધરાવે છે, જેમ કે CMake ટૂલ્સ, નીન્જા બિલ્ડ ટૂલ્સ અને અંતિમ એક્ઝિક્યુટેબલ પ્રોગ્રામ જનરેટ કરતી gcc ટૂલ ચેઈન. વધુમાં, આ ડિરેક્ટરીમાં સંબંધિત હેડર સાથે C/C++ ભાષાની પ્રમાણભૂત લાઇબ્રેરી છે. files જો પ્રોગ્રામ સિસ્ટમ હેડરનો સંદર્ભ આપે છે file જેમ કે # સમાવેશ થાય છે , સંકલન સાધન સાંકળ stdio.h શોધશે file આ ડિરેક્ટરીમાં.
4.2 ESP-IDF ડેવલપમેન્ટ એન્વાયર્નમેન્ટ સેટઅપ કરવું
ESP-IDF ડેવલપમેન્ટ એન્વાયર્નમેન્ટ વિન્ડોઝ, Linux અને macOS જેવી મુખ્ય પ્રવાહની ઓપરેટિંગ સિસ્ટમને સપોર્ટ કરે છે. આ વિભાગ દરેક સિસ્ટમ પર વિકાસ વાતાવરણ કેવી રીતે સેટ કરવું તે રજૂ કરશે. Linux સિસ્ટમ પર ESP32-C3 વિકસાવવાની ભલામણ કરવામાં આવે છે, જે અહીં વિગતવાર રજૂ કરવામાં આવશે. ડેવલપમેન્ટ ટૂલ્સની સમાનતાને કારણે તમામ પ્લેટફોર્મ પર ઘણી સૂચનાઓ લાગુ પડે છે. તેથી, આ વિભાગની સામગ્રીને કાળજીપૂર્વક વાંચવાની સલાહ આપવામાં આવે છે.
નોંધ તમે https://bookc3.espressif.com/esp32c3 પર ઉપલબ્ધ ઑનલાઇન દસ્તાવેજોનો સંદર્ભ લઈ શકો છો, જે આ વિભાગમાં ઉલ્લેખિત આદેશો પ્રદાન કરે છે.
4.2.1 Linux પર ESP-IDF ડેવલપમેન્ટ એન્વાયર્નમેન્ટ સેટઅપ કરી રહ્યું છે
ESP-IDF ડેવલપમેન્ટ એન્વાયર્નમેન્ટ માટે જરૂરી GNU ડેવલપમેન્ટ અને ડીબગીંગ ટૂલ્સ એ Linux સિસ્ટમના મૂળ છે. વધુમાં, Linux માં કમાન્ડ-લાઇન ટર્મિનલ શક્તિશાળી અને વપરાશકર્તા-મૈત્રીપૂર્ણ છે, જે તેને ESP32-C3 વિકાસ માટે એક આદર્શ પસંદગી બનાવે છે. તમે કરી શકો છો
38 ESP32-C3 વાયરલેસ એડવેન્ચર: IoT માટે વ્યાપક માર્ગદર્શિકા

તમારું મનપસંદ Linux વિતરણ પસંદ કરો, પરંતુ અમે ઉબુન્ટુ અથવા અન્ય ડેબિયન આધારિત સિસ્ટમનો ઉપયોગ કરવાની ભલામણ કરીએ છીએ. આ વિભાગ ઉબુન્ટુ 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
ટીપ્સ તમારે ઉપરના આદેશ માટે એડમિનિસ્ટ્રેટર એકાઉન્ટ અને પાસવર્ડનો ઉપયોગ કરવાની જરૂર છે. મૂળભૂત રીતે, પાસવર્ડ દાખલ કરતી વખતે કોઈ માહિતી પ્રદર્શિત થશે નહીં. પ્રક્રિયા ચાલુ રાખવા માટે ફક્ત "Enter" કી દબાવો.
ESP-IDF માં Git એ કી કોડ મેનેજમેન્ટ ટૂલ છે. વિકાસ પર્યાવરણ સફળતાપૂર્વક સેટ કર્યા પછી, તમે git log આદેશનો ઉપયોગ કરી શકો છો view ESP-IDF ની રચના પછી કરવામાં આવેલ તમામ કોડ ફેરફારો. વધુમાં, Git નો ઉપયોગ ESP-IDF માં સંસ્કરણ માહિતીની પુષ્ટિ કરવા માટે પણ થાય છે, જે ચોક્કસ સંસ્કરણોને અનુરૂપ યોગ્ય ટૂલ ચેઇન ઇન્સ્ટોલ કરવા માટે જરૂરી છે. ગિટ સાથે, અન્ય મહત્વપૂર્ણ સિસ્ટમ ટૂલ્સમાં પાયથોનનો સમાવેશ થાય છે. ESP-IDF પાયથોનમાં લખેલી અસંખ્ય ઓટોમેશન સ્ક્રિપ્ટોને સમાવિષ્ટ કરે છે. CMake, Ninja-build અને Ccache જેવા સાધનો C/C++ પ્રોજેક્ટ્સમાં વ્યાપકપણે ઉપયોગમાં લેવાય છે અને ESP-IDFમાં ડિફોલ્ટ કોડ સંકલન અને બિલ્ડિંગ ટૂલ્સ તરીકે સેવા આપે છે. libusb-1.0-0 અને dfu-util એ USB સીરીયલ કોમ્યુનિકેશન અને ફર્મવેર બર્નિંગ માટે વપરાતા મુખ્ય ડ્રાઇવરો છે. એકવાર સૉફ્ટવેર પેકેજો ઇન્સ્ટોલ થઈ જાય, પછી તમે યોગ્ય શોનો ઉપયોગ કરી શકો છો દરેક પેકેજનું વિગતવાર વર્ણન મેળવવા માટે આદેશ. માજી માટેample, ગિટ ટૂલ માટે વર્ણન માહિતી છાપવા માટે apt show git નો ઉપયોગ કરો.
પ્ર: જો પાયથોન સંસ્કરણ સમર્થિત ન હોય તો શું કરવું? A: ESP-IDF v4.3 ને Python સંસ્કરણની જરૂર છે જે v3.6 કરતા ઓછું ન હોય. ઉબુન્ટુના જૂના સંસ્કરણો માટે, કૃપા કરીને પાયથોનનું ઉચ્ચ સંસ્કરણ જાતે ડાઉનલોડ અને ઇન્સ્ટોલ કરો અને પાયથોન3 ને ડિફોલ્ટ પાયથોન પર્યાવરણ તરીકે સેટ કરો. તમે કીવર્ડ અપડેટ-વૈકલ્પિક પાયથોન માટે શોધ કરીને વિગતવાર સૂચનાઓ મેળવી શકો છો.
2. ESP-IDF રીપોઝીટરી કોડ ડાઉનલોડ કરો
ટર્મિનલ ખોલો અને mkdir આદેશનો ઉપયોગ કરીને તમારી હોમ ડિરેક્ટરીમાં esp નામનું ફોલ્ડર બનાવો. જો તમે ઇચ્છો તો તમે ફોલ્ડર માટે અલગ નામ પસંદ કરી શકો છો. ફોલ્ડર દાખલ કરવા માટે cd આદેશનો ઉપયોગ કરો.
પ્રકરણ 4. વિકાસ પર્યાવરણની સ્થાપના 39

$ mkdir -p /esp $ cd /esp
નીચે બતાવ્યા પ્રમાણે, ESP-IDF રીપોઝીટરી કોડ ડાઉનલોડ કરવા માટે git ક્લોન આદેશનો ઉપયોગ કરો:
$ git ક્લોન -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 સંસ્કરણ અને ઓપરેટિંગ સિસ્ટમ પર્યાવરણને તપાસે છે, અને પછી Python ટૂલ પેકેજો અને કમ્પાઇલેશન ટૂલ ચેઇન્સનું યોગ્ય સંસ્કરણ ડાઉનલોડ અને ઇન્સ્ટોલ કરે છે. સાધન સાંકળ માટે મૂળભૂત સ્થાપન પાથ /.espressif છે. તમારે ફક્ત esp-idf ડિરેક્ટરીમાં નેવિગેટ કરવાની અને install.sh ચલાવવાની જરૂર છે.
$ cd /esp/esp-idf $ ./install.sh
જો તમે ટૂલ ચેઇન સફળતાપૂર્વક ઇન્સ્ટોલ કરો છો, તો ટર્મિનલ પ્રદર્શિત થશે:
બધું થઈ ગયું!
આ સમયે, તમે સફળતાપૂર્વક ESP-IDF ડેવલપમેન્ટ એન્વાયર્નમેન્ટ સેટઅપ કર્યું છે.
4.2.2 Windows પર ESP-IDF ડેવલપમેન્ટ એન્વાયર્નમેન્ટ સેટઅપ કરી રહ્યું છે
1. ESP-IDF ટૂલ્સ ઇન્સ્ટોલર ડાઉનલોડ કરો
ટીપ્સ વિન્ડોઝ 10 અથવા તેનાથી ઉપરના પર ESP-IDF ડેવલપમેન્ટ એન્વાયર્નમેન્ટ સેટ કરવાની ભલામણ કરવામાં આવે છે. તમે 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 નું કદ છે, અને તેમાં પર્યાવરણ સેટઅપ માટે જરૂરી તમામ સોફ્ટવેર પેકેજો અને કોડ છે. મુખ્ય એડવાનtagઓફલાઈન ઈન્સ્ટોલરની e એ છે કે તેનો ઉપયોગ ઈન્ટરનેટ એક્સેસ વગરના કોમ્પ્યુટર પર થઈ શકે છે અને સામાન્ય રીતે ઈન્સ્ટોલેશનની સફળતાનો દર વધુ હોય છે. એ નોંધવું જોઈએ કે ઑફલાઇન ઇન્સ્ટોલર માત્ર v*.* અથવા v** દ્વારા ઓળખાયેલ ESP-IDF ના સ્થિર પ્રકાશનો ઇન્સ્ટોલ કરી શકે છે.
2. ઇન્સ્ટોલરનું યોગ્ય સંસ્કરણ ડાઉનલોડ કર્યા પછી ESP-IDF ટૂલ્સ ઇન્સ્ટોલર ચલાવો (પૂર્વ માટે ESP-IDF ટૂલ્સ ઑફલાઇન 4.3.2 લોample અહીં), exe પર ડબલ-ક્લિક કરો file ESP-IDF ઇન્સ્ટોલેશન ઇન્ટરફેસ શરૂ કરવા માટે. ઑફલાઇન ઇન્સ્ટોલરનો ઉપયોગ કરીને ESP-IDF સ્થિર સંસ્કરણ v4.3.2 કેવી રીતે ઇન્સ્ટોલ કરવું તે નીચે દર્શાવેલ છે.
(1) આકૃતિ 4.4 માં બતાવેલ "ઇન્સ્ટોલેશન ભાષા પસંદ કરો" ઇન્ટરફેસમાં, ડ્રોપ-ડાઉન સૂચિમાંથી વાપરવા માટેની ભાષા પસંદ કરો.
આકૃતિ 4.4. "ઇન્સ્ટોલેશન ભાષા પસંદ કરો" ઇન્ટરફેસ (2) ભાષા પસંદ કર્યા પછી, "લાયસન્સ કરાર" ઇન્ટરફેસને પોપ અપ કરવા માટે "ઓકે" પર ક્લિક કરો.
(જુઓ આકૃતિ 4.5). ઇન્સ્ટોલેશન લાઇસન્સ કરારને કાળજીપૂર્વક વાંચ્યા પછી, "હું કરાર સ્વીકારું છું" પસંદ કરો અને "આગલું" ક્લિક કરો.
આકૃતિ 4.5. "લાઈસન્સ એગ્રીમેન્ટ" ઈન્ટરફેસ પ્રકરણ 4. ડેવલપમેન્ટ એન્વાયર્નમેન્ટ સેટઅપ 41

(3) રીview "પ્રી-ઇન્સ્ટોલેશન સિસ્ટમ ચેક" ઇન્ટરફેસમાં સિસ્ટમ રૂપરેખાંકન (જુઓ આકૃતિ 4.6). વિન્ડોઝ વર્ઝન અને ઇન્સ્ટોલ કરેલ એન્ટીવાયરસ સોફ્ટવેર માહિતી તપાસો. જો બધી રૂપરેખાંકન વસ્તુઓ સામાન્ય હોય તો "આગલું" ક્લિક કરો. નહિંતર, તમે મુખ્ય વસ્તુઓ પર આધારિત ઉકેલો માટે "સંપૂર્ણ લોગ" પર ક્લિક કરી શકો છો.
આકૃતિ 4.6. "ઇન્સ્ટોલેશન પહેલાં સિસ્ટમ તપાસો" ઇન્ટરફેસ ટીપ્સ
તમે મદદ માટે https://github.com/espressif/idf-installer/issues પર લોગ સબમિટ કરી શકો છો. (4) 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 રજીસ્ટર કરો" તપાસવાની ભલામણ કરવામાં આવે છે.
એન્ટીવાયરસ સૉફ્ટવેરને કાઢી નાખવાથી અટકાવવા માટે વિન્ડોઝ ડિફેન્ડર એક્સક્લુઝન તરીકે ટૂલ્સ એક્ઝિક્યુટેબલ્સ…” 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 ડેવલપમેન્ટ એન્વાયર્નમેન્ટ સેટઅપ કરી રહ્યું છે
મેક સિસ્ટમ પર ESP-IDF ડેવલપમેન્ટ એન્વાયર્નમેન્ટ ઇન્સ્ટોલ કરવાની પ્રક્રિયા Linux સિસ્ટમ જેવી જ છે. રીપોઝીટરી કોડ ડાઉનલોડ કરવા અને ટૂલ ચેઇન ઇન્સ્ટોલ કરવા માટેના આદેશો બરાબર સમાન છે. માત્ર નિર્ભરતા પેકેજો સ્થાપિત કરવા માટેના આદેશો થોડા અલગ છે. 1. નિર્ભરતા પેકેજો ઇન્સ્ટોલ કરો ટર્મિનલ ખોલો, અને નીચે આપેલા આદેશને ચલાવીને, પાયથોન પેકેજ મેનેજમેન્ટ ટૂલ, પીપ ઇન્સ્ટોલ કરો:
% sudo સરળ ઇન્સ્ટોલ પાઇપ
હોમબ્રુ ઇન્સ્ટોલ કરો, 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 માં આપેલી સૂચનાઓને અનુસરો. પગલાંઓ Linux સિસ્ટમ પર ડાઉનલોડ કરવા જેવા જ છે.
પ્રકરણ 4. વિકાસ પર્યાવરણની સ્થાપના 45

3. ESP-IDF ડેવલપમેન્ટ ટૂલ ચેઇન ઇન્સ્ટોલ કરો
ESP-IDF ડેવલપમેન્ટ ટૂલ ચેઇન ઇન્સ્ટોલ કરવા માટે વિભાગ 4.2.1 માં આપેલી સૂચનાઓને અનુસરો. પગલાંઓ Linux સિસ્ટમ પર સ્થાપન માટે સમાન છે.
4.2.4 VS કોડ ઇન્સ્ટોલ કરવું
મૂળભૂત રીતે, ESP-IDF SDK માં કોડ એડિટિંગ ટૂલનો સમાવેશ થતો નથી (જોકે Windows માટે નવીનતમ ESP-IDF ઇન્સ્ટોલર ESP-IDF Eclipse ઇન્સ્ટોલ કરવાનો વિકલ્પ આપે છે). તમે કોડને સંપાદિત કરવા માટે તમારી પસંદગીના કોઈપણ ટેક્સ્ટ સંપાદન સાધનનો ઉપયોગ કરી શકો છો અને પછી ટર્મિનલ આદેશોનો ઉપયોગ કરીને તેને કમ્પાઈલ કરી શકો છો.
એક લોકપ્રિય કોડ સંપાદન સાધન VS કોડ (વિઝ્યુઅલ સ્ટુડિયો કોડ) છે, જે વપરાશકર્તા-મૈત્રીપૂર્ણ ઇન્ટરફેસ સાથે મફત અને સુવિધાયુક્ત કોડ સંપાદક છે. તે વિવિધ તક આપે છે plugins જે કોડ નેવિગેશન, સિન્ટેક્સ હાઇલાઇટિંગ, ગિટ વર્ઝન કંટ્રોલ અને ટર્મિનલ ઇન્ટિગ્રેશન જેવી કાર્યક્ષમતા પ્રદાન કરે છે. વધુમાં, 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 પ્રદાન કરે છે જે સરળ સંકલન અને ફ્લેશિંગ માટે પરવાનગી આપે છે.
MicroPython: એમ્બેડેડ માઇક્રોકન્ટ્રોલર પ્લેટફોર્મ પર ચલાવવા માટે રચાયેલ પાયથોન 3 ભાષાના દુભાષિયા.
સરળ સ્ક્રિપ્ટ ભાષા સાથે, તે ESP32-C3 ના પેરિફેરલ સંસાધનો (જેમ કે UART, SPI અને I2C) અને કોમ્યુનિકેશન ફંક્શન્સ (જેમ કે Wi-Fi અને બ્લૂટૂથ LE) ને સીધા જ ઍક્સેસ કરી શકે છે.
46 ESP32-C3 વાયરલેસ એડવેન્ચર: IoT માટે વ્યાપક માર્ગદર્શિકા

આ હાર્ડવેર ક્રિયાપ્રતિક્રિયાને સરળ બનાવે છે. માઇક્રોપાયથોન, પાયથોનની વ્યાપક ગાણિતિક ઑપરેશન લાઇબ્રેરી સાથે જોડાયેલું, ESP32-C3 પર જટિલ અલ્ગોરિધમ્સના અમલીકરણને સક્ષમ કરે છે, AI-સંબંધિત એપ્લિકેશનોના વિકાસને સરળ બનાવે છે. લિપિ ભાષા તરીકે, વારંવાર સંકલન કરવાની જરૂર નથી; ફેરફારો કરી શકાય છે અને સ્ક્રિપ્ટો સીધી રીતે ચલાવી શકાય છે.
નોડએમસીયુ: ESP શ્રેણી ચિપ્સ માટે વિકસિત LUA ભાષાના દુભાષિયા.
તે ESP ચિપ્સના લગભગ તમામ પેરિફેરલ કાર્યોને સપોર્ટ કરે છે અને તે MicroPython કરતાં હળવા છે. MicroPython ની જેમ જ, NodeMCU એક સ્ક્રિપ્ટ ભાષાનો ઉપયોગ કરે છે, જે પુનરાવર્તિત સંકલનની જરૂરિયાતને દૂર કરે છે.
વધુમાં, ESP32-C3 NuttX અને Zephyr ઓપરેટિંગ સિસ્ટમને પણ સપોર્ટ કરે છે. NuttX એ રીઅલ-ટાઇમ ઓપરેટિંગ સિસ્ટમ છે જે POSIX-સુસંગત ઇન્ટરફેસ પ્રદાન કરે છે, એપ્લિકેશન પોર્ટેબિલિટીને વધારે છે. Zephyr એ એક નાની રીઅલ-ટાઇમ ઓપરેટિંગ સિસ્ટમ છે જે ખાસ કરીને IoT એપ્લિકેશન્સ માટે રચાયેલ છે. તેમાં IoT વિકાસ માટે જરૂરી અસંખ્ય સૉફ્ટવેર લાઇબ્રેરીઓનો સમાવેશ થાય છે, જે ધીમે ધીમે એક વ્યાપક સૉફ્ટવેર ઇકોસિસ્ટમમાં વિકસિત થાય છે.
આ પુસ્તક ઉપરોક્ત વિકાસ વાતાવરણ માટે વિગતવાર સ્થાપન સૂચનાઓ પ્રદાન કરતું નથી. તમે સંબંધિત દસ્તાવેજો અને સૂચનાઓનું પાલન કરીને તમારી જરૂરિયાતોને આધારે વિકાસ વાતાવરણ સ્થાપિત કરી શકો છો.
4.3 ESP-IDF કમ્પાઇલેશન સિસ્ટમ
4.3.1 સંકલન પ્રણાલીની મૂળભૂત વિભાવનાઓ
ESP-IDF પ્રોજેક્ટ એ એન્ટ્રી ફંક્શન અને બહુવિધ સ્વતંત્ર કાર્યાત્મક ઘટકો સાથેના મુખ્ય પ્રોગ્રામનો સંગ્રહ છે. માજી માટેample, એક પ્રોજેક્ટ કે જે LED સ્વીચોને નિયંત્રિત કરે છે તેમાં મુખ્યત્વે એન્ટ્રી પ્રોગ્રામ મુખ્ય અને ડ્રાઇવર ઘટકનો સમાવેશ થાય છે જે GPIO ને નિયંત્રિત કરે છે. જો તમે LED રિમોટ કંટ્રોલને અનુભવવા માંગતા હો, તો તમારે Wi-Fi, TCP/IP પ્રોટોકોલ સ્ટેક વગેરે પણ ઉમેરવાની જરૂર છે.
કમ્પાઇલેશન સિસ્ટમ એક્ઝેક્યુટેબલ કમ્પાઇલ, લિંક અને જનરેટ કરી શકે છે files (.bin) બિલ્ડિંગ નિયમોના સમૂહ દ્વારા કોડ માટે. ESP-IDF v4.0 અને ઉપરના સંસ્કરણોની સંકલન સિસ્ટમ મૂળભૂત રીતે CMake પર આધારિત છે, અને સંકલન સ્ક્રિપ્ટ CMakeLists.txt કોડના સંકલન વર્તનને નિયંત્રિત કરવા માટે વાપરી શકાય છે. CMake ના મૂળભૂત વાક્યરચનાનું સમર્થન કરવા ઉપરાંત, ESP-IDF કમ્પાઇલેશન સિસ્ટમ ડિફૉલ્ટ કમ્પાઇલેશન નિયમો અને CMake ફંક્શનનો સમૂહ પણ વ્યાખ્યાયિત કરે છે અને તમે સરળ નિવેદનો સાથે સંકલન સ્ક્રિપ્ટ લખી શકો છો.
4.3.2 પ્રોજેક્ટ File માળખું
પ્રોજેક્ટ એ એક ફોલ્ડર છે જેમાં એન્ટ્રી પ્રોગ્રામ મુખ્ય, વપરાશકર્તા-વ્યાખ્યાયિત ઘટકો અને 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 હેઠળ ઘટકોની ડિરેક્ટરી જરૂરી નથી. તેનો ઉપયોગ ફક્ત પ્રોજેક્ટના કેટલાક કસ્ટમ ઘટકોનો સમાવેશ કરવા માટે થાય છે, જે તૃતીય-પક્ષ પુસ્તકાલયો અથવા વપરાશકર્તા-નિર્ધારિત કોડ હોઈ શકે છે. વધુમાં, ઘટકો ESP-IDF અથવા વર્તમાન પ્રોજેક્ટ સિવાયની કોઈપણ ડિરેક્ટરીમાંથી મેળવી શકાય છે, જેમ કે અન્ય ડિરેક્ટરીમાં સાચવેલા ઓપન-સોર્સ પ્રોજેક્ટમાંથી. આ કિસ્સામાં, તમારે રૂટ ડાયરેક્ટરી હેઠળ CMakeLists.txt માં EXTRA_COMPONENT_DIRS ચલ સેટ કરીને માત્ર ઘટકનો પાથ ઉમેરવાની જરૂર છે. આ ડાયરેક્ટરી એ જ નામ સાથેના કોઈપણ ESP-IDF ઘટકને ઓવરરાઈડ કરશે, ખાતરી કરીને કે યોગ્ય ઘટકનો ઉપયોગ થયો છે.
એન્ટ્રી પ્રોગ્રામ મુખ્ય પ્રોજેક્ટની અંદરની મુખ્ય ડિરેક્ટરી તે જ અનુસરે છે file અન્ય ઘટકો તરીકે માળખું (દા.ત., ઘટક1). જો કે, તે એક વિશેષ મહત્વ ધરાવે છે કારણ કે તે ફરજિયાત ઘટક છે જે દરેક પ્રોજેક્ટમાં અસ્તિત્વમાં હોવું જોઈએ. મુખ્ય નિર્દેશિકામાં પ્રોજેક્ટનો સોર્સ કોડ અને વપરાશકર્તા પ્રોગ્રામનો એન્ટ્રી પોઈન્ટ હોય છે, જેનું નામ app_main છે. મૂળભૂત રીતે, વપરાશકર્તા પ્રોગ્રામનો અમલ આ પ્રવેશ બિંદુથી શરૂ થાય છે. મુખ્ય ઘટક એ પણ અલગ છે કે તે શોધ પાથની અંદરના તમામ ઘટકો પર આપમેળે આધાર રાખે છે. તેથી, CMakeLists.txt માં REQUIRES અથવા PRIV_REQUIRES નિર્દેશોનો ઉપયોગ કરીને સ્પષ્ટપણે નિર્ભરતા દર્શાવવાની જરૂર નથી. file.
રૂપરેખાંકન file પ્રોજેક્ટની રૂટ ડિરેક્ટરીમાં રૂપરેખાંકન છે file sdkconfig કહેવાય છે, જે પ્રોજેક્ટમાંના તમામ ઘટકો માટે રૂપરેખાંકન પરિમાણો ધરાવે છે. sdkconfig file કમ્પાઇલેશન સિસ્ટમ દ્વારા આપમેળે જનરેટ થાય છે અને idf.py menuconfig આદેશ દ્વારા સુધારી અને પુનઃજનરેટ કરી શકાય છે. મેનુકોન્ફિગ વિકલ્પો મુખ્યત્વે પ્રોજેક્ટના Kconfig.projbuild અને ઘટકોના Kconfigમાંથી ઉદ્દભવે છે. ઘટક વિકાસકર્તાઓ સામાન્ય રીતે ઘટકને લવચીક અને રૂપરેખાંકિત કરવા Kconfig માં રૂપરેખાંકન વસ્તુઓ ઉમેરે છે.
બિલ્ડ ડિરેક્ટરી મૂળભૂત રીતે, પ્રોજેક્ટમાં બિલ્ડ ડિરેક્ટરી મધ્યવર્તી સ્ટોર કરે છે files અને fi-
પ્રકરણ 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 નામ આપવામાં આવ્યું છે. માજી માટેampલે, CONFIG_LOG_ ઉમેરી રહ્યા છીએ
50 ESP32-C3 વાયરલેસ એડવેન્ચર: IoT માટે વ્યાપક માર્ગદર્શિકા

DEFAULT_LEVEL_NONE = y એ UART ઈન્ટરફેસને મૂળભૂત રીતે લોગ ડેટા પ્રિન્ટ ન કરવા માટે રૂપરેખાંકિત કરી શકે છે. વધુમાં, જો કોઈ ચોક્કસ લક્ષ્ય માટે ચોક્કસ પરિમાણો સેટ કરવાની જરૂર હોય, તો રૂપરેખાંકન file નામ sdkconfig.defaults.TARGET_NAME ઉમેરી શકાય છે, જ્યાં TARGET_NAME એ esp32s2, esp32c3, વગેરે હોઈ શકે છે. આ રૂપરેખાંકન files સામાન્ય ડિફોલ્ટ રૂપરેખાંકન સાથે, સંકલન દરમિયાન sdkconfig માં આયાત કરવામાં આવે છે file sdkconfig.defaults પ્રથમ આયાત કરવામાં આવે છે, ત્યારબાદ લક્ષ્ય-વિશિષ્ટ રૂપરેખાંકન દ્વારા અનુસરવામાં આવે છે file, જેમ કે sdkconfig.defaults.esp32c3. એવા કિસ્સાઓમાં કે જ્યાં સમાન નામ સાથે રૂપરેખાંકન આઇટમ્સ છે, પછીનું રૂપરેખાંકન file ભૂતપૂર્વને ઓવરરાઇડ કરશે.
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 માં વર્ણવેલ કમ્પાઇલેશન સિસ્ટમના ડિફોલ્ટ બિલ્ડ નિયમોનો સમાવેશ થાય છે. પ્રોજેક્ટ(myProject) પ્રોજેક્ટ પોતે બનાવે છે અને તેનું નામ સ્પષ્ટ કરે છે. આ નામનો ઉપયોગ અંતિમ આઉટપુટ બાઈનરી તરીકે થશે 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 component1 પર આધાર રાખીને. જો કે, મુખ્ય ઘટક માટે, જે ડિફોલ્ટ રૂપે તમામ ઘટકો પર આધાર રાખે છે, REQUIRES પરિમાણ અવગણી શકાય છે.

વધુમાં, મૂળ CMake આદેશોનો પણ સંકલન સ્ક્રિપ્ટમાં ઉપયોગ કરી શકાય છે. માજી માટેample, ચલોને સેટ કરવા માટે સેટ આદેશનો ઉપયોગ કરો, જેમ કે set(variable “VALUE”).

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 menuconfig: મેનુકોન્ફિગ શરૂ કરી રહ્યું છે, એક ટર્મિનલ ગ્રાફિકલ રૂપરેખાંકન
ટૂલ, જે રૂપરેખાંકન વિકલ્પોને પસંદ અથવા સંશોધિત કરી શકે છે, અને રૂપરેખાંકન પરિણામો sdkconfig માં સાચવવામાં આવે છે. file. · idf.py બિલ્ડ: કોડ સંકલન શરૂ કરી રહ્યા છીએ. મધ્યવર્તી files અને સંકલન દ્વારા જનરેટ થયેલ અંતિમ એક્ઝિક્યુટેબલ પ્રોગ્રામ ડિફોલ્ટ રૂપે પ્રોજેક્ટની બિલ્ડ ડિરેક્ટરીમાં સાચવવામાં આવશે. સંકલન પ્રક્રિયા વધારાની છે, જેનો અર્થ છે કે જો માત્ર એક જ સ્ત્રોત છે file સુધારેલ છે, માત્ર સંશોધિત file આગલી વખતે સંકલિત કરવામાં આવશે.

52 ESP32-C3 વાયરલેસ એડવેન્ચર: IoT માટે વ્યાપક માર્ગદર્શિકા

· idf.py સાફ: મધ્યવર્તી સફાઈ files પ્રોજેક્ટ સંકલન દ્વારા પેદા થાય છે. સમગ્ર પ્રોજેક્ટને આગામી સંકલનમાં સંકલન કરવાની ફરજ પાડવામાં આવશે. નોંધ કરો કે CMake રૂપરેખાંકન અને menuconfig દ્વારા કરવામાં આવેલ રૂપરેખાંકન ફેરફારો સફાઈ દરમિયાન કાઢી નાખવામાં આવશે નહીં.
· 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 પ્રેક્ટિસ: કમ્પાઇલિંગ એક્સampલે પ્રોગ્રામ "બ્લિંક"
4.4.1 ઉદાampલે વિશ્લેષણ
આ વિભાગ Blink પ્રોગ્રામને ભૂતપૂર્વ તરીકે લેશેampવિશ્લેષણ કરવા માટે file વિગતવાર વાસ્તવિક પ્રોજેક્ટની રચના અને કોડિંગ નિયમો. બ્લિંક પ્રોગ્રામ LED બ્લિંકિંગ ઇફેક્ટનો અમલ કરે છે, અને પ્રોજેક્ટ એક્સ ડિરેક્ટરીમાં સ્થિત છે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મેનુરૂપમાં લે પ્રોગ્રામ. અન્ય બિનજરૂરી 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કાર્ય ઘોષણાને અનુરૂપ છે-

ટેન્શન્સ 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(રદદ)

4. {

5.

/*IO ને GPIO ડિફોલ્ટ ફંક્શન તરીકે ગોઠવો, પુલ-અપ મોડને સક્ષમ કરો અને

6.

ઇનપુટ અને આઉટપુટ મોડને અક્ષમ કરો*/

7.

gpio_reset_pin(BLINK_GPIO);

54 ESP32-C3 વાયરલેસ એડવેન્ચર: IoT માટે વ્યાપક માર્ગદર્શિકા

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

/*GPIO ને આઉટપુટ મોડ પર સેટ કરો*/ gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT); જ્યારે (1) {
/*પ્રિન્ટ લોગ*/ printf("LEDn બંધ કરવું"); /*LED બંધ કરો (આઉટપુટ લો લેવલ)*/ gpio_set_level(BLINK_GPIO, 0); /*વિલંબ (1000 ms)*/ vTaskDelay(1000 / portTICK_PERIOD_MS); printf("LEDn ચાલુ કરવું"); /*LED ચાલુ કરો (આઉટપુટ ઉચ્ચ સ્તર)*/ gpio_set_level(BLINK_GPIO, 1); vTaskDelay(1000 / portTICK_PERIOD_MS); }

બ્લિંક એક્સમાં app_main() ફંક્શનample પ્રોગ્રામ વપરાશકર્તા કાર્યક્રમો માટે પ્રવેશ બિંદુ તરીકે સેવા આપે છે. તે એક સરળ કાર્ય છે જેમાં કોઈ પરિમાણો નથી અને કોઈ વળતર મૂલ્ય નથી. આ ફંક્શનને સિસ્ટમ દ્વારા આરંભીકરણ પૂર્ણ કર્યા પછી કહેવામાં આવે છે, જેમાં લોગ સીરીયલ પોર્ટ શરૂ કરવા, સિંગલ/ડ્યુઅલ કોર ગોઠવવા અને વોચડોગને ગોઠવવા જેવા કાર્યોનો સમાવેશ થાય છે.

app_main() ફંક્શન મુખ્ય નામના કાર્યના સંદર્ભમાં ચાલે છે. આ કાર્યનું સ્ટેક કદ અને પ્રાથમિકતા મેનુકોન્ફિગ કમ્પોનન્ટકોન્ફિગ કોમન ESP-સંબંધિતમાં એડજસ્ટ કરી શકાય છે.

LED બ્લિંક કરવા જેવા સરળ કાર્યો માટે, તમામ જરૂરી કોડ સીધા જ app_main() ફંક્શનમાં લાગુ કરી શકાય છે. આમાં સામાન્ય રીતે LED ને અનુરૂપ GPIO ને પ્રારંભ કરવાનો અને LED ને ચાલુ અને બંધ કરવા માટે થોડો સમય(1) લૂપનો ઉપયોગ કરવાનો સમાવેશ થાય છે. વૈકલ્પિક રીતે, તમે એક નવું કાર્ય બનાવવા માટે FreeRTOS API નો ઉપયોગ કરી શકો છો જે LED બ્લિંકિંગને હેન્ડલ કરે છે. એકવાર નવું કાર્ય સફળતાપૂર્વક બની જાય, પછી તમે 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 રૂપરેખાંકન શામેલ કરો -IDF સંકલન સિસ્ટમ

પ્રકરણ 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 દ્વારા પ્રદાન કરવામાં આવે છે. તેનો ઉપયોગ કોન કરવા માટે થાય છે

દસ્તાવેજો / સંસાધનો

Espressif સિસ્ટમ્સ ESP32-C3 વાયરલેસ એડવેન્ચર [પીડીએફ] વપરાશકર્તા માર્ગદર્શિકા
ESP32-C3 વાયરલેસ એડવેન્ચર, ESP32-C3, વાયરલેસ એડવેન્ચર, એડવેન્ચર

સંદર્ભો

એક ટિપ્પણી મૂકો

તમારું ઇમેઇલ સરનામું પ્રકાશિત કરવામાં આવશે નહીં. જરૂરી ક્ષેત્રો ચિહ્નિત થયેલ છે *