راسبیری پائی ہوم آٹومیشن مرتب کریں۔

Set Up Raspberry Pi Home Automation



گھریلو آٹومیشن کے لیے سب سے اہم چیز کم وولٹیج ڈی سی کا استعمال کرتے ہوئے ہائی وولٹیج اے سی کو کنٹرول کرنا ہے۔ Raspberry Pi سے ہائی وولٹیج AC کو کنٹرول کرنے کے لیے ، آپ کو 5V ریلے سوئچ کی ضرورت ہوگی۔ آپ راسبیری پائی کے GPIO پنوں کا استعمال کرتے ہوئے ریلے سوئچ کو کنٹرول کر سکتے ہیں۔ ریلے سوئچ پھر Raspberry Pi کے ذریعے AC گھریلو آلات کو کنٹرول کر سکتا ہے۔

یہ مضمون آپ کو دکھائے گا کہ آپ کے موبائل ڈیوائس سے لائٹ بلب کو آن اور آف کرنے کے لیے راسبیری پائی اور 5 وی ریلے سوئچ کا استعمال کیسے کریں۔ اس آرٹیکل میں ایک ویب ایپ شامل ہے جسے آپ اپنے نیٹ ورک کے کسی بھی ڈیوائس سے حاصل کر سکتے ہیں اور اپنے گھر کے کسی بھی گھریلو آلات کو وائرلیس طریقے سے کنٹرول کر سکتے ہیں۔ تو ، آئیے اپنے آسان راسبیری پائی ہوم آٹومیشن کے تجربے سے شروع کریں۔







جن چیزوں کی آپ کو ضرورت ہو گی۔

اگر آپ اپنے راسبیری پائی کو بغیر سر کے استعمال کرنا چاہتے ہیں (SSH یا VNC کے ذریعے) ، آپ کو درج ذیل چیزوں کی ضرورت ہوگی۔



1) راسبیری پائی 3 یا راسبیری پائی 4۔
2) 5V ریلے سوئچ۔
3) بجلی کی تاروں
4) 3 خواتین سے عورتوں کو جوڑنے والی تاریں۔
5) اے سی لائٹ بلب۔
6) اے سی لائٹ بلب ہولڈر۔
7) اے سی پلگ
8) وائر کٹر اور سٹرپر ٹول۔
9) CR-V 3 سکریو ڈرایور۔
10) مائیکرو USB (Raspberry Pi 3) یا USB Type-C (Raspberry Pi 4) پاور اڈاپٹر۔
11) راسبیری پائی او ایس کے ساتھ 16 جی بی یا 32 جی بی مائیکرو ایس ڈی کارڈ چمک اٹھا۔
12) Raspberry Pi پر نیٹ ورک کنیکٹوٹی۔
13) لیپ ٹاپ یا ڈیسک ٹاپ کمپیوٹر برائے VNC ریموٹ ڈیسک ٹاپ رسائی یا راسبیری پائی تک SSH رسائی۔



اگر آپ SSH یا VNC کے ذریعے راسبیری پائی تک دور تک رسائی حاصل نہیں کرنا چاہتے ہیں تو آپ کو درج ذیل کی بھی ضرورت ہوگی۔





14) مانیٹر
15) HDMI یا مائیکرو HDMI کیبل۔
16) ایک کی بورڈ۔
17) ایک چوہا۔

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



اگر آپ راسبیری پائی شروع کرنے والے ہیں اور آپ کو راسبیری پائی پر راسبیری پائی او ایس انسٹال کرنے میں مدد کی ضرورت ہے تو مضمون دیکھیں Raspberry Pi 4 پر Raspberry Pi OS کیسے انسٹال کریں۔

نیز ، اگر آپ کو راسبیری پائی کے ہیڈ لیس سیٹ اپ میں مدد کی ضرورت ہو تو ، بیرونی مانیٹر کے بغیر راسبیری پائی 4 پر راسبیری پائی OS کو انسٹال اور کنفیگر کرنے کا مضمون دیکھیں۔

تمام مطلوبہ ٹولز کی تصاویر نیچے دی گئی ہیں۔

راسبیری پائی پر طاقت

اگلا ، پاور کیبل کو راسبیری پائی اور راسبیری پائی پر پاور سے مربوط کریں۔

ایک بار راسبیری پائی آن ہونے کے بعد ، آپ راسبیری پائی سے وی این سی یا ایس ایس ایچ کے ذریعے رابطہ قائم کرسکتے ہیں۔ یا ، آپ کی بورڈ ، ماؤس اور مانیٹر کو راسبیری پائی سے براہ راست رسائی حاصل کرنے کے لیے جوڑ سکتے ہیں۔

5V ریلے پن آؤٹ۔

ایک ریلے بنیادی طور پر ایک سوئچ ہے۔ لیکن ، روایتی سوئچ کے برعکس ، ایک ریلے کو ڈی سی وولٹیج کی تھوڑی مقدار سے کنٹرول کیا جا سکتا ہے۔

5V ریلے استعمال کرنا بہت آسان ہے۔ اس کے دو رخ ہیں: ایک طرف کم وولٹیج ڈی سی (راسبیری پائی سے) کے ذریعے ریلے کو کنٹرول کرنے کے لیے استعمال کیا جاتا ہے ، اور دوسری طرف ریلے کی حالت پر منحصر ہائی وولٹیج اے سی (یعنی لائٹ بلب) کو کنٹرول کرنے کے لیے استعمال کیا جاتا ہے۔ .


ایک طرف ، ریلے میں دو ایل ای ڈی (ایک سرخ اور ایک سبز) اور تین پن ( IN ، GND ، اور وی سی سی ). یہ تین پن راسبیری پائی سے ریلے کو کنٹرول کرنے کے لیے استعمال ہوتے ہیں۔

دوسری طرف کے پہلے دو پن AC گھر کے آلات کو کنٹرول کرنے کے لیے استعمال ہوتے ہیں۔

5V ریلے کو راسبیری پائی سے جوڑ رہا ہے۔

5V ریلے کو راسبیری پائی سے جوڑنے کے لیے ، آپ کو تین خواتین سے عورتوں کو جوڑنے والی تاروں کی ضرورت ہوگی۔

جڑنے والی تاروں کے ایک طرف کو پلگ کریں۔ IN (زرد تار) ، GND (سیاہ تار) ، اور وی سی سی (سرخ تار) 5V ریلے میں پن ، جیسا کہ ذیل میں دکھایا گیا ہے۔


تاروں کا دوسرا رخ راسبیری پائی کے GPIO ہیڈر پنوں میں جاتا ہے ، جیسا کہ نیچے دی گئی تصویر میں دکھایا گیا ہے۔

سرخ تار کو اندر جانا چاہیے۔ پن 2 (VCC) راسبیری پائی کا۔
کالی تار کو اندر جانا چاہیے۔ پن 6 (GND) راسبیری پائی کا۔
زرد تار کو اندر جانا چاہیے۔ پن 7 (GPIO 4) راسبیری پائی کا۔


ایک بار جب 5V ریلے راسبیری پائی سے منسلک ہوجائے تو ، اسے نیچے کی تصویر میں دکھائے جانے کے مطابق نظر آنا چاہئے۔

GPIO کو لاگ ان صارف تک رسائی کی اجازت دینا۔

GPIO پنوں تک رسائی کی اجازت دینے کے لیے ، Raspberry Pi OS کا ڈیفالٹ لاگ ان صارف۔ pi میں شامل کیا جانا چاہئے جی پی آئی او گروپ

آپ شامل کر سکتے ہیں۔ pi صارف کو جی پی آئی او مندرجہ ذیل کمانڈ کے ساتھ گروپ:

$سودوusermod-اے جیgpio $(میں کون ہوں)


تبدیلیوں کے اثر میں آنے کے لیے ، Raspberry Pi کو مندرجہ ذیل کمانڈ سے دوبارہ شروع کریں:

$سودودوبارہ شروع کریں

پروجیکٹ ڈائرکٹری بنانا

پروجیکٹ کی تمام فائلوں کو منظم رکھنا بھی ایک اچھا خیال ہے۔

پروجیکٹ فائلوں کو منظم رکھنے کے لیے ، پروجیکٹ ڈائرکٹری بنائیں۔ ~/www اور مندرجہ ذیل کمانڈ کے ساتھ مطلوبہ ذیلی ڈائریکٹریز:

$mkdir -پی وی۔/www/{ٹیمپلیٹس ، جامد۔}


ایک بار جب پروجیکٹ ڈائرکٹری بن جائے ، پروجیکٹ ڈائرکٹری پر مندرجہ ذیل راستے پر جائیں:

$سی ڈی۔/www

راسبیری پائی سے 5 وی ریلے کو تبدیل کرنا۔

اب چونکہ آپ نے 5V ریلے کو راسبیری پائی سے جوڑ دیا ہے ، آپ راسبیری پائی سے ازگر پروگرامنگ زبان کا استعمال کرتے ہوئے ریلے کو تبدیل کریں گے۔

نوٹ: سوئچنگ الیکٹرانکس میں استعمال ہونے والی اصطلاح ہے۔ سوئچنگ کا مطلب ہے کسی مخصوص الیکٹرانک ڈیوائس کو کنٹرول کرنا (یعنی پاور آن/آف کرنا)۔

ازگر پروگرامنگ لینگویج کا استعمال کرتے ہوئے ریلے کو سوئچ کرنے کا تجربہ کرنے کے لیے ، پروجیکٹ ڈائرکٹری میں نیا ازگر اسکرپٹ test.py بنائیں:

$نینوtest.py


test.py ازگر اسکرپٹ میں کوڈ کی درج ذیل لائنیں ٹائپ کریں۔

