- התקנת חבילות נדרשות לתקשורת Bluetooth:
- התאמת מכשירים עם Raspberry Pi באמצעות Bluetooth:
- תרשים מעגל:
- LED שליטה עם אפליקציית Android BlueTerm:
- הסבר על תכנות:
Raspberry Pi פופולרי מאוד עבור פרויקטים של IoT בגלל יכולתו החלקה של תקשורת אלחוטית דרך האינטרנט. Raspberry Pi 3 כולל Wi-Fi ו- Bluetooth מובנים, ו- Bluetooth הוא פרוטוקול תקשורת אלחוטי אלחוטי פופולרי מאוד. אז היום אנחנו הולכים לשלוט ב- Raspberry Pi GPIO Pin באמצעות אפליקציית Android באמצעות Bluetooth.
כאן אנו משתמשים ב- Raspberry 2 Pi דגם B שאין להם Bluetooth מובנה, לכן אנו משתמשים בפלאג Bluetooth פשוט מסוג USB. מלבד זאת אנו זקוקים רק לנגד (220R) ולנורית LED כדי להדגים את בקרת ה- GPIO. כאן אנו משתמשים בפרוטוקול Bluetooth RFCOMM לתקשורת אלחוטית.
תכנות ל- Bluetooth בפייתון עוקב אחר מודל תכנות השקעים והתקשורת בין מכשירי ה- Bluetooth נעשית דרך שקע RFCOMM. RFCOMM (תקשורת תדרים רדיו) הוא פרוטוקול Bluetooth אשר סיפק יציאות טוריות של RS-232 ונקרא גם הדמיית יציאה טורית. פרופיל יציאה טורית של Bluetooth מבוסס על פרוטוקול זה. RFCOMM פופולרי מאוד ביישומי Bluetooth בגלל התמיכה הרחבה וה- API הזמין לציבור. זה קשור לפרוטוקול L2CAP.
השתמשנו גם במודול Bluetooth HC-06 בפרויקט הקודם שלנו: נוריות LED נשלטות באמצעות 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 שלנו. אבל לפני כן, חבר את דונגל ה- Bluetooth שלך ל- USB עם Raspberry Pi ובדוק אם הוא מזוהה או לא, באמצעות הפקודה הבאה:
lsusb
עכשיו פתח את כלי השירות bluetoothctl לפי הפקודה הבאה:
סודו
אתה יכול לבדוק את כל הפקודות של כלי השירות bluetoothctl על ידי הקלדת 'עזרה' . לעת עתה עלינו להזין להלן פקודות בסדר נתון:
# הפעלה # סוכן מופעל # ניתנת לזיהוי # התאמה # סריקה פועלת
לאחר הפקודה האחרונה "סרוק", תראה את מכשיר ה- Bluetooth שלך (טלפון נייד) ברשימה. וודא שהמכשירים הסמוכים שלך מופעלים באמצעות Bluetooth, וגלויים להם. לאחר מכן העתק את כתובת ה- MAC של המכשיר שלך והתאם אותה באמצעות הפקודה הנתונה:
זוג
לאחר מכן תתבקש להזין קוד סיסמה או הצמד במסוף המסוף שלך ואז הקלד שם סיסמה ולחץ על Enter. לאחר מכן הקלד את אותו סיסמה בטלפון הנייד שלך כאשר תתבקש ועכשיו אתה מותאם בהצלחה ל- Raspberry Pi. הסברנו גם את כל התהליך בסרטון שלנו שניתן בסוף.
כפי שנאמר קודם, אתה יכול גם להשתמש בממשק שולחן העבודה כדי להתאים את הטלפון הנייד. לאחר התקנת Blueman, תראה סמל Bluetooth בצד ימין של שולחן העבודה של Raspberry Pi, כפי שמוצג להלן, ובאמצעותו תוכל לבצע את ההתאמה בקלות.
תרשים מעגל:
דיאגרמת המעגלים היא פשוטה מאוד, פשוט חיברנו נורית לד PIN 40 (GPIO 21) של פטל פי עם נגד של 220 אוהם:
LED שליטה עם אפליקציית Android BlueTerm:
כעת לאחר שינינו את הטלפון הנייד, עלינו להתקין אפליקציית Android לתקשורת עם Raspberry Pi באמצעות מתאם סידורי Bluetooth. כפי שנאמר קודם לכן פרוטוקול RFCOMM / SPP מחקה תקשורת טורית באמצעות Bluetooth, לכן התקנו כאן את אפליקציית BlueTerm התומכת בפרוטוקול זה.
אתה יכול גם להשתמש בכל יישום מסוף Bluetooth אחר התומך בתקשורת באמצעות שקע RFCOMM.
כעת לאחר הורדת ההתקנה של אפליקציית BlueTerm, הפעל את תוכנית ה- Python הנתונה למטה מהטרמינל וחבר את מכשיר ה- raspberrypi המותאם מאפליקציית BlueTerm בו זמנית.
לאחר חיבור מוצלח תראה מחובר: raspberrypi בפינה הימנית העליונה של האפליקציה כמוצג להלן:
עכשיו אתה יכול פשוט להזין '1' או '0' מאפליקציית BlueTerm כדי להפוך את סיכת GPIO ל- HIGH ו- LOW בהתאמה, אשר בתורו מכבה ומדליק את הנורית המחוברת לסיכה זו. לחץ על 'q' כדי לצאת מהתוכנית. אתה יכול להשתמש במקלדת הקלדת הקולות של Google כדי לשלוט ב- GPIO באמצעות הקול שלך. בדוק את ההדגמה המלאה בסרטון שניתן בסוף.
אז ככה תוכלו לשלוט בצורה אלחוטית ב- GPIO Pin באמצעות אפליקציית 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 ()
כל הקוד האחר קל ומובן מאליו. בדוק את הקוד המלא למטה. נסה לשנות את הפרויקט הזה ותוכל להשתמש בו כדי לשלוט על דברים רבים אחרים באופן אלחוטי, כמו שימוש בממסרים אתה יכול לשלוט במכשירי החשמל הביתיים או גם לשלוט במכונית רובוט באמצעות טלפון אנדרואיד.