Arduino IDE کا استعمال کرتے ہوئے OLED ڈسپلے میں ESP32 DHT11 درجہ حرارت اور نمی کی ریڈنگ

Arduino Ide Ka Ast Mal Krt Wy Oled Spl My Esp32 Dht11 Drj Hrart Awr Nmy Ky Ry Ng



ESP32 ایک جدید مائیکرو کنٹرولر بورڈ ہے جو آؤٹ پٹ پیدا کرنے کے لیے متعدد ہدایات چلا سکتا ہے۔ ایک OLED اسکرین کا استعمال مختلف قسم کے ڈیٹا کو دکھانے کے لیے کیا جاتا ہے۔ DHT11 سینسر کے ساتھ ESP32 کا استعمال کرتے ہوئے ہم درجہ حرارت اور نمی کی ریڈنگ لے سکتے ہیں۔ یہ تمام ڈیٹا OLED ڈسپلے کے ذریعے پیش کیا جا سکتا ہے۔ یہ ٹیوٹوریل ESP32 کے ساتھ ان سینسرز کو انٹرفیس کرنے کے لیے درکار تمام اقدامات کا احاطہ کرتا ہے۔

اس ٹیوٹوریل میں درج ذیل مواد کا احاطہ کیا گیا ہے:







1: DHT11 سینسر کا تعارف



2: DHT11 سینسر پن آؤٹ



2.1:3 پن DHT11 سینسر





2.2: 4 پن DHT11 سینسر

3: ESP32 کے ساتھ OLED ڈسپلے ماڈیول



4: مطلوبہ لائبریریوں کو انسٹال کرنا

4.1: ڈی ایچ ٹی سینسر کے لیے آرڈوینو لائبریری

4.2: OLED ڈسپلے کے لیے Arduino لائبریری

5: ESP32 کو DHT11 سینسر کے ساتھ انٹرفیس کرنا

5.1: منصوبہ بندی

5.2: کوڈ

5.3: آؤٹ پٹ

1: DHT11 سینسر کا تعارف

DHT11 الیکٹرانکس کمیونٹی میں عام طور پر استعمال ہونے والے درجہ حرارت اور نمی کی نگرانی کرنے والے سینسروں میں سے ایک ہے۔ درجہ حرارت اور رشتہ دار نمی دینے میں یہ زیادہ درست ہے۔ یہ ایک کیلیبریٹڈ ڈیجیٹل سگنل دیتا ہے جو درجہ حرارت اور نمی کی دو مختلف ریڈنگز میں باہر نکلتا ہے۔

یہ ڈیجیٹل سگنل کے حصول کی تکنیک کا استعمال کرتا ہے جو وشوسنییتا اور استحکام دیتا ہے۔ DHT11 سینسر میں مزاحمتی قسم کی نمی کی پیمائش کرنے والا جزو ہے اور اس میں NTC درجہ حرارت کی پیمائش کرنے والا جزو ہے۔ یہ دونوں ایک 8 بٹ انتہائی موثر مائیکرو کنٹرولر کے ساتھ مربوط ہیں جو تیز ردعمل، اینٹی مداخلت کی صلاحیت اور لاگت کی تاثیر پیش کرتا ہے۔

یہاں DHT11 کی کچھ اہم تکنیکی خصوصیات ہیں:

    • DHT11 سینسر 5V سے 5.5V کے وولٹیج پر کام کرتا ہے۔
    • پیمائش کے دوران آپریٹنگ کرنٹ 0.3mA ہے اور اسٹینڈ بائی ٹائم کے دوران 60uA ہے۔
    • یہ ڈیجیٹل سگنل میں سیریل ڈیٹا آؤٹ پٹ کرتا ہے۔
    • DHT11 سینسر کا درجہ حرارت 0°C سے 50°C تک ہے۔
    • نمی کی حد: 20٪ سے 90٪۔
    • درجہ حرارت کی پیمائش کے لیے ±1°C اور رشتہ دار نمی کی ریڈنگ کے لیے ±1% کی درستگی۔

جیسا کہ ہم نے DHT11 سینسر کے بنیادی تعارف کا احاطہ کیا ہے اب آئیے DHT11 کے پن آؤٹ کی طرف چلتے ہیں۔

2: DHT11 سینسر پن آؤٹ

زیادہ تر وقت DHT11 سینسر دو مختلف پن کنفیگریشنز میں آتا ہے۔ DHT11 سینسر جو 4 پن کنفیگریشن میں آتا ہے اس میں 3 پن کام نہیں کر رہے یا کوئی کنکشن کے طور پر لیبل لگا ہوا ہے۔

3 پن DHT11 سینسر ماڈیول تین پنوں میں آتا ہے جس میں پاور، GND اور ڈیٹا پن شامل ہیں۔

2.1:3 پن DHT11 سینسر

دی گئی تصویر DHT11 سینسر کی 3 پن کنفیگریشن دکھاتی ہے۔


یہ تین پن یہ ہیں:

ڈیٹا سیریل ڈیٹا میں آؤٹ پٹ درجہ حرارت اور نمی
2. وی سی سی ان پٹ پاور 3.5V سے 5.5V
جی این ڈی سرکٹ کا GND

2.2: 4 پن DHT11 سینسر

مندرجہ ذیل تصویر 4 پن DHT11 سینسر ماڈیول کی وضاحت کرتی ہے:


ان 4 پنوں میں شامل ہیں:

وی سی سی ان پٹ پاور 3.5V سے 5.5V
2. ڈیٹا سیریل ڈیٹا میں آؤٹ پٹ درجہ حرارت اور نمی
این سی کوئی کنکشن یا استعمال نہیں کیا گیا۔
چار۔ جی این ڈی سرکٹ کا GND

3: ESP32 کے ساتھ OLED ڈسپلے ماڈیول

OLED ڈسپلے بنیادی طور پر دو مختلف مواصلاتی پروٹوکول کے ساتھ آتا ہے۔ دو پروٹوکول I2C اور SPI ہیں۔ سیریل پیریفرل انٹرفیس (SPI) عام طور پر I2C سے تیز ہوتا ہے، لیکن ہم نے SPI پروٹوکول پر I2C کو ترجیح دی کیونکہ اس کے لیے کم تعداد میں پن کی ضرورت ہوتی ہے۔

مندرجہ ذیل تصویر 128×64 پکسلز (0.96’’) OLED ڈسپلے کے ساتھ ESP32 کنکشن ڈایاگرام کو واضح کرتی ہے۔


ذیل میں کنکشن ٹیبل ہے:


ایک بار جب ESP32 کو OLED ڈسپلے کے ساتھ انٹرفیس کیا جاتا ہے، فہرست کا اگلا مرحلہ ESP32 پروگرامنگ کے لیے Arduino IDE کا استعمال کرتے ہوئے تمام مطلوبہ لائبریریوں کو انسٹال کرنا ہے۔

4: مطلوبہ لائبریریوں کو انسٹال کرنا

یہاں ہم ESP32 کے ساتھ دو مختلف سینسرز کو انٹرفیس کرنے جا رہے ہیں لہذا دونوں کو کام کرنے کے لیے علیحدہ لائبریریوں کی ضرورت ہے۔ اب ہم DHT11 اور OLED ڈسپلے کے لیے لائبریریاں انسٹال کریں گے۔

4.1: ڈی ایچ ٹی سینسر کے لیے آرڈوینو لائبریری

Arduino IDE کھولیں، یہاں جائیں: خاکہ> لائبریری شامل کریں> لائبریریوں کا نظم کریں۔

متبادل طور پر، ہم لائبریری مینیجر کو Arduino IDE انٹرفیس پر سائیڈ بٹن سے بھی کھول سکتے ہیں۔

DHT لائبریری تلاش کریں اور تازہ ترین اپ ڈیٹ شدہ ورژن انسٹال کریں۔ ڈی ایچ ٹی لائبریری سینسر ڈیٹا کو پڑھنے میں مدد کرے گی۔


ڈی ایچ ٹی لائبریری کو انسٹال کرنے کے بعد ہمیں ایک انسٹال کرنا ہوگا۔ متحد سینسر لائبریری Adafruit کی طرف سے.

4.2: OLED ڈسپلے کے لیے Arduino لائبریری

OLED ڈسپلے کے ساتھ ESP32 پروگرام کرنے کے لیے Arduino IDE میں متعدد لائبریریاں دستیاب ہیں۔ یہاں ہم Adafruit سے دو لائبریریاں استعمال کریں گے: SSD1306 اور GFX لائبریری۔

IDE کھولیں اور لائبریری مینیجر پر کلک کریں اور OLED SSD1306 لائبریری تلاش کریں۔ تلاش بار سے Adafruit کی طرف سے SSD1306 لائبریری انسٹال کریں۔

متبادل طور پر، کوئی بھی جا سکتا ہے: خاکہ> لائبریری شامل کریں> لائبریریوں کا نظم کریں۔


اگلی لائبریری جو ہمیں انسٹال کرنے کی ضرورت ہے وہ ہے۔ جی ایف ایکس Adafruit کی طرف سے لائبریری.


ہم نے OLED ڈسپلے اور DHT11 سینسر دونوں کے لیے لائبریریاں انسٹال کی ہیں۔ اب ہم ESP32 کے ساتھ دونوں کو آسانی سے انٹرفیس کر سکتے ہیں۔

5: DHT11 سینسر اور OLED کے ساتھ ESP32 کو انٹرفیس کرنا

ESP32 کو DHT11 سینسر کے ساتھ انٹرفیس کرنے کے لیے ہمیں سینسر ڈیٹا پڑھنے کے لیے ایک ڈیجیٹل پن کی ضرورت ہے اور DHT11 سینسر کو پاور کرنے کے لیے ہم یا تو ESP32 کا 3V3 پن یا Vin پن استعمال کر سکتے ہیں۔

OLED ڈسپلے کے لیے I2C پن SDA اور SCL استعمال کیے جائیں گے۔ پاورنگ کے لیے ہم Vin یا ESP32 کا 3V3 پن استعمال کر سکتے ہیں۔

5.1: منصوبہ بندی

دی گئی تصویر میں ہم DHT11 کے ساتھ ESP32 کا اسکیمیٹک ڈایاگرام دیکھ سکتے ہیں اور آؤٹ پٹ کے لیے OLED اسکرین استعمال کی گئی ہے۔ یہ تصویر ESP32 کے ساتھ انٹرفیس کرنے والے 3 پن سینسر ماڈیول کی نمائندگی کرتی ہے۔ 10kΩ کے پل اپ ریزسٹر کو جوڑنا یاد رکھیں۔


اسی طرح 4 پن DHT11 کو بھی کنیکٹ کیا جا سکتا ہے، یہاں فرق صرف 3 پن کا ہے جس کا کوئی فائدہ نہیں یا اسے No connection کہا جاتا ہے۔ ڈیٹا پن سینسر کے پن 2 پر ہے۔

OLED ڈسپلے بالترتیب D21 اور D22 پر I2C SDA اور SCL پنوں کا استعمال کرتے ہوئے منسلک ہے۔

5.2: کوڈ

ESP32 کو PC کے ساتھ جوڑیں اور Arduino IDE کھولیں۔ دیئے گئے کوڈ کو ESP32 بورڈ پر اپ لوڈ کریں۔

#include           /* وائر کمیونیکیشن لائبریری شامل کریں*/
#include
#include /*OLED ڈسپلے لائبریری*/
#include
#include           /*درجہ حرارت اور نمی سینسر لائبریری*/
#Define SCREEN_WIDTH 128  /*OLED اسکرین چوڑائی 128 پکسلز*/
#Define SCREEN_HEIGHT 64   /*OLED اسکرین کی اونچائی 64 پکسلز*/
Adafruit_SSD1306 ڈسپلے ( SCREEN_WIDTH، SCREEN_HEIGHT، اور تار، - 1 ) ; /* SSD1306 I2C ڈسپلے شروع */
#DHTPIN 4 کی وضاحت کریں          /*DHT11 سینسر کے لیے سگنل پن*/
#DHTTYPE  DHT11 کی وضاحت کریں۔
ڈی ایچ ٹی ڈی ایچ ٹی ( DHTPIN، DHTTYPE ) ;
باطل سیٹ اپ ( ) {
سیریل شروع کریں۔ ( 115200 ) ;
dht.begin ( ) ;
اگر ( ! display.begin ( SSD1306_SWITCHCAPVCC, 0x3C ) ) { /* I2C ایڈریس پر کونسا OLED منسلک ہے۔ */
Serial.println ( ایف ( 'SSD1306 مختص ناکام ہو گیا' ) ) ;
کے لیے ( ;; ) ;
}
تاخیر ( 2000 ) ;
display.clearDisplay ( ) ;
display.setTextColor ( سفید ) ; /* آؤٹ پٹ ٹیکسٹ کا رنگ سفید */
}
باطل لوپ ( ) {
تاخیر ( 5000 ) ;
float t = dht.readTemperature ( ) ; /* پڑھیں درجہ حرارت */
float h = dht.readHumidity ( ) ; /* پڑھیں نمی */
اگر ( ایک ( h ) || ایک ( t ) ) {
Serial.println ( 'DHT سینسر سے پڑھنے میں ناکام!' ) ;
}
display.clearDisplay ( ) ; /* صاف پڑھنے کو ظاہر کرنے سے پہلے OLED ڈسپلے */
display.setTextSize ( 1 ) ; /* OLED ٹیکسٹ فونٹ سائز */
display.setCursor ( 0 , 0 ) ;
ڈسپلے۔ پرنٹ ( 'درجہ حرارت:' ) ;
display.setTextSize ( 2 ) ;
display.setCursor ( 0 , 10 ) ;
ڈسپلے۔ پرنٹ ( t ) ; /* پرنٹ درجہ حرارت میں سیلسیس */
ڈسپلے۔ پرنٹ ( ' ) ;
display.setTextSize ( 1 ) ;
display.cp437 ( سچ ) ;
display.write ( 167 ) ;
display.setTextSize ( 2 ) ;
ڈسپلے۔ پرنٹ ( 'سی' ) ;

display.setTextSize ( 1 ) ;
display.setCursor ( 0 , 35 ) ;
ڈسپلے۔ پرنٹ ( 'نمی:' ) ;
display.setTextSize ( 2 ) ;
display.setCursor ( 0 , چار پانچ ) ;
ڈسپلے۔ پرنٹ ( h ) ; /* نمی کا فیصد پرنٹ کرتا ہے۔ */
ڈسپلے۔ پرنٹ ( '%' ) ;
ڈسپلے۔ ڈسپلے ( ) ;
}


OLED اور DHT11 سینسر کے لیے ضروری لائبریریوں کو شامل کر کے کوڈ کا آغاز ہوا۔ اس کے بعد OLED ڈسپلے کے طول و عرض کی وضاحت کی جاتی ہے۔ اس کے بعد اگر آپ DHT22 استعمال کر رہے ہیں تو DHT سینسر کی قسم کو اسی کے مطابق تبدیل کریں۔

سیٹ اپ کے حصے میں DHT سینسر اور OLED ڈسپلے شروع کیا گیا ہے۔ OLED اسکرین 0x3C کے I2C ایڈریس پر منسلک ہے۔ اگر کوئی I2C ایڈریس چیک کرنا چاہتا ہے تو اس میں دیا گیا کوڈ اپ لوڈ کریں۔ مضمون .

درجہ حرارت اور نمی کی قدریں فلوٹ متغیر کے اندر محفوظ ہیں۔ t اور h بالترتیب اس کے بعد یہ دونوں قدریں OLED ڈسپلے پر پرنٹ ہوتی ہیں۔

5.3: آؤٹ پٹ

آؤٹ پٹ میں ہم OLED اسکرین پر ظاہر ہونے والے ریئل ٹائم ماپا ہوا درجہ حرارت اور نمی دیکھ سکتے ہیں۔




ہم نے DHT11 سینسر اور OLED اسکرین کے ساتھ ESP32 کا انٹرفیسنگ کامیابی سے مکمل کر لیا ہے۔

نتیجہ

ESP32 کے ساتھ OLED ڈسپلے ایک سے زیادہ ڈیٹا دکھا سکتے ہیں جو بیرونی سینسر کا استعمال کرتے ہوئے پڑھا جاتا ہے۔ یہاں یہ مضمون کمرے کے درجہ حرارت اور نمی کی پیمائش کرنے کے لیے DHT11 سینسر کے ساتھ ESP32 کو انٹرفیس کرنے کے تمام مراحل کا احاطہ کرتا ہے۔ اس کے بعد تمام پڑھا ہوا ڈیٹا I2C OLED ڈسپلے ماڈیول پر ظاہر ہوتا ہے۔