سےgpiozeroدرآمدایل. ای. ڈی
سے وقت درآمدنیند

جبکہ سچ ہے۔:
ریلے=ایل. ای. ڈی()
پرنٹ کریں('ریلے: آن')
نیند()

ریلےبند کریں()
پرنٹ کریں('ریلے: آف')
نیند()

ایک بار جب آپ کام کرچکے ہیں ، دبائیں۔ + ایکس۔ اس کے بعد اور اور بچانے کے لیے test.py ازگر کا سکرپٹ۔


یہاں ، لائن 1 درآمد ایل. ای. ڈی سے gpiozero لائبریری ، اور لائن 2 درآمد کرتا ہے نیند سے فنکشن وقت کتب خانہ.


لائنز 6-14 ایک لامحدود لوپ کے اندر ہیں۔


لائن 6 نے ایل ای ڈی کو شروع کیا۔ جی پی آئی او 4۔ راسبیری پائی کا ، جو کہ سے منسلک ہے۔ IN ریلے کا پن.


لائن 8 کا استعمال کرتے ہوئے ریلے کو آن کرتا ہے۔ پر () طریقہ

لائن 9 کنسول میں ایک پیغام پرنٹ کرتا ہے پرنٹ کریں() فنکشن

لائن 10 کوڈ کی اگلی لائن پر عملدرآمد میں پانچ سیکنڈ تک تاخیر کرتی ہے۔ نیند () فنکشن


لائن 12 کا استعمال کرتے ہوئے ریلے کو بند کر دیتا ہے۔ بند کریں() طریقہ

اسی طرح ، لائن 9 کنسول پر استعمال کرتے ہوئے ایک پیغام پرنٹ کرتی ہے۔ پرنٹ کریں() فنکشن اور لائن 10 کوڈ کی اگلی لائن کے استعمال میں 5 سیکنڈ تک تاخیر کرتا ہے۔ نیند () فنکشن


اگلا ، چلائیں test.py ازگر کا اسکرپٹ مندرجہ ذیل ہے:

$python3 test.py


کی test.py ازگر اسکرپٹ کو 5V ریلے کو تبدیل کرنا شروع کرنا چاہئے۔ آپ کو ہر پانچ سیکنڈ میں کلک کی آواز سننی چاہیے۔ جب ریلے کی حالت سوئچ ہوتی ہے (آن سے آف یا آف سے آن) ، یہ ایک کلک شور کرتا ہے۔ اس کا مطلب یہ ہے کہ ریلے مناسب طریقے سے کام کر رہا ہے۔


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


جب ریلے آن سٹیٹ میں ہو (AC بوجھ منسلک ہو) ، دونوں سبز ایل ای ڈی اور کی نیٹ ایل ای ڈی روشن ہونا چاہیے ، جیسا کہ آپ نیچے دی گئی تصویر میں دیکھ سکتے ہیں۔


ٹیسٹنگ مکمل ہونے کے بعد ، دبائیں۔ + سی ختم کرنے کے لئے test.py سکرپٹ.

AC لائٹ بلب کو 5V ریلے سے جوڑنا۔

5V ریلے کو اب مناسب طریقے سے کام کرنا چاہیے۔ اب ، آپ اپنے AC گھریلو آلات (اس معاملے میں ایک لائٹ بلب) کو 5V ریلے سے جوڑیں گے۔

سب سے پہلے ، لائٹ بلب سے منسلک سیاہ برقی تار کو تار کٹر سے کاٹیں۔


ایک بار جب لائٹ بلب سے جڑے سیاہ برقی تار کو تار کٹر سے کاٹ دیا جائے ، تو اسے نیچے کی تصویر میں دکھائے جانے کی طرح نظر آنا چاہیے۔


اگلا ، برقی تار کے تقریبا½ ½ انچ کو بے نقاب کرنے کے لیے بیرونی پرت کو ہٹا دیں ، جیسا کہ نیچے دی گئی تصویر میں دکھایا گیا ہے۔


پھر ، بے نقاب تاروں کو جوڑیں ، جیسا کہ نیچے دی گئی تصویر میں دکھایا گیا ہے۔


CV-3 سکریو ڈرایور کے ساتھ ریلے کے نشان زدہ پیچ کو ڈھیلے کریں۔


ان بے نقاب تاروں کو داخل کریں جنہیں آپ نے پہلے دو سکرو ٹرمینلز میں چھین کر جوڑ دیا تھا اور سی وی -3 سکریو ڈرایور کے ساتھ پیچ کو سخت کریں۔

اے سی لوڈ کو جوڑنے کے بعد ریلے سوئچنگ کی جانچ۔

ایک بار AC لوڈ 5V ریلے سے منسلک ہونے کے بعد ، لائٹ بلب پلگ کو وال ساکٹ سے جوڑیں۔


چلائیں test.py پروجیکٹ ڈائرکٹری سے ازگر اسکرپٹ مندرجہ ذیل ہے:

$python3 test.py


کی test.py ازگر کی اسکرپٹ کو 5V ریلے کو تبدیل کرنا شروع کرنا چاہیے ، جو کہ بدلے میں ، ہائی وولٹیج AC لائٹ بلب کو پانچ سیکنڈ کے وقفوں سے بدل دے گا۔ اے سی لائٹ بلب کو پانچ سیکنڈ تک رہنا چاہیے ، پھر پانچ سیکنڈ کے لیے بند رہنا چاہیے ، وغیرہ۔

لائٹ بلب نیچے دی گئی تصویر میں بند ہے۔


لائٹ بلب نیچے دی گئی تصویر میں ہے۔


جیسا کہ آپ دیکھ سکتے ہیں ، ہم ازگر پروگرامنگ زبان کا استعمال کرتے ہوئے ریلے کو تبدیل کر سکتے ہیں اور ہائی وولٹیج AC لائٹ بلب کو کنٹرول کر سکتے ہیں۔ تو ، دبائیں۔ + سی ختم کرنے کے لئے test.py سکرپٹ.

اب ہم اگلے حصے کی طرف چلتے ہیں۔

ہوم آٹومیشن ویب ایپ لکھنا۔

اس سیکشن میں ، میں آپ کو دکھاتا ہوں کہ ازگر پروگرامنگ زبان کا استعمال کرتے ہوئے API پر مبنی ویب ایپ کیسے لکھیں۔ آپ ویب براؤزر سے ریلے سے منسلک ریلے اور AC گھریلو آلات یا بجلی کے آلات کو کنٹرول کرنے کے لیے ویب ایپ استعمال کر سکتے ہیں۔

نوٹ: اس سیکشن میں دکھائے گئے تمام کوڈز میرے GitHub مخزن میں دستیاب ہیں۔ shovon8 / raspberry-pi-home-automation . اگر آپ چاہیں تو ، آپ میرے گٹ ہب مخزن کو کلون کرسکتے ہیں اور تمام کوڈز کو چھوڑ سکتے ہیں۔

پروجیکٹ ڈائرکٹری میں server.py ازگر سکرپٹ مندرجہ ذیل بنائیں:

$نینوserver.py


کوڈ کی درج ذیل لائنیں ٹائپ کریں server.py ازگر کا سکرپٹ۔

سےفلاسکدرآمدفلاسک،jsonify،url_for،render_template
سےgpiozeroدرآمدایل. ای. ڈی
سےuuidدرآمدuuid4
کمرے= {}
کمرے['کمرہ 1'] = [{
'آئی ڈی': uuid4()،
'نام':'روشنی 1'،
'آئیکن':'ایف اے ایف اے لائٹ بلب'،
'حالت':جھوٹا۔،
'ریلے پن':،
'ریلے انسٹنس':جھوٹا۔
}، {
'آئی ڈی': uuid4()،
'نام':'فین 1'،
'آئیکن':'ایف اے ایف اے فین'،
'حالت':جھوٹا۔،
'ریلے پن':،
'ریلے انسٹنس':جھوٹا۔
}]
کمرے['باتھ روم 1'] = [{
'آئی ڈی': uuid4()،
'نام':'روشنی 1'،
'آئیکن':'ایف اے ایف اے لائٹ بلب'،
'حالت':جھوٹا۔،
'ریلے پن':،
'ریلے انسٹنس':جھوٹا۔
}]
ایپ=فلاسک(__ نام__)
ایپتشکیل['SEND_FILE_MAX_AGE_DEFAULT'] =
۔ایپراسته('/')
دفاعگھر():
واپسیrender_template('./index.html'،کمرے=کمرے)
دفاعtoggle_appliance_status(آئی ڈی):
کے لیےکمرہمیںکمرے:
کے لیےآلہمیںکمرے[کمرہ]:
اگر p(آلہ['آئی ڈی']) == آئی ڈی:
اگرآلہ['ریلے انسٹنس']:
آلہ['ریلے انسٹنس'].بند کریں()
آلہ['ریلے انسٹنس'] = جھوٹا۔
اور:
آلہ['ریلے انسٹنس'] =ایل. ای. ڈی(آلہ['ریلے پن'])
آلہ['ریلے انسٹنس'].پر()
آلہ['حالت'] = نہیںآلہ['حالت']
واپسی سچ ہے۔
واپسی جھوٹا۔
۔ایپراسته('/آلات/ٹوگل/')
دفاعappliance_toggle(آئی ڈی):
واپسیjsonify({'حالت': toggle_appliance_status(آئی ڈی)})

ایک بار جب آپ کام کرچکے ہیں ، دبائیں۔ + ایکس۔ اس کے بعد اور اور بچانے کے لیے server.py ازگر کا سکرپٹ۔


یہاں ، لائنیں 1-3 ان کے متعلقہ لائبریریوں سے تمام ضروری اجزاء درآمد کرتی ہیں۔


لائن 5 خالی بناتی ہے۔ کمرے لغت اس لغت میں ، ہم اے سی آلات کی تمام تفصیلات کو محفوظ کریں گے جسے ہم ویب ایپ سے کنٹرول کرنا چاہتے ہیں۔


کی کمرے تفصیلات 7-29 لائنوں میں محفوظ ہیں۔


آئیے ہم کمروں میں سے ایک کے ڈیٹا سٹرکچر پر بات کریں۔

یہاں ، کمرے کا نام ہوگا۔ کمرہ 1۔ تو ، کمرہ 1۔ کی کلید ہے کمرے لغت


کی کمرہ 1۔ کلید قدر کے طور پر ایک صف رکھتی ہے۔ صف عناصر کی تعداد AC گھریلو آلات کی تعداد کے برابر ہے جو آپ اس کمرے میں رکھتے ہیں جسے آپ ویب ایپ سے بھی کنٹرول کرنا چاہتے ہیں۔ اس صورت میں ، ہمارے پاس دو AC گھریلو آلات ہیں جنہیں ہم کنٹرول کرنا چاہتے ہیں: روشنی 1۔ اور پرستار 1۔ .


ہر گھریلو آلات کی تعریف ایک ہے۔ آئی ڈی . کی آئی ڈی ایک تصادفی طور پر تیار کردہ UUID ہے۔ اس کا استعمال اس بات کی نشاندہی کرنے کے لیے کیا جاتا ہے کہ ہم API کا استعمال کرتے ہوئے کس کمرے کو کنٹرول کرنا چاہتے ہیں۔

گھریلو آلات میں مندرجہ ذیل تمام چیزیں بھی شامل ہیں:

  • نام (روشنی 1۔ اس معاملے میں)
  • آئیکن (فونٹ بہت اچھا آئیکن کلاس ، جیسا کہ ہم شبیہیں کے لیے فونٹ بہت اچھے استعمال کریں گے)
  • حیثیت (سچ اگر پر اور جھوٹا۔ اگر بند )
  • ریلے پن (GPIO پن نمبر AC گھر کے آلات سے منسلک ریلے کو کنٹرول کرنے کے لیے استعمال کیا جاتا ہے)
  • ریلے کی مثال (شروع شدہ ایل. ای. ڈی کی شے gpiozero لائبریری متعلقہ GPIO پن کو کنٹرول کرنے کی ذمہ دار ہے۔ ریلے پن )


لائن 31 فلاسک ازگر ویب سرور کو شروع کرتی ہے۔

لائن 32 فلاسک ویب سرور کو تشکیل دیتی ہے۔


لائنز 34-36 بھیجیں۔ index.html فائل سے ٹیمپلیٹس/ ڈائریکٹری جب آپ ہوم آٹومیشن ویب ایپ پر جائیں۔

فلاسک استعمال کرتا ہے۔ جنجا 2۔ زبان کو پیش کرنے کے لیے index.html فائل. تو ، میں نے پاس کیا ہے۔ کمرے لغت کو index.html فائل. جنجا 2۔ کا استعمال کرتے ہوئے ہوم پیج پیش کرے گا۔ کمرے ڈیٹا


فنکشن toggle_appliance_status () لائنز 39-52 میں گھریلو آلات کو بند کرنے کے لیے استعمال کیا جاتا ہے اگر وہ بند ہے اور گھریلو آلات کو بند کردیں اگر یہ آلات استعمال کررہا ہو آئی ڈی .

یہ لوٹتا ہے۔ سچ ہے۔ اگر ٹوگل آپریشن کامیاب ہے۔ اگر کوئی خرابی ہے تو ، یہ واپس آئے گا۔ جھوٹا۔ .


لائنز 55-57 کا استعمال گھریلو آلات کو ٹوگل کرنے کے لیے کیا جاتا ہے۔ /appliance/toggle/ ویب سرور کا API اختتامی نقطہ۔ یہاں ، آئی ڈی گھریلو آلات کی شناخت ہے۔


بنائیں۔ index.html فائل میں ٹیمپلیٹس/ آپ کے پروجیکٹ کی ڈائریکٹری مندرجہ ذیل ہے۔

$نینوٹیمپلیٹس/index.html

کوڈ کی درج ذیل لائنیں ٹائپ کریں index.html سکرپٹ.


< html لینگ='پر'>
< سر >
< میٹا چارسیٹ='UTF-8'>
< میٹا نام='ویو پورٹ' مواد='width = device-width، initial-scale = 1.0'>
< لنک rel='سٹائل شیٹ' href='{{url_for (' جامد '، فائل کا نام =' fontawesome/css/all.min.css ')}}'>
< لنک rel='سٹائل شیٹ' href='{{url_for (' static '، filename =' style.css ')}}'>
< عنوان >راسبیری پائی کے ساتھ ہوم آٹومیشن۔</ عنوان >
</ سر >
< جسم >
< div آئی ڈی='مواد'>
< h1 >راسبیری پائی ہوم آٹومیشن۔</ h1 >

