جدول المحتويات:

عش منظم الحرارة القديم: 4 خطوات (بالصور)
عش منظم الحرارة القديم: 4 خطوات (بالصور)

فيديو: عش منظم الحرارة القديم: 4 خطوات (بالصور)

فيديو: عش منظم الحرارة القديم: 4 خطوات (بالصور)
فيديو: 4 مقاطع مرعبة صورتها عدسات الكاميرا على التلفاز مباشرة !! 2024, شهر نوفمبر
Anonim
Image
Image
كيف يعمل الترموستات
كيف يعمل الترموستات

ربما يكون نظام التدفئة في منزلي قديمًا قدم المنزل نفسه. يبلغ عمره حوالي 30 عامًا ، وهو أمر جيد من حيث سنوات المنزل ، ولكنه عالق إلى حد كبير في العصر الجليدي فيما يتعلق بالتكنولوجيا. هناك مشكلتان رئيسيتان في الحلول التجارية:

  • التسعير الباهظ
  • المنتج كخدمة

نتذكر جميعًا ما حدث لـ Revolv ولست حريصًا جدًا على حدوث هذا لي في منتصف الشتاء. مع وضع ذلك في الاعتبار ، أقدم لك وحدة تحكم NEST-Alike ذات المظهر المريب بشكل لا يصدق ولكنها وظيفية للثرموستات القديم. لا تقلق ، أنا أخطط لإضافة حاوية أفضل بكثير قريبًا!

سمات:

  • القدرة على استخدام منظم الحرارة الموجود (في حالة اشتكيت الزوجة من ذلك)
  • الوصول عن بعد
  • وضع AWAY
  • مؤشر درجة الحرارة المثلى
  • يعمل مع Alexa

قريبًا (تحقق هنا من أجل التحديثات)

  • صفحة Google الرئيسية
  • تقويم جوجل
  • أجهزة استشعار متعددة
  • ضوابط المبرد
  • تكامل IFTT
  • دعم تاسكر
  • طلبات
  • حاوية تبدو أفضل بكثير

الخطوة 1: كيف يعمل منظم الحرارة

كيف يعمل الترموستات
كيف يعمل الترموستات
كيف يعمل الترموستات
كيف يعمل الترموستات

من المحتمل أن يكون منظم الحرارة متصلًا بالجهد العالي! لا تحاول القيام بأي شيء إلا إذا تأكدت من إيقاف تشغيل الدائرة. يمكنك إلحاق الضرر بنفسك وإلحاق الضرر بالجهاز المتصل. ضع في اعتبارك استشارة كهربائي مؤهل لضمان سلامتك

ترموستات هانيويل هو وحدة مثبتة على الحائط ، يتم تشغيلها بواسطة التيار الكهربائي (تحتاج أساسيات Sonoff إلى 90 فولت كحد أدنى ، ودائرة كهربائية بها 230 فولت). الصندوق متصل بوحدة التحكم الرئيسية (وهو صندوق أكثر تقدمًا) ويرسل الإشارة عندما تنخفض درجة الحرارة عن المستوى المستهدف. في حين أن وحدتك قد تكون مختلفة ، إلا أن المبدأ هو نفسه على الأرجح. إذا كان لديك 3 أسلاك ولا يوجد اتصال لاسلكي بين الوحدة المثبتة على الحائط - فهذا هو البرنامج التعليمي المناسب لك.

أعرف كيف تعمل منظمات الحرارة ثلاثية الأسلاك من حيث المبدأ ، والتي لم تمنعني من تفجير فتيل عن طريق تقصير سلكين عن طريق الصدفة! لدي 3 أسلاك متصلة بالوحدة (مع كون الرابع هو الأرض). ترموستات هانيويل ليس لاسلكيًا ، لذا لتبديل الإشارة ، يمكنني استخدام 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 مزودًا بثلاثة دبابيس سلكية: الإشارة - GPIO14Vcc - 3.3VGND - GND

لقد أحدثت ثقبًا ، لست منزعجًا من الشكل الذي تبدو عليه الآن ، كل ما أحتاجه هو إثبات المفهوم والتحقق من صحته. سأصنع غلافًا لطيفًا ولامعًا بمجرد وصول الطابعة ثلاثية الأبعاد. لقد أولت اهتمامًا إضافيًا لكيفية توصيل Sonoff ، حيث يتعين علي التأكد من أن السلك المباشر يتصل بسلك الإشارة على الطرف الآخر من جهاز Sonoff. تحتوي وحدة هانيويل على مقاوم الحمل (R) مبني بداخله مما يحد من التيار. في حين أن الدائرة محمية بواسطة فتيل 3A ، فمن الذكاء أن تتطابق مع نفس المقاومة لتوفير حماية إضافية. بمجرد أن أصبحت الأسلاك جاهزة ، فقد حان الوقت لإيقاف تشغيل الطاقة الرئيسية وإعادة توصيل Sonoff.

سونوف تاسموتا - ترموستات هانيويل

INPUT Live - المحطة الرابعة مباشرة

مدخلات GND - المحطة الأولى GND

إشارة الإخراج - الإشارة الطرفية الثانية

لقد ذكرت من قبل ذلك في الوقت الحالي ، لن أؤكد على مظهر هذا. اقتنعت الزوجة ويمكنني التركيز على الوظيفة وإزالة أي أخطاء قد تحدث. الشيء الجيد هو أن منظم الحرارة الأصلي لا يزال يعمل. إذا قمت برفعها ، فستتجاوز تلك القائمة على Sonoff Tasmota. يجب أن يكون هذا نسخة احتياطية رائعة لأي أحداث غير متوقعة.

الخطوة 3: NodeRED

NodeRED
NodeRED
NodeRED
NodeRED
NodeRED
NodeRED

يرجى ملاحظة أن الفيديو قد يحتوي على مراجع NodeRed قديمة ، وأنا أعمل باستمرار على تحسين التصميم. هذه تغييرات صغيرة ويتم تحديث ملفات المقالات

جئت عبر هذا التصميم عبر الإنترنت. يبدو الأمر رائعًا ، ولكن عند الفحص الدقيق ، فإن الأداة ليست مناسبة حقًا لـ NodeRED. يحتاج إلى 5 حمولات ليتم تعيينها ، وهي ليست الطريقة التي يعمل بها تصميم العقدة على حد سواء. استغرق الأمر مني بعض الوقت لاكتشاف أفضل طريقة لتمرير كل هذه المعلومات لتحديث عنصر واجهة المستخدم وإبقائه وظيفيًا. أنا متأكد من أنه بمرور الوقت سأقضي المزيد من الوقت في التصميم حتى أتمكن من دفع جميع التحديثات المطلوبة باستخدام كائن رسالة واحد. في الوقت الحالي ، هذا ما هو عليه.

تيار درجة الحرارة

تقارير DHT11 كل X ثانية تعود إلى خادم NodeRED. لقد قمت بزيادة هذا التردد من خلال وحدة تحكم Tasmota. ما عليك سوى تشغيل الأمر لتعيين التردد في ثوانٍ:

TelePeriod Set فترة القياس عن بعد بين 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)
  • ورقة (صواب | خطأ و has_leaf)
  • بعيد (صح | خطأ & بعيد)
  • درجة الحرارة المحيطة (العدد ودرجة الحرارة المحيطة)
  • درجة الحرارة المستهدفة (عدد ودرجة الحرارة الهدف)

*غير مستخدم

NodeRED: عقدة الوظيفة - تحديث القطعة

لون

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

إذا (ض = س) {

flow.set ("حالة التسخين" ، "إيقاف") ؛ flow.set ('heatSwitch'، "OFF") ؛ } msg.payload = z ؛ msg.topic = "ambient_temperature" ؛ عودة الرسالة ؛

ورقة الشجر

x = flow.get ('TempAmbient') ؛ if (x> 17 && x <23) {flow.set ('leaf'، true)؛ msg.payload = صحيح ؛ msg.topic = "has_leaf" ؛ عودة الرسالة ؛ } else {flow.set ('leaf'، false)؛ msg.payload = خطأ ؛ msg.topic = "has_leaf" ؛ عودة الرسالة ؛ }

تجاوز اللون بعيدًا

x = flow.get ('away') ؛ إذا (x === صحيح) {msg.topic = "hvac_state" ؛ msg.payload = "off" ؛ عودة الرسالة ؛ }

msg.topic = "hvac_state" ؛

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

عودة الرسالة ؛

بعيدا

x = flow.get ('away') ؛ إذا (x === صحيح) {flow.set ('HeatingSwitch'، "OFF") ؛ flow.set ("حالة التسخين" ، "إيقاف") ؛ }

msg.topic = "بعيدًا" ؛

msg.payload = flow.get ('away') ؛ عودة الرسالة ؛

الهدف درجة الحرارة

إذا (msg.topic === "تحديث") {msg.topic = "target_temperature"؛ msg.payload = flow.get ('TempTarget') ؛ عودة الرسالة ؛ }

إذا (msg.command === "SetTargetTemperatureRequest") {

flow.set ("بعيد" ، خطأ) ؛ msg.topic = "target_temperature" ؛ flow.set ('TempTarget'، msg.payload) ؛ }

إذا (msg.topic === "شريط التمرير") {

flow.set ("بعيد" ، خطأ) ؛ msg.topic = "target_temperature" ؛ flow.set ('TempTarget'، msg.payload) ؛ }

إذا (msg.command === "GetTemperatureReadingRequest") {}

عودة الرسالة ؛

كما ترى ، اخترت متغيرات التدفق ، لذا يمكنني تذكر القيمة في أي وقت. لدي تدفق تصحيح يقرأ بشكل أساسي جميع القيم المخزنة.

  • "TempAmbinet" - يخزن درجة الحرارة الحالية
  • "TempTarget" - يحمل قيمة الهدف المؤقت
  • "ورقة" - يعرض ورقة إذا لزم الأمر
  • "بعيد" - يعرض الحالة بعيدًا إذا لزم الأمر
  • "heatState" - يغير لون الشاشة
  • "heatSwitch" - يتحكم في حالة التتابع.

كان التحدي في الواقع هو التأكد من تحديث المعلومات عند "التحديث" وعند الطلب عبر وسائل أخرى (Alexa ، إلخ). هذا هو السبب في أنك سترى شروطًا مختلفة في JavaScript. في كل مرة يتم فيها تحديث القيم ، يتم إرسالها إلى متغير التدفق ويتم تحديث عنصر واجهة المستخدم.

المنزلق

كشف الاختبار عن الحاجة إلى تحديث شريط تمرير إضافي (يدفع شريط التمرير درجة الحرارة المستهدفة). يرسل شريط التمرير الحمولة (الرقم) مع "شريط التمرير" للموضوع المرتبط عند نقله. علاوة على ذلك ، أريد أن يصل شريط التمرير إلى الموضع الصحيح إذا كانت واجهات الويب المتعددة موجودة. للقيام بذلك ، كل 5 ثوانٍ أقوم ببساطة بتحديث موضع شريط التمرير إلى درجة الحرارة المستهدفة الحالية.

NodeRED: عقدة الوظيفة - شريط تمرير التحديث '

msg.payload = flow.get ('TempTarget') ؛ إرجاع msg ؛

التحكم في التتابع

وحدة تحكم الترحيل بسيطة ، فهي تأخذ (في الوقت الحالي) مدخلين. Alexa's true | false والتفاعل الذي يتبع تحديثًا لمتغير تدفق "مفتاح التسخين". ليست هناك حاجة لإجراء فوري ، لذلك من أجل البساطة ، يتم تشغيله على نفس تردد التحديث 5 ثوان مثل بقية التدفق.

يتم توصيل التتابع عبر MQTT. تقوم العقدة بنشر أوامر ON | OFF للموضوع:

سونوف / سمند / باور 1

تقبل عقدة الوظيفة true | false من Alexa وتغير أيضًا حالة الإدخال وفقًا لمتغير التدفق "heatSwitch".

NodeRED: عقدة الوظيفة - مرحل التحكم '

if (msg.command === "TurnOffRequest") {msg.payload = "OFF"؛ عودة الرسالة ؛ }

إذا (msg.command === "TurnOnRequest") {

msg.payload = "تشغيل" ؛ flow.set ("TempTarget"، 21) ؛ عودة الرسالة ؛ } if (msg.topic === "update") {msg.payload = flow.get ('HeatingSwitch')؛ } عودة msg؛

تكامل اليكسا

هذا هو الجهاز الأول الذي اضطررت إلى إيقاف تشغيل "استلام تلقائي". بدلاً من افتراض الاستجابة تلقائيًا ، قمت بإنشاء استجابة لأنني أريد القدرة على الاستعلام عن درجة الحرارة المحددة. من حيث المبدأ ، يشير msg.payload = true | false إلى ما إذا كان الطلب ناجحًا أم لا ، وتقوم القوالب الموجودة هنا بالباقي. إذا كنت مستخدمًا جديدًا لـ Alexa و NodeRed ، فتأكد من قراءة هذا.

قررت تمرير الإقرارات منفصلة (أعلم أن هذه ليست أفضل طريقة) لأتمكن من التحكم في كل شيء بشكل أفضل قليلاً. يجب تقديم كل استجابة بشكل صحيح في نهاية سلسلة القيادة. منجم يخاطر بعدم إرجاع الأخطاء في حالة حدوث ذلك. لاحظ أنه لكي تكون متسقًا ، أقوم فقط بتحديث المتغيرات ، بينما تقوم حلقة التحديث بدفع القيم الجديدة إلى الأداة.

NodeRED: عقدة الوظيفة - معالجة استجابات Alexa

// ما هي درجة الحرارة المستهدفة للثرموستات (msg.command === "GetTemperatureReadingRequest") {x = flow.get ('TempTarget') ؛ msg.extra = {"temperatureReading": {"value": x}، "applianceResponseTimestamp": new Date (). toISOString ()}؛ msg.payload = صحيح ؛ عودة الرسالة ؛ } // اضبط درجة الحرارة على (ليست أقل من 10 أو أكثر من 30) إذا (msg.command === "SetTargetTemperatureRequest") {if (msg.payload 30) {var range = {min: 10.0، max: 30.0} msg.payload = خطأ ؛ msg.extra = النطاق ؛ } else {msg.extra = {targetTemperature: {value: msg.payload}}؛ msg.payload = صحيح ؛ } عودة msg؛ } // شغّله إذا (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

بالإضافة إلى ذلك ، إذا كنت ترغب في الحصول على معلومات حول تحديثات هذا المشروع - ففكر في متابعتي على النظام الأساسي الذي تختاره:

  • موقع التواصل الاجتماعي الفيسبوك
  • تويتر
  • انستغرام
  • موقع يوتيوب

وإذا كنت تشعر برغبة في شراء قهوة لي أو دعمني بطريقة مستمرة:

  • باي بال
  • باتريون

أتمنى أن تكون قد استمتعت بالمشروع!

موصى به: