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

קן התרמוסטט הישן שלך: 4 שלבים (עם תמונות)
קן התרמוסטט הישן שלך: 4 שלבים (עם תמונות)

וִידֵאוֹ: קן התרמוסטט הישן שלך: 4 שלבים (עם תמונות)

וִידֵאוֹ: קן התרמוסטט הישן שלך: 4 שלבים (עם תמונות)
וִידֵאוֹ: הדור החדש 2024, נוֹבֶמבֶּר
Anonim
Image
Image
כיצד פועל תרמוסטט
כיצד פועל תרמוסטט

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

  • תמחור אסור
  • מוצר כשירות

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

מאפיינים:

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

בקרוב (בדוק כאן לעדכונים)

  • דף הבית של Google
  • לוח שנה של גוגל
  • חיישנים מרובים
  • פקדי רדיאטור
  • שילובי IFTT
  • תמיכה ב- Tasker
  • בקשות
  • מארז שנראה הרבה יותר טוב

שלב 1: כיצד פועל תרמוסטט

כיצד פועל תרמוסטט
כיצד פועל תרמוסטט
כיצד פועל תרמוסטט
כיצד פועל תרמוסטט

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

התרמוסטט של Honeywell הוא יחידה המותקנת על הקיר, מופעלת על ידי החשמל (יסודות Sonoff צריכים 90V דקות, למעגל שלי יש 230V). התיבה מחוברת ליחידת השליטה הראשית (שהיא תיבה מתקדמת יותר) והיא שולחת את האות כאשר הטמפרטורה יורדת מתחת לרמת היעד. למרות שהיחידה שלך עשויה להיות שונה, סביר להניח שהעיקרון זהה. אם יש לך 3 חוטים ואין לך חיבור רדיו בין היחידה המותקנת על הקיר-זו ההדרכה עבורך.

אני יודע איך התרמוסטטים בת 3 החוטים פועלים באופן עקרוני, מה שלא מנע ממני לפוצץ נתיך על ידי קיצור 2 חוטים במקרה! יש לי 3 חוטים המחוברים ליחידה (כשהרביעי הוא כדור הארץ). התרמוסטט של Honeywell שלי אינו אלחוטי, כדי להחליף את האות אני יכול להשתמש ב- Sonoff Basic. הגיע הזמן לפרק אותו ולראות כיצד האות נשלח ליחידה. לאחר בחינה מדוקדקת יותר, הטרמינל מחובר בצורה הבאה:

  1. (כחול) - קרקע
  2. (צהוב) - אות, כאשר מושכים אותו גבוה החימום מופעל
  3. לא בשימוש
  4. (אדום) - החוט החי המשמש למשוך את האות גבוה

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

שלב 2: הכנת Sonoff Basic

הכנת Sonoff Basic
הכנת Sonoff Basic
הכנת Sonoff Basic
הכנת Sonoff Basic
הכנת Sonoff Basic
הכנת Sonoff Basic

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

DHT11 מגיע עם 3 סיכות קוויות: אות - GPIO14Vcc - 3.3VGND - GND

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

Sonoff Tasmota - תרמוסטט Honeywell

INPUT Live - שידור חי מסוף רביעי

INPUT GND - GND מסוף ראשון

אות OUTPUT - אות מסוף 2

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

שלב 3: NodeRED

NodeRED
NodeRED
NodeRED
NodeRED
NodeRED
NodeRED

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

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

זרם טמפרטורה

DHT11 מדווח כל X שניות בחזרה לשרת NodeRED. הגדלתי את התדירות הזו דרך הקונסולה של הטסמוטה. פשוט הפעל את הפקודה כדי להגדיר את התדירות בשניות:

תקופת הטלמטריה TelePeriod Set בין 10 ל 3600 שניות

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

sonoff/tele/SENSOR

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

msg.payload. DHT11. טמפרטורה msg.payload. DHT11. לחות

כדי להגביל את השגיאות, הוספתי את הצומת החלקה לממוצע התוצאות ועדכנתי את משתנה הזרימה: NodeRED:

צומת פונקציות - עדכן את 'TempAmbient'

flow.set ('TempAmbient', msg.payload. DHT11. Temperature);

עדכון ווידג'ט

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

כל צומת תואם שולח את המטען עם הנושא שהוקצה לווידג'ט הדומה לקן.

  • צבע (חימום | קירור*| כבוי & hvac_state)
  • עלה (true | false & has_leaf)
  • משם (נכון | שקר והרחק)
  • טמפרטורת הסביבה (מספר וטמפרטורת הסביבה)
  • טמפ 'יעד (מספר וטמפרטורת יעד)

*לא בשימוש

NodeRED: צומת פונקציות - עדכון ווידג'ט

צֶבַע

x = flow.get ('TempTarget'); // targetz = flow.get ('TempAmbient'); // אווירה

אם (z = x) {

flow.set ('heatingState', 'off'); flow.set ('heatingSwitch', "OFF"); } msg.payload = z; msg.topic = "טמפרטורת הסביבה"; מסר החזרה;

עלה

x = flow.get ('TempAmbient'); אם (x> 17 && x <23) {flow.set ('עלה', נכון); msg.payload = true; msg.topic = "has_leaf"; מסר החזרה; } אחר {flow.set ('עלה', שקר); msg.payload = false; msg.topic = "has_leaf"; מסר החזרה; }

ביטול הצבע

x = flow.get ('משם'); if (x === true) {msg.topic = "hvac_state"; msg.payload = "כבוי"; מסר החזרה; }

msg.topic = "hvac_state";

msg.payload = flow.get ('heatingState');

מסר החזרה;

רָחוֹק

x = flow.get ('משם'); אם (x === true) {flow.set ('heatingSwitch', "OFF"); flow.set ('heatingState', 'off'); }

msg.topic = "משם";

msg.payload = flow.get ('משם'); מסר החזרה;

טמפ 'יעד

if (msg.topic === "עדכון") {msg.topic = "target_temperature"; msg.payload = flow.get ('TempTarget'); מסר החזרה; }

if (msg.command === "SetTargetTemperatureRequest") {

flow.set ('משם', שקר); msg.topic = "יעד_טמפרטורה"; flow.set ('TempTarget', msg.payload); }

if (msg.topic === "מחוון") {

flow.set ('משם', שקר); msg.topic = "יעד_טמפרטורה"; flow.set ('TempTarget', msg.payload); }

if (msg.command === "GetTemperatureReadingRequest") {}

מסר החזרה;

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

  • 'TempAmbinet' - שומר את הטמפ 'הנוכחית
  • 'TempTarget' - מחזיק את ערך המטרה הזמני
  • 'עלה' - מציג עלה במידת הצורך
  • 'משם' - מציג סטטוס חוץ במידת הצורך
  • 'חימום סטייט' - משנה את צבע התצוגה
  • 'HeatingSwitch' - שולט על מצב הממסר.

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

מחוון

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

NodeRED: צומת פונקציה - מחוון עדכון '

msg.payload = flow.get ('TempTarget'); החזר הודעה;

בקרת ממסר

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

הממסר מחובר באמצעות MQTT. הצומת מפרסם פקודות ON | OFF לנושא:

sonoff/cmnd/POWER1

צומת הפונקציה מקבל את ה- true | false מאלקסה וגם משנה את מצב הקלט בהתאם למשתנה הזרימה 'heatSwitch'.

NodeRED: צומת פונקציה - ממסר בקרה '

if (msg.command === "TurnOffRequest") {msg.payload = "כבוי"; מסר החזרה; }

if (msg.command === "TurnOnRequest") {

msg.payload = "מופעל"; flow.set ('TempTarget', 21); מסר החזרה; } if (msg.topic === "עדכון") {msg.payload = flow.get ('heatingSwitch'); } החזר הודעה;

שילוב Alexa

זהו המכשיר הראשון שהייתי צריך לכבות את "אישור אוטומטי". במקום להניח תגובה אוטומטית יצרתי תגובה כשאני רוצה את היכולת לבדוק את הטמפרטורה שנקבעה. באופן עקרוני, msg.payload = true | false מציין אם הבקשה הצליחה והתבניות שנמצאו כאן מבצעות את כל השאר. אם אתה חדש ב- Alexa וב- NodeRed, הקפד לקרוא זאת.

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

NodeRED: צומת פונקציות - עיבוד תגובות של אלקסה

// מהי טמפרטורת היעד של התרמוסטט אם (msg.command === "GetTemperatureReadingRequest") {x = flow.get ('TempTarget'); msg.extra = {"temperatureReading": {"value": x}, "deviceResponseTimestamp": תאריך חדש (). toISOString ()}; msg.payload = true; מסר החזרה; } // הגדר את הטמפרטורה ל (לא נמוך מ -10 או יותר מ -30) אם (msg.command === "SetTargetTemperatureRequest") {if (msg.payload 30) {var range = {min: 10.0, max: 30.0} msg.payload = false; msg.extra = טווח; } אחר {msg.extra = {targetTemperature: {value: msg.payload}}; msg.payload = true; } החזר הודעה; } // הפעל אותו אם (msg.command === "TurnOnRequest") {msg.payload = true; flow.set ('משם', שקר); flow.set ('TempTarget', 21); מסר החזרה; } // כבה אותו אם (msg.command === "TurnOffRequest") {msg.payload = true; flow.set ('משם', נכון); מסר החזרה;

שלב 4: מסקנה

סיכום
סיכום

אם אתה חושף את לוח המחוונים של NodeRED ל- WAN ניתן לשלוט על כל מערכת החימום מרחוק. אני ממליץ לך לקרוא את המאמרים הבאים כדי להתעדכן באבטחת NodeRED ו- NodeRED.

  • NodeRED למתחילים
  • אבטחת NodeRED

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

  • פייסבוק
  • טוויטר
  • אינסטגרם
  • יוטיוב תהיה

ואם בא לך לקנות לי קפה או לתמוך בי בצורה רציפה יותר:

  • Paypal
  • פטריון

אני מקווה שנהניתם מהפרויקט!

מוּמלָץ: