مشمولات چھپائیں
2 ESP32-C3 وائرلیس ایڈونچر

ESP32-C3 وائرلیس ایڈونچر

ESP32-C3 وائرلیس ایڈونچر

IoT کے لیے ایک جامع گائیڈ

Espressif Systems جون 12، 2023

وضاحتیں

  • پروڈکٹ: ESP32-C3 وائرلیس ایڈونچر
  • ڈویلپر: ایسپریسیف سسٹمز
  • تاریخ: 12 جون 2023

مصنوعات کے استعمال کی ہدایات

تیاری

ESP32-C3 وائرلیس ایڈونچر استعمال کرنے سے پہلے، یقینی بنائیں کہ آپ ہیں۔
IoT کے تصورات اور فن تعمیر سے واقف ہیں۔ اس سے مدد ملے گی۔
آپ سمجھتے ہیں کہ ڈیوائس کس طرح بڑے IoT ماحولیاتی نظام میں فٹ بیٹھتی ہے۔
اور سمارٹ ہومز میں اس کی ممکنہ ایپلی کیشنز۔

IoT پروجیکٹس کا تعارف اور پریکٹس

اس سیکشن میں، آپ عام IoT پروجیکٹس کے بارے میں جانیں گے،
عام IoT آلات کے بنیادی ماڈیولز، بنیادی ماڈیولز سمیت
کلائنٹ ایپلی کیشنز، اور عام IoT کلاؤڈ پلیٹ فارمز۔ یہ مرضی
آپ کو سمجھنے اور تخلیق کرنے کی بنیاد فراہم کرتے ہیں۔
اپنے آئی او ٹی پروجیکٹس۔

پریکٹس: اسمارٹ لائٹ پروجیکٹ

اس پریکٹس پروجیکٹ میں، آپ سمارٹ بنانے کا طریقہ سیکھیں گے۔
ESP32-C3 وائرلیس ایڈونچر کا استعمال کرتے ہوئے روشنی۔ منصوبے کا ڈھانچہ،
افعال، ہارڈ ویئر کی تیاری، اور ترقی کا عمل ہو جائے گا
تفصیل سے بیان کیا.

پروجیکٹ کا ڈھانچہ

پروجیکٹ کئی اجزاء پر مشتمل ہے، بشمول
ESP32-C3 وائرلیس ایڈونچر، ایل ای ڈی، سینسرز، اور ایک کلاؤڈ
پسدید

پروجیکٹ کے افعال

سمارٹ لائٹ پروجیکٹ آپ کو چمک کو کنٹرول کرنے کی اجازت دیتا ہے۔
موبائل ایپ کے ذریعے دور سے ایل ای ڈی کا رنگ یا web
انٹرفیس

ہارڈ ویئر کی تیاری

منصوبے کی تیاری کے لیے، آپ کو جمع کرنے کی ضرورت ہوگی۔
ضروری ہارڈ ویئر اجزاء، جیسے ESP32-C3 وائرلیس
ایڈونچر بورڈ، ایل ای ڈی، ریزسٹرس، اور پاور سپلائی۔

ترقی کا عمل

ترقی کے عمل میں ترقی کو ترتیب دینا شامل ہے۔
ماحول، ایل ای ڈی کو کنٹرول کرنے کے لیے کوڈ لکھنا، سے منسلک کرنا
کلاؤڈ پسدید، اور سمارٹ کی فعالیت کی جانچ کرنا
روشنی

ای ایس پی رین میکر کا تعارف

ESP RainMaker IoT کی ترقی کے لیے ایک طاقتور فریم ورک ہے۔
آلات اس سیکشن میں، آپ سیکھیں گے کہ ESP RainMaker کیا ہے اور
یہ آپ کے منصوبوں میں کیسے لاگو کیا جا سکتا ہے.

ESP RainMaker کیا ہے؟

ESP RainMaker ایک کلاؤڈ بیسڈ پلیٹ فارم ہے جو ایک سیٹ فراہم کرتا ہے۔
IoT آلات کی تعمیر اور انتظام کے لیے آلات اور خدمات۔

ESP رین میکر کا نفاذ

یہ سیکشن اس میں شامل مختلف اجزاء کی وضاحت کرتا ہے۔
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 کور سسٹم کے ہارڈویئر ڈیزائن میں پاور شامل ہے۔
سپلائی، پاور آن سیکوینس، سسٹم ری سیٹ، ایس پی آئی فلیش، کلاک سورس،
اور آر ایف اور اینٹینا کے تحفظات۔ یہ ذیلی سیکشن فراہم کرتا ہے۔
ان پہلوؤں پر تفصیلی معلومات۔

اکثر پوچھے گئے سوالات

س: ای ایس پی رین میکر کیا ہے؟

A: ESP RainMaker ایک کلاؤڈ بیسڈ پلیٹ فارم ہے جو ٹولز مہیا کرتا ہے۔
اور IoT آلات کی تعمیر اور انتظام کے لیے خدمات۔ یہ آسان بناتا ہے۔
ترقی کا عمل اور آسان ڈیوائس سیٹ اپ، ریموٹ کی اجازت دیتا ہے۔
کنٹرول، اور نگرانی.

سوال: میں ترقی کے ماحول کو کیسے ترتیب دے سکتا ہوں؟
ESP32-C3؟

A: ESP32-C3 کے لیے ترقیاتی ماحول قائم کرنے کے لیے، آپ کو ضرورت ہے۔
ESP-IDF (Espressif IoT ڈویلپمنٹ فریم ورک) کو انسٹال کرنا اور
فراہم کردہ ہدایات کے مطابق اسے ترتیب دیں۔ ESP-IDF ہے۔
ESP32 پر مبنی آلات کے لیے سرکاری ترقیاتی فریم ورک۔

سوال: ESP RainMaker کی خصوصیات کیا ہیں؟

A: ESP RainMaker صارف سمیت مختلف خصوصیات پیش کرتا ہے۔
مینجمنٹ، اختتامی صارف کی خصوصیات، اور منتظم کی خصوصیات۔ صارف کا انتظام
آسان ڈیوائس کلیمنگ اور ڈیٹا سنکرونائزیشن کی اجازت دیتا ہے۔ اختتامی صارف
خصوصیات موبائل ایپ کے ذریعے آلات کے ریموٹ کنٹرول کو فعال کرتی ہیں یا
web انٹرفیس ایڈمن کی خصوصیات ڈیوائس کی نگرانی کے لیے ٹولز فراہم کرتی ہیں۔
اور انتظام.

ESP32-C3 وائرلیس ایڈونچر
IoT کے لیے ایک جامع گائیڈ
Espressif Systems جون 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 ESP RainMaker کا تعارف

19

3.1 ESP RainMaker کیا ہے؟ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2 ESP رین میکر کا نفاذ۔ . . . . . . . . . . . . . . . . . . . . . 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 RainMaker کی خصوصیات۔ . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Git ورک فلو . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.3 موزوں ورژن کا انتخاب کرنا۔ . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.4 اوورview ESP-IDF SDK ڈائریکٹری کا۔ . . . . . . . . . . . . . . . . . . . 34 4.2 ESP-IDF ڈیولپمنٹ انوائرمنٹ سیٹ اپ کرنا۔ . . . . . . . . . . . . . . . . 38 4.2.1 لینکس پر ESP-IDF ڈیولپمنٹ انوائرمنٹ سیٹ اپ کرنا۔ . . . . . . . 38 4.2.2 ونڈوز پر ESP-IDF ڈویلپمنٹ انوائرمنٹ سیٹ اپ کرنا۔ . . . . . 40 4.2.3 میک پر 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 پریکٹس: مرتب کرنا Exampلی پروگرام "پلک جھپکنا"۔ . . . . . . . . . . . . . . . . . 53 4.4.1 سابقampلی تجزیہ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.4.2 بلنک پروگرام مرتب کرنا۔ . . . . . . . . . . . . . . . . . . . . . . 56 4.4.3 پلک جھپکنے کے پروگرام کو چمکانا۔ . . . . . . . . . . . . . . . . . . . . . . . 59 4.4.4 بلنک پروگرام کا سیریل پورٹ لاگ تجزیہ۔ . . . . . . . . . . . . . 60 4.5 خلاصہ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

II ہارڈ ویئر اور ڈرائیور کی ترقی

65

ESP5-C32 پر مبنی اسمارٹ لائٹ پروڈکٹس کا 3 ہارڈ ویئر ڈیزائن

67

5.1 سمارٹ لائٹ مصنوعات کی خصوصیات اور ساخت۔ . . . . . . . . . . . . . . 67

5.2 ESP32-C3 کور سسٹم کا ہارڈ ویئر ڈیزائن۔ . . . . . . . . . . . . . . . . . . 70

5.2.1 بجلی کی فراہمی . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

5.2.2 پاور آن سیکوینس اور سسٹم ری سیٹ۔ . . . . . . . . . . . . . . . . . 74

5.2.3 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 سگنلز کے GPIOs کو ترتیب دینا۔ . . . . . . . . . . . . . . . . . . . 82

5.3.3 فرم ویئر اور ڈیبگنگ انٹرفیس ڈاؤن لوڈ کرنا۔ . . . . . . . . . . . 82

RF ڈیزائن کے لیے 5.3.4 رہنما خطوط . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3.5 پاور سپلائی ڈیزائن کے لیے رہنما خطوط۔ . . . . . . . . . . . . . . . . . . 86 5.4 خلاصہ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

6 ڈرائیور کی ترقی

87

6.1 ڈرائیور کی ترقی کا عمل . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

6.2 ESP32-C3 پیریفرل ایپلی کیشنز۔ . . . . . . . . . . . . . . . . . . . . . . . . 88

6.3 ایل ای ڈی ڈرائیور کی بنیادی باتیں . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6.3.1 رنگین خالی جگہیں . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6.3.2 ایل ای ڈی ڈرائیور . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

6.3.3 ایل ای ڈی ڈمنگ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

6.3.4 PWM کا تعارف۔ . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

6.4 ایل ای ڈی ڈمنگ ڈرائیور ڈویلپمنٹ۔ . . . . . . . . . . . . . . . . . . . . . . . 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 ایل ای ڈی ڈمنگ ڈرائیور۔ . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

6.6 خلاصہ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

III وائرلیس مواصلات اور کنٹرول

109

7 وائی فائی کنفیگریشن اور کنکشن

111

7.1 Wi-Fi کی بنیادی باتیں۔ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.1 وائی فائی کا تعارف۔ . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.2 IEEE 802.11 کا ارتقاء . . . . . . . . . . . . . . . . . . . . . . . . 111

7.1.3 وائی فائی تصورات . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

7.1.4 وائی فائی کنکشن۔ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

7.2 بلوٹوتھ کی بنیادی باتیں۔ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

7.2.1 بلوٹوتھ کا تعارف۔ . . . . . . . . . . . . . . . . . . . . . . . . 123

7.2.2 بلوٹوتھ تصورات۔ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

7.2.3 بلوٹوتھ کنکشن۔ . . . . . . . . . . . . . . . . . . . . . . . . . . 127

7.3 Wi-Fi نیٹ ورک کنفیگریشن۔ . . . . . . . . . . . . . . . . . . . . . . . . . . 131

7.3.1 Wi-Fi نیٹ ورک کنفیگریشن گائیڈ۔ . . . . . . . . . . . . . . . . . . . 131

7.3.2 سافٹ اے پی . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

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

7.3.4 بلوٹوتھ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

7.3.5 دیگر طریقے . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

7.4 وائی فائی پروگرامنگ۔ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 7.4.1 ESP-IDF میں Wi-Fi اجزاء۔ . . . . . . . . . . . . . . . . . . . . . . 139 7.4.2 مشق: Wi-Fi کنکشن۔ . . . . . . . . . . . . . . . . . . . . . . . 141 7.4.3 ورزش: اسمارٹ وائی فائی کنکشن۔ . . . . . . . . . . . . . . . . . . . . 145
7.5 پریکٹس: اسمارٹ لائٹ پروجیکٹ میں وائی فائی کنفیگریشن۔ . . . . . . . . . . . . . . 156 7.5.1 اسمارٹ لائٹ پروجیکٹ میں وائی فائی کنکشن۔ . . . . . . . . . . . . . . . . 156 7.5.2 اسمارٹ وائی فائی کنفیگریشن۔ . . . . . . . . . . . . . . . . . . . . . . . . 157
7.6 خلاصہ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

8 مقامی کنٹرول

159

8.1 لوکل کنٹرول کا تعارف۔ . . . . . . . . . . . . . . . . . . . . . . . . . . 159

8.1.1 لوکل کنٹرول کا اطلاق۔ . . . . . . . . . . . . . . . . . . . . . . . 161

8.1.2 عدنانtagمقامی کنٹرول کے 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رام پروٹوکول (UDP) . . . . . . . . . . . . . . . . . . . . . 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رام ٹرانسپورٹ لیئر سیکیورٹی (DTLS)۔ . . . . . . 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 لینکس اور ونڈوز پر 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 RainMaker کی بنیادی باتیں . . . . . . . . . . . . . . . . . . . . . . . . . . 243 9.4.2 نوڈ اور کلاؤڈ بیک اینڈ کمیونیکیشن پروٹوکول۔ . . . . . . . . . . 244 9.4.3 کلائنٹ اور کلاؤڈ بیک اینڈ کے درمیان مواصلت۔ . . . . . . . . . . 249 9.4.4 صارف کے کردار . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 9.4.5 بنیادی خدمات . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 9.4.6 Smart Light Exampلی . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 اینڈرائیڈ ایکٹیویٹی کا لائف سائیکل۔ . . . . . . . . . . . . . . . . . . . . . 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 APIs کا تعارف۔ . . . . . . . . . . . . . . . . . . . . . 285 10.4.2 سمارٹ فون کے ذریعے مواصلت شروع کرنا۔ . . . . . . . . . . . . . . . 286 10.4.3 اکاؤنٹ رجسٹریشن . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 10.4.4 اکاؤنٹ لاگ ان . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 10.5 ڈیوائس پروویژننگ کی ترقی۔ . . . . . . . . . . . . . . . . . . . . . . 292 10.5.1 سکیننگ ڈیوائسز . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 10.5.2 کنیکٹنگ ڈیوائسز . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 10.5.3 خفیہ چابیاں پیدا کرنا۔ . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.4 نوڈ آئی ڈی حاصل کرنا۔ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 10.5.5 پروویژننگ ڈیوائسز . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 10.6 ڈیوائس کنٹرول کی ترقی۔ . . . . . . . . . . . . . . . . . . . . . . . . . 302 10.6.1 کلاؤڈ اکاؤنٹس کے لیے آلات کو بائنڈنگ کرنا۔ . . . . . . . . . . . . . . . . . . . 303 10.6.2 آلات کی فہرست حاصل کرنا۔ . . . . . . . . . . . . . . . . . . . . . . . . . 305 10.6.3 ڈیوائس کی حیثیت حاصل کرنا۔ . . . . . . . . . . . . . . . . . . . . . . . . . . 308 10.6.4 ڈیوائس اسٹیٹس کو تبدیل کرنا۔ . . . . . . . . . . . . . . . . . . . . . . . . . 310 10.7 شیڈولنگ اور یوزر سینٹر کی ترقی۔ . . . . . . . . . . . . . . . . . . 313 10.7.1 شیڈولنگ فنکشن کو نافذ کرنا۔ . . . . . . . . . . . . . . . . . . . 313 10.7.2 یوزر سینٹر کو نافذ کرنا۔ . . . . . . . . . . . . . . . . . . . . . . . . 315 10.7.3 مزید کلاؤڈ APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 سابقہamples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 چل رہا ہے Example esp-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 ایک سنگل کور وائی فائی اور بلوٹوتھ 5 (LE) مائکروکنٹرولر SoC ہے، جو اوپن سورس RISC-V فن تعمیر پر مبنی ہے۔ یہ طاقت، I/O صلاحیتوں، اور سیکورٹی کے صحیح توازن کو متاثر کرتا ہے، اس طرح منسلک آلات کے لیے بہترین سرمایہ کاری مؤثر حل پیش کرتا ہے۔ ESP32-C3 فیملی کی مختلف ایپلی کیشنز کو دکھانے کے لیے، Espressif کی یہ کتاب آپ کو AIoT کے ذریعے ایک دلچسپ سفر پر لے جائے گی، IoT پروجیکٹ کی ترقی اور ماحولیات کے سیٹ اپ کی بنیادی باتوں سے لے کر عملی سابقہ ​​تک۔amples پہلے چار ابواب IoT، ESP RainMaker اور ESP-IDF کے بارے میں بات کرتے ہیں۔ ہارڈ ویئر ڈیزائن اور ڈرائیور کی ترقی پر باب 5 اور 6 مختصر۔ جیسے جیسے آپ ترقی کریں گے، آپ دریافت کریں گے کہ Wi-Fi نیٹ ورکس اور موبائل ایپس کے ذریعے اپنے پروجیکٹ کو کیسے ترتیب دیا جائے۔ آخر میں، آپ اپنے پروجیکٹ کو بہتر بنانا اور اسے بڑے پیمانے پر پیداوار میں ڈالنا سیکھیں گے۔
اگر آپ متعلقہ شعبوں میں انجینئر ہیں، سافٹ ویئر آرکیٹیکٹ، استاد، طالب علم، یا کوئی بھی جو IoT میں دلچسپی رکھتا ہے، تو یہ کتاب آپ کے لیے ہے۔
آپ کوڈ سابق ڈاؤن لوڈ کر سکتے ہیں۔ample اس کتاب میں GitHub پر Espressif کی سائٹ سے استعمال کیا گیا ہے۔ IoT کی ترقی کے بارے میں تازہ ترین معلومات کے لیے، براہ کرم ہمارے آفیشل اکاؤنٹ کو فالو کریں۔

دیباچہ
ایک معلوماتی دنیا
انٹرنیٹ کی لہر پر سوار ہو کر، انٹرنیٹ آف تھنگز (IoT) نے ڈیجیٹل معیشت میں ایک نئی قسم کا بنیادی ڈھانچہ بننے کے لیے اپنا شاندار آغاز کیا۔ ٹیکنالوجی کو عوام کے قریب لانے کے لیے، Espressif Systems اس وژن کے لیے کام کرتا ہے کہ زندگی کے تمام شعبوں سے تعلق رکھنے والے ڈویلپرز IoT کا استعمال کرتے ہوئے ہمارے دور کے کچھ انتہائی اہم مسائل کو حل کر سکتے ہیں۔ "تمام چیزوں کے ذہین نیٹ ورک" کی دنیا وہ ہے جس کی ہم مستقبل سے توقع کر رہے ہیں۔
ہمارے اپنے چپس کو ڈیزائن کرنا اس وژن کا ایک اہم جزو بناتا ہے۔ یہ میراتھن ہونا ہے، جس میں تکنیکی حدود کے خلاف مسلسل کامیابیاں درکار ہوتی ہیں۔ "گیم چینجر" ESP8266 سے لے کر ESP32 سیریز تک جو Wi-Fi اور بلوٹوتھر (LE) کنیکٹیویٹی کو مربوط کرتی ہے، اس کے بعد AI ایکسلریشن سے لیس ESP32-S3، Espressif کبھی بھی AIoT حل کے لیے پروڈکٹس کی تحقیق اور ترقی نہیں روکتا ہے۔ ہمارے اوپن سورس سافٹ ویئر، جیسے IoT ڈویلپمنٹ فریم ورک ESP-IDF، Mesh Development Framework ESP-MDF، اور ڈیوائس کنیکٹیویٹی پلیٹ فارم ESP RainMaker کے ساتھ، ہم نے AIoT ایپلیکیشنز کی تعمیر کے لیے ایک آزاد فریم ورک بنایا ہے۔
جولائی 2022 تک، Espressif کے IoT چپ سیٹس کی مجموعی ترسیل 800 ملین سے تجاوز کر گئی ہے، جو Wi-Fi MCU مارکیٹ میں آگے ہے اور دنیا بھر میں منسلک آلات کی ایک بڑی تعداد کو طاقت فراہم کر رہی ہے۔ اتکرجتا کا حصول ہر Espressif پروڈکٹ کو اس کے اعلیٰ سطح کے انضمام اور لاگت کی کارکردگی کے لیے ایک بڑا ہٹ بناتا ہے۔ ESP32-C3 کا اجراء Espressif کی خود ترقی یافتہ ٹیکنالوجی کا ایک اہم سنگ میل ہے۔ یہ ایک سنگل کور، 32 بٹ، RISC-V پر مبنی MCU ہے جس میں 400KB SRAM ہے، جو 160MHz پر چل سکتا ہے۔ اس نے 2.4 گیگا ہرٹز وائی فائی اور بلوٹوتھ 5 (ایل ای) کو لانگ رینج سپورٹ کے ساتھ مربوط کیا ہے۔ یہ طاقت، I/O صلاحیتوں، اور سیکورٹی کے بہترین توازن کو متاثر کرتا ہے، اس طرح منسلک آلات کے لیے بہترین سرمایہ کاری مؤثر حل پیش کرتا ہے۔ اس طرح کی طاقتور ESP32-C3 پر مبنی، اس کتاب کا مقصد قارئین کو IoT سے متعلق علم کو مفصل مثال اور عملی مثال کے ساتھ سمجھنے میں مدد فراہم کرنا ہے۔amples
ہم نے یہ کتاب کیوں لکھی؟
Espressif Systems ایک سیمی کنڈکٹر کمپنی سے زیادہ ہے۔ یہ ایک IoT پلیٹ فارم کمپنی بھی ہے، جو ٹیکنالوجی کے میدان میں ہمیشہ کامیابیوں اور اختراعات کے لیے کوشاں رہتی ہے۔ ایک ہی وقت میں، Espressif نے ایک منفرد ماحولیاتی نظام کی تشکیل کرتے ہوئے اپنے خود تیار کردہ آپریٹنگ سسٹم اور سافٹ ویئر فریم ورک کو کمیونٹی کے ساتھ اوپن سورس اور شیئر کیا ہے۔ انجینئرز، بنانے والے، اور ٹیکنالوجی کے شوقین افراد فعال طور پر Espressif کی مصنوعات پر مبنی نئی سافٹ ویئر ایپلی کیشنز تیار کرتے ہیں، آزادانہ طور پر بات چیت کرتے ہیں، اور اپنے تجربے کا اشتراک کرتے ہیں۔ آپ ہر وقت مختلف پلیٹ فارمز، جیسے YouTube اور GitHub پر ڈویلپرز کے دلچسپ خیالات دیکھ سکتے ہیں۔ Espressif کی مصنوعات کی مقبولیت نے مصنفین کی بڑھتی ہوئی تعداد کو متحرک کیا ہے جنہوں نے انگریزی، چینی، جرمن، فرانسیسی اور جاپانی سمیت دس سے زیادہ زبانوں میں Espressif chipsets پر مبنی 100 سے زیادہ کتابیں تیار کی ہیں۔

یہ کمیونٹی پارٹنرز کی حمایت اور اعتماد ہے جو Espressif کی مسلسل جدت طرازی کی حوصلہ افزائی کرتا ہے۔ "ہم اپنی چپس، آپریٹنگ سسٹمز، فریم ورک، حل، کلاؤڈ، کاروباری طریقوں، ٹولز، دستاویزات، تحریروں، خیالات وغیرہ کو ان جوابات کے لیے اور بھی زیادہ متعلقہ بنانے کی کوشش کرتے ہیں جن کی لوگوں کو عصری زندگی کے سب سے اہم مسائل میں ضرورت ہے۔ یہ Espressif کی اعلیٰ ترین خواہش اور اخلاقی کمپاس ہے۔ ایسپریسیف کے بانی اور سی ای او مسٹر ٹیو سوی این نے کہا۔
Espressif پڑھنے اور خیالات کی قدر کرتا ہے۔ چونکہ IoT ٹکنالوجی کی مسلسل اپ گریڈنگ انجینئرز کے لیے اعلیٰ تقاضوں کا باعث بنتی ہے، ہم کس طرح زیادہ سے زیادہ لوگوں کو IoT چپس، آپریٹنگ سسٹم، سافٹ ویئر فریم ورک، ایپلیکیشن اسکیموں اور کلاؤڈ سروس پروڈکٹس میں تیزی سے مہارت حاصل کرنے میں مدد کر سکتے ہیں؟ جیسا کہ کہاوت ہے، ایک آدمی کو مچھلی دینے سے بہتر ہے کہ اسے مچھلی پکڑنا سکھایا جائے۔ ذہن سازی کے ایک سیشن میں، یہ ہمارے ذہن میں آیا کہ ہم IoT کی ترقی کے کلیدی علم کو منظم طریقے سے ترتیب دینے کے لیے ایک کتاب لکھ سکتے ہیں۔ ہم نے اسے ختم کیا، فوری طور پر سینئر انجینئرز کے ایک گروپ کو اکٹھا کیا، اور ایمبیڈڈ پروگرامنگ، IoT ہارڈویئر اور سافٹ ویئر ڈویلپمنٹ میں تکنیکی ٹیم کے تجربے کو یکجا کیا، یہ سب اس کتاب کی اشاعت میں اپنا حصہ ڈال رہے ہیں۔ لکھنے کے عمل میں، ہم نے معروضی اور منصفانہ ہونے کی پوری کوشش کی، کوکون سے چھین لیا، اور چیزوں کے انٹرنیٹ کی پیچیدگی اور دلکشی کو بتانے کے لیے مختصر الفاظ کا استعمال کیا۔ ترقی کے عمل میں درپیش سوالات کے واضح جواب دینے کے لیے، اور متعلقہ تکنیکی ماہرین اور فیصلہ سازوں کے لیے عملی IoT ترقیاتی رہنما خطوط فراہم کرنے کے لیے، ہم نے عام سوالات کا احتیاط سے خلاصہ کیا، کمیونٹی کے تاثرات اور تجاویز کا حوالہ دیا۔
کتاب کا ڈھانچہ
یہ کتاب انجینئر پر مبنی نقطہ نظر لیتی ہے اور IoT پروجیکٹ کی ترقی کے لیے قدم بہ قدم ضروری معلومات کی وضاحت کرتی ہے۔ یہ چار حصوں پر مشتمل ہے، حسب ذیل:
· تیاری (باب 1): یہ حصہ IoT کے فن تعمیر، عام IoT پروجیکٹ فریم ورک، ESP RainMakerr کلاؤڈ پلیٹ فارم، اور ترقیاتی ماحول ESP-IDF کو متعارف کراتا ہے، تاکہ IoT پروجیکٹ کی ترقی کے لیے ایک مضبوط بنیاد رکھی جا سکے۔
ہارڈ ویئر اور ڈرائیور ڈیولپمنٹ (باب 5): ESP6-C32 چپ سیٹ کی بنیاد پر، یہ حصہ کم از کم ہارڈویئر سسٹم اور ڈرائیور کی ترقی کی وضاحت کرتا ہے، اور ڈمنگ، کلر گریڈنگ، اور وائرلیس کمیونیکیشن کے کنٹرول کو لاگو کرتا ہے۔
وائرلیس مواصلات اور کنٹرول (باب 7): یہ حصہ ESP11-C32 چپ، مقامی اور کلاؤڈ کنٹرول پروٹوکول، اور آلات کے مقامی اور ریموٹ کنٹرول پر مبنی ذہین وائی فائی کنفیگریشن اسکیم کی وضاحت کرتا ہے۔ یہ اسمارٹ فون ایپس تیار کرنے، فرم ویئر اپ گریڈ کرنے، اور ورژن مینجمنٹ کے لیے اسکیمیں بھی فراہم کرتا ہے۔
· اصلاح اور بڑے پیمانے پر پیداوار (باب 12-15): یہ حصہ اعلی درجے کی IoT ایپلی کیشنز کے لیے ہے، جو پاور مینجمنٹ میں مصنوعات کی اصلاح، کم طاقت کی اصلاح، اور بہتر سیکیورٹی پر توجہ مرکوز کرتا ہے۔ یہ بڑے پیمانے پر پیداوار میں فرم ویئر کو جلانے اور جانچنے کا بھی تعارف کرتا ہے، اور ریموٹ مانیٹرنگ پلیٹ فارم ESP Insights کے ذریعے ڈیوائس کے فرم ویئر کے چلتے ہوئے اسٹیٹس اور لاگز کی تشخیص کیسے کی جائے۔

سورس کوڈ کے بارے میں
قارئین سابق چلا سکتے ہیں۔ampاس کتاب میں لی پروگرامز، یا تو دستی طور پر کوڈ درج کرکے یا کتاب کے ساتھ موجود سورس کوڈ کا استعمال کرکے۔ ہم تھیوری اور پریکٹس کے امتزاج پر زور دیتے ہیں، اور اس طرح تقریباً ہر باب میں سمارٹ لائٹ پروجیکٹ پر مبنی پریکٹس سیکشن قائم کرتے ہیں۔ تمام کوڈز اوپن سورس ہیں۔ قارئین کا خیرمقدم ہے کہ وہ سورس کوڈ ڈاؤن لوڈ کریں اور GitHub اور ہمارے آفیشل فورم esp32.com پر اس کتاب سے متعلق حصوں میں اس پر گفتگو کریں۔ اس کتاب کا اوپن سورس کوڈ اپاچی لائسنس 2.0 کی شرائط سے مشروط ہے۔
مصنف کا نوٹ
یہ کتاب سرکاری طور پر Espressif Systems نے تیار کی ہے اور کمپنی کے سینئر انجینئرز نے لکھی ہے۔ یہ IoT سے متعلقہ صنعتوں میں مینیجرز اور R&D کے اہلکاروں، متعلقہ اداروں کے اساتذہ اور طلباء اور انٹرنیٹ آف تھنگز کے شوقین افراد کے لیے موزوں ہے۔ ہم امید کرتے ہیں کہ یہ کتاب ایک اچھے ٹیوٹر اور دوست کی طرح کام کرنے کے لیے ایک کتابچہ، ایک حوالہ، اور ایک پلنگ کی کتاب کے طور پر کام کر سکتی ہے۔
اس کتاب کو مرتب کرتے وقت، ہم نے اندرون و بیرون ملک کے ماہرین، اسکالرز، اور تکنیکی ماہرین کے کچھ متعلقہ تحقیقی نتائج کا حوالہ دیا، اور ہم نے علمی اصولوں کے مطابق ان کا حوالہ دینے کی پوری کوشش کی۔ تاہم، یہ ناگزیر ہے کہ کچھ کوتاہی ہو، اس لیے یہاں ہم تمام متعلقہ مصنفین کے لیے اپنے گہرے احترام اور شکریہ کا اظہار کرنا چاہیں گے۔ اس کے علاوہ، ہم نے انٹرنیٹ سے معلومات کا حوالہ دیا ہے، لہذا ہم اصل مصنفین اور پبلشرز کا شکریہ ادا کرنا چاہتے ہیں اور معذرت خواہ ہیں کہ ہم معلومات کے ہر ٹکڑے کے ماخذ کی نشاندہی نہیں کر سکتے۔
اعلیٰ معیار کی کتاب تیار کرنے کے لیے، ہم نے داخلی مباحثوں کے دوروں کا اہتمام کیا ہے، اور آزمائشی قارئین اور پبلشر ایڈیٹرز کی تجاویز اور آراء سے سیکھا ہے۔ یہاں، ہم آپ کی مدد کے لیے ایک بار پھر آپ کا شکریہ ادا کرنا چاہیں گے جس نے اس کامیاب کام میں تعاون کیا۔
آخری، لیکن سب سے اہم بات، Espressif میں موجود ہر ایک کا شکریہ جنہوں نے ہماری مصنوعات کی پیدائش اور مقبولیت کے لیے بہت محنت کی۔
IoT منصوبوں کی ترقی میں علم کی ایک وسیع رینج شامل ہے۔ کتاب کی طوالت کے ساتھ ساتھ مصنف کی سطح اور تجربے تک محدود، بھول چوک ناگزیر ہے۔ اس لیے ہم ماہرین اور قارئین سے گزارش کرتے ہیں کہ تنقید کریں اور ہماری غلطیوں کی اصلاح کریں۔ اگر آپ کے پاس اس کتاب کے لیے کوئی مشورے ہیں، تو براہ کرم ہم سے book@espressif.com پر رابطہ کریں۔ ہم آپ کے تاثرات کے منتظر ہیں۔

اس کتاب کا استعمال کیسے کریں؟
اس کتاب میں پروجیکٹس کا کوڈ اوپن سورس کیا گیا ہے۔ آپ اسے ہمارے GitHub ذخیرے سے ڈاؤن لوڈ کر سکتے ہیں اور ہمارے آفیشل فورم پر اپنے خیالات اور سوالات کا اشتراک کر سکتے ہیں۔ GitHub: https://github.com/espressif/book-esp32c3-iot-projects فورم: https://www.esp32.com/bookc3 کتاب کے دوران، ذیل میں دکھائے گئے حصوں کو نمایاں کیا جائے گا۔
ماخذ کوڈ اس کتاب میں، ہم تھیوری اور پریکٹس کے امتزاج پر زور دیتے ہیں، اور اس طرح سمارٹ لائٹ پروجیکٹ کے بارے میں تقریباً ہر باب میں ایک پریکٹس سیکشن قائم کرتے ہیں۔ متعلقہ مراحل اور ماخذ صفحہ کو دو لائنوں کے درمیان نشان زد کیا جائے گا جس سے شروع ہوتا ہے۔ tag ماخذ کوڈ۔
نوٹ/ٹپس یہ وہ جگہ ہے جہاں آپ کو اپنے پروگرام کو کامیابی کے ساتھ ڈیبگ کرنے کے لیے کچھ اہم معلومات اور یاد دہانی مل سکتی ہے۔ انہیں دو موٹی لائنوں کے درمیان نشان زد کیا جائے گا جس سے شروع ہوتا ہے۔ tag نوٹ یا ٹپس۔
اس کتاب میں زیادہ تر کمانڈز لینکس کے تحت عمل میں آتے ہیں، جن کا اشارہ "$" کردار سے ہوتا ہے۔ اگر کمانڈ کو عمل میں لانے کے لیے سپر یوزر مراعات کی ضرورت ہے، تو پرامپٹ کو "#" سے بدل دیا جائے گا۔ میک سسٹمز پر کمانڈ پرامپٹ "%" ہے، جیسا کہ سیکشن 4.2.3 میں ESP-IDF انسٹال کرنا Mac پر استعمال کیا گیا ہے۔
اس کتاب کا باڈی ٹیکسٹ چارٹر میں پرنٹ کیا جائے گا، جبکہ کوڈ سابقamples، اجزاء، افعال، متغیرات، کوڈ file نام، کوڈ ڈائریکٹریز، اور تاریں کورئیر نیو میں ہوں گی۔
کمانڈز یا ٹیکسٹس جو صارف کو داخل کرنے کی ضرورت ہے، اور "Enter" کلید کو دبانے سے درج کیے جانے والے کمانڈز کورئیر نیو بولڈ میں پرنٹ کیے جائیں گے۔ لاگز اور کوڈ بلاکس کو ہلکے نیلے رنگ کے خانوں میں پیش کیا جائے گا۔
Exampلی:
دوسرا، NVS پارٹیشن بائنری بنانے کے لیے esp-idf/components/nvs flash/nvs پارٹیشن جنریٹر/nvs پارٹیشن gen.py استعمال کریں۔ file درج ذیل کمانڈ کے ساتھ ترقیاتی میزبان پر:
$python $IDF PATH/components/nvs flash/nvs پارٹیشن جنریٹر/nvs پارٹیشن gen.py -input mass prod.csv -output mass prod.bin -size NVS پارٹیشن سائز

باب 1

تعارف

کو

آئی او ٹی

20ویں صدی کے آخر میں، کمپیوٹر نیٹ ورکس اور کمیونیکیشن ٹیکنالوجیز کے عروج کے ساتھ، انٹرنیٹ تیزی سے لوگوں کی زندگیوں میں ضم ہو گیا۔ جیسے جیسے انٹرنیٹ ٹیکنالوجی پختہ ہوتی جارہی ہے، انٹرنیٹ آف تھنگز (IoT) کا خیال پیدا ہوا۔ لفظی طور پر، IoT کا مطلب ایک انٹرنیٹ ہے جہاں چیزیں جڑی ہوئی ہیں۔ جبکہ اصل انٹرنیٹ جگہ اور وقت کی حدود کو توڑتا ہے اور "شخص اور شخص" کے درمیان فاصلے کو کم کرتا ہے، IoT "چیزوں" کو ایک اہم شریک بناتا ہے، جو "لوگوں" اور "چیزوں" کو ایک دوسرے کے قریب لاتا ہے۔ مستقبل قریب میں، IoT انفارمیشن انڈسٹری کی محرک قوت بننے کے لیے تیار ہے۔
تو، چیزوں کا انٹرنیٹ کیا ہے؟
چیزوں کے انٹرنیٹ کی درست وضاحت کرنا مشکل ہے، کیونکہ اس کے معنی اور دائرہ کار مسلسل تیار ہو رہا ہے۔ 1995 میں، بل گیٹس نے پہلی بار اپنی کتاب The Road Ahead میں IoT کا خیال پیش کیا۔ آسان الفاظ میں، IoT اشیاء کو انٹرنیٹ کے ذریعے ایک دوسرے کے ساتھ معلومات کا تبادلہ کرنے کے قابل بناتا ہے۔ اس کا حتمی مقصد "ہر چیز کا انٹرنیٹ" قائم کرنا ہے۔ یہ IoT کی ابتدائی تشریح کے ساتھ ساتھ مستقبل کی ٹیکنالوجی کا تصور بھی ہے۔ تیس سال بعد، معیشت اور ٹیکنالوجی کی تیز رفتار ترقی کے ساتھ، تصور حقیقت میں آرہا ہے۔ سمارٹ ڈیوائسز، سمارٹ ہومز، سمارٹ سٹیز، انٹرنیٹ آف وہیکلز اور پہننے کے قابل آلات سے لے کر IoT ٹیکنالوجیز کے ذریعے تعاون یافتہ "میٹاورس" تک، نئے تصورات مسلسل ابھر رہے ہیں۔ اس باب میں، ہم انٹرنیٹ آف تھنگز کے فن تعمیر کی وضاحت کے ساتھ شروع کریں گے، اور پھر سب سے عام IoT ایپلیکیشن، سمارٹ ہوم متعارف کرائیں گے، تاکہ آپ کو IoT کی واضح تفہیم حاصل کرنے میں مدد ملے۔
1.1 IoT کا فن تعمیر
انٹرنیٹ آف تھنگز میں متعدد ٹیکنالوجیز شامل ہیں جن کی مختلف صنعتوں میں درخواست کی مختلف ضروریات اور شکلیں ہیں۔ IoT کی ساخت، کلیدی ٹیکنالوجیز اور اطلاق کی خصوصیات کو ترتیب دینے کے لیے، ایک متحد فن تعمیر اور معیاری تکنیکی نظام قائم کرنا ضروری ہے۔ اس کتاب میں، IoT کے فن تعمیر کو آسانی سے چار تہوں میں تقسیم کیا گیا ہے: ادراک اور کنٹرول کی تہہ، نیٹ ورک کی تہہ، پلیٹ فارم کی تہہ، اور درخواست کی تہہ۔
ادراک اور کنٹرول پرت IoT فن تعمیر کے سب سے بنیادی عنصر کے طور پر، IoT کی جامع سینسنگ کو محسوس کرنے کے لیے ادراک اور کنٹرول کی تہہ بنیادی ہے۔ اس کا بنیادی کام معلومات کو جمع کرنا، شناخت کرنا اور کنٹرول کرنا ہے۔ یہ ادراک کی صلاحیت کے ساتھ مختلف آلات پر مشتمل ہے،
3

شناخت، کنٹرول اور عملدرآمد، اور ڈیٹا کی بازیافت اور تجزیہ کرنے کے لیے ذمہ دار ہے جیسے کہ مادی خصوصیات، طرز عمل کے رجحانات، اور ڈیوائس کی حیثیت۔ اس طرح، IoT کو حقیقی جسمانی دنیا کی پہچان ہو جاتی ہے۔ اس کے علاوہ، پرت بھی آلہ کی حیثیت کو کنٹرول کرنے کے قابل ہے.
اس تہہ کے سب سے عام آلات مختلف سینسر ہیں، جو معلومات جمع کرنے اور شناخت کرنے میں اہم کردار ادا کرتے ہیں۔ سینسرز انسانی حسی اعضاء کی طرح ہوتے ہیں، جیسے کہ بصارت کے برابر فوٹو سینسرز، سماعت کے لیے صوتی سینسر، سونگھنے کے لیے گیس کے سینسر، اور چھونے کے لیے دباؤ اور درجہ حرارت کے لیے حساس سینسر۔ ان تمام "حواسی اعضاء" کے ساتھ، اشیاء "زندہ" ہو جاتی ہیں اور جسمانی دنیا کے ذہین ادراک، پہچان اور ہیرا پھیری کے قابل ہوتی ہیں۔
نیٹ ورک لیئر نیٹ ورک پرت کا بنیادی کام معلومات کو منتقل کرنا ہے، بشمول پرسیپشن اینڈ کنٹرول لیئر سے حاصل کردہ ڈیٹا کو مخصوص ہدف تک، نیز ایپلیکیشن لیئر سے جاری کردہ کمانڈز کو پرسیپشن اینڈ کنٹرول لیئر پر واپس بھیجنا ہے۔ یہ آئی او ٹی سسٹم کی مختلف تہوں کو جوڑنے والے ایک اہم مواصلاتی پل کے طور پر کام کرتا ہے۔ چیزوں کے انٹرنیٹ کا ایک بنیادی ماڈل ترتیب دینے کے لیے، اس میں اشیاء کو نیٹ ورک میں ضم کرنے کے لیے دو مراحل شامل ہیں: انٹرنیٹ تک رسائی اور انٹرنیٹ کے ذریعے ترسیل۔
انٹرنیٹ انٹرنیٹ تک رسائی فرد اور فرد کے درمیان باہمی ربط کو قابل بناتی ہے، لیکن چیزوں کو بڑے خاندان میں شامل کرنے میں ناکام رہتی ہے۔ IoT کی آمد سے پہلے، زیادہ تر چیزیں "نیٹ ورک کے قابل" نہیں تھیں۔ ٹیکنالوجی کی مسلسل ترقی کی بدولت، IoT چیزوں کو انٹرنیٹ سے جوڑنے کا انتظام کرتا ہے، اس طرح "لوگوں اور چیزوں"، اور "چیزوں اور چیزوں" کے درمیان باہمی ربط کا احساس ہوتا ہے۔ انٹرنیٹ کنکشن کو نافذ کرنے کے دو عام طریقے ہیں: وائرڈ نیٹ ورک تک رسائی اور وائرلیس نیٹ ورک تک رسائی۔
وائرڈ نیٹ ورک تک رسائی کے طریقوں میں ایتھرنیٹ، سیریل کمیونیکیشن (مثلاً، RS-232، RS-485) اور USB شامل ہیں، جب کہ وائرلیس نیٹ ورک تک رسائی وائرلیس کمیونیکیشن پر منحصر ہے، جسے مزید مختصر فاصلے کے وائرلیس کمیونیکیشن اور لانگ رینج وائرلیس کمیونیکیشن میں تقسیم کیا جا سکتا ہے۔
شارٹ رینج وائرلیس کمیونیکیشن میں ZigBee، Bluetoothr، Wi-Fi، Near-Feld Communication (NFC)، اور ریڈیو فریکوئنسی آئیڈینٹیفیکیشن (RFID) شامل ہیں۔ لانگ رینج وائرلیس کمیونیکیشن میں Enhanced Machine Type Communication (eMTC)، LoRa، Narrow Band Internet of Things (NB-IoT)، 2G، 3G، 4G، 5G، وغیرہ شامل ہیں۔
انٹرنیٹ کے ذریعے ٹرانسمیشن انٹرنیٹ تک رسائی کے مختلف طریقے ڈیٹا کے متعلقہ فزیکل ٹرانسمیشن لنک کا باعث بنتے ہیں۔ اگلی چیز یہ طے کرنا ہے کہ ڈیٹا کی ترسیل کے لیے کون سا کمیونیکیشن پروٹوکول استعمال کرنا ہے۔ انٹرنیٹ ٹرمینلز کے مقابلے میں، زیادہ تر IoT ٹرمینلز فی الحال کم ہیں۔
4 ESP32-C3 وائرلیس ایڈونچر: IoT کے لیے ایک جامع گائیڈ

دستیاب وسائل، جیسے پروسیسنگ کی کارکردگی، ذخیرہ کرنے کی صلاحیت، نیٹ ورک کی شرح، وغیرہ، اس لیے ضروری ہے کہ ایک ایسے کمیونیکیشن پروٹوکول کا انتخاب کیا جائے جو IoT ایپلی کیشنز میں کم وسائل پر قابض ہو۔ دو مواصلاتی پروٹوکول ہیں جو آج کل بڑے پیمانے پر استعمال ہوتے ہیں: میسج کیونگ ٹیلی میٹری ٹرانسپورٹ (MQTT) اور Constrained Application Protocol (CoAP)۔
پلیٹ فارم پرت پلیٹ فارم پرت بنیادی طور پر IoT کلاؤڈ پلیٹ فارم سے مراد ہے۔ جب تمام IoT ٹرمینلز نیٹ ورک ہوتے ہیں، تو ان کے ڈیٹا کو IoT کلاؤڈ پلیٹ فارم پر جمع کرنے اور ذخیرہ کرنے کی ضرورت ہوتی ہے۔ پلیٹ فارم پرت بنیادی طور پر IoT ایپلی کیشنز کو بڑے پیمانے پر آلات تک رسائی اور انتظام میں سہولت فراہم کرتی ہے۔ یہ IoT ٹرمینلز کو کلاؤڈ پلیٹ فارم سے جوڑتا ہے، ٹرمینل ڈیٹا اکٹھا کرتا ہے، اور ٹرمینلز کو کمانڈ جاری کرتا ہے، تاکہ ریموٹ کنٹرول کو لاگو کیا جا سکے۔ صنعتی ایپلی کیشنز کو سامان تفویض کرنے کے لیے ایک انٹرمیڈیٹ سروس کے طور پر، پلیٹ فارم کی تہہ پورے IoT فن تعمیر میں ایک مربوط کردار ادا کرتی ہے، جس میں تجریدی کاروباری منطق اور معیاری بنیادی ڈیٹا ماڈل ہوتا ہے، جو نہ صرف آلات تک تیز رفتار رسائی کا احساس کر سکتا ہے، بلکہ طاقتور ماڈیولر صلاحیتیں بھی فراہم کرتا ہے۔ صنعت کی درخواست کے منظرناموں میں مختلف ضروریات کو پورا کرنے کے لیے۔ پلیٹ فارم پرت میں بنیادی طور پر فنکشنل ماڈیولز شامل ہیں جیسے ڈیوائس تک رسائی، ڈیوائس مینجمنٹ، سیکیورٹی مینجمنٹ، میسج کمیونیکیشن، مانیٹرنگ آپریشن اور مینٹیننس، اور ڈیٹا ایپلی کیشنز۔
· ڈیوائس تک رسائی، ٹرمینلز اور IoT کلاؤڈ پلیٹ فارمز کے درمیان کنکشن اور مواصلت کا احساس۔
ڈیوائس کا نظم و نسق، بشمول ڈیوائس کی تخلیق، ڈیوائس کی دیکھ بھال، ڈیٹا کی تبدیلی، ڈیٹا کی مطابقت پذیری، اور ڈیوائس کی تقسیم۔
· سیکورٹی مینجمنٹ، سیکورٹی کی توثیق اور کمیونیکیشن سیکورٹی کے نقطہ نظر سے IoT ڈیٹا ٹرانسمیشن کی سیکورٹی کو یقینی بنانا۔
میسج کمیونیکیشن، بشمول تین ٹرانسمیشن ڈائریکشنز، یعنی ٹرمینل ڈیٹا کو IoT کلاؤڈ پلیٹ فارم کو بھیجتا ہے، IoT کلاؤڈ پلیٹ فارم ڈیٹا کو سرور سائیڈ یا دیگر IoT کلاؤڈ پلیٹ فارمز کو بھیجتا ہے، اور سرور سائیڈ IoT ڈیوائسز کو دور سے کنٹرول کرتا ہے۔
O&M کی نگرانی، نگرانی اور تشخیص، فرم ویئر اپ گریڈ، آن لائن ڈیبگنگ، لاگ سروسز وغیرہ۔
· ڈیٹا ایپلی کیشنز، جس میں ڈیٹا کا ذخیرہ، تجزیہ اور اطلاق شامل ہے۔
ایپلیکیشن لیئر ایپلیکیشن لیئر پلیٹ فارم پرت سے ڈیٹا کو ایپلی کیشن کو منظم کرنے، ان کو فلٹر کرنے اور ڈیٹا بیس اور تجزیہ سافٹ ویئر جیسے ٹولز کے ساتھ پروسیس کرنے کے لیے استعمال کرتی ہے۔ نتیجے میں حاصل ہونے والے ڈیٹا کو حقیقی دنیا کی IoT ایپلی کیشنز جیسے کہ سمارٹ ہیلتھ کیئر، سمارٹ ایگریکلچر، سمارٹ ہومز اور سمارٹ سٹیز کے لیے استعمال کیا جا سکتا ہے۔
بلاشبہ، IoT کے فن تعمیر کو مزید تہوں میں تقسیم کیا جا سکتا ہے، لیکن اس سے کوئی فرق نہیں پڑتا ہے کہ یہ کتنی پرتوں پر مشتمل ہے، بنیادی اصول بنیادی طور پر ایک ہی رہتا ہے۔ سیکھنا
باب 1. IoT 5 کا تعارف

IoT کے فن تعمیر کے بارے میں IoT ٹیکنالوجیز کے بارے میں ہماری سمجھ کو گہرا کرنے اور مکمل طور پر فعال IoT پروجیکٹس بنانے میں مدد کرتا ہے۔
1.2 اسمارٹ ہومز میں IoT ایپلیکیشن
IoT زندگی کے تمام شعبوں میں داخل ہو چکا ہے، اور ہمارے لیے سب سے زیادہ قریب سے متعلق IoT ایپلیکیشن سمارٹ ہوم ہے۔ بہت سے روایتی آلات اب ایک یا زیادہ IoT آلات سے لیس ہیں، اور بہت سے نئے بنائے گئے گھر شروع سے ہی IoT ٹیکنالوجیز کے ساتھ ڈیزائن کیے گئے ہیں۔ تصویر 1.1 کچھ عام سمارٹ ہوم ڈیوائسز کو دکھاتی ہے۔
شکل 1.1۔ عام سمارٹ ہوم ڈیوائسز سمارٹ ہوم کی ترقی کو آسانی سے سمارٹ پروڈکٹ میں تقسیم کیا جاسکتا ہے۔tage، منظر انٹرکنکشن stage اور ذہین stage، جیسا کہ شکل 1.2 میں دکھایا گیا ہے۔
تصویر 1.2۔ ترقی ایسtage of smart home 6 ESP32-C3 وائرلیس ایڈونچر: IoT کے لیے ایک جامع گائیڈ

پہلا ایسtage سمارٹ مصنوعات کے بارے میں ہے۔ روایتی گھروں سے مختلف، سمارٹ گھروں میں، IoT آلات سینسر کے ساتھ سگنل وصول کرتے ہیں، اور وائرلیس کمیونیکیشن ٹیکنالوجیز جیسے کہ Wi-Fi، بلوٹوتھ LE، اور ZigBee کے ذریعے نیٹ ورک کیا جاتا ہے۔ صارفین سمارٹ مصنوعات کو مختلف طریقوں سے کنٹرول کر سکتے ہیں، جیسے کہ اسمارٹ فون ایپس، وائس اسسٹنٹ، سمارٹ اسپیکر کنٹرول وغیرہ۔tage منظر کے باہمی ربط پر توجہ مرکوز کرتا ہے۔ اس میں ایسtagای، ڈویلپرز اب ایک سمارٹ پروڈکٹ کو کنٹرول کرنے پر غور نہیں کر رہے ہیں، بلکہ دو یا دو سے زیادہ سمارٹ پروڈکٹس کو آپس میں جوڑنے، ایک حد تک خودکار کرنے، اور آخر میں ایک حسب ضرورت سین موڈ بنانے پر غور کر رہے ہیں۔ سابق کے لیےampلی، جب صارف کسی بھی سین موڈ کا بٹن دباتا ہے، تو لائٹس، پردے، اور ایئر کنڈیشنر خود بخود پیش سیٹوں کے مطابق ہو جائیں گے۔ بلاشبہ، یہ شرط ہے کہ ربط کی منطق آسانی سے ترتیب دی جائے، بشمول محرک کی شرائط اور عمل درآمد کی کارروائیاں۔ تصور کریں کہ جب اندرونی درجہ حرارت 10 ° C سے نیچے گر جاتا ہے تو ایئر کنڈیشنگ ہیٹنگ موڈ کو متحرک کیا جاتا ہے۔ کہ صبح 7 بجے، صارف کو جگانے کے لیے موسیقی بجائی جاتی ہے، اسمارٹ پردے کھولے جاتے ہیں، اور رائس ککر یا بریڈ ٹوسٹر اسمارٹ ساکٹ کے ذریعے شروع ہوتا ہے۔ جیسے ہی صارف اٹھتا ہے اور دھونا ختم کرتا ہے، ناشتہ پہلے ہی پیش کیا جاتا ہے، تاکہ کام پر جانے میں کوئی تاخیر نہ ہو۔ ہماری زندگی کتنی آسان ہو گئی ہے! تیسرا ایسtage انٹیلی جنس کے پاس جاتا ہے۔tage جیسے جیسے زیادہ سمارٹ ہوم ڈیوائسز تک رسائی حاصل ہوتی ہے، اسی طرح ڈیٹا کی قسمیں بھی تیار ہوتی ہیں۔ کلاؤڈ کمپیوٹنگ، بڑے ڈیٹا اور مصنوعی ذہانت کی مدد سے یہ ایسا ہی ہے جیسے اسمارٹ ہومز میں ایک "سمارٹر دماغ" لگا دیا گیا ہو، جس کے لیے اب صارف سے بار بار احکامات کی ضرورت نہیں ہے۔ وہ سابقہ ​​تعاملات سے ڈیٹا اکٹھا کرتے ہیں اور صارف کے رویے کے نمونوں اور ترجیحات کو سیکھتے ہیں، تاکہ سرگرمیوں کو خودکار بنایا جا سکے، بشمول فیصلہ سازی کے لیے سفارشات فراہم کرنا۔ فی الحال، سب سے زیادہ سمارٹ گھر جائے وقوعہ پر ہیں انٹرکنکشن stage جیسے جیسے سمارٹ مصنوعات کی دخول کی شرح اور ذہانت میں اضافہ ہوتا ہے، کمیونیکیشن پروٹوکول کے درمیان رکاوٹیں دور کی جا رہی ہیں۔ مستقبل میں، سمارٹ ہومز واقعی "سمارٹ" بننے کے پابند ہیں، بالکل اسی طرح جیسے آئرن مین میں اے آئی سسٹم جارویس، جو نہ صرف صارف کو مختلف ڈیوائسز کو کنٹرول کرنے، روزمرہ کے معاملات کو سنبھالنے میں مدد دے سکتا ہے، بلکہ اس میں سپر کمپیوٹنگ کی طاقت اور سوچنے کی صلاحیت بھی ہے۔ ذہین ایس میںtage، انسانوں کو مقدار اور معیار دونوں لحاظ سے بہتر خدمات حاصل ہوں گی۔
باب 1. IoT 7 کا تعارف

8 ESP32-C3 وائرلیس ایڈونچر: IoT کے لیے ایک جامع گائیڈ

باب کا تعارف اور 2 IoT پروجیکٹس کی مشق
باب 1 میں، ہم نے IoT کے فن تعمیر، اور تصور اور کنٹرول کی تہہ، نیٹ ورک کی تہہ، پلیٹ فارم کی تہہ، اور ایپلی کیشن کی تہہ کے ساتھ ساتھ سمارٹ ہوم کی ترقی کے کردار اور باہمی تعلقات کو متعارف کرایا۔ تاہم، بالکل اسی طرح جب ہم پینٹ کرنا سیکھتے ہیں، نظریاتی علم کو جاننا کافی نہیں ہے۔ ٹیکنالوجی میں حقیقی معنوں میں مہارت حاصل کرنے کے لیے ہمیں IoT پروجیکٹس کو عملی جامہ پہنانے کے لیے "اپنے ہاتھ گندے" کرنے ہوں گے۔ اس کے علاوہ، جب کوئی پروجیکٹ بڑے پیمانے پر پیداوار کی طرف جاتا ہے۔tagای، نیٹ ورک کنکشن، کنفیگریشن، IoT کلاؤڈ پلیٹ فارم کا تعامل، فرم ویئر مینجمنٹ اور اپ ڈیٹس، بڑے پیمانے پر پروڈکشن مینجمنٹ، اور سیکیورٹی کنفیگریشن جیسے مزید عوامل پر غور کرنا ضروری ہے۔ تو، ایک مکمل IoT پروجیکٹ تیار کرتے وقت ہمیں کس چیز پر توجہ دینے کی ضرورت ہے؟ باب 1 میں، ہم نے ذکر کیا کہ سمارٹ ہوم IoT ایپلی کیشن کے سب سے عام منظرناموں میں سے ایک ہے، اور سمارٹ لائٹس سب سے بنیادی اور عملی آلات میں سے ایک ہیں، جو گھروں، ہوٹلوں، جموں، ہسپتالوں وغیرہ میں استعمال کی جا سکتی ہیں۔ اس کتاب میں، ہم ایک سمارٹ لائٹ پروجیکٹ کی تعمیر کو نقطہ آغاز کے طور پر لیں گے، اس کے اجزاء اور خصوصیات کی وضاحت کریں گے، اور پروجیکٹ کی ترقی پر رہنمائی فراہم کریں گے۔ ہم امید کرتے ہیں کہ آپ مزید IoT ایپلی کیشنز بنانے کے لیے اس کیس سے نتائج نکال سکتے ہیں۔
2.1 عام IoT پروجیکٹس کا تعارف
ترقی کے لحاظ سے، IoT پروجیکٹس کے بنیادی فنکشنل ماڈیولز کو سافٹ ویئر اور IoT ڈیوائسز کے ہارڈویئر ڈویلپمنٹ، کلائنٹ ایپلی کیشن ڈویلپمنٹ، اور IoT کلاؤڈ پلیٹ فارم کی ترقی میں درجہ بندی کیا جا سکتا ہے۔ بنیادی فنکشنل ماڈیولز کو واضح کرنا ضروری ہے، جنہیں اس سیکشن میں مزید بیان کیا جائے گا۔
2.1.1 عام IoT آلات کے لیے بنیادی ماڈیولز
IoT آلات کے سافٹ ویئر اور ہارڈ ویئر کی ترقی میں درج ذیل بنیادی ماڈیولز شامل ہیں: ڈیٹا اکٹھا کرنا
IoT فن تعمیر کی نچلی پرت کے طور پر، پرسیپشن اینڈ کنٹرول لیئر کے IoT ڈیوائسز ڈیٹا اکٹھا کرنے اور آپریشن کنٹرول حاصل کرنے کے لیے اپنے چپس اور پیری فیرلز کے ذریعے سینسرز اور ڈیوائسز کو جوڑتے ہیں۔
9

اکاؤنٹ بائنڈنگ اور ابتدائی کنفیگریشن زیادہ تر IoT ڈیوائسز کے لیے، اکاؤنٹ بائنڈنگ اور ابتدائی کنفیگریشن ایک آپریشنل پروسیس میں مکمل ہو جاتی ہے، سابق کے لیےampلی، وائی فائی نیٹ ورک کنفیگر کر کے صارفین کے ساتھ آلات کو جوڑنا۔
IoT کلاؤڈ پلیٹ فارمز کے ساتھ تعامل IoT آلات کی نگرانی اور کنٹرول کرنے کے لیے، انہیں IoT کلاؤڈ پلیٹ فارمز سے منسلک کرنا بھی ضروری ہے، تاکہ ایک دوسرے کے درمیان تعامل کے ذریعے کمانڈ دینے اور اسٹیٹس کی اطلاع دینے کے لیے۔
ڈیوائس کنٹرول IoT کلاؤڈ پلیٹ فارمز کے ساتھ منسلک ہونے پر، آلات کلاؤڈ کے ساتھ بات چیت کر سکتے ہیں اور رجسٹرڈ، پابند یا کنٹرول کیے جا سکتے ہیں۔ صارفین IoT کلاؤڈ پلیٹ فارمز یا مقامی کمیونیکیشن پروٹوکول کے ذریعے اسمارٹ فون ایپ پر مصنوعات کی حیثیت سے استفسار کرسکتے ہیں اور دیگر کارروائیاں انجام دے سکتے ہیں۔
فرم ویئر اپ گریڈ IoT ڈیوائسز مینوفیکچررز کی ضروریات کی بنیاد پر فرم ویئر اپ گریڈ بھی حاصل کر سکتی ہیں۔ کلاؤڈ کی طرف سے بھیجے گئے کمانڈز کو موصول ہونے سے، فرم ویئر اپ گریڈ اور ورژن مینجمنٹ کا احساس ہو جائے گا۔ اس فرم ویئر اپ گریڈ فیچر کے ساتھ، آپ مسلسل IoT ڈیوائسز کے افعال کو بڑھا سکتے ہیں، نقائص کو ٹھیک کر سکتے ہیں، اور صارف کے تجربے کو بہتر بنا سکتے ہیں۔
2.1.2 کلائنٹ کی درخواستوں کے بنیادی ماڈیولز
کلائنٹ ایپلی کیشنز (مثلاً اسمارٹ فون ایپس) میں بنیادی طور پر درج ذیل بنیادی ماڈیولز شامل ہیں:
اکاؤنٹ سسٹم اور اجازت یہ اکاؤنٹ اور ڈیوائس کی اجازت کی حمایت کرتا ہے۔
ڈیوائس کنٹرول اسمارٹ فون ایپس عام طور پر کنٹرولنگ فنکشنز سے لیس ہوتی ہیں۔ صارفین آسانی سے IoT آلات سے جڑ سکتے ہیں، اور اسمارٹ فون ایپس کے ذریعے کسی بھی وقت، کہیں بھی ان کا نظم کر سکتے ہیں۔ حقیقی دنیا کے سمارٹ ہوم میں، ڈیوائسز کو زیادہ تر اسمارٹ فون ایپس کے ذریعے کنٹرول کیا جاتا ہے، جو نہ صرف آلات کے ذہین انتظام کو قابل بناتا ہے، بلکہ افرادی قوت کی لاگت کو بھی بچاتا ہے۔ اس لیے، ڈیوائس کنٹرول کلائنٹ ایپلی کیشنز کے لیے ضروری ہے، جیسے ڈیوائس فنکشن ایٹریبیوٹ کنٹرول، سین کنٹرول، شیڈولنگ، ریموٹ کنٹرول، ڈیوائس لنکیج وغیرہ۔ سمارٹ ہوم صارفین ذاتی ضروریات کے مطابق مناظر کو بھی اپنی مرضی کے مطابق بنا سکتے ہیں، روشنی کو کنٹرول کرنا، گھریلو آلات، داخلی دروازے۔ وغیرہ، گھریلو زندگی کو زیادہ آرام دہ اور آسان بنانے کے لیے۔ وہ ایئر کنڈیشنگ کا وقت لگا سکتے ہیں، اسے دور سے بند کر سکتے ہیں، دروازے کے کھل جانے کے بعد دالان کی لائٹ کو خود بخود آن کر سکتے ہیں، یا ایک ہی بٹن کے ساتھ "تھیٹر" موڈ پر سوئچ کر سکتے ہیں۔
نوٹیفکیشن کلائنٹ ایپلیکیشنز IoT ڈیوائسز کی ریئل ٹائم اسٹیٹس کو اپ ڈیٹ کرتی ہیں، اور ڈیوائسز کے غیر معمولی ہونے پر الرٹ بھیجتی ہیں۔
10 ESP32-C3 وائرلیس ایڈونچر: IoT کے لیے ایک جامع گائیڈ

فروخت کے بعد کسٹمر سروس اسمارٹ فون ایپس مصنوعات کے لیے بعد از فروخت خدمات فراہم کر سکتی ہیں، تاکہ IoT ڈیوائس کی ناکامی اور تکنیکی کارروائیوں سے متعلق مسائل کو بروقت حل کیا جا سکے۔
نمایاں فنکشنز مختلف صارفین کی ضروریات کو پورا کرنے کے لیے، دوسرے فنکشنز کو شامل کیا جا سکتا ہے، جیسے شیک، این ایف سی، جی پی ایس، وغیرہ۔ جی پی ایس مقام اور فاصلے کے مطابق سین آپریشنز کی درستگی کو سیٹ کرنے میں مدد کر سکتا ہے، جبکہ شیک فنکشن صارفین کو سیٹ کرنے کی اجازت دیتا ہے۔ ہلا کر مخصوص ڈیوائس یا منظر کے لیے کام کرنے کے احکامات۔
2.1.3 کامن IoT کلاؤڈ پلیٹ فارمز کا تعارف
IoT کلاؤڈ پلیٹ فارم ایک آل ان ون پلیٹ فارم ہے جو ڈیوائس مینجمنٹ، ڈیٹا سیکیورٹی کمیونیکیشن، اور نوٹیفکیشن مینجمنٹ جیسے افعال کو مربوط کرتا ہے۔ ان کے ٹارگٹ گروپ اور رسائی کے مطابق، IoT کلاؤڈ پلیٹ فارمز کو عوامی IoT کلاؤڈ پلیٹ فارمز (اس کے بعد "پبلک کلاؤڈ" کہا جاتا ہے) اور نجی IoT کلاؤڈ پلیٹ فارمز (اس کے بعد "پرائیویٹ کلاؤڈ" کہا جاتا ہے) میں تقسیم کیا جا سکتا ہے۔
پبلک کلاؤڈ عام طور پر کاروباری اداروں یا افراد کے لیے مشترکہ IoT کلاؤڈ پلیٹ فارمز کی نشاندہی کرتا ہے، جو پلیٹ فارم فراہم کنندگان کے ذریعے چلائے جاتے ہیں اور ان کی دیکھ بھال کرتے ہیں، اور انٹرنیٹ کے ذریعے اشتراک کرتے ہیں۔ یہ مفت یا کم لاگت والا ہو سکتا ہے، اور کھلے عوامی نیٹ ورک پر خدمات فراہم کرتا ہے، جیسے کہ علی بابا کلاؤڈ، ٹینسنٹ کلاؤڈ، بیدو کلاؤڈ، AWS IoT، Google IoT، وغیرہ۔ ایک معاون پلیٹ فارم کے طور پر، عوامی کلاؤڈ اپ اسٹریم سروس فراہم کرنے والوں کو ضم کر سکتا ہے اور ایک نئی ویلیو چین اور ایکو سسٹم بنانے کے لیے ڈاون اسٹریم اینڈ صارفین۔
نجی کلاؤڈ صرف انٹرپرائز کے استعمال کے لیے بنایا گیا ہے، اس طرح ڈیٹا، سیکیورٹی اور سروس کے معیار پر بہترین کنٹرول کی ضمانت دیتا ہے۔ اس کی خدمات اور بنیادی ڈھانچے کو کاروباری اداروں کے ذریعہ الگ سے برقرار رکھا جاتا ہے، اور معاون ہارڈ ویئر اور سافٹ ویئر بھی مخصوص صارفین کے لیے وقف ہیں۔ انٹرپرائزز اپنے کاروبار کی ضروریات کو پورا کرنے کے لیے کلاؤڈ سروسز کو اپنی مرضی کے مطابق بنا سکتے ہیں۔ اس وقت، کچھ سمارٹ ہوم مینوفیکچررز نے پہلے ہی پرائیویٹ IoT کلاؤڈ پلیٹ فارم حاصل کیے ہیں اور ان کی بنیاد پر سمارٹ ہوم ایپلی کیشنز تیار کی ہیں۔
پبلک کلاؤڈ اور پرائیویٹ کلاؤڈ کا اپنا ایڈوان ہے۔tages، جس کی وضاحت بعد میں کی جائے گی۔
کمیونیکیشن کنیکٹیویٹی حاصل کرنے کے لیے، ڈیوائس سائیڈ پر بزنس سرورز، IoT کلاؤڈ پلیٹ فارمز، اور اسمارٹ فون ایپس کے ساتھ کم از کم ایمبیڈڈ ڈیولپمنٹ کو مکمل کرنا ضروری ہے۔ اتنے بڑے پروجیکٹ کا سامنا کرتے ہوئے، پبلک کلاؤڈ عام طور پر اس عمل کو تیز کرنے کے لیے ڈیوائس سائیڈ اور اسمارٹ فون ایپس کے لیے سافٹ ویئر ڈویلپمنٹ کٹس فراہم کرتا ہے۔ پبلک اور پرائیویٹ کلاؤڈ دونوں سروسز فراہم کرتے ہیں جن میں ڈیوائس تک رسائی، ڈیوائس مینجمنٹ، ڈیوائس شیڈو، اور آپریشن اور مینٹیننس شامل ہیں۔
ڈیوائس تک رسائی IoT کلاؤڈ پلیٹ فارم کو پروٹوکول کا استعمال کرتے ہوئے ڈیوائس تک رسائی کے لیے نہ صرف انٹرفیس فراہم کرنے کی ضرورت ہے۔
باب 2۔ IoT پروجیکٹس کا تعارف اور پریکٹس 11

جیسے MQTT، CoAP، HTTPS، اور Webساکٹ، بلکہ جعلی اور غیر قانونی آلات کو بلاک کرنے کے لیے ڈیوائس سیکیورٹی کی توثیق کا فنکشن بھی، مؤثر طریقے سے سمجھوتہ کیے جانے کے خطرے کو کم کرتا ہے۔ اس طرح کی توثیق عام طور پر مختلف میکانزم کو سپورٹ کرتی ہے، لہذا جب ڈیوائسز بڑے پیمانے پر تیار کی جاتی ہیں، تو یہ ضروری ہوتا ہے کہ ڈیوائس سرٹیفکیٹ کو منتخب تصدیقی طریقہ کار کے مطابق پہلے سے تفویض کیا جائے اور اسے آلات میں جلا دیا جائے۔
ڈیوائس مینجمنٹ IoT کلاؤڈ پلیٹ فارم کے ذریعہ فراہم کردہ ڈیوائس مینجمنٹ فنکشن نہ صرف مینوفیکچررز کو حقیقی وقت میں اپنے ڈیوائسز کی ایکٹیویشن اسٹیٹس اور آن لائن اسٹیٹس کی نگرانی کرنے میں مدد فراہم کرتا ہے، بلکہ ڈیوائسز کو شامل کرنا/ہٹانے، بازیافت کرنا، گروپس کو شامل کرنا/ڈیلیٹ کرنا، فرم ویئر اپ گریڈ کرنے جیسے اختیارات کی بھی اجازت دیتا ہے۔ ، اور ورژن کا انتظام۔
ڈیوائس شیڈو IoT کلاؤڈ پلیٹ فارم ہر ڈیوائس کے لیے ایک مستقل ورچوئل ورژن (ڈیوائس شیڈو) بنا سکتا ہے، اور ڈیوائس شیڈو کی سٹیٹس کو سمارٹ فون ایپ یا انٹرنیٹ ٹرانسمیشن پروٹوکول کے ذریعے دیگر ڈیوائسز کے ذریعے ہم آہنگ اور حاصل کیا جا سکتا ہے۔ ڈیوائس شیڈو ہر ڈیوائس کی تازہ ترین رپورٹ شدہ اسٹیٹس اور متوقع اسٹیٹس کو اسٹور کرتا ہے، اور اگر ڈیوائس آف لائن ہے، تب بھی یہ APIs کو کال کرکے اسٹیٹس حاصل کرسکتا ہے۔ ڈیوائس شیڈو ہمیشہ آن APIs فراہم کرتا ہے، جو آلات کے ساتھ تعامل کرنے والی اسمارٹ فون ایپس بنانا آسان بناتا ہے۔
آپریشن اور دیکھ بھال 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 اسمارٹ فون ایپس (بشمول اینڈرائیڈ اور آئی او ایس پر چلنے والی ٹیبلیٹ ایپس)، جو سمارٹ لائٹ پروڈکٹس کے نیٹ ورک کنفیگریشن کے ساتھ ساتھ ان کے اسٹیٹس کو پوچھنے اور کنٹرول کرنے کے لیے ذمہ دار ہیں۔
iii ESP RainMaker پر مبنی IoT کلاؤڈ پلیٹ فارم۔ آسان بنانے کے لیے، ہم اس کتاب میں مجموعی طور پر IoT کلاؤڈ پلیٹ فارم اور بزنس سرور پر غور کرتے ہیں۔ ESP RainMaker کے بارے میں تفصیلات باب 3 میں فراہم کی جائیں گی۔
اسمارٹ لائٹ پروجیکٹ کے ڈھانچے اور IoT کے فن تعمیر کے درمیان خط و کتابت کو شکل 2.1 میں دکھایا گیا ہے۔
شکل 2.1۔ سمارٹ لائٹ پروجیکٹ کا ڈھانچہ
2.2.2 پروجیکٹ کے افعال
ساخت کے مطابق تقسیم کیا گیا، ہر حصے کے افعال درج ذیل ہیں۔ اسمارٹ لائٹ ڈیوائسز
· نیٹ ورک کنفیگریشن اور کنکشن۔ · ایل ای ڈی پی ڈبلیو ایم کنٹرول، جیسے سوئچ، چمک، رنگ کا درجہ حرارت وغیرہ۔ آٹومیشن یا سین کنٹرول، جیسے، ٹائم سوئچ۔ · فلیش کا خفیہ کاری اور محفوظ بوٹ۔ فرم ویئر اپ گریڈ اور ورژن مینجمنٹ۔
باب 2۔ IoT پروجیکٹس کا تعارف اور پریکٹس 13

اسمارٹ فون ایپس · نیٹ ورک کنفیگریشن اور ڈیوائس بائنڈنگ۔ · سمارٹ لائٹ پروڈکٹ کنٹرول، جیسے سوئچ، چمک، رنگ کا درجہ حرارت وغیرہ۔ آٹومیشن یا سین سیٹنگز، جیسے ٹائم سوئچ · مقامی/ریموٹ کنٹرول۔ صارف کی رجسٹریشن، لاگ ان، وغیرہ۔
ESP RainMaker IoT کلاؤڈ پلیٹ فارم · IoT ڈیوائس تک رسائی کو فعال کرنا۔ اسمارٹ فون ایپس کے لیے قابل رسائی ڈیوائس آپریشن API فراہم کرنا۔ فرم ویئر اپ گریڈ اور ورژن مینجمنٹ۔
2.2.3 ہارڈ ویئر کی تیاری
اگر پروجیکٹ کو عملی جامہ پہنانے میں دلچسپی رکھتے ہیں، تو آپ کو درج ذیل ہارڈ ویئر کی بھی ضرورت ہوگی: سمارٹ لائٹس، اسمارٹ فونز، وائی فائی روٹرز، اور ایک ایسا کمپیوٹر جو ترقیاتی ماحول کی تنصیب کی ضروریات کو پورا کرتا ہو۔ سمارٹ لائٹس
اسمارٹ لائٹس ایک نئی قسم کے بلب ہیں، جن کی شکل عام تاپدیپت بلب جیسی ہے۔ ایک سمارٹ لائٹ کپیسیٹر سٹیپ-ڈاؤن ریگولیٹڈ پاور سپلائی، وائرلیس ماڈیول (بلٹ ان ESP32-C3 کے ساتھ)، LED کنٹرولر اور RGB LED میٹرکس پر مشتمل ہے۔ پاور سے منسلک ہونے پر، 15 V DC والیومtagکیپسیٹر سٹیپ ڈاؤن، ڈائیوڈ رییکٹیفیکیشن، اور ریگولیشن کے بعد ای آؤٹ پٹ ایل ای ڈی کنٹرولر اور ایل ای ڈی میٹرکس کو توانائی فراہم کرتا ہے۔ ایل ای ڈی کنٹرولر خود بخود مخصوص وقفوں پر اونچی اور نچلی سطحوں کو بھیج سکتا ہے، آر جی بی ایل ای ڈی میٹرکس کو بند (لائٹس آن) اور کھلی (لائٹس آف) کے درمیان سوئچ کر سکتا ہے، تاکہ یہ سائین، پیلا، سبز، جامنی، نیلا، سرخ، اور سفید روشنی. وائرلیس ماڈیول وائی فائی راؤٹر سے منسلک ہونے، سمارٹ لائٹس کی حیثیت کو وصول کرنے اور رپورٹ کرنے، اور ایل ای ڈی کو کنٹرول کرنے کے لیے کمانڈ بھیجنے کا ذمہ دار ہے۔
شکل 2.2۔ ایک مصنوعی سمارٹ لائٹ
ابتدائی ترقی میں stage، آپ RGB LED l کے ساتھ منسلک ESP32-C3DevKitM-1 بورڈ کا استعمال کرتے ہوئے ایک سمارٹ لائٹ کی نقل کر سکتے ہیں۔amp موتیوں کی مالا (تصویر 2.2 دیکھیں)۔ لیکن آپ کو چاہئے
14 ESP32-C3 وائرلیس ایڈونچر: IoT کے لیے ایک جامع گائیڈ

یاد رکھیں کہ اسمارٹ لائٹ کو جمع کرنے کا یہ واحد طریقہ نہیں ہے۔ اس کتاب میں پروجیکٹ کے ہارڈ ویئر ڈیزائن میں صرف ایک وائرلیس ماڈیول ہے (بٹ میں ESP32-C3 کے ساتھ)، لیکن مکمل سمارٹ لائٹ ہارڈویئر ڈیزائن نہیں۔ اس کے علاوہ، Espressif آڈیو کے ساتھ روشنیوں کو کنٹرول کرنے کے لیے ESP32-C3 پر مبنی آڈیو ڈویلپمنٹ بورڈ ESP32C3-Lyra بھی تیار کرتا ہے۔ بورڈ میں مائکروفونز اور اسپیکرز کے لیے انٹرفیس ہیں اور یہ ایل ای ڈی سٹرپس کو کنٹرول کر سکتا ہے۔ اسے انتہائی کم لاگت، اعلیٰ کارکردگی والے آڈیو براڈکاسٹرز اور تال لائٹ سٹرپس تیار کرنے کے لیے استعمال کیا جا سکتا ہے۔ شکل 2.3 میں ESP32-C3Lyra بورڈ دکھایا گیا ہے جو 40 LED لائٹس کی پٹی سے منسلک ہے۔
شکل 2.3۔ ESP32-C3-Lyra 40 LED لائٹس کی پٹی کے ساتھ منسلک ہے۔
اسمارٹ فونز (Android/iOS) اسمارٹ لائٹ پروجیکٹ میں سمارٹ لائٹ پروڈکٹس کو ترتیب دینے اور کنٹرول کرنے کے لیے اسمارٹ فون ایپ تیار کرنا شامل ہے۔
Wi-Fi راؤٹرز Wi-Fi راؤٹرز وائرڈ نیٹ ورک سگنلز اور موبائل نیٹ ورک سگنلز کو وائرلیس نیٹ ورک سگنلز میں تبدیل کرتے ہیں، کمپیوٹرز، اسمارٹ فونز، ٹیبلٹس، اور دیگر وائرلیس آلات کو نیٹ ورک سے منسلک کرنے کے لیے۔ سابق کے لیےampلی، وائی فائی آلات کی وائرلیس نیٹ ورکنگ حاصل کرنے کے لیے گھر میں براڈ بینڈ کو صرف وائی فائی روٹر سے منسلک کرنے کی ضرورت ہے۔ 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 راؤٹر کا انتخاب کر سکتے ہیں۔
ایک کمپیوٹر (Linux/macOS/Windows) ترقیاتی ماحول کو باب 4 میں متعارف کرایا جائے گا۔ باب 2۔ IoT پروجیکٹس کا تعارف اور مشق 15۔

2.2.4 ترقی کا عمل
شکل 2.4۔ اسمارٹ لائٹ پروجیکٹ کو تیار کرنے کے اقدامات
ہارڈ ویئر ڈیزائن IoT ڈیوائسز کا ہارڈ ویئر ڈیزائن IoT پروجیکٹ کے لیے ضروری ہے۔ ایک مکمل سمارٹ لائٹ پروجیکٹ کا مقصد ال پیدا کرنا ہے۔amp مین سپلائی کے تحت کام کرنا۔ مختلف مینوفیکچررز ایل تیار کرتے ہیں۔amps مختلف طرزوں اور ڈرائیور کی اقسام کے ہیں، لیکن ان کے وائرلیس ماڈیول عام طور پر ایک ہی فنکشن کے ہوتے ہیں۔ Smart Ligh پروجیکٹ کے ترقیاتی عمل کو آسان بنانے کے لیے، یہ کتاب صرف وائرلیس ماڈیولز کے ہارڈویئر ڈیزائن اور سافٹ ویئر کی ترقی کا احاطہ کرتی ہے۔
IoT کلاؤڈ پلیٹ فارم کنفیگریشن IoT کلاؤڈ پلیٹ فارم استعمال کرنے کے لیے، آپ کو بیک اینڈ پر پراجیکٹس کو ترتیب دینے کی ضرورت ہے، جیسے پروڈکٹس بنانا، ڈیوائسز بنانا، ڈیوائس پراپرٹیز سیٹ کرنا وغیرہ۔
IoT ڈیوائسز کے لیے ایمبیڈڈ سافٹ ویئر ڈویلپمنٹ ESP-IDF، Espressif کے ڈیوائس سائیڈ SDK کے ساتھ متوقع افعال کو نافذ کرتا ہے، بشمول IoT کلاؤڈ پلیٹ فارمز سے منسلک ہونا، LED ڈرائیورز تیار کرنا، اور فرم ویئر کو اپ گریڈ کرنا۔
سمارٹ فون ایپ ڈویلپمنٹ اینڈرائیڈ اور iOS سسٹمز کے لیے اسمارٹ فون ایپس تیار کریں تاکہ صارف کی رجسٹریشن اور لاگ ان، ڈیوائس کنٹرول اور دیگر افعال کا احساس ہو۔
IoT ڈیوائس آپٹیمائزیشن IoT ڈیوائس کے فنکشنز کی بنیادی ڈیولپمنٹ مکمل ہونے کے بعد، آپ آپٹیمائزیشن کے کاموں کی طرف رجوع کر سکتے ہیں، جیسے پاور آپٹیمائزیشن۔
بڑے پیمانے پر پیداوار کی جانچ متعلقہ معیارات کے مطابق بڑے پیمانے پر پروڈکشن ٹیسٹ کروائیں، جیسے آلات کے فنکشن ٹیسٹ، ایجنگ ٹیسٹ، RF ٹیسٹ، وغیرہ۔
مندرجہ بالا اقدامات کے باوجود، اسمارٹ لائٹ پروجیکٹ ضروری نہیں کہ اس طرح کے طریقہ کار سے مشروط ہو کیونکہ ایک ہی وقت میں مختلف کام بھی انجام پا سکتے ہیں۔ سابق کے لیےampلی، ایمبیڈڈ سافٹ ویئر اور اسمارٹ فون ایپس کو متوازی طور پر تیار کیا جاسکتا ہے۔ کچھ اقدامات کو دہرانے کی بھی ضرورت پڑ سکتی ہے، جیسے IoT ڈیوائس کی اصلاح اور بڑے پیمانے پر پیداوار کی جانچ۔
16 ESP32-C3 وائرلیس ایڈونچر: IoT کے لیے ایک جامع گائیڈ

2.3 خلاصہ
اس باب میں، ہم نے پہلے IoT پروجیکٹ کے بنیادی اجزاء اور فنکشنل ماڈیولز کی وضاحت کی، پھر اس کی ساخت، افعال، ہارڈویئر کی تیاری، اور ترقی کے عمل کا حوالہ دیتے ہوئے، پریکٹس کے لیے اسمارٹ لائٹ کیس متعارف کرایا۔ قارئین اس مشق سے نتائج اخذ کر سکتے ہیں اور مستقبل میں کم از کم غلطیوں کے ساتھ IoT منصوبوں کو انجام دینے کے لیے پراعتماد ہو سکتے ہیں۔
باب 2۔ IoT پروجیکٹس کا تعارف اور پریکٹس 17

18 ESP32-C3 وائرلیس ایڈونچر: IoT کے لیے ایک جامع گائیڈ

باب 3

تعارف

کو

ای ایس پی

رین میکر

چیزوں کا انٹرنیٹ (IoT) لوگوں کے رہنے کے طریقے کو تبدیل کرنے کے لامتناہی امکانات پیش کرتا ہے، پھر بھی IoT انجینئرنگ کی ترقی چیلنجوں سے بھری ہوئی ہے۔ عوامی بادلوں کے ساتھ، ٹرمینل مینوفیکچررز مندرجہ ذیل حل کے ذریعے مصنوعات کی فعالیت کو نافذ کر سکتے ہیں:
حل فراہم کرنے والوں کے کلاؤڈ پلیٹ فارمز کی بنیاد پر اس طرح، ٹرمینل مینوفیکچررز کو صرف پروڈکٹ ہارڈویئر کو ڈیزائن کرنے کی ضرورت ہوتی ہے، پھر فراہم کردہ کمیونیکیشن ماڈیول کا استعمال کرتے ہوئے ہارڈ ویئر کو کلاؤڈ سے جوڑنا ہوتا ہے، اور گائیڈ لائنز کے مطابق پروڈکٹ کے افعال کو ترتیب دینا ہوتا ہے۔ یہ ایک موثر طریقہ ہے کیونکہ یہ سرور سائیڈ اور ایپلیکیشن سائیڈ ڈویلپمنٹ اور آپریشنز اینڈ مینٹیننس (O&M) کی ضرورت کو ختم کرتا ہے۔ یہ ٹرمینل مینوفیکچررز کو بادل کے نفاذ پر غور کیے بغیر ہارڈ ویئر ڈیزائن پر توجہ مرکوز کرنے کی اجازت دیتا ہے۔ تاہم، اس طرح کے حل (مثلاً، ڈیوائس فرم ویئر اور ایپ) عام طور پر اوپن سورس نہیں ہوتے ہیں، اس لیے پروڈکٹ کے افعال فراہم کنندہ کے کلاؤڈ پلیٹ فارم کے ذریعے محدود ہوں گے جنہیں اپنی مرضی کے مطابق نہیں بنایا جا سکتا۔ دریں اثنا، صارف اور ڈیوائس کا ڈیٹا بھی کلاؤڈ پلیٹ فارم سے تعلق رکھتا ہے۔
کلاؤڈ پروڈکٹس پر مبنی اس حل میں، ہارڈویئر ڈیزائن کو مکمل کرنے کے بعد، ٹرمینل مینوفیکچررز کو نہ صرف پبلک کلاؤڈ کی طرف سے فراہم کردہ ایک یا زیادہ کلاؤڈ پروڈکٹس کا استعمال کرتے ہوئے کلاؤڈ فنکشنز کو لاگو کرنے کی ضرورت ہے، بلکہ ہارڈ ویئر کو کلاؤڈ سے جوڑنے کی بھی ضرورت ہے۔ سابق کے لیےampلی، ایمیزون سے جڑنے کے لیے Web سروسز (AWS)، ٹرمینل مینوفیکچررز کو AWS پروڈکٹس جیسے Amazon API Gateway، AWS IoT Core، اور AWS Lambda کو ڈیوائس تک رسائی، ریموٹ کنٹرول، ڈیٹا اسٹوریج، صارف کے نظم و نسق اور دیگر بنیادی افعال کو فعال کرنے کی ضرورت ہے۔ یہ نہ صرف ٹرمینل مینوفیکچررز سے کلاؤڈ پروڈکٹس کو گہرائی سے سمجھنے اور بھرپور تجربے کے ساتھ استعمال اور ترتیب دینے کے لیے کہتا ہے، بلکہ ان سے یہ بھی مطالبہ کرتا ہے کہ وہ ابتدائی اور بعد میں تعمیراتی اور دیکھ بھال کی لاگت پر غور کریں۔tages اس سے کمپنی کی توانائی اور وسائل کے لیے بڑے چیلنجز ہیں۔
عوامی بادلوں کے مقابلے میں، نجی بادل عام طور پر مخصوص منصوبوں اور مصنوعات کے لیے بنائے جاتے ہیں۔ پرائیویٹ کلاؤڈ ڈویلپرز کو پروٹوکول ڈیزائن اور کاروباری منطق کے نفاذ میں اعلیٰ سطح کی آزادی دی جاتی ہے۔ ٹرمینل مینوفیکچررز اپنی مرضی سے مصنوعات اور ڈیزائن سکیمیں بنا سکتے ہیں، اور صارف کے ڈیٹا کو آسانی سے مربوط اور بااختیار بنا سکتے ہیں۔ ایڈوان کے ساتھ پبلک کلاؤڈ کی اعلیٰ سیکورٹی، اسکیل ایبلٹی اور بھروسے کا امتزاجtagنجی کلاؤڈ کے es، Espressif نے ESP کا آغاز کیا۔
19

RainMaker، Amazon کلاؤڈ پر مبنی ایک گہری مربوط نجی کلاؤڈ حل۔ صارفین ESP RainMaker کو تعینات کر سکتے ہیں اور صرف AWS اکاؤنٹ کے ساتھ نجی کلاؤڈ بنا سکتے ہیں۔
3.1 ESP RainMaker کیا ہے؟
ESP RainMaker ایک مکمل AIoT پلیٹ فارم ہے جو متعدد بالغ AWS مصنوعات کے ساتھ بنایا گیا ہے۔ یہ بڑے پیمانے پر پیداوار کے لیے درکار مختلف خدمات مہیا کرتا ہے جیسے ڈیوائس کلاؤڈ تک رسائی، ڈیوائس اپ گریڈ، بیک اینڈ مینجمنٹ، تھرڈ پارٹی لاگ ان، وائس انٹیگریشن، اور یوزر مینجمنٹ۔ AWS کی طرف سے فراہم کردہ سرور لیس ایپلیکیشن ریپوزٹری (SAR) کا استعمال کرتے ہوئے، ٹرمینل مینوفیکچررز ESP RainMaker کو اپنے AWS اکاؤنٹس میں تیزی سے تعینات کر سکتے ہیں، جو کہ وقت کے لحاظ سے موثر اور کام کرنے میں آسان ہے۔ Espressif کے زیر انتظام اور دیکھ بھال کرنے والا، ESP RainMaker کے ذریعے استعمال کردہ SAR ڈیولپرز کو کلاؤڈ مینٹیننس کے اخراجات کو کم کرنے اور AIoT مصنوعات کی ترقی کو تیز کرنے میں مدد کرتا ہے، اس طرح محفوظ، مستحکم، اور حسب ضرورت AIoT حل تیار کرتا ہے۔ شکل 3.1 ESP RainMaker کے فن تعمیر کو ظاہر کرتا ہے۔
شکل 3.1۔ ای ایس پی رین میکر کا فن تعمیر
Espressif کی طرف سے ESP RainMaker پبلک سرور ESP کے تمام شوقینوں، سازوں، اور ماہرین تعلیم کے لیے حل کی تشخیص کے لیے مفت ہے۔ ڈویلپرز ایپل، گوگل، یا گٹ ہب اکاؤنٹس کے ساتھ لاگ ان کر سکتے ہیں، اور تیزی سے اپنی IoT ایپلیکیشن پروٹو ٹائپ بنا سکتے ہیں۔ عوامی سرور Alexa اور Google Home کو مربوط کرتا ہے، اور صوتی کنٹرول کی خدمات فراہم کرتا ہے، جو Alexa Skill اور Google Actions کے ذریعے تعاون یافتہ ہیں۔ اس کا معنوی شناخت کا فنکشن تیسرے فریق کے ذریعے بھی چلتا ہے۔ RainMaker IoT آلات صرف مخصوص اعمال کا جواب دیتے ہیں۔ معاون صوتی حکموں کی ایک مکمل فہرست کے لیے، براہ کرم فریق ثالث کے پلیٹ فارمز کو چیک کریں۔ اس کے علاوہ، Espressif صارفین کو اسمارٹ فونز کے ذریعے مصنوعات کو کنٹرول کرنے کے لیے ایک عوامی RainMaker ایپ پیش کرتا ہے۔ 20 ESP32-C3 وائرلیس ایڈونچر: IoT کے لیے ایک جامع گائیڈ

3.2 ESP رین میکر کا نفاذ
جیسا کہ شکل 3.2 میں دکھایا گیا ہے، ESP RainMaker چار حصوں پر مشتمل ہے: · کلیمنگ سروس، RainMaker ڈیوائسز کو متحرک طور پر سرٹیفکیٹ حاصل کرنے کے قابل بنانا۔ رین میکر کلاؤڈ (جسے کلاؤڈ بیک اینڈ بھی کہا جاتا ہے)، میسج فلٹرنگ، یوزر مینجمنٹ، ڈیٹا اسٹوریج، اور تھرڈ پارٹی انٹیگریشن جیسی خدمات فراہم کرتا ہے۔ رین میکر ایجنٹ، رین میکر آلات کو رین میکر کلاؤڈ سے منسلک کرنے کے قابل بناتا ہے۔ رین میکر کلائنٹ (رین میکر ایپ یا سی ایل آئی اسکرپٹس)، فراہمی، صارف کی تخلیق، ڈیوائس ایسوسی ایشن اور کنٹرول وغیرہ کے لیے۔
شکل 3.2۔ ای ایس پی رین میکر کا ڈھانچہ
ESP RainMaker مصنوعات کی ترقی اور بڑے پیمانے پر پیداوار کے لیے ٹولز کا ایک مکمل سیٹ فراہم کرتا ہے، بشمول: RainMaker SDK
RainMaker SDK ESP-IDF پر مبنی ہے اور فرم ویئر کی ترقی کے لیے ڈیوائس سائیڈ ایجنٹ اور متعلقہ C APIs کا سورس کوڈ فراہم کرتا ہے۔ ڈویلپرز کو صرف درخواست کی منطق لکھنے کی ضرورت ہے اور باقی کو RainMaker فریم ورک پر چھوڑنا ہوگا۔ C APIs کے بارے میں مزید معلومات کے لیے، براہ کرم https://bookc3.espressif.com/rm/c-api-reference ملاحظہ کریں۔ RainMaker App RainMaker ایپ کا عوامی ورژن ڈویلپرز کو ڈیوائس کی فراہمی کو مکمل کرنے، اور ڈیوائسز کی حیثیت کو کنٹرول کرنے اور استفسار کرنے کی اجازت دیتا ہے (جیسے، سمارٹ لائٹنگ پروڈکٹس)۔ یہ iOS اور Android ایپ اسٹورز دونوں پر دستیاب ہے۔ مزید تفصیلات کے لیے، براہ کرم باب 10 دیکھیں۔ REST APIs REST APIs صارفین کو RainMaker ایپ کی طرح اپنی ایپلی کیشنز بنانے میں مدد کرتے ہیں۔ مزید معلومات کے لیے، براہ کرم https://swaggerapis.rainmaker.espressif.com/ ملاحظہ کریں۔
باب 3۔ ای ایس پی رین میکر 21 کا تعارف

Python APIs A Python-based CLI، جو RainMaker SDK کے ساتھ آتا ہے، اسمارٹ فون کی خصوصیات سے ملتے جلتے تمام افعال کو نافذ کرنے کے لیے فراہم کیا جاتا ہے۔ Python APIs کے بارے میں مزید معلومات کے لیے، براہ کرم https://bookc3.espressif.com/rm/python-api-reference ملاحظہ کریں۔
ایڈمن CLI ایڈمن CLI، اعلی درجے کی رسائی کے ساتھ، ESP RainMaker پرائیویٹ تعیناتی کے لیے فراہم کی جاتی ہے تاکہ بلک میں ڈیوائس سرٹیفکیٹ تیار کیا جا سکے۔
3.2.1 سروس کا دعوی کرنا
RainMaker ڈیوائسز اور کلاؤڈ بیک اینڈ کے درمیان تمام مواصلت MQTT+TLS کے ذریعے کی جاتی ہے۔ ESP RainMaker کے تناظر میں، "دعویٰ کرنا" وہ عمل ہے جس میں آلات کلاؤڈ بیک اینڈ سے منسلک ہونے کے لیے کلیمنگ سروس سے سرٹیفکیٹ حاصل کرتے ہیں۔ نوٹ کریں کہ کلیمنگ سروس صرف عوامی RainMaker سروس پر لاگو ہوتی ہے، جبکہ پرائیویٹ تعیناتی کے لیے، Admin CLI کے ذریعے بڑی تعداد میں ڈیوائس سرٹیفکیٹ تیار کرنے کی ضرورت ہوتی ہے۔ ESP RainMaker تین قسم کی کلیمنگ سروس کو سپورٹ کرتا ہے: سیلف کلیمنگ
ڈیوائس خود انٹرنیٹ سے منسلک ہونے کے بعد eFuse میں پہلے سے پروگرام شدہ خفیہ کلید کے ذریعے سرٹیفکیٹ حاصل کرتی ہے۔ Host Driven Claiming سرٹیفکیٹ ڈیولپمنٹ ہوسٹ سے RainMaker اکاؤنٹ سے حاصل کیے جاتے ہیں۔ اسسٹڈ کلیمنگ پروویژننگ کے دوران سرٹیفکیٹس اسمارٹ فون ایپلی کیشنز کے ذریعے حاصل کیے جاتے ہیں۔
3.2.2 رین میکر ایجنٹ
شکل 3.3۔ RainMaker SDK کا ڈھانچہ RainMaker ایجنٹ کا بنیادی کام کنیکٹیویٹی فراہم کرنا اور اپلنک/ڈاؤن لنک کلاؤڈ ڈیٹا کو پروسیس کرنے میں ایپلی کیشن لیئر کی مدد کرنا ہے۔ یہ RainMaker SDK 22 ESP32-C3 وائرلیس ایڈونچر کے ذریعے بنایا گیا ہے: IoT کے لیے ایک جامع گائیڈ

اور RTOS، NVS، اور MQTT جیسے ESP-IDF اجزاء کا استعمال کرتے ہوئے ثابت شدہ ESP-IDF فریم ورک کی بنیاد پر تیار کیا گیا ہے۔ شکل 3.3 RainMaker SDK کی ساخت کو ظاہر کرتی ہے۔
RainMaker SDK میں دو بڑی خصوصیات شامل ہیں۔
کنکشن
i ڈیوائس سرٹیفکیٹ حاصل کرنے کے لیے کلیمنگ سروس کے ساتھ تعاون کرنا۔
ii ریموٹ کنیکٹیویٹی فراہم کرنے اور ریموٹ کنٹرول، میسج رپورٹنگ، یوزر مینجمنٹ، ڈیوائس مینجمنٹ وغیرہ کو لاگو کرنے کے لیے محفوظ MQTT پروٹوکول کا استعمال کرتے ہوئے کلاؤڈ بیک اینڈ سے جڑنا۔ یہ ESP-IDF میں MQTT جزو کو بطور ڈیفالٹ استعمال کرتا ہے اور دوسرے کے ساتھ انٹرفیس کے لیے ایک تجریدی پرت فراہم کرتا ہے۔ پروٹوکول اسٹیک.
iii وائی ​​فائی کنکشن اور پروویژننگ کے لیے وائی فائی پروویژننگ جزو فراہم کرنا، OTA اپ گریڈ کے لیے esp https ota جزو، اور مقامی ڈیوائس کی دریافت اور کنکشن کے لیے esp لوکل ctrl جزو۔ یہ تمام مقاصد سادہ ترتیب کے ذریعے حاصل کیے جا سکتے ہیں۔
ڈیٹا پروسیسنگ
i کلیمنگ سروس کی طرف سے جاری کردہ ڈیوائس سرٹیفکیٹس اور RainMaker چلانے کے دوران درکار ڈیٹا کو ذخیرہ کرنا، بطور ڈیفالٹ nvs فلیش جزو کے ذریعے فراہم کردہ انٹرفیس کا استعمال کرتے ہوئے، اور براہ راست استعمال کے لیے ڈویلپرز کو API فراہم کرنا۔
ii اپلنک/ڈاؤن لنک کلاؤڈ ڈیٹا پر کارروائی کرنے کے لیے کال بیک میکانزم کا استعمال کرنا اور ڈیولپرز کے ذریعے آسانی سے پروسیسنگ کے لیے ڈیٹا کو ایپلیکیشن لیئر پر خود بخود ان بلاک کرنا۔ سابق کے لیےampلی، RainMaker SDK TSL (Thing Specification Language) ڈیٹا قائم کرنے کے لیے بھرپور انٹرفیس فراہم کرتا ہے، جو IoT ڈیوائسز کو بیان کرنے اور وقت، الٹی گنتی، اور صوتی کنٹرول جیسے افعال کو نافذ کرنے کے لیے TSL ماڈلز کی وضاحت کرنے کے لیے درکار ہیں۔ بنیادی انٹرایکٹو خصوصیات جیسے ٹائمنگ کے لیے، RainMaker SDK ترقی سے پاک حل فراہم کرتا ہے جسے ضرورت پڑنے پر آسانی سے فعال کیا جا سکتا ہے۔ پھر، RainMaker ایجنٹ براہ راست ڈیٹا پر کارروائی کرے گا، اسے متعلقہ MQTT موضوع کے ذریعے کلاؤڈ کو بھیجے گا، اور کال بیک میکانزم کے ذریعے کلاؤڈ بیک اینڈ میں ڈیٹا کی تبدیلیوں کو فیڈ بیک کرے گا۔
3.2.3 کلاؤڈ بیک اینڈ
کلاؤڈ بیک اینڈ AWS سرور لیس کمپیوٹنگ پر بنایا گیا ہے اور اسے AWS Cognito (شناختی انتظام کے نظام)، Amazon API گیٹ وے، AWS Lambda (سرور لیس کمپیوٹنگ سروس)، Amazon DynamoDB (NoSQL ڈیٹا بیس)، AWS IoT Core (IoT رسائی کور جو MQTT رسائی فراہم کرتا ہے کے ذریعے حاصل کیا گیا ہے۔ اور رول فلٹرنگ)، Amazon Simple Email Service (SES سادہ میل سروس)، Amazon CloudFront (تیز ڈیلیوری نیٹ ورک)، Amazon Simple Queue Service (SQS میسج کی قطار)، اور Amazon S3 (بکٹ اسٹوریج سروس)۔ اس کا مقصد اسکیل ایبلٹی اور سیکیورٹی کو بہتر بنانا ہے۔ ESP RainMaker کے ساتھ، ڈویلپرز کلاؤڈ میں کوڈ لکھے بغیر آلات کا نظم کر سکتے ہیں۔ آلات کے ذریعے اطلاع دیے گئے پیغامات کو شفاف طریقے سے منتقل کیا جاتا ہے۔
باب 3۔ ای ایس پی رین میکر 23 کا تعارف

درخواست کلائنٹس یا دیگر فریق ثالث کی خدمات۔ جدول 3.1 AWS کلاؤڈ پروڈکٹس اور کلاؤڈ بیک اینڈ میں استعمال ہونے والے فنکشنز کو دکھاتا ہے، جس میں مزید پروڈکٹس اور فیچرز تیار ہو رہے ہیں۔
جدول 3.1۔ AWS کلاؤڈ پروڈکٹس اور فنکشنز جو کلاؤڈ بیک اینڈ کے ذریعہ استعمال ہوتے ہیں۔

AWS کلاؤڈ پروڈکٹ RainMaker کے ذریعے استعمال کیا جاتا ہے۔

فنکشن

AWS Cognito

صارف کی اسناد کا انتظام کرنا اور فریق ثالث کے لاگ ان کو سپورٹ کرنا

اے ڈبلیو ایس لیمبڈا

کلاؤڈ بیک اینڈ کی بنیادی کاروباری منطق کو نافذ کرنا

ایمیزون ٹائم اسٹریم ٹائم سیریز کا ڈیٹا اسٹور کرنا

Amazon DynamoDB صارفین کی نجی معلومات کو محفوظ کر رہا ہے۔

AWS IoT کور

ایم کیو ٹی ٹی مواصلات کو سپورٹ کرنا

ایمیزون ایس ای ایس

ای میل بھیجنے کی خدمات فراہم کرنا

ایمیزون کلاؤڈ فرنٹ پسدید کے انتظام کو تیز کرتا ہے۔ webسائٹ تک رسائی

ایمیزون ایس کیو ایس

AWS IoT Core سے پیغامات کو آگے بڑھانا

3.2.4 رین میکر کلائنٹ
RainMaker کلائنٹس، جیسے کہ App اور CLI، REST APIs کے ذریعے کلاؤڈ بیک اینڈ کے ساتھ بات چیت کرتے ہیں۔ REST APIs کے بارے میں تفصیلی معلومات اور ہدایات Espressif کے فراہم کردہ Swagger دستاویزات میں مل سکتی ہیں۔ RainMaker کا موبائل ایپلیکیشن کلائنٹ iOS اور Android دونوں سسٹمز کے لیے دستیاب ہے۔ یہ آلہ کی فراہمی، کنٹرول، اور اشتراک کے ساتھ ساتھ الٹی گنتی کے کاموں کو بنانے اور ان کو فعال کرنے اور فریق ثالث پلیٹ فارمز سے منسلک ہونے کی اجازت دیتا ہے۔ یہ ڈیوائسز کی رپورٹ کردہ کنفیگریشن کے مطابق UI اور شبیہیں خود بخود لوڈ کر سکتا ہے اور ڈیوائس TSL کو مکمل طور پر ڈسپلے کر سکتا ہے۔
سابق کے لیےampلی، اگر RainMaker SDK کی طرف سے فراہم کردہ سابق پر ایک سمارٹ لائٹ بنائی گئی ہے۔amples، پروویژننگ مکمل ہونے پر بلب لائٹ کا آئیکن اور UI خود بخود لوڈ ہو جائیں گے۔ صارف انٹرفیس کے ذریعے روشنی کے رنگ اور چمک کو تبدیل کر سکتے ہیں اور الیکسا اسمارٹ ہوم اسکل یا گوگل سمارٹ ہوم ایکشنز کو اپنے ESP RainMaker اکاؤنٹس سے منسلک کر کے تھرڈ پارٹی کنٹرول حاصل کر سکتے ہیں۔ شکل 3.4 آئیکن اور UI سابقہ ​​کو دکھاتا ہے۔ampالیکسا، گوگل ہوم، اور ای ایس پی رین میکر ایپ پر بالترتیب بلب کی روشنی۔

24 ESP32-C3 وائرلیس ایڈونچر: IoT کے لیے ایک جامع گائیڈ

(a) سابقample - Alexa

(ب) سابقample - گوگل ہوم

(c) سابقample - ESP رین میکر
شکل 3.4. سابقampالیکسا، گوگل ہوم، اور ای ایس پی رین میکر ایپ پر بلب لائٹ کا آئیکن اور UI
3.3 مشق: ESP RainMaker کے ساتھ تیار کرنے کے لیے اہم نکات
ڈیوائس ڈرائیور لیئر مکمل ہونے کے بعد، ڈویلپرز RainMaker SDK کی طرف سے فراہم کردہ APIs کا استعمال کرتے ہوئے TSL ماڈل بنانا اور ڈاؤن لنک ڈیٹا پر کارروائی کرنا شروع کر سکتے ہیں، اور مصنوعات کی تعریف اور ضروریات کی بنیاد پر ESP RainMaker بنیادی خدمات کو فعال کر سکتے ہیں۔
باب 3۔ ای ایس پی رین میکر 25 کا تعارف

اس کتاب کا سیکشن 9.4 RainMaker میں LED سمارٹ لائٹ کے نفاذ کی وضاحت کرے گا۔ ڈیبگنگ کے دوران، ڈویلپرز سمارٹ لائٹ کے ساتھ بات چیت کرنے کے لیے RainMaker SDK میں CLI ٹولز استعمال کر سکتے ہیں (یا Swagger سے REST APIs کو کال کریں)۔
باب 10 اسمارٹ فون ایپلی کیشنز تیار کرنے میں REST APIs کے استعمال کی وضاحت کرے گا۔ LED سمارٹ لائٹس کے OTA اپ گریڈ کو باب 11 میں شامل کیا جائے گا۔ اگر ڈویلپرز نے ESP انسائٹس ریموٹ مانیٹرنگ کو فعال کیا ہے، تو ESP RainMaker مینجمنٹ بیک اینڈ ESP انسائٹس ڈیٹا کو ظاہر کرے گا۔ تفصیلات باب 15 میں پیش کی جائیں گی۔
ESP RainMaker نجی تعیناتی کی حمایت کرتا ہے، جو درج ذیل طریقوں سے عوامی RainMaker سرور سے مختلف ہے:
کلیمنگ سروس نجی تعیناتیوں میں سرٹیفکیٹ تیار کرنے کے لیے، کلیم کرنے کے بجائے رین میکر ایڈمن CLI استعمال کرنے کی ضرورت ہے۔ پبلک سرور کے ساتھ، ڈویلپرز کو فرم ویئر اپ گریڈ کو لاگو کرنے کے لیے ایڈمن کے حقوق دیئے جائیں، لیکن تجارتی تعیناتیوں میں یہ ناپسندیدہ ہے۔ اس لیے، نہ تو خود دعویٰ کرنے کے لیے علیحدہ تصدیقی خدمت فراہم کی جا سکتی ہے، اور نہ ہی میزبان سے چلنے والے یا معاون دعوے کے لیے منتظم کے حقوق۔
فون ایپس نجی تعیناتیوں میں، ایپلیکیشنز کو الگ سے ترتیب دینے اور مرتب کرنے کی ضرورت ہوتی ہے تاکہ یہ یقینی بنایا جا سکے کہ اکاؤنٹ کے نظام آپس میں کام کرنے کے قابل نہیں ہیں۔
فریق ثالث لاگ ان اور وائس انٹیگریشن ڈویلپرز کو گوگل اور ایپل ڈیولپر اکاؤنٹس کے ذریعے 3rd پارٹی لاگ ان کے ساتھ ساتھ الیکسا سکل اور گوگل وائس اسسٹنٹ انٹیگریشن کو فعال کرنے کے لیے الگ سے کنفیگر کرنا ہوگا۔
ٹپس کلاؤڈ تعیناتی کے بارے میں تفصیلات کے لیے، براہ کرم https://customer.rainmaker.espressif ملاحظہ کریں۔ com. فرم ویئر کے لحاظ سے، پبلک سرور سے پرائیویٹ سرور میں منتقلی کے لیے صرف ڈیوائس سرٹیفکیٹس کو تبدیل کرنے کی ضرورت ہوتی ہے، جو منتقلی کی کارکردگی کو بہت بہتر بناتا ہے اور منتقلی اور ثانوی ڈیبگنگ کی لاگت کو کم کرتا ہے۔
3.4 ESP RainMaker کی خصوصیات
ESP RainMaker کے فیچرز کو بنیادی طور پر تین پہلوؤں پر نشانہ بنایا جاتا ہے - یوزر مینجمنٹ، اینڈ یوزرز، اور ایڈمنز۔ تمام خصوصیات سرکاری اور نجی دونوں سرورز میں تعاون یافتہ ہیں جب تک کہ دوسری صورت میں بیان نہ کیا جائے۔
3.4.1 یوزر مینجمنٹ
صارف کے انتظام کی خصوصیات اختتامی صارفین کو رجسٹر کرنے، لاگ ان کرنے، پاس ورڈ تبدیل کرنے، پاس ورڈ بازیافت کرنے وغیرہ کی اجازت دیتی ہیں۔
26 ESP32-C3 وائرلیس ایڈونچر: IoT کے لیے ایک جامع گائیڈ

رجسٹر کریں اور لاگ ان کریں RainMaker کے ذریعہ تعاون یافتہ رجسٹریشن اور لاگ ان طریقوں میں شامل ہیں: · ای میل آئی ڈی + پاس ورڈ · فون نمبر + پاس ورڈ · گوگل اکاؤنٹ · ایپل اکاؤنٹ · گٹ ہب اکاؤنٹ (صرف پبلک سرور) · ایمیزون اکاؤنٹ (صرف نجی سرور)
نوٹ گوگل/ایمیزون کا استعمال کرتے ہوئے سائن اپ کریں صارف کا ای میل پتہ RainMaker کے ساتھ شیئر کرتا ہے۔ ایپل کا استعمال کرتے ہوئے سائن اپ کریں ایک ڈمی ایڈریس جو ایپل صارف کے لیے خاص طور پر RainMaker سروس کے لیے تفویض کرتا ہے۔ پہلی بار گوگل، ایپل، یا ایمیزون اکاؤنٹ سے سائن ان کرنے والے صارفین کے لیے RainMaker اکاؤنٹ خود بخود بن جائے گا۔
پاس ورڈ تبدیل کریں صرف ای میل آئی ڈی/فون نمبر پر مبنی لاگ ان کے لیے درست ہے۔ پاس ورڈ تبدیل ہونے کے بعد دیگر تمام فعال سیشنز لاگ آؤٹ ہو جائیں گے۔ AWS Cognito رویے کے مطابق، لاگ آؤٹ ہونے والے سیشن 1 گھنٹے تک فعال رہ سکتے ہیں۔
پاس ورڈ بازیافت کریں صرف ای میل آئی ڈی/فون نمبر پر مبنی لاگ ان کے لیے درست ہے۔
3.4.2 اختتامی صارف کی خصوصیات
اختتامی صارفین کے لیے کھلی خصوصیات میں مقامی اور ریموٹ کنٹرول اور مانیٹرنگ، شیڈولنگ، ڈیوائس گروپنگ، ڈیوائس شیئرنگ، پش نوٹیفیکیشنز، اور تھرڈ پارٹی انٹیگریشن شامل ہیں۔
ریموٹ کنٹرول اور نگرانی · ایک یا تمام آلات کے لیے استفسار کنفیگریشن، پیرامیٹر ویلیوز، اور کنکشن کی حیثیت۔ سنگل یا ایک سے زیادہ آلات کے لیے پیرامیٹرز سیٹ کریں۔
مقامی کنٹرول اور نگرانی مقامی کنٹرول کے لیے موبائل فون اور ڈیوائس کو ایک ہی نیٹ ورک سے منسلک کرنے کی ضرورت ہے۔
شیڈولنگ · صارفین ایک مخصوص وقت پر کچھ اعمال کو پہلے سے سیٹ کرتے ہیں۔ شیڈول پر عمل کرتے وقت ڈیوائس کے لیے انٹرنیٹ کنکشن کی ضرورت نہیں ہے۔ سنگل یا ایک سے زیادہ آلات کے لیے ایک بار یا دہرائیں (دن بتا کر)۔
ڈیوائس گروپنگ ملٹی لیول ایبسٹریکٹ گروپنگ کو سپورٹ کرتی ہے گروپ میٹا ڈیٹا کو ہوم روم کا ڈھانچہ بنانے کے لیے استعمال کیا جا سکتا ہے۔
باب 3۔ ای ایس پی رین میکر 27 کا تعارف

ڈیوائس شیئرنگ ایک یا زیادہ ڈیوائسز کو ایک یا زیادہ صارفین کے ساتھ شیئر کیا جا سکتا ہے۔
پش نوٹیفیکیشنز اختتامی صارفین کو ایونٹس کے لیے پش نوٹیفیکیشن موصول ہوں گے جیسے · نئے ڈیوائس (زبانیں) شامل کیے گئے/ہٹائے گئے · ڈیوائس کلاؤڈ سے منسلک ہے؛ ڈیوائس کلاؤڈ سے منقطع ہے؛ ڈیوائس شیئرنگ کی درخواستیں تخلیق/قبول/مسترد کی گئی ہیں؛ ڈیوائسز کے ذریعے رپورٹ کردہ الرٹ پیغامات
تھرڈ پارٹی انٹیگریشنز الیکسا اور گوگل وائس اسسٹنٹ RainMaker ڈیوائسز کو کنٹرول کرنے کے لیے معاون ہیں، بشمول لائٹس، سوئچز، ساکٹ، پنکھے اور درجہ حرارت کے سینسر۔
3.4.3 ایڈمن کی خصوصیات
ایڈمن کی خصوصیات منتظمین کو ڈیوائس رجسٹریشن، ڈیوائس گروپنگ، اور OTA اپ گریڈ کو نافذ کرنے کی اجازت دیتی ہیں، اور view شماریات اور ESP بصیرت کا ڈیٹا۔
ڈیوائس رجسٹریشن ڈیوائس سرٹیفکیٹ تیار کریں اور ایڈمن CLI (صرف پرائیویٹ سرور) کے ساتھ رجسٹر کریں۔
ڈیوائس گروپنگ ڈیوائس کی معلومات (صرف پرائیویٹ سرور) کی بنیاد پر خلاصہ یا سٹرکچرڈ گروپس بنائیں۔
اوور دی ایئر (OTA) اپ گریڈ کرتا ہے ورژن اور ماڈل پر مبنی فرم ویئر اپ لوڈ کرتا ہے، ایک یا ایک سے زیادہ ڈیوائسز یا گروپ مانیٹر، منسوخ، یا OTA جابز کو محفوظ کرتا ہے۔
View اعداد و شمار Viewقابل اعدادوشمار میں شامل ہیں: · ڈیوائس کی رجسٹریشن (منتظم کے ذریعہ رجسٹرڈ سرٹیفکیٹ) · ڈیوائس ایکٹیویشن (ڈیوائس پہلی بار منسلک) · صارف اکاؤنٹس · صارف ڈیوائس ایسوسی ایشن
View ESP بصیرت کا ڈیٹا Viewقابل ESP بصیرت ڈیٹا میں شامل ہیں: · غلطیاں، انتباہات، اور حسب ضرورت لاگز · کریش رپورٹس اور تجزیہ · دوبارہ شروع کرنے کی وجوہات · میٹرکس جیسے میموری کا استعمال، RSSI وغیرہ · حسب ضرورت میٹرکس اور متغیرات
28 ESP32-C3 وائرلیس ایڈونچر: IoT کے لیے ایک جامع گائیڈ

3.5 خلاصہ
اس باب میں، ہم نے عوامی رین میکر کی تعیناتی اور نجی تعیناتی کے درمیان کچھ اہم فرق متعارف کرائے ہیں۔ Espressif کی طرف سے شروع کردہ پرائیویٹ ESP RainMaker سلوشن انتہائی قابل اعتماد اور قابل توسیع ہے۔ تمام ESP32 سیریز چپس کو AWS کے ساتھ منسلک اور موافق بنایا گیا ہے، جو لاگت کو بہت کم کرتا ہے۔ ڈویلپرز AWS کلاؤڈ پروڈکٹس کے بارے میں سیکھے بغیر پروٹو ٹائپ کی تصدیق پر توجہ مرکوز کر سکتے ہیں۔ ہم نے ESP RainMaker کے نفاذ اور خصوصیات، اور پلیٹ فارم کا استعمال کرتے ہوئے ترقی کے لیے کچھ اہم نکات کی بھی وضاحت کی۔
ESP RainMaker for Android ڈاؤن لوڈ کرنے کے لیے اسکین کریں iOS کے لیے ESP RainMaker ڈاؤن لوڈ کرنے کے لیے اسکین کریں۔
باب 3۔ ای ایس پی رین میکر 29 کا تعارف

30 ESP32-C3 وائرلیس ایڈونچر: IoT کے لیے ایک جامع گائیڈ

باب 4 ترقیاتی ماحول کی ترتیب
یہ باب ESP-IDF پر مرکوز ہے، ESP32-C3 کے لیے آفیشل سافٹ ویئر ڈویلپمنٹ فریم ورک۔ ہم وضاحت کریں گے کہ ماحول کو مختلف آپریٹنگ سسٹمز پر کیسے ترتیب دیا جائے، اور ESP-IDF کا پراجیکٹ ڈھانچہ اور تعمیراتی نظام متعارف کرایا جائے، نیز متعلقہ ترقیاتی ٹولز کا استعمال۔ پھر ہم ایک سابق کے مرتب کرنے اور چلانے کے عمل کو پیش کریں گے۔ample پروجیکٹ، ہر s پر آؤٹ پٹ لاگ کی تفصیلی وضاحت پیش کرتے ہوئےtage.
4.1 ESP-IDF اوورview
ESP-IDF (Espressif IoT ڈویلپمنٹ فریم ورک) Espressif ٹیکنالوجی کی طرف سے فراہم کردہ ایک سٹاپ IoT ڈویلپمنٹ فریم ورک ہے۔ یہ C/C++ کو بنیادی ترقیاتی زبان کے طور پر استعمال کرتا ہے اور مین اسٹریم آپریٹنگ سسٹم جیسے لینکس، میک اور ونڈوز کے تحت کراس کمپائلیشن کو سپورٹ کرتا ہے۔ سابق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 اوپن او سی ڈی وغیرہ پر مبنی ڈیبگنگ ٹول۔ یہ بات قابل غور ہے کہ ESP-IDF کوڈ بنیادی طور پر Apache 2.0 اوپن سورس لائسنس کی پابندی کرتا ہے۔ اوپن سورس لائسنس کی شرائط کی تعمیل کرتے ہوئے صارفین بغیر کسی پابندی کے ذاتی یا تجارتی سافٹ ویئر تیار کر سکتے ہیں۔ مزید برآں، صارفین کو مفت میں مستقل پیٹنٹ لائسنس دیے جاتے ہیں، بغیر سورس کوڈ میں کسی قسم کی ترمیم کے اوپن سورس کی ذمہ داری کے۔
31

تصویر 4.1۔

عمارت، چمکتا، اور ڈیبگ-

ترقی اور بڑے پیمانے پر پیداوار کے لیے گنگ ٹولز

4.1.1 ESP-IDF ورژنز
ESP-IDF کوڈ GitHub پر ایک اوپن سورس پروجیکٹ کے طور پر ہوسٹ کیا گیا ہے۔ فی الحال، تین بڑے ورژن دستیاب ہیں: v3، v4، اور v5۔ ہر بڑے ورژن میں عام طور پر مختلف تخریب کاری ہوتی ہے، جیسے v4.2، v4.3، وغیرہ۔ Espressif Systems ہر جاری کردہ ذیلی ورژن کے لیے بگ فکسس اور سیکیورٹی پیچ کے لیے 30 ماہ کی معاونت کو یقینی بناتا ہے۔ اس لیے، تخریب کاری کی نظرثانی بھی باقاعدگی سے جاری کی جاتی ہے، جیسے v4.3.1، v4.2.2، وغیرہ۔ جدول 4.1 ایسپریسیف چپس کے لیے مختلف ESP-IDF ورژنز کی سپورٹ کی حیثیت کو ظاہر کرتا ہے، یہ بتاتا ہے کہ آیا وہ پہلے سے موجود ہیں۔view stage (پری کے لیے تعاون کی پیشکش کرناview ورژن، جن میں کچھ خصوصیات یا دستاویزات کی کمی ہو سکتی ہے) یا سرکاری طور پر تعاون یافتہ ہیں۔

جدول 4.1۔ Espressif چپس کے لیے مختلف ESP-IDF ورژن کی سپورٹ سٹیٹس

سیریز ESP32 ESP32-S2 ESP32-C3 ESP32-S3 ESP32-C2 ESP32-H2

v4.1 تعاون یافتہ

v4.2 کی حمایت کی حمایت کی

v4.3 کی حمایت کی حمایت کی حمایت کی

v4.4 کی حمایت کی حمایت کی حمایت کی حمایت کی
پریview

v5.0 سپورٹڈ سپورٹڈ سپورٹڈ سپورٹڈ سپورٹڈ سپورٹڈ پریview

32 ESP32-C3 وائرلیس ایڈونچر: IoT کے لیے ایک جامع گائیڈ

بڑے ورژن کی تکرار میں اکثر فریم ورک کے ڈھانچے میں ایڈجسٹمنٹ اور تالیف کے نظام میں اپ ڈیٹ شامل ہوتے ہیں۔ سابق کے لیےampلی، v3.* سے v4.* میں بڑی تبدیلی میک سے CMake میں بلڈ سسٹم کی بتدریج منتقلی تھی۔ دوسری طرف، معمولی ورژن کی تکرار میں عام طور پر نئی خصوصیات کا اضافہ یا نئی چپس کے لیے تعاون شامل ہوتا ہے۔
مستحکم ورژن اور GitHub شاخوں کے درمیان تعلق کو پہچاننا اور سمجھنا ضروری ہے۔ v*.* یا v*max کے طور پر لیبل لگائے گئے ورژن مستحکم ورژن کی نمائندگی کرتے ہیں جو Espressif کی طرف سے مکمل داخلی جانچ پاس کر چکے ہیں۔ ایک بار طے ہوجانے کے بعد، اسی ورژن کے لیے کوڈ، ٹول چین اور ریلیز دستاویزات میں کوئی تبدیلی نہیں ہوگی۔ تاہم، GitHub برانچز (مثال کے طور پر ریلیز/v4.3 برانچ) اکثر روزانہ کی بنیاد پر اکثر کوڈ کمٹ سے گزرتی ہیں۔ لہذا، ایک ہی برانچ کے تحت دو کوڈ کے ٹکڑوں میں فرق ہو سکتا ہے، جس کی وجہ سے ڈویلپرز کو اس کے مطابق اپنے کوڈ کو فوری طور پر اپ ڈیٹ کرنے کی ضرورت ہوتی ہے۔
4.1.2 ESP-IDF Git ورک فلو
Espressif ESP-IDF کے لیے ایک مخصوص Git ورک فلو کی پیروی کرتا ہے، جس کا خاکہ درج ذیل ہے:
· ماسٹر برانچ میں نئی ​​تبدیلیاں کی جاتی ہیں، جو کہ اہم ترقیاتی شاخ کے طور پر کام کرتی ہے۔ ماسٹر برانچ پر ESP-IDF ورژن ہمیشہ ایک -dev رکھتا ہے۔ tag یہ بتانے کے لیے کہ یہ فی الحال ترقی کے مراحل میں ہے، جیسے v4.3-dev۔ ماسٹر برانچ میں تبدیلیاں پہلے دوبارہ ہوں گی۔viewed اور Espressif کے اندرونی ذخیرے میں ٹیسٹ کیا گیا، اور پھر خودکار جانچ مکمل ہونے کے بعد GitHub کی طرف دھکیل دیا گیا۔
· ایک بار جب ایک نیا ورژن ماسٹر برانچ پر فیچر ڈویلپمنٹ مکمل کر لیتا ہے اور بیٹا ٹیسٹنگ میں داخل ہونے کے معیار کو پورا کر لیتا ہے، تو یہ نئی برانچ میں منتقل ہو جاتا ہے، جیسے ریلیز/ v4.3۔ اس کے علاوہ یہ نئی برانچ ہے۔ tagged ایک پری ریلیز ورژن کے طور پر، جیسے v4.3-beta1۔ ڈیولپرز برانچوں کی مکمل فہرست تک رسائی کے لیے GitHub پلیٹ فارم کا حوالہ دے سکتے ہیں اور tags ESP-IDF کے لیے۔ یہ نوٹ کرنا ضروری ہے کہ بیٹا ورژن (پری ریلیز ورژن) میں اب بھی کافی تعداد میں معلوم مسائل ہو سکتے ہیں۔ چونکہ بیٹا ورژن مسلسل جانچ سے گزرتا ہے، اس ورژن اور ماسٹر برانچ دونوں میں بیک وقت بگ فکسز شامل کیے جاتے ہیں۔ دریں اثنا، ماسٹر برانچ نے اگلے ورژن کے لیے نئی خصوصیات تیار کرنا شروع کر دی ہیں۔ جب ٹیسٹنگ تقریباً مکمل ہو جاتی ہے، ایک ریلیز امیدوار (rc) لیبل برانچ میں شامل کیا جاتا ہے، جس سے ظاہر ہوتا ہے کہ یہ سرکاری ریلیز کے لیے ممکنہ امیدوار ہے، جیسے v4.3-rc1۔ اس پر ایسtagای، برانچ پری ریلیز ورژن بنی ہوئی ہے۔
اگر کوئی بڑا کیڑے دریافت یا رپورٹ نہیں کیے جاتے ہیں، تو پری ریلیز ورژن آخرکار ایک بڑا ورژن لیبل (مثال کے طور پر، v5.0) یا ایک چھوٹا ورژن لیبل (جیسے، v4.3) حاصل کرتا ہے اور ایک آفیشل ریلیز ورژن بن جاتا ہے، جو دستاویزی ہوتا ہے۔ ریلیز نوٹس کے صفحے میں۔ اس کے بعد، اس ورژن میں شناخت کیے گئے کسی بھی کیڑے کو ریلیز برانچ پر ٹھیک کر دیا جاتا ہے۔ دستی جانچ مکمل ہونے کے بعد، برانچ کو بگ فکس ورژن کا لیبل تفویض کیا جاتا ہے (مثال کے طور پر، v4.3.2)، جو ریلیز نوٹس کے صفحہ پر بھی ظاہر ہوتا ہے۔
باب 4۔ ترقی کے ماحول کو ترتیب دینا 33

4.1.3 موزوں ورژن کا انتخاب
چونکہ ESP-IDF نے ورژن v32 سے ESP3-C4.3 کو باضابطہ طور پر سپورٹ کرنا شروع کیا ہے، اور اس کتاب کو لکھنے کے وقت v4.4 کو ابھی تک باضابطہ طور پر جاری نہیں کیا گیا ہے، اس لیے اس کتاب میں استعمال شدہ ورژن v4.3.2 ہے، جو کہ ایک نظر ثانی شدہ ورژن ہے۔ v4.3 کا۔ تاہم، یہ نوٹ کرنا ضروری ہے کہ جب تک آپ اس کتاب کو پڑھتے ہیں، v4.4 یا نئے ورژن پہلے سے ہی دستیاب ہو سکتے ہیں۔ ایک ورژن کا انتخاب کرتے وقت، ہم درج ذیل کی سفارش کرتے ہیں:
· داخلے کی سطح کے ڈویلپرز کے لیے، مستحکم v4.3 ورژن یا اس کے نظر ثانی شدہ ورژن کو منتخب کرنے کا مشورہ دیا جاتا ہے، جو کہ سابق کے ساتھ ہم آہنگ ہو۔ampاس کتاب میں استعمال شدہ ورژن۔
· بڑے پیمانے پر پیداوار کے مقاصد کے لیے، جدید ترین تکنیکی مدد سے فائدہ اٹھانے کے لیے تازہ ترین مستحکم ورژن استعمال کرنے کی سفارش کی جاتی ہے۔
· اگر آپ نئے چپس کے ساتھ تجربہ کرنا چاہتے ہیں یا نئی مصنوعات کی خصوصیات کو دریافت کرنا چاہتے ہیں، تو براہ کرم ماسٹر برانچ کا استعمال کریں۔ تازہ ترین ورژن تمام جدید خصوصیات پر مشتمل ہے، لیکن یاد رکھیں کہ معلوم یا نامعلوم کیڑے موجود ہو سکتے ہیں۔
· اگر مستحکم ورژن استعمال کیا جا رہا ہے اس میں مطلوبہ نئی خصوصیات شامل نہیں ہیں اور آپ ماسٹر برانچ سے وابستہ خطرات کو کم کرنا چاہتے ہیں تو متعلقہ ریلیز برانچ، جیسے ریلیز/v4.4 برانچ استعمال کرنے پر غور کریں۔ Espressif کا GitHub ذخیرہ پہلے ریلیز/v4.4 برانچ بنائے گا اور اس کے بعد تمام فیچر ڈیولپمنٹ اور ٹیسٹنگ مکمل کرنے کے بعد اس برانچ کے مخصوص تاریخی اسنیپ شاٹ کی بنیاد پر مستحکم v4.4 ورژن جاری کرے گا۔
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: وائی فائی، ایک خاص پیری فیرل کے طور پر، ایک الگ جزو کے طور پر سمجھا جاتا ہے۔ اس میں متعدد APIs شامل ہیں جیسے کہ مختلف وائی فائی ڈرائیور موڈز کا آغاز، پیرامیٹر کنفیگریشن، اور ایونٹ پروسیسنگ۔ اس جزو کے کچھ افعال جامد لنک لائبریریوں کی شکل میں فراہم کیے گئے ہیں۔ ESP-IDF استعمال میں آسانی کے لیے ڈرائیور کی جامع دستاویزات بھی فراہم کرتا ہے۔
باب 4۔ ترقی کے ماحول کو ترتیب دینا 35

· freertos: یہ جزو مکمل FreeRTOS کوڈ پر مشتمل ہے۔ اس آپریٹنگ سسٹم کے لیے جامع سپورٹ فراہم کرنے کے علاوہ، Espressif نے ڈوئل کور چپس کے لیے بھی اپنا تعاون بڑھایا ہے۔ ڈبل کور چپس جیسے ESP32 اور ESP32-S3 کے لیے، صارف مخصوص کور پر کام بنا سکتے ہیں۔
ب دستاویز ڈائریکٹری دستاویزات
اس ڈائرکٹری میں ESP-IDF سے متعلق ترقیاتی دستاویزات شامل ہیں، بشمول Get Started Guide، API Reference Manual، Development Guide، وغیرہ۔
نوٹ خودکار ٹولز کے ذریعے مرتب کیے جانے کے بعد، اس ڈائریکٹری کے مواد کو https://docs.espressif.com/projects/esp-idf پر تعینات کیا جاتا ہے۔ براہ کرم دستاویز کے ہدف کو ESP32-C3 میں تبدیل کرنا یقینی بنائیں اور مخصوص ESP-IDF ورژن منتخب کریں۔
c اسکرپٹ ٹول ٹولز
اس ڈائرکٹری میں عام طور پر استعمال ہونے والے کمپائلیشن فرنٹ اینڈ ٹولز جیسے idf.py اور مانیٹر ٹرمینل ٹول idf_monitor.py وغیرہ شامل ہیں۔ ذیلی ڈائرکٹری cmake میں بھی بنیادی اسکرپٹ شامل ہے۔ fileتالیف کے نظام کے s، ESP-IDF تالیف کے قواعد کو نافذ کرنے کی بنیاد کے طور پر کام کرتے ہیں۔ ماحولیاتی متغیرات کو شامل کرتے وقت، ٹولز ڈائرکٹری کے اندر موجود مواد کو سسٹم کے ماحول کے متغیر میں شامل کیا جاتا ہے، جس سے idf.py کو براہ راست پروجیکٹ پاتھ کے تحت عمل میں لایا جا سکتا ہے۔
d سابقample پروگرام ڈائریکٹری سابقamples
اس ڈائرکٹری میں ESP-IDF سابقہ ​​کا ایک وسیع ذخیرہ شامل ہے۔ample پروگرام جو اجزاء APIs کے استعمال کو ظاہر کرتے ہیں۔ سابقamples کو ان کے زمروں کی بنیاد پر مختلف ذیلی ڈائریکٹریوں میں منظم کیا گیا ہے:
شروع کریں: اس ذیلی ڈائرکٹری میں داخلہ سطح کے سابق شامل ہیں۔ampصارفین کو بنیادی باتوں کو سمجھنے میں مدد کرنے کے لیے "ہیلو ورلڈ" اور "پلک جھپکنا" کی طرح۔
· بلوٹوتھ: آپ بلوٹوتھ سے متعلقہ سابقہ ​​تلاش کر سکتے ہیں۔amples یہاں، بشمول Bluetooth LE Mesh، Bluetooth LE HID، BluFi، اور مزید۔
وائی ​​فائی: یہ ذیلی ڈائرکٹری Wi-Fi سابقہ ​​پر فوکس کرتی ہے۔amples، بشمول بنیادی پروگرام جیسے Wi-Fi SoftAP، Wi-Fi اسٹیشن، espnow، نیز ملکیتی مواصلاتی پروٹوکول سابقampEspressif سے les. اس میں ایک سے زیادہ ایپلیکیشن لیئر بھی شامل ہے۔amples پر مبنی Wi-Fi، جیسے Iperf، Sniffer، اور Smart Config۔
پیری فیرلز: اس وسیع ذیلی ڈائرکٹری کو پیریفرل ناموں کی بنیاد پر متعدد ذیلی فولڈرز میں مزید تقسیم کیا گیا ہے۔ اس میں بنیادی طور پر پیریفرل ڈرائیور سابق شامل ہیں۔ampایسپریسیف چپس کے لیے، ہر سابق کے ساتھample کئی ذیلی سابق کی خاصیتamples مثال کے طور پر، gpio سب ڈائرکٹری میں دو سابق شامل ہیں۔amples: GPIO اور GPIO میٹرکس کی بورڈ۔ یہ نوٹ کرنا ضروری ہے کہ تمام سابق نہیں ہیں۔ampاس ڈائریکٹری میں les ESP32-C3 پر لاگو ہوتے ہیں۔
36 ESP32-C3 وائرلیس ایڈونچر: IoT کے لیے ایک جامع گائیڈ

سابق کے لیےampلی، سابقamples in usb/host صرف USB ہوسٹ ہارڈویئر والے پیریفیرلز پر لاگو ہوتے ہیں (جیسے ESP32-S3)، اور ESP32-C3 میں یہ پیریفرل نہیں ہے۔ تالیف کا نظام عام طور پر ٹارگٹ سیٹ کرتے وقت اشارے فراہم کرتا ہے۔ README file ہر سابق کےample تائید شدہ چپس کی فہرست دیتا ہے۔ · پروٹوکول: یہ ذیلی ڈائرکٹری سابق پر مشتمل ہے۔ampمختلف مواصلاتی پروٹوکولز کے لیے، بشمول MQTT، HTTP، HTTP سرور، PPPoS، Modbus، mDNS، SNTP، جس میں مواصلاتی پروٹوکول کی ایک وسیع رینج کا احاطہ کیا گیا ہے۔ampIoT کی ترقی کے لیے ضروری ہے۔ · پروویژننگ: یہاں، آپ کو پروویژننگ سابقہ ​​ملے گا۔ampمختلف طریقوں کے لیے، جیسے وائی فائی پروویژننگ اور بلوٹوتھ ایل ای پروویژننگ۔ · سسٹم: اس ذیلی ڈائرکٹری میں سسٹم ڈیبگنگ شامل ہے۔amples (مثال کے طور پر، اسٹیک ٹریسنگ، رن ٹائم ٹریسنگ، ٹاسک مانیٹرنگ)، پاور مینجمنٹ سابقamples (مثال کے طور پر، مختلف نیند کے طریقوں، شریک پروسیسرز)، اور سابق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 سافٹ ویئر ڈسٹری بیوشن ڈائرکٹری dist
ESP-IDF ٹول چین اور دیگر سافٹ ویئر کمپریسڈ پیکجز کی شکل میں تقسیم کیے جاتے ہیں۔ انسٹالیشن کے عمل کے دوران، انسٹالیشن ٹول پہلے کمپریسڈ پیکج کو ڈسٹ ڈائرکٹری میں ڈاؤن لوڈ کرتا ہے، اور پھر اسے مخصوص ڈائرکٹری میں نکالتا ہے۔ انسٹالیشن مکمل ہونے کے بعد، اس ڈائرکٹری میں موجود مواد کو محفوظ طریقے سے ہٹایا جا سکتا ہے۔
ب ازگر ورچوئل ماحولیات ڈائرکٹری python env
ESP-IDF کے مختلف ورژن Python پیکجوں کے مخصوص ورژن پر انحصار کرتے ہیں۔ ان پیکجوں کو براہ راست ایک ہی میزبان پر انسٹال کرنا پیکیج ورژن کے درمیان تنازعات کا باعث بن سکتا ہے۔ اس سے نمٹنے کے لیے، ESP-IDF مختلف پیکج ورژنز کو الگ کرنے کے لیے Python ورچوئل ماحولیات کا استعمال کرتا ہے۔ اس طریقہ کار کے ساتھ، ڈویلپرز ایک ہی میزبان پر ESP-IDF کے متعدد ورژن انسٹال کر سکتے ہیں اور مختلف ماحولیاتی متغیرات درآمد کر کے ان کے درمیان آسانی سے سوئچ کر سکتے ہیں۔
c ESP-IDF کمپائلیشن ٹول چین ڈائرکٹری ٹولز
اس ڈائرکٹری میں بنیادی طور پر کراس کمپائلیشن ٹولز ہوتے ہیں جو ESP-IDF پروجیکٹس کو مرتب کرنے کے لیے درکار ہوتے ہیں، جیسے کہ CMake ٹولز، ننجا بلڈ ٹولز، اور جی سی سی ٹول چین جو حتمی قابل عمل پروگرام تیار کرتا ہے۔ مزید برآں، اس ڈائرکٹری میں متعلقہ ہیڈر کے ساتھ C/C++ زبان کی معیاری لائبریری موجود ہے۔ files اگر کوئی پروگرام سسٹم ہیڈر کا حوالہ دیتا ہے۔ file جیسے #شامل ، کمپائلیشن ٹول چین stdio.h کو تلاش کرے گا۔ file اس ڈائریکٹری کے اندر۔
4.2 ESP-IDF ترقیاتی ماحول کا قیام
ESP-IDF ڈویلپمنٹ ماحول مین اسٹریم آپریٹنگ سسٹم جیسے کہ Windows، Linux، اور macOS کو سپورٹ کرتا ہے۔ یہ سیکشن ہر نظام پر ترقیاتی ماحول کو ترتیب دینے کا طریقہ متعارف کرائے گا۔ لینکس سسٹم پر ESP32-C3 تیار کرنے کی سفارش کی جاتی ہے، جسے یہاں تفصیل سے متعارف کرایا جائے گا۔ ڈویلپمنٹ ٹولز کی مماثلت کی وجہ سے بہت ساری ہدایات پلیٹ فارمز پر لاگو ہوتی ہیں۔ لہذا، اس سیکشن کے مواد کو غور سے پڑھنے کا مشورہ دیا جاتا ہے۔
نوٹ آپ https://bookc3.espressif.com/esp32c3 پر دستیاب آن لائن دستاویزات کا حوالہ دے سکتے ہیں، جو اس سیکشن میں بیان کردہ کمانڈ فراہم کرتی ہیں۔
4.2.1 لینکس پر ESP-IDF ڈیولپمنٹ انوائرمنٹ سیٹ اپ کرنا
GNU ڈویلپمنٹ اور ڈیبگنگ ٹولز ESP-IDF ڈویلپمنٹ ماحول کے لئے درکار ہیں لینکس سسٹم کے مقامی ہیں۔ مزید برآں، لینکس میں کمانڈ لائن ٹرمینل طاقتور اور صارف دوست ہے، جو اسے ESP32-C3 کی ترقی کے لیے ایک مثالی انتخاب بناتا ہے۔ آپ کر سکتے ہیں۔
38 ESP32-C3 وائرلیس ایڈونچر: IoT کے لیے ایک جامع گائیڈ

اپنی ترجیحی لینکس ڈسٹری بیوشن کا انتخاب کریں، لیکن ہم Ubuntu یا دیگر Debianbased سسٹم استعمال کرنے کی تجویز کرتے ہیں۔ یہ سیکشن Ubuntu 20.04 پر ESP-IDF ڈیولپمنٹ ماحول قائم کرنے کے بارے میں رہنمائی فراہم کرتا ہے۔
1. مطلوبہ پیکجز انسٹال کریں۔
ایک نیا ٹرمینل کھولیں اور تمام ضروری پیکجوں کو انسٹال کرنے کے لیے درج ذیل کمانڈ پر عمل کریں۔ کمانڈ خود بخود ان پیکجوں کو چھوڑ دے گی جو پہلے سے انسٹال ہیں۔
$sudo apt-get install git wget flex bison gperf python3 python3-pip python3setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
ٹپس اوپر دی گئی کمانڈ کے لیے آپ کو ایڈمنسٹریٹر اکاؤنٹ اور پاس ورڈ استعمال کرنے کی ضرورت ہے۔ پہلے سے طے شدہ طور پر، پاس ورڈ درج کرنے پر کوئی معلومات ظاہر نہیں کی جائے گی۔ طریقہ کار کو جاری رکھنے کے لیے بس "Enter" کلید کو دبائیں۔
Git ESP-IDF میں ایک کلیدی کوڈ مینجمنٹ ٹول ہے۔ ترقی کے ماحول کو کامیابی کے ساتھ ترتیب دینے کے بعد، آپ گٹ لاگ کمانڈ کو استعمال کرسکتے ہیں۔ view ESP-IDF کی تخلیق کے بعد سے کی گئی تمام کوڈ تبدیلیاں۔ اس کے علاوہ، ورژن کی معلومات کی تصدیق کے لیے ESP-IDF میں Git کا استعمال بھی کیا جاتا ہے، جو مخصوص ورژن کے مطابق صحیح ٹول چین کو انسٹال کرنے کے لیے ضروری ہے۔ Git کے ساتھ ساتھ دیگر اہم سسٹم ٹولز میں Python بھی شامل ہے۔ ESP-IDF Python میں لکھے گئے متعدد آٹومیشن اسکرپٹس کو شامل کرتا ہے۔ ٹولز جیسے کہ CMake، Ninja-build، اور Ccache بڑے پیمانے پر C/C++ پروجیکٹس میں استعمال ہوتے ہیں اور ESP-IDF میں ڈیفالٹ کوڈ کمپلیشن اور بلڈنگ ٹولز کے طور پر کام کرتے ہیں۔ libusb-1.0-0 اور dfu-util وہ اہم ڈرائیور ہیں جو USB سیریل کمیونیکیشن اور فرم ویئر برننگ کے لیے استعمال ہوتے ہیں۔ ایک بار سافٹ ویئر پیکجز انسٹال ہوجانے کے بعد، آپ apt show استعمال کرسکتے ہیں۔ ہر پیکج کی تفصیلی وضاحت حاصل کرنے کا حکم۔ سابق کے لیےampلی، گٹ ٹول کے لیے تفصیل کی معلومات پرنٹ کرنے کے لیے apt show git استعمال کریں۔
سوال: اگر ازگر کا ورژن تعاون یافتہ نہ ہو تو کیا کریں؟ A: ESP-IDF v4.3 کو Python ورژن درکار ہے جو v3.6 سے کم نہ ہو۔ Ubuntu کے پرانے ورژنز کے لیے، براہ کرم دستی طور پر Python کا اعلیٰ ورژن ڈاؤن لوڈ اور انسٹال کریں اور Python3 کو ڈیفالٹ Python ماحول کے طور پر سیٹ کریں۔ آپ مطلوبہ الفاظ کی اپ ڈیٹ-الٹرنیٹیوز python کو تلاش کر کے تفصیلی ہدایات حاصل کر سکتے ہیں۔
2. ESP-IDF ریپوزٹری کوڈ ڈاؤن لوڈ کریں۔
ایک ٹرمینل کھولیں اور mkdir کمانڈ کا استعمال کرتے ہوئے اپنی ہوم ڈائریکٹری میں esp نامی فولڈر بنائیں۔ اگر آپ چاہیں تو آپ فولڈر کے لیے ایک مختلف نام منتخب کر سکتے ہیں۔ فولڈر میں داخل ہونے کے لیے cd کمانڈ استعمال کریں۔
باب 4۔ ترقی کے ماحول کو ترتیب دینا 39

$mkdir -p /esp $cd /esp
ESP-IDF ریپوزٹری کوڈ کو ڈاؤن لوڈ کرنے کے لیے git clone کمانڈ استعمال کریں، جیسا کہ ذیل میں دکھایا گیا ہے:
$ git clone -b v4.3.2 - recursive https://github.com/espressif/esp-idf.git
مندرجہ بالا کمانڈ میں، پیرامیٹر -b v4.3.2 ڈاؤن لوڈ کرنے کے لیے ورژن کی وضاحت کرتا ہے (اس صورت میں، ورژن 4.3.2)۔ پیرامیٹر – recursive اس بات کو یقینی بناتا ہے کہ 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 ونڈوز پر ESP-IDF ڈیولپمنٹ انوائرمنٹ سیٹ اپ کرنا
1. ESP-IDF ٹولز انسٹالر ڈاؤن لوڈ کریں۔
ٹپس Windows 10 یا اس سے اوپر والے ESP-IDF ڈیولپمنٹ ماحول کو ترتیب دینے کی سفارش کی جاتی ہے۔ آپ انسٹالر کو https://dl.espressif.com/dl/esp-idf/ سے ڈاؤن لوڈ کر سکتے ہیں۔ انسٹالر ایک اوپن سورس سافٹ ویئر بھی ہے، اور اس کا سورس کوڈ ہو سکتا ہے۔ viewایڈ https://github.com/espressif/idf-installer پر۔
آن لائن ESP-IDF ٹولز انسٹالر
یہ انسٹالر نسبتاً چھوٹا ہے، جس کا سائز تقریباً 4 MB ہے، اور دیگر پیکیجز اور کوڈ انسٹالیشن کے عمل کے دوران ڈاؤن لوڈ کیے جائیں گے۔ ایڈوانtagآن لائن انسٹالر کا ای یہ ہے کہ انسٹالیشن کے عمل کے دوران نہ صرف سافٹ ویئر پیکجز اور کوڈ کو ڈیمانڈ پر ڈاؤن لوڈ کیا جا سکتا ہے بلکہ ESP-IDF کی تمام دستیاب ریلیزز اور GitHub کوڈ کی تازہ ترین برانچ (جیسے ماسٹر برانچ) کو انسٹال کرنے کی بھی اجازت دیتا ہے۔ . نقصانtage یہ ہے کہ اسے انسٹالیشن کے عمل کے دوران نیٹ ورک کنکشن کی ضرورت ہوتی ہے، جو نیٹ ورک کے مسائل کی وجہ سے انسٹالیشن کی ناکامی کا سبب بن سکتا ہے۔
40 ESP32-C3 وائرلیس ایڈونچر: IoT کے لیے ایک جامع گائیڈ

· آف لائن ESP-IDF ٹولز انسٹالر یہ انسٹالر بڑا ہے، سائز میں تقریباً 1 GB ہے، اور ماحول کے سیٹ اپ کے لیے درکار تمام سافٹ ویئر پیکجز اور کوڈ پر مشتمل ہے۔ اہم ایڈوانtagآف لائن انسٹالر کی e یہ ہے کہ اسے انٹرنیٹ تک رسائی کے بغیر کمپیوٹرز پر استعمال کیا جا سکتا ہے، اور عام طور پر انسٹالیشن کی کامیابی کی شرح زیادہ ہوتی ہے۔ واضح رہے کہ آف لائن انسٹالر صرف ESP-IDF کی مستحکم ریلیز انسٹال کر سکتا ہے جن کی شناخت v*.* یا v** سے ہوتی ہے۔
2. انسٹالر کا مناسب ورژن ڈاؤن لوڈ کرنے کے بعد ESP-IDF ٹولز انسٹالر چلائیں (سابقہ ​​کے لیے ESP-IDF ٹولز آف لائن 4.3.2 لیںample یہاں)، exe پر ڈبل کلک کریں۔ file ESP-IDF انسٹالیشن انٹرفیس شروع کرنے کے لیے۔ ذیل میں دکھایا گیا ہے کہ آف لائن انسٹالر کا استعمال کرتے ہوئے ESP-IDF مستحکم ورژن v4.3.2 کیسے انسٹال کیا جائے۔
(1) تصویر 4.4 میں دکھائے گئے "تنصیب کی زبان منتخب کریں" انٹرفیس میں، ڈراپ ڈاؤن فہرست سے استعمال کی جانے والی زبان کو منتخب کریں۔
شکل 4.4۔ "تنصیب کی زبان منتخب کریں" انٹرفیس (2) زبان کو منتخب کرنے کے بعد، "لائسنس معاہدہ" انٹرفیس کو پاپ اپ کرنے کے لیے "OK" پر کلک کریں۔
(شکل 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 میک پر ESP-IDF ڈیولپمنٹ انوائرمنٹ سیٹ اپ کرنا
میک سسٹم پر ESP-IDF ڈویلپمنٹ ماحول کو انسٹال کرنے کا عمل وہی ہے جو لینکس سسٹم پر ہوتا ہے۔ ریپوزٹری کوڈ کو ڈاؤن لوڈ کرنے اور ٹول چین کو انسٹال کرنے کے احکامات بالکل ایک جیسے ہیں۔ انحصار پیکجوں کو انسٹال کرنے کے لیے صرف کمانڈز قدرے مختلف ہیں۔ 1. انحصار پیکجز انسٹال کریں ایک ٹرمینل کھولیں، اور پائپ انسٹال کریں، Python پیکیج مینجمنٹ ٹول، درج ذیل کمانڈ کو چلا کر:
% sudo آسان انسٹال پائپ
مندرجہ ذیل کمانڈ کو چلا کر ہومبریو، میک او ایس کے لیے ایک پیکیج مینجمنٹ ٹول انسٹال کریں۔
% /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ HEAD/install.sh)"
درج ذیل کمانڈ کو چلا کر مطلوبہ انحصار پیکجز انسٹال کریں:
% brew python3 install cmake ninja ccache dfu-util
2. ESP-IDF ریپوزٹری کوڈ ڈاؤن لوڈ کریں ESP-IDF ریپوزٹری کوڈ ڈاؤن لوڈ کرنے کے لیے سیکشن 4.2.1 میں فراہم کردہ ہدایات پر عمل کریں۔ اقدامات وہی ہیں جیسے لینکس سسٹم پر ڈاؤن لوڈ کرنے کے لیے۔
باب 4۔ ترقی کے ماحول کو ترتیب دینا 45

3. ESP-IDF ڈویلپمنٹ ٹول چین انسٹال کریں۔
ESP-IDF ڈویلپمنٹ ٹول چین کو انسٹال کرنے کے لیے سیکشن 4.2.1 میں فراہم کردہ ہدایات پر عمل کریں۔ مراحل وہی ہیں جیسے لینکس سسٹم پر انسٹالیشن کے لیے۔
4.2.4 VS کوڈ انسٹال کرنا
پہلے سے طے شدہ طور پر، ESP-IDF SDK میں کوڈ ایڈیٹنگ ٹول شامل نہیں ہوتا ہے (حالانکہ ونڈوز کے لیے تازہ ترین ESP-IDF انسٹالر ESP-IDF Eclipse کو انسٹال کرنے کا اختیار پیش کرتا ہے)۔ آپ کوڈ میں ترمیم کرنے کے لیے اپنی پسند کا کوئی بھی ٹیکسٹ ایڈیٹنگ ٹول استعمال کر سکتے ہیں اور پھر ٹرمینل کمانڈز کا استعمال کرتے ہوئے اسے مرتب کر سکتے ہیں۔
ایک مقبول کوڈ ایڈیٹنگ ٹول وی ایس کوڈ (بصری اسٹوڈیو کوڈ) ہے، جو کہ صارف دوست انٹرفیس کے ساتھ ایک مفت اور خصوصیت سے بھرپور کوڈ ایڈیٹر ہے۔ یہ مختلف پیش کرتا ہے۔ plugins جو کوڈ نیویگیشن، سنٹیکس ہائی لائٹنگ، گٹ ورژن کنٹرول، اور ٹرمینل انٹیگریشن جیسی خصوصیات فراہم کرتے ہیں۔ مزید برآں، Espressif نے VS Code کے لیے Espressif IDF نامی ایک وقف شدہ پلگ ان تیار کیا ہے، جو پروجیکٹ کی ترتیب اور ڈیبگنگ کو آسان بناتا ہے۔
آپ VS کوڈ میں موجودہ فولڈر کو تیزی سے کھولنے کے لیے ٹرمینل میں کوڈ کمانڈ استعمال کر سکتے ہیں۔ متبادل طور پر، آپ VS کوڈ کے اندر سسٹم کے ڈیفالٹ ٹرمینل کنسول کو کھولنے کے لیے شارٹ کٹ Ctrl+ استعمال کر سکتے ہیں۔
ٹپس ESP32-C3 کوڈ کی ترقی کے لیے VS کوڈ استعمال کرنے کی سفارش کی جاتی ہے۔ VS کوڈ کا تازہ ترین ورژن https://code.visualstudio.com/ پر ڈاؤن لوڈ اور انسٹال کریں۔
4.2.5 تیسری پارٹی کے ترقیاتی ماحول کا تعارف
سرکاری ESP-IDF ترقیاتی ماحول کے علاوہ، جو بنیادی طور پر C زبان استعمال کرتا ہے، ESP32-C3 دیگر مرکزی دھارے کی پروگرامنگ زبانوں اور تیسرے فریق ترقیاتی ماحول کی وسیع رینج کو بھی سپورٹ کرتا ہے۔ کچھ قابل ذکر اختیارات میں شامل ہیں:
Arduino: ہارڈ ویئر اور سافٹ ویئر دونوں کے لیے ایک اوپن سورس پلیٹ فارم، ESP32-C3 سمیت مختلف مائیکرو کنٹرولرز کو سپورٹ کرتا ہے۔
یہ C++ زبان استعمال کرتا ہے اور ایک آسان اور معیاری API پیش کرتا ہے، جسے عام طور پر Arduino زبان کہا جاتا ہے۔ Arduino بڑے پیمانے پر پروٹوٹائپ کی ترقی اور تعلیمی سیاق و سباق میں استعمال کیا جاتا ہے. یہ ایک قابل توسیع سافٹ ویئر پیکج اور ایک IDE فراہم کرتا ہے جو آسانی سے تالیف اور چمکنے کی اجازت دیتا ہے۔
MicroPython: ایک Python 3 زبان کا مترجم ایمبیڈڈ مائیکرو کنٹرولر پلیٹ فارم پر چلانے کے لیے ڈیزائن کیا گیا ہے۔
ایک سادہ اسکرپٹ لینگویج کے ساتھ، یہ ESP32-C3 کے پردیی وسائل (جیسے UART، SPI، اور I2C) اور مواصلاتی افعال (جیسے Wi-Fi اور بلوٹوتھ LE) تک براہ راست رسائی حاصل کر سکتا ہے۔
46 ESP32-C3 وائرلیس ایڈونچر: IoT کے لیے ایک جامع گائیڈ

یہ ہارڈ ویئر کے تعامل کو آسان بناتا ہے۔ MicroPython، Python کی وسیع ریاضیاتی آپریشن لائبریری کے ساتھ مل کر، ESP32-C3 پر پیچیدہ الگورتھم کے نفاذ کو قابل بناتا ہے، جس سے AI سے متعلقہ ایپلی کیشنز کی ترقی میں سہولت ہوتی ہے۔ رسم الخط کی زبان کے طور پر، بار بار تالیف کی ضرورت نہیں ہے۔ ترمیم کی جاسکتی ہے اور اسکرپٹ کو براہ راست عمل میں لایا جاسکتا ہے۔
NodeMCU: ESP سیریز چپس کے لیے تیار کردہ LUA زبان کا ترجمان۔
یہ ESP چپس کے تقریباً تمام پیریفرل فنکشنز کو سپورٹ کرتا ہے اور مائیکرو پائتھون سے ہلکا ہے۔ مائیکرو پِتھون کی طرح، نوڈ ایم سی یو اسکرپٹ لینگویج کا استعمال کرتا ہے، بار بار تالیف کی ضرورت کو ختم کرتا ہے۔
مزید برآں، ESP32-C3 NuttX اور Zephyr آپریٹنگ سسٹم کو بھی سپورٹ کرتا ہے۔ NuttX ایک حقیقی وقت کا آپریٹنگ سسٹم ہے جو POSIX-مطابقت پذیر انٹرفیس فراہم کرتا ہے، جس سے ایپلیکیشن پورٹیبلٹی میں اضافہ ہوتا ہے۔ Zephyr ایک چھوٹا ریئل ٹائم آپریٹنگ سسٹم ہے جو خاص طور پر IoT ایپلی کیشنز کے لیے ڈیزائن کیا گیا ہے۔ اس میں آئی او ٹی کی ترقی میں درکار متعدد سافٹ ویئر لائبریریاں شامل ہیں، جو آہستہ آہستہ ایک جامع سافٹ ویئر ایکو سسٹم میں تبدیل ہو رہی ہیں۔
یہ کتاب مذکورہ ترقیاتی ماحول کے لیے تنصیب کی تفصیلی ہدایات فراہم نہیں کرتی ہے۔ آپ متعلقہ دستاویزات اور ہدایات پر عمل کرکے اپنی ضروریات کی بنیاد پر ترقیاتی ماحول کو انسٹال کرسکتے ہیں۔
4.3 ESP-IDF کمپلیشن سسٹم
4.3.1 تالیف کے نظام کے بنیادی تصورات
ایک ESP-IDF پروجیکٹ ایک مرکزی پروگرام کا مجموعہ ہے جس میں ایک داخلی فنکشن اور متعدد آزاد فنکشنل اجزاء ہیں۔ سابق کے لیےample، ایک پروجیکٹ جو ایل ای ڈی سوئچز کو کنٹرول کرتا ہے بنیادی طور پر ایک انٹری پروگرام مین اور ڈرائیور کے جزو پر مشتمل ہوتا ہے جو 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 Espressif سے متعدد IoT چپس کو سپورٹ کرتا ہے، بشمول ESP32، ESP32-S سیریز، ESP32-C سیریز، ESP32-H سیریز، وغیرہ، کوڈ کو مرتب کرنے سے پہلے ہدف کا تعین کرنے کی ضرورت ہے۔ ہدف دونوں ہارڈ ویئر ڈیوائس ہے جو ایپلیکیشن پروگرام چلاتا ہے اور کمپلیشن سسٹم کا بلڈ ٹارگٹ۔ آپ کی ضروریات پر منحصر ہے، آپ اپنے پروجیکٹ کے لیے ایک یا زیادہ اہداف بتا سکتے ہیں۔ سابق کے لیےample، کمانڈ idf.py سیٹ-ٹارگٹ esp32c3 کے ذریعے، آپ تالیف کا ہدف ESP32-C3 پر سیٹ کر سکتے ہیں، جس کے دوران ESP32C3 کے لیے پہلے سے طے شدہ پیرامیٹرز اور کمپائلیشن ٹول چین کا راستہ لوڈ ہو جائے گا۔ تالیف کے بعد، ESP32C3 کے لیے ایک قابل عمل پروگرام تیار کیا جا سکتا ہے۔ آپ ایک مختلف ٹارگٹ سیٹ کرنے کے لیے کمانڈ سیٹ-ٹارگٹ کو دوبارہ بھی چلا سکتے ہیں، اور کمپائلیشن سسٹم خود بخود صاف اور ری کنفیگر ہو جائے گا۔ اجزاء
ESP-IDF میں اجزاء ماڈیولر اور آزاد کوڈ اکائیاں ہیں جن کا نظم تالیف کے نظام میں کیا جاتا ہے۔ وہ فولڈر کے طور پر منظم ہوتے ہیں، فولڈر کا نام ڈیفالٹ کے طور پر جزو کے نام کی نمائندگی کرتا ہے۔ ہر جزو کی اپنی تالیف اسکرپٹ ہوتی ہے جو 48 ESP32-C3 وائرلیس ایڈونچر: IoT کے لیے ایک جامع گائیڈ

اس کے تالیف کے پیرامیٹرز اور انحصار کی وضاحت کرتا ہے۔ تالیف کے عمل کے دوران، اجزاء کو الگ الگ جامد لائبریریوں میں مرتب کیا جاتا ہے (.a files) اور آخر کار دوسرے اجزاء کے ساتھ مل کر ایپلی کیشن پروگرام تشکیل دیتے ہیں۔
ESP-IDF اجزاء کی شکل میں ضروری کام فراہم کرتا ہے، جیسے آپریٹنگ سسٹم، پیریفرل ڈرائیورز، اور نیٹ ورک پروٹوکول اسٹیک۔ یہ اجزاء ESP-IDF روٹ ڈائرکٹری کے اندر واقع اجزاء کی ڈائرکٹری میں محفوظ ہیں۔ ڈویلپرز کو ان اجزاء کو myProject کی اجزاء ڈائرکٹری میں کاپی کرنے کی ضرورت نہیں ہے۔ اس کے بجائے، انہیں صرف پروجیکٹ کے CMakeLists.txt میں ان اجزاء کے انحصاری تعلقات کی وضاحت کرنے کی ضرورت ہے۔ file REQUIRES یا PRIV_REQUIRES ہدایات کا استعمال کرتے ہوئے تالیف کا نظام خود بخود مطلوبہ اجزاء کو تلاش اور مرتب کرے گا۔
لہذا، myProject کے تحت اجزاء کی ڈائرکٹری ضروری نہیں ہے۔ اس کا استعمال صرف پروجیکٹ کے کچھ حسب ضرورت اجزاء کو شامل کرنے کے لیے کیا جاتا ہے، جو کہ تھرڈ پارٹی لائبریریز یا صارف کا متعین کوڈ ہو سکتا ہے۔ مزید برآں، اجزاء ESP-IDF یا موجودہ پروجیکٹ کے علاوہ کسی بھی ڈائرکٹری سے حاصل کیے جاسکتے ہیں، جیسے کہ کسی اور ڈائرکٹری میں محفوظ کردہ اوپن سورس پروجیکٹ سے۔ اس صورت میں، آپ کو صرف روٹ ڈائرکٹری کے تحت CMakeLists.txt میں EXTRA_COMPONENT_DIRS متغیر سیٹ کرکے جزو کا راستہ شامل کرنے کی ضرورت ہے۔ یہ ڈائرکٹری اسی نام کے ساتھ کسی بھی ESP-IDF جزو کو اوور رائیڈ کر دے گی، اس بات کو یقینی بناتے ہوئے کہ صحیح جز کا استعمال ہو۔
انٹری پروگرام مین پروجیکٹ کے اندر مین ڈائرکٹری اسی کی پیروی کرتی ہے۔ file ساخت دوسرے اجزاء کی طرح (مثال کے طور پر، جزو 1)۔ تاہم، اس کی ایک خاص اہمیت ہے کیونکہ یہ ایک لازمی جزو ہے جو ہر پروجیکٹ میں موجود ہونا چاہیے۔ مین ڈائرکٹری میں پروجیکٹ کا سورس کوڈ اور صارف پروگرام کا انٹری پوائنٹ ہوتا ہے، جسے عام طور پر app_main کا ​​نام دیا جاتا ہے۔ پہلے سے طے شدہ طور پر، صارف کے پروگرام کا عمل اس انٹری پوائنٹ سے شروع ہوتا ہے۔ مرکزی جز اس میں بھی مختلف ہے کہ یہ خود بخود تلاش کے راستے میں موجود تمام اجزاء پر منحصر ہے۔ لہذا، CMakeLists.txt میں REQUIRES یا PRIV_REQUIRES ہدایات کا استعمال کرتے ہوئے واضح طور پر انحصار کی نشاندہی کرنے کی ضرورت نہیں ہے۔ file.
کنفیگریشن file پروجیکٹ کی روٹ ڈائرکٹری میں ایک کنفیگریشن ہے۔ file sdkconfig کہا جاتا ہے، جس میں پروجیکٹ کے اندر موجود تمام اجزاء کے کنفیگریشن پیرامیٹرز ہوتے ہیں۔ sdkconfig file کمپائلیشن سسٹم کے ذریعہ خود بخود تیار کیا جاتا ہے اور idf.py مینو کنفگ کمانڈ کے ذریعہ اس میں ترمیم اور دوبارہ تخلیق کی جاسکتی ہے۔ مینو کنفگ کے اختیارات بنیادی طور پر پروجیکٹ کے Kconfig.projbuild اور اجزاء کے Kconfig سے شروع ہوتے ہیں۔ اجزاء کے ڈویلپرز عام طور پر اجزاء کو لچکدار اور قابل ترتیب بنانے کے لیے Kconfig میں کنفیگریشن آئٹمز شامل کرتے ہیں۔
بلڈ ڈائرکٹری پہلے سے طے شدہ طور پر، پروجیکٹ کے اندر بلڈ ڈائرکٹری انٹرمیڈیٹ اسٹور کرتی ہے۔ files اور فائی-
باب 4۔ ترقی کے ماحول کو ترتیب دینا 49

nal ایگزیکیوٹیبل پروگرام جو idf.py بلڈ کمانڈ کے ذریعے تیار کیے گئے ہیں۔ عام طور پر، بلڈ ڈائرکٹری کے مواد تک براہ راست رسائی ضروری نہیں ہے۔ ESP-IDF ڈائرکٹری کے ساتھ تعامل کے لیے پہلے سے طے شدہ کمانڈز فراہم کرتا ہے، جیسے کہ مرتب شدہ بائنری کو خود بخود تلاش کرنے کے لیے idf.py فلیش کمانڈ کا استعمال file اور اسے مخصوص فلیش ایڈریس پر فلیش کریں، یا idf.py fullclean کمانڈ کا استعمال کرکے پوری بلڈ ڈائرکٹری کو صاف کریں۔
پارٹیشن ٹیبل (partitions.csv) ہر پروجیکٹ کے لیے ایک پارٹیشن ٹیبل کی ضرورت ہوتی ہے تاکہ فلیش کی جگہ کو تقسیم کیا جا سکے اور قابل عمل پروگرام اور صارف کے ڈیٹا کی جگہ کا سائز اور شروعاتی پتہ بیان کیا جا سکے۔ کمانڈ idf.py فلیش یا OTA اپ گریڈ پروگرام اس ٹیبل کے مطابق فرم ویئر کو متعلقہ ایڈریس پر فلیش کرے گا۔ ESP-IDF اجزاء/ partition_table میں کئی ڈیفالٹ پارٹیشن ٹیبل فراہم کرتا ہے، جیسے partitions_singleapp.csv اور partitions_two_ ota.csv، جنہیں مینو کنفگ میں منتخب کیا جا سکتا ہے۔
اگر سسٹم کا ڈیفالٹ پارٹیشن ٹیبل پراجیکٹ کی ضروریات کو پورا نہیں کر سکتا تو پراجیکٹ ڈائرکٹری میں اپنی مرضی کے partitions.csv کو شامل کیا جا سکتا ہے اور مینو کنفگ میں منتخب کیا جا سکتا ہے۔
4.3.3 کمپلیشن سسٹم کے ڈیفالٹ بلڈ رولز
ایک ہی نام کے ساتھ اجزاء کو اوور رائیڈ کرنے کے اصول اجزاء کی تلاش کے عمل کے دوران، تالیف کا نظام ایک مخصوص ترتیب کی پیروی کرتا ہے۔ یہ پہلے ESP-IDF کے اندرونی اجزاء تلاش کرتا ہے، پھر صارف پروجیکٹ کے اجزاء تلاش کرتا ہے، اور آخر میں EXTRA_COMPONENT_DIRS میں اجزاء تلاش کرتا ہے۔ ایسی صورتوں میں جہاں ایک سے زیادہ ڈائرکٹریز میں ایک ہی نام کے اجزاء ہوتے ہیں، آخری ڈائرکٹری میں پایا جانے والا جزو اسی نام کے کسی بھی سابقہ ​​اجزاء کو اوور رائیڈ کر دے گا۔ یہ قاعدہ اصل ESP-IDF کوڈ کو برقرار رکھتے ہوئے، صارف پروجیکٹ کے اندر ESP-IDF اجزاء کو حسب ضرورت بنانے کی اجازت دیتا ہے۔
عام اجزاء کو بطور ڈیفالٹ شامل کرنے کے قواعد جیسا کہ سیکشن 4.3.2 میں بتایا گیا ہے، اجزاء کو واضح طور پر CMakeLists.txt میں دیگر اجزاء پر اپنی انحصار کی وضاحت کرنے کی ضرورت ہے۔ تاہم، عام اجزاء جیسے فریٹوس خود بخود تعمیراتی نظام میں بطور ڈیفالٹ شامل ہو جاتے ہیں، یہاں تک کہ اگر ان کے انحصار کے تعلقات کو تالیف اسکرپٹ میں واضح طور پر بیان نہ کیا گیا ہو۔ ESP-IDF مشترکہ اجزاء میں شامل ہیں freertos, Newlib, heap, log, soc, esp_rom, esp_common, xtensa/riscv، اور cxx۔ CMakeLists.txt لکھتے وقت ان عام اجزاء کا استعمال بار بار کام کرنے سے گریز کرتا ہے اور اسے مزید جامع بناتا ہے۔
کنفیگریشن آئٹمز کو اوور رائیڈ کرنے کے اصول ڈیولپر ڈیفالٹ کنفیگریشن شامل کر کے ڈیفالٹ کنفیگریشن پیرامیٹرز شامل کر سکتے ہیں۔ file پروجیکٹ کو sdkconfig.defaults کا نام دیا گیا۔ سابق کے لیےampLE، CONFIG_LOG_ شامل کرنا
50 ESP32-C3 وائرلیس ایڈونچر: IoT کے لیے ایک جامع گائیڈ

DEFAULT_LEVEL_NONE = y UART انٹرفیس کو ترتیب دے سکتا ہے تاکہ لاگ ڈیٹا کو بطور ڈیفالٹ پرنٹ نہ کیا جا سکے۔ مزید برآں، اگر کسی خاص ہدف کے لیے مخصوص پیرامیٹرز کو ترتیب دینے کی ضرورت ہے، ایک ترتیب file sdkconfig.defaults.TARGET_NAME کا نام شامل کیا جا سکتا ہے، جہاں TARGET_NAME esp32s2، esp32c3، وغیرہ ہو سکتا ہے۔ یہ ترتیب 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. include($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کے لیے
باب 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 پر تعمیر کے ذریعے تیار کیا گیا ہے۔ اختیارات -p اور -b بالترتیب چمکنے کے لیے سیریل پورٹ کے ڈیوائس کا نام اور بوڈ ریٹ سیٹ کرنے کے لیے استعمال کیا جاتا ہے۔ اگر یہ دو اختیارات متعین نہیں ہیں، تو سیریل پورٹ خود بخود پتہ چل جائے گا اور ڈیفالٹ بوڈ ریٹ استعمال کیا جائے گا۔
idf.py مانیٹر: ہدف ESP32-C3 کا سیریل پورٹ آؤٹ پٹ دکھا رہا ہے۔ آپشن -p کو میزبان سائیڈ سیریل پورٹ کے ڈیوائس کا نام بتانے کے لیے استعمال کیا جا سکتا ہے۔ سیریل پورٹ پرنٹنگ کے دوران، مانیٹر سے باہر نکلنے کے لیے کلیدی مجموعہ Ctrl+] کو دبائیں۔
ضرورت کے مطابق مندرجہ بالا کمانڈز کو بھی ملایا جا سکتا ہے۔ سابق کے لیےampلی، کمانڈ idf.py بلڈ فلیش مانیٹر کوڈ کمپلیشن، فلیش، اور سیریل پورٹ مانیٹر کو ترتیب سے کھولے گا۔
ESP-IDF کمپائلیشن سسٹم کے بارے میں مزید جاننے کے لیے آپ https://bookc3.espressif.com/build-system ملاحظہ کر سکتے ہیں۔
4.4 پریکٹس: مرتب کرنا Exampلی پروگرام "پلک جھپکنا"
4.4.1 سابقampلی تجزیہ
یہ سیکشن پروگرام Blink کو بطور سابق لے گا۔ampکا تجزیہ کرنے کے لئے file تفصیل سے ایک حقیقی منصوبے کی ساخت اور کوڈنگ کے اصول۔ Blink پروگرام LED ٹمٹمانے کے اثر کو لاگو کرتا ہے، اور پروجیکٹ ڈائرکٹری سابق میں واقع ہے۔amples/get-started/blink، جس میں ایک ذریعہ ہوتا ہے۔ file، ترتیب files، اور متعدد تالیف اسکرپٹ۔
اس کتاب میں متعارف کرایا گیا سمارٹ لائٹ پروجیکٹ اس سابق پر مبنی ہے۔ampلی پروگرام. فنکشنز کو بتدریج بعد کے ابواب میں شامل کیا جائے گا تاکہ اسے مکمل کیا جا سکے۔
ماخذ کوڈ پورے ترقیاتی عمل کو ظاہر کرنے کے لیے، Blink پروگرام کو esp32c3-iot-projects/device firmware/1 blink میں کاپی کیا گیا ہے۔
پلک جھپکنے والے پروجیکٹ کی ڈائرکٹری کا ڈھانچہ files کو شکل 4.15 میں دکھایا گیا ہے۔
پلک جھپکنے کے منصوبے میں صرف ایک اہم ڈائرکٹری ہے، جو کہ ایک خاص جزو ہے۔
باب 4۔ ترقی کے ماحول کو ترتیب دینا 53

تصویر 4.15۔ File پلک جھپکنے کے منصوبے کی ڈائریکٹری ڈھانچہ

شامل ہونا چاہیے جیسا کہ سیکشن 4.3.2 میں بیان کیا گیا ہے۔ مین ڈائرکٹری کا استعمال بنیادی طور پر app_main() فنکشن کے نفاذ کو ذخیرہ کرنے کے لیے کیا جاتا ہے، جو کہ صارف پروگرام کا انٹری پوائنٹ ہے۔ بلنک پروجیکٹ میں اجزاء کی ڈائرکٹری شامل نہیں ہے، کیونکہ یہ سابقample کو صرف ان اجزاء کو استعمال کرنے کی ضرورت ہے جو ESP-IDF کے ساتھ آتے ہیں اور اضافی اجزاء کی ضرورت نہیں ہے۔ Blink پروجیکٹ میں شامل 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. #include "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 menuconfig میں LED سے متعلقہ GPIO منتخب کر سکتے ہیں، اور menuconfig میں ترمیم کا نتیجہ یہ ہے کہ CONFIG_BLINK کی قدر

_GPIO کو تبدیل کر دیا جائے گا۔ آپ میکرو تعریف میں براہ راست ترمیم بھی کر سکتے ہیں۔

یہاں، اور CONFIG_BLINK_GPIO کو ایک مقررہ قدر میں تبدیل کریں۔*/ 2. #define BLINK_GPIO CONFIG_BLINK_GPIO

3. void app_main(void)

4۔ {

5.

/*IO کو GPIO ڈیفالٹ فنکشن کے طور پر ترتیب دیں، پل اپ موڈ کو فعال کریں، اور

6.

ان پٹ اور آؤٹ پٹ طریقوں کو غیر فعال کریں*/

7.

gpio_reset_pin(BLINK_GPIO)؛

54 ESP32-C3 وائرلیس ایڈونچر: IoT کے لیے ایک جامع گائیڈ

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

/*GPIO کو آؤٹ پٹ موڈ پر سیٹ کریں*/ gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT)؛ جبکہ (1) {
/*پرنٹ لاگ*/ پرنٹ ایف ("ایل ای ڈی این کو بند کرنا")؛ /*ایل ای ڈی کو آف کریں (آؤٹ پٹ لو لیول)*/ gpio_set_level(BLINK_GPIO, 0)؛ /*Delay (1000 ms)*/ vTaskDelay(1000 / portTICK_PERIOD_MS)؛ printf ("ایل ای ڈی این کو آن کرنا")؛ /*ایل ای ڈی کو آن کریں (آؤٹ پٹ ہائی لیول)*/ gpio_set_level(BLINK_GPIO، 1)؛ vTaskDelay(1000 / portTICK_PERIOD_MS)؛ }

blink ex میں app_main() فنکشنample پروگرام صارف کے پروگراموں کے لیے انٹری پوائنٹ کے طور پر کام کرتا ہے۔ یہ ایک سادہ فنکشن ہے جس میں کوئی پیرامیٹرز اور کوئی واپسی قدر نہیں ہے۔ اس فنکشن کو سسٹم کے شروع کرنے کے بعد کہا جاتا ہے، جس میں لاگ سیریل پورٹ کو شروع کرنے، سنگل/ڈول کور کو ترتیب دینا، اور واچ ڈاگ کو ترتیب دینے جیسے کام شامل ہیں۔

app_main() فنکشن مین نام کے کام کے تناظر میں چلتا ہے۔ اس ٹاسک کے اسٹیک سائز اور ترجیح کو مینو کنفگ Componentconfig Common ESP سے متعلق میں ایڈجسٹ کیا جا سکتا ہے۔

ایل ای ڈی کو جھپکنے جیسے آسان کاموں کے لیے، تمام ضروری کوڈ کو براہ راست app_main() فنکشن میں لاگو کیا جا سکتا ہے۔ اس میں عام طور پر ایل ای ڈی کے مطابق جی پی آئی او کو شروع کرنا اور ایل ای ڈی کو آن اور آف کرنے کے لیے تھوڑی دیر (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 میں شامل کردہ کو مرتب کیا جائے گا۔ ایک ہی وقت میں، "."، جو اس راستے کی نمائندگی کرتا ہے جہاں CMakeLists.txt واقع ہے، کو INCLUDE_DIRS میں ہیڈر کے لیے سرچ ڈائریکٹریز کے طور پر شامل کیا جانا چاہیے۔ files CMakeLists.txt کا مواد درج ذیل ہے:
1. #v3.5 کو موجودہ پروجیکٹ کے ذریعہ تعاون یافتہ قدیم ترین CMake ورژن کے طور پر متعین کریں 2. تالیف جاری رہنے سے پہلے #v3.5 سے کم ورژن کو اپ گریڈ کرنا ضروری ہے 3. cmake_minimum_required(VERSION 3.5) 4. #ESP کی ڈیفالٹ CMake کنفیگریشن شامل کریں -IDF تالیف کا نظام

باب 4۔ ترقی کے ماحول کو ترتیب دینا 55

5. شامل کریں
ان میں سے، روٹ ڈائرکٹری میں CMakeLists.txt میں بنیادی طور پر $ENV{IDF_ PATH}/tools/cmake/project.cmake شامل ہے، جو کہ مرکزی CMake کنفیگریشن ہے۔ file ESP-IDF کے ذریعہ فراہم کردہ۔ یہ استعمال کیا جاتا ہے con

دستاویزات / وسائل

Espressif Systems ESP32-C3 وائرلیس ایڈونچر [پی ڈی ایف] یوزر گائیڈ
ESP32-C3 وائرلیس ایڈونچر، ESP32-C3، وائرلیس ایڈونچر، ایڈونچر

حوالہ جات

ایک تبصرہ چھوڑیں۔

آپ کا ای میل پتہ شائع نہیں کیا جائے گا۔ مطلوبہ فیلڈز نشان زد ہیں۔ *