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

درجة حرارة HRV إلى OpenHAB عبر ESP8266 (مثال الرمز التسلسلي!): 3 خطوات
درجة حرارة HRV إلى OpenHAB عبر ESP8266 (مثال الرمز التسلسلي!): 3 خطوات

فيديو: درجة حرارة HRV إلى OpenHAB عبر ESP8266 (مثال الرمز التسلسلي!): 3 خطوات

فيديو: درجة حرارة HRV إلى OpenHAB عبر ESP8266 (مثال الرمز التسلسلي!): 3 خطوات
فيديو: Zehnder HRV with Ground Source Pre-heater High-performance 2024, يوليو
Anonim
درجة حرارة HRV إلى OpenHAB عبر ESP8266 (مثال على الرمز التسلسلي!)
درجة حرارة HRV إلى OpenHAB عبر ESP8266 (مثال على الرمز التسلسلي!)
درجة حرارة HRV إلى OpenHAB عبر ESP8266 (مثال على الرمز التسلسلي!)
درجة حرارة HRV إلى OpenHAB عبر ESP8266 (مثال على الرمز التسلسلي!)
درجة حرارة HRV إلى OpenHAB عبر ESP8266 (مثال على الرمز التسلسلي!)
درجة حرارة HRV إلى OpenHAB عبر ESP8266 (مثال على الرمز التسلسلي!)

HRV - لاسلكي إلى OpenHAB

هذه التعليمات مخصصة بشكل خاص لأولئك الذين لديهم نظام تهوية إعادة تدوير التدفئة (HRV) - على الرغم من أن أجزاء من لوحة الدوائر أو تكوين openhab أو كود Arduino (مثل قراءة البيانات التسلسلية TTL) يمكن أن تكون مفيدة لمشاريعك الخاصة أو تعمل بشكل جيد للتعلم. يفترض أن لديك معرفة معقولة بـ Arduino IDE وما هي شريحة ESP8266.

مقدمة

يوضح ما يلي كيفية إنشاء ESP8266 الذي يتصل بنظام HRV ويرسل درجات حرارة السطح والمنزل ودرجة حرارة لوحة التحكم وسرعة المروحة عبر رسائل MQTT إلى OpenHAB. تم تصميم هذا للعمل مع لوحة ESP8266-01 (على الرغم من أنه يجب أن يعمل مع أي إصدار ESP8266 3.3 فولت) إذا كان لديك نظام نوع HRV مشابه من بائع بديل ، فستحتاج إلى تحديد ما إذا كانت البيانات مرسلة على أنها TTL التسلسلي وإذا كان الأمر كذلك ، ما الهيكل الذي يتم إرسال البيانات به.

OpenHAB و Mosquitto

تمت كتابة كود ESP8266 خصيصًا للعمل مع OpenHAB (برنامج أتمتة المنزل مفتوح المصدر) ووسيط MQTT مثل Mosquitto (بروتوكول نوع الاشتراك / النشر للمراسلة خفيف الوزن ورائع للاتصال بين الأجهزة) لا تدع الأسماء أو تخيفك الاختصارات ، فهي حقًا سهلة الاستخدام بمجرد التعرف على كيفية عملها. أنا أستخدم OpenHAB على NTC C. H. I. P (كمبيوتر 9 دولارات أمريكية) ولكن العديد من الأشخاص يستخدمون Raspberry Pi أو ما شابه ذلك. يفترض هذا البرنامج التعليمي أنك قمت بتنفيذ OpenHAB (إذا كنت بحاجة إلى مساعدة في إعداد OpenHAB ، فاتبع هذه المقالة الممتازة من موقع makeuseof على الويب) تحتاج أيضًا إلى تنزيل وتثبيت Mosquitto (وسيط MQTT) وربط OpenHAB ذي الصلة. يمكنك تثبيت هذا في مكان آخر على شبكتك ، ومع ذلك يقوم معظم الأشخاص بتثبيت هذا على نفس الجهاز مثل OpenHAB لإبقائه بسيطًا.

لتثبيت Mosquitto ، باتباع هذا الرابط ، حدد نوع الجهاز الذي تستخدمه واتبع التعليمات. نظرًا لأن C. H. I. P يقوم بتشغيل Debian (Jessie) ، يمكنك اتباع تعليمات Raspberry Pi إذا كنت تستخدم C. H. I. P لجهاز Home Automation الخاص بك (لاحظ أيضًا أنه من الأفضل إعادة تهيئة CHIP للتمهيد من CLI. توجد تعليمات لهذا هنا)

بمجرد تشغيل OpenHAB و Mosquitto ، ستحتاج إلى إعداد Arduino IDE لـ ESP8266 والرمز. أولاً ، تحتاج إلى إضافة مكتبة "PubSubClient". في Arduino IDE ، من القائمة ، انتقل إلى Sketch ، Include Library ، Manage Libraries في مربع بحث الفلتر ، اكتب PubSubClient ثم قم بتمييز نتيجة البحث وانقر فوق التثبيت (في وقت كتابة هذا التقرير ، أحدث إصدار هو 2.6.0). تحتاج أيضًا إلى إضافة لوحة ESP8266 إلى Arduino IDE والتي يمكن القيام بها باتباع الإرشادات هنا

ماذا يعطيني هذا؟

كما ذكرنا سابقًا ، سيسمح لك هذا المشروع بمشاهدة سقف لوحة تحكم HRV والمنزل ودرجات حرارة لوحة التحكم وسرعة المروحة في OpenHAB GUI (في الوقت الفعلي!) تُظهر الصور كيف يبدو من جهاز iPhone الخاص بي ، بالإضافة إلى الرسوم البيانية لك سوف تحصل من خلال الحفر في درجات الحرارة المختلفة.

للحصول على الرسوم البيانية ، ستحتاج أيضًا إلى تثبيت وتكوين رابط RRD4J (هذا أمر مباشر جدًا) سيسمح لك ذلك بالنقر فوق "المنزل" أو "السطح" والحصول على سجل درجات حرارة HRV لكل منها على مدار الماضي ساعة أو يوم أو أسبوع (أو أكثر ، إذا غيرت التكوين لتناسب) الصور المعروضة هي بالدرجة المئوية ، ومن الواضح أن الشتاء في نصف الكرة الجنوبي عندما صنعت هذا!

بالإضافة إلى ذلك ، قمت بإنشاء عرض OpenHAB الذي يُظهر مقارنة بين درجة الحرارة الخارجية (التي توفرها الوظيفة الإضافية لربط الطقس ، في حالتي باستخدام Wunderground) مقابل درجات حرارة السطح والمنزل بالنقر فوق خيار "التحكم" (تُظهر الصورة الرسم البياني مع المنزل والسقف ودرجة الحرارة الخارجية مخططة). أخطط لاستخدام هذه البيانات في القواعد لتشغيل أجهزة التدفئة كما هو مطلوب. ما عليك سوى إضافة عنصر الطقس إلى عنوان URL الخاص بالصورة في ملف خريطة الموقع وتضمينه في نفس الرسم البياني (على سبيل المثال:… items = houseTemp و roofTemp و weatherTemp …)

الخطوة 1: الأجزاء المطلوبة / التجميع

الأجزاء المطلوبة / التجميع
الأجزاء المطلوبة / التجميع
الأجزاء المطلوبة / التجميع
الأجزاء المطلوبة / التجميع
الأجزاء المطلوبة / التجميع
الأجزاء المطلوبة / التجميع

