- ڈی ایچ ٹی 11 - تفصیلات اور کام کرنا
- ڈی ایچ ٹی 11 سینسر کے ساتھ بات چیت کرنا
- مطلوبہ اجزاء
- اسکیمیٹک
- PIC MPLABX کوڈ کی وضاحت کے ساتھ DHT11
درجہ حرارت اور نمی کی پیمائش متعدد ایپلی کیشنز جیسے گھریلو آٹومیشن ، ماحولیاتی مانیٹرنگ ، ویدر اسٹیشن وغیرہ میں کارآمد ثابت ہوتی ہے۔ پائ اور دوسرے بہت سے ترقیاتی بورڈ۔ اس آرٹیکل میں ، ہم اس DHT11 کو PIC16F87A کے ساتھ انٹرفیس کرنے کا طریقہ سیکھیں گے جو 8 بٹ PIC مائکروکنٹرولر ہے۔ ہم DHT11 کا استعمال کرتے ہوئے درجہ حرارت اور نمی کی اقدار کو پڑھنے اور اسے LCD ڈسپلے پر ظاہر کرنے کے لئے اس مائکروکانٹرولر کا استعمال کریں گے ۔ اگر آپ پی آئی سی مائکروکینٹرولرز کے استعمال سے بالکل نئے ہیں تو آپ پی آئی سی مائکروقابو کنٹرولر کو کس طرح سے پروگرام بنانا اور استعمال کرنا سیکھیں گے اس کے لئے ہماری پی آئی سی ٹیوٹوریل سیریز کا استعمال کرسکتے ہیں ، یہ کہا جارہا ہے ، آئیے شروع کریں۔
ڈی ایچ ٹی 11 - تفصیلات اور کام کرنا
DHT11 سینسر یا تو ماڈیول شکل میں یا سینسر کی شکل میں دستیاب ہے۔ اس ٹیوٹوریل میں ہم سینسر کا استعمال کررہے ہیں ، دونوں کے درمیان صرف اتنا ہی فرق ہے کہ ماڈیول کی شکل میں سینسر میں فلٹرنگ کاپاکیسیٹر اور سینسر کے آؤٹ پٹ پن سے منسلک پل اپ ریزٹر ہوتا ہے۔ لہذا اگر آپ ماڈیول استعمال کررہے ہیں تو آپ کو انہیں بیرونی طور پر شامل کرنے کی ضرورت نہیں ہے۔ سینسر کی شکل میں DHT11 نیچے دکھایا گیا ہے۔
DHT11 سینسر نیلے یا سفید رنگ کے سانچے کے ساتھ آتا ہے۔ اس سانچے کے اندر ، ہمارے پاس دو اہم اجزاء ہیں جو ہمیں نسبتا hum نمی اور درجہ حرارت کو سمجھنے میں مدد کرتے ہیں۔ پہلا جزو الیکٹروڈ کا ایک جوڑا ہے ۔ ان دونوں الیکٹروڈ کے مابین بجلی کی مزاحمت کا فیصلہ نمی کو تھامنے والے سبسٹریٹ کے ذریعہ کیا جاتا ہے۔ لہذا ماپا مزاحمت ماحول کی نسبت نمی کے متضاد متناسب ہے۔ نسبتا نمی کی نسبت زیادہ نسبت مزاحمت کی قدر ہوگی اور اس کے برعکس۔ اس کے علاوہ ، یہ بھی نوٹ کریں کہ نسبت نمی حقیقی نمی سے مختلف ہے۔ نسبتا hum نمی ہوا میں موجود پانی کے مقدار کو ہوا کے درجہ حرارت کے لحاظ سے ماپتا ہے۔
دوسرا جزو ایک سطح پر سوار NTC Thermistor ہے ۔ اصطلاح این ٹی سی کا مطلب ہے منفی درجہ حرارت کی گتانک ، کیونکہ درجہ حرارت میں اضافے کے لئے مزاحمت کی قدر کم ہوگی۔ سینسر کا آؤٹ پٹ فیکٹری کیلیبریٹڈ ہے لہذا ایک پروگرامر کی حیثیت سے ہمیں سینسر کیلیبریٹنگ کے بارے میں فکر کرنے کی ضرورت نہیں ہے۔ 1-وائر مواصلات کے ذریعہ دیئے گئے سینسر کی آؤٹ پٹ ، آئیے اس سینسر کا پن اور کنکشن ڈایاگرام دیکھتے ہیں۔
مصنوعات 4pin سنگل قطار پیکیج میں ہے۔ پہلا پن وی ڈی ڈی کے پار جڑا ہوا ہے اور چوتھا پن جی این ڈی کے پار منسلک ہے۔ دوسرا پن ڈیٹا پن ہے ، جو مواصلات کے مقاصد کے لئے استعمال ہوتا ہے۔ اس ڈیٹا پن کو 5k کا پل اپ اپ ریزٹر کی ضرورت ہے۔ تاہم ، دوسروں نے مزاحمت کاروں کو کھینچ لیا جیسے 4.7k سے 10k تک بھی استعمال کیا جاسکتا ہے۔ تیسری پن کسی بھی چیز سے مربوط نہیں ہے۔ تو اسے نظرانداز کیا جاتا ہے۔
ڈیٹاشیٹ تکنیکی تفصیلات کے ساتھ ساتھ انٹرفیسنگ کی معلومات بھی فراہم کرتی ہے جو نیچے دیئے گئے ٹیبل میں دیکھا جاسکتا ہے۔
مندرجہ بالا جدول درجہ حرارت اور نمی کی پیمائش کی حد اور درستگی دکھا رہا ہے ۔ یہ درجہ حرارت 0/50 ڈگری سینٹی گریڈ سے +/- 2 ڈگری سیلسیس کی درستگی اور +/- 5٪ RH کی درستگی کے ساتھ 20-90٪ RH سے نسبتا نمی کی پیمائش کرسکتا ہے۔ تفصیل کی تفصیلات ذیل ٹیبل میں دیکھی جاسکتی ہیں۔
ڈی ایچ ٹی 11 سینسر کے ساتھ بات چیت کرنا
جیسا کہ پہلے ذکر ہوا ہے ، ڈی ایچ ٹی 11 سے ڈی آئی سی کو پی آئی سی کے ساتھ پڑھنے کے ل we ہمیں پی آئی سی ون تار مواصلات کا پروٹوکول استعمال کرنا ہوگا۔ اس کو انجام دینے کے بارے میں تفصیلات ڈی ایچ ٹی 11 کے انٹرفیسنگ آریھ سے سمجھا جاسکتا ہے جو اس کے ڈیٹا شیٹ میں پایا جاسکتا ہے ، وہی ذیل میں دیا گیا ہے۔
مواصلات شروع کرنے کے لئے ڈی ایچ ٹی 11 کو ایم سی یو سے اسٹارٹ سگنل کی ضرورت ہے ۔ لہذا ، جب بھی ایم سی یو کو درجہ حرارت اور نمی کی اقدار بھیجنے کی درخواست کرنے کے لئے ڈی ایچ ٹی 11 سینسر کو اسٹارٹ سگنل بھیجنے کی ضرورت ہوتی ہے۔ اسٹارٹ سگنل مکمل کرنے کے بعد ، DHT11 ایک رسپانس سگنل بھیجتا ہے جس میں درجہ حرارت اور نمی کی معلومات شامل ہوتی ہے۔ ڈیٹا مواصلات واحد بس ڈیٹا مواصلات پروٹوکول کے ذریعہ کیا جاتا ہے ۔ مکمل ڈیٹا کی لمبائی 40 بیٹ ہے اور سینسر پہلے زیادہ ڈیٹا بھیجتا ہے۔
پل اپ اپ ریزٹر کی وجہ سے ، ڈیٹا لائن ہمیشہ بیکار وضع کے دوران وی سی سی کی سطح پر رہتی ہے۔ ایم سی یو کو اس وولٹیج کو کم سے کم 18 ایم ایس تک کم سے کم نیچے کھینچنے کی ضرورت ہے۔ اس وقت کے دوران ، ڈی ایچ ٹی 11 سینسر اسٹارٹ سگنل کا پتہ لگاتا ہے اور مائکروکنٹرولر ڈیٹا لائن کو 20-40us تک اونچا بناتا ہے۔ اس 20-40us وقت کو انتظار کی مدت کہا جاتا ہے جہاں DHT11 جواب دینے لگتا ہے۔ اس منتظر مدت کے بعد ، ڈی ایچ ٹی 11 ڈیٹا کو مائکروکنٹرولر یونٹ کو بھیجتا ہے۔
ڈی ایچ ٹی 11 سینسر ڈیٹا فارمیٹ
اعداد و شمار ایک ساتھ مل کر اعشاریہ اور لازمی حصوں پر مشتمل ہیں۔ سینسر ذیل میں ڈیٹا فارمیٹ کی پیروی کرتا ہے۔
8 بٹ لازمی آر ایچ ڈیٹا + 8 بٹ اعشاریہ آر ایچ ڈیٹا + 8 بٹ لازمی ٹی ڈیٹا + 8 بٹ اعشاریہ ٹی ڈیٹا + 8 بٹ چیکسم۔
کوئی بھی موصولہ اعداد و شمار سے چیکم ویلیو چیک کرکے ڈیٹا کی تصدیق کرسکتا ہے ۔ یہ کیا جاسکتا ہے کیونکہ ، اگر ہر چیز مناسب ہے اور اگر سینسر نے مناسب اعداد و شمار کو منتقل کیا ہے تو ، پھر چیکسم کو "8 بٹ انٹیگرل آر ایچ ڈیٹا + 8 بٹ اعشاریہ ڈی ایچ ڈیٹا + 8 بٹ انٹیگرل ٹی ڈیٹا + 8 بٹ ڈیشمال ٹی ڈیٹا" کا مجموعہ ہونا چاہئے ۔
مطلوبہ اجزاء
اس منصوبے کے لئے ، نیچے چیزوں کی ضرورت ہے۔
- پی آئی سی مائکروکنٹرولر (8 بٹ) پروگرامنگ سیٹ اپ۔
- بریڈ بورڈ
- 5V 500mA بجلی سپلائی یونٹ۔
- 4.7k ریزٹر 2pcs
- 1 ک مزاحم
- PIC16F877A
- 20mHz کرسٹل
- 33 پی ایف کیپاکیسیٹر 2 پی سیز
- 16x2 کردار LCD
- ڈی ایچ ٹی 11 سینسر
- جمپر تاروں
اسکیمیٹک
PIC16F877A کے ساتھ DHT11 کو انٹرفیس کرنے کے لئے سرکٹ ڈایاگرام ذیل میں دکھایا گیا ہے۔
ہم نے درجہ حرارت اور نمی کی قدروں کو ظاہر کرنے کے لئے 16x2 LCD کا استعمال کیا ہے جس کی ہم DHT11 سے پیمائش کرتے ہیں۔ LCD کو 4 تار کے موڈ میں انٹرفیس کیا گیا ہے اور سینسر اور LCD دونوں ہی 5V بیرونی بجلی کی فراہمی کے ذریعہ چل رہے ہیں۔ میں نے تمام مطلوبہ کنکشن بنانے کیلئے ایک بریڈ بورڈ استعمال کیا ہے اور بیرونی 5V اڈاپٹر استعمال کیا ہے۔ آپ اپنے بورڈ کو 5V کے ساتھ طاقت کے ل. اس بریڈ بورڈ پاور سپلائی بورڈ کا استعمال بھی کرسکتے ہیں۔
جب ایک بار سرکٹ تیار ہوجائے تو ، ہمیں صرف اس صفحے کے نیچے دیئے گئے کوڈ کو اپ لوڈ کرنا ہے اور ہم نیچے درج ذیل درجہ حرارت اور نمی کو پڑھنا شروع کرسکتے ہیں۔ اگر آپ جاننا چاہتے ہیں کہ کوڈ کیسے لکھا گیا ہے اور یہ کیسے کام کرتا ہے مزید پڑھیں۔ نیز آپ اس صفحے کے نیچے دیئے گئے ویڈیو میں اس پراجیکٹ کی مکمل کاروائیاں حاصل کرسکتے ہیں ۔
PIC MPLABX کوڈ کی وضاحت کے ساتھ DHT11
کوڈ کو ایم پی ایل ایکس ایکس آئی ڈی ای کا استعمال کرتے ہوئے لکھا گیا تھا اور ایکس سی 8 کمپلر کا استعمال کرتے ہوئے مرتب کیا گیا تھا جو مائکروچپ نے خود فراہم کیا ہے اور ڈاؤن لوڈ اور استعمال کرنے کے لئے آزاد ہے۔ براہ کرم پروگرامنگ کی بنیادی باتوں کو سمجھنے کے لئے بنیادی سبق کا حوالہ دیں ، صرف تین اہم افعال جو DHT11 سینسر کے ساتھ بات چیت کرنے کے لئے ضروری ہیں ذیل میں زیر بحث آئے۔ افعال یہ ہیں -
باطل dht11_init ()؛ باطل تلاش_حصول ()؛ چار پڑھیں_دھٹ 11 ()؛
پہلا فنکشن ڈی ایچ ٹی 11 کے ساتھ اسٹارٹ سگنل کے لئے استعمال ہوتا ہے ۔ جیسا کہ پہلے تبادلہ خیال کیا گیا ہے ، DHT11 کے ساتھ ہر مواصلات کا آغاز اسٹار سگنل سے ہوتا ہے ، یہاں مائکروکانٹرولر سے آؤٹ پٹ کے بطور ڈیٹا پن کو ترتیب دینے کے لئے پہلے سمت میں سمت کی سمت تبدیل کردی جاتی ہے۔ پھر ڈیٹا لائن کم کھینچ جاتا ہے اور 18 ایم ایس کا انتظار کرتا رہتا ہے۔ اس کے بعد ایک بار پھر مائکرو قابو پانے والے کی طرف سے لائن اونچی ہوجاتی ہے اور 30us تک کا انتظار کرتا رہتا ہے۔ اس انتظار کے وقت کے بعد ، ڈیٹا پن کو ڈیٹا حاصل کرنے کے لئے مائکرو قابو پانے والے کے لئے ان پٹ کے طور پر سیٹ کیا گیا۔
باطل dht11_init () { DHT11_Data_Pin_ سمت = 0؛ // RD0 کو آؤٹ پٹ DHT11_Data_Pin = 0 کے بطور تشکیل دیں ؛ // آر ڈی 0 سنسر کو 0 بھیجتا ہے __ ڈیلا_ ایم ایس (18)؛ DHT11_Data_Pin = 1؛ // RD0 1 سینسر کو بھیجتا ہے __ڈیلا_س (30)؛ DHT11_Data_Pin_ سمت = 1؛ // RD0 کو ان پٹ کے بطور تشکیل دیں }
اگلے فنکشن کو ڈیٹا پن کی حیثیت کے مطابق چیک بٹ لگانے کے لئے استعمال کیا جاتا ہے۔ اس کا استعمال DHT11 سینسر سے ملنے والے ردعمل کا پتہ لگانے کے لئے کیا جاتا ہے ۔
باطل تلاش_ رسالت () { چیک_بٹ = 0؛ __ڈیلا_س (40)؛ اگر (DHT11_Data_Pin == 0) __ __ ڈیلے_س (80)؛ اگر (DHT11_Data_Pin == 1) { چیک_بٹ = 1؛ } __ڈیلا_س (50)} }
آخر میں dht11 پڑھنے کی تقریب؛ یہاں ڈیٹا کو 8 بٹ شکل میں پڑھا جاتا ہے جہاں ڈیٹا پن کی حیثیت کے مطابق بٹ شفٹ آپریشن کے ذریعے ڈیٹا واپس کیا جاتا ہے۔
چار read_dht11 () { چار ڈیٹا ، for_count؛ کے لئے (for_count = 0؛ for_chat <8؛ for_count ++) { جبکہ (! DHT11_Data_Pin)؛ __ڈیلا_س (30)؛ اگر (DHT11_Data_Pin == 0) { ڈیٹا & = ~ (1 << (7 - for_count))؛ // صاف سا (7-b) } else { ڈیٹا- = (1 << (7 - for_count))؛ // سیٹ بٹ (7-b) جبکہ (DHT11_Data_Pin)؛ } } ڈیٹا واپس؛ }
اور
اس کے بعد ، سب کچھ مرکزی کام میں کیا جاتا ہے۔ سب سے پہلے ، جہاں LCD شروع کی جاتی ہے اور LCD پنوں کی بندرگاہ کی سمت آؤٹ پٹ پر سیٹ کی جاتی ہے ، نظام کی ابتدا کی جاتی ہے۔ ایپلیکیشن مرکزی کام کے اندر چل رہی ہے
باطل اہم () _ system_init ()؛ جبکہ (1) { __ ڈیلی_مس (800)؛ dht11_init ()؛ find_response ()؛ اگر (چیک_بیٹ == 1) { RH_byte_1 = پڑھیں_دھت 11 ()؛ RH_byte_2 = پڑھیں_دھت 11 ()؛ ٹیمپ_بیٹی_1 = پڑھیں_دھٹ 11 ()؛ ٹیمپ_بیٹی_2 = پڑھنا_دھٹ 11 ()؛ سموشن = read_dht11 ()؛ اگر (سمیشن == ((RH_byte_1 + RH_byte_2 + Temp_byte_1 + Temp_byte_2)) اور 0 XFF)) { نمی = Temp_byte_1؛ RH = RH_byte_1؛ lcd_com (0x80)؛ lcd_puts ("عارضی:")؛ // lcd_puts ("")؛ lcd_data (48 + ((نمی / 10)٪ 10٪))؛ lcd_data (48 + (نمی٪ 10٪))؛ lcd_data (0xDF)؛ lcd_puts ("C")؛ lcd_com (0xC0)؛ lcd_puts ("نمی:")؛ // lcd_puts ("")؛ lcd_data (48 + ((RH / 10)٪ 10٪))؛ lcd_data (48 + (RH٪ 10))؛ lcd_puts ("٪")؛ } دوسری { lcd_puts ("چیکسم غلطی")؛ } } else { Clear_ اسکرین ()؛ lcd_com (0x80)؛ lcd_puts ("خرابی !!!")؛ lcd_com (0xC0)؛ lcd_puts ("کوئی جواب نہیں ہے۔")؛ } __delay_ms (1000)؛ } }
ڈی ایچ ٹی 11 سینسر کے ساتھ مواصلت اسی دوران لوپ کے اندر کی جاتی ہے جہاں شروعاتی سگنل سینسر کو پیش کیا جاتا ہے۔ اس کے بعد ، تلاش_انتظار کی تقریب کو متحرک کردیا گیا ہے۔ اگر چیک_بٹ 1 ہے تو مزید بات چیت کی جاتی ہے بصورت دیگر LCD غلطی کا ڈائیلاگ دکھائے گا۔
40 بیٹ ڈیٹا پر انحصار کرتے ہوئے ، ریڈ_ڈی ایچ ٹی 11 کو 5 بار (5 گنا ایکس 8 بٹ) کہا جاتا ہے اور ڈیٹا شیٹ میں فراہم کردہ ڈیٹا فارمیٹ کے مطابق ڈیٹا اسٹور کیا جاتا ہے۔ حیض کا درجہ بھی موازنہ کیا جاتا ہے اور غلطیوں کو پائے جاتے ہیں، تو یہ بھی LCD میں مطلع کریں گے. آخر میں ، ڈیٹا کو تبدیل اور 16x2 کردار LCD میں منتقل کیا جاتا ہے۔
اس PIC درجہ حرارت اور نمی کی پیمائش کے لئے مکمل کوڈ یہاں سے ڈاؤن لوڈ کیا جاسکتا ہے۔ ذیل میں دیئے گئے مظاہرے کی ویڈیو بھی چیک کریں ۔
امید ہے کہ آپ کو پروجیکٹ سمجھ گیا ہوگا اور کسی مفید چیز کی تعمیر سے لطف اندوز ہوں گے۔ اگر آپ کے ذہن میں کوئی سوال ہے تو ان کو ذیل میں تبصرہ سیکشن میں چھوڑ دیں یا دوسرے تکنیکی سوالات کے لئے ہمارے فورمز کا استعمال کریں۔