ESP32 ویب سرور Arduino IDE کا استعمال کرتے ہوئے

Esp32 Wyb Srwr Arduino Ide Ka Ast Mal Krt Wy



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

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

مشمولات:

1. ESP32 ویب سرور

ویب سرور کے پاس ایک خاص پروگرام ہے جو ویب کلائنٹس کو ویب صفحات پر کارروائی اور بھیج سکتا ہے۔ ویب سائٹ کھولنے کے لیے، ہم ویب براؤزر استعمال کرتے ہیں۔ اس ویب براؤزر کو ویب کلائنٹ بھی کہا جاتا ہے۔ آپ جس ویب سائٹ کو دیکھنا چاہتے ہیں اسے کسی دوسرے کمپیوٹر پر اسٹور کیا جاتا ہے جسے ویب سرور کہتے ہیں۔







ایک دوسرے سے بات کرنے کے لیے، ویب سرور اور ویب کلائنٹ ایک عام زبان استعمال کرتے ہیں جسے HTTP کہتے ہیں۔ یہ اس طرح کام کرتا ہے: ویب کلائنٹ HTTP درخواست کا استعمال کرتے ہوئے ویب سرور سے ویب صفحہ کے لیے پوچھتا ہے۔ ویب سرور درخواست کردہ ویب صفحہ کو واپس بھیجتا ہے۔ اگر ویب صفحہ موجود نہیں ہے، تو آپ کو ایک غلطی کا پیغام نظر آئے گا۔



ESP32 میں، ہم ایک ویب سرور ڈیزائن کر سکتے ہیں، کیونکہ ESP32 نہ صرف نیٹ ورک پر دوسرے آلات کے ساتھ جڑ سکتا ہے بلکہ اپنا ویب سرور بھی بنا سکتا ہے اور موصول ہونے والی درخواستوں کا جواب دے سکتا ہے۔ یہ سب ممکن ہے کیونکہ ESP32 تین مختلف طریقوں میں کام کر سکتا ہے:



  • اسٹیشن
  • رسائی پوائنٹ
  • اسٹیشن اور ایکسیس پوائنٹ دونوں

آپ ESP32 کے تینوں طریقوں کے بارے میں بصیرت حاصل کرنے کے لیے اس مضمون کو دیکھ سکتے ہیں:





Arduino IDE کا استعمال کرتے ہوئے ESP32 ایکسیس پوائنٹ (AP) کیسے سیٹ کریں۔

2. Arduino IDE کا استعمال کرتے ہوئے ESP32 ویب سرور کیسے بنایا جائے۔

Arduino IDE کا استعمال کرتے ہوئے ESP32 ویب سرور بنانے کے لیے، آپ ESP32 کو ایکسیس پوائنٹ سے جوڑ سکتے ہیں اور ویب سرور کے لیے ایک IP ایڈریس بنا سکتے ہیں۔ آپ اپنے سرور انٹرفیس کو ڈیزائن کرنے کے لیے کچھ HTML اور CSS لگا سکتے ہیں۔



ایک بار جب آپ ESP32 ایکسیس پوائنٹ کو کام کر لیتے ہیں تو، آپ Arduino IDE کوڈ کا استعمال کرتے ہوئے آسانی سے ESP32 ویب سرور ڈیزائن کر سکتے ہیں۔ ESP32 ویب سرور کوڈ ESP32 Wi-Fi لائبریری کا استعمال کرتا ہے۔ یہ ہمارے کام کو آسان بناتا ہے، کیونکہ اس لائبریری میں ESP32 کو ایک رسائی پوائنٹ سے منسلک کرنے کے لیے درکار تمام اہم افعال موجود ہیں۔

آئیے Arduino IDE کوڈ کا استعمال کرتے ہوئے ESP32 ویب سرور ڈیزائن کریں۔

3. ESP32 ویب سرور کوڈ

ESP32 ویب سرور کوڈ میں رسائی پوائنٹ کے ساتھ ESP32 کنکشن اور سرور کے لیے IP ایڈریس حاصل کرنا شامل ہے۔ ایک بار جب آپ کو IP ایڈریس مل جاتا ہے، تو آپ کو ESP32 ویب سرور تک رسائی کے لیے اسی نیٹ ورک سے جڑنا ہوگا۔ وہاں سے آپ ایل ای ڈی اور دیگر آلات کو کنٹرول کر سکتے ہیں۔

Arduino IDE کھولیں اور اپنے ESP32 بورڈ کو اس سے جوڑیں:

Arduino IDE میں ESP32 بورڈ انسٹال کرنا

ESP32 بورڈ کے منسلک ہونے کے بعد، درج ذیل کوڈ کو اپنے بورڈ پر اپ لوڈ کریں۔

/***************

Linuxhint.com
ایل ای ڈی کو کنٹرول کرنے کے لیے ESP32 ویب سرور

****************
// لائبریری درآمد کریں۔ کے لیے وائی ​​فائی کنکشن
#include
// اپنا Wi-Fi نام اور پاس ورڈ درج کریں۔
const char * ssid = 'ESP32' ;
const char * پاس ورڈ = '123456789' ;
// پورٹ نمبر کا انتخاب کریں۔ کے لیے ویب سرور
وائی ​​فائی سرور سرور ( 80 ) ;
// ویب درخواست کو ذخیرہ کرنے کے لیے ایک متغیر بنائیں
سٹرنگ ہیڈر؛
// آؤٹ پٹ کی حیثیت کو ذخیرہ کرنے کے لیے متغیرات بنائیں
اسٹرنگ آؤٹ پٹ 26 اسٹیٹ = 'بند' ;
اسٹرنگ آؤٹ پٹ 27 اسٹیٹ = 'بند' ;
// آؤٹ پٹ پن کو متغیرات کو تفویض کریں۔
const int output26 = 26 ;
const int output27 = 27 ;
غیر دستخط شدہ طویل کرنٹ ٹائم = ملی ( ) ;
غیر دستخط شدہ long previousTime = 0 ;
// منتخب کیجئیے وقت حد کے لیے ویب کی درخواست میں ملی سیکنڈ
const long timeoutTime = 2000 ;
باطل سیٹ اپ ( ) {
سیریل شروع کریں۔ ( 115200 ) ;
// آؤٹ پٹ پن سیٹ کریں۔ کے طور پر آؤٹ پٹ
پن موڈ ( آؤٹ پٹ 26، آؤٹ پٹ ) ;
پن موڈ ( آؤٹ پٹ 27، آؤٹ پٹ ) ;
// آؤٹ پٹ کو بند کردیں
ڈیجیٹل رائٹ ( آؤٹ پٹ 26، کم ) ;
ڈیجیٹل رائٹ ( آؤٹ پٹ 27، کم ) ;
// Wi-Fi نیٹ ورک سے جڑیں۔
سیریل۔ پرنٹ ( 'سے منسلک ہو رہا ہے' ) ;
Serial.println ( ssid ) ;
WiFi.begin ( ssid، پاس ورڈ ) ;
// انتظار کرو جب تک کنکشن قائم ہے
جبکہ ( WiFi.status ( ) ! = WL_CONNECTED ) {
تاخیر ( 500 ) ;
سیریل۔ پرنٹ ( ' ) ;
}
Serial.println ( '' ) ;
Serial.println ( 'وائی فائی منسلک ہے۔' ) ;
Serial.println ( 'IP پتہ: ' ) ;
Serial.println ( WiFi.localIP ( ) ) ;
سرور شروع ( ) ;
}

باطل لوپ ( ) {
WiFiClient کلائنٹ = سرور دستیاب ہے۔ ( ) ; // چیک کریں۔ کے لیے نئے گاہکوں
اگر ( کلائنٹ ) { // اگر کوئی کلائنٹ منسلک ہے،
موجودہ وقت = ملی ( ) ;
پچھلے وقت = موجودہ وقت؛
Serial.println ( 'نیا کلائنٹ۔' ) ; // سیریل پورٹ کو مطلع کریں۔
سٹرنگ کرنٹ لائن = '' ; // کلائنٹ ڈیٹا کو ذخیرہ کرنے کے لیے ایک سٹرنگ بنائیں
جبکہ ( client.connected ( ) && موجودہ وقت - پچھلا وقت = 0 ) {
Serial.println ( 'GPIO 26 آن' ) ;
آؤٹ پٹ 26 اسٹیٹ = 'آن' ;
ڈیجیٹل رائٹ ( آؤٹ پٹ 26، ہائی ) ;
} اور اگر ( header.indexOf ( '/26/آف حاصل کریں' ) > = 0 ) {
Serial.println ( 'GPIO 26 آف' ) ;
آؤٹ پٹ 26 اسٹیٹ = 'بند' ;
ڈیجیٹل رائٹ ( آؤٹ پٹ 26، کم ) ;
} اور اگر ( header.indexOf ( '/27/پر حاصل کریں' ) > = 0 ) {
Serial.println ( 'GPIO 27 آن' ) ;
آؤٹ پٹ 27 اسٹیٹ = 'آن' ;
ڈیجیٹل رائٹ ( آؤٹ پٹ 27، ہائی ) ;
} اور اگر ( header.indexOf ( '/27/آف حاصل کریں' ) > = 0 ) {
Serial.println ( 'GPIO 27 آف' ) ;
آؤٹ پٹ 27 اسٹیٹ = 'بند' ;
ڈیجیٹل رائٹ ( آؤٹ پٹ 27، کم ) ;
}

client.println ( '' ) ;
client.println ( '' ) ;
client.println ( '' ) ;
// بٹنوں کو اسٹائل کرنے کے لیے سی ایس ایس
client.println ( '