سوف تحتاج إلى الأجزاء التالية

  • موزع RJ11 (هذا يقسم الإشارة من وحدة التحكم في السقف إلى لوحة التحكم و ESP8266)
  • بعض كبلات الشريط وقابس RJ11 (لتشغيل الأسلاك من الفاصل إلى ESP8266)
  • ESP8266-01 (يجب أن تعمل إصدارات 3.3 فولت الأخرى)
  • محول مستوى منطق TTL (لتغيير البيانات من 5V -> 3.3V)
  • AMS1117 منظم جهد 3.3 فولت (أو ما شابه ، لتغيير الجهد من HRV 5V -> 3.3V إلى طاقة ESP8266)
  • 1N5817 الصمام الثنائي شوتكي (لسبب ما ساعد هذا في إيقاف إعادة ضبط لوحة التحكم HRV على طاقة ESP)
  • 10 كيلو أوم المقاوم (سحب المقاوم بين 3.3 الجهد المنظم و ESP CH_PD)
  • مكثف 10 فائق التوهج 10 فائق التوهج (أو ما شابه ، لتنعيم وتثبيت الطاقة الواردة من HRV)
  • مكثف 10 فولت 1 فائق التوهج (أو ما شابه ، لتنعيم الطاقة الصادرة وتثبيتها إلى ESP)
  • زر انزلاق اختياري لبرمجة ESP (خلاف ذلك ، تحتاج إلى سحب GPIO0 إلى GND يدويًا للبرمجة)
  • محول FTDI (لبرمجة ESP ، يحول USB إلى تسلسلي)

تجميع حسب التخطيطي

تُظهر صورة اللوح كيفية تجميع الأجزاء. لاحظ أن هناك 6 دبابيس تنزل من كابل الشريط من وحدة تحكم HRV في السقف:

الدبابيس 1 و 6 هي 5 فولت VCC

الدبابيس 2 و 5 هي GND

الدبابيس 3 و 4 هي بيانات.

ما عليك سوى استخدام المسامير 1 و 2 و 3 و 6 (الطاقة 1 و 6 VCC ESP8266 والجانب العالي من المحول المنطقي TTL ، 2 هي أرضية مشتركة و 3 لقراءة البيانات التسلسلية TTL)

سيكون الفاصل الذي تحتاجه عبارة عن جهاز تقسيم RJ11 فقط ، فقط تأكد من وجود مقسم حيث تكون المسامير مستقيمة من خلاله (على سبيل المثال: يذهب الدبوس 1 إلى السن 1 ، والدبوس 2 إلى السن 2 وما إلى ذلك) لاحظ أن المسامير الأنثوية الإضافية (مثل هو مبين في الصور) لتوصيل FTDI لإعادة برمجة ESP لاحقًا ، والمفتاح الموضح يضعه في وضع "البرمجة". هذه اختيارية ، لكن يوصى بها (على سبيل المثال: إذا قمت بتغيير كلمة مرور WiFi الخاصة بك لأن WiFi AP وكلمة المرور مبرمجتان بشدة في الرمز ، والذي ستحتاج إلى تحميله بمجرد إنشاء ESP8266)

الخطوة 2: تحميل الكود والاختبار

تحميل الكود والاختبار
تحميل الكود والاختبار
تحميل الكود والاختبار
تحميل الكود والاختبار
تحميل الكود والاختبار
تحميل الكود والاختبار
تحميل الكود والاختبار
تحميل الكود والاختبار

تغييرات التعليمات البرمجية

رابط تنزيل بديل لكود Arduino هنا

افتح في Arduino IDE ، وتأكد من تثبيت لوحة ESP بالإضافة إلى PubSubClient وأنك حددت لوحة ESP8266 (أدوات ، لوحة ، لوحة ESP8266 عامة) قم بتحرير الكود وتغيير اسم WiFi AP وكلمة المرور وعنوان IP الخاص بـ وسيط MQTT الخاص بك (هذه هي الأشياء الوحيدة التي يجب عليك تغييرها) كما هو موضح أدناه. انقر فوق الزر "تحقق" للتأكد من أنه يتم تجميعه بشكل جيد ، ثم تأكد من تحديد منفذ COM الصحيح (أدوات ، منفذ) وقم بتحميل الكود إلى ESP8266 الخاص بك. هناك الكثير من المقالات حول كيفية القيام بذلك ، لن أقوم بإعادة اختراع العجلة هنا.

// واي فاي

const char * ssid = "your_wifi_ssid_here" ؛ const char * password = "your_wifi_password_here" ؛ // MQTT Broker IPAddress MQTT_SERVER (192 ، 168 ، 222 ، 254) ؛

اختبار MQTT

للاختبار ، يمكنك ترك محول FTDI الخاص بك متصلاً وفتح Serial Monitor في Arduino IDE ، يجب أن ترى رسائل تطبع معلومات درجة الحرارة في وحدة التحكم. إذا كنت بحاجة إلى استكشاف أخطاء رسائل MQTT الواردة من ESP8266 إلى وسيط MQTT وإصلاحها ، فقم بتشغيل أحد الأوامر التالية على خادم Mosquitto للاشتراك في الرسائل الواردة:

mosquitto_sub -d -t openhab / hrv / status

يجب أن تشاهد رسائل النشر الواردة قادمة من ESP8266 كل 30 ثانية أو نحو ذلك بالرقم "1" (بمعنى "أنا على قيد الحياة") إذا رأيت "0" ثابتًا (أو لا شيء على الإطلاق) ، فلا يوجد اتصال. بمجرد أن ترى الرقم 1 قادمًا ، فهذا يعني أن ESP8266 يتواصل مع وسيط MQTT (ابحث عن "MQTT Last Will and Testament" للحصول على مزيد من المعلومات حول كيفية عمل ذلك ، أو شاهد إدخال المدونة الجيد حقًا)

يمكنك الآن تتبع بيانات درجة الحرارة وسرعة المروحة ، والاشتراك في أي مما يلي. ومع ذلك ، لاحظ أن الكود يرسل بيانات درجة الحرارة فقط إذا تم تغيير أي بيانات. إنه يتتبع آخر درجة حرارة وسرعة المروحة والبيانات التي تم إرسالها ، لذلك قد لا ترى المعلومات الواردة على الفور.

mosquitto_sub -d -t openhab / hrv / rooftemp

mosquitto_sub -d -t openhab / hrv / housetemp

mosquitto_sub -d -t openhab / hrv / controltemp

mosquitto_sub -d -t openhab / hrv / fanspeed

تلميح: اشترك في درجة حرارة لوحة التحكم أعلاه ، ثم اضغط على زر درجة الحرارة على لوحة التحكم نفسها ، سترى إعداد درجة الحرارة الجديد يأتي.

عندما تتجول في لحام هذا ، فإن PCB مقاس 3 سم × 7 سم يناسب بشكل جيد صندوق التدفق خلف لوحة التحكم HRV. أوصي بالقيام بذلك فقط إذا كان صندوقًا بلاستيكيًا لأن الصندوق المعدني قد يتداخل مع إشارات Wifi أو ربما يقصر التوصيلات على لوحة PCB. بالتناوب ، يمكنك طباعة علبة بلاستيكية ثلاثية الأبعاد لتركيب اللوحة فيها.

الخطوة 3: تغييرات OpenHAB

تكوين OpenHAB

تغييرات OpenHAB المطلوبة هي كما يلي:

ملف "العناصر":

/ * HRVNumber hrvStatus "HRV Status [MAP (status.map):٪ d]" (gHRV) {mqtt = "<[mqttbroker: openhab / hrv / status: state: default]"} Number houseTemp "House [٪.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab / hrv / housetemp: state: default] "} Number houseTemp_Chart_Period" Chart Period "Number roofTemp" Roof [٪.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab / hrv / rooftemp: state: default] "} Number roofTemp_Chart_Period" Chart Period "Number controlTemp" Control [٪.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab / hrv / controltemp: state: default] "} String fanSpeed" Fan Speed [٪ s] "(gHRV) {mqtt =" <[mqttbroker: openhab / hrv / fanspeed: state: default] "} * /

ملف "خريطة الموقع":

تسمية الإطار = "درجة حرارة HRV" {Text item = roofTemp {Frame {Switch item = roofTemp_Chart_Period label = "Period" mappings = [0 = "Hour"، 1 = "Day"، 2 = "Week"] Image url = "https:// localhost: 8080 / rrdchart-p.webp

يتم تضمين رموز إضافية لـ OpenHAB (انقر بزر الماوس الأيمن واحفظ الصور)

احفظ هذه الملفات في مجلد.. / OpenHAB Home / webapps / images على خادم OpenHAB الخاص بك

موصى به: