در خانهام چندین ESP32 نصب کردهام که بهعنوان مرکز کنترل نورها، حسگرها و اتوماسیونها عمل میکنند. در مسیر تکمیل خانهٔ هوشمندم، سرانجام توانستم دما را هم کنترل کنم.
با یک ESP32 کوچک، حسگر دما، نمایشگر و چند دکمه میتوانید کنترلکنندهٔ اقلیم خانگی بسازید که دمای دلخواهتان را در اتاقهای مختلف حفظ میکند؛ فرقی هم ندارد کولر شما هوشمند باشد یا معمولی. همهچیز فقط به کمی زمان نیاز دارد.
چه چیزهایی باید پایش میشد
دو کولر، دو چاپگر و یک دکمه برای کنترل همهچیز





دستگاهی میخواستم که برای حفظ دمایی مشخص، کولرهای اتاق خواب و دفتر کارم را تنظیم کند؛ همچنین دکمهای فیزیکی و سریع برای روشن و خاموش کردن چراغها، بدون نیاز به تلفن یا Home Assistant روی رایانه، در اختیارم بگذارد. افزون بر این، میخواستم وضعیت چاپ هر دو چاپگر سهبعدیام را پایش کنم.
فهرست قطعات این پروژه تا حد ممکن ساده است. ابتدا به یک ESP32 نیاز دارید؛ هر نوع بردی کار میکند، اما من ESP32 C3 Supermini را بهدلیل ابعاد کوچکش انتخاب کردم تا بتوانم برای دفتر کار و اتاق خواب، داکهای مغناطیسی بسازم. DHT22 دادههای پایهٔ دما و رطوبت را فراهم میکند و برای کنترل دو کولری به کار میرود که با پریزهای هوشمند Tapo به برق متصلاند. نمایشگر OLED SH1106 ۱.۳‑اینچی دادهها را نشان میدهد و سه دکمهٔ لمسی برای پیمایش منوها و جابهجایی میان دستگاهها به کار میروند.
صفحهٔ مربوط به چاپگرها خود به دردسر کوچکی تبدیل شد. چون چاپگرهایم از Bambu و Elegoo هستند، یکپارچهسازیهای مربوط به آنها وضعیت چاپ را با عبارتهای متفاوتی گزارش میکنند. راهحل این بود که همهٔ وضعیتها را در شش دستهٔ بیکار، در حال چاپ، متوقفشده، تکمیلشده، خطا و آفلاین عادیسازی کنم تا نمایشگر نیازی به تشخیص برند چاپگر نداشته باشد.
تبدیل داشبورد به ترموستات
هر بار فقط یک ناحیه، چه بخواهید چه نخواهید

منطق کنترل اقلیم را با افزودن صفحهٔ Climate Control به دستگاه آغاز کردم. این صفحه اتوماسیون اصلی Home Assistant را فعال یا غیرفعال میکند و در دیگر صفحهها، برای نمایش وضعیت واقعی کولر، یک نماد دانهٔ برف نشان میدهد. اتوماسیون، دمای اتاق انتخابشده را با استفاده از خوانش حسگر داخلی DHT22 بین ۲۸ تا ۳۰ °C حفظ میکند، اما فقط زمانی که فعال باشد و فقط برای یک اتاق در هر لحظه.
با تغییر اتاق، اتاقی که ترک میکنید دیگر کنترل نمیشود؛ حتی اگر همچنان گرم باشد. این سامانهای تکناحیهای روی داشبوردی چندناحیهای است؛ سازشی منطقی برای پروژهای که هزینهاش از یک فنجان قهوه هم کمتر است. خود اتوماسیون Home Assistant نیز ساده است: ابتدا فعالبودن کنترل اقلیم را بررسی میکند، سپس اتاق فعلی را تشخیص میدهد و بر پایهٔ مقادیر حسگر دما، کولر را روشن یا خاموش میکند.

پیچیدهترین بخش این پروژه نه حسگر بود و نه منطق اتوماسیون؛ بلکه ایرادی سختافزاری در کولر دفتر کارم بود. حتی اگر کولر از طریق پریز برق داشته باشد، واحد کنترل داخلی آن لزوماً کولر را راهاندازی نمیکند و برای کارکردن باید یکبار برقش قطع و دوباره وصل شود. این رفتار، اتوماسیون ساده را بیاثر میکرد؛ زیرا صرفاً روشنکردن پریز کافی نبود.
در نهایت اسکریپت verify‑and‑retry را نوشتم که پریز را روشن میکند، مصرف واقعی برق را زیر نظر میگیرد تا ببیند کمپرسور فعال شده است یا نه و در صورت فعالنشدن، یکبار دیگر برق را قطع و وصل میکند. اسکریپت حداکثر پنج بار، هر ده ثانیه یکبار، با یک دورهٔ پنجثانیهای برای خاموشماندن اجرا میشود. تنها پس از تأیید مصرف واقعی برق، نماد دانهٔ برف روی نمایشگر روشن میشود. همچنین یک اتوماسیون ایمنی جداگانه وجود دارد که اگر سیستم غیرفعال شود یا ارتباط دستگاه بیش از ۴۵ ثانیه قطع بماند، هر دو کولر را خاموش میکند تا چیزی بدون نظارت باقی نماند.
معمای راهاندازی مجدد
سیگنال Wi‑Fi مظنون اصلی است

دوست داشتم بگویم این پروژه از همان بار نخست بینقص کار کرده است، اما اگر با بردهای ارزان ESP32، بهویژه C3 Supermini، کار کنید، تقریباً همیشه با مشکلات اتصال روبهرو میشوید. دستگاه فعلی من مرتب وارد چرخهٔ راهاندازی مجدد میشود و هنوز دلیل دقیقش را نمیدانم. این مشکل در اتاق خواب بیشتر از دفتر کار رخ میدهد؛ بنابراین قدرت سیگنال Wi‑Fi یا تراکم کانالهای شبکه، محتملترین مظنونها هستند.
در تجربهٔ من، بردهای C3 Supermini با آنتنهایی که درست نصب نشدهاند، برای حفظ اتصال Wi‑Fi به مشکل میخورند؛ بهویژه زمانی که روتر دورتر باشد. سیگنال بین ۴۵ تا ۵۰ dBm در دفتر کار و اتاق خواب مناسب است، اما دستگاه گاهی بیهیچ دلیل روشنی از پاسخگویی بازمیایستد. افت توان، کرش firmware یا درایور ناپایدار Wi‑Fi همچنان محتملاند. فعلاً دو راهحل موقت در نظر گرفتهام: وقفهای ۴۵‑ثانیهای پیش از فعالشدن خودکار کنترل، و اطمینان از اینکه نمایشگر پس از اتصال مجدد، وضعیت تخمینی و قدیمی را نشان ندهد.
هنوز کارهایی باقی مانده است
پینهای پگو و پایهٔ باتری، آخرین گامها تا تکمیل پروژه
دستگاه هنوز روی برد نانویی و متصل به یک پورت USB نزدیک قرار دارد، بنابراین محصول نهایی نیست. هنوز باید ایستگاههای شارژ مغناطیسی بسازم؛ یکی برای دفتر کار و دیگری برای اتاق خواب، با کانکتورهای ۳‑پین پگو که برق و سیگنال شناسهٔ فضا را منتقل میکنند تا دستگاه بتواند مکان خود را تشخیص دهد. برای زندهماندن دستگاه هنگام جابهجایی میان ایستگاهها، یک باتری داخلی کوچک نیز لازم است.
بااینحال، پروژه بهخوبی در حال شکلگرفتن است و به یکی از کاربردیترین دستگاههای هوشمند خانگی تبدیل شده که ساختهام. این دستگاه کاری را ممکن کرده که پیشتر هزاران دلار هزینه و زمان زیادی میطلبید، اما اکنون کاملاً محلی، بدون نیاز به اتصال اینترنت و روی سختافزاری که از پیش در اختیار داشتم، اجرا میشود.
منبع: این مطلب ترجمه و بومیسازی مقالهای از MakeUseOf به قلم Yadullah Abidi است. مشاهده مقاله اصلی