{٪ کمرے میں کمرے کے لیے٪}
< div کلاس='کمرہ'>
< h2 >{{کمرہ}}</ h2 >
< div کلاس='آلات'>
{٪ کمرے [کمرے] میں آلات کے لیے٪}
< div کلاس='آلہ' آئی ڈی='{{آلات [' id ']}}'> ='فعال'>
< میں کلاس='{{appliance [' icon ']}}'></ میں >
< دورانیہ >{{آلات ['name']}}}</ دورانیہ >
</ div >
{٪ endfor٪}
</ div >
</ div >
{٪ endfor٪}

</ div >

< سکرپٹ src='{{url_for (' جامد '، فائل نام =' app.js ')}}' قسم='متن/جاوا اسکرپٹ'></ سکرپٹ >
</ جسم >
</ html >

ایک بار جب آپ کام کرچکے ہیں ، دبائیں۔ + ایکس۔ اس کے بعد اور اور بچانے کے لیے index.html فائل.


بنائیے ایک style.css فائل میں جامد/ آپ کے پروجیکٹ کی ڈائریکٹری مندرجہ ذیل ہے۔

$نینوجامد/style.css


کوڈ کی درج ذیل لائنیں ٹائپ کریں style.css فائل.

port امپورٹ url('https://fonts.googleapis.com/css2؟family=BenchNine: [email protected] 400 400 700 700 & display = swap')؛

* {
مارجن: ؛
بھرتی: ؛
فونٹ فیملی: 'بینچ نائن'، سینز سیرف؛
}

#مواد >h1{
پس منظر:لکیری میلان(کوٹھیک ہے، آر جی بی(112۔، 24۔، 163۔)، آر جی بی(86۔، 127۔، 240۔))؛
رنگ: #fff؛
متن کی صف بندی: مرکز؛
بھرتی: .5em ؛
}

div.room {
مارجن: .5em؛
سرحد: 2px ٹھوس آر جی بی(112۔، 24۔، 163۔)؛
سرحد کا رداس: 5px؛
}

div.roomh2{
/* پس منظر: آر جی بی (9 ، 76 ، 121) */
پس منظر:لکیری میلان(کوٹھیک ہے، آر جی بی(112۔، 24۔، 163۔)، آر جی بی(86۔، 127۔، 240۔))؛
بھرتی: .5em؛
رنگ: #fff؛
}

div. آلات {
مارجن: .5em .5em ؛
ڈسپلے:فلیکس؛
فلیکس لپیٹ:لپیٹ؛
}

div. آلات {
سرحد: 2px ٹھوس آر جی بی(112۔، 24۔، 163۔)؛
سرحد کا رداس: 5px؛
چوڑائی: 110px؛
اونچائی: 120px؛
متن کی صف بندی: مرکز؛
مارجن: .5em .5em؛
ڈسپلے:فلیکس؛
فلیکس سمت:کالم؛
}

div. آلاتمیں.fa {
حرف کا سائز: 4em؛
فلیکس بڑھنا: ؛
پیڈنگ ٹاپ: 0.3em؛
رنگ: آر جی بی(204۔، پچاس، پچاس)؛
}

div.appliance[ڈیٹا ایکٹو='فعال']میں.fa {
رنگ: آر جی بی(32۔، 177۔، 51۔)؛
}

div. آلاتدورانیہ{
ڈسپلے: بلاک؛
فونٹ وزن: جرات مندانہ؛
پس منظر: آر جی بی(112۔، 24۔، 163۔)؛
رنگ: #fff؛
}

ایک بار جب آپ کام کرچکے ہیں ، دبائیں۔ + ایکس۔ اس کے بعد اور اور بچانے کے لیے style.css فائل.


ایک بنائیں۔ app.js فائل میں جامد/ آپ کے پروجیکٹ کی ڈائریکٹری مندرجہ ذیل ہے۔

$نینوجامد/app.js


کوڈ کی درج ذیل لائنیں ٹائپ کریں app.js فائل.

کھڑکیaddEventListener('بوجھ'،مرکزی)؛

فنکشنمرکزی() {
فنکشنٹوگل اپلائنس سٹیٹ(اور) {
کہاںآئی ڈی=اور.راستہ[].آئی ڈی؛

کہاںhttp= نئیXMLHttpRequest()؛

httponreadystatechange = فنکشن() {
اگر(یہ.ریڈی سٹیٹ === && یہ.حالت === 200۔) {
اگر(JSONتجزیہ(یہ.جوابی متن).حالت === سچ) {
اگر(اور.راستہ[].hasAttribute('ڈیٹا ایکٹیو')) {
اور.راستہ[].ہٹانا Attribute('ڈیٹا ایکٹیو')
} اور {
اور.راستہ[].setAttribute('ڈیٹا ایکٹیو'، 'فعال')
}
}
}
}

httpکھلا('حاصل'،'/آلہ/ٹوگل/${آئی ڈی}'، سچ)؛
httpبھیجیں()؛
}


کہاںآلات=دستاویزgetElementsByClassName۔('آلہ')؛
کے لیے(میں=؛میں<آلاتلمبائی؛میں++۔) {
آلات[میں].addEventListener('کلک'،ٹوگل اپلائنس سٹیٹ)؛
}
}

ایک بار جب آپ کام کرچکے ہیں ، دبائیں۔ + ایکس۔ اس کے بعد اور اور بچانے کے لیے app.js فائل.


یہاں ، لائن 1 چلتی ہے۔ مرکزی() کام جب ویب پیج لوڈنگ ختم کرتا ہے۔

میں index.html فائل ، ہر گھریلو سامان ایک میں بند ہے۔ آلہ کلاس لائنز 26-29 ویب پیج سے ہر گھریلو آلات کو منتخب کرنے اور منسلک کرنے کے لیے استعمال ہوتی ہیں۔ کلک کریں ایونٹ کا واقعہ جب کوئی ویب پیج سے گھریلو آلات پر کلک کرتا ہے ، ٹوگل اپلائنس سٹیٹ () فنکشن چلے گا


4-23 لائنوں میں ، ٹوگل اپلائنس سٹیٹ () فنکشن کو درخواست کرنے کے لیے استعمال کیا جاتا ہے۔ /appliance/toggle/ کلک کردہ گھریلو آلات کی حالت کو تبدیل کرنے کے لیے ویب سرور کا اختتامی نقطہ۔ درخواست AJAX کے ذریعے پس منظر میں کی گئی ہے۔ ایک بار جواب موصول ہونے کے بعد ، ویب پیج کو اسی کے مطابق اپ ڈیٹ کیا جاتا ہے۔


پر جائیں۔ جامد/ اپنی پروجیکٹ ڈائرکٹری میں ڈائریکٹری مندرجہ ذیل ہے:

$سی ڈیجامد/


درج ذیل کمانڈ کے ساتھ فونٹ بہت اچھا ڈاؤن لوڈ کریں:

$ویجٹhttps://use.fontawesome.com/ریلیز/v5.15.1۔/fontawesome-free-5.15.1-web.zip


ایک بار جب فونٹ خوفناک ڈاؤن لوڈ ہوجائے تو ، آپ کو نئی زپ فائل ملنی چاہئے۔ fontawesome-free-5.15.1-web.zip میں جامد/ ڈائریکٹری

$ایل ایس -ایل ایچ


ان زپ کریں۔ fontawesome-free-5.15.1-web.zip درج ذیل کمانڈ کے ساتھ فائل کریں:

$زپfontawesome-free-5.15.1-web.zip


کی fontawesome-free-5.15.1-web.zip فائل اب ان زپ ہونی چاہیے۔


نئی ڈائریکٹری۔ fontawesome-free-5.15.1-web/ جامد/ ڈائرکٹری میں بنایا جانا چاہئے ، جیسا کہ آپ نیچے اسکرین شاٹ میں دیکھ سکتے ہیں۔

$ایل ایس -ایل ایچ

ڈائریکٹری کا نام تبدیل کریں۔ fontawesome-free-5.15.1-web/ کو fontawesome/ مندرجہ ذیل کمانڈ کے ساتھ:

$mv -vfontawesome-free-5.15.1-web fontawesome


اب ، آپ کو اب ضرورت نہیں ہے۔ fontawesome-free-5.15.1-web.zip فائل. تو ، کو ہٹا دیں۔ fontawesome-free-5.15.1-web.zip درج ذیل کمانڈ کے ساتھ فائل کریں:

$rm -vfontawesome-free-5.15.1-web.zip


کی جامد/ ڈائریکٹری کا ڈھانچہ جیسا کہ نیچے سکرین شاٹ میں دکھایا گیا ہے۔

$ایل ایس -ایل ایچ


پراجیکٹ ڈائریکٹری پر واپس جائیں۔ ~/www حسب ذیل:

$سی ڈی..

ہوم آٹومیشن ویب ایپ کی جانچ

ہوم آٹومیشن ویب ایپ کو جانچنے کے لیے اپنی پروجیکٹ ڈائرکٹری میں درج ذیل کمانڈ چلائیں۔

$FLASK_APP= server.py فلاسک رن۔


ویب ایپ آپ کے راسبیری پائی کے پورٹ 5000 پر دستیاب ہونی چاہیے۔


Chromium ویب براؤزر سے ، ملاحظہ کریں۔ http: // localhost: 5000۔ . ہوم آٹومیشن ویب ایپ لوڈ ہونا چاہیے۔

لائٹ بلب آئیکن پر کلک کریں ، جو نیچے دی گئی تصویر میں دکھایا گیا ہے۔


اے سی لائٹ بلب اب آن ہونا چاہیے۔ آئیکن کا رنگ بھی بدلنا چاہیے سبز ، یہ بتاتا ہے کہ لائٹ بلب آن ہے۔


تو ، ہوم آٹومیشن ویب ایپ کام کر رہی ہے۔ دبائیں + سی ویب سرور کو ختم کرنا۔

ہوم آٹومیشن ویب ایپ کے لیے سسٹمڈ سروس بنانا۔

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

سب سے پہلے ، تخلیق کریں۔ raspi-home-automation.service اپنی پروجیکٹ ڈائرکٹری میں فائل درج ذیل ہے:

$نینوraspi-home-automation.service

raspi-home-automation.service فائل میں درج ذیل لائنیں ٹائپ کریں۔

[یونٹ]
تفصیل= راسبیری پائی ہوم آٹومیشن ویب سروس۔
کے بعد۔= نیٹ ورک ٹارگٹ
[خدمت۔]
ورکنگ ڈائریکٹری=/گھر/pi/www
ماحولیات=FLASK_APP= server.py
ماحولیات=FLASK_ENV= پیداوار
ExecStart=/usr/ہوں/فلاسک رن-ہوسٹ= 0.0.0.0۔
معیاری آؤٹ پٹ۔= وراثت
معیاری غلطی= وراثت
دوبارہ شروع کریں= ہمیشہ
صارف۔= pi
[انسٹال کریں]
وانٹڈ بائی۔= کثیر صارف کا ہدف۔

ایک بار جب آپ کام کرچکے ہیں ، دبائیں۔ + ایکس۔ اس کے بعد اور اور بچانے کے لیے raspi-home-automation.service فائل.


کاپی کریں۔ raspi-home-automation.service فائل کو /etc/systemd/system/ مندرجہ ذیل کمانڈ کے ساتھ ڈائریکٹری:

$سودو cp -vraspi-home-automation.service/وغیرہ/نظام/نظام/


مندرجہ ذیل کے طور پر تبدیلیوں کو لاگو کرنے کے لیے systemd ڈیمون کو دوبارہ لوڈ کریں:

$سودوsystemctl ڈیمون دوبارہ لوڈ


شامل کریں راسپی ہوم آٹومیشن مندرجہ ذیل کمانڈ کے ساتھ Raspberry Pi OS کے سسٹم سٹارٹ اپ کی خدمت:

$سودوsystemctlفعالraspi-home-automation.service


راسبیری پائی کو مندرجہ ذیل کمانڈ سے دوبارہ شروع کریں:

$سودودوبارہ شروع کریں


ایک بار راسبیری پائی بوٹ ہونے کے بعد ، راسپی ہوم آٹومیشن سروس کو فعال/چلنا چاہیے ، جیسا کہ آپ نیچے اسکرین شاٹ میں دیکھ سکتے ہیں۔

$سودوsystemctl حیثیت raspi-home-automation.service

دوسرے آلات سے ہوم آٹومیشن ویب ایپ تک رسائی۔

اپنے ہوم نیٹ ورک کے دیگر آلات سے ہوم آٹومیشن ویب ایپ تک رسائی کے ل you ، آپ کو اپنے راسبیری پائی ڈیوائس کا آئی پی ایڈریس جاننا ہوگا۔

آپ اپنے راسبیری پائی 4 ڈیوائس کا آئی پی ایڈریس اپنے ہوم روٹر کے ویب مینجمنٹ انٹرفیس سے حاصل کرسکتے ہیں۔ میرے معاملے میں ، IP ایڈریس 192.168.0.103 ہے۔ یہ آپ کے لیے مختلف ہوگا۔ لہذا ، اب سے اپنے آئی پی کو اپنے ساتھ تبدیل کرنا یقینی بنائیں۔


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

$میزبان کا نام -میں


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

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


دیوار پاور آؤٹ لیٹ میں لائٹ بلب پلگ لگانا یقینی بنائیں۔


لائٹ بلب کو بطور ڈیفالٹ بند کر دینا چاہیے۔


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


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

نتیجہ

یہ مضمون آپ کو دکھاتا ہے کہ راسبیری پائی سے ہائی وولٹیج AC الیکٹرک ڈیوائس کو کنٹرول کرنے کے لیے 5V ریلے کا استعمال کیسے کیا جائے۔ مضمون نے آپ کو یہ بھی دکھایا کہ ویب براؤزر سے ریلے کو کنٹرول کرنے کے لیے API پر مبنی ازگر فلاسک ویب ایپ کیسے لکھیں۔ یہ مضمون آپ کو راسبیری پائی کا استعمال کرتے ہوئے گھریلو آٹومیشن کے ساتھ شروع کرنے میں مدد کرے گا۔