- רכיבים נדרשים
- תרשים מעגל
- הגדרת בקבוקי ב- Raspberry Pi לשליטה על דלת המוסך
- יצירת סקריפט הפיתון לפתיחת דלתות מוסך חכמות
- יצירת דף HTML עבור שרת האינטרנט Raspberry Pi
- {{pins.name}} {% if pins.state == true%} פתוח כעת
בעידן זה של IoT (Internet of Things) שבו ניתן לשלוט על הכל מרחוק באמצעות הטלפון החכם שלך, מדוע לשאת איתך מפתחות. יש הרבה טכנולוגיות התומכות בשליטה אלחוטית במכשירים כמו RFID, Bluetooth, Wi-Fi, LoRa. בנינו בעבר כמה אזעקות דלתות ומעגל בקרת דלתות כדי לפתוח ולסגור את הדלת באופן אלחוטי:
- נעילת דלת RFID של ארדואינו
- פותחן דלתות אוטומטי באמצעות Arduino
- מעגל אזעקת דלת מגנטי באמצעות חיישן הול
- אזעקת אבטחת דלתות מבוססת IoT הנשלטת על ידי Google Assistant
כאן במדריך זה נבנה פותחן דלתות מוסך חכם באמצעות Raspberry Pi. כאן ייווצר שרת אינטרנט של Raspberry Pi כדי לפתוח ולסגור את דלת המוסך באמצעות הסמארטפון שלכם.
רכיבים נדרשים
- לוח פי פטל עם Raspbian מותקן בו
- מודול ממסר
- חוטי חיבור
ההנחה היא כי ה- Raspberry Pi שלך כבר מהבהב עם מערכת הפעלה ומסוגל להתחבר לאינטרנט. אם לא, עקוב אחר ההדרכה תחילת העבודה עם פטל פי לפני שתמשיך. כאן אנו משתמשים ב- Rasbian Jessie המותקן Raspberry Pi 3.
כאן צג חיצוני באמצעות כבל HDMI משמש כתצוגה לחיבור ל- Raspberry Pi. אם אין לך צג, אתה יכול להשתמש בלקוח SSH (Putty) או בשרת VNC כדי להתחבר ל- Raspberry pi באמצעות מחשב נייד או מחשב. למידע נוסף על הגדרת Raspberry Pi ללא ראש כאן.
תרשים מעגל
חבר את מנגנון פתיחת דלת המוסך לפלט הממסר. כאן בדיוק חיברנו נורית LED עם ממסר לצורך הדגמה.
הגדרת בקבוקי ב- Raspberry Pi לשליטה על דלת המוסך
כאן יצרנו שרת אינטרנט באמצעות Flask, המספק דרך לשלוח את הפקודות מדף האינטרנט ל- Raspberry Pi כדי לשלוט על הרובוט ברשת. Flask מאפשר לנו להריץ את קבצי ה- Python שלנו דרך דף אינטרנט ואנחנו יכולים לשלוח ולקבל נתונים מ- Raspberry Pi לדפדפן האינטרנט ולהיפך. בקבוקון הוא מיקרו-מסגרת עבור פייתון. כלי זה מבוסס על Unicode עם שרת ופיתוח באגים מובנה, תמיכה בבדיקות יחידות משולבות, תמיכה בעוגיות מאובטחות וקל לשימוש, דברים אלה הופכים אותו ליעיל עבור התחביב.
הפעל את הפקודות הבאות להתקנת הבקבוק ב- Raspberry Pi שלך:
sudo apt-get עדכן sudo apt-get להתקין python-pip python-flask
כעת הפעל את פקודת pip להתקנת Flask ותלותיה:
sudo pip להתקין בקבוק
תוכל ללמוד עוד על התכנות באמצעות Flask כאן, לבדוק גם את הפרויקטים הקודמים שלנו שבהם השתמשנו ב- Flask כדי לשלוט ברובוט דרך שרת האינטרנט, לשלוח את ההודעה מדף האינטרנט ל- Raspberry Pi ולשלוח ערך משקל ל- Raspberry Pi ב- Container החכם.
כעת נכתוב סקריפט פיתון לשרת האינטרנט של דלת המוסך שלנו.
יצירת סקריפט הפיתון לפתיחת דלתות מוסך חכמות
סקריפט זה יקיים אינטראקציה עם GPOS של Raspberry Pi שלנו ויגדיר את שרת האינטרנט. אז זהו סקריפט הליבה ליישום שלנו. בסוף פיתון סקריפט לפתיחת דלתות ניתן בסוף, כאן הסברנו על חלקים ספורים ממנו.
ראשית, צור תיקיה. כל שאר התיקיות הנדרשות צריכות להיות בתיקיה זו בלבד. הפעל מתחת לפקודות כדי ליצור תיקיה ואת קובץ הפיתון ליצור בשם app.py בתוך תיקיה זו.
mkdir garage_door cd garage_door nano app.py
זה יפתח את עורך הננו שבו עלינו לכתוב את התסריט.
התחל משילוב ספריות חשובות.
ייבא RPi.GPIO כ- GPIO מבקבוק ייבוא בקבוק, render_template, בקש app = בקבוק (__ name__, static_url_path = '/ static')
כעת, צור מילון כסיכות לאחסון מספר הסיכה, השם ומצב הסיכה. אתה יכול להשתמש ביותר מסיכה אחת בהתאם לצורך שלך.
סיכות = { 14: {'name': 'דלת המוסך', 'state': GPIO.LOW} }
לאחר מכן, הגדר את הסיכה כפלט והפוך אותו נמוך בהתחלה.
לסיכה בסיכות: GPIO.setup (pin, GPIO.OUT) GPIO.output (pin, GPIO.LOW)
כעת, הפוך פונקציה עיקרית לקריאת מצב הסיכה ואחסון מצב זה במשתנה.
@ app.route ("/") def main (): לסיכה בסיכות : סיכות = GPIO. קלט (סיכה) ..
עלינו להעביר את הנתונים לדף ה- HTML שלנו כדי שנוכל לשלוט על מצב כפתור הקלט.
החזר render_template ('main.html', ** templateData)
עכשיו, הפוך פונקציה לטיפול בבקשות מכתובת האתר עם מספר הסיכה והפעולה בה.
@ app.route ("/
המר את הסיכה מכתובת האתר למספר שלם.
changePin = int (changePin)
אם חלק הפעולה של כתובת האתר "פתוח", בצע את הפעולות הבאות.
if action == "open": GPIO.output (changePin, GPIO.HIGH) if action == "close": GPIO.output (changePin, GPIO.LOW)
אתה יכול להעתיק את הסקריפט השלם מסוף מדריך זה ולשמור אותו באמצעות ctrl + x ואז ללחוץ על Enter. סיימנו עם סקריפט הפיתון. כעת עלינו ליצור דף HTML כדי לקיים אינטראקציה עם סקריפט הפיתון.
יצירת דף HTML עבור שרת האינטרנט Raspberry Pi
באותה תיקיית garage_door , צור תיקיה נוספת בשם תבניות ובתוך תיקיה זו צור קובץ.html באמצעות הפקודות הבאות.
תבניות mkdir תבניות תקליטור nano main.html
בשנות ה ננו עורך טקסט, לכתוב את קוד ה- HTML. אתה יכול לערוך את חלק מהדף ועצב אותו לפי בחירתך. הרגע השתמשתי בתכנית css של צד שלישי באמצעות תג קישור. קוד ה- HTML המלא ניתן להלן:
שרת אינטרנט לדלת המוסך
{% עבור סיכה בסיכות%}{{pins.name}} {% if pins.state == true%} פתוח כעת
הנה החלק החשוב הוא ליצור כפתור כדי לפתוח ולסגור את הדלת להקצות המדינה פתוח ו קרוב כפתור. הכפתור ישלח ויביא את מצב ה- GPIO מתסריט הפיתון.
אתה יכול להשתמש בקוד ה- HTML הנתון לעיל בעורך ולשמור אותו. כעת שרת האינטרנט מוכן להפעלה.
פתח את הטרמינל ונווט לתיקיה garage_door והפעל את הפקודה למטה
sudo python app.py
פתח את הדפדפן והזן את כתובת ה- IP שלך לפטל פטל והקש על Enter. כדי למצוא את כתובת ה- IP שלך תוכל להריץ את הפקודה הבאה במסוף.
שם מארח -אני
תראה דף כזה.
ודא שמודול הממסר מחובר לפטל פטל. לחץ על לחצן פתח כדי להפעיל את הממסר או כדי לפתוח את דלת המוסך. אתה יכול גם לראות את מצב הממסר. ברגע שהפעלת את הממסר, טקסט הלחצן ישתנה סגור כדי לכבות את הממסר. כעת כשתלחץ על הכפתור שוב הממסר יכבה וטקסט הכפתור ישתנה לפתיחה מחדש.
כדי לעצור את השרת לחץ על ctrl + c.
אז פשוט חבר את הממסר הזה למנגנון פותחן דלתות כלשהו, הזמין בשוק, והתחל לשלוט על דלת המוסך באמצעות הטלפון החכם.
להלן סרטון הדגמה.