فهرست مطالب:

NEST ترموستات قدیمی خود را: 4 مرحله (همراه با تصاویر)
NEST ترموستات قدیمی خود را: 4 مرحله (همراه با تصاویر)

تصویری: NEST ترموستات قدیمی خود را: 4 مرحله (همراه با تصاویر)

تصویری: NEST ترموستات قدیمی خود را: 4 مرحله (همراه با تصاویر)
تصویری: 🐲 Thea 2 - تناسخ من شماره 4 به عنوان یک عنکبوت 🔥 2024, جولای
Anonim
Image
Image
نحوه عملکرد ترموستات
نحوه عملکرد ترموستات

سیستم گرمایش خانه من احتمالاً به اندازه خود خانه قدیمی است. حدود 30 سال سن دارد ، که از نظر سالهای خانه خوب است ، اما از نظر فناوری در عصر یخبندان گیر کرده است. 2 مشکل اصلی در مورد راه حل های تجاری وجود دارد:

  • قیمت گذاری ممنوع
  • محصول به عنوان خدمات

همه ما به یاد داریم که چه اتفاقی برای Revolv افتاد و من خیلی مشتاق نیستم که این اتفاق در وسط زمستان برای من بیفتد. با در نظر گرفتن این ، به شما یک کنترلر فوق العاده مشکوک اما عملکردی NEST-Alike برای ترموستات قدیمی خود ارائه می دهم. نگران نباشید ، من در حال برنامه ریزی برای یک محفظه بسیار بهتر هستم که به زودی اضافه شود!

امکانات:

  • توانایی استفاده از ترموستات موجود (در صورت نالیدن همسر در مورد آن)
  • دسترسی از راه دور
  • حالت AWAY
  • شاخص دمای مطلوب
  • با الکسا کار می کند

به زودی (برای به روز رسانی اینجا را بررسی کنید)

  • Google Home
  • تقویم گوگل
  • چند سنسور
  • کنترل های رادیاتور
  • ادغام IFTT
  • پشتیبانی Tasker
  • درخواست های
  • محوطه ای با ظاهر بسیار بهتر

مرحله 1: نحوه عملکرد ترموستات

نحوه عملکرد ترموستات
نحوه عملکرد ترموستات
نحوه عملکرد ترموستات
نحوه عملکرد ترموستات

ترموستات به احتمال زیاد به ولتاژ بالا متصل است! هیچ کاری را انجام ندهید مگر اینکه مطمئن شوید مدار خاموش است. می توانید به خودتان آسیب برسانید و به تجهیزات متصل آسیب وارد کنید. برای اطمینان از ایمنی خود با یک متخصص برق واجد شرایط مشورت کنید

ترموستات هانیول یک واحد دیواری است که از برق تغذیه می کند (اصول اولیه Sonoff به حداقل 90 ولت نیاز دارد ، مدار من 230 ولت است). جعبه به واحد کنترل اصلی (که جعبه پیشرفته تری است) متصل است و هنگامی که دما به زیر سطح مورد نظر می رسد سیگنال ارسال می کند. در حالی که واحد شما ممکن است متفاوت باشد ، به احتمال زیاد اصل یکسان است. اگر 3 سیم دارید و هیچ اتصال رادیویی بین دستگاه دیواری ندارید-این آموزش برای شماست.

من می دانم که ترموستات های 3 سیمه چگونه کار می کنند ، که من را از ضربه زدن فیوز با کوتاه شدن 2 سیم به طور تصادفی باز نداشت! من 3 سیم به واحد وصل کرده ام (4 ام زمین است). ترموستات 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 را به Sonoff متصل کرده و آن را برای گزارش دما تنظیم کنید.

DHT11 دارای 3 پین سیمی است: سیگنال - GPIO14Vcc - 3.3VGND - GND

