הגדר אוטומציה ביתית של Raspberry Pi

Set Up Raspberry Pi Home Automation



אחד הדברים החשובים ביותר לאוטומציה ביתית הוא שליטה על מתח גבוה באמצעות מתח DC נמוך. כדי לשלוט במתח AC גבוה מ- Raspberry Pi, תזדקק למתג ממסר 5V. אתה יכול לשלוט על מתג הממסר באמצעות סיכות ה- GPIO של Raspberry Pi. מתג הממסר יכול לשלוט במכשירי החשמל הביתיים באמצעות פטל פטל.

מאמר זה יראה לך כיצד להשתמש ב- Raspberry Pi ובמתג ממסר 5V כדי להדליק ולכבות נורה מהמכשיר הנייד שלך. המאמר כולל יישום אינטרנט שניתן לגשת אליו מכל מכשיר ברשת ולשלוט בכל מכשירי חשמל ביתיים בביתכם באופן אלחוטי. אז בואו נתחיל בניסוי האוטומציה הפשוט שלנו של Raspberry Pi.







דברים שתצטרך

אם אתה רוצה להשתמש ב- Raspberry Pi שלך ללא ראש (באמצעות SSH או VNC), תזדקק לדברים הבאים:



1) Raspberry Pi 3 או Raspberry Pi 4.
2) מתג ממסר 5V.
3) חוטי חשמל.
4) 3 חוטי חיבור נקבה לנקבה.
5) נורת AC.
6) מחזיק נורה AC.
7) תקע AC.
8) כלי חוט וחשפן.
9) מברג CR-V 3.
10) מתאם מתח מיקרו USB (Raspberry Pi 3) או USB Type-C (Raspberry Pi 4).
11) כרטיס microSD בנפח 16 GB או 32 GB עם מערכת הפעלה Raspberry Pi מהבהב.
12) קישוריות רשת ב- Raspberry Pi.
13) מחשב נייד או מחשב שולחני עבור גישה לשולחן עבודה מרוחק של VNC או גישה ל- SSH ל- Raspberry Pi.



אם אינך רוצה לגשת ל- Raspberry Pi מרחוק באמצעות SSH או VNC, תזדקק גם לדברים הבאים:





14) צג.
15) כבל HDMI או מיקרו-HDMI.
16) מקלדת.
17) עכבר.

אם אתה זקוק לעזרה בהבזקת תמונת מערכת ההפעלה Raspberry Pi לכרטיס ה- microSD, עיין במאמר כיצד להתקין ולהשתמש ב- Raspberry Pi Imager.



אם אתה מתחיל Raspberry Pi ואתה זקוק לעזרה בהתקנת מערכת ההפעלה Raspberry Pi ב- Raspberry Pi, עיין במאמר כיצד להתקין את מערכת ההפעלה Raspberry Pi ב- Raspberry Pi 4.

כמו כן, אם אתה זקוק לעזרה בהתקנה נטולת ראש של Raspberry Pi, עיין במאמר כיצד להתקין ולהגדיר את מערכת ההפעלה Raspberry Pi ב- Raspberry Pi 4 ללא צג חיצוני.

להלן תמונות של כל הכלים הנדרשים.

הפעלה של פטל פטל

לאחר מכן, חבר את כבל החשמל ל- Raspberry Pi והפעל את Raspberry Pi.

לאחר הפעלת Raspberry Pi, תוכל להתחבר ל- Raspberry Pi באמצעות VNC או SSH. לחלופין, תוכל לחבר מקלדת, עכבר וצג ל- Raspberry Pi כדי לגשת אליה ישירות.

5V ממסר ממסר

ממסר הוא בעצם מתג. אך, בניגוד למתג מסורתי, ניתן לשלוט בממסר על ידי כמות קטנה של מתח DC.

ממסר 5V קל מאוד לשימוש. יש לו שני צדדים: צד אחד משמש לשליטה בממסר באמצעות מתח נמוך (מ- Raspberry Pi), והצד השני משמש לשליטה במתח גבוה (כלומר הנורה), בהתאם למצב הממסר. .


בצד אחד, הממסר כולל שני נוריות LED (אחת אדומה ואחת ירוקה) ושלושה סיכות ( IN, GND, ו VCC ). שלושת הפינים האלה משמשים לשליטה בממסר מ- Raspberry Pi.

שני הסיכות הראשונות בצד השני משמשות לשליטה במכשיר הבית הביתי.

חיבור ממסר 5V ל- Raspberry Pi

כדי לחבר את ממסר 5V ל- Raspberry Pi, תזדקק לשלושה חוטי חיבור נקבה לנקבה.

חבר צד אחד של חוטי החיבור אל IN (חוט צהוב), GND (חוט שחור), ו VCC סיכות (חוט אדום) בממסר 5V, כפי שמוצג להלן.


הצד השני של החוטים נכנס לסיכות הכותרת של GPIO של Raspberry Pi, כפי שמוצג בתמונה למטה.

החוט האדום צריך להיכנס לתוך PIN 2 (VCC) של פטל פטל.
החוט השחור צריך להיכנס לתוך PIN 6 (GND) של פטל פטל.
החוט הצהוב צריך להיכנס לתוך PIN 7 (GPIO 4) של פטל פטל.


לאחר חיבור ממסר 5V ל- Raspberry Pi, הוא אמור להיראות כפי שמוצג בתמונה למטה.

מתן גישה ל- GPIO למשתמש התחברות

כדי לאפשר גישה לסיכות GPIO, משתמש ההתחברות המוגדר כברירת מחדל במערכת ההפעלה Raspberry Pi פאי יש להוסיף ל gpio קְבוּצָה.

אתה יכול להוסיף את פאי משתמש ל gpio קבוצה עם הפקודה הבאה:

$סודושיטת משתמש-aGgpio $(מי אני)


כדי שהשינויים ייכנסו לתוקף, הפעל מחדש את Raspberry Pi באמצעות הפקודה הבאה:

$סודולְאַתחֵל

יצירת מדריך פרויקטים

זה גם רעיון טוב לשמור על כל קבצי הפרויקט מאורגנים.

כדי לשמור על קבצי הפרויקט מאורגנים, צור את ספריית הפרויקטים ~/www וספריות המשנה הנדרשות עם הפקודה הבאה:

$mkdir -pv~/www/{תבניות, סטטיות}


לאחר יצירת מדריך הפרויקטים, נווט לספריית הפרויקטים באופן הבא:

$CD~/www

החלפת ממסר 5V מ- Raspberry Pi

כעת לאחר שחיברת את ממסר ה- 5V ל- Raspberry Pi, תחליף את הממסר מ- Raspberry Pi באמצעות שפת התכנות של פייתון.

הערה: החלפה הוא מונח המשמש באלקטרוניקה. מיתוג פירושו שליטה (כלומר הפעלה/כיבוי) של מכשיר אלקטרוני מסוים.

כדי להתנסות בהחלפת הממסר באמצעות שפת התכנות של פייתון, צור את test.py סקריפט Python החדש בספריית הפרויקטים כדלקמן:

$ננוtest.py


הקלד את שורות הקודים הבאות בתסריט Python test.py.

מgpiozeroיְבוּאלד
מ זְמַן יְבוּאלִישׁוֹן

בזמן נָכוֹן:
ממסר=לד(4)
הדפס('להסתמך על')
לִישׁוֹן(5)

ממסר.סגור()
הדפס('ממסר: כבוי')
לִישׁוֹן(5)

לאחר שתסיים, לחץ על + X בא אחריו וגם ו כדי לשמור את test.py סקריפט פייתון.


כאן, שורה 1 מייבאת לד מ ה gpiozero ספרייה, ושורה 2 מייבאת את לִישׁוֹן פונקציה מתוך זְמַן סִפְרִיָה.


קווים 6-14 נמצאים בתוך לולאה אינסופית.


קו 6 מאתחל LED ב GPIO 4 של Raspberry Pi, המחובר ל- IN סיכה של הממסר.


קו 8 מדליק את הממסר באמצעות עַל() שיטה.

שורה 9 מדפיסה הודעה במסוף באמצעות הדפס() פוּנקצִיָה.

שורה 10 מעכבת את ביצוע שורת הקוד הבאה בחמש שניות באמצעות לִישׁוֹן() פוּנקצִיָה.


קו 12 מכבה את הממסר באמצעות סגור() שיטה.

באותו אופן, שורה 9 מדפיסה הודעה במסוף באמצעות הדפס() פונקציה ושורה 10 מעכבת את ביצוע שורת הקוד הבאה למשך 5 שניות באמצעות לִישׁוֹן() פוּנקצִיָה.


לאחר מכן, הפעל את test.py סקריפט פייתון כדלקמן:

$python3 test.py


ה test.py סקריפט Python צריך להתחיל להחליף את ממסר ה- 5V. אתה אמור לשמוע צליל לחיצה כל חמש שניות. כאשר הממסר עובר את המצב (מהדלקה לכיבוי או מכיבוי לפעולה), הוא משמיע רעש לחיצה. המשמעות היא שהממסר מתפקד כראוי.


כאשר הממסר במצב כבוי (פעולה רגילה-עומס AC מנותק), רק נֶטוֹ LED צריך להידלק, כפי שאתה יכול לראות בתמונה למטה.


כאשר הממסר נמצא במצב מופעל (עומס AC מחובר), שניהם ירוק LED ו ה נֶטוֹ LED צריך להידלק, כפי שאתה יכול לראות בתמונה למטה.


לאחר השלמת הבדיקה, לחץ על + ג לסיים את test.py תַסרִיט.

חיבור נורת AC לממסר 5V

כעת ממסר 5V אמור לפעול כראוי. כעת, תחבר את מכשיר ה- AC הביתי שלך (נורה, במקרה זה) לממסר 5V.

ראשית, חותכים את חוט החשמל השחור המחובר לנורה בעזרת מכשיר כבלים.


לאחר חוט החשמל השחור המחובר לנורה נחתך באמצעות חוט חשמל, הוא צריך להיראות כפי שמוצג בתמונה למטה.


לאחר מכן, הפשט את השכבה החיצונית כדי לחשוף כ ½ אינץ 'מהחוט החשמלי, כפי שמוצג בתמונה למטה.


לאחר מכן, קפל את החוטים החשופים, כפי שמוצג בתמונה למטה.


שחרר את הברגים המסומנים של הממסר בעזרת מברג CV-3.


הכנס את החוטים החשופים שהפשטת וקיפלת קודם לכן בשני מסופי הברגים והדק את הברגים בעזרת מברג CV-3.

בדיקת החלפת ממסר לאחר חיבור עומס AC

לאחר חיבור עומס AC לממסר 5V, חבר את תקע הנורה לשקע בקיר.


הפעל את test.py סקריפט פייתון מספריית הפרויקטים כדלקמן:

$python3 test.py


ה test.py סקריפט Python צריך להתחיל להחליף את ממסר 5V, אשר בתורו יחליף את נורת ה- AC במתח גבוה במרווחים של חמש שניות. נורת ה- AC צריכה להישאר דולקת במשך חמש שניות, ואז להישאר כבויה במשך חמש שניות וכן הלאה.

הנורה כבויה בתמונה למטה.


הנורה דולקת בתמונה למטה.


כפי שאתה יכול לראות, אנו יכולים להחליף את הממסר ולשלוט בנורת AC גבוהה באמצעות שפת התכנות של פייתון. אז, לחץ + ג לסיים את test.py תַסרִיט.

הבה נעבור כעת לסעיף הבא.

כתיבת אפליקציית האינטרנט של אוטומציה ביתית

בחלק זה, אראה לך כיצד לכתוב יישום אינטרנט מבוסס API באמצעות שפת התכנות של פייתון. תוכל להשתמש באפליקציית האינטרנט כדי לשלוט בממסר ובמכשירי החשמל הביתיים או בהתקנים החשמליים המחוברים לממסר מדפדפן אינטרנט.

הערה: כל הקודים המוצגים בסעיף זה זמינים במאגר GitHub שלי shovon8 / פטל-פי-אוטומציה ביתית . אם תרצה, תוכל לשכפל את מאגר GitHub שלי ולדלג על כל הקודים.

צור את סקריפט Python של server.py בספריית הפרויקטים באופן הבא:

$ננוserver.py


הקלד את שורות הקודים הבאות ב- server.py סקריפט פייתון.

מבקבוקיְבוּאבקבוק,jsonify,url_for,render_template
מgpiozeroיְבוּאלד
מuuidיְבוּאuuid4
חדרים= {}
חדרים['חדר 1'] = [{
'תְעוּדַת זֶהוּת': uuid4(),
'שֵׁם':'אור 1',
'אייקון':'פא נורה fa',
'סטָטוּס':שֶׁקֶר,
'ממסר פין':4,
'ממסר':שֶׁקֶר
}, {
'תְעוּדַת זֶהוּת': uuid4(),
'שֵׁם':'מאוורר 1',
'אייקון':'פא-מאוורר',
'סטָטוּס':שֶׁקֶר,
'ממסר פין':6,
'ממסר':שֶׁקֶר
}]
חדרים['חדר אמבטיה 1'] = [{
'תְעוּדַת זֶהוּת': uuid4(),
'שֵׁם':'אור 1',
'אייקון':'פא נורה fa',
'סטָטוּס':שֶׁקֶר,
'ממסר פין':5,
'ממסר':שֶׁקֶר
}]
אפליקציה=בקבוק(__שֵׁם__)
אפליקציה.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0
@אפליקציה.מַסלוּל('/')
defבית():
לַחֲזוֹרrender_template('./index.html',חדרים=חדרים)
deftoggle_appliance_status(תְעוּדַת זֶהוּת):
לחֶדֶרבחדרים:
למַכשִׁירבחדרים[חֶדֶר]:
אם עמ(מַכשִׁיר['תְעוּדַת זֶהוּת']) == תְעוּדַת זֶהוּת:
אםמַכשִׁיר['ממסר']:
מַכשִׁיר['ממסר'].סגור()
מַכשִׁיר['ממסר'] = שֶׁקֶר
אַחֵר:
מַכשִׁיר['ממסר'] =לד(מַכשִׁיר['ממסר פין'])
מַכשִׁיר['ממסר'].עַל()
מַכשִׁיר['סטָטוּס'] = לֹאמַכשִׁיר['סטָטוּס']
לַחֲזוֹר נָכוֹן
לַחֲזוֹר שֶׁקֶר
@אפליקציה.מַסלוּל('/device/toggle/')
defמכשיר_מכשיר(תְעוּדַת זֶהוּת):
לַחֲזוֹרjsonify({'סטָטוּס': toggle_appliance_status(תְעוּדַת זֶהוּת)})

לאחר שתסיים, לחץ על + X בא אחריו וגם ו כדי לשמור את server.py סקריפט פייתון.


כאן שורות 1-3 מייבאות את כל הרכיבים הדרושים מהספריות המתאימות להם.


שורה 5 יוצרת ריק חדרים מילון. במילון זה, נשמור את כל פרטי מכשיר ה- AC שברצוננו לשלוט בו מאפליקציית האינטרנט.


ה חדרים הפרטים מאוחסנים בשורות 7-29.


הבה נדון במבנה הנתונים של אחד החדרים.

כאן, שם החדר יהיה חדר 1. לכן, חדר 1 הוא המפתח ל חדרים מילון.


ה חדר 1 המפתח מחזיק מערך כערך. מספר רכיבי המערך שווה למספר מכשירי החשמל הביתיים שיש לך בחדר שאתה רוצה לשלוט בו גם מאפליקציית האינטרנט. במקרה זה, יש לנו שני מכשירי חשמל ביתיים בהם אנו רוצים לשלוט: אור 1 ו מאוורר 1 .


לכל הגדרה של מכשיר ביתי יש תְעוּדַת זֶהוּת . ה תְעוּדַת זֶהוּת הוא UUID שנוצר באופן אקראי. זה משמש לזיהוי באיזה חדר אנו רוצים לשלוט באמצעות ה- API.

מכשיר ביתי כולל גם את כל הדברים הבאים:

  • שם (אור 1 במקרה הזה)
  • סמל (מחלקת הסמלים של Font Awesome, שכן נשתמש ב- Font Awesome עבור הסמלים)
  • סטטוס (נכון אם עַל ו שֶׁקֶר אם כבוי )
  • ממסר פין (מספר הסיכה של GPIO המשמש לשליטה בממסר המחובר למכשיר הבית הביתי)
  • ממסר (האתחול לד מושא של gpiozero הספרייה האחראית על השליטה בסיכת ה- GPIO המתאימה - ממסר פין )


קו 31 מאתחל שרת אינטרנט של פייתון.

קו 32 מגדיר את שרת האינטרנט של הבקבוק.


שורות 34-36 שולחות את index.html קובץ מתוך תבניות/ ספרייה כשאתה מבקר ביישום האינטרנט של אוטומציה ביתית.

בקבוק משתמש Jinja 2 שפת תבניות לעיבוד index.html קוֹבֶץ. אז, עברתי את חדרים מילון אל index.html קוֹבֶץ. Jinja 2 יעבד את דף הבית באמצעות חדרים נתונים.


הפונקציה toggle_appliance_status () בשורות 39-52 משמש להפעלת המכשיר הביתי אם הוא כבוי ולכבות את המכשיר הביתי אם הוא מופעל באמצעות המכשיר תְעוּדַת זֶהוּת .

זה חוזר נָכוֹן אם פעולת ההחלפה מצליחה. אם יש שגיאה, היא תחזור שֶׁקֶר .


קווי 55-57 משמשים להחלפת מכשיר ביתי באמצעות /מכשיר/החלפת/ נקודת קצה API של שרת האינטרנט. פה, תְעוּדַת זֶהוּת הוא המזהה של המכשיר הביתי.


צור את index.html הקובץ ב תבניות/ מדריך הפרויקט שלך כדלקמן:

$ננותבניות/index.html

הקלד את שורות הקודים הבאות ב- index.html תַסרִיט.


< html lang='עַל'>
< רֹאשׁ >
< meta ערכת תווים='UTF-8'>
< meta שֵׁם='נוף נוף' תוֹכֶן='width = device-width, scale-initial = 1.0'>
< קישור rel='גיליון סגנונות' href='{{url_for (' static ', filename =' fontawesome/css/all.min.css ')}}'>
< קישור rel='גיליון סגנונות' href='{{url_for (' static ', filename =' style.css ')}}'>
< כותרת >אוטומציה ביתית עם פטל פטל</ כותרת >
</ רֹאשׁ >
< גוּף >
< div תְעוּדַת זֶהוּת='תוֹכֶן'>
< h1 >אוטומציה ביתית של פטל פי</ h1 >

{ % לחדר בחדרים %}
< div מעמד='חֶדֶר'>
< h2 >{{חדר}}</ h2 >
< div מעמד='מכשירים'>
{ % למכשיר בחדרים [room] %}
< div מעמד='מַכשִׁיר' תְעוּדַת זֶהוּת='{{device [' id ']}}'> ='פָּעִיל'>
< אני מעמד='{{device [' icon ']}}'></ אני >
< לְהַקִיף >{{מכשיר ['שם']}}</ לְהַקִיף >
</ div >
{ % endfor %}
</ div >
</ div >
{ % endfor %}

</ div >

< תַסרִיט src='{{url_for (' static ', filename =' app.js ')}}' סוּג='טקסט/javascript'></ תַסרִיט >
</ גוּף >
</ html >

לאחר שתסיים, לחץ על + X בא אחריו וגם ו כדי לשמור את index.html קוֹבֶץ.


ליצור style.css הקובץ ב סטָטִי/ מדריך הפרויקט שלך כדלקמן:

$ננוסטָטִי/style.css


הקלד את שורות הקודים הבאות ב- style.css קוֹבֶץ.

@יְבוּא url('https://fonts.googleapis.com/css2?family=BenchNine: [מוגן בדוא'ל]; 400; 700 & display = swap');

* {
שולים: 0;
ריפוד: 0;
משפחת גופן: 'ספסל תשע', פונט סאנס סריף;
}

#תוֹכֶן >h1{
רקע כללי:שיפוע לינארי(לימין, rgb(112, 24, 163), rgb(86, 127, 240));
צֶבַע: #fff;
יישור טקסט: מֶרְכָּז;
ריפוד: .5 em 0;
}

div.חֶדֶר {
שולים: .5 em;
גבול: 2 פיקסלים מוצק rgb(112, 24, 163);
רדיוס גבול: 5 פיקסלים;
}

div.חֶדֶרh2{
/* רקע: rgb (9, 76, 121); */
רקע כללי:שיפוע לינארי(לימין, rgb(112, 24, 163), rgb(86, 127, 240));
ריפוד: 0 0 0 .5 em;
צֶבַע: #fff;
}

div.מכשירים {
שולים: .5 em .5 em 0 0;
לְהַצִיג:לְהַגמִישׁ;
כיפוף גמיש:לַעֲטוֹף;
}

div.מַכשִׁיר {
גבול: 2 פיקסלים מוצק rgb(112, 24, 163);
רדיוס גבול: 5 פיקסלים;
רוֹחַב: 110 פיקסלים;
גוֹבַה: 120 פיקסלים;
יישור טקסט: מֶרְכָּז;
שולים: 0 0 .5 em .5 em;
לְהַצִיג:לְהַגמִישׁ;
כיוון גמיש:טור;
}

div.מַכשִׁיראני.fa {
גודל גופן: 4em;
לגדול-לגדול: 1;
עליון ריפוד: 0.3 em;
צֶבַע: rgb(204, חמישים, חמישים);
}

מכשיר div[פעיל בנתונים='פָּעִיל']אני.fa {
צֶבַע: rgb(32, 177, 51);
}

div.מַכשִׁירלְהַקִיף{
לְהַצִיג: לַחסוֹם;
משקל גופן: נוֹעָז;
רקע כללי: rgb(112, 24, 163);
צֶבַע: #fff;
}

לאחר שתסיים, לחץ על + X בא אחריו וגם ו כדי לשמור את style.css קוֹבֶץ.


ליצור app.js הקובץ ב סטָטִי/ מדריך הפרויקט שלך כדלקמן:

$ננוסטָטִי/app.js


הקלד את שורות הקודים הבאות ב- app.js קוֹבֶץ.

חַלוֹן.addEventListener('לִטעוֹן',רָאשִׁי);

פוּנקצִיָהרָאשִׁי() {
פוּנקצִיָהtoggleApplianceState(וכן) {
איפהתְעוּדַת זֶהוּת=וכן.נָתִיב[1].תְעוּדַת זֶהוּת;

איפהhttp= חָדָשׁXMLHttpRequest();

http.onreadystat change = פוּנקצִיָה() {
אם(זֶה.readyState === 4 && זֶה.סטָטוּס === 200) {
אם(JSON.לְנַתֵחַ(זֶה.responseText).סטָטוּס === נָכוֹן) {
אם(וכן.נָתִיב[1].hasAttribute('פעיל-נתונים')) {
וכן.נָתִיב[1].removeAttribute('פעיל-נתונים')
} אַחֵר {
וכן.נָתִיב[1].setAttribute('פעיל-נתונים', 'פָּעִיל')
}
}
}
}

http.לִפְתוֹחַ('לקבל','/מַכשִׁיר/לְמַתֵג/${תְעוּדַת זֶהוּת}', נָכוֹן);
http.לִשְׁלוֹחַ();
}


איפהמכשירים=מסמך.getElementsByClassName('מַכשִׁיר');
ל(אני=0;אני<מכשירים.אורך;אני++) {
מכשירים[אני].addEventListener('נְקִישָׁה',toggleApplianceState);
}
}

לאחר שתסיים, לחץ על + X בא אחריו וגם וכדי לשמור את app.js קוֹבֶץ.


כאן, שורה 1 מפעילה את רָאשִׁי() פונקציה כאשר דף האינטרנט מסיים את הטעינה.

בתוך ה index.html קובץ, כל מכשיר ביתי מוקף ב- מַכשִׁיר מעמד. שורות 26-29 משמשות לבחירת כל מכשיר ביתי מדף האינטרנט וצירוף נְקִישָׁה אירוע למכשיר. כאשר מישהו לוחץ על מכשיר ביתי מדף האינטרנט, ה- toggleApplianceState () הפונקציה תפעל.


בשורות 4-23, ה toggleApplianceState () הפונקציה משמשת לבקשת /מכשיר/החלפת/ נקודת הסיום של שרת האינטרנט כדי לשנות את מצב המכשיר הביתי שנלחץ. הבקשה מתבצעת ברקע באמצעות AJAX. לאחר קבלת התשובה, דף האינטרנט מתעדכן בהתאם.


נווט אל סטָטִי/ ספריית ספריית הפרויקטים שלך כדלקמן:

$CDסטָטִי/


הורד את Font Awesome עם הפקודה הבאה:

$wgethttps://use.fontawesome.com/מהדורות/v5.15.1/fontawesome-free-5.15.1-web.zip


לאחר הורדת Font Awesome, עליך למצוא את קובץ ה- zip החדש fontawesome-free-5.15.1-web.zip בתוך ה סטָטִי/ מַדרִיך.

$ls -אה


לפתוח את 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 -אה

שנה את שם המדריך fontawesome-free-5.15.1-web/ ל מפואר/ עם הפקודה הבאה:

$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


ה סטָטִי/ מבנה הספרייה צריך להיראות כפי שמוצג בצילום המסך למטה.

$ls -אה


נווט חזרה לספריית הפרויקטים ~/www כדלהלן:

$CD..

בדיקת אפליקציית האינטרנט של אוטומציה ביתית

כדי לבדוק את אפליקציית האינטרנט לאוטומציה ביתית, הפעל את הפקודה הבאה בספריית הפרויקטים שלך:

$FLASK_APP= הפעלת בקבוקי server.py


אפליקציית האינטרנט צריכה להיות זמינה ביציאה 5000 של ה- Raspberry Pi שלך.


בקר בדפדפן האינטרנט Chromium http: // localhost: 5000 . אפליקציית האוטומציה הביתית צריכה לטעון.

לחץ על סמל הנורה, המצוין בתמונה למטה.


כעת יש להדליק את נורת AC. צבע הסמל צריך גם להיות ירוק, מה שמצביע על כך שהנורה דולקת.


אז אפליקציית האוטומציה הביתית פועלת. ללחוץ + ג לסיים את שרת האינטרנט.

יצירת שירות Systemd לאפליקציית האינטרנט של אוטומציה ביתית

בחלק זה, אראה לך כיצד ליצור קובץ שירות systemd עבור אפליקציית האוטומציה הביתית כך שהוא יתחיל אוטומטית בעת האתחול.

ראשית, צור את ה- raspi-home-automation.service קובץ בספריית הפרויקטים שלך כדלקמן:

$ננוraspi-home-automation.service

הקלד את השורות הבאות בקובץ raspi-home-automation.service.

[יחידה]
תיאור= Raspberry Pi Automation Home Service Web
לאחר= network.target
[שֵׁרוּת]
מדריך עבודה=/בית/פאי/www
סביבה=FLASK_APP= server.py
סביבה=FLASK_ENV= ייצור
ExecStart=/usr/אני/הפעלה של בקבוקים--מנחה= 0.0.0.0
פלט רגיל= לרשת
שגיאה רגילה= לרשת
אתחול= תמיד
מִשׁתַמֵשׁ= pi
[להתקין]
מבוקש מאת= multi-user.target

לאחר שתסיים, לחץ על + X בא אחריו וגם וכדי לשמור את raspi-home-automation.service קוֹבֶץ.


העתק את raspi-home-automation.service קובץ אל /etc/systemd/system/ ספרייה עם הפקודה הבאה:

$סודו cp -vraspi-home-automation.service/וכו/מערכת/מערכת/


טען מחדש את הדמונים של המערכת כדי שהשינויים ייכנסו לתוקף כדלקמן:

$סודוsystemctl daemon-reload


תוסיף את ה raspi-home-automation שירות להפעלת המערכת של מערכת ההפעלה Raspberry Pi עם הפקודה הבאה:

$סודוsystemctlלְאַפשֵׁרraspi-home-automation.service


הפעל מחדש את Raspberry Pi עם הפקודה הבאה:

$סודולְאַתחֵל


ברגע שמגפיים של Raspberry Pi, ה raspi-home-automation השירות צריך להיות פעיל/פועל, כפי שניתן לראות בצילום המסך למטה.

$סודומערכת systemctl raspi-home-automation.service

גישה לאפליקציית האינטרנט של אוטומציה ביתית ממכשירים אחרים

כדי לגשת לאפליקציית האוטומציה הביתית ממכשירים אחרים ברשת הביתית שלך, יהיה עליך לדעת את כתובת ה- IP של מכשיר ה- Raspberry Pi שלך.

אתה יכול למצוא את כתובת ה- IP של מכשיר ה- Raspberry Pi 4 שלך מממשק ניהול האינטרנט של הנתב הביתי שלך. במקרה שלי, כתובת ה- IP היא 192.168.0.103. זה יהיה שונה עבורך. לכן, הקפד להחליף את ה- IP שלי בשלך מעכשיו.


אם יש לך גישה לקונסולת Raspberry Pi, תוכל להפעיל את הפקודה הבאה גם כדי למצוא את כתובת ה- IP.

$שם מארח -אני


לאחר שתכיר את כתובת ה- IP של מכשיר ה- Raspberry Pi שלך, תוכל לגשת אליה מכל מכשיר ברשת הביתית שלך.

כפי שאתה יכול לראות בצילום המסך למטה, ניגשתי לאפליקציית האוטומציה הביתית מהסמארטפון אנדרואיד שלי.


הקפד לחבר את תקע הנורה לשקע החשמל בקיר.


יש לכבות את הנורה כברירת מחדל.


אם אתה מקיש על סמל הנורה מאפליקציית האוטומציה הביתית, צבע סמל הנורה אמור להשתנות לירוק, דבר המציין כי הנורה דולקת.


כפי שאתה יכול לראות בתמונה למטה, הנורה דולקת.

סיכום

מאמר זה הראה לך כיצד להשתמש בממסר 5V לשליטה במכשיר חשמלי AC במתח גבוה מ- Raspberry Pi באמצעות שפת התכנות של פייתון. המאמר גם הראה לך כיצד לכתוב יישום אינטרנט מבוסס בקבוקי פייתון מבוסס API כדי לשלוט בממסר מדפדפן האינטרנט. מאמר זה אמור לעזור לך להתחיל עם אוטומציה ביתית באמצעות פטל פי.