جدول المحتويات:
- الخطوة 1: كيف يعمل منظم الحرارة
- الخطوة 2: تجهيز Sonoff Basic جاهز
- الخطوة 3: NodeRED
- الخطوة 4: الخاتمة
فيديو: عش منظم الحرارة القديم: 4 خطوات (بالصور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
ربما يكون نظام التدفئة في منزلي قديمًا قدم المنزل نفسه. يبلغ عمره حوالي 30 عامًا ، وهو أمر جيد من حيث سنوات المنزل ، ولكنه عالق إلى حد كبير في العصر الجليدي فيما يتعلق بالتكنولوجيا. هناك مشكلتان رئيسيتان في الحلول التجارية:
- التسعير الباهظ
- المنتج كخدمة
نتذكر جميعًا ما حدث لـ Revolv ولست حريصًا جدًا على حدوث هذا لي في منتصف الشتاء. مع وضع ذلك في الاعتبار ، أقدم لك وحدة تحكم NEST-Alike ذات المظهر المريب بشكل لا يصدق ولكنها وظيفية للثرموستات القديم. لا تقلق ، أنا أخطط لإضافة حاوية أفضل بكثير قريبًا!
سمات:
- القدرة على استخدام منظم الحرارة الموجود (في حالة اشتكيت الزوجة من ذلك)
- الوصول عن بعد
- وضع AWAY
- مؤشر درجة الحرارة المثلى
- يعمل مع Alexa
قريبًا (تحقق هنا من أجل التحديثات)
- صفحة Google الرئيسية
- تقويم جوجل
- أجهزة استشعار متعددة
- ضوابط المبرد
- تكامل IFTT
- دعم تاسكر
- طلبات
- حاوية تبدو أفضل بكثير
الخطوة 1: كيف يعمل منظم الحرارة
من المحتمل أن يكون منظم الحرارة متصلًا بالجهد العالي! لا تحاول القيام بأي شيء إلا إذا تأكدت من إيقاف تشغيل الدائرة. يمكنك إلحاق الضرر بنفسك وإلحاق الضرر بالجهاز المتصل. ضع في اعتبارك استشارة كهربائي مؤهل لضمان سلامتك
ترموستات هانيويل هو وحدة مثبتة على الحائط ، يتم تشغيلها بواسطة التيار الكهربائي (تحتاج أساسيات Sonoff إلى 90 فولت كحد أدنى ، ودائرة كهربائية بها 230 فولت). الصندوق متصل بوحدة التحكم الرئيسية (وهو صندوق أكثر تقدمًا) ويرسل الإشارة عندما تنخفض درجة الحرارة عن المستوى المستهدف. في حين أن وحدتك قد تكون مختلفة ، إلا أن المبدأ هو نفسه على الأرجح. إذا كان لديك 3 أسلاك ولا يوجد اتصال لاسلكي بين الوحدة المثبتة على الحائط - فهذا هو البرنامج التعليمي المناسب لك.
أعرف كيف تعمل منظمات الحرارة ثلاثية الأسلاك من حيث المبدأ ، والتي لم تمنعني من تفجير فتيل عن طريق تقصير سلكين عن طريق الصدفة! لدي 3 أسلاك متصلة بالوحدة (مع كون الرابع هو الأرض). ترموستات هانيويل ليس لاسلكيًا ، لذا لتبديل الإشارة ، يمكنني استخدام Sonoff Basic. حان الوقت لتفكيكها ومعرفة كيفية إرسال الإشارة إلى الوحدة. عند الفحص الدقيق ، يتم توصيل الجهاز بالطريقة التالية:
- (أزرق) - أرضي
- (أصفر) - إشارة ، عند السحب عاليًا ، يتم تشغيل التسخين
- غير مستخدم
- (أحمر) - السلك المباشر المستخدم في رفع الإشارة
لتحقيق هدفي ، يجب أن أقصر السلك المباشر بسلك الإشارة عندما أريد تشغيل التدفئة. إذا كان لديك منظم حرارة متصل بشكل مشابه ، فأنت محظوظ لأن Sonoff Basic سيكون كافيًا للقيام بالخدعة.
الخطوة 2: تجهيز 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. يحتاج إلى 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
بالإضافة إلى ذلك ، إذا كنت ترغب في الحصول على معلومات حول تحديثات هذا المشروع - ففكر في متابعتي على النظام الأساسي الذي تختاره:
- موقع التواصل الاجتماعي الفيسبوك
- تويتر
- انستغرام
- موقع يوتيوب
وإذا كنت تشعر برغبة في شراء قهوة لي أو دعمني بطريقة مستمرة:
- باي بال
- باتريون
أتمنى أن تكون قد استمتعت بالمشروع!
موصى به:
منظم درجة الحرارة التلقائي: 4 خطوات
منظم درجة الحرارة التلقائي: يهدف هذا المشروع إلى مساعدتك تلقائيًا وإلكترونيًا على التحكم في درجة الحرارة نفسها والبقاء عليها في نطاق معقول ، وأيضًا في درجة حرارة مريحة للناس للبقاء فيها نسبيًا. في منطقة ثابتة ، أو غرفة على وجه التحديد ، بدون عامل
قراءة درجة الحرارة باستخدام مستشعر درجة الحرارة LM35 مع Arduino Uno: 4 خطوات
قراءة درجة الحرارة باستخدام مستشعر درجة الحرارة LM35 مع Arduino Uno: مرحبًا يا رفاق في هذه التعليمات ، سوف نتعلم كيفية استخدام LM35 مع Arduino. Lm35 هو مستشعر لدرجة الحرارة يمكنه قراءة قيم درجة الحرارة من -55 درجة مئوية إلى 150 درجة مئوية. إنه جهاز ثلاثي الأطراف يوفر جهدًا تناظريًا يتناسب مع درجة الحرارة. عالية
HestiaPi Touch - افتح منظم الحرارة الذكي: 9 خطوات (بالصور)
HestiaPi Touch - Open Smart Thermostat: حول HestiaPi TouchHestiaPi Touch عبارة عن ترموستات ذكي مفتوح المصدر تمامًا لمنزلك. جميع الملفات والمعلومات الرقمية متوفرة أدناه وموقعنا الإلكتروني الرئيسي ، حيث يمكنك من خلالها مراقبة درجة حرارة منزلك ، والرطوبة النسبية ، و
ميزان حرارة للطهي بمسبار درجة الحرارة ESP32 NTP مع تصحيح Steinhart-Hart وإنذار درجة الحرارة: 7 خطوات (بالصور)
ميزان حرارة للطهي بمسبار درجة الحرارة ESP32 NTP مع تصحيح Steinhart-Hart وإنذار درجة الحرارة: لا يزال في رحلة لإكمال & quot؛ المشروع القادم & quot ؛، & quot؛ ESP32 NTP ميزان حرارة للطهي بمسبار درجة الحرارة مع تصحيح Steinhart-Hart وإنذار درجة الحرارة & quot؛ هو Instructable يوضح كيف يمكنني إضافة مسبار درجة حرارة NTP ، بيزو ب
إعادة تدوير مفتاح التعتيم القديم الخاص بك كعنصر تحكم متغير في درجة الحرارة لمكواة اللحام: 7 خطوات
إعادة تدوير مفتاح التعتيم القديم الخاص بك كعنصر تحكم متغير في درجة الحرارة لمكواة اللحام الخاصة بك: لقد رأيت الكثير من التحكم الاحترافي في درجة الحرارة المتغيرة لحام الحديد ، ولكنه مكلف للغاية. لذلك أقوم بعمل واحد من مفتاح باهت قديم ، ومخرج ، ولوحة عصابة ، وقابس كان بالفعل غير مرغوب فيه وبعض صندوق التبديل PVC القديم المرفق به وهكذا