من یک سوراخ ایجاد کردم ، من از ظاهر آن ناراحت نیستم ، تنها چیزی که نیاز دارم اثبات مفهوم و تأیید است. وقتی چاپگر سه بعدی من رسید ، یک محفظه زیبا و براق ایجاد خواهم کرد. من به نحوه سیم کشی Sonoff توجه بیشتری کردم ، زیرا باید مطمئن شوم که سیم زنده به سیم سیگنال در انتهای دیگر دستگاه Sonoff متصل می شود. واحد Honeywell دارای مقاومت بار (R) ساخته شده در داخل است که جریان را محدود می کند. در حالی که مدار توسط فیوز 3A محافظت می شود ، هوشمند است که با همان مقاومت برای محافظت بیشتر مطابقت داشته باشد. هنگامی که سیم ها را آماده کردم ، وقت آن رسیده بود که برق اصلی را خاموش کرده و Sonoff را به عقب وصل کنید.

Sonoff Tasmota - ترموستات هانیول

INPUT Live - چهارمین پایانه زنده

GND ورودی - GND ترمینال اول

سیگنال خروجی - سیگنال پایانه دوم

قبلاً اشاره کردم که فعلاً ، روی ظاهر آن تأکید نمی کنم. همسر متقاعد شده است و من می توانم روی عملکرد و رفع اشکالات احتمالی تمرکز کنم. نکته خوب این است که ترموستات اصلی هنوز کار می کند. اگر آن را روشن کنم ، آن را بر اساس Sonoff Tasmota بر اساس یکی. این باید پشتیبان بزرگی برای هرگونه اتفاق غیر منتظره باشد.

مرحله 3: NodeRED

NodeRED
NodeRED
NodeRED
NodeRED
NodeRED
NodeRED

لطفاً توجه داشته باشید که ممکن است ویدئو حاوی منابع قدیمی NodeRed باشد ، من دائماً روی بهبود طراحی کار می کنم. این تغییرات کوچک هستند و فایل های مقاله به روز هستند

من به صورت آنلاین با این طرح برخورد کردم. به نظر می رسد عالی است ، اما با بازرسی دقیق ، ویجت واقعاً برای NodeRED مناسب نیست. برای تنظیم نیاز به 5 بار بار دارد ، اما طراحی گره به این صورت نیست. مدتی طول کشید تا بتوانم بهترین روش انتقال همه این اطلاعات را برای به روزرسانی ویجت و کارکردن آن پیدا کنم. مطمئن هستم که با گذشت زمان زمان بیشتری را صرف طراحی خواهم کرد تا بتوانم تمام به روزرسانی های مورد نیاز را با یک شیء msg واحد فشار دهم. فعلا همان چیزی است که هست.

جریان دما

DHT11 هر X ثانیه به سرور NodeRED گزارش می دهد. من این فرکانس را از طریق کنسول Tasmota افزایش دادم. فقط کافی است فرمان را برای تنظیم فرکانس در ثانیه اجرا کنید:

TelePeriod دوره دورسنجی را بین 10 تا 3600 ثانیه تنظیم کنید

این بیشتر برای آزمایش انجام می شود ، زیرا نمی خواهم چند دقیقه منتظر بمانم تا ببینم رفع اشکال من کار کرده است یا خیر. بالا نگه داشتن فرکانس باعث می شود که گرمایش بیشتر در مدت زمان کوتاه تری آتش بگیرد ، بنابراین برای غیر از آزمایش ، از تنظیم آن روی 10 ثانیه خودداری کنید. گره MQTT داده ها را از موارد زیر می گیرد:

sonoff/tele/SENSOR

و مفیدترین داده ها را در اشیاء زیر ذخیره می کند:

msg.payload. DHT11. Temperature msg.payload. DHT11. Humidity

برای محدود کردن خطاها ، گره صاف را به میانگین نتایج اضافه کردم و متغیر جریان را به روز کردم: NodeRED:

تابع گره - TempAmbient را به روز کنید

flow.set ('TempAmbient'، msg.payload. DHT11. Temperature)؛ بازگشت msg؛

به روز رسانی ویجت

من تصمیم گرفتم که 5 ثانیه یک نرخ تازه سازی خوب است ، بنابراین من تمام مقادیر مورد نیاز را با این فرکانس فشار می دهم. تنها استثنا اسلایدر است ، که به دلایل واضح فوراً پاسخ می دهد.

هر گره مربوطه محموله با موضوع اختصاص داده شده را به ویجت آشیانه ارسال می کند.

  • رنگ (گرمایش | سرمایش*| خاموش & وضعیت hvac_state)
  • برگ (true | false & has_leaf)
  • دور (درست | غلط و دور)
  • دمای محیط (تعداد و دمای محیط)
  • دمای هدف (تعداد و درجه حرارت)

*بلااستفاده

NodeRED: گره عملکرد - به روز رسانی ویجت

رنگ

x = flow.get ('TempTarget') ؛ // targetz = flow.get ('TempAmbient')؛ // محیطی

اگر (z = x) {

flow.set ('heatState' ، "off") ؛ flow.set ('heatSwitch' ، "OFF") ؛ } msg.payload = z؛ msg.topic = "دمای_محیط"؛ بازگشت msg؛

برگ

x = flow.get ('TempAmbient') ؛ if (x> 17 && x <23) {flow.set ("برگ" ، درست) ؛ msg.payload = true؛ msg.topic = "has_leaf"؛ بازگشت msg؛ } else {flow.set ("برگ" ، غلط) ؛ msg.payload = false؛ msg.topic = "has_leaf"؛ بازگشت msg؛ }

نادیده گرفتن رنگ

x = flow.get ('دور') ؛ if (x === true) {msg.topic = "hvac_state"؛ msg.payload = "خاموش"؛ بازگشت msg؛ }

msg.topic = "hvac_state"؛

msg.payload = flow.get ('heatState')؛

بازگشت msg؛

دور

x = flow.get ('دور') ؛ if (x === true) {flow.set ('heatSwitch' ، "OFF") ؛ flow.set ('heatState' ، "off") ؛ }

msg.topic = "دور"؛

msg.payload = flow.get ('away')؛ بازگشت msg؛

دمای هدف

if (msg.topic === "بروز رسانی") {msg.topic = "target_temperature"؛ msg.payload = flow.get ('TempTarget')؛ بازگشت msg؛ }

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

flow.set ('دور' ، نادرست)؛ msg.topic = "target_temperature"؛ flow.set ('TempTarget'، msg.payload)؛ }

if (msg.topic === "slider") {

flow.set ('دور' ، نادرست)؛ msg.topic = "target_temperature"؛ flow.set ('TempTarget'، msg.payload)؛ }

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

بازگشت msg؛

همانطور که می بینید ، من متغیرهای جریان را انتخاب کردم ، بنابراین می توانم مقدار را در هر زمان به خاطر بیاورم. من یک جریان اشکال زدایی دارم که اساساً تمام مقادیر ذخیره شده را می خواند.

  • "TempAmbinet" - دمای فعلی را ذخیره می کند
  • "TempTarget" - مقدار هدف temp را نگه می دارد
  • "برگ" - در صورت نیاز برگ را نمایش می دهد
  • "دور" - در صورت نیاز وضعیت دور را نمایش می دهد
  • 'heatState' - رنگ صفحه نمایش را تغییر می دهد
  • "heatSwitch" - وضعیت رله را کنترل می کند.

چالش این بود که در واقع اطمینان حاصل شود که اطلاعات در "به روز رسانی" و در صورت درخواست از طریق سایر ابزارها (الکسا ، و غیره) به روز می شوند. به همین دلیل است که شرایط متفاوتی را در جاوا اسکریپت مشاهده خواهید کرد. هر بار که مقادیر به روز می شوند ، به متغیر جریان ارسال می شوند و ویجت تازه می شود.

لغزنده

آزمایش نشان داد که یک نوار لغزنده اضافی (لغزنده دمای مورد نظر را فشار می دهد) مورد نیاز است. لغزنده هنگام حمل بار (شماره) را با موضوع مرتبط "لغزنده" ارسال می کند. علاوه بر این ، من می خواهم در صورت وجود چندین رابط وب ، لغزنده به موقعیت صحیح برسد. برای انجام این کار ، هر 5 ثانیه من به سادگی موقعیت لغزنده را به دمای هدف فعلی به روز می کنم.

NodeRED: تابع گره - نوار لغزنده به روز رسانی '

msg.payload = flow.get ('TempTarget') ؛ بازگشت msg؛

کنترل رله

کنترل کننده رله ساده است (در حال حاضر) دو ورودی طول می کشد. Alexa's true | false و تعاملی که به دنبال به روزرسانی متغیر جریان "Switch heat" رخ می دهد. نیازی به اقدام فوری نیست ، بنابراین برای سادگی ، با همان فرکانس 5 ثانیه به روز رسانی بقیه جریان اجرا می شود.

رله از طریق MQTT متصل می شود. Node دستورات ON | OFF را به موضوع ارسال می کند:

sonoff/cmnd/POWER1

گره تابع true | false را از Alexa می پذیرد و همچنین وضعیت ورودی را با توجه به متغیر جریان "heatSwitch" تغییر می دهد.

NodeRED: گره عملکرد - رله کنترل '

if (msg.command === "TurnOffRequest") {msg.payload = "خاموش"؛ بازگشت msg؛ }

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

msg.payload = "روشن"؛ flow.set ('TempTarget' ، 21) ؛ بازگشت msg؛ } if (msg.topic === "بروز رسانی") {msg.payload = flow.get ('heatSwitch')؛ } بازگشت msg؛

یکپارچه سازی الکسا

این اولین دستگاهی است که برای خاموش کردن "تشخیص خودکار" مجبور شدم. به جای فرض به طور خودکار یک پاسخ ، من همانطور که می خواهم توانایی پرس و جو از دمای تنظیم شده را ایجاد کنم. در اصل ، msg.payload = true | false نشان می دهد که درخواست موفقیت آمیز بوده است ، و الگوهای موجود در اینجا بقیه را انجام می دهند. اگر با Alexa و NodeRed تازه کار هستید ، این مطلب را حتما بخوانید.

تصمیم گرفتم تائیدیه ها را جداگانه ارسال کنم (می دانم که این بهترین راه نیست) تا بتوانم همه چیز را کمی بهتر کنترل کنم. به درستی هر پاسخ باید در انتهای زنجیره فرمان داده شود. در صورت وقوع این خطا ، خط من خطری بر نمی گرداند. توجه داشته باشید که برای سازگاری ، فقط متغیرها را به روز می کنم ، در حالی که حلقه تازه سازی ، مقادیر جدید را به ویجت منتقل می کند.

NodeRED: Function Node - Process Alexa Responses '

// درجه حرارت موردنظر ترموستات (msg.command === "GetTemperatureReadingRequest") {x = flow.get ('TempTarget') ؛ msg.extra = {"temperatureReading": {"value": x}، "applianceResponseTimestamp": تاریخ جدید (). toISOString ()}؛ msg.payload = true؛ بازگشت msg؛ } // اگر (msg.command === "SetTargetTemperatureRequest") {if (msg.payload 30) {var range = {min: 10.0 ، max: 30.0} دما را روی (کمتر از 10 یا بیشتر از 30) تنظیم نکنید (msg.payload = false؛ msg.extra = محدوده؛ } else {msg.extra = {targetTemperature: {value: msg.payload}}؛ msg.payload = true؛ } بازگشت msg؛ } // اگر (msg.command === "TurnOnRequest") {msg.payload = true را روشن کنید ؛ flow.set ('دور' ، نادرست)؛ flow.set ('TempTarget' ، 21) ؛ بازگشت msg؛ } // آن را خاموش کنید اگر (msg.command === "TurnOffRequest") {msg.payload = true؛ flow.set ('دور' ، true)؛ بازگشت msg؛

مرحله 4: نتیجه گیری

نتیجه
نتیجه

اگر داشبورد NodeRED را در معرض WAN قرار دهید ، می توانید تمام سیستم گرمایش را از راه دور کنترل کنید. توصیه می کنم مقاله های زیر را بخوانید تا با امنیت NodeRED و NodeRED سرعت بیشتری بگیرید.

  • NodeRED برای مبتدیان
  • امنیت NodeRED

علاوه بر این ، اگر می خواهید در مورد به روزرسانی های این پروژه مطلع شوید - در پلت فرم دلخواه خود مرا دنبال کنید:

  • فیس بوک
  • توییتر
  • اینستاگرام
  • یوتو باشید

و اگر احساس می کنید برای من قهوه می خرید یا به صورت مداوم از من حمایت می کنید:

  • پی پال
  • پترون

امیدوارم از پروژه لذت برده باشید!

توصیه شده: