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

ESP-NOW Automation Home Esp8266 Raspberry Pi MQTT: 4 שלבים
ESP-NOW Automation Home Esp8266 Raspberry Pi MQTT: 4 שלבים

וִידֵאוֹ: ESP-NOW Automation Home Esp8266 Raspberry Pi MQTT: 4 שלבים

וִידֵאוֹ: ESP-NOW Automation Home Esp8266 Raspberry Pi MQTT: 4 שלבים
וִידֵאוֹ: Home Assistant - подключаем адресную ленту WS2812B через ESP8266 с прошивкой WLED 2024, דֵצֶמבֶּר
Anonim
ESP-NOW אוטומציה ביתית Esp8266 Raspberry Pi MQTT
ESP-NOW אוטומציה ביתית Esp8266 Raspberry Pi MQTT

במדריך זה אני מראה לך כיצד השתמשתי ב- ESP-NOW באוטומציה הביתית שלי. בתרשים ניתן לראות את זרימות התקשורת

אני מראה לך:

  • כיצד עובד השולח
  • כיצד עובד המקלט
  • כיצד פועלת התקשורת הסדרתית עם פטל פטל

אינני מראה כיצד פועל MQTT ואוטומציה הביתית שלי, תוכל למצוא הוראות טובות אחרות לכך.

נקודות זכות: הוראה זו נוצרה בהשראת:

סרטון מס '172 מאת אנדראס ספייס

www.esploradores.com/practica-6-conexion-es…

שלב 1: גיבוי באמצעות WiFi ו- MQTT

גיבוי באמצעות WiFi ו- MQTT
גיבוי באמצעות WiFi ו- MQTT

גיליתי ש- ESP-NOW הוא מהיר במיוחד ואמין למדי, אך לפעמים נכשל. בתוכנית שלי הוספתי גיבוי באמצעות חיבור WiFi רגיל ו- MQTT.

שלב 2: השלט/שולח

השלט/שולח
השלט/שולח
השלט/שולח
השלט/שולח
השלט/שולח
השלט/שולח
השלט/שולח
השלט/שולח

בתוכנית הראשונה אתה רואה כיצד התוכנית של השולח עובדת:

  1. ה- esp8266 מתחיל מהפעלה או מאפס
  2. ESP-NOW מאתחל
  3. המודול שולח ESP-NOW לזמן מוגדר
  4. המודול בודק אם הודעת ESP-NOW התקבלה על ידי המקלט בפונקציית התקשרות חוזרת.

    1. אם התקבלה הודעת ESP-NOW, המודול עובר לישון עמוק בעוצמה נמוכה
    2. אם הודעת ESP-NOW לא התקבלה, המודול מתחיל חיבור WiFi וחיבור MQTT כחיבור גיבוי.

התוכנית לשולח נמצאת ב- Github שלי (Master_sender.ino). התוכניות שולחות הן את הנושא והן את ההודעה לאוטומציה הביתית של MQTT בהודעה אחת משולבת ESP-NOW, המשולבת בסימן '&' לפיצול קל במקלט.

הכנתי שני שלטים/שולחים שונים:

שולח 1: ה- esp8266 נמצא בשינה עמוקה ומופעל על ידי איפוס. הלד בכפתור נדלק ומתעמעם כשהמודול מסתיים. אם המתח של הסוללה נמוך, הנורית מהבהבת. אם ESP-NOW נכשל, הנורית מהבהבת לפני המעבר לחיבורי WiFi/MQTT. ה- esp8266 מופעל מסוללת LiPo עם ווסת מתח HT7333 עד 3.3V

שולח 2: ה- esp8266 כבוי ומופעל על ידי לחיצה על הכפתור. בדרך כלל החיבור ESP-NOW מתבצע לאחר כפתור "לחיצה". ה- esp8266 מופעל ישירות מסוללת LiPo. אני לא יודע אם esp8266 ניזוק מהמתח הגבוה של סוללה טעונה במלואה (עד 4.2 וולט) כשהיא מופעלת רק בכמה 100 אלפיות השנייה. הוא גבוה יותר מהמפרט (3.0 - 3.6V).

הערה: אם הסוללה חלשה, ה- ESP-NOW נכשל.

שלב 3: המקלט - חומרה (esp8266 ו- Raspberry Pi)

המקלט - חומרה (esp8266 ו- Raspberry Pi)
המקלט - חומרה (esp8266 ו- Raspberry Pi)
המקלט - חומרה (esp8266 ו- Raspberry Pi)
המקלט - חומרה (esp8266 ו- Raspberry Pi)
המקלט - חומרה (esp8266 ו- Raspberry Pi)
המקלט - חומרה (esp8266 ו- Raspberry Pi)

תיאור המקלט מתחלק לשני חלקים:

  1. חוּמרָה
  2. תוֹכנָה

החומרה

ה- esp-01 המקבל מחובר ל- Raspberry Pi Zero שלי שמפעיל את מערכת האוטומציה הביתית שלי (Openhab2) ו- Node Red.

בסכימה מוצגים החיבורים הפשוטים:

  • RX של esp-01 ל- TX של ה- RasPi
  • TX של ה- esp-01 ל- RX של ה- RasPi
  • GND ל- GND
  • ה- esp-01 VCC מופעל באמצעות סיכה של 3.3V של ה- Raspi
  • ב- esp-01 הן RST והן CH_PD נמשכות גבוה.

יצרתי מחבר ממשק כדי להתקין אותו בקלות

בתמונה אחת אתה יכול לראות את חיבורי החוט שלי ל- Raspberry Pi 3 שלי (שיש לו את אותו pinout, אבל השתמשתי בסיכה נוספת של 3.3V כדי להתחבר ל- CH_PD).

ה- esp-01 תוכנת כפי שמוצג במדריך השני שלי (ראה שלב 3).

שלב 4: המקלט - תוכנה (סידורי, צומת אדום, MQTT)

המקלט - תוכנה (סידורי, צומת אדום, MQTT)
המקלט - תוכנה (סידורי, צומת אדום, MQTT)
המקלט - תוכנה (סידורי, צומת אדום, MQTT)
המקלט - תוכנה (סידורי, צומת אדום, MQTT)
המקלט - תוכנה (סידורי, צומת אדום, MQTT)
המקלט - תוכנה (סידורי, צומת אדום, MQTT)

תוכנית ב- esp8266

התוכנית למקלט esp-01 נמצאת ב- Github שלי (Master_sender.ino). התוכנית היא ממש פשוטה, היא רק מדפיסה את ההודעה ESP-NOW שהתקבלה ביציאה הסידרית ל- Raspberry Pi.

יציאה סדרתית

ב- Raspberry Pi, עליך להפעיל את Port Serial (ב- raspbian, בצע 'sudo raspi-config') לתקשורת טורית רגילה.

שם היציאה הטורית הוא:

  • Raspberry Pi Zero: /dev /ttyAMA0
  • Raspberry Pi 3: /dev /ttyS0

אתה יכול לבדוק את היציאה הטורית על ידי הפעלת 'dmesg | grep tty 'או' ls /dev '

צומת אדום

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

הפלט של הצומת הטורי משתנה על ידי צומת פונקציות המפצל את ההודעה בסימן '&' ומגדיר את msg.topic ו- msg.payload. פלט הפונקציה מובא אל צומת הפלט mqtt ששולח את ההודעה לשרת MQTT. שים לב ששדה הנושא של הצומת mqtt ריק, מכיוון שהנושא מוגדר בהודעה.

מוּמלָץ: