תוכן עניינים:

פטל פאי מדבר עם ESP8266 באמצעות MQTT: 8 שלבים
פטל פאי מדבר עם ESP8266 באמצעות MQTT: 8 שלבים

וִידֵאוֹ: פטל פאי מדבר עם ESP8266 באמצעות MQTT: 8 שלבים

וִידֵאוֹ: פטל פאי מדבר עם ESP8266 באמצעות MQTT: 8 שלבים
וִידֵאוֹ: יונתן ברק - "שנאת חינם" 2022 - ספיישל באורך מלא 2024, נוֹבֶמבֶּר
Anonim
פטל פאי מדבר עם ESP8266 באמצעות MQTT
פטל פאי מדבר עם ESP8266 באמצעות MQTT

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

חומר נדרש

1. פטל פי 3

2. NodeMCU

3. LED

4. כפתור

5. נגדים (10k, 475 אוהם)

שלב 1: מהו MQTT וכיצד הוא פועל

MQTT

MQTT הוא פרוטוקול העברת נתונים ממכונה למכונה (M2M). MQTT נוצר במטרה לאסוף נתונים ממכשירים רבים ולאחר מכן להעביר נתונים אלה לתשתית ה- IT. הוא קל משקל, ולכן אידיאלי לניטור מרחוק, במיוחד בחיבורי M2M הדורשים טביעת רגל קטנה או כאשר רוחב הפס של הרשת מוגבל.

כיצד פועל MQTT

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

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

הפרויקט מחולק ל -3 חלקים

ראשית, אנו יוצרים שרת MQTT ב- RPi ומתקינים כמה ספריות.

שנית, נתקין ספריות ב- Arduino IDE כדי ש- NodeMCU יעבוד עם MQTT, נעלה את הקוד ונבדוק אם השרת עובד או לא.

לבסוף, אנו יוצרים סקריפט ב- Rpi, מעלים את הקוד הנדרש ב- NodeMCU ומריצים את סקריפט ה- python לשליטה על נוריות הן מהשרת והן מצד הלקוח. כאן, השרת הוא RPi והלקוח הוא NodeMCU.

שלב 2: פטל פטל

פאי פטל
פאי פטל
פאי פטל
פאי פטל
פאי פטל
פאי פטל
פאי פטל
פאי פטל

1. להתקנת השרת והלקוח העדכניים ביותר של MQTT ב- RPi, כדי להשתמש במאגר החדש עליך לייבא תחילה את מפתח החתימה של חבילת המאגר.

wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key להוסיף mosquitto-repo.gpg.key

2. הפוך את המאגר לזמין ל- apt.

cd /etc/apt/sources.list.d/

3. תלוי באיזו גירסה של דביאן אתה משתמש.

sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget

sudo wget

עדכון sudo apt-get

4. התקן את שרת Mosquitto באמצעות הפקודה.

sudo apt-get להתקין יתוש

אם אתה מקבל שגיאות בהתקנת Mosquitto כך.

#################################################################

לחבילות הבאות יש תלות בלתי מסופקת: יתוש: תלוי: libssl1.0.0 (> = 1.0.1) אך לא ניתן להתקנה תלוי: libwebsockets3 (> = 1.2) אך לא ניתן להתקנה E: לא ניתן לתקן בעיות, החזקת שבורה חבילות.

#################################################################

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

sudo apt-תיקון שבור

5. לאחר התקנת שרת MQTT, התקן את הלקוח באמצעות הפקודה

sudo apt-get להתקין לקוחות יתושים

אתה יכול לבדוק שירותים באמצעות פקודה.

מערכת systemctl mosquitto.service

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

תת יתוש

פאב יתושים

להתקנת ספריית paho-mqtt השתמש בפקודה שלהלן.

sudo pip התקן paho-mqtt

פאהו

שלב 3: כיצד להגדיר כתובת IP סטטית

כיצד להגדיר כתובת IP סטטית
כיצד להגדיר כתובת IP סטטית

עבור לספריית cd /etc ופתח את הקובץ dhcpcd.conf באמצעות כל עורך. בסוף כתוב את ארבע השורות האלה.

ממשק eth0 סטטי ip_address = 192.168.1.100 // ip שאתה רוצה להשתמש בו

ממשק wlan0

ip_address סטטי = 192.168.1.68

נתבים סטטיים = 192.168.1.1 // שער ברירת המחדל שלך

שרת דומיין_סטטי סטטי = 192.168.1.1

לאחר מכן שמור אותו והפעל מחדש את הפאי שלך.

שלב 4: NodeMCU

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU

התקן את הספריות הנדרשות ב- Arduino IDE עבור NodeMCU

1. עבור אל Sketch ==> כלול ספרייה ==> נהל ספריות.

2. חפש mqtt והתקן את ספריית Adafruit או שתוכל להתקין כל ספרייה.

3. זה תלוי בספריית sleepydog אז אנחנו צריכים גם את הספרייה הזו.

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

mosquitto_pub -h raspberrypi -t "/leds/pi" -m "ON"

mosquitto_pub -h raspberrypi -t "/leds/pi" -m "OFF"

mosquitto_pub -h raspberrypi -t "/leds/pi" -m "TOGGLE"

mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "ON"

mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "OFF"

mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "TOGGLE"

-h ==> שם מארח-t ==> נושא

-m ==> הודעה

לאחר בדיקת התוכנית Mqtt_check העלה תוכנית מלאה ב- NodeMCU

שלב 5: סקריפט פייתון

סקריפט פייתון
סקריפט פייתון
סקריפט פייתון
סקריפט פייתון

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

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

שלב 6: חיבורים ותרשים מעגלים

חיבורים ותרשים מעגלים
חיבורים ותרשים מעגלים
חיבורים ותרשים מעגלים
חיבורים ותרשים מעגלים

ממשק כפתור, LED עם NodeMCU

NodeMCU ===> ButtonGnd ===> Gnd

3.3V ===> PIN1

GPIO4 (D2) ===> PIN2

NodeMCU ===> LED

Gnd ===> קתודה (-ve)

GPIO5 (D1) ===> אנודה (+ve)

ממשק כפתור, LED עם RPi

RPi ===> ButtonGnd ===> PIN1

GPIO 23 ===> PIN2

RPi ===> LED

Gnd ==> קתודה (-ve)

GPIO 24 ===> אנודה (+ve)

שלב 7: תוצאה

Image
Image
תוֹצָאָה
תוֹצָאָה

וודא שהתסריט פועל אחרת הוא לא יוכל לשלוט ב- LED באמצעות כפתורים.

מוּמלָץ: