ESP32 بنیادی سٹارٹر
کٹ
پیکنگ لسٹ
ESP32 کا تعارف
ESP32 میں نئے ہیں؟ یہاں سے شروع کریں! ESP32 ایک چپ (SoC) مائکروکنٹرولرز پر کم لاگت اور کم پاور سسٹم کی ایک سیریز ہے جسے Espressif نے تیار کیا ہے جس میں Wi-Fi اور بلوٹوتھ وائرلیس صلاحیتیں اور ڈوئل کور پروسیسر شامل ہیں۔ اگر آپ ESP8266 سے واقف ہیں تو، ESP32 اس کا جانشین ہے، بہت ساری نئی خصوصیات سے بھرا ہوا ہے۔ESP32 تفصیلات
اگر آپ کچھ زیادہ تکنیکی اور مخصوص حاصل کرنا چاہتے ہیں، تو آپ ESP32 کی درج ذیل تفصیلی خصوصیات پر ایک نظر ڈال سکتے ہیں (ماخذ: http://esp32.net/) — مزید تفصیلات کے لیے، ڈیٹا شیٹ چیک کریں):
- وائرلیس کنیکٹیویٹی وائی فائی: HT150.0 کے ساتھ 40 Mbps ڈیٹا ریٹ
- بلوٹوتھ: BLE (بلوٹوتھ لو انرجی) اور بلوٹوتھ کلاسک
- پروسیسر: Tensilica Xtensa Dual-core 32-bit LX6 مائکرو پروسیسر، 160 یا 240 MHz پر چل رہا ہے
- یادداشت:
- ROM: 448 KB (بوٹنگ اور بنیادی افعال کے لیے)
- SRAM: 520 KB (ڈیٹا اور ہدایات کے لیے)
- RTC fas SRAM: 8 KB (ڈیپ سلیپ موڈ سے RTC بوٹ کے دوران ڈیٹا اسٹوریج اور مین CPU کے لیے)
- RTC سست SRAM: 8KB (ڈیپ سلیپ موڈ کے دوران شریک پروسیسر تک رسائی کے لیے) eFuse: 1 Kbit (جس میں سے 256 بٹس سسٹم کے لیے استعمال کیے جاتے ہیں (MAC ایڈریس اور چپ کنفیگریشن) اور بقیہ 768 بٹس کسٹمر ایپلی کیشنز کے لیے مخصوص ہیں، بشمول فلیش-انکرپشن اور چپ ID)
ایمبیڈڈ فلیش: فلیش اندرونی طور پر IO16, IO17, SD_CMD, SD_CLK, SD_DATA_0 اور SD_DATA_1 کے ذریعے ESP32-D2WD اور ESP32-PICO-D4 پر منسلک ہے۔
- 0 MiB (ESP32-D0WDQ6, ESP32-D0WD، اور ESP32-S0WD چپس)
- 2 MiB (ESP32-D2WD چپ)
- 4 MiB (ESP32-PICO-D4 SiP ماڈیول)
کم طاقت: اس بات کو یقینی بناتا ہے کہ آپ اب بھی ADC تبادلوں کو استعمال کر سکتے ہیں، سابق کے لیےample, گہری نیند کے دوران.
پیریفرل ان پٹ/آؤٹ پٹ:
- DMA کے ساتھ پردیی انٹرفیس جس میں capacitive touch شامل ہے۔
- ADCs (اینالاگ سے ڈیجیٹل کنورٹر)
- DACs (ڈیجیٹل سے اینالاگ کنورٹر)
- I²C (انٹر انٹیگریٹڈ سرکٹ)
- UART (یونیورسل اسینکرونس وصول کنندہ/ٹرانسمیٹر)
- SPI (سیریل پیریفرل انٹرفیس)
- I²S (انٹیگریٹڈ انٹرچپ ساؤنڈ)
- RMII (کم میڈیا آزاد انٹرفیس)
- PWM (پلس چوڑائی ماڈیولیشن)
سیکورٹی: AES اور SSL/TLS کے لیے ہارڈویئر ایکسلریٹر
ESP32 ترقیاتی بورڈز
ESP32 سے مراد ننگی ESP32 چپ ہے۔ تاہم، "ESP32" اصطلاح ESP32 ترقیاتی بورڈز کے لیے بھی استعمال ہوتی ہے۔ ESP32 ننگی چپس کا استعمال آسان یا عملی نہیں ہے، خاص طور پر جب سیکھنے، جانچنے، اور پروٹو ٹائپنگ کرتے وقت۔ زیادہ تر وقت، آپ ESP32 ترقیاتی بورڈ استعمال کرنا چاہیں گے۔
ہم حوالہ کے طور پر ESP32 DEVKIT V1 بورڈ استعمال کریں گے۔ نیچے دی گئی تصویر ESP32 DEVKIT V1 بورڈ، 30 GPIO پنوں والا ورژن دکھاتی ہے۔تفصیلات - ESP32 DEVKIT V1
مندرجہ ذیل جدول ESP32 DEVKIT V1 DOIT بورڈ کی خصوصیات اور وضاحتوں کا خلاصہ دکھاتا ہے:
کور کی تعداد | 2 (ڈبل کور) |
وائی فائی | 2.4 GHz 150 Mbits/s تک |
بلوٹوتھ | BLE (بلوٹوتھ لو انرجی) اور میراثی بلوٹوتھ |
فن تعمیر | 32 بٹس |
گھڑی کی فریکوئنسی | 240 میگاہرٹز تک |
رام | 512 KB |
پن | 30 (ماڈل پر منحصر ہے) |
پیری فیرلز | کیپسیٹو ٹچ، اے ڈی سی (اینالاگ سے ڈیجیٹل کنورٹر)، ڈی اے سی (ڈیجیٹل سے اینالاگ کنورٹر)، 12 سی (انٹر انٹیگریٹڈ سرکٹ)، UART (یونیورسل غیر مطابقت پذیر ریسیور/ٹرانسمیٹر)، CAN 2.0 (کنٹرولر ایریا نیٹ ورک)، SPI (سیریل پیریفرل انٹرفیس) ، 12S (انٹیگریٹڈ انٹر-آئی سی آواز)، RMII (کم میڈیا-انڈیپنڈنٹ انٹرفیس)، PWM (پلس چوڑائی ماڈیولیشن)، اور مزید۔ |
بلٹ ان بٹن | ری سیٹ اور بوٹ بٹن |
بلٹ ان ایل ای ڈی | بلٹ ان بلیو ایل ای ڈی GPIO2 سے منسلک ہے۔ بلٹ ان ریڈ ایل ای ڈی جو دکھاتا ہے کہ بورڈ چل رہا ہے۔ |
USB سے UART پل |
CP2102 |
یہ ایک مائیکرو یو ایس بی انٹرفیس کے ساتھ آتا ہے جسے آپ کوڈ اپ لوڈ کرنے یا پاور لگانے کے لیے بورڈ کو اپنے کمپیوٹر سے جوڑنے کے لیے استعمال کر سکتے ہیں۔
یہ سیریل انٹرفیس کا استعمال کرتے ہوئے COM پورٹ کے ذریعے آپ کے کمپیوٹر سے بات چیت کرنے کے لیے CP2102 چپ (USB سے UART) کا استعمال کرتا ہے۔ ایک اور مقبول چپ CH340 ہے۔ چیک کریں کہ آپ کے بورڈ پر USB سے UART چپ کنورٹر کیا ہے کیونکہ آپ کو مطلوبہ ڈرائیورز انسٹال کرنے ہوں گے تاکہ آپ کا کمپیوٹر بورڈ کے ساتھ بات چیت کر سکے (اس بارے میں مزید معلومات بعد میں اس گائیڈ میں)۔
یہ بورڈ بورڈ کو دوبارہ شروع کرنے کے لیے RESET بٹن (EN کا لیبل لگایا جا سکتا ہے) اور بورڈ کو فلیشنگ موڈ میں رکھنے کے لیے ایک BOOT بٹن (کوڈ وصول کرنے کے لیے دستیاب) کے ساتھ بھی آتا ہے۔ نوٹ کریں کہ ہو سکتا ہے کچھ بورڈز میں BOOT بٹن نہ ہو۔
یہ بلٹ ان بلیو ایل ای ڈی کے ساتھ بھی آتا ہے جو اندرونی طور پر GPIO 2 سے منسلک ہوتا ہے۔ یہ LED کسی قسم کی بصری جسمانی پیداوار دینے کے لیے ڈیبگنگ کے لیے مفید ہے۔ یہاں ایک سرخ ایل ای ڈی بھی ہے جو آپ کے بورڈ کو بجلی فراہم کرنے پر روشن ہوتی ہے۔ESP32 پن آؤٹ
ESP32 پیری فیرلز میں شامل ہیں:
- 18 اینالاگ سے ڈیجیٹل کنورٹر (ADC) چینلز
- 3 SPI انٹرفیس
- 3 UART انٹرفیس
- 2 I2C انٹرفیس
- 16 PWM آؤٹ پٹ چینلز
- 2 ڈیجیٹل سے اینالاگ کنورٹرز (DAC)
- 2 I2S انٹرفیس
- 10 Capacitive sensing GPIOs
ADC (اینالاگ سے ڈیجیٹل کنورٹر) اور DAC (ڈیجیٹل سے ینالاگ کنورٹر) کی خصوصیات مخصوص جامد پنوں کو تفویض کی گئی ہیں۔ تاہم، آپ فیصلہ کر سکتے ہیں کہ کون سے پن UART، I2C، SPI، PWM وغیرہ ہیں – آپ کو صرف انہیں کوڈ میں تفویض کرنے کی ضرورت ہے۔ یہ ESP32 چپ کے ملٹی پلیکسنگ فیچر کی وجہ سے ممکن ہے۔
اگرچہ آپ سافٹ ویئر پر پنوں کی خصوصیات کی وضاحت کر سکتے ہیں، تاہم مندرجہ ذیل تصویر میں دکھایا گیا ہے کہ بطور ڈیفالٹ پن تفویض کیے گئے ہیںمزید برآں، مخصوص خصوصیات کے ساتھ پن موجود ہیں جو انہیں کسی خاص پروجیکٹ کے لیے موزوں بناتے ہیں یا نہیں۔ مندرجہ ذیل جدول دکھاتا ہے کہ کن پنوں کو ان پٹ، آؤٹ پٹ کے طور پر استعمال کرنا بہتر ہے اور کن کن سے آپ کو محتاط رہنے کی ضرورت ہے۔
سبز رنگ میں نمایاں کردہ پن استعمال کرنے میں ٹھیک ہیں۔ پیلے رنگ میں نمایاں کیے گئے استعمال کرنے کے لیے ٹھیک ہیں، لیکن آپ کو توجہ دینے کی ضرورت ہے کیونکہ ان کا بنیادی طور پر بوٹ کے وقت غیر متوقع رویہ ہو سکتا ہے۔ سرخ رنگ میں نمایاں کردہ پنوں کو ان پٹ یا آؤٹ پٹ کے طور پر استعمال کرنے کی سفارش نہیں کی جاتی ہے۔
جی پی آئی او | ان پٹ | آؤٹ پٹ | نوٹس |
0 | کھینچ لیا | OK | آؤٹ پٹ PWM سگنل بوٹ پر، فلیشنگ موڈ میں داخل ہونے کے لیے کم ہونا ضروری ہے۔ |
1 | TX پن | OK | بوٹ پر ڈیبگ آؤٹ پٹ |
2 | OK | OK | آن بورڈ ایل ای ڈی سے منسلک ہے، فلیشنگ موڈ میں داخل ہونے کے لیے اسے تیرتا یا کم چھوڑنا چاہیے۔ |
3 | OK | RX پن | بوٹ پر اعلی |
4 | OK | OK | |
5 | OK | OK | بوٹ، اسٹریپنگ پن پر PWM سگنل آؤٹ پٹ کرتا ہے۔ |
12 | OK | OK | اگر اونچی کھینچی جائے تو بوٹ ناکام ہوجاتا ہے |
13 | OK | OK | |
14 | OK | OK | بوٹ پر PWM سگنل آؤٹ پٹ کرتا ہے۔ |
15 | OK | OK | بوٹ، اسٹریپنگ پن پر PWM سگنل آؤٹ پٹ کرتا ہے۔ |
16 | OK | OK | |
17 | OK | OK | |
18 | OK | OK | |
19 | OK | OK | |
21 | OK | OK | |
22 | OK | OK | |
23 | OK | OK | |
25 | OK | OK | |
26 | OK | OK | |
27 | OK | OK | |
32 | OK | OK | |
33 | OK | OK | |
34 | OK | صرف ان پٹ | |
35 | OK | صرف ان پٹ | |
36 | OK | صرف ان پٹ | |
39 | OK | صرف ان پٹ |
ESP32 GPIOs اور اس کے افعال کے مزید تفصیل اور گہرائی سے تجزیہ کے لیے پڑھنا جاری رکھیں۔
ان پٹ صرف پن
GPIOs 34 سے 39 GPIs ہیں - صرف ان پٹ پن۔ ان پنوں میں اندرونی پل اپ یا پل ڈاون ریزسٹر نہیں ہوتے ہیں۔ انہیں آؤٹ پٹ کے طور پر استعمال نہیں کیا جا سکتا، اس لیے ان پنوں کو صرف ان پٹ کے طور پر استعمال کریں:
- جی پی آئی او 34
- جی پی آئی او 35
- جی پی آئی او 36
- جی پی آئی او 39
SPI فلیش ESP-WROOM-32 پر مربوط ہے۔
GPIO 6 سے GPIO 11 کچھ ESP32 ترقیاتی بورڈز میں سامنے آئے ہیں۔ تاہم، یہ پن ESP-WROOM-32 چپ پر مربوط SPI فلیش سے جڑے ہوئے ہیں اور دوسرے استعمال کے لیے تجویز نہیں کیے گئے ہیں۔ لہذا، اپنے منصوبوں میں ان پنوں کا استعمال نہ کریں:
- GPIO 6 (SCK/CLK)
- GPIO 7 (SDO/SD0)
- GPIO 8 (SDI/SD1)
- GPIO 9 (SHD/SD2)
- GPIO 10 (SWP/SD3)
- GPIO 11 (CSC/CMD)
Capacitive touch GPIOs
ESP32 میں 10 اندرونی capacitive ٹچ سینسر ہیں۔ یہ کسی بھی چیز میں تغیرات کو محسوس کر سکتے ہیں جس میں برقی چارج ہوتا ہے، جیسے انسانی جلد۔ لہذا وہ انگلی سے GPIOs کو چھونے پر حوصلہ افزائی کی مختلف حالتوں کا پتہ لگاسکتے ہیں۔ ان پنوں کو آسانی سے capacitive پیڈ میں ضم کیا جا سکتا ہے اور مکینیکل بٹنوں کو تبدیل کیا جا سکتا ہے۔ ESP32 کو گہری نیند سے جگانے کے لیے Capacitive touch پنوں کا استعمال بھی کیا جا سکتا ہے۔ وہ اندرونی ٹچ سینسر ان GPIO سے جڑے ہوئے ہیں:
- T0 (GPIO 4)
- T1 (GPIO 0)
- T2 (GPIO 2)
- T3 (GPIO 15)
- T4 (GPIO 13)
- T5 (GPIO 12)
- T6 (GPIO 14)
- T7 (GPIO 27)
- T8 (GPIO 33)
- T9 (GPIO 32)
ڈیجیٹل کنورٹر کے مطابق (ADC)
ESP32 میں 18 x 12 بٹس ADC ان پٹ چینلز ہیں (جبکہ ESP8266 میں صرف 1x 10 بٹس ADC ہے)۔ یہ وہ GPIO ہیں جنہیں ADC اور متعلقہ چینلز کے طور پر استعمال کیا جا سکتا ہے:
- ADC1_CH0 (GPIO 36)
- ADC1_CH1 (GPIO 37)
- ADC1_CH2 (GPIO 38)
- ADC1_CH3 (GPIO 39)
- ADC1_CH4 (GPIO 32)
- ADC1_CH5 (GPIO 33)
- ADC1_CH6 (GPIO 34)
- ADC1_CH7 (GPIO 35)
- ADC2_CH0 (GPIO 4)
- ADC2_CH1 (GPIO 0)
- ADC2_CH2 (GPIO 2)
- ADC2_CH3 (GPIO 15)
- ADC2_CH4 (GPIO 13)
- ADC2_CH5 (GPIO 12)
- ADC2_CH6 (GPIO 14)
- ADC2_CH7 (GPIO 27)
- ADC2_CH8 (GPIO 25)
- ADC2_CH9 (GPIO 26)
نوٹ: جب Wi-Fi استعمال ہوتا ہے تو ADC2 پن استعمال نہیں کیے جا سکتے۔ لہذا، اگر آپ Wi-Fi استعمال کر رہے ہیں اور آپ کو ADC2 GPIO سے قیمت حاصل کرنے میں پریشانی ہو رہی ہے، تو آپ اس کے بجائے ADC1 GPIO استعمال کرنے پر غور کر سکتے ہیں۔ اس سے آپ کا مسئلہ حل ہونا چاہیے۔
ADC ان پٹ چینلز میں 12 بٹ ریزولوشن ہوتا ہے۔ اس کا مطلب ہے کہ آپ 0 سے 4095 تک ینالاگ ریڈنگ حاصل کر سکتے ہیں، جس میں 0 0V اور 4095 سے 3.3V کے مساوی ہے۔ آپ اپنے چینلز کی ریزولوشن کوڈ اور ADC رینج پر بھی سیٹ کر سکتے ہیں۔
ESP32 ADC پنوں میں لکیری سلوک نہیں ہوتا ہے۔ آپ شاید 0 اور 0.1V، یا 3.2 اور 3.3V کے درمیان فرق نہیں کر پائیں گے۔ ADC پنوں کا استعمال کرتے وقت آپ کو اسے ذہن میں رکھنے کی ضرورت ہے۔ آپ کو مندرجہ ذیل اعداد و شمار میں دکھائے گئے رویے سے ملتا جلتا سلوک ملے گا۔ڈیجیٹل سے ینالاگ کنورٹر (DAC)
ڈیجیٹل سگنلز کو اینالاگ والیوم میں تبدیل کرنے کے لیے ESP2 پر 8 x 32 بٹس DAC چینلز ہیں۔tagای سگنل آؤٹ پٹس۔ یہ DAC چینلز ہیں:
- DAC1 (GPIO25)
- DAC2 (GPIO26)
RTC GPIOs
ESP32 پر RTC GPIO سپورٹ موجود ہے۔ جب ESP32 گہری نیند میں ہو تو RTC کم طاقت والے سب سسٹم کی طرف بھیجے گئے GPIOs کا استعمال کیا جا سکتا ہے۔ ان RTC GPIOs کو ESP32 کو گہری نیند سے جگانے کے لیے استعمال کیا جا سکتا ہے جب الٹرا لو
پاور (ULP) کو پروسیسر چل رہا ہے۔ مندرجہ ذیل GPIOs کو ایک بیرونی ویک اپ سورس کے طور پر استعمال کیا جا سکتا ہے۔
- RTC_GPIO0 (GPIO36)
- RTC_GPIO3 (GPIO39)
- RTC_GPIO4 (GPIO34)
- RTC_GPIO5 (GPIO35)
- RTC_GPIO6 (GPIO25)
- RTC_GPIO7 (GPIO26)
- RTC_GPIO8 (GPIO33)
- RTC_GPIO9 (GPIO32)
- RTC_GPIO10 (GPIO4)
- RTC_GPIO11 (GPIO0)
- RTC_GPIO12 (GPIO2)
- RTC_GPIO13 (GPIO15)
- RTC_GPIO14 (GPIO13)
- RTC_GPIO15 (GPIO12)
- RTC_GPIO16 (GPIO14)
- RTC_GPIO17 (GPIO27)
پی ڈبلیو ایم
ESP32 LED PWM کنٹرولر میں 16 آزاد چینلز ہیں جنہیں مختلف خصوصیات کے ساتھ PWM سگنلز بنانے کے لیے ترتیب دیا جا سکتا ہے۔ تمام پن جو آؤٹ پٹ کے طور پر کام کر سکتے ہیں PWM پنوں کے طور پر استعمال کیے جا سکتے ہیں (GPIOs 34 سے 39 PWM پیدا نہیں کر سکتے ہیں)۔
PWM سگنل سیٹ کرنے کے لیے، آپ کو کوڈ میں ان پیرامیٹرز کی وضاحت کرنے کی ضرورت ہے:
- سگنل کی فریکوئنسی؛
- ڈیوٹی سائیکل؛
- پی ڈبلیو ایم چینل؛
- GPIO جہاں آپ سگنل آؤٹ پٹ کرنا چاہتے ہیں۔
I2C
ESP32 میں دو I2C چینلز ہیں اور کسی بھی پن کو SDA یا SCL کے طور پر سیٹ کیا جا سکتا ہے۔ ESP32 کو Arduino IDE کے ساتھ استعمال کرتے وقت، پہلے سے طے شدہ I2C پن یہ ہیں:
- GPIO 21 (SDA)
- GPIO 22 (SCL)
اگر آپ وائر لائبریری کا استعمال کرتے وقت دیگر پن استعمال کرنا چاہتے ہیں، تو آپ کو صرف کال کرنے کی ضرورت ہے:
Wire.begin(SDA، SCL)؛
ایس پی آئی
پہلے سے طے شدہ طور پر، SPI کے لیے پن میپنگ یہ ہے:
ایس پی آئی | موسی | ایم آئی ایس او | سی ایل کے | CS |
وی ایس پی آئی | جی پی آئی او 23 | جی پی آئی او 19 | جی پی آئی او 18 | جی پی آئی او 5 |
HSPI | جی پی آئی او 13 | جی پی آئی او 12 | جی پی آئی او 14 | جی پی آئی او 15 |
رکاوٹیں
تمام GPIOs کو مداخلت کے طور پر ترتیب دیا جا سکتا ہے۔
پٹی پن
ESP32 چپ میں درج ذیل پٹے لگانے والے پن ہیں:
- GPIO 0 (بوٹ موڈ میں داخل ہونے کے لیے کم ہونا چاہیے)
- GPIO 2 (بوٹ کے دوران تیرتا یا کم ہونا چاہیے)
- جی پی آئی او 4
- GPIO 5 (بوٹ کے دوران زیادہ ہونا چاہیے)
- GPIO 12 (بوٹ کے دوران کم ہونا چاہیے)
- GPIO 15 (بوٹ کے دوران زیادہ ہونا چاہیے)
یہ ESP32 کو بوٹ لوڈر یا فلیشنگ موڈ میں ڈالنے کے لیے استعمال ہوتے ہیں۔ بلٹ ان USB/Serial کے ساتھ زیادہ تر ترقیاتی بورڈز پر، آپ کو ان پنوں کی حالت کے بارے میں فکر کرنے کی ضرورت نہیں ہے۔ بورڈ چمکنے یا بوٹ موڈ کے لیے پنوں کو صحیح حالت میں رکھتا ہے۔ ESP32 بوٹ موڈ سلیکشن کے بارے میں مزید معلومات یہاں مل سکتی ہیں۔
تاہم، اگر آپ کے پاس ان پنوں سے منسلک آلات ہیں، تو آپ کو نیا کوڈ اپ لوڈ کرنے، نئے فرم ویئر کے ساتھ ESP32 کو چمکانے، یا بورڈ کو دوبارہ ترتیب دینے میں پریشانی ہو سکتی ہے۔ اگر آپ کے پاس کچھ پیری فیرلز اسٹریپنگ پنوں سے جڑے ہوئے ہیں اور آپ کو کوڈ اپ لوڈ کرنے یا ESP32 کو چمکانے میں پریشانی ہو رہی ہے، تو اس کی وجہ یہ ہو سکتی ہے کہ وہ پیری فیرلز ESP32 کو صحیح موڈ میں داخل ہونے سے روک رہے ہیں۔ صحیح سمت میں آپ کی رہنمائی کے لیے بوٹ موڈ سلیکشن دستاویزات کو پڑھیں۔ ری سیٹ کرنے، چمکنے، یا بوٹ کرنے کے بعد، وہ پن توقع کے مطابق کام کرتے ہیں۔
بوٹ پر ہائی پن
کچھ GPIOs بوٹ یا ری سیٹ پر اپنی حالت کو ہائی یا آؤٹ پٹ PWM سگنلز میں تبدیل کرتے ہیں۔
اس کا مطلب ہے کہ اگر آپ کے پاس ان GPIOs سے منسلک آؤٹ پٹ ہیں تو آپ کو غیر متوقع نتائج حاصل ہو سکتے ہیں جب ESP32 ری سیٹ ہو یا بوٹ ہو جائے۔
- جی پی آئی او 1
- جی پی آئی او 3
- جی پی آئی او 5
- GPIO 6 سے GPIO 11 (ESP32 مربوط SPI فلیش میموری سے منسلک – استعمال کرنے کی سفارش نہیں کی گئی)۔
- جی پی آئی او 14
- جی پی آئی او 15
فعال کریں (EN)
Enable (EN) 3.3V ریگولیٹر کا قابل پن ہے۔ اسے کھینچ لیا گیا ہے، لہذا 3.3V ریگولیٹر کو غیر فعال کرنے کے لیے زمین سے جڑیں۔ اس کا مطلب یہ ہے کہ آپ اپنے ESP32 کو دوبارہ شروع کرنے کے لیے پش بٹن سے منسلک اس پن کو استعمال کر سکتے ہیں، سابق کے لیےample
GPIO کرنٹ کھینچا گیا۔
ESP40 ڈیٹا شیٹ میں "تجویز کردہ آپریٹنگ کنڈیشنز" سیکشن کے مطابق فی GPIO کے لیے تیار کردہ مطلق زیادہ سے زیادہ کرنٹ 32mA ہے۔
ESP32 بلٹ ان ہال ایفیکٹ سینسر
ESP32 میں ایک بلٹ ان ہال ایفیکٹ سینسر بھی ہے جو اس کے گردونواح میں مقناطیسی میدان میں ہونے والی تبدیلیوں کا پتہ لگاتا ہے۔
ESP32 Arduino IDE
Arduino IDE کے لیے ایک ایڈ آن ہے جو آپ کو Arduino IDE اور اس کی پروگرامنگ زبان کا استعمال کرتے ہوئے ESP32 کو پروگرام کرنے کی اجازت دیتا ہے۔ اس ٹیوٹوریل میں ہم آپ کو دکھائیں گے کہ ESP32 بورڈ کو Arduino IDE میں کیسے انسٹال کرنا ہے چاہے آپ ونڈوز، میک OS X یا لینکس استعمال کر رہے ہوں۔
شرائط: Arduino IDE انسٹال ہے۔
اس انسٹالیشن کا طریقہ کار شروع کرنے سے پہلے، آپ کو اپنے کمپیوٹر پر Arduino IDE انسٹال کرنا ہوگا۔ Arduino IDE کے دو ورژن ہیں جنہیں آپ انسٹال کر سکتے ہیں: ورژن 1 اور ورژن 2۔
آپ درج ذیل لنک پر کلک کر کے Arduino IDE کو ڈاؤن لوڈ اور انسٹال کر سکتے ہیں۔ arduino.cc/en/Main/Software
ہم کس Arduino IDE ورژن کی سفارش کرتے ہیں؟ اس وقت، کچھ ہیں plugins ESP32 کے لیے (جیسے SPIFFS Fileسسٹم اپلوڈر پلگ ان) جو کہ ابھی تک Arduino 2 پر تعاون یافتہ نہیں ہے۔ لہذا، اگر آپ مستقبل میں SPIFFS پلگ ان استعمال کرنے کا ارادہ رکھتے ہیں، تو ہم لیگیسی ورژن 1.8.X کو انسٹال کرنے کی تجویز کرتے ہیں۔ اسے تلاش کرنے کے لیے آپ کو صرف Arduino سافٹ ویئر کے صفحے پر نیچے سکرول کرنے کی ضرورت ہے۔
Arduino IDE میں ESP32 ایڈ آن انسٹال کرنا
اپنے Arduino IDE میں ESP32 بورڈ انسٹال کرنے کے لیے، ان اگلی ہدایات پر عمل کریں:
- اپنے Arduino IDE میں، پر جائیں۔ File> ترجیحات
- درج ذیل کو "اضافی بورڈ مینیجر" میں درج کریں۔ URLs" فیلڈ:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
پھر، "OK" بٹن پر کلک کریں:نوٹ: اگر آپ کے پاس پہلے سے ہی ESP8266 بورڈز ہیں۔ URL، آپ کو الگ کر سکتے ہیں URLs کوما کے ساتھ مندرجہ ذیل ہے:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
بورڈز مینیجر کو کھولیں۔ ٹولز > بورڈ > بورڈز مینیجر پر جائیں…تلاش کریں۔ ESP32 and press install button for the “ESP32 by Espressif Systems“:
بس۔ اسے چند سیکنڈ کے بعد انسٹال کرنا چاہیے۔
ٹیسٹ کوڈ اپ لوڈ کریں۔
ESP32 بورڈ کو اپنے کمپیوٹر سے لگائیں۔ آپ کے Arduino IDE کھلے کے ساتھ، ان اقدامات پر عمل کریں:
- ٹولز > بورڈ مینو میں اپنا بورڈ منتخب کریں (میرے معاملے میں یہ ESP32 DEV ماڈیول ہے)
- پورٹ کو منتخب کریں (اگر آپ کو اپنے Arduino IDE میں COM پورٹ نظر نہیں آتا ہے، تو آپ کو CP210x USB کو UART Bridge VCP ڈرائیورز پر انسٹال کرنے کی ضرورت ہے):
- مندرجہ ذیل سابق کو کھولیں۔ampکے تحت File > سابقamples > وائی فائی
(ESP32) > وائی فائی اسکین - آپ کے Arduino IDE میں ایک نیا خاکہ کھلتا ہے:
- Arduino IDE میں اپ لوڈ بٹن کو دبائیں۔ کوڈ کے مرتب ہونے اور آپ کے بورڈ پر اپ لوڈ ہونے تک چند سیکنڈ انتظار کریں۔
- اگر سب کچھ توقع کے مطابق ہوا، تو آپ کو "اپ لوڈنگ ہو گیا" نظر آنا چاہیے۔ پیغام
- Arduino IDE سیریل مانیٹر کو 115200 کی بوڈ ریٹ پر کھولیں:
- ESP32 آن بورڈ فعال بٹن کو دبائیں اور آپ کو اپنے ESP32 کے قریب دستیاب نیٹ ورکس کو نظر آنا چاہیے:
خرابی کا سراغ لگانا
اگر آپ اپنے ESP32 پر ایک نیا خاکہ اپ لوڈ کرنے کی کوشش کرتے ہیں اور آپ کو یہ ایرر میسج ملتا ہے "ایک مہلک خرابی پیش آ گئی: ESP32 سے جڑنے میں ناکام: وقت ختم ہو گیا... کنیکٹ ہو رہا ہے..."۔ اس کا مطلب ہے کہ آپ کا ESP32 فلیشنگ/اپ لوڈنگ موڈ میں نہیں ہے۔
صحیح بورڈ کا نام اور COM منتخب کرنے کے بعد، ان اقدامات پر عمل کریں:
اپنے ESP32 بورڈ میں "BOOT" بٹن کو دبا کر رکھیں
- اپنا خاکہ اپ لوڈ کرنے کے لیے Arduino IDE میں "اپ لوڈ" بٹن دبائیں:
- آپ کو "کنیکٹنگ…" دیکھنے کے بعد اپنے Arduino IDE میں پیغام، "BOOT" بٹن سے انگلی چھوڑیں:
- اس کے بعد، آپ کو "اپ لوڈنگ مکمل" پیغام دیکھنا چاہیے۔
بس۔ آپ کے ESP32 میں نیا خاکہ چلنا چاہیے۔ ESP32 کو دوبارہ شروع کرنے اور اپ لوڈ کردہ نیا خاکہ چلانے کے لیے "فعال کریں" بٹن کو دبائیں۔
جب بھی آپ نیا خاکہ اپ لوڈ کرنا چاہیں گے تو آپ کو اس بٹن کی ترتیب کو دہرانا پڑے گا۔
پروجیکٹ 1 ESP32 ان پٹ آؤٹ پٹس
شروع کرنے کی اس گائیڈ میں آپ یہ سیکھیں گے کہ ڈیجیٹل ان پٹس کو کیسے پڑھنا ہے جیسے بٹن سوئچ اور ڈیجیٹل آؤٹ پٹس کو کنٹرول کرنا جیسے ESP32 کا استعمال کرتے ہوئے Arduino IDE کے ساتھ۔
شرطیں
ہم ESP32 کو Arduino IDE کا استعمال کرتے ہوئے پروگرام کریں گے۔ لہذا، یقینی بنائیں کہ آگے بڑھنے سے پہلے آپ کے پاس ESP32 بورڈز ایڈ آن انسٹال ہیں:
- Arduino IDE میں ESP32 ایڈ آن انسٹال کرنا
ESP32 ڈیجیٹل آؤٹ پٹس کو کنٹرول کریں۔
سب سے پہلے، آپ کو GPIO سیٹ کرنے کی ضرورت ہے جسے آپ آؤٹ پٹ کے طور پر کنٹرول کرنا چاہتے ہیں۔ pinMode() فنکشن کو مندرجہ ذیل طور پر استعمال کریں:
پن موڈ (GPIO، آؤٹ پٹ)؛
ڈیجیٹل آؤٹ پٹ کو کنٹرول کرنے کے لیے آپ کو صرف digitalWrite() فنکشن استعمال کرنے کی ضرورت ہے، جو بطور دلیل قبول کرتا ہے، GPIO (int نمبر) جس کا آپ حوالہ دے رہے ہیں، اور ریاست، یا تو HIGH یا LOW۔
ڈیجیٹل رائٹ (GPIO، STATE)؛
تمام GPIOs کو آؤٹ پٹ کے طور پر استعمال کیا جا سکتا ہے سوائے GPIOs 6 سے 11 (انٹیگریٹڈ SPI فلیش سے منسلک) اور GPIOs 34، 35، 36 اور 39 (ان پٹ صرف GPIOs)؛
ESP32 GPIO کے بارے میں مزید جانیں: ESP32 GPIO حوالہ گائیڈ
ESP32 ڈیجیٹل ان پٹ پڑھیں
سب سے پہلے، GPIO کو سیٹ کریں جسے آپ INPUT کے طور پر پڑھنا چاہتے ہیں، pinMode() فنکشن کو مندرجہ ذیل استعمال کرتے ہوئے:
پن موڈ (GPIO، ان پٹ)؛
ڈیجیٹل ان پٹ کو پڑھنے کے لیے، بٹن کی طرح، آپ digitalRead() فنکشن استعمال کرتے ہیں، جو بطور دلیل قبول کرتا ہے، GPIO (int نمبر) جس کا آپ حوالہ دے رہے ہیں۔
ڈیجیٹل ریڈ (GPIO)؛
تمام ESP32 GPIOs کو ان پٹ کے طور پر استعمال کیا جا سکتا ہے، سوائے GPIOs 6 سے 11 (انٹیگریٹڈ SPI فلیش سے منسلک)۔
ESP32 GPIO کے بارے میں مزید جانیں: ESP32 GPIO حوالہ گائیڈ
پروجیکٹ سابقample
آپ کو یہ بتانے کے لیے کہ ڈیجیٹل ان پٹس اور ڈیجیٹل آؤٹ پٹس کو کیسے استعمال کیا جائے، ہم ایک سادہ پروجیکٹ بنائیں گے۔ampایک پش بٹن اور ایل ای ڈی کے ساتھ۔ ہم پش بٹن کی حالت پڑھیں گے اور اس کے مطابق ایل ای ڈی کو روشن کریں گے جیسا کہ مندرجہ ذیل تصویر میں دکھایا گیا ہے۔
حصوں کی ضرورت ہے
یہاں حصوں کی ایک فہرست ہے جو آپ کو سرکٹ بنانے کی ضرورت ہے:
- ESP32 DEVKIT V1
- 5 ملی میٹر ایل ای ڈی
- 220 اوہم ریزسٹر
- دبانے والا بٹن
- 10k اوہم ریزسٹر
- بریڈ بورڈ
- جمپر تاریں۔
اسکیمیٹک ڈایاگرام
آگے بڑھنے سے پہلے، آپ کو ایل ای ڈی اور پش بٹن کے ساتھ ایک سرکٹ کو جمع کرنے کی ضرورت ہے۔
ہم LED کو GPIO 5 سے اور پش بٹن کو GPIO سے جوڑیں گے۔ 4.کوڈ
arduino IDE میں Project_1_ESP32_Inputs_Outputs.ino کوڈ کھولیںکوڈ کیسے کام کرتا ہے۔
درج ذیل دو لائنوں میں، آپ پنوں کو تفویض کرنے کے لیے متغیرات بناتے ہیں:
بٹن GPIO 4 سے منسلک ہے اور LED GPIO 5 سے منسلک ہے۔ ESP32 کے ساتھ Arduino IDE استعمال کرتے وقت، 4 GPIO 4 سے اور 5 GPIO 5 سے مساوی ہے۔
اگلا، آپ بٹن کی حالت کو رکھنے کے لیے ایک متغیر بناتے ہیں۔ پہلے سے طے شدہ طور پر، یہ 0 ہے (دبایا نہیں گیا)۔
int buttonState = 0;
سیٹ اپ () میں، آپ بٹن کو بطور ان پٹ اور ایل ای ڈی کو آؤٹ پٹ کے طور پر شروع کرتے ہیں۔
اس کے لیے، آپ pinMode() فنکشن استعمال کرتے ہیں جو اس پن کو قبول کرتا ہے جس کا آپ حوالہ دے رہے ہیں، اور موڈ: INPUT یا OUTPUT۔
پن موڈ (بٹن پن، ان پٹ)؛
پن موڈ (لیڈ پن، آؤٹ پٹ)؛
لوپ () میں وہ جگہ ہے جہاں آپ بٹن کی حالت پڑھتے ہیں اور اسی کے مطابق ایل ای ڈی سیٹ کرتے ہیں۔
اگلی لائن میں، آپ بٹن کی حالت پڑھیں اور اسے بٹن اسٹیٹ متغیر میں محفوظ کریں۔
جیسا کہ ہم پہلے دیکھ چکے ہیں، آپ digitalRead() فنکشن استعمال کرتے ہیں۔
بٹن اسٹیٹ = ڈیجیٹل ریڈ (بٹن پن)؛
درج ذیل if بیان، چیک کرتا ہے کہ آیا بٹن کی حالت زیادہ ہے۔ اگر یہ ہے تو، یہ ڈیجیٹل رائٹ() فنکشن کا استعمال کرتے ہوئے ایل ای ڈی کو آن کرتا ہے جو کہ ledPin اور اسٹیٹ ہائی کو دلیل کے طور پر قبول کرتا ہے۔
اگر (بٹن اسٹیٹ == ہائی)اگر بٹن کی حالت زیادہ نہیں ہے، تو آپ ایل ای ڈی کو بند کر دیتے ہیں۔ ڈیجیٹل رائٹ() فنکشن میں صرف LOW کو دوسری دلیل کے طور پر سیٹ کریں۔
کوڈ اپ لوڈ کرنا
اپ لوڈ بٹن پر کلک کرنے سے پہلے، ٹولز > بورڈ پر جائیں، اور بورڈ کو منتخب کریں :DOIT ESP32 DEVKIT V1 بورڈ۔
ٹولز > پورٹ پر جائیں اور COM پورٹ کو منتخب کریں جس سے ESP32 منسلک ہے۔ پھر، اپ لوڈ بٹن دبائیں اور "اپ لوڈنگ ہو گیا" پیغام کا انتظار کریں۔نوٹ: اگر آپ کو ڈیبگنگ ونڈو پر بہت سارے نقطے نظر آتے ہیں اور "ESP32 سے جڑنے میں ناکام: پیکٹ ہیڈر کا انتظار کرنے کا وقت ختم ہو گیا ہے"، تو اس کا مطلب ہے کہ آپ کو ESP32 آن بورڈ BOOT دبانے کی ضرورت ہے۔ نقطوں کے بعد بٹن
ظاہر ہونا شروع کریں۔ خرابیوں کا سراغ لگانا
مظاہرہ
کوڈ اپ لوڈ کرنے کے بعد، اپنے سرکٹ کی جانچ کریں۔ جب آپ پش بٹن دبائیں گے تو آپ کی ایل ای ڈی روشن ہونی چاہیے:اور جب آپ اسے جاری کریں تو بند کردیں:
پروجیکٹ 2 ESP32 اینالاگ ان پٹس
یہ پروجیکٹ دکھاتا ہے کہ Arduino IDE کا استعمال کرتے ہوئے ESP32 کے ساتھ اینالاگ ان پٹ کو کیسے پڑھا جائے۔
ینالاگ ریڈنگ متغیر ریزسٹرس جیسے پوٹینشیومیٹر، یا اینالاگ سینسر سے اقدار کو پڑھنے کے لیے مفید ہے۔
اینالاگ ان پٹ (ADC)
ESP32 کے ساتھ ینالاگ ویلیو پڑھنے کا مطلب ہے کہ آپ مختلف والیوم کی پیمائش کر سکتے ہیں۔tage کی سطح 0 V اور 3.3 V کے درمیان ہے۔
جلدtage ماپا جاتا ہے اس کے بعد 0 اور 4095 کے درمیان ایک قدر کو تفویض کیا جاتا ہے، جس میں 0 V 0 کے مساوی ہے، اور 3.3 V 4095 کے مساوی ہے۔ کوئی بھی والیومtage 0 V اور 3.3 V کے درمیان میں اسی قدر دی جائے گی۔ADC غیر لکیری ہے۔
مثالی طور پر، آپ ESP32 ADC پنوں کا استعمال کرتے وقت ایک لکیری رویے کی توقع کریں گے۔
تاہم، ایسا نہیں ہوتا۔ آپ کو جو کچھ ملے گا وہ ایک رویہ ہے جیسا کہ درج ذیل چارٹ میں دکھایا گیا ہے:اس رویے کا مطلب ہے کہ آپ کا ESP32 3.3 V سے 3.2 V میں فرق کرنے کے قابل نہیں ہے۔
آپ کو دونوں والیوم کے لیے ایک جیسی قیمت ملے گی۔tages: 4095۔
بہت کم والیوم کے لیے بھی ایسا ہی ہوتا ہے۔tage قدریں: 0 V اور 0.1 V کے لیے آپ کو ایک ہی قدر ملے گی: 0۔ ESP32 ADC پنوں کا استعمال کرتے وقت آپ کو اسے ذہن میں رکھنا ہوگا۔
analogRead() فنکشن
Arduino IDE کا استعمال کرتے ہوئے ESP32 کے ساتھ اینالاگ ان پٹ پڑھنا اتنا ہی آسان ہے جتنا analogRead() فنکشن کا استعمال کرنا۔ یہ بطور دلیل قبول کرتا ہے، GPIO جسے آپ پڑھنا چاہتے ہیں:
اینالاگ ریڈ (GPIO)؛
DEVKIT V15board (1 GPIO کے ساتھ ورژن) میں صرف 30 دستیاب ہیں۔
اپنے ESP32 بورڈ پن آؤٹ کو پکڑیں اور ADC پنوں کو تلاش کریں۔ یہ نیچے کی تصویر میں سرخ بارڈر کے ساتھ نمایاں ہیں۔ان اینالاگ ان پٹ پنوں میں 12 بٹ ریزولوشن ہے۔ اس کا مطلب ہے کہ جب آپ اینالاگ ان پٹ پڑھتے ہیں تو اس کی رینج 0 سے 4095 تک مختلف ہو سکتی ہے۔
نوٹ: جب Wi-Fi استعمال کیا جائے تو ADC2 پن استعمال نہیں کیے جا سکتے۔ لہذا، اگر آپ Wi-Fi استعمال کر رہے ہیں اور آپ کو ADC2 GPIO سے قیمت حاصل کرنے میں پریشانی ہو رہی ہے، تو آپ اس کے بجائے ADC1 GPIO استعمال کرنے پر غور کر سکتے ہیں، اس سے آپ کا مسئلہ حل ہو جائے گا۔
یہ دیکھنے کے لیے کہ سب کچھ آپس میں کیسے جڑتا ہے، ہم ایک سادہ سا سابقہ بنائیں گے۔ampپوٹینشیومیٹر سے اینالاگ ویلیو پڑھنے کے لیے۔
حصوں کی ضرورت ہے
اس سابق کے لیےampلی، آپ کو مندرجہ ذیل حصوں کی ضرورت ہے:
- ESP32 DEVKIT V1 بورڈ
- Potentiometer
- بریڈ بورڈ
- جمپر تاریں۔
یوجنابدق
اپنے ESP32 پر پوٹینومیٹر لگائیں۔ پوٹینشیومیٹر کا درمیانی پن GPIO 4 سے منسلک ہونا چاہیے۔ آپ درج ذیل اسکیمیٹک ڈایاگرام کو بطور حوالہ استعمال کر سکتے ہیں۔کوڈ
ہم ESP32 کو Arduino IDE کا استعمال کرتے ہوئے پروگرام کریں گے، اس لیے آگے بڑھنے سے پہلے یقینی بنائیں کہ آپ کے پاس ESP32 ایڈ آن انسٹال ہے:(اگر آپ یہ مرحلہ پہلے ہی کر چکے ہیں، تو آپ اگلے مرحلے پر جا سکتے ہیں۔)
Arduino IDE میں ESP32 ایڈ آن انسٹال کرنا
arduino IDE میں Project_2_ESP32_Inputs_Outputs.ino کوڈ کھولیںیہ کوڈ صرف پوٹینومیٹر سے اقدار کو پڑھتا ہے اور ان اقدار کو سیریل مانیٹر میں پرنٹ کرتا ہے۔
کوڈ میں، آپ GPIO کی وضاحت کرتے ہوئے شروع کرتے ہیں جس سے پوٹینومیٹر منسلک ہے۔ اس میں سابقample، GPIO 4۔سیٹ اپ () میں، 115200 کی بوڈ ریٹ پر سیریل کمیونیکیشن شروع کریں۔
لوپ() میں، potPin سے اینالاگ ان پٹ پڑھنے کے لیے analogRead() فنکشن استعمال کریں۔
آخر میں، سیریل مانیٹر میں پوٹینشیومیٹر سے پڑھی جانے والی اقدار کو پرنٹ کریں۔
اپنے ESP32 پر فراہم کردہ کوڈ اپ لوڈ کریں۔ یقینی بنائیں کہ آپ نے ٹولز مینو میں صحیح بورڈ اور COM پورٹ کا انتخاب کیا ہے۔
سابق کی جانچ کرناample
کوڈ کو اپ لوڈ کرنے اور ESP32 ری سیٹ بٹن کو دبانے کے بعد، 115200 کے باؤڈ ریٹ پر سیریل مانیٹر کھولیں۔آپ کو زیادہ سے زیادہ قیمت 4095 ملے گی اور کم از کم قیمت 0 ہے۔
لپیٹنا
اس مضمون میں آپ نے سیکھا ہے کہ Arduino IDE کے ساتھ ESP32 کا استعمال کرتے ہوئے اینالاگ ان پٹ کو کیسے پڑھنا ہے۔ خلاصہ میں:
- ESP32 DEVKIT V1 DOIT بورڈ (30 پنوں کے ساتھ ورژن) میں 15 ADC پن ہیں جنہیں آپ اینالاگ ان پٹ پڑھنے کے لیے استعمال کر سکتے ہیں۔
- ان پنوں کی ریزولوشن 12 بٹس ہے، جس کا مطلب ہے کہ آپ 0 سے 4095 تک ویلیوز حاصل کر سکتے ہیں۔
- Arduino IDE میں قدر پڑھنے کے لیے، آپ صرف analogRead() فنکشن استعمال کرتے ہیں۔
- ESP32 ADC پنوں میں لکیری سلوک نہیں ہوتا ہے۔ آپ شاید 0 اور 0.1V، یا 3.2 اور 3.3V کے درمیان فرق نہیں کر پائیں گے۔ ADC پنوں کا استعمال کرتے وقت آپ کو اسے ذہن میں رکھنے کی ضرورت ہے۔
پروجیکٹ 3 ESP32 PWM (اینلاگ آؤٹ پٹ)
اس ٹیوٹوریل میں ہم آپ کو دکھائیں گے کہ Arduino IDE کا استعمال کرتے ہوئے ESP32 کے ساتھ PWM سگنل کیسے تیار کیے جائیں۔ بطور سابقampہم ایک سادہ سرکٹ بنائیں گے جو ESP32 کے LED PWM کنٹرولر کا استعمال کرتے ہوئے ایک LED کو مدھم کر دے گا۔ESP32 ایل ای ڈی پی ڈبلیو ایم کنٹرولر
ESP32 میں 16 آزاد چینلز کے ساتھ ایک LED PWM کنٹرولر ہے جسے مختلف خصوصیات کے ساتھ PWM سگنلز بنانے کے لیے ترتیب دیا جا سکتا ہے۔
Arduino IDE کا استعمال کرتے ہوئے PWM کے ساتھ LED کو مدھم کرنے کے لیے آپ کو مندرجہ ذیل اقدامات کرنے ہوں گے۔
- سب سے پہلے، آپ کو ایک PWM چینل منتخب کرنے کی ضرورت ہے۔ 16 سے 0 تک 15 چینلز ہیں۔
- پھر، آپ کو PWM سگنل فریکوئنسی سیٹ کرنے کی ضرورت ہے۔ ایل ای ڈی کے لیے، 5000 ہرٹز کی فریکوئنسی استعمال کرنا ٹھیک ہے۔
- آپ کو سگنل کی ڈیوٹی سائیکل ریزولوشن بھی سیٹ کرنے کی ضرورت ہے: آپ کے پاس 1 سے 16 بٹس کی ریزولوشنز ہیں۔ ہم 8 بٹ ریزولوشن استعمال کریں گے، جس کا مطلب ہے کہ آپ 0 سے 255 کی قدر کا استعمال کرتے ہوئے LED چمک کو کنٹرول کر سکتے ہیں۔
- اگلا، آپ کو یہ بتانے کی ضرورت ہے کہ سگنل کن GPIO یا GPIOs پر ظاہر ہوگا۔ اس کے لیے آپ درج ذیل فنکشن استعمال کریں گے۔
ledcAttachPin (GPIO، چینل)
یہ فنکشن دو دلائل کو قبول کرتا ہے۔ پہلا GPIO ہے جو سگنل کو آؤٹ پٹ کرے گا، اور دوسرا وہ چینل ہے جو سگنل تیار کرے گا۔ - آخر میں، PWM کا استعمال کرتے ہوئے LED چمک کو کنٹرول کرنے کے لیے، آپ درج ذیل فنکشن کا استعمال کرتے ہیں:
ledcWrite (چینل، ڈیوٹی سائیکل)
یہ فنکشن اس چینل کو دلیل کے طور پر قبول کرتا ہے جو PWM سگنل پیدا کر رہا ہے، اور ڈیوٹی سائیکل۔
حصوں کی ضرورت ہے
اس ٹیوٹوریل پر عمل کرنے کے لیے آپ کو ان حصوں کی ضرورت ہے:
- ESP32 DEVKIT V1 بورڈ
- 5MM ایل ای ڈی
- 220 اوہم ریزسٹر
- بریڈ بورڈ
- جمپر تاریں۔
یوجنابدق
اپنے ESP32 پر ایل ای ڈی وائر کریں جیسا کہ مندرجہ ذیل اسکیمیٹک ڈایاگرام میں ہے۔ ایل ای ڈی کو GPIO سے منسلک کیا جانا چاہئے۔ 4.نوٹ: آپ اپنی مرضی کے مطابق کوئی بھی پن استعمال کر سکتے ہیں، جب تک کہ یہ آؤٹ پٹ کے طور پر کام کر سکے۔ تمام پن جو آؤٹ پٹ کے طور پر کام کر سکتے ہیں PWM پنوں کے طور پر استعمال کیے جا سکتے ہیں۔ ESP32 GPIO کے بارے میں مزید معلومات کے لیے، پڑھیں: ESP32 پن آؤٹ حوالہ: آپ کو کون سا GPIO پن استعمال کرنا چاہیے؟
کوڈ
ہم ESP32 کو Arduino IDE کا استعمال کرتے ہوئے پروگرام کریں گے، اس لیے آگے بڑھنے سے پہلے یقینی بنائیں کہ آپ کے پاس ESP32 ایڈ آن انسٹال ہے:(اگر آپ یہ مرحلہ پہلے ہی کر چکے ہیں، تو آپ اگلے مرحلے پر جا سکتے ہیں۔)
Arduino IDE میں ESP32 ایڈ آن انسٹال کرنا
arduino IDE میں Project_3_ESP32_PWM.ino کوڈ کھولیں۔آپ اس پن کی وضاحت کرکے شروع کرتے ہیں جس سے ایل ای ڈی منسلک ہے۔ اس صورت میں ایل ای ڈی GPIO 4 سے منسلک ہے۔
پھر، آپ PWM سگنل کی خصوصیات کو سیٹ کرتے ہیں۔ آپ 5000 ہرٹز کی فریکوئنسی کی وضاحت کرتے ہیں، سگنل پیدا کرنے کے لیے چینل 0 کا انتخاب کریں، اور 8 بٹس کی ریزولوشن سیٹ کریں۔ مختلف PWM سگنلز بنانے کے لیے آپ ان سے مختلف دیگر خصوصیات کا انتخاب کر سکتے ہیں۔
سیٹ اپ() میں، آپ کو LED PWM کو ان خصوصیات کے ساتھ کنفیگر کرنے کی ضرورت ہے جو آپ نے پہلے بیان کی ہیں ledcSetup() فنکشن کا استعمال کرتے ہوئے جو بطور دلیل، ledChannel، فریکوئنسی، اور ریزولیوشن کو قبول کرتا ہے، حسب ذیل:
اگلا، آپ کو GPIO کا انتخاب کرنے کی ضرورت ہے جس سے آپ کو سگنل ملے گا۔ اس کے لیے ledcAttachPin() فنکشن کا استعمال کریں جو GPIO کو بطور دلیل قبول کرتا ہے جہاں آپ سگنل حاصل کرنا چاہتے ہیں، اور وہ چینل جو سگنل پیدا کر رہا ہے۔ اس میں سابقample، ہمیں ledPin GPIO میں سگنل ملے گا، جو GPIO 4 سے مساوی ہے۔ وہ چینل جو سگنل تیار کرتا ہے وہ ledChannel ہے، جو چینل 0 کے مساوی ہے۔
لوپ میں، آپ LED کی چمک کو بڑھانے کے لیے ڈیوٹی سائیکل کو 0 اور 255 کے درمیان مختلف کریں گے۔
اور پھر، چمک کو کم کرنے کے لیے 255 اور 0 کے درمیان۔
LED کی چمک کو سیٹ کرنے کے لیے، آپ کو صرف ledcWrite() فنکشن استعمال کرنے کی ضرورت ہے جو سگنل پیدا کرنے والے چینل اور ڈیوٹی سائیکل کو بطور دلیل قبول کرتا ہے۔
جیسا کہ ہم 8 بٹ ریزولوشن استعمال کر رہے ہیں، ڈیوٹی سائیکل کو 0 سے 255 تک کی ویلیو کے ذریعے کنٹرول کیا جائے گا۔ نوٹ کریں کہ ledcWrite() فنکشن میں ہم وہ چینل استعمال کرتے ہیں جو سگنل پیدا کر رہا ہے، نہ کہ GPIO۔
سابق کی جانچ کرناample
کوڈ کو اپنے ESP32 پر اپ لوڈ کریں۔ یقینی بنائیں کہ آپ نے صحیح بورڈ اور COM پورٹ کا انتخاب کیا ہے۔ اپنے سرکٹ کو دیکھو۔ آپ کے پاس ایک مدھم ایل ای ڈی ہونی چاہیے جو چمک کو بڑھاتی اور کم کرتی ہے۔
پروجیکٹ 4 ESP32 PIR موشن سینسر
یہ پروجیکٹ دکھاتا ہے کہ PIR موشن سینسر کا استعمال کرتے ہوئے ESP32 کے ساتھ حرکت کا کیسے پتہ لگایا جائے۔ جب حرکت کا پتہ چل جائے گا تو بزر الارم بجائے گا، اور پہلے سے طے شدہ وقت (جیسے 4 سیکنڈ) تک کسی حرکت کا پتہ نہ چلنے پر الارم بند کر دے گا۔
HC-SR501 موشن سینسر کیسے کام کرتا ہے۔
.HC-SR501 سینسر کا کام کرنے والا اصول حرکت پذیر آبجیکٹ پر انفراریڈ ریڈی ایشن کی تبدیلی پر مبنی ہے۔ HC-SR501 سینسر کے ذریعے پتہ لگانے کے لیے، آبجیکٹ کو دو تقاضوں کو پورا کرنا ضروری ہے:
- آبجیکٹ انفراریڈ طریقے سے خارج کر رہا ہے۔
- شے ہل رہی ہے یا ہل رہی ہے۔
تو:
اگر کوئی چیز انفراریڈ شعاع خارج کر رہی ہے لیکن حرکت نہیں کر رہی ہے (مثال کے طور پر، کوئی شخص بغیر حرکت کیے کھڑا ہے)، تو اس کا سینسر سے پتہ نہیں چلتا۔
اگر کوئی چیز حرکت کر رہی ہے لیکن انفراریڈ شعاع (جیسے روبوٹ یا گاڑی) خارج نہیں کر رہی ہے، تو اس کا سینسر سے پتہ نہیں چلتا ہے۔
ٹائمر پیش کر رہے ہیں۔
اس میں سابقample ہم ٹائمر بھی متعارف کروائیں گے۔ ہم چاہتے ہیں کہ حرکت کا پتہ چلنے کے بعد ایل ای ڈی پہلے سے متعین سیکنڈوں تک چلتی رہے۔ تاخیر() فنکشن استعمال کرنے کے بجائے جو آپ کے کوڈ کو روکتا ہے اور آپ کو سیکنڈوں کی ایک متعین تعداد تک کچھ اور کرنے کی اجازت نہیں دیتا ہے، ہمیں ٹائمر استعمال کرنا چاہیے۔تاخیر() فنکشن
آپ کو delay() فنکشن سے واقف ہونا چاہیے کیونکہ یہ بڑے پیمانے پر استعمال ہوتا ہے۔ یہ فنکشن استعمال کرنے میں کافی سیدھا ہے۔ یہ ایک واحد int نمبر کو بطور دلیل قبول کرتا ہے۔
یہ نمبر ملی سیکنڈ میں اس وقت کی نمائندگی کرتا ہے جب تک کہ پروگرام کو کوڈ کی اگلی لائن پر جانے تک انتظار کرنا پڑتا ہے۔جب آپ تاخیر (1000) کرتے ہیں تو آپ کا پروگرام اس لائن پر 1 سیکنڈ کے لیے رک جاتا ہے۔
delay() ایک بلاکنگ فنکشن ہے۔ بلاکنگ فنکشنز پروگرام کو کچھ اور کرنے سے روکتے ہیں جب تک کہ وہ خاص کام مکمل نہ ہو جائے۔ اگر آپ کو ایک ہی وقت میں متعدد کاموں کو انجام دینے کی ضرورت ہے، تو آپ تاخیر() کا استعمال نہیں کر سکتے۔
زیادہ تر پروجیکٹس کے لیے آپ کو تاخیر کے استعمال سے گریز کرنا چاہیے اور اس کے بجائے ٹائمر استعمال کرنا چاہیے۔
ملیس () فنکشن
millis() نامی فنکشن کا استعمال کرتے ہوئے آپ ملی سیکنڈز کی تعداد واپس کر سکتے ہیں جو پروگرام کے شروع ہونے کے بعد سے گزر چکے ہیں۔وہ فنکشن کیوں مفید ہے؟ کیونکہ کچھ ریاضی کا استعمال کرکے، آپ آسانی سے تصدیق کر سکتے ہیں کہ آپ کے کوڈ کو بلاک کیے بغیر کتنا وقت گزر گیا ہے۔
حصوں کی ضرورت ہے
اس ٹیوٹوریل پر عمل کرنے کے لیے آپ کو درج ذیل حصوں کی ضرورت ہے۔
- ESP32 DEVKIT V1 بورڈ
- PIR موشن سینسر (HC-SR501)
- ایکٹو بزر
- جمپر تاریں۔
- بریڈ بورڈ
یوجنابدقنوٹ: ورکنگ والیومtagHC-SR501 کا e 5V ہے۔ اسے طاقت دینے کے لیے ون پن کا استعمال کریں۔
کوڈ
اس ٹیوٹوریل کے ساتھ آگے بڑھنے سے پہلے آپ کو اپنے Arduino IDE میں ESP32 ایڈ آن انسٹال کرنا چاہیے۔ اگر آپ نے پہلے ہی نہیں کیا ہے تو Arduino IDE پر ESP32 انسٹال کرنے کے لیے درج ذیل ٹیوٹوریلز میں سے کسی ایک پر عمل کریں۔
Arduino IDE میں ESP32 ایڈ آن انسٹال کرنا
arduino IDE میں Project_4_ESP32_PIR_Motion_Sensor.ino کوڈ کھولیں۔
مظاہرہ
کوڈ کو اپنے ESP32 بورڈ پر اپ لوڈ کریں۔ یقینی بنائیں کہ آپ نے صحیح بورڈ اور COM پورٹ کا انتخاب کیا ہے۔ کوڈ ریفرنس کے مراحل کو اپ لوڈ کریں۔
سیریل مانیٹر کو 115200 کے بوڈ ریٹ پر کھولیں۔اپنا ہاتھ PIR سینسر کے سامنے رکھیں۔ بزر آن ہونا چاہیے، اور پیغام سیریل مانیٹر میں پرنٹ ہوتا ہے جس میں کہا جاتا ہے کہ "حرکت کا پتہ چلا! بزر الارم"۔
4 سیکنڈ کے بعد بزر کو بند کر دینا چاہیے۔
پروجیکٹ 5 ESP32 سوئچ Web سرور
اس پروجیکٹ میں آپ اسٹینڈ اسٹون بنائیں گے۔ web ESP32 کے ساتھ سرور جو Arduino IDE پروگرامنگ ماحول کا استعمال کرتے ہوئے آؤٹ پٹ (دو LEDs) کو کنٹرول کرتا ہے۔ دی web سرور موبائل ریسپانسیو ہے اور مقامی نیٹ ورک پر براؤزر کے طور پر کسی بھی ڈیوائس سے اس تک رسائی حاصل کی جا سکتی ہے۔ ہم آپ کو دکھائیں گے کہ اسے کیسے بنایا جائے۔ web سرور اور کس طرح کوڈ مرحلہ وار کام کرتا ہے۔
پروجیکٹ ختمview
اس منصوبے پر براہ راست جانے سے پہلے، یہ بتانا ضروری ہے کہ ہمارا کیا ہے۔ web سرور کرے گا، تاکہ بعد میں اقدامات پر عمل کرنا آسان ہو۔
- دی web سرور جس پر آپ ESP32 GPIO 26 اور GPIO 27 سے منسلک دو LEDs کو کنٹرول کریں گے۔
- آپ ESP32 تک رسائی حاصل کر سکتے ہیں۔ web مقامی نیٹ ورک میں براؤزر پر ESP32 IP ایڈریس ٹائپ کرکے سرور؛
- اپنے بٹنوں پر کلک کرکے web سرور آپ کو فوری طور پر ہر ایل ای ڈی کی حالت تبدیل کر سکتے ہیں.
حصوں کی ضرورت ہے
اس ٹیوٹوریل کے لیے آپ کو درج ذیل حصوں کی ضرورت ہوگی:
- ESP32 DEVKIT V1 بورڈ
- 2x5 ملی میٹر ایل ای ڈی
- 2x 200 اوہم ریزسٹر
- بریڈ بورڈ
- جمپر تاریں۔
یوجنابدق
سرکٹ کی تعمیر سے شروع کریں. دو LEDs کو ESP32 سے جوڑیں جیسا کہ مندرجہ ذیل اسکیمیٹک ڈایاگرام میں دکھایا گیا ہے - ایک LED GPIO 26 سے منسلک ہے، اور دوسری GPIO 27 سے۔
نوٹ: ہم 32 پنوں کے ساتھ ESP36 DEVKIT DOIT بورڈ استعمال کر رہے ہیں۔ سرکٹ کو جمع کرنے سے پہلے، اس بات کو یقینی بنائیں کہ آپ جس بورڈ کا استعمال کر رہے ہیں اس کا پن آؤٹ چیک کریں۔کوڈ
یہاں ہم کوڈ فراہم کرتے ہیں جو ESP32 بناتا ہے۔ web سرور کوڈ کھولیں Project_5_ESP32_Switch _Web_Server.ino arduino IDE میں، لیکن اسے ابھی اپ لوڈ نہ کریں۔ اسے آپ کے لیے کارآمد بنانے کے لیے آپ کو کچھ تبدیلیاں کرنے کی ضرورت ہے۔
ہم ESP32 کو Arduino IDE کا استعمال کرتے ہوئے پروگرام کریں گے، اس لیے آگے بڑھنے سے پہلے یقینی بنائیں کہ آپ کے پاس ESP32 ایڈ آن انسٹال ہے:(اگر آپ یہ مرحلہ پہلے ہی کر چکے ہیں، تو آپ اگلے مرحلے پر جا سکتے ہیں۔)
Arduino IDE میں ESP32 ایڈ آن انسٹال کرنا
اپنے نیٹ ورک کی اسناد ترتیب دینا
آپ کو اپنے نیٹ ورک کی اسناد کے ساتھ درج ذیل لائنوں میں ترمیم کرنے کی ضرورت ہے: SSID اور پاس ورڈ۔ کوڈ پر اچھی طرح سے تبصرہ کیا گیا ہے کہ آپ کو کہاں تبدیلیاں کرنی چاہئیں۔کوڈ اپ لوڈ کرنا
اب، آپ کوڈ اور اور اپ لوڈ کر سکتے ہیں۔ web سرور فوراً کام کرے گا۔
ESP32 پر کوڈ اپ لوڈ کرنے کے لیے اگلے مراحل پر عمل کریں:
- اپنے ESP32 بورڈ کو اپنے کمپیوٹر میں لگائیں۔
- Arduino IDE میں ٹولز > بورڈ میں اپنا بورڈ منتخب کریں (ہمارے معاملے میں ہم ESP32 DEVKIT DOIT بورڈ استعمال کر رہے ہیں)؛
- ٹولز > پورٹ میں COM پورٹ کو منتخب کریں۔
- Arduino IDE میں اپ لوڈ بٹن کو دبائیں اور کوڈ کے مرتب ہونے اور آپ کے بورڈ پر اپ لوڈ ہونے تک چند سیکنڈ انتظار کریں۔
- "اپ لوڈنگ مکمل" پیغام کا انتظار کریں۔
ESP IP ایڈریس تلاش کرنا
کوڈ اپ لوڈ کرنے کے بعد، سیریل مانیٹر کو 115200 کے بوڈ ریٹ پر کھولیں۔ESP32 EN بٹن دبائیں (ری سیٹ کریں)۔ ESP32 Wi-Fi سے جڑتا ہے، اور ESP IP ایڈریس کو سیریل مانیٹر پر آؤٹ پٹ کرتا ہے۔ اس IP ایڈریس کو کاپی کریں، کیونکہ آپ کو ESP32 تک رسائی کے لیے اس کی ضرورت ہے۔ web سرور
تک رسائی حاصل کرنا Web سرور
تک رسائی حاصل کرنے کے لیے web سرور، اپنا براؤزر کھولیں، ESP32 IP ایڈریس پیسٹ کریں، اور آپ کو درج ذیل صفحہ نظر آئے گا۔
نوٹ: آپ کا براؤزر اور ESP32 ایک ہی LAN سے منسلک ہونا چاہیے۔اگر آپ سیریل مانیٹر پر ایک نظر ڈالتے ہیں، تو آپ دیکھ سکتے ہیں کہ پس منظر میں کیا ہو رہا ہے۔ ESP کو ایک نئے کلائنٹ سے HTTP درخواست موصول ہوتی ہے (اس صورت میں، آپ کا براؤزر)۔
آپ HTTP درخواست کے بارے میں دیگر معلومات بھی دیکھ سکتے ہیں۔
مظاہرہ
اب آپ جانچ کر سکتے ہیں کہ اگر آپ web سرور ٹھیک سے کام کر رہا ہے۔ ایل ای ڈی کو کنٹرول کرنے کے لیے بٹنوں پر کلک کریں۔ایک ہی وقت میں، آپ سیریل مانیٹر پر ایک نظر ڈال سکتے ہیں کہ پس منظر میں کیا ہو رہا ہے۔ سابق کے لیےample، جب آپ GPIO 26 کو آن کرنے کے لیے بٹن پر کلک کرتے ہیں، ESP32 کو /26/on پر ایک درخواست موصول ہوتی ہے۔ URL.
جب ESP32 کو وہ درخواست موصول ہوتی ہے، تو یہ GPIO 26 سے منسلک LED کو آن کر دیتا ہے اور اپنی حالت کو اپ ڈیٹ کرتا ہے۔ web صفحہ
GPIO 27 کا بٹن اسی طرح کام کرتا ہے۔ جانچ کریں کہ یہ ٹھیک سے کام کر رہا ہے۔
کوڈ کیسے کام کرتا ہے۔
اس سیکشن میں کوڈ پر گہری نظر ڈالی جائے گی کہ یہ کیسے کام کرتا ہے۔
سب سے پہلے آپ کو وائی فائی لائبریری کو شامل کرنے کی ضرورت ہے۔جیسا کہ پہلے ذکر کیا گیا ہے، آپ کو اپنا ssid اور پاس ورڈ درج ذیل لائنوں میں ڈبل کوٹس کے اندر داخل کرنے کی ضرورت ہے۔
اس کے بعد، آپ نے اپنا سیٹ کیا web پورٹ 80 پر سرور۔
درج ذیل لائن HTTP درخواست کے ہیڈر کو ذخیرہ کرنے کے لیے ایک متغیر بناتی ہے۔
اگلا، آپ اپنے آؤٹ پٹ کی موجودہ حالت کو ذخیرہ کرنے کے لیے معاون متغیرات بناتے ہیں۔ اگر آپ مزید آؤٹ پٹ شامل کرنا چاہتے ہیں اور اس کی حالت کو بچانا چاہتے ہیں تو آپ کو مزید متغیر بنانے کی ضرورت ہے۔
آپ کو اپنے ہر آؤٹ پٹ کے لیے GPIO تفویض کرنے کی بھی ضرورت ہے۔ یہاں ہم GPIO 26 اور GPIO 27 استعمال کر رہے ہیں۔ آپ کوئی اور موزوں GPIO استعمال کر سکتے ہیں۔
سیٹ اپ()
اب، سیٹ اپ () میں چلتے ہیں۔ سب سے پہلے، ہم ڈیبگنگ کے مقاصد کے لیے 115200 کی بوڈ ریٹ پر سیریل کمیونیکیشن شروع کرتے ہیں۔آپ اپنے GPIOs کو آؤٹ پٹ کے طور پر بھی متعین کرتے ہیں اور انہیں کم پر سیٹ کرتے ہیں۔
درج ذیل لائنیں Wi-Fi کنکشن WiFi.begin(ssid، پاس ورڈ) کے ساتھ شروع کرتی ہیں، کامیاب کنکشن کا انتظار کریں اور سیریل مانیٹر میں ESP IP ایڈریس پرنٹ کریں۔
لوپ()
لوپ() میں ہم پروگرام کرتے ہیں کہ جب کوئی نیا کلائنٹ کے ساتھ کنکشن قائم کرتا ہے تو کیا ہوتا ہے۔ web سرور
ESP32 ہمیشہ آنے والے کلائنٹس کو درج ذیل لائن کے ساتھ سن رہا ہے:جب کسی کلائنٹ سے درخواست موصول ہوتی ہے، تو ہم آنے والے ڈیٹا کو محفوظ کر لیں گے۔ اس کے بعد آنے والا while لوپ اس وقت تک چلتا رہے گا جب تک کلائنٹ منسلک رہے گا۔ ہم کوڈ کے مندرجہ ذیل حصے کو تبدیل کرنے کی سفارش نہیں کرتے جب تک کہ آپ کو یہ معلوم نہ ہو کہ آپ کیا کر رہے ہیں۔
if اور else بیانات کا اگلا حصہ چیک کرتا ہے کہ آپ کے میں کون سا بٹن دبایا گیا تھا۔ web صفحہ، اور اس کے مطابق آؤٹ پٹ کو کنٹرول کرتا ہے۔ جیسا کہ ہم پہلے دیکھ چکے ہیں، ہم مختلف پر ایک درخواست کرتے ہیں۔ URLs دبائے گئے بٹن پر منحصر ہے۔
سابق کے لیےample، اگر آپ نے GPIO 26 ON بٹن دبایا ہے، ESP32 کو /26/ON پر ایک درخواست موصول ہوتی ہے۔ URL (ہم دیکھ سکتے ہیں کہ سیریل مانیٹر پر HTTP ہیڈر پر وہ معلومات)۔ لہذا، ہم چیک کر سکتے ہیں کہ آیا ہیڈر میں اظہار GET /26/on ہے۔ اگر اس میں شامل ہے تو، ہم آؤٹ پٹ 26 اسٹیٹ متغیر کو آن میں تبدیل کرتے ہیں، اور ESP32 LED کو آن کر دیتا ہے۔
یہ دوسرے بٹنوں کے لیے بھی اسی طرح کام کرتا ہے۔ لہذا، اگر آپ مزید آؤٹ پٹ شامل کرنا چاہتے ہیں، تو آپ کو ان کو شامل کرنے کے لیے کوڈ کے اس حصے میں ترمیم کرنی چاہیے۔
ایچ ٹی ایم ایل کی نمائش web صفحہ
اگلی چیز جو آپ کو کرنے کی ضرورت ہے، وہ تخلیق کرنا ہے۔ web صفحہ ESP32 آپ کے براؤزر کو کچھ HTML کوڈ کے ساتھ جواب بھیجے گا web صفحہ
دی web اس اظہار کلائنٹ کا استعمال کرتے ہوئے کلائنٹ کو صفحہ بھیجا جاتا ہے۔println()۔ آپ کو وہ درج کرنا چاہیے جو آپ کلائنٹ کو بطور دلیل بھیجنا چاہتے ہیں۔
پہلی چیز جو ہمیں بھیجنی چاہیے وہ ہمیشہ درج ذیل لائن ہوتی ہے، جو اس بات کی نشاندہی کرتی ہے کہ ہم HTML بھیج رہے ہیں۔پھر، مندرجہ ذیل لائن بناتا ہے web کسی بھی میں ذمہ دار صفحہ web براؤزر
اور فیویکون پر درخواستوں کو روکنے کے لیے درج ذیل کا استعمال کیا جاتا ہے۔ - آپ کو اس لائن کے بارے میں فکر کرنے کی ضرورت نہیں ہے۔
اسٹائل کرنا Web صفحہ
اگلا، ہمارے پاس بٹنوں کو اسٹائل کرنے کے لیے کچھ سی ایس ایس ٹیکسٹ ہے۔ web صفحہ کی ظاہری شکل
ہم Helvetica فونٹ کا انتخاب کرتے ہیں، مواد کو بلاک کے طور پر ظاہر کرنے اور مرکز میں منسلک کرنے کی وضاحت کرتے ہیں۔ہم اپنے بٹنوں کو #4CAF50 رنگ، بغیر بارڈر کے، سفید رنگ میں متن، اور اس پیڈنگ کے ساتھ: 16px 40px کے ساتھ اسٹائل کرتے ہیں۔ ہم نے ٹیکسٹ ڈیکوریشن کو کسی پر بھی سیٹ نہیں کیا، فونٹ کا سائز، مارجن، اور کرسر کو پوائنٹر پر متعین کیا۔
ہم دوسرے بٹن کے لیے سٹائل کی بھی وضاحت کرتے ہیں، بٹن کی تمام خصوصیات کے ساتھ جو ہم پہلے بیان کر چکے ہیں، لیکن ایک مختلف رنگ کے ساتھ۔ یہ آف بٹن کا انداز ہوگا۔
ترتیب دینا Web صفحہ اول کی سرخی
اگلی لائن میں آپ اپنی پہلی سرخی سیٹ کر سکتے ہیں۔ web صفحہ یہاں ہمارے پاس "ESP32 ہے۔ Web سرور"، لیکن آپ اس متن کو اپنی پسند کے مطابق تبدیل کر سکتے ہیں۔بٹن اور متعلقہ ریاست کو ظاہر کرنا
پھر، آپ GPIO 26 موجودہ حالت کو ظاہر کرنے کے لیے ایک پیراگراف لکھتے ہیں۔ جیسا کہ آپ دیکھ سکتے ہیں کہ ہم output26State متغیر استعمال کرتے ہیں، تاکہ یہ متغیر تبدیل ہونے پر ریاست فوری طور پر اپ ڈیٹ ہوجائے۔پھر، ہم GPIO کی موجودہ حالت کے لحاظ سے، آن یا آف بٹن ڈسپلے کرتے ہیں۔ اگر GPIO کی موجودہ حالت آف ہے، تو ہم ON بٹن دکھاتے ہیں، اگر نہیں، تو ہم آف بٹن دکھاتے ہیں۔
ہم GPIO 27 کے لیے وہی طریقہ استعمال کرتے ہیں۔
کنکشن بند کرنا
آخر میں، جب جواب ختم ہوتا ہے، ہم ہیڈر متغیر کو صاف کرتے ہیں، اور کلائنٹ کے ساتھ client.stop() کے ساتھ کنکشن روک دیتے ہیں۔
لپیٹنا
اس ٹیوٹوریل میں ہم نے آپ کو a بنانے کا طریقہ دکھایا ہے۔ web ESP32 کے ساتھ سرور۔ ہم نے آپ کو ایک سادہ سابقہ دکھایا ہے۔ample جو دو ایل ای ڈی کو کنٹرول کرتا ہے، لیکن خیال یہ ہے کہ ان ایل ای ڈیز کو ریلے سے تبدیل کیا جائے، یا کسی اور آؤٹ پٹ کو آپ کنٹرول کرنا چاہتے ہیں۔
پروجیکٹ 6 آرجیبی ایل ای ڈی Web سرور
اس پروجیکٹ میں ہم آپ کو دکھائیں گے کہ کس طرح ESP32 بورڈ کا استعمال کرتے ہوئے RGB LED کو دور سے کنٹرول کیا جائے۔ web رنگ چنندہ کے ساتھ سرور۔
پروجیکٹ ختمview
شروع کرنے سے پہلے، آئیے دیکھتے ہیں کہ یہ پروجیکٹ کیسے کام کرتا ہے:
- ای ایس پی 32 web سرور رنگ چننے والا دکھاتا ہے۔
- جب آپ کسی رنگ کا انتخاب کرتے ہیں، تو آپ کا براؤزر ایک پر درخواست کرتا ہے۔ URL جس میں منتخب رنگ کے R، G، اور B پیرامیٹرز ہوتے ہیں۔
- آپ کا ESP32 درخواست وصول کرتا ہے اور ہر رنگ کے پیرامیٹر کی قدر کو تقسیم کرتا ہے۔
- پھر، یہ GPIOs کو متعلقہ قیمت کے ساتھ PWM سگنل بھیجتا ہے جو RGB LED کو کنٹرول کر رہے ہیں۔
آرجیبی ایل ای ڈی کیسے کام کرتی ہیں؟
ایک عام کیتھوڈ RGB LED میں، تینوں LEDs ایک منفی کنکشن (کیتھوڈ) کا اشتراک کرتے ہیں۔ کٹ میں شامل سبھی کامن کیتھوڈ RGB ہیں۔مختلف رنگ کیسے بنائیں؟
RGB LED کے ساتھ آپ یقیناً سرخ، سبز اور نیلی روشنی پیدا کر سکتے ہیں، اور ہر LED کی شدت کو ترتیب دے کر، آپ دوسرے رنگ بھی پیدا کر سکتے ہیں۔
سابق کے لیےampلی، خالصتاً نیلی روشنی پیدا کرنے کے لیے، آپ نیلی ایل ای ڈی کو سب سے زیادہ شدت پر اور سبز اور سرخ ایل ای ڈی کو سب سے کم شدت پر سیٹ کریں گے۔ سفید روشنی کے لیے، آپ تینوں ایل ای ڈی کو سب سے زیادہ شدت پر سیٹ کریں گے۔
رنگوں کو ملانا
دوسرے رنگ پیدا کرنے کے لیے، آپ تینوں رنگوں کو مختلف شدتوں میں ملا سکتے ہیں۔ ہر ایل ای ڈی کی شدت کو ایڈجسٹ کرنے کے لیے آپ PWM سگنل استعمال کر سکتے ہیں۔
چونکہ ایل ای ڈی ایک دوسرے کے بہت قریب ہیں، ہماری آنکھیں انفرادی طور پر تین رنگوں کے بجائے رنگوں کے امتزاج کا نتیجہ دیکھتی ہیں۔
رنگوں کو یکجا کرنے کا طریقہ جاننے کے لیے، درج ذیل چارٹ پر ایک نظر ڈالیں۔
یہ رنگوں کی آمیزش کا سب سے آسان چارٹ ہے، لیکن آپ کو اندازہ دیتا ہے کہ یہ کیسے کام کرتا ہے اور مختلف رنگ کیسے تیار کیے جاتے ہیں۔حصوں کی ضرورت ہے
اس منصوبے کے لئے آپ کو مندرجہ ذیل حصوں کی ضرورت ہے:
- ESP32 DEVKIT V1 بورڈ
- آرجیبی ایل ای ڈی
- 3x 220 اوہم مزاحم
- جمپر تاریں۔
- بریڈ بورڈ
یوجنابدقکوڈ
ہم ESP32 کو Arduino IDE کا استعمال کرتے ہوئے پروگرام کریں گے، اس لیے آگے بڑھنے سے پہلے یقینی بنائیں کہ آپ کے پاس ESP32 ایڈ آن انسٹال ہے:(اگر آپ یہ مرحلہ پہلے ہی کر چکے ہیں، تو آپ اگلے مرحلے پر جا سکتے ہیں۔)
- Arduino IDE میں ESP32 ایڈ آن انسٹال کرنا
سرکٹ کو جمع کرنے کے بعد، کوڈ کھولیں
پروجیکٹ_6_RGB_LED_Webarduino IDE میں _Server.ino۔
کوڈ اپ لوڈ کرنے سے پہلے، اپنے نیٹ ورک کی اسناد داخل کرنا نہ بھولیں تاکہ ESP آپ کے مقامی نیٹ ورک سے منسلک ہو سکے۔کوڈ کیسے کام کرتا ہے۔
ESP32 خاکہ WiFi.h لائبریری کا استعمال کرتا ہے۔درج ذیل لائنیں درخواست سے R، G، اور B پیرامیٹرز کو رکھنے کے لیے سٹرنگ متغیرات کی وضاحت کرتی ہیں۔
اگلے چار متغیرات کو بعد میں HTTP درخواست کو ڈی کوڈ کرنے کے لیے استعمال کیا جاتا ہے۔
GPIOs کے لیے تین متغیرات بنائیں جو پٹی R، G، اور B پیرامیٹرز کو کنٹرول کریں گے۔ اس صورت میں ہم GPIO 13، GPIO 12، اور GPIO 14 استعمال کر رہے ہیں۔
ان GPIOs کو PWM سگنلز کو آؤٹ پٹ کرنے کی ضرورت ہے، لہذا ہمیں پہلے PWM خصوصیات کو ترتیب دینے کی ضرورت ہے۔ PWM سگنل فریکوئنسی کو 5000 Hz پر سیٹ کریں۔ پھر، ہر رنگ کے لیے ایک PWM چینل منسلک کریں۔
اور آخر میں، PWM چینلز کی ریزولوشن کو 8 بٹ پر سیٹ کریں۔
سیٹ اپ () میں، PWM کی خصوصیات PWM چینلز کو تفویض کریں۔
PWM چینلز کو متعلقہ GPIO کے ساتھ منسلک کریں۔
درج ذیل کوڈ سیکشن آپ میں رنگ چننے والے کو دکھاتا ہے۔ web صفحہ اور آپ کے منتخب کردہ رنگ کی بنیاد پر درخواست کرتا ہے۔
جب آپ رنگ چنتے ہیں، تو آپ کو درج ذیل فارمیٹ کے ساتھ ایک درخواست موصول ہوتی ہے۔
لہذا، ہمیں R، G، اور B پیرامیٹرز حاصل کرنے کے لیے اس سٹرنگ کو تقسیم کرنے کی ضرورت ہے۔ پیرامیٹرز کو redString، greenString، اور blueString متغیر میں محفوظ کیا جاتا ہے اور ان کی قدریں 0 اور 255 کے درمیان ہوسکتی ہیں۔ESP32 کے ساتھ پٹی کو کنٹرول کرنے کے لیے، ledcWrite() فنکشن کا استعمال کریں تاکہ HTTP سے ڈی کوڈ شدہ اقدار کے ساتھ PWM سگنل تیار کریں۔ درخواست
نوٹ: ESP32 کے ساتھ PWM کے بارے میں مزید جانیں: پروجیکٹ 3 ESP32 PWM (اینلاگ آؤٹ پٹ)
ESP8266 کے ساتھ پٹی کو کنٹرول کرنے کے لیے، ہمیں صرف استعمال کرنے کی ضرورت ہے۔
analogWrite() فنکشن HTPP درخواست سے ڈی کوڈ کردہ اقدار کے ساتھ PWM سگنلز تیار کرنے کے لیے۔
analogWrite(redPin, redString.toInt())؛
analogWrite(greenPin, greenString.toInt())؛
analogWrite(bluePin, blueString.toInt())
چونکہ ہمیں سٹرنگ متغیر میں اقدار ملتی ہیں، ہمیں toInt() طریقہ استعمال کرتے ہوئے ان کو عدد میں تبدیل کرنے کی ضرورت ہے۔
مظاہرہ
اپنے نیٹ ورک کی اسناد داخل کرنے کے بعد، صحیح بورڈ اور COM پورٹ کو منتخب کریں اور کوڈ کو اپنے ESP32 پر اپ لوڈ کریں۔ کوڈ ریفرنس کے مراحل کو اپ لوڈ کریں۔
اپ لوڈ کرنے کے بعد، سیریل مانیٹر کو 115200 کے باؤڈ ریٹ پر کھولیں اور ESP Enable/Reset بٹن دبائیں۔ آپ کو بورڈ کا آئی پی ایڈریس ملنا چاہیے۔اپنا براؤزر کھولیں اور ESP IP ایڈریس داخل کریں۔ اب، RGB LED کے لیے رنگ منتخب کرنے کے لیے رنگ چننے والے کا استعمال کریں۔
اس کے بعد، آپ کو "رنگ تبدیل کریں" کے بٹن کو دبانے کی ضرورت ہے تاکہ رنگ اثر انداز ہو۔RGB LED کو بند کرنے کے لیے، سیاہ رنگ منتخب کریں۔
سب سے مضبوط رنگ (رنگ چننے والے کے اوپری حصے میں)، وہ ہیں جو بہتر نتائج پیدا کریں گے۔
پروجیکٹ 7 ESP32 ریلے Web سرور
ESP32 کے ساتھ ریلے کا استعمال AC گھریلو آلات کو دور سے کنٹرول کرنے کا ایک بہترین طریقہ ہے۔ یہ ٹیوٹوریل بتاتا ہے کہ ESP32 کے ساتھ ریلے ماڈیول کو کیسے کنٹرول کیا جائے۔
ہم اس پر ایک نظر ڈالیں گے کہ ریلے ماڈیول کیسے کام کرتا ہے، ریلے کو ESP32 سے کیسے جوڑنا ہے اور ایک web ریلے کو دور سے کنٹرول کرنے کے لیے سرور۔
ریلے کا تعارف
ریلے ایک برقی طور پر چلنے والا سوئچ ہے اور کسی دوسرے سوئچ کی طرح، اسے آن یا آف کیا جا سکتا ہے، کرنٹ کو گزرنے دیتا ہے یا نہیں۔ اسے کم والیوم سے کنٹرول کیا جا سکتا ہے۔tages، جیسے ESP3.3 GPIOs کے ذریعہ فراہم کردہ 32V اور ہمیں ہائی والیوم کو کنٹرول کرنے کی اجازت دیتا ہے۔tages جیسے 12V، 24V یا مین والیومtage (یورپ میں 230V اور امریکہ میں 120V)۔بائیں جانب، ہائی والیوم کو جوڑنے کے لیے تین ساکٹ کے دو سیٹ ہیں۔tages، اور پن دائیں طرف (low-voltage) ESP32 GPIOs سے جڑیں۔
مینز جلد۔tagای کنکشنپچھلی تصویر میں دکھائے گئے ریلے ماڈیول میں دو کنیکٹر ہیں، ہر ایک میں تین ساکٹ ہیں: عام (COM)، عام طور پر بند (NC)، اور عام طور پر کھلا (NO)۔
- COM: اس کرنٹ کو جوڑیں جسے آپ کنٹرول کرنا چاہتے ہیں (مینز والیومtagای).
- NC (عام طور پر بند): عام طور پر بند کنفیگریشن اس وقت استعمال ہوتی ہے جب آپ چاہتے ہیں کہ ریلے کو بطور ڈیفالٹ بند کیا جائے۔ NC ہیں COM پن جڑے ہوئے ہیں، یعنی کرنٹ بہہ رہا ہے جب تک کہ آپ ESP32 سے ریلے ماڈیول کو سرکٹ کھولنے اور کرنٹ کے بہاؤ کو روکنے کے لیے سگنل نہ بھیجیں۔
- NO (عام طور پر کھلا): عام طور پر کھلی ترتیب دوسری طرح سے کام کرتی ہے: NO اور COM پنوں کے درمیان کوئی تعلق نہیں ہے، لہذا سرکٹ ٹوٹ جاتا ہے جب تک کہ آپ ESP32 سے سرکٹ کو بند کرنے کے لیے سگنل نہ بھیجیں۔
کنٹرول پنکم والیومtagای سائیڈ میں چار پنوں کا سیٹ اور تین پنوں کا سیٹ ہے۔ پہلا سیٹ ماڈیول کو پاور اپ کرنے کے لیے VCC اور GND پر مشتمل ہے، اور بالترتیب نیچے اور اوپر والے ریلے کو کنٹرول کرنے کے لیے ان پٹ 1 (IN1) اور ان پٹ 2 (IN2) پر مشتمل ہے۔
اگر آپ کے ریلے ماڈیول میں صرف ایک چینل ہے، تو آپ کے پاس صرف ایک IN پن ہوگا۔ اگر آپ کے پاس چار چینلز ہیں، تو آپ کے پاس چار IN پن ہوں گے، وغیرہ۔
آپ جو سگنل IN پنوں کو بھیجتے ہیں، اس سے یہ طے ہوتا ہے کہ ریلے فعال ہے یا نہیں۔ ریلے اس وقت متحرک ہوتا ہے جب ان پٹ تقریباً 2V سے نیچے جاتا ہے۔ اس کا مطلب ہے کہ آپ کے پاس درج ذیل منظرنامے ہوں گے:
- عام طور پر بند کنفیگریشن (NC):
- ہائی سگنل - کرنٹ بہہ رہا ہے۔
- کم سگنل - کرنٹ نہیں بہہ رہا ہے۔
- عام طور پر اوپن کنفیگریشن (NO):
- ہائی سگنل - کرنٹ نہیں بہہ رہا ہے۔
- کم سگنل - بہاؤ میں کرنٹ
آپ کو عام طور پر بند کنفیگریشن کا استعمال کرنا چاہیے جب کرنٹ زیادہ تر وقت بہہ رہا ہو، اور آپ اسے کبھی کبھار ہی روکنا چاہتے ہیں۔
عام طور پر کھلی ترتیب کا استعمال کریں جب آپ چاہتے ہیں کہ کرنٹ کبھی کبھار جاری رہے (مثال کے طور پرample، al کو آن کریں۔amp کبھی کبھار)۔
بجلی کی فراہمی کا انتخابپنوں کا دوسرا سیٹ GND، VCC، اور JD-VCC پنوں پر مشتمل ہے۔
JD-VCC پن ریلے کے برقی مقناطیس کو طاقت دیتا ہے۔ نوٹ کریں کہ ماڈیول میں ایک جمپر کیپ ہے جو VCC اور JD-VCC پنوں کو جوڑتا ہے۔ جو یہاں دکھایا گیا ہے وہ پیلا ہے، لیکن آپ کا رنگ مختلف ہو سکتا ہے۔
جمپر کیپ آن کے ساتھ، VCC اور JD-VCC پن جڑے ہوئے ہیں۔ اس کا مطلب ہے کہ ریلے برقی مقناطیس براہ راست ESP32 پاور پن سے چلتا ہے، لہذا ریلے ماڈیول اور ESP32 سرکٹس ایک دوسرے سے جسمانی طور پر الگ تھلگ نہیں ہیں۔
جمپر کیپ کے بغیر، آپ کو JD-VCC پن کے ذریعے ریلے کے برقی مقناطیس کو طاقت دینے کے لیے ایک آزاد طاقت کا ذریعہ فراہم کرنے کی ضرورت ہے۔ یہ کنفیگریشن ماڈیول کے بلٹ ان اوپٹوکوپلر کے ساتھ ESP32 سے ریلے کو جسمانی طور پر الگ کر دیتی ہے، جو برقی اسپائکس کی صورت میں ESP32 کو پہنچنے والے نقصان کو روکتی ہے۔
یوجنابدقانتباہ: اعلی والیوم کا استعمالtage بجلی کی فراہمی سنگین چوٹ کا سبب بن سکتی ہے۔
لہذا، ہائی سپلائی والیوم کے بجائے 5 ملی میٹر ایل ای ڈی استعمال کی جاتی ہیں۔tagتجربے میں ای بلب۔ اگر آپ مینز والیوم سے واقف نہیں ہیں۔tage کسی سے پوچھیں جو آپ کی مدد کرنے والا ہے۔ ESP کو پروگرام کرتے وقت یا اپنے سرکٹ کی وائرنگ کرتے وقت یقینی بنائیں کہ مینز والیوم سے سب کچھ منقطع ہے۔tage.ESP32 کے لیے لائبریری کی تنصیب
اس کی تعمیر کے لیے web سرور، ہم ESPAsync استعمال کرتے ہیں۔Webسرور لائبریری اور AsyncTCP لائبریری۔
ESPAsync انسٹال کرناWebسرور لائبریری
انسٹال کرنے کے لیے اگلے مراحل پر عمل کریں۔ ESPAsyncWebسرور لائبریری:
- ESPAsync ڈاؤن لوڈ کرنے کے لیے یہاں کلک کریں۔Webسرور لائبریری۔ آپ کو ہونا چاہئے
آپ کے ڈاؤن لوڈز فولڈر میں زپ فولڈر - .zip فولڈر کو ان زپ کریں اور آپ کو ESPAsync ملنا چاہیے۔Webسرور-ماسٹر فولڈر
- ESPAsync سے اپنے فولڈر کا نام تبدیل کریں۔WebESPAsync کے لیے سرور-ماسٹرWebسرور
- ESPAsync کو منتقل کریں۔Webآپ کے Arduino IDE انسٹالیشن لائبریریوں کے فولڈر میں سرور فولڈر
متبادل طور پر، اپنے Arduino IDE میں، آپ Sketch > Include پر جا سکتے ہیں۔
لائبریری > .ZIP لائبریری شامل کریں… اور وہ لائبریری منتخب کریں جسے آپ نے ابھی ڈاؤن لوڈ کیا ہے۔
ESP32 کے لیے AsyncTCP لائبریری کو انسٹال کرنا
دی ESPAsyncWebسرور لائبریری کی ضرورت ہے۔ AsyncTCP کام کرنے کے لئے لائبریری. پیروی کریں۔
اس لائبریری کو انسٹال کرنے کے اگلے مراحل:
- AsyncTCP لائبریری کو ڈاؤن لوڈ کرنے کے لیے یہاں کلک کریں۔ آپ کو اپنے ڈاؤن لوڈز فولڈر میں .zip فولڈر ہونا چاہیے۔
- زپ فولڈر کو ان زپ کریں اور آپ کو AsyncTCP-master فولڈر ملنا چاہیے۔
1. اپنے فولڈر کا نام AsyncTCP-master سے AsyncTCP میں تبدیل کریں۔
3. AsyncTCP فولڈر کو اپنے Arduino IDE انسٹالیشن لائبریری فولڈر میں منتقل کریں۔
4. آخر میں، اپنا Arduino IDE دوبارہ کھولیں۔
متبادل طور پر، اپنے Arduino IDE میں، آپ Sketch > Include پر جا سکتے ہیں۔
لائبریری > .ZIP لائبریری شامل کریں… اور وہ لائبریری منتخب کریں جسے آپ نے ابھی ڈاؤن لوڈ کیا ہے۔
کوڈ
ہم ESP32 کو Arduino IDE کا استعمال کرتے ہوئے پروگرام کریں گے، اس لیے آگے بڑھنے سے پہلے یقینی بنائیں کہ آپ کے پاس ESP32 ایڈ آن انسٹال ہے:(اگر آپ یہ مرحلہ پہلے ہی کر چکے ہیں، تو آپ اگلے مرحلے پر جا سکتے ہیں۔)
Arduino IDE میں ESP32 ایڈ آن انسٹال کرنا
مطلوبہ لائبریریوں کو انسٹال کرنے کے بعد، پروجیکٹ_7_ESP32_Relay_ کوڈ کھولیں۔Webarduino IDE میں _Server.ino۔
کوڈ اپ لوڈ کرنے سے پہلے، اپنے نیٹ ورک کی اسناد داخل کرنا نہ بھولیں تاکہ ESP آپ کے مقامی نیٹ ورک سے منسلک ہو سکے۔مظاہرہ
ضروری تبدیلیاں کرنے کے بعد، کوڈ کو اپنے ESP32 پر اپ لوڈ کریں۔ کوڈ ریفرنس کے مراحل کو اپ لوڈ کریں۔
سیریل مانیٹر کو 115200 کے باؤڈ ریٹ پر کھولیں اور اس کا IP ایڈریس حاصل کرنے کے لیے ESP32 EN بٹن کو دبائیں۔ پھر، اپنے مقامی نیٹ ورک میں ایک براؤزر کھولیں اور ESP32 IP ایڈریس ٹائپ کریں web سرور
سیریل مانیٹر کو 115200 کے باؤڈ ریٹ پر کھولیں اور اس کا IP ایڈریس حاصل کرنے کے لیے ESP32 EN بٹن کو دبائیں۔ پھر، اپنے مقامی نیٹ ورک میں ایک براؤزر کھولیں اور ESP32 IP ایڈریس ٹائپ کریں web سرورنوٹ: آپ کا براؤزر اور ESP32 ایک ہی LAN سے منسلک ہونا چاہیے۔
آپ کو دو بٹنوں کے ساتھ مندرجہ ذیل کچھ ملنا چاہئے جیسا کہ آپ نے اپنے کوڈ میں ریلے کی تعداد کی وضاحت کی ہے۔اب، آپ اپنے سمارٹ فون کا استعمال کرتے ہوئے اپنے ریلے کو کنٹرول کرنے کے لیے بٹنوں کا استعمال کر سکتے ہیں۔
پروجیکٹ_8_آؤٹ پٹ_اسٹیٹ_سائیکرونائزیشن_ Web_سرور
یہ پروجیکٹ دکھاتا ہے کہ ای ایس پی 32 یا ای ایس پی 8266 آؤٹ پٹس کو کس طرح کنٹرول کرنا ہے۔ web سرور اور ایک جسمانی بٹن بیک وقت۔ آؤٹ پٹ اسٹیٹ کو اپ ڈیٹ کیا جاتا ہے۔ web صفحہ چاہے اسے فزیکل بٹن کے ذریعے تبدیل کیا گیا ہو یا web سرور
پروجیکٹ ختمview
آئیے اس پر ایک سرسری نظر ڈالتے ہیں کہ پروجیکٹ کیسے کام کرتا ہے۔ESP32 یا ESP8266 میزبانی کرتا ہے۔ web سرور جو آپ کو آؤٹ پٹ کی حالت کو کنٹرول کرنے کی اجازت دیتا ہے۔
- موجودہ آؤٹ پٹ اسٹیٹ پر ظاہر ہوتا ہے۔ web سرور
- ESP ایک فزیکل پش بٹن سے بھی جڑا ہوا ہے جو اسی آؤٹ پٹ کو کنٹرول کرتا ہے۔
- اگر آپ فزیکل puhsbutton کا استعمال کرتے ہوئے آؤٹ پٹ سٹیٹ کو تبدیل کرتے ہیں، تو اس کی موجودہ حالت کو بھی اپ ڈیٹ کر دیا جاتا ہے۔ web سرور
خلاصہ یہ کہ یہ پروجیکٹ آپ کو ایک کا استعمال کرتے ہوئے اسی آؤٹ پٹ کو کنٹرول کرنے کی اجازت دیتا ہے۔ web سرور اور ایک پش بٹن بیک وقت۔ جب بھی آؤٹ پٹ کی حالت بدلتی ہے، web سرور کو اپ ڈیٹ کیا گیا ہے۔
حصوں کی ضرورت ہے
یہاں حصوں کی ایک فہرست ہے جو آپ کو سرکٹ بنانے کی ضرورت ہے:
- ESP32 DEVKIT V1 بورڈ
- 5 ملی میٹر ایل ای ڈی
- 220 اوہم ریزسٹر
- دبانے والا بٹن
- 10k اوہم ریزسٹر
- بریڈ بورڈ
- جمپر تاریں۔
یوجنابدقESP32 کے لیے لائبریری کی تنصیب
اس کی تعمیر کے لیے web سرور، ہم ESPAsync استعمال کرتے ہیں۔Webسرور لائبریری اور AsyncTCP لائبریری۔ (اگر آپ یہ مرحلہ پہلے ہی کر چکے ہیں، تو آپ اگلے مرحلے پر جا سکتے ہیں۔)
ESPAsync انسٹال کرناWebسرور لائبریری
ESPAsync انسٹال کرنے کے لیے اگلے مراحل پر عمل کریں۔Webسرور لائبریری:
- ESPAsync ڈاؤن لوڈ کرنے کے لیے یہاں کلک کریں۔Webسرور لائبریری۔ آپ کو ہونا چاہئے
آپ کے ڈاؤن لوڈز فولڈر میں زپ فولڈر - .zip فولڈر کو ان زپ کریں اور آپ کو ESPAsync ملنا چاہیے۔Webسرور-ماسٹر فولڈر
- ESPAsync سے اپنے فولڈر کا نام تبدیل کریں۔WebESPAsync کے لیے سرور-ماسٹرWebسرور
- ESPAsync کو منتقل کریں۔Webآپ کے Arduino IDE انسٹالیشن لائبریریوں کے فولڈر میں سرور فولڈر
متبادل طور پر، اپنے Arduino IDE میں، آپ Sketch > Include پر جا سکتے ہیں۔
لائبریری > .ZIP لائبریری شامل کریں… اور وہ لائبریری منتخب کریں جسے آپ نے ابھی ڈاؤن لوڈ کیا ہے۔
ESP32 کے لیے AsyncTCP لائبریری کو انسٹال کرنا
ESPAsyncWebسرور لائبریری کو کام کرنے کے لیے AsyncTCP لائبریری کی ضرورت ہوتی ہے۔ اس لائبریری کو انسٹال کرنے کے لیے اگلے مراحل پر عمل کریں:
- AsyncTCP لائبریری کو ڈاؤن لوڈ کرنے کے لیے یہاں کلک کریں۔ آپ کو اپنے ڈاؤن لوڈز فولڈر میں .zip فولڈر ہونا چاہیے۔
- زپ فولڈر کو ان زپ کریں اور آپ کو AsyncTCP-master فولڈر ملنا چاہیے۔
- اپنے فولڈر کا نام AsyncTCP-master سے AsyncTCP رکھ دیں۔
- AsyncTCP فولڈر کو اپنے Arduino IDE انسٹالیشن لائبریری فولڈر میں منتقل کریں۔
- آخر میں، اپنا Arduino IDE دوبارہ کھولیں۔
متبادل طور پر، اپنے Arduino IDE میں، آپ Sketch > Include پر جا سکتے ہیں۔
لائبریری > .ZIP لائبریری شامل کریں… اور وہ لائبریری منتخب کریں جسے آپ نے ابھی ڈاؤن لوڈ کیا ہے۔
کوڈ
ہم ESP32 کو Arduino IDE کا استعمال کرتے ہوئے پروگرام کریں گے، اس لیے آگے بڑھنے سے پہلے یقینی بنائیں کہ آپ کے پاس ESP32 ایڈ آن انسٹال ہے:(اگر آپ یہ مرحلہ پہلے ہی کر چکے ہیں، تو آپ اگلے مرحلے پر جا سکتے ہیں۔)
Arduino IDE میں ESP32 ایڈ آن انسٹال کرنا
مطلوبہ لائبریریوں کو انسٹال کرنے کے بعد، کوڈ کو کھولیں۔
پروجیکٹ_8_آؤٹ پٹ_اسٹیٹ_سائیکرونائزیشن_Webarduino IDE میں _Server.ino۔
کوڈ اپ لوڈ کرنے سے پہلے، اپنے نیٹ ورک کی اسناد داخل کرنا نہ بھولیں تاکہ ESP آپ کے مقامی نیٹ ورک سے منسلک ہو سکے۔
کوڈ کیسے کام کرتا ہے۔
بٹن اسٹیٹ اور آؤٹ پٹ اسٹیٹ
ledState متغیر ایل ای ڈی آؤٹ پٹ سٹیٹ رکھتا ہے۔ پہلے سے طے شدہ طور پر، جب web سرور شروع ہوتا ہے، یہ کم ہے۔
بٹن اسٹیٹ اور لاسٹ بٹن اسٹیٹ کا استعمال اس بات کا پتہ لگانے کے لیے کیا جاتا ہے کہ آیا پش بٹن دبایا گیا تھا یا نہیں۔بٹن (web سرور)
ہم نے index_html متغیر پر بٹن بنانے کے لیے HTML کو شامل نہیں کیا۔
اس کی وجہ یہ ہے کہ ہم اسے موجودہ ایل ای ڈی حالت کے لحاظ سے تبدیل کرنے کے قابل ہونا چاہتے ہیں جسے پش بٹن سے بھی تبدیل کیا جا سکتا ہے۔
لہذا، ہم نے بٹن %BUTTONPLACEHOLDER% کے لیے ایک پلیس ہولڈر بنایا ہے جسے بعد میں کوڈ پر بٹن بنانے کے لیے HTML متن سے بدل دیا جائے گا (یہ پروسیسر() فنکشن میں ہوتا ہے)۔پروسیسر()
پروسیسر() فنکشن ایچ ٹی ایم ایل ٹیکسٹ پر کسی بھی پلیس ہولڈر کو حقیقی قدروں سے بدل دیتا ہے۔ سب سے پہلے، یہ چیک کرتا ہے کہ آیا ایچ ٹی ایم ایل کے متن میں کوئی ہے یا نہیں۔
پلیس ہولڈرز %BUTTONPLACEHOLDER%۔پھر، theoutputState() فنکشن کو کال کریں جو موجودہ آؤٹ پٹ اسٹیٹ کو لوٹاتا ہے۔ ہم اسے outputStateValue متغیر میں محفوظ کرتے ہیں۔
اس کے بعد، صحیح حالت کے ساتھ بٹن کو ظاہر کرنے کے لیے HTML ٹیکسٹ بنانے کے لیے اس قدر کا استعمال کریں:
HTTP GET آؤٹ پٹ اسٹیٹ کو تبدیل کرنے کی درخواست (جاوا اسکرپٹ)
جب آپ بٹن دباتے ہیں، تو ٹوگل چیک باکس() فنکشن کہا جاتا ہے۔ یہ فنکشن مختلف پر درخواست کرے گا۔ URLایل ای ڈی کو آن یا آف کرنے کے لیے۔ایل ای ڈی کو آن کرنے کے لیے، یہ /update?state=1 پر درخواست کرتا ہے۔ URL:
بصورت دیگر، یہ /update?state=0 پر درخواست کرتا ہے۔ URL.
اسٹیٹ کو اپ ڈیٹ کرنے کے لیے HTTP GET درخواست (جاوا اسکرپٹ)
پر آؤٹ پٹ اسٹیٹ کو اپ ڈیٹ رکھنے کے لیے web سرور، ہم مندرجہ ذیل فنکشن کو کال کرتے ہیں جو /state پر نئی درخواست کرتا ہے۔ URL ہر سیکنڈدرخواستوں کو ہینڈل کریں۔
پھر، ہمیں یہ سنبھالنے کی ضرورت ہے کہ جب ESP32 یا ESP8266 کو ان پر درخواستیں موصول ہوتی ہیں URLs.
جب روٹ پر درخواست موصول ہوتی ہے /URL، ہم HTML صفحہ کے ساتھ ساتھ پروسیسر بھیجتے ہیں۔درج ذیل سطریں چیک کرتی ہیں کہ آیا آپ کو /update?state=1 یا /update?state=0 پر کوئی درخواست موصول ہوئی ہے۔ URL اور اس کے مطابق ledState کو تبدیل کرتا ہے۔
جب /state پر درخواست موصول ہوتی ہے۔ URL، ہم موجودہ آؤٹ پٹ حالت بھیجتے ہیں:
لوپ()
لوپ() میں، ہم پش بٹن کو ڈیباؤنس کرتے ہیں اور ledState کی قدر کے لحاظ سے LED کو آن یا آف کرتے ہیں۔ متغیرمظاہرہ
کوڈ کو اپنے ESP32 بورڈ پر اپ لوڈ کریں۔ کوڈ کے حوالے کے مراحل کو اپ لوڈ کریں۔
پھر، 115200 کے باؤڈ ریٹ پر سیریل مانیٹر کھولیں۔ IP ایڈریس حاصل کرنے کے لیے آن بورڈ EN/RST بٹن کو دبائیں۔اپنے مقامی نیٹ ورک پر ایک براؤزر کھولیں، اور ESP IP ایڈریس ٹائپ کریں۔ آپ کو تک رسائی حاصل ہونی چاہئے۔ web سرور جیسا کہ ذیل میں دکھایا گیا ہے۔
نوٹ: آپ کا براؤزر اور ESP32 ایک ہی LAN سے منسلک ہونا چاہیے۔آپ بٹن کو ٹوگل کر سکتے ہیں۔ web ایل ای ڈی کو آن کرنے کے لیے سرور۔
آپ اسی ایل ای ڈی کو فزیکل پش بٹن سے بھی کنٹرول کر سکتے ہیں۔ اس کی حالت ہمیشہ پر خود بخود اپ ڈیٹ ہوجائے گی۔ web سرور
پروجیکٹ 9 ESP32 DHT11 Web سرور
اس پروجیکٹ میں، آپ سیکھیں گے کہ ایک غیر مطابقت پذیر ESP32 کیسے بنایا جائے۔ web DHT11 والا سرور جو Arduino IDE کا استعمال کرتے ہوئے درجہ حرارت اور نمی دکھاتا ہے۔
شرطیں
دی web سرور کو ریفریش کرنے کی ضرورت کے بغیر ہم خود بخود ریڈنگ کو اپ ڈیٹ کریں گے۔ web صفحہ
اس منصوبے کے ساتھ آپ سیکھیں گے:
- DHT سینسر سے درجہ حرارت اور نمی کیسے پڑھیں؛
- ایک غیر مطابقت پذیر بنائیں web سرور کا استعمال کرتے ہوئے ESPAsyncWebسرور لائبریری;
- سینسر ریڈنگ کو ریفریش کیے بغیر خود بخود اپ ڈیٹ کریں۔ web صفحہ
غیر مطابقت پذیر Web سرور
کی تعمیر کے لئے web سرور ہم استعمال کریں گے۔ ESPAsyncWebسرور لائبریری جو ایک غیر مطابقت پذیر بنانے کا ایک آسان طریقہ فراہم کرتا ہے۔ web سرور ایک متضاد تعمیر کرنا web سرور کے پاس کئی ایڈون ہیں۔tages جیسا کہ لائبریری GitHub صفحہ میں ذکر کیا گیا ہے، جیسے:
- "ایک ہی وقت میں ایک سے زیادہ کنکشن ہینڈل کریں"؛
- "جب آپ جواب بھیجتے ہیں، تو آپ فوری طور پر دوسرے کنکشنز کو سنبھالنے کے لیے تیار ہوتے ہیں جب کہ سرور پس منظر میں جواب بھیجنے کا خیال رکھتا ہے"؛
- "سادہ ٹیمپلیٹ پروسیسنگ انجن ٹیمپلیٹس کو ہینڈل کرنے کے لیے"؛
حصوں کی ضرورت ہے
اس ٹیوٹوریل کو مکمل کرنے کے لیے آپ کو درج ذیل حصوں کی ضرورت ہے:
- ESP32 ترقیاتی بورڈ
- ڈی ایچ ٹی 11 ماڈیول
- بریڈ بورڈ
- جمپر تاریں۔
یوجنابدقلائبریریوں کی تنصیب
آپ کو اس پروجیکٹ کے لیے کچھ لائبریریاں انسٹال کرنے کی ضرورت ہے:
- دی ڈی ایچ ٹی اور Adafruit یونیفائیڈ سینسر DHT سینسر سے پڑھنے کے لیے ڈرائیور لائبریریاں۔
- ESPAsyncWebسرور اور Async TCP غیر مطابقت پذیر بنانے کے لیے لائبریریاں web سرور
ان لائبریریوں کو انسٹال کرنے کے لیے اگلی ہدایات پر عمل کریں:
ڈی ایچ ٹی سینسر لائبریری کی تنصیب
Arduino IDE کا استعمال کرتے ہوئے DHT سینسر سے پڑھنے کے لیے، آپ کو انسٹال کرنے کی ضرورت ہے۔ ڈی ایچ ٹی سینسر لائبریری. لائبریری کو انسٹال کرنے کے لیے اگلے مراحل پر عمل کریں۔
- DHT سینسر لائبریری کو ڈاؤن لوڈ کرنے کے لیے یہاں کلک کریں۔ آپ کو اپنے ڈاؤن لوڈز فولڈر میں .zip فولڈر ہونا چاہیے۔
- زپ فولڈر کو ان زپ کریں اور آپ کو DHT-sensor-library-master فولڈر ملنا چاہیے۔
- اپنے فولڈر کا نام DHT-sensor-library-master سے DHT_sensor میں تبدیل کریں۔
- DHT_sensor فولڈر کو اپنے Arduino IDE انسٹالیشن لائبریری فولڈر میں منتقل کریں۔
- آخر میں، اپنا Arduino IDE دوبارہ کھولیں۔
Adafruit یونیفائیڈ سینسر ڈرائیور کو انسٹال کرنا
آپ کو بھی انسٹال کرنے کی ضرورت ہے۔ Adafruit یونیفائیڈ سینسر ڈرائیور لائبریری DHT سینسر کے ساتھ کام کرنا۔ لائبریری کو انسٹال کرنے کے لیے اگلے مراحل پر عمل کریں۔
- Adafruit Unified Sensor لائبریری کو ڈاؤن لوڈ کرنے کے لیے یہاں کلک کریں۔ آپ کو اپنے ڈاؤن لوڈز فولڈر میں .zip فولڈر ہونا چاہیے۔
- زپ فولڈر کو ان زپ کریں اور آپ کو Adafruit_sensor-master فولڈر ملنا چاہیے۔
- اپنے فولڈر کا نام Adafruit_sensor-master سے Adafruit_sensor میں تبدیل کریں۔
- Adafruit_sensor فولڈر کو اپنے Arduino IDE انسٹالیشن لائبریری فولڈر میں منتقل کریں۔
- آخر میں، اپنا Arduino IDE دوبارہ کھولیں۔
ESPAsync انسٹال کرناWebسرور لائبریری
انسٹال کرنے کے لیے اگلے مراحل پر عمل کریں۔ ESPAsyncWebسرور لائبریری:
- ESPAsync ڈاؤن لوڈ کرنے کے لیے یہاں کلک کریں۔Webسرور لائبریری۔ آپ کو ہونا چاہئے
آپ کے ڈاؤن لوڈز فولڈر میں زپ فولڈر - زپ فولڈر کو ان زپ کریں اور آپ کو کرنا چاہئے۔
ESPAsync حاصل کریں۔Webسرور-ماسٹر فولڈر - ESPAsync سے اپنے فولڈر کا نام تبدیل کریں۔WebESPAsync کے لیے سرور-ماسٹرWebسرور
- ESPAsync کو منتقل کریں۔Webآپ کے Arduino IDE انسٹالیشن لائبریریوں کے فولڈر میں سرور فولڈر
ESP32 کے لیے Async TCP لائبریری کو انسٹال کرنا
دی ESPAsyncWebسرور لائبریری کی ضرورت ہے۔ AsyncTCP کام کرنے کے لئے لائبریری. اس لائبریری کو انسٹال کرنے کے لیے اگلے مراحل پر عمل کریں:
- AsyncTCP لائبریری کو ڈاؤن لوڈ کرنے کے لیے یہاں کلک کریں۔ آپ کو اپنے ڈاؤن لوڈز فولڈر میں .zip فولڈر ہونا چاہیے۔
- زپ فولڈر کو ان زپ کریں اور آپ کو AsyncTCP-master فولڈر ملنا چاہیے۔
- اپنے فولڈر کا نام AsyncTCP-master سے AsyncTCP رکھ دیں۔
- AsyncTCP فولڈر کو اپنے Arduino IDE انسٹالیشن لائبریری فولڈر میں منتقل کریں۔
- آخر میں، اپنا Arduino IDE دوبارہ کھولیں۔
کوڈ
ہم ESP32 کو Arduino IDE کا استعمال کرتے ہوئے پروگرام کریں گے، اس لیے آگے بڑھنے سے پہلے یقینی بنائیں کہ آپ کے پاس ESP32 ایڈ آن انسٹال ہے:(اگر آپ یہ مرحلہ پہلے ہی کر چکے ہیں، تو آپ اگلے مرحلے پر جا سکتے ہیں۔)
Arduino IDE میں ESP32 ایڈ آن انسٹال کرنا
مطلوبہ لائبریریوں کو انسٹال کرنے کے بعد، کوڈ کو کھولیں۔
پروجیکٹ_9_ESP32_DHT11_Webarduino IDE میں _Server.ino۔
کوڈ اپ لوڈ کرنے سے پہلے، اپنے نیٹ ورک کی اسناد داخل کرنا نہ بھولیں تاکہ ESP آپ کے مقامی نیٹ ورک سے منسلک ہو سکے۔کوڈ کیسے کام کرتا ہے۔
مندرجہ ذیل پیراگراف میں ہم وضاحت کریں گے کہ کوڈ کیسے کام کرتا ہے۔ اگر آپ مزید جاننا چاہتے ہیں تو پڑھتے رہیں یا حتمی نتیجہ دیکھنے کے لیے ڈیموسٹریشن سیکشن پر جائیں۔
لائبریریاں درآمد کرنا
پہلے، مطلوبہ لائبریریاں درآمد کریں۔ وائی فائی، ESPAsyncWebبنانے کے لیے سرور اور ESPAsyncTCP کی ضرورت ہے۔ web سرور Adafruit_Sensor اور DHT لائبریریوں کو DHT11 یا DHT22 سینسر سے پڑھنے کی ضرورت ہے۔متغیرات کی تعریف
GPIO کی وضاحت کریں جس سے DHT ڈیٹا پن منسلک ہے۔ اس صورت میں، یہ GPIO 4 سے منسلک ہے۔پھر، DHT سینسر کی قسم منتخب کریں جسے آپ استعمال کر رہے ہیں۔ ہمارے سابق میںampلی، ہم DHT22 استعمال کر رہے ہیں۔ اگر آپ کسی اور قسم کا استعمال کر رہے ہیں، تو آپ کو صرف اپنے سینسر کو غیر تبصرہ کرنے اور باقی سبھی پر تبصرہ کرنے کی ضرورت ہے۔
DHT آبجیکٹ کو اس قسم اور پن کے ساتھ انسٹینٹیٹ کریں جس کی ہم نے پہلے وضاحت کی ہے۔ایک Async بنائیںWebپورٹ 80 پر سرور آبجیکٹ۔
درجہ حرارت اور نمی کے افعال پڑھیں
ہم نے دو فنکشن بنائے ہیں: ایک درجہ حرارت کو پڑھنے کے لیے ہم نے دو فنکشن بنائے ہیں: ایک درجہ حرارت کو پڑھنے کے لیے (readDHTTemperature()) اور دوسرا نمی کو پڑھنا (readDHTHumidity())۔سینسر ریڈنگ حاصل کرنا اتنا ہی آسان ہے جتنا کہ سینسر ریڈنگ حاصل کرنا اتنا ہی آسان ہے جتنا dht آبجیکٹ پر readTemperature() اور readHumidity() طریقے استعمال کرنا۔
ہمارے پاس ایک شرط بھی ہے جو سنسر ریڈنگ حاصل کرنے میں ناکام ہونے کی صورت میں دو ڈیش (–) لوٹاتا ہے۔
ریڈنگ کو سٹرنگ ٹائپ کے طور پر واپس کیا جاتا ہے۔ فلوٹ کو سٹرنگ میں تبدیل کرنے کے لیے، String() فنکشن استعمال کریں۔
پہلے سے طے شدہ طور پر، ہم درجہ حرارت کو سیلسیس ڈگری میں پڑھ رہے ہیں۔ فارن ہائیٹ ڈگری میں درجہ حرارت حاصل کرنے کے لیے، سیلسیس میں درجہ حرارت پر تبصرہ کریں اور فارن ہائیٹ میں درجہ حرارت کو غیر کمنٹ کریں، تاکہ آپ کے پاس درج ذیل چیزیں ہوں:
کوڈ اپ لوڈ کریں۔
اب، اپنے ESP32 پر کوڈ اپ لوڈ کریں۔ یقینی بنائیں کہ آپ نے صحیح بورڈ اور COM پورٹ کا انتخاب کیا ہے۔ کوڈ ریفرنس کے مراحل کو اپ لوڈ کریں۔
اپ لوڈ کرنے کے بعد، 115200 کے باؤڈ ریٹ پر سیریل مانیٹر کھولیں۔ ESP32 ری سیٹ بٹن دبائیں۔ ESP32 آئی پی ایڈریس سیریل میں پرنٹ کیا جانا چاہئے مانیٹرمظاہرہ
ایک براؤزر کھولیں اور ESP32 IP ایڈریس ٹائپ کریں۔ آپ کا web سرور کو تازہ ترین سینسر ریڈنگ دکھانی چاہیے۔
نوٹ: آپ کا براؤزر اور ESP32 ایک ہی LAN سے منسلک ہونا چاہیے۔
نوٹ کریں کہ درجہ حرارت اور نمی کی ریڈنگز کو ریفریش کرنے کی ضرورت کے بغیر خود بخود اپ ڈیٹ ہوجاتا ہے۔ web صفحہ
پروجیکٹ_10_ESP32_OLED_Display
یہ پروجیکٹ دکھاتا ہے کہ Arduino IDE کا استعمال کرتے ہوئے ESP0.96 کے ساتھ 1306 انچ SSD32 OLED ڈسپلے کا استعمال کیسے کریں۔
0.96 انچ OLED ڈسپلے پیش کر رہا ہے۔
دی OLED ڈسپلے جسے ہم اس ٹیوٹوریل میں استعمال کریں گے وہ SSD1306 ماڈل ہے: ایک مونو کلر، 0.96 انچ ڈسپلے 128×64 پکسلز کے ساتھ جیسا کہ درج ذیل تصویر میں دکھایا گیا ہے۔OLED ڈسپلے کو بیک لائٹ کی ضرورت نہیں ہوتی ہے، جس کے نتیجے میں تاریک ماحول میں بہت اچھا کنٹراسٹ ہوتا ہے۔ مزید برآں، اس کے پکسلز توانائی صرف اس وقت استعمال کرتے ہیں جب وہ آن ہوتے ہیں، اس لیے OLED ڈسپلے دیگر ڈسپلے کے مقابلے میں کم پاور استعمال کرتا ہے۔
چونکہ OLED ڈسپلے I2C کمیونیکیشن پروٹوکول کا استعمال کرتا ہے، وائرنگ بہت آسان ہے۔ آپ درج ذیل جدول کو بطور حوالہ استعمال کر سکتے ہیں۔
OLED پن | ESP32 |
ون | 3.3V |
جی این ڈی | جی این ڈی |
ایس سی ایل | جی پی آئی او 22 |
ایس ڈی اے | جی پی آئی او 21 |
یوجنابدقSSD1306 OLED لائبریری - ESP32 انسٹال کرنا
ESP32 کے ساتھ OLED ڈسپلے کو کنٹرول کرنے کے لیے کئی لائبریریاں دستیاب ہیں۔
اس ٹیوٹوریل میں ہم دو Adafruit لائبریریوں کا استعمال کریں گے: Adafruit_SSD1306 لائبریری اور Adafruit_GFX لائبریری.
ان لائبریریوں کو انسٹال کرنے کے لیے اگلے مراحل پر عمل کریں۔
- اپنا Arduino IDE کھولیں اور Sketch > Include Library > Manage Library پر جائیں۔ لائبریری مینیجر کو کھولنا چاہیے۔
- سرچ باکس میں "SSD1306" ٹائپ کریں اور Adafruit سے SSD1306 لائبریری انسٹال کریں۔
- Adafruit سے SSD1306 لائبریری انسٹال کرنے کے بعد، سرچ باکس میں "GFX" ٹائپ کریں اور لائبریری انسٹال کریں۔
- لائبریریوں کو انسٹال کرنے کے بعد، اپنے Arduino IDE کو دوبارہ شروع کریں۔
کوڈ
مطلوبہ لائبریریوں کو انسٹال کرنے کے بعد، arduino IDE میں Project_10_ESP32_OLED_Display.ino کھولیں۔ کوڈ
ہم ESP32 کو Arduino IDE کا استعمال کرتے ہوئے پروگرام کریں گے، اس لیے آگے بڑھنے سے پہلے یقینی بنائیں کہ آپ کے پاس ESP32 ایڈ آن انسٹال ہے: (اگر آپ یہ مرحلہ پہلے ہی کر چکے ہیں، تو آپ اگلے مرحلے پر جا سکتے ہیں۔)
Arduino IDE میں ESP32 ایڈ آن انسٹال کرناکوڈ کیسے کام کرتا ہے۔
لائبریریاں درآمد کرنا
سب سے پہلے، آپ کو ضروری لائبریریوں کو درآمد کرنے کی ضرورت ہے. I2C استعمال کرنے کے لیے وائر لائبریری اور ڈسپلے پر لکھنے کے لیے Adafruit لائبریری: Adafruit_GFX اور Adafruit_SSD1306۔OLED ڈسپلے شروع کریں۔
پھر، آپ اپنی OLED چوڑائی اور اونچائی کی وضاحت کرتے ہیں۔ اس میں سابقampلی، ہم 128×64 OLED ڈسپلے استعمال کر رہے ہیں۔ اگر آپ دوسرے سائز استعمال کر رہے ہیں، تو آپ اسے SCREEN_WIDTH، اور SCREEN_HEIGHT متغیرات میں تبدیل کر سکتے ہیں۔پھر، I2C کمیونیکیشن پروٹوکول (&Wire) کے ساتھ پہلے بیان کردہ چوڑائی اور اونچائی کے ساتھ ڈسپلے آبجیکٹ کو شروع کریں۔
(-1) پیرامیٹر کا مطلب ہے کہ آپ کے OLED ڈسپلے میں RESET پن نہیں ہے۔ اگر آپ کے OLED ڈسپلے میں RESET پن ہے، تو اسے GPIO سے منسلک ہونا چاہیے۔ اس صورت میں، آپ کو پیرامیٹر کے طور پر GPIO نمبر پاس کرنا چاہیے۔
سیٹ اپ () میں، ڈیبگنگ کے مقاصد کے لیے سیریل مانیٹر کو 115200 کے باؤڈ راؤٹ پر شروع کریں۔OLED ڈسپلے کو start() طریقہ کے ساتھ درج ذیل کریں:
یہ ٹکڑا سیریل مانیٹر پر ایک پیغام بھی پرنٹ کرتا ہے، اگر ہم ڈسپلے سے منسلک نہیں ہو پاتے ہیں۔
اگر آپ مختلف OLED ڈسپلے استعمال کر رہے ہیں، تو آپ کو OLED ایڈریس تبدیل کرنے کی ضرورت پڑ سکتی ہے۔ ہمارے معاملے میں، پتہ 0x3C ہے۔
ڈسپلے شروع کرنے کے بعد، دو سیکنڈ کی تاخیر شامل کریں، تاکہ OLED کے پاس متن لکھنے سے پہلے شروع کرنے کے لیے کافی وقت ہو:
ڈسپلے صاف کریں، فونٹ کا سائز، رنگ سیٹ کریں اور متن لکھیں۔
ڈسپلے کو شروع کرنے کے بعد، clearDisplay() طریقہ سے ڈسپلے بفر کو صاف کریں:
متن لکھنے سے پہلے، آپ کو متن کا سائز، رنگ اور OLED میں متن کو کہاں ظاہر کیا جائے گا، سیٹ کرنا ہوگا۔
setTextSize() طریقہ استعمال کرکے فونٹ کا سائز سیٹ کریں:فونٹ کا رنگ setTextColor() طریقہ سے سیٹ کریں:
WHITE سفید فونٹ اور سیاہ پس منظر سیٹ کرتا ہے۔
اس پوزیشن کی وضاحت کریں جہاں سیٹ کرسر(x،y) طریقہ استعمال کرتے ہوئے متن شروع ہوتا ہے۔ اس صورت میں، ہم متن کو (0,0) کوآرڈینیٹس سے شروع کرنے کے لیے سیٹ کر رہے ہیں – اوپر بائیں کونے میں۔آخر میں، آپ مندرجہ ذیل کے طور پر، println() طریقہ استعمال کرتے ہوئے متن کو ڈسپلے پر بھیج سکتے ہیں۔
اس کے بعد، آپ کو سکرین پر ٹیکسٹ ظاہر کرنے کے لیے display() طریقہ کو کال کرنے کی ضرورت ہے۔
Adafruit OLED لائبریری متن کو آسانی سے سکرول کرنے کے لیے مفید طریقے فراہم کرتی ہے۔
- startscrollright(0x00, 0x0F): متن کو بائیں سے دائیں سکرول کریں۔
- startscrollleft(0x00, 0x0F): متن کو دائیں سے بائیں سکرول کریں۔
- startscrolldiagright(0x00, 0x07): بائیں نیچے کونے سے دائیں اوپری کونے تک اسکرول ٹیکسٹ startscrolldiagleft(0x00, 0x07): دائیں نیچے کونے سے بائیں اوپری کونے تک اسکرول ٹیکسٹ
کوڈ اپ لوڈ کریں۔
اب، کوڈ کو اپنے ESP32 پر اپ لوڈ کریں۔ کوڈ ریفرنس کے مراحل کو اپ لوڈ کریں۔
کوڈ اپ لوڈ کرنے کے بعد، OLED سکرولنگ ٹیکسٹ ڈسپلے کرے گا۔
دستاویزات / وسائل
![]() |
LAFVIN ESP32 بنیادی سٹارٹر کٹ [پی ڈی ایف] ہدایات دستی ESP32 بنیادی سٹارٹر کٹ، ESP32، بنیادی سٹارٹر کٹ، سٹارٹر کٹ |