- רכיבים נדרשים
- תרשים מעגל
- התקנת ספריות ענן MQTT ב- Raspberry Pi
- הסבר קידוד לשליטה על Raspberry Pi GPIO עם MQTT
במדריך הקודם דנו אודות פרוטוקול MQTT והתקנו שרת MQTT מקומי ב- Raspberry Pi שלנו לשליטה ב- GPIO באופן מקומי. אך החיסרון של שרת MQTT מקומי הוא שאנחנו לא יכולים לשלוט ב- GPIO מכל מקום בעולם, אלא הוא מספק שירותים רק באופן מקומי. אך אם שרת MQTT זה מתארח בענן כלשהו, ניתן לשלוט בכל המכשירים המחוברים ל- Raspberry Pi ברחבי העולם.
כאן, במדריך זה, נשתמש ב- Adafruit IO כמתווך MQTT לשליטה במכשיר AC המחובר ל- Raspberry Pi GPIO. בדוק גם מדריכים אחרים המופעלים על ידי IoT אוטומציה ביתית:
- אוטומציה ביתית נשלטת על ידי קול באמצעות IOT באמצעות ESP8266 ואפליקציית Android
- אוטומציה ביתית מבוקרת באמצעות טלפון חכם באמצעות ארדואינו
- אוטומציה ביתית מבוססת אינטרנט מבוססת IoT באמצעות מיקרו-בקר PIC ו- Adafruit IO
- אוטומציה ביתית מבוססת אינטרנט מבוססת IoT באמצעות Raspberry Pi
- עוזר גוגל מבוסס אוטומציה ביתית קולית באמצעות DIY Arduino Wi-Fi Shield
רכיבים נדרשים
- Raspberry Pi עם Raspbian Stretch מותקן בתוכו.
- מודול ממסר
- נוּרָה
- חוטי מגשר
כאן נשתמש ב- SSH כדי לגשת ל- Raspberry Pi במחשב הנייד. אתה יכול להשתמש בחיבור VNC או שולחן עבודה מרוחק במחשב הנייד, או לחבר את ה- Raspberry pi שלך עם צג. למידע נוסף על הגדרת Raspberry Pi ללא ראש כאן ללא צג.
תרשים מעגל
דיאגרמת מעגלים עבור מכשירי חשמל ביתיים מבוקרים אלו עם IQTT ענן ו- Raspberry Pi היא פשוטה, פשוט חברו נורה עם מודול ממסר על סיכה GPIO 35 של פטל פי.
התקנת ספריות ענן MQTT ב- Raspberry Pi
כאן נעשה שימוש בפלטפורמת IO של Adafruit עם Raspberry Pi כמתווך MQTT. מכיוון שהשתמשנו בפלטפורמת IO של Adafruit פעמים רבות בהדרכות הקודמות שלנו באופן דומה אנו יכולים להשתמש בה ב- Raspberry Pi.
פשוט ערוך חשבון בפלטפורמת Adafruit IO והכין עדכון, אם אינך יודע להכין עדכון ולהתאים אישית את לוח המחוונים של Adafruit, עקוב אחר הקישור.
לאחר יצירת לוח המחוונים, התקן כמה ספריות ב- Raspberry Pi כדי להתחיל עם MQTT.
1. ראשית, עדכן את ה- Pi וה- Python שלך על ידי הנפקת הפקודות הבאות
sudo apt-get עדכון sudo apt-get שדרוג sudo pip3 להתקין - שדרוג התקנות כלים
2. כעת התקן את ספריות ה- Rpi.gpio ו- Adafruit באמצעות הפקודות הבאות
sudo pip3 להתקין RPI.GPIO sudo pip3 להתקין adafruit-blinka
3. התקן את ספריית Adafruit IO באמצעות הפקודה הבאה
sudo pip3 להתקין את adafruit-io
4. שיבט את הדוגמאות של adafruit מ- github באמצעות הפקודה למטה
שיבוט git https://github.com/adafruit/Adafruit_IO_Python.git
5. לאחר מכן, נווט לתיקיית הדוגמאות על ידי הזנת הפקודה הבאה למסוף:
cd Adafruit_IO_Python / דוגמאות / יסודות
אם אינך בטוח באיזו ספריה אתה נמצא, תוכל לבדוק זאת על ידי הפעלת pwd.
6. לכל הדוגמאות בתיקיה זו, יהיה עליך להגדיר את ADAFRUIT_IO_KEY ו- ADAFRUIT_IO_USERNAME, שאותם ניתן למצוא במרכז השליטה של Adafruit. כפי שמוצג מטה
החלף את הלחצן בלוח המחוונים של Adafruit IO, ואתה אמור לראות את הדברים הבאים במסוף ה- Pi שלך.
7. כעת, פתח את קובץ subscribe.py באמצעות עורך nano . הקלד את הפקודה הבאה כדי לפתוח אותה
סודו ננו subscribe.py
עלינו לשנות תוכנית זו כדי לשלוט בכל GPIO מלוח המחוונים.
הסבר קידוד לשליטה על Raspberry Pi GPIO עם MQTT
ראשית, ייבא את כל הספריות הנדרשות לשימוש בסיכות GPIO ובלקוח MQTT של Adafruit.
ייבא RPi.GPIO כ- GPIO ייבוא מערכות מ- Adafruit_IO ייבא MQTTClient
כעת, הגדר מצב GPIO והגדר מספר סיכה לד והגדר כפלט.
GPIO.setmode (GPIO.BOARD) GPIO.setwarnings (False) ledPin = 12 GPIO.setup (ledPin, GPIO.OUT)
לאחר מכן, עלינו להגדיר מפתח AIO ושם משתמש שמצאנו בעת יצירת לוח המחוונים.
ADAFRUIT_IO_KEY = 'YOUR_AIO_KEY' ADAFRUIT_IO_USERNAME = 'YOUR_AIO_USERNAME'
הזן את שם העדכון שנתת כדי להדליק ולכבות את האור. הנה, זה "קל".
FEED_ID = 'אור'
כעת, הגדירו פונקציה שתיקרא כאשר יקרה אירוע. אז נרשום לעדכון באמצעות client.subscribe (FEED_ID)
def מחובר (לקוח): הדפסת client.subscribe (FEED_ID) ('מחכה לנתוני הזנה…')
לאחר מנוי הפיד, עלינו לבדוק את הערך החדש ולאחסן אותו במשתנה מטען . עבור הודעה זו נקראת פונקציה. לכן, בכל פעם שיש "1" במשתנה המטען, הפוך את הפין הוביל ל- HIGH ועבור "0" הפוך אותו ל- LOW.
הודעת def (לקוח, feed_id, מטען): הדפס ('Feed {0} קיבל ערך חדש: {1}'. פורמט (feed_id, מטען)) אם מטען == 1: GPIO.output (ledPin, GPIO.HIGH) אחר: GPIO.output (ledPin, GPIO.LOW)
כעת, צור לקוח MQTT כדי להתחבר לפלטפורמת ה- IO של Adafruit ולשלוח את ההודעות הלוך ושוב.
לקוח = MQTTClient (ADAFRUIT_IO_USERNAME, ADAFRUIT_IO_KEY) client.on_connect = לקוח מחובר. on_disconnect = מנותק
כמו כן, דאג לכניסה נכונה בקוד אחרת זה יראה שגיאה. קוד פיתון מלא ניתן בסוף ההדרכה.
לבסוף, שמור את התוכנית באמצעות ctrl + x והקש על Enter. כעת עלינו להריץ את הסקריפט על מנת להירשם כמנוי להודעות. אז בטרמינל סוג פייתון subscribe.py והקש על Enter.
פיתון subscribe.py
תראה הודעה מחכה לנתוני עדכון … כפי שמוצג להלן תמונת מצב.
כעת וודא שמודול הממסר מחובר לסיכת GPIO של פטל פטל ואז עבור אל לוח המחוונים של Adafruit IO ושנה את הזנת האור. הנורה צריכה להדליק כאשר "1" הוא קיבל וכיבה כאשר "0" מתקבל כמוצג להלן.
באופן זה אנו יכולים לשלוט בכל מכשיר מכל מקום בעולם באמצעות ענן Raspberry Pi ו- MQTT