فهرست مطالب:

درجه حرارت HRV تا OpenHAB از طریق ESP8266 (مثال کد سریال!): 3 مرحله
درجه حرارت HRV تا OpenHAB از طریق ESP8266 (مثال کد سریال!): 3 مرحله

تصویری: درجه حرارت HRV تا OpenHAB از طریق ESP8266 (مثال کد سریال!): 3 مرحله

تصویری: درجه حرارت HRV تا OpenHAB از طریق ESP8266 (مثال کد سریال!): 3 مرحله
تصویری: تفاوت بین AWD و 4WD 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 طراحی شده است (اگرچه باید با هر نسخه 3.3V ESP8266 کار کند) اگر سیستم مشابهی از نوع HRV از یک فروشنده جایگزین دارید ، باید تعیین کنید که آیا داده ها به عنوان سریال TTL ارسال می شوند یا خیر ، داده ها به چه ساختاری ارسال می شوند.

OpenHAB و Mosquitto

کد ESP8266 به طور خاص برای کار با OpenHAB (نرم افزار اتوماسیون منبع باز منزل) و یک کارگزار MQTT مانند Mosquitto (پروتکل نوع اشتراک/انتشار پیام که سبک است و برای ارتباط بین دستگاه ها عالی است) نوشته شده است. حروف اختصاری شما را می ترساند ، استفاده از آنها بسیار ساده است هنگامی که با نحوه عملکرد آنها آشنا شدید. من از OpenHAB در رایانه NTC C. H. I. P (9 دلار آمریکا) استفاده می کنم ، با این حال بسیاری از مردم از رزبری پای یا مشابه آن استفاده می کنند. در این آموزش فرض بر این است که شما OpenHAB را پیاده سازی کرده اید (اگر در راه اندازی OpenHAB به کمک نیاز دارید ، این مقاله عالی را از وب سایت makeuseof دنبال کنید) همچنین باید Mosquitto (کارگزار MQTT) و صحافی مربوط به OpenHAB را بارگیری و نصب کنید. شما می توانید این را در جاهای دیگر در شبکه خود نصب کنید ، با این حال اکثر مردم فقط آن را بر روی همان دستگاه OpenHAB نصب می کنند تا ساده باشد.

برای نصب Mosquitto ، به دنبال این پیوند ، سپس نوع دستگاهی را که استفاده می کنید انتخاب کرده و دستورالعمل ها را دنبال کنید. از آنجا که C. H. I. P Debian (Jessie) را اجرا می کند ، اگر از C. H. I. P برای دستگاه اتوماسیون خانگی خود استفاده می کنید ، می توانید دستورالعمل Raspberry Pi را دنبال کنید (همچنین توجه داشته باشید ، بهترین راه پیکربندی CHIP برای راه اندازی از CLI است. دستورالعمل هایی برای این مورد در اینجا وجود دارد)

پس از اجرای OpenHAB و Mosquitto ، باید Arduino IDE را برای ESP8266 و کد آماده کنید. ابتدا باید کتابخانه "PubSubClient" را اضافه کنید. در Arduino IDE ، از منو به Sketch ، Include Library ، Manage Libraries بروید در کادر جستجو فیلتر ، PubSubClient را تایپ کنید ، سپس نتیجه جستجو را برجسته کرده و روی Install کلیک کنید (در زمان نگارش ، آخرین نسخه 2.6.0 است) همچنین باید برد ESP8266 را به Arduino IDE اضافه کنید که می توانید با دنبال کردن دستورالعمل ها در اینجا این کار را انجام دهید

این چه چیزی به من می دهد؟

همانطور که قبلاً نیز گفته شد ، این پروژه به شما امکان می دهد سقف کنترل پنل HRV ، خانه ، دمای کنترل پنل و سرعت فن خود را در رابط کاربری OpenHAB (در زمان واقعی!) مشاهده کنید. تصاویر نشان می دهد که از iPhone چگونه به نظر می رسد ، به علاوه نمودارهایی که مشاهده می کنید. با حفاری در دماهای مختلف به دست می آید.

برای به دست آوردن نمودارها ، باید اتصال RRD4J را نیز نصب و پیکربندی کنید (این بسیار مستقیم است) این به شما امکان می دهد روی "House" یا "Roof" کلیک کنید و سابقه دمای HRV را برای هر کدام در گذشته دریافت کنید ساعت ، روز یا هفته (یا بیشتر ، اگر پیکربندی را متناسب با آن تغییر دهید) تصاویر نشان داده شده در درجه سانتیگراد هستند و به وضوح زمستان آن در نیمکره جنوبی زمانی که این کار را انجام دادم!

علاوه بر این ، من یک نمای OpenHAB ایجاد کردم که مقایسه بین دمای بیرون (ارائه شده توسط افزونه اتصال دهنده آب و هوا ، در مورد من با استفاده از Wunderground) با دمای سقف و خانه با کلیک روی گزینه "Control" (تصویر نمودار را نشان می دهد خانه ، سقف و دمای بیرون ترسیم شده است). من قصد دارم از این داده ها در قوانین استفاده کنم تا وسایل گرمایشی را در صورت لزوم روشن کنم. به سادگی آیتم آب و هوا را به آدرس تصویر خود در فایل نقشه سایت اضافه کنید و این را روی همان نمودار قرار دهید (به عنوان مثال:… items = houseTemp، roofTemp، weatherTemp…)

مرحله 1: قطعات مورد نیاز / مونتاژ

قطعات مورد نیاز / مونتاژ
قطعات مورد نیاز / مونتاژ
قطعات مورد نیاز / مونتاژ
قطعات مورد نیاز / مونتاژ
قطعات مورد نیاز / مونتاژ
قطعات مورد نیاز / مونتاژ

به قطعات زیر نیاز خواهید داشت

  • یک شکاف RJ11 (این سیگنال را از کنترل کننده در سقف به کنترل پنل و ESP8266 تقسیم می کند)
  • مقداری کابل روبان و دوشاخه RJ11 (جهت اتصال سیم از اسپلیتر به ESP8266)
  • ESP8266-01 (سایر نسخه های 3.3V باید کار کنند)
  • مبدل سطح منطقی TTL (برای تغییر داده ها از 5V -> 3.3V)
  • AMS1117 تنظیم کننده ولتاژ 3.3V (یا مشابه ، برای تغییر ولتاژ از HRV 5V -> 3.3V به برق ESP8266)
  • 1N5817 دیود schottky (به دلایلی این امر به توقف بازنشانی کنترل پنل HRV در روشن شدن ESP کمک کرد)
  • مقاومت 10 کیلو اهم (مقاومت کششی بین 3.3 تنظیم کننده ولتاژ و ESP CH_PD)
  • خازن 10 ولت 10 ولت (یا مشابه آن ، برای صاف کردن و استحکام بخشیدن به قدرت ورودی از طریق HRV)
  • خازن 10V 1uF (یا مشابه ، برای صاف کردن و ایجاد قدرت خروجی به ESP)
  • دکمه اسلاید اختیاری برای برنامه ریزی ESP (در غیر این صورت ، برای برنامه نویسی باید GPIO0 را به صورت دستی به GND بکشید)
  • یک آداپتور FTDI (برای برنامه ریزی ESP ، USB را به سریال تبدیل می کند)

مطابق طرح شماتیک جمع کنید

تصویر تخته نان نحوه مونتاژ قطعات را نشان می دهد. توجه داشته باشید که 6 پین از کابل روبان واحد کنترل HRV در سقف پایین می آید:

پین 1 و 6 VCC 5 ولت هستند

پین های 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 و رمز عبور به سختی در کد برنامه ریزی شده اند ، پس از ساخت ESP8266 باید آنها را بارگذاری کنید)

مرحله 2: بارگذاری کد و آزمایش

کد بارگذاری و آزمایش
کد بارگذاری و آزمایش
کد بارگذاری و آزمایش
کد بارگذاری و آزمایش
کد بارگذاری و آزمایش
کد بارگذاری و آزمایش
کد بارگذاری و آزمایش
کد بارگذاری و آزمایش

تغییرات کد

پیوند بارگیری جایگزین کد آردوینو در اینجا

در Arduino IDE باز کنید ، مطمئن شوید که برد ESP و همچنین PubSubClient نصب شده است و اینکه برد ESP8266 (Tools، Board، Generic ESP8266 Board) را انتخاب کرده اید کد را ویرایش کرده و نام و رمز عبور WiFi WiFi و آدرس IP آن را تغییر دهید. کارگزار MQTT شما (اینها تنها مواردی هستند که باید تغییر دهید) همانطور که در زیر نشان داده شده است. روی دکمه "تأیید" کلیک کنید تا مطمئن شوید که کامپایل می شود و سپس مطمئن شوید که پورت COM درست (Tools، Port) انتخاب شده است و کد را در ESP8266 خود بارگذاری کنید. مقالات زیادی در مورد نحوه انجام این کار وجود دارد ، من چرخ را در اینجا دوباره اختراع نمی کنم.

// وای فای

const char* ssid = "your_wifi_ssid_here"؛ const char* رمز عبور = "your_wifi_password_here"؛ // کارگزار MQTT IPAddress MQTT_SERVER (192 ، 168 ، 222 ، 254) ؛

تست MQTT

برای آزمایش می توانید آداپتور FTDI خود را متصل کرده و Serial Monitor را در Arduino IDE باز کنید ، باید پیامهایی را مشاهده کنید که اطلاعات دما را در کنسول چاپ می کنند. اگر می خواهید پیام های MQTT ورودی را از ESP8266 به کارگزار MQTT خود عیب یابی کنید ، در سرور Mosquitto یکی از دستورات زیر را برای عضویت در پیام های ورودی اجرا کنید:

mosquitto_sub -d -t openhab/hrv/status

شما باید پیامهای PUBLISH ورودی را ببینید که از 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/houseetemp

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 numberTemp" Roof [٪.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab/hrv/rooftemp: state: default] "} Number roofTemp_Chart_Period" Chart Period "Number numberTemp" 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" {مورد متن = roofTemp {قاب {تغییر {item = roofTemp_Chart_Period label = "Period" mappings = [0 = "Hour"، 1 = "Day"، 2 = "Week"] url تصویر = "https:// localhost: 8080/rrdchart-p.webp

نمادهای اضافی برای OpenHAB گنجانده شده است (راست کلیک کرده و تصاویر را ذخیره کنید)

این فایل ها را در پوشه.. / OpenHAB Home / webapps / images در سرور OpenHAB خود ذخیره کنید

توصیه شده: