- התקנת חבילות נדרשות לתקשורת Bluetooth:
- התאמת מכשירים עם Raspberry Pi באמצעות Bluetooth:
- תרשים מעגל:
- שליטה על מכשיר AC עם אפליקציית Android BlueTerm:
- הסבר על תכנות:
Raspberry Pi פופולרי מאוד עבור פרויקטים של IoT בגלל יכולתו החלקה של תקשורת אלחוטית דרך האינטרנט. Raspberry Pi 3 כולל Wi-Fi ו- Bluetooth מובנים, ו- Bluetooth הוא פרוטוקול תקשורת אלחוטי אלחוטי פופולרי מאוד. אז היום אנחנו הולכים לשלוט על מכשירי חשמל ביתיים באמצעות טלפון חכם באמצעות Raspberry Pi 3 ו- Bluetooth.
כאן אנו משתמשים ב- Raspberry Pi 3 שיש להם Bluetooth מובנה, כך שאיננו צריכים להשתמש בשלט פלאש USB חיצוני מסוג USB. מלבד זאת אנו זקוקים רק למודולי ממסר לפרויקט אוטומציה ביתית אלחוטית זו. כאן אנו משתמשים בפרוטוקול Bluetooth RFCOMM לתקשורת אלחוטית.
תכנות ל- Bluetooth בפייתון עוקב אחר מודל תכנות השקעים והתקשורת בין מכשירי ה- Bluetooth נעשית דרך שקע RFCOMM. RFCOMM (תקשורת תדרים רדיו) הוא פרוטוקול Bluetooth אשר סיפק יציאות טוריות של RS-232 ונקרא גם הדמיית יציאה טורית. פרופיל יציאה טורית Bluetooth מבוסס על פרוטוקול זה. RFCOMM פופולרי מאוד ביישומי Bluetooth בגלל התמיכה הרחבה וה- API הזמין לציבור. זה קשור לפרוטוקול L2CAP.
אם יש לך Raspberry Pi 2, עליך להשתמש בפלאג Bluetooth חיצוני או במודול Bluetooth HC-06. בדוק את הפרויקטים הקודמים שלנו לשימוש במכשירי Bluetooth חיצוניים אלה: שליטה ב- Raspberry Pi GPIO באמצעות אפליקציית Android באמצעות נוריות Bluetooth ונשלטות קוליות באמצעות Raspberry Pi. בדוק גם את הפרויקטים הקודמים שלנו של פטל, יחד עם כמה פרויקטים טובים של IoT.
התקנת חבילות נדרשות לתקשורת Bluetooth:
לפני ההתחלה, עלינו להתקין כמה תוכנות להגדרת תקשורת Bluetooth ב- Raspberry Pi. אתה צריך שיהיה לך כרטיס זיכרון מותקן של Raspbian Jessie עם Raspberry Pi. עיין במאמר זה כדי להתקין את מערכת ההפעלה Raspbian ולהתחיל לעבוד עם Raspberry Pi. אז עכשיו ראשית עלינו לעדכן את ה- Raspbian באמצעות הפקודות הבאות:
sudo apt-get עדכון
אז עלינו להתקין כמה חבילות הקשורות ל- Bluetooth:
sudo apt-get להתקין
ואז אתחל את ה- Raspberry Pi:
אתחול סודו
BlueZ הוא פרויקט קוד פתוח וערימת רשמי פרוטוקול Bluetooth של Linux. הוא תומך בכל פרוטוקולי הליבה של Bluetooth וכעת הופך לחלק מליבת הלינוקס הרשמית.
Blueman מספק את ממשק שולחן העבודה לניהול ובקרה של התקני Bluetooth.
לבסוף אנו זקוקים לספריית פיתון לתקשורת Bluetooth כדי שנוכל לשלוח ולקבל נתונים דרך RFCOMM באמצעות שפת פייתון:
sudo apt-get להתקין פייתון
התקן גם את ספריות התמיכה של GPIO עבור Raspberry Pi:
sudo apt-get install python-rpi.gpio
כעת סיימנו להתקין חבילות נדרשות לתקשורת בלוטות 'ב- Raspberry Pi.
התאמת מכשירים עם Raspberry Pi באמצעות Bluetooth:
התאמת מכשירי Bluetooth, כמו טלפון נייד, עם פטל פי היא קלה מאוד. כאן התאמנו את הטלפון החכם אנדרואיד שלנו עם פטל פי. בעבר התקנו את BlueZ ב- Pi, המספק כלי שורת פקודה בשם "bluetoothctl" לניהול התקני ה- Bluetooth שלנו.
עכשיו פתח את כלי השירות bluetoothctl לפי הפקודה הבאה:
סודו
אתה יכול לבדוק את כל הפקודות של כלי השירות bluetoothctl על ידי הקלדת 'עזרה' . לעת עתה עלינו להזין להלן פקודות בסדר נתון:
# הפעלה # סוכן מופעל # ניתנת לזיהוי # התאמה # סריקה פועלת
לאחר הפקודה האחרונה "סרוק", תראה את מכשיר ה- Bluetooth שלך (טלפון נייד) ברשימה. וודא שהמכשירים הסמוכים שלך מופעלים באמצעות Bluetooth, וגלויים להם. לאחר מכן העתק את כתובת ה- MAC של המכשיר שלך והתאם אותה באמצעות הפקודה הנתונה:
זוג
לאחר מכן תתבקש להזין קוד גישה או להצמד במסוף המסוף שלך ואז להקליד שם קוד גישה ולחץ על Enter. לאחר מכן הקלד את אותו סיסמה בטלפון הנייד שלך כאשר תתבקש ועכשיו אתה מותאם בהצלחה ל- Raspberry Pi. הסברנו גם את כל התהליך הזה בסרטון שפורסם בהדרכת השליטה הקודמת ב- GPIO. הנה הקישור הישיר ל- YouTube.
כפי שנאמר קודם, אתה יכול גם להשתמש בממשק שולחן העבודה כדי להתאים את הטלפון הנייד. לאחר התקנת Blueman, תראה סמל Bluetooth בצד ימין של שולחן העבודה של Raspberry Pi, כפי שמוצג להלן, ובאמצעותו תוכל לבצע את ההתאמה בקלות.
תרשים מעגל:
דיאגרמת מעגלים לאוטומציה ביתית מבוקרת זו של פטל פי מבוססת-פטל היא פשוטה מאוד, רק חיברנו את פין אות הכניסה של מודול הממסר לפין PIN 40 (GPIO 21) של פטל פי ושני פינים אחרים (Vcc ו- GND של מודול הממסר) לפין 2 ו -6 של פטל פי 3. ואז חיברנו נורת CFL AC לממסר כפי שמוצג בתרשים המעגל:
אם אתה חדש ב- Relay וברצונך ללמוד עוד על Relay ועל קשריו עם מכשיר AC, עיין במאמר זה.
שליטה על מכשיר AC עם אפליקציית Android BlueTerm:
כעת לאחר שינינו את הטלפון הנייד, עלינו להתקין אפליקציית Android לתקשורת עם Raspberry Pi באמצעות מתאם סידורי Bluetooth, כדי שנוכל לשלוט בסיכות ה- GPIO של Raspberry Pi. כפי שנאמר קודם לכן פרוטוקול RFCOMM / SPP מחקה תקשורת טורית באמצעות Bluetooth, לכן התקנו כאן את אפליקציית BlueTerm התומכת בפרוטוקול זה.
אתה יכול גם להשתמש בכל יישום מסוף Bluetooth אחר התומך בתקשורת באמצעות שקע RFCOMM.
כעת לאחר הורדת ההתקנה של אפליקציית BlueTerm, הפעל את תוכנית ה- Python הנתונה למטה מהטרמינל וחבר את מכשיר ה- raspberrypi המותאם מאפליקציית BlueTerm בו זמנית.
לאחר חיבור מוצלח תראה מחובר: raspberrypi בפינה הימנית העליונה של האפליקציה כמוצג להלן:
עכשיו אתה יכול פשוט להזין '1' או '0' מאפליקציית BlueTerm כדי להפוך את פין ה- GPIO ל- HIGH ו- LOW בהתאמה, מה שמפעיל בתורו את מודול ה- Relay המחובר לסיכה זו, השולט עוד יותר על נורת ה- AC המחוברת ל- Relay. לחץ על 'q' כדי לצאת מהתוכנית. אתה יכול להשתמש במקלדת הקלדת הקולות של Google כדי לשלוט ב- GPIO באמצעות הקול שלך. בדוק את ההדגמה המלאה בסרטון שניתן בסוף.
אז ככה תוכלו לשלוט באופן אלחוטי במכשיר ה- AC באמצעות אפליקציית Android דרך Bluetooth. בדוק גם כיצד להשתמש ב- Bluetooth עם Arduino.
הסבר על תכנות:
תוכנית פייתון לשליטה ב- Raspberry Pi GPIO עם אפליקציית Android היא מאוד פשוטה ומובנת מאליה. רק עלינו ללמוד מעט על הקוד הקשור לתקשורת RFCOMM עם Bluetooth. ראשית עלינו לייבא את ספריית שקעי ה- Bluetooth המאפשרת לנו לשלוט ב- Bluetooth עם שפת פייתון; התקנו את הספרייה עבור אותה בחלק הקודם.
ייבא Bluetooth
להלן הקוד האחראי לתקשורת Bluetooth:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) port = 1 server_socket.bind (("", port)) server_socket.listen (1) client_socket, address = server_socket.accept () להדפיס "חיבור מקובל מ-", כתובת בעוד 1: נתונים = client_socket.recv (1024)
כאן נוכל להבין אותם שורה אחר שורה:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM): יצירת שקע לתקשורת RFCOMM עם Bluetooth.
server_socket.bind (("", port): - השרת קושר את הסקריפט במארח 'ליציאה.
server_socket.listen (1) : השרת מקשיב לקבל חיבור אחד בכל פעם.
client_socket, address = server_socket.accept () : השרת מקבל את בקשת החיבור של הלקוח ומקצה את כתובת ה- mac לכתובת המשתנה , client_socket הוא שקע הלקוח
נתונים = client_socket.recv (1024): קבל נתונים דרך שקע הלקוח client_socket והקצה אותם לנתונים המשתנים. ניתן לקבל מקסימום 1024 תווים בכל פעם.
לבסוף לאחר כל התכנות, סגור את חיבור הלקוח והשרת באמצעות הקוד שלמטה:
client_socket.close () server_socket.close ()
כל הקוד האחר קל ומובן מאליו. בדוק את הקוד המלא למטה. נסה לשנות את הפרויקט הזה ותוכל להשתמש בו כדי לשלוט על דברים רבים אחרים באופן אלחוטי, מכונית רובוט באמצעות טלפון אנדרואיד או להשתמש בקולך כדי לשלוט באורות.
בדוק גם סוגים רבים של פרויקטים של אוטומציה ביתית המשתמשים בטכנולוגיות שונות ובמיקרו-בקרים כמו: