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

בקרת מיטת מיטה אלחוטית MQTT: 5 שלבים (עם תמונות)
בקרת מיטת מיטה אלחוטית MQTT: 5 שלבים (עם תמונות)

וִידֵאוֹ: בקרת מיטת מיטה אלחוטית MQTT: 5 שלבים (עם תמונות)

וִידֵאוֹ: בקרת מיטת מיטה אלחוטית MQTT: 5 שלבים (עם תמונות)
וִידֵאוֹ: אייל גולן, אני קורא לך! 2024, יולי
Anonim
בקרת ראש מיטה אלחוטית MQTT
בקרת ראש מיטה אלחוטית MQTT
בקרת ראש מיטה אלחוטית MQTT
בקרת ראש מיטה אלחוטית MQTT

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

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

אתה מקבל את מה שאתה משלם עבורו

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

שוב, אף אחד לא היה מעוניין למכור לנו מחליפים. ואז זה היכה בי!

חכה רגע! אני לא בונה מערכת אוטומציה ובקרה ביתית?!?

שלב 1: גילוי

תַגלִית
תַגלִית
תַגלִית
תַגלִית

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

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

שלב 2: עיצוב

לְעַצֵב
לְעַצֵב
לְעַצֵב
לְעַצֵב
לְעַצֵב
לְעַצֵב
לְעַצֵב
לְעַצֵב

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

המיטה תהיה ספק הכוח של הבקר וכדי להתמודד עם 12 וולט שסופק, נצטרך ממיר באק משתנה. אחד זול מאוד נקשר למטה ועובד יפה. קווי 12V וקווי GND מתחברים לצד הכניסה של הממיר והצד ה -5 וולט המוסדר מתחבר ל- VCC של ה- NodeMCU ולסיכת VCC במודול הממסר. הקרקע (-) בממיר מתחברת לסיכות ה- GND ב- גם מודול הממסר וגם ה- NodeMCU.

ה- NodeMCU מתחבר ל- IN1 באמצעות D1 (GPIO5) ו- IN2 באמצעות D2 (GPIO4). קו האות למעלה במיטה מתחבר למסוף הבורג הפתוח בדרך כלל עבור ממסר 1 וקו האות למטה מתחבר למחבר בלוק מסוף פתוח בדרך כלל. יהיה עליך לחבר את חוט 12V המחובר לצד הכניסה של ממיר הכסף גם לחיבור בלוק הטרמינל השני עבור ממסר שני ו -2.

חלקים

  • 1 - NodeMCU
  • 1 - מודול ממסר דו קרב עם בידוד הנוכחי
  • 1 - ממיר קלט/פלט משתנה
  • 1 - לוח PCB
  • חוט ליבת נחושת תקוע 22 מד
  • 2 - ברגים M3x 8

שלב 3: מארז

קַרפִּיף
קַרפִּיף

ניתן למצוא את המתחם כאן:

עיצבתי מארז פשוט עם Tinkercad המאפשר כבל בקרת המיטה להיכנס לקופסה בין סוגריים להקלת מתח במארז. יש כאן חריצים לקשירת רוכסן שיעזרו למנוע מהכבל להחליק אבל במקרה שלי ההתאמה הייתה צמודה מאוד ולא הייתה צריכה אותה. המכסה מוברג עם 2 ברגים M3x 8. אני ממליץ להעלות את הקוד ולבדוק את המערכת לפני שתתקין אותו בקופסה.

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

שלב 4: קוד

הקוד ניתן למצוא כאן:

הערה: פרויקט זה משתמש בספריית pubsubclient הניתנת להוספה במנהל הספרייה ב- Arduino IDE

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

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

בקוד שלי, פסק הזמן הזה הוא 20 שניות וניתן להתאים אותו בבלוק המשתנה הגלובלי בראש הקוד.

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

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

שלב 5: דוגמה לשילוב

שילוב לדוגמא
שילוב לדוגמא
שילוב לדוגמא
שילוב לדוגמא

הקוד שכתבתי משתמש ב- MQTT כדי לתקשר באמצעות WiFi ולכן יכול לתקשר עם כל רכזת אוטומציה או מכשיר שמשתמש ב- MQTT. אני משתמש בעוזר הבית הכולל מתווך MQTT מובנה. להלן דוגמה לתצורת ה- HA שלי.

ב- HA יש לי קובץ covers.yaml עם ההגדרה הבאה:

- פלטפורמה: mqtt

name: "Headboard headboard" command_topic: "master_bed_control/cmd" availability_topic: "master_bed_control/availability" qos: 0 behold: false payload_open: "UP" payload_close: "DOWN" payload_stop: "STOP" payload_available: "מקוון" payload_not_available: " לא מקוון "אופטימי: נכון

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

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

- פלטפורמה: mqtt

state_topic: "bedside_cp1/button5" שם: "סמל CP1 כפתור 5 ליד המיטה": mdi: מעגל

- פלטפורמה: mqtt

state_topic: "bedside_cp1/button6" שם: "סמל CP1 כפתור 6 ליד המיטה: mdi: מעגל

… ו -4 כללי אוטומציה כאשר לוחצים על כל כפתור ומשחררים אותו. כאשר לוחצים עליה, הפקודה למעלה או למטה נשלחת למיטה בהתאם לאיזה כפתור הופעל, כאשר הכפתור משוחרר נשלחת פקודת העצירה:

- מזהה: '1548308650383'

כינוי: MBR Bedside CP לחצן 5a טריגר: - entity_id: sensor.bedside_cp1_button_5 מאת: 'Off' פלטפורמה: מצב ל-: 'On' condition: פעולה: - data: entity_id: 'cover.master_bed_headboard' שירות: cover.open_cover - מזהה: '1548308758911' כינוי: MBR מיטת CP CPT 5b trigger: - entity_id: sensor.bedside_cp1_button_5 מאת: 'On' platform: state to: 'Off' condition: action: - data: entity_id: 'cover.master_bed_headboard' service: cover.stop_cover - id: '1548308863495' כינוי: MBR כפתור CP ליד המיטה 6a טריגר: - entity_id: sensor.bedside_cp1_button_6 מ: 'Off' פלטפורמה: state to: 'On' condition: action: - data: entity_id: ' cover.master_bed_headboard 'service: cover.close_cover - id:' 1548308911467 'כינוי: MBR Bed Button CP Butt 6b trigger: - entity_id: sensor.bedside_cp1_button_6 from:' On 'platform: state to:' Off 'condition: action: - data: entity_id: 'cover.master_bed_headboard' שירות: cover.stop_cover

מוּמלָץ: