قم بإعداد Raspberry Pi Home Automation

Set Up Raspberry Pi Home Automation



من أهم الأشياء لأتمتة المنزل التحكم في التيار المتردد عالي الجهد باستخدام تيار مستمر منخفض الجهد. للتحكم في التيار المتردد عالي الجهد من Raspberry Pi ، ستحتاج إلى مفتاح ترحيل 5V. يمكنك التحكم في مفتاح الترحيل باستخدام دبابيس GPIO في Raspberry Pi. يمكن لمفتاح الترحيل بعد ذلك التحكم في أجهزة التيار المتردد المنزلية من خلال Raspberry Pi.

ستوضح لك هذه المقالة كيفية استخدام Raspberry Pi ومفتاح الترحيل 5V لتشغيل مصباح وإيقاف تشغيله من جهازك المحمول. تتضمن المقالة تطبيق ويب يمكنك الوصول إليه من أي جهاز على شبكتك والتحكم في أي أجهزة منزلية تعمل بالتيار المتردد في منزلك لاسلكيًا. لذا ، دعونا نبدأ بتجربة أتمتة المنزل Raspberry Pi البسيطة.







الأشياء التي سوف تحتاجها

إذا كنت تريد استخدام Raspberry Pi بدون رأس (عبر SSH أو VNC) ، فستحتاج إلى الأشياء التالية:



1) Raspberry Pi 3 أو Raspberry Pi 4.
2) 5V التبديل التتابع.
3) الأسلاك الكهربائية.
4) 3 أسلاك توصيل من أنثى إلى أنثى.
5) مصباح التيار المتردد.
6) حامل مصباح التيار المتردد.
7) قابس التيار المتردد.
8) أداة قطع الأسلاك والتعرية.
9) مفك CR-V 3.
10) Micro-USB (Raspberry Pi 3) أو محول طاقة USB Type-C (Raspberry Pi 4).
11) تومض بطاقة microSD بسعة 16 جيجابايت أو 32 جيجابايت مع نظام التشغيل Raspberry Pi OS.
12) اتصال الشبكة على Raspberry Pi.
13) كمبيوتر محمول أو كمبيوتر مكتبي للوصول إلى سطح المكتب البعيد لـ VNC أو وصول SSH إلى Raspberry Pi.



إذا كنت لا ترغب في الوصول إلى Raspberry Pi عن بُعد عبر SSH أو VNC ، فستحتاج أيضًا إلى ما يلي:





14) شاشة.
15) كابل HDMI أو micro-HDMI.
16) لوحة مفاتيح.
17) فأر.

إذا كنت بحاجة إلى مساعدة في وميض صورة Raspberry Pi OS على بطاقة microSD ، فراجع مقالة كيفية تثبيت واستخدام Raspberry Pi Imager.



إذا كنت مبتدئًا في Raspberry Pi وتحتاج إلى مساعدة في تثبيت نظام Raspberry Pi OS على Raspberry Pi ، فراجع المقالة كيفية تثبيت نظام Raspberry Pi OS على Raspberry Pi 4.

أيضًا ، إذا كنت بحاجة إلى مساعدة في الإعداد بدون رأس لـ Raspberry Pi ، فراجع مقالة كيفية تثبيت وتكوين Raspberry Pi OS على Raspberry Pi 4 بدون شاشة خارجية.

فيما يلي صور لجميع الأدوات المطلوبة.

تشغيل على Raspberry Pi

بعد ذلك ، قم بتوصيل كابل الطاقة بـ Raspberry Pi وتشغيل Raspberry Pi.

بمجرد تشغيل Raspberry Pi ، يمكنك الاتصال بـ Raspberry Pi عبر VNC أو SSH. أو يمكنك توصيل لوحة مفاتيح وماوس وشاشة بـ Raspberry Pi للوصول إليها مباشرة.

5V التقوية Pinouts

التتابع هو في الأساس مفتاح. ولكن ، على عكس المفتاح التقليدي ، يمكن التحكم في المرحل بكمية صغيرة من جهد التيار المستمر.

مرحل 5V سهل الاستخدام للغاية. له وجهان: جانب يستخدم للتحكم في التتابع عبر تيار مستمر منخفض الجهد (من Raspberry Pi) ، والجانب الآخر يستخدم للتحكم في التيار المتردد عالي الجهد (أي المصباح) ، اعتمادًا على حالة المرحل .


على جانب واحد ، يحتوي المرحل على مصباحي LED (أحدهما أحمر والآخر أخضر) وثلاثة دبابيس ( في ، GND ، و VCC ). تستخدم هذه المسامير الثلاثة للتحكم في التتابع من Raspberry Pi.

يتم استخدام أول دبابيس على الجانب الآخر للتحكم في جهاز تكييف الهواء المنزلي.

توصيل 5V Relay بـ Raspberry Pi

لتوصيل مرحل 5 فولت بـ Raspberry Pi ، ستحتاج إلى ثلاثة أسلاك توصيل من أنثى إلى أنثى.

قم بتوصيل جانب واحد من الأسلاك المتصلة بـ في (سلك أصفر) ، GND (السلك الأسود) و VCC (السلك الأحمر) دبابيس في مرحل 5V ، كما هو موضح أدناه.


يذهب الجانب الآخر من الأسلاك إلى دبابيس رأس GPIO الخاصة بـ Raspberry Pi ، كما هو موضح في الصورة أدناه.

يجب أن يدخل السلك الأحمر في رقم التعريف الشخصي 2 (VCC) من Raspberry Pi.
يجب أن يدخل السلك الأسود في رقم التعريف الشخصي 6 (GND) من Raspberry Pi.
يجب أن يدخل السلك الأصفر في رقم التعريف الشخصي 7 (GPIO 4) من Raspberry Pi.


بمجرد توصيل مرحل 5V بـ Raspberry Pi ، يجب أن يظهر كما هو موضح في الصورة أدناه.

السماح بوصول GPIO إلى مستخدم تسجيل الدخول

للسماح بالوصول إلى دبابيس GPIO ، مستخدم تسجيل الدخول الافتراضي لنظام Raspberry Pi OS بي يجب أن يضاف إلى gpio مجموعة.

يمكنك إضافة ملف بي المستخدم إلى gpio مجموعة مع الأمر التالي:

$سودوusermod-اي جيgpio $(من أنا)


لكي تدخل التغييرات حيز التنفيذ ، أعد تشغيل Raspberry Pi باستخدام الأمر التالي:

$سودواعادة التشغيل

إنشاء دليل المشروع

من الجيد أيضًا الاحتفاظ بجميع ملفات المشروع منظمة.

للحفاظ على ملفات المشروع منظمة ، قم بإنشاء دليل المشروع ~ / شبكة الاتصالات العالمية والأدلة الفرعية المطلوبة بالأمر التالي:

$مكدير -pv~/www/{قوالب ثابتة}


بمجرد إنشاء دليل المشروع ، انتقل إلى دليل المشروع على النحو التالي:

$قرص مضغوط~/www

تبديل 5V Relay من Raspberry Pi

الآن بعد أن قمت بتوصيل مرحل 5V بـ Raspberry Pi ، ستقوم بتبديل التتابع من Raspberry Pi باستخدام لغة برمجة Python.

ملاحظة: التبديل هو مصطلح يستخدم في الإلكترونيات. يعني التبديل التحكم (أي تشغيل / إيقاف تشغيل) جهاز إلكتروني معين.

لتجربة تبديل الترحيل باستخدام لغة برمجة Python ، أنشئ اختبار Python النصي الجديد في دليل المشروع على النحو التالي:

$نانوtest.py


اكتب سطور الأكواد التالية في test.py Python script.

من عندgpiozeroيستوردقاد
من عند زمن يستوردنايم

في حين حقيقي:
تناوب=قاد(4)
مطبعة('يعتمد على')
نايم(5)

تناوب.أغلق()
مطبعة('التتابع: متوقف')
نايم(5)

بمجرد الانتهاء ، اضغط على + X تليها و و لحفظ test.py نص بايثون.


هنا ، يستورد السطر 1 قاد من gpiozero مكتبة ، ويستورد السطر 2 ملف نايم وظيفة من زمن مكتبة.


تقع الأسطر 6-14 ضمن حلقة لا نهائية.


يقوم السطر 6 بتهيئة مؤشر LED في ملف GPIO 4 من Raspberry Pi ، المتصل بـ في دبوس التتابع.


يتحول الخط 8 إلى التتابع باستخدام تشغيل() طريقة.

يقوم السطر 9 بطباعة رسالة في وحدة التحكم باستخدام ملف مطبعة() وظيفة.

يؤخر السطر 10 تنفيذ السطر التالي من التعليمات البرمجية لمدة خمس ثوانٍ باستخدام ملف نايم() وظيفة.


يقوم الخط 12 بإيقاف تشغيل التتابع باستخدام أغلق() طريقة.

بنفس الطريقة ، يطبع السطر 9 رسالة على وحدة التحكم باستخدام ملف مطبعة() الوظيفة والخط 10 يؤخران تنفيذ السطر التالي من التعليمات البرمجية لمدة 5 ثوانٍ باستخدام نايم() وظيفة.


بعد ذلك ، قم بتشغيل ملف test.py نص Python على النحو التالي:

$python3 test.py


ال test.py يجب أن يبدأ نص Python في تبديل مرحل 5V. يجب أن تسمع صوت طقطقة كل خمس ثوان. عندما يقوم المرحل بتبديل الحالة (من تشغيل إلى إيقاف أو من إيقاف تشغيل إلى تشغيل) ، فإنه يصدر ضوضاء نقر. هذا يعني أن التتابع يعمل بشكل صحيح.


عندما يكون التتابع في حالة إيقاف التشغيل (التشغيل العادي - يتم فصل حمل التيار المتردد) ، فقط ملف صافي يجب أن يضيء مؤشر LED كما ترى في الصورة أدناه.


عندما يكون المرحل في حالة التشغيل (يتم توصيل حمل التيار المتردد) ، فإن كلاهما لون أخضر LED و ال صافي يجب أن يضيء مؤشر LED كما ترى في الصورة أدناه.


بمجرد اكتمال الاختبار ، اضغط على + ج لإنهاء test.py النصي.

توصيل مصباح التيار المتردد بجهد 5 فولت

يجب أن يعمل المرحل 5V الآن بشكل صحيح. الآن ، سوف تقوم بتوصيل جهاز التيار المتردد المنزلي الخاص بك (مصباح كهربائي ، في هذه الحالة) إلى مرحل 5 فولت.

أولاً ، قم بقطع السلك الكهربائي الأسود المتصل بالمصباح بواسطة قاطع أسلاك.


بمجرد قطع السلك الكهربائي الأسود المتصل بالمصباح بواسطة قاطع أسلاك ، يجب أن يبدو كما هو موضح في الصورة أدناه.


بعد ذلك ، قم بإزالة الطبقة الخارجية لكشف حوالي بوصة من السلك الكهربائي ، كما هو موضح في الصورة أدناه.


ثم قم بطي الأسلاك المكشوفة ، كما هو موضح في الصورة أدناه.


قم بفك مسامير التتابع المحددة باستخدام مفك البراغي CV-3.


أدخل الأسلاك المكشوفة التي جردتها وطوتها سابقًا في طرفي المسمار وشد البراغي باستخدام مفك البراغي CV-3.

اختبار تبديل التتابع بعد توصيل حمولة التيار المتردد

بمجرد توصيل حمل التيار المتردد بمرحل 5 فولت ، قم بتوصيل قابس المصباح بمقبس الحائط.


قم بتشغيل test.py نص Python من دليل المشروع على النحو التالي:

$python3 test.py


ال test.py يجب أن يبدأ سكريبت Python في تبديل مرحل 5V ، والذي بدوره سيحول مصباح التيار المتردد عالي الجهد بفواصل زمنية مدتها خمس ثوان. يجب أن يظل مصباح التيار المتردد مضيئًا لمدة خمس ثوانٍ ، ثم يظل مطفئًا لمدة خمس ثوانٍ ، وهكذا.

المصباح مطفأ في الصورة أدناه.


المصباح في الصورة أدناه.


كما ترى ، يمكننا تبديل المرحل والتحكم في مصباح التيار المتردد عالي الجهد باستخدام لغة برمجة Python. لذا ، اضغط + ج لإنهاء test.py النصي.

دعنا ننتقل الآن إلى القسم التالي.

كتابة تطبيق Home Automation Web

في هذا القسم ، سأوضح لك كيفية كتابة تطبيق ويب قائم على API باستخدام لغة برمجة Python. يمكنك استخدام تطبيق الويب للتحكم في المرحل والأجهزة (الأجهزة) المنزلية أو الأجهزة الكهربائية المتصلة بالترحيل من مستعرض الويب.

ملاحظة: جميع الرموز الموضحة في هذا القسم متوفرة في مستودع GitHub الخاص بي shovon8 / raspberry-pi- أتمتة المنزل . إذا كنت تريد ، يمكنك استنساخ مستودع GitHub الخاص بي وتخطي جميع الرموز.

قم بإنشاء ملف server.py Python النصي في دليل المشروع على النحو التالي:

$نانوserver.py


اكتب سطور الرموز التالية في ملف server.py نص بايثون.

من عندقارورةيستوردقارورةوjsonifyوurl_forوتقديم_قالب
من عندgpiozeroيستوردقاد
من عندuuidيستوردuuid4
غرف= {}
غرف['غرفة 1'] = [{
'هوية شخصية': uuid4()و
'اسم':'فاتح 1'و
'أيقونة':'fa fa-lightbulb'و
'الحالة':خاطئةو
'relayPin':4و
'relayInstance':خاطئة
}و {
'هوية شخصية': uuid4()و
'اسم':'مروحة 1'و
'أيقونة':'fa fa-fan'و
'الحالة':خاطئةو
'relayPin':6و
'relayInstance':خاطئة
}]
غرف['الحمام 1'] = [{
'هوية شخصية': uuid4()و
'اسم':'فاتح 1'و
'أيقونة':'fa fa-lightbulb'و
'الحالة':خاطئةو
'relayPin':5و
'relayInstance':خاطئة
}]
تطبيق=قارورة(__اسم__)
تطبيق.التكوين['SEND_FILE_MAX_AGE_DEFAULT'] = 0
@تطبيق.طريق('/')
defالصفحة الرئيسية():
إرجاعتقديم_قالب('./index.html'وغرف=غرف)
deftoggle_appliance_status(هوية شخصية):
لمجالفيغرف:
لتطبيقفيغرف[مجال]:
لو ص(تطبيق['هوية شخصية']) == هوية شخصية:
لوتطبيق['relayInstance']:
تطبيق['relayInstance'].أغلق()
تطبيق['relayInstance'] = خاطئة
آخر:
تطبيق['relayInstance'] =قاد(تطبيق['relayPin'])
تطبيق['relayInstance'].تشغيل()
تطبيق['الحالة'] = ليستطبيق['الحالة']
إرجاع حقيقي
إرجاع خاطئة
@تطبيق.طريق('/ جهاز / تبديل /')
defجهاز_تبديل(هوية شخصية):
إرجاعjsonify({'الحالة': toggle_appliance_status(هوية شخصية)})

بمجرد الانتهاء ، اضغط على + X تليها و و لحفظ server.py نص بايثون.


هنا ، تستورد الأسطر 1-3 جميع المكونات الضرورية من مكتباتها الخاصة.


ينشئ السطر 5 ملفًا فارغًا غرف قاموس. في هذا القاموس ، سنخزن جميع تفاصيل جهاز التيار المتردد التي نريد التحكم فيها من تطبيق الويب.


ال غرف يتم تخزين التفاصيل في السطور 7-29.


دعونا نناقش بنية البيانات لإحدى الغرف.

هنا ، سيكون اسم الغرفة غرفة 1. وبالتالي، غرفة 1 هو مفتاح غرف قاموس.


ال غرفة 1 المفتاح يحمل مصفوفة كقيمة. عدد عناصر المصفوفة يساوي عدد الأجهزة المنزلية التي تعمل بالتيار المتردد الموجودة لديك في تلك الغرفة والتي تريد أيضًا التحكم فيها من تطبيق الويب. في هذه الحالة ، لدينا جهازان منزليان يعملان بالتيار المتردد نريد التحكم فيهما: ضوء 1 و مروحة 1 .


يحتوي كل تعريف للأجهزة المنزلية على ملف هوية شخصية . ال هوية شخصية هو UUID تم إنشاؤه عشوائيًا. يستخدم هذا لتحديد الغرفة التي نريد التحكم فيها باستخدام واجهة برمجة التطبيقات.

يحتوي الجهاز المنزلي أيضًا على كل ما يلي:

  • اسم (فاتح 1 في هذه الحالة)
  • أيقونة (فئة رمز Font Awesome ، حيث سنستخدم Font Awesome للأيقونات)
  • الحالة (صحيح لو تشغيل و خاطئة لو إيقاف )
  • التتابع (رقم التعريف الشخصي لـ GPIO المستخدم للتحكم في المرحل المتصل بجهاز التيار المتردد المنزلي)
  • التتابع (تم التهيئة قاد موضوع gpiozero مكتبة مسؤولة عن التحكم في دبوس GPIO المعني - التتابع )


يقوم Line 31 بتهيئة خادم ويب Python flask.

يقوم الخط 32 بتكوين خادم الويب flask.


ترسل الأسطر 34-36 ملف index.html ملف من قوالب / الدليل عند زيارة تطبيق ويب أتمتة المنزل.

يستخدم القارورة Jinja2 لغة قوالب لعرض ملف index.html ملف. لذلك ، لقد تجاوزت غرف القاموس إلى index.html ملف. Jinja2 سيعرض الصفحة الرئيسية باستخدام امتداد غرف البيانات.


الوظيفة toggle_appliance_status () في الأسطر 39-52 لتشغيل الجهاز المنزلي إذا كان متوقفًا وإيقاف تشغيل الجهاز المنزلي إذا كان قيد التشغيل باستخدام الجهاز هوية شخصية .

يعود حقيقي إذا نجحت عملية التبديل. إذا كان هناك خطأ ، فسوف يعود خاطئة .


يتم استخدام الأسطر 55-57 لتبديل جهاز منزلي باستخدام / جهاز / تبديل / نقطة نهاية API لخادم الويب. هنا، هوية شخصية هو معرف الجهاز المنزلي.


قم بإنشاء ملف index.html ملف في قوالب / دليل مشروعك على النحو التالي:

$نانوالقوالب/index.html

اكتب سطور الرموز التالية في ملف index.html النصي.


< لغة البرمجة لانج='تشغيل'>
< رئيس >
< ميتا محارف='UTF-8'>
< ميتا اسم='منفذ العرض' المحتوى='العرض = عرض الجهاز ، المقياس الأولي = 1.0'>
< حلقة الوصل rel='ورقة الأنماط' href='{{url_for (' static '، filename =' fontawesome / css / all.min.css ')}}'>
< حلقة الوصل rel='ورقة الأنماط' href='{{url_for (' static '، filename =' style.css ')}}'>
< لقب >أتمتة المنزل مع Raspberry Pi</ لقب >
</ رئيس >
< هيئة >
< شعبة هوية شخصية='المحتوى'>
< h1 >Raspberry Pi أتمتة المنزل</ h1 >

{٪ للغرفة في الغرف٪}
< شعبة صف دراسي='مجال'>
< h2 >{{ مجال }}</ h2 >
< شعبة صف دراسي='الأجهزة'>
{٪ للجهاز في الغرف [غرفة]٪}
< شعبة صف دراسي='تطبيق' هوية شخصية='{{جهاز ['id']}}'> ='نشيط'>
< أنا صف دراسي='{{جهاز ['رمز']}}'></ أنا >
< فترة >{{الجهاز ['الاسم']}}</ فترة >
</ شعبة >
{٪ endfor٪}
</ شعبة >
</ شعبة >
{٪ endfor٪}

</ شعبة >

< النصي src='{{url_for (' static '، filename =' app.js ')}}' نوع='نص / جافا سكريبت'></ النصي >
</ هيئة >
</ لغة البرمجة >

بمجرد الانتهاء ، اضغط على + X تليها و و لحفظ index.html ملف.


إنشاء style.css ملف في ثابتة/ دليل مشروعك على النحو التالي:

$نانوثابتة/style.css


اكتب سطور الرموز التالية في ملف style.css ملف.

@يستورد عنوان url('https://fonts.googleapis.com/css2؟family=BenchNine: [البريد الإلكتروني محمي] ؛ 400 ؛ 700 & display = swap')؛

* {
هامش: 0؛
حشوة: 0؛
خط العائلة: 'BenchNine'و بلا الرقيق؛
}

#المحتوى >h1{
معرفتي:الخطي التدرج(إلىحقو RGB(112و 24و 163)و RGB(86و 127و 240))؛
لون: #fff؛
محاذاة النص: المركز؛
حشوة: .5em 0؛
}

شعبة.مجال {
هامش: .5em؛
الحدود: 2 بكسل صلب RGB(112و 24و 163)؛
نصف قطر الحد: 5 بكسل؛
}

شعبة.مجالh2{
/ * الخلفية: RGB (9 ، 76 ، 121) ؛ * /
معرفتي:الخطي التدرج(إلىحقو RGB(112و 24و 163)و RGB(86و 127و 240))؛
حشوة: 0 0 0 .5em؛
لون: #fff؛
}

شعبة.الأجهزة {
هامش: .5em .5em 0 0؛
عرض:ثني؛
التفاف المرن:لف؛
}

شعبة.تطبيق {
الحدود: 2 بكسل صلب RGB(112و 24و 163)؛
نصف قطر الحد: 5 بكسل؛
العرض: 110 بكسل؛
ارتفاع: 120 بكسل؛
محاذاة النص: المركز؛
هامش: 0 0 .5em .5em؛
عرض:ثني؛
الاتجاه المرن:عمودي؛
}

شعبة.تطبيقأنا.fa {
حجم الخط: 4em؛
ينمو المرن: 1؛
أعلى الحشو: 0.3em؛
لون: RGB(204و خمسونو خمسون)؛
}

تطبيق div[نشط البيانات='نشيط']أنا.fa {
لون: RGB(32و 177و 51)؛
}

شعبة.تطبيقفترة{
عرض: منع؛
وزن الخط: بالخط العريض؛
معرفتي: RGB(112و 24و 163)؛
لون: #fff؛
}

بمجرد الانتهاء ، اضغط على + X تليها و و لحفظ style.css ملف.


يخترع app.js ملف في ثابتة/ دليل مشروعك على النحو التالي:

$نانوثابتة/app.js


اكتب سطور الرموز التالية في ملف app.js ملف.

نافذة او شباك.addEventListener('حمل'والأساسية)؛

وظيفةالأساسية() {
وظيفةtoggleApplianceState(و) {
أينهوية شخصية=و.طريق[1].هوية شخصية؛

أينhttp= الجديدXMLHttpRequest()؛

http.عند تغيير الخلاف = وظيفة() {
لو(هذه.جاهز === 4 && هذه.الحالة === 200) {
لو(جسون.تحليل(هذه.استجابة النص).الحالة === حقيقية) {
لو(و.طريق[1].السمة('بيانات نشطة')) {
و.طريق[1].إزالة السمة('بيانات نشطة')
} آخر {
و.طريق[1].تعيين السمة('بيانات نشطة'و 'نشيط')
}
}
}
}

http.افتح('احصل على'و'/تطبيق/تبديل/${هوية شخصية}'و حقيقية)؛
http.يرسل()؛
}


أينالأجهزة=وثيقة.getElementsByClassName('تطبيق')؛
ل(أنا=0؛أنا<الأجهزة.الطول؛أنا++) {
الأجهزة[أنا].addEventListener('انقر'وtoggleApplianceState)؛
}
}

بمجرد الانتهاء ، اضغط على + X تليها و ولحفظ app.js ملف.


هنا ، يعمل السطر 1 على تشغيل ملف الأساسية() تعمل عند انتهاء تحميل صفحة الويب.

في ال index.html ملف ، يتم تضمين كل جهاز منزلي في ملف تطبيق صف دراسي. يتم استخدام الأسطر 26-29 لتحديد كل جهاز منزلي من صفحة الويب وإرفاق ملف انقر حدث للجهاز. عندما ينقر شخص ما على جهاز منزلي من صفحة الويب ، فإن ملف toggleApplianceState () ستعمل الوظيفة.


في السطور 4-23 ، فإن ملف toggleApplianceState () تستخدم الوظيفة لطلب / جهاز / تبديل / نقطة نهاية خادم الويب لتغيير حالة الأجهزة المنزلية التي تم النقر عليها. يتم تقديم الطلب في الخلفية عبر AJAX. بمجرد تلقي الرد ، يتم تحديث صفحة الويب وفقًا لذلك.


انتقل إلى ثابتة/ الدليل في دليل المشروع الخاص بك على النحو التالي:

$قرص مضغوطثابتة/


قم بتنزيل Font Awesome باستخدام الأمر التالي:

$wgethttps://use.fontawesome.com/إطلاق/الإصدار 5.15.1/fontawesome-free-5.15.1-web.zip


بمجرد تنزيل Font Awesome ، يجب أن تجد الملف المضغوط الجديد fontawesome-free-5.15.1-web.zip في ال ثابتة/ الدليل.

$ls -lh


قم بفك ضغط ملف 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 / يجب إنشاؤه في الدليل الثابت / ، كما ترى في لقطة الشاشة أدناه.

$ls -lh

أعد تسمية الدليل fontawesome-free-5.15.1-web / إلى الخط الرائع / بالأمر التالي:

$م -الخامسfontawesome-free-5.15.1-web fontawesome


الآن ، لم تعد بحاجة إلى ملف fontawesome-free-5.15.1-web.zip ملف. لذا ، قم بإزالة ملف fontawesome-free-5.15.1-web.zip ملف بالأمر التالي:

$جمهورية مقدونيا -الخامسfontawesome-free-5.15.1-web.zip


ال ثابتة/ يجب أن تبدو بنية الدليل كما هو موضح في لقطة الشاشة أدناه.

$ls -lh


انتقل مرة أخرى إلى دليل المشروع ~ / شبكة الاتصالات العالمية على النحو التالي:

$قرص مضغوط..

اختبار تطبيق الويب Home Automation

لاختبار تطبيق ويب أتمتة المنزل ، قم بتشغيل الأمر التالي في دليل المشروع الخاص بك:

$FLASK_APP= تشغيل قارورة server.py


يجب أن يكون تطبيق الويب متاحًا على المنفذ 5000 من Raspberry Pi الخاص بك.


من متصفح الويب Chromium ، قم بزيارة http: // localhost: 5000 . يجب تحميل تطبيق ويب أتمتة المنزل.

انقر على أيقونة المصباح المشار إليها في الصورة أدناه.


يجب الآن تشغيل مصباح التيار المتردد. يجب أن يتغير لون الرمز أيضًا إلى اللون الأخضر ، مشيرًا إلى أن المصباح قيد التشغيل.


لذلك ، يعمل تطبيق الويب الخاص بالتشغيل الآلي للمنزل. صحافة + ج لإنهاء خادم الويب.

إنشاء خدمة Systemd لتطبيق ويب أتمتة المنزل

في هذا القسم ، سأوضح لك كيفية إنشاء ملف خدمة systemd لتطبيق ويب أتمتة المنزل بحيث يبدأ تلقائيًا عند التمهيد.

أولاً ، قم بإنشاء ملف raspi-home-automation.service ملف في دليل المشروع الخاص بك على النحو التالي:

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

اكتب الأسطر التالية في ملف raspi-home-automation.service.

[وحدة]
وصف= Raspberry Pi Home Automation Web Service
بعد، بعدما= network.target
[خدمة]
عمل اخراجي=/الصفحة الرئيسية/بي/www
بيئة=FLASK_APP= server.py
بيئة=FLASK_ENV= الإنتاج
إكسيكستارت=/usr/صباحا/تشغيل القارورة--مضيف= 0.0.0.0
إخراج قياسي= يرث
خطأ تقليدي= يرث
اعادة البدء= دائما
مستخدم= بي
[تثبيت]
مطلوب من قبل= متعدد المستخدمين

بمجرد الانتهاء ، اضغط على + X تليها و ولحفظ raspi-home-automation.service ملف.


انسخ ال raspi-home-automation.service ملف إلى / etc / systemd / system / الدليل بالأمر التالي:

$سودو cp -الخامسraspi-home-automation.service/إلخ/النظام/النظام/


أعد تحميل شياطين systemd لتصبح التغييرات سارية المفعول على النحو التالي:

$سودوإعادة تحميل البرنامج الخفي systemctl


أضف ال أتمتة المنزل raspi خدمة لبدء تشغيل نظام Raspberry Pi OS باستخدام الأمر التالي:

$سودوsystemctlممكنraspi-home-automation.service


أعد تشغيل Raspberry Pi باستخدام الأمر التالي:

$سودواعادة التشغيل


بمجرد أن يقوم Raspberry Pi بالتمهيد ، فإن أتمتة المنزل raspi يجب أن تكون الخدمة نشطة / قيد التشغيل ، كما ترى في لقطة الشاشة أدناه.

$سودوsystemctl status raspi-home-automation.service

الوصول إلى تطبيق الويب Home Automation من أجهزة أخرى

للوصول إلى تطبيق ويب أتمتة المنزل من الأجهزة الأخرى في شبكتك المنزلية ، ستحتاج إلى معرفة عنوان IP لجهاز Raspberry Pi الخاص بك.

يمكنك العثور على عنوان IP لجهاز Raspberry Pi 4 الخاص بك من واجهة إدارة الويب لجهاز التوجيه المنزلي الخاص بك. في حالتي ، عنوان IP هو 192.168.0.103. سيكون هذا مختلفا بالنسبة لك. لذا ، تأكد من استبدال IP الخاص بي بعنوانك من الآن فصاعدًا.


إذا كان لديك وصول إلى وحدة تحكم Raspberry Pi ، فيمكنك تشغيل الأمر التالي للعثور على عنوان IP أيضًا.

$اسم المضيف -أنا


بمجرد معرفة عنوان IP لجهاز Raspberry Pi الخاص بك ، يمكنك الوصول إليه من أي جهاز في شبكتك المنزلية.

كما ترى في لقطة الشاشة أدناه ، فقد وصلت إلى تطبيق الويب الخاص بالأتمتة المنزلية من هاتفي الذكي الذي يعمل بنظام Android.


تأكد من توصيل قابس المصباح بمأخذ التيار الكهربائي الموجود على الحائط.


يجب إطفاء المصباح افتراضيًا.


إذا قمت بالنقر فوق رمز المصباح من تطبيق ويب أتمتة المنزل ، فيجب أن يتغير لون رمز المصباح إلى اللون الأخضر ، مما يشير إلى أن المصباح قيد التشغيل.


كما ترى في الصورة أدناه ، المصباح قيد التشغيل.

استنتاج

أوضحت لك هذه المقالة كيفية استخدام مرحل 5 فولت للتحكم في جهاز كهربائي تيار متردد عالي الجهد من Raspberry Pi باستخدام لغة برمجة Python. أوضحت لك المقالة أيضًا كيفية كتابة تطبيق ويب Python flask المستند إلى واجهة برمجة التطبيقات للتحكم في الترحيل من متصفح الويب. يجب أن تساعدك هذه المقالة في البدء في التشغيل الآلي للمنزل باستخدام Raspberry Pi.