فهرست مطالب:

ترموستات خانه هوشمند: 4 مرحله
ترموستات خانه هوشمند: 4 مرحله

تصویری: ترموستات خانه هوشمند: 4 مرحله

تصویری: ترموستات خانه هوشمند: 4 مرحله
تصویری: خونه هوشمند : چگونه خانه خود را هوشمند کنیم : کنترل لامپ با موبایل 2024, جولای
Anonim
ترموستات خانه هوشمند
ترموستات خانه هوشمند

ترموستات خانه هوشمند ما برنامه ای است که می تواند بر اساس ترجیحات شخصی به طور خودکار در قبوض آب و برق هزینه های خانگی را ذخیره کند.

مرحله 1: مرور کلی

ترموستات خانه هوشمند از سنسور دما برای اندازه گیری دمای خانه استفاده می کند. این قرائت دما در برنامه ای قرار می گیرد که در آن تصمیم می گیرد که آیا سیستم تهویه مطبوع بر اساس دمای مورد نظر صاحبخانه نیاز به گرمایش یا خنک سازی خانه دارد.

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

مرحله 2: قطعات و مواد

(15) Jumper Wires

(4) مقاومت 220 اهم

(1) مقاومت 10 کیلو اهم

(1) سنسور دما

(1) مقاومت در برابر عکس

(1) گیربکس DAGU Mini DC

(1) دیود

(1) ترانزیستور

(1) مقاومت در برابر نور

(1) تخته نان

(1) آردوینو MKR

مرحله 3: مدار

جریان
جریان
جریان
جریان
جریان
جریان
جریان
جریان

شکل 1 = تصویر بزرگ سمت چپ

شکل 2 = بالا سمت راست

شکل 3 = وسط راست

شکل 4 = پایین سمت راست

شکل 1

با استفاده از نمودار بالا ، هر یک از سه LED خود را سیم کشی کردیم. ما از زمانی که با یک تخته نان بزرگ کار می کردیم ، هر LED را جدا کردیم. برای تخته های نان کوچکتر ، ممکن است لازم باشد LED ها را به هم نزدیک کنید. همچنین ، لازم نیست که تخته نان را تغذیه کنید زیرا LED ها قدرت کمی دارند. ما برای LED ها از اتصال 5V روی تخته نان استفاده نکردیم. هر اتصال از LED ها به آردوینو ما مانند سیم سبز بالا انجام شده است. LED های قرمز ، آبی و سبز ما به ترتیب به پین دیجیتال 8 ، 9 و 10 متصل شده اند که با سیم قرمز ، آبی و سبز در تصویر مشخص شده است.

شکل 2

نمودار بالا برای سیم کشی مقاومت به نور استفاده شد. ما چند اصلاح خودمان انجام دادیم. با این حال مفاهیم هنوز یکسان هستند مقاومت نوری باید به پین آنالوگ که در پین A1 داریم متصل شود. مطمئن شوید که از مقاومت 10 کیلو اهم برای مقاومت نزدیک به مقاومت نوری استفاده می کنید.

شکل 3

این نمودار مورد استفاده برای سیم کشی سنسور دما است. مطمئن شوید که ترانزیستور مورد استفاده در اینجا را با سنسور دما اشتباه نگیرید. آنها تقریباً یکسان به نظر می رسند. سنسور دما احتمالاً دارای TMP یا اسکریپت دیگری در سمت تخت سنسور است. سیم کشی در اینجا بسیار ساده است سنسور دمای ما با سیم سفید به پین آنالوگ A0 متصل شده است.

شکل 4

تصویر بالا برای سیم کشی گیربکس DAGU Mini DC استفاده شده است. سیم سبز متصل به گیربکس در واقع سیم قرمز متصل به آن در تصویر ما است. گیربکس در مدل ما با سیم نارنجی به پین دیجیتال 11 متصل شده است. مطمئن شوید که ترانزیستور مورد استفاده در اینجا را با سنسور دما اشتباه نگیرید. آنها تقریباً یکسان به نظر می رسند. سنسور دما احتمالاً دارای TMP یا اسکریپت دیگری در سمت تخت سنسور است. در اینجا باید از ترانزیستور استفاده کنید نه از سنسور دما.

مرحله 4: کد آردوینو

در اینجا مهمترین قسمت های کد توضیح داده شده است. کد فقط با آنچه در اینجا آورده شده کار نخواهد کرد. برای دریافت کد کامل کار ، پیوندی در انتهای صفحه وجود دارد.

هنگام ایجاد کد ترموستات قابل برنامه ریزی ، یکی از اولین کارهایی که انجام می دهید این است که سنسورها را تنظیم کرده و یک حلقه for ایجاد کنید که به طور مداوم دما را از سنسور دما دریافت می کند.

تنظیم سنسور دما و LED:

tempPin = 'A0'؛٪ تابع ناشناس را تعریف می کند که ولتاژ را به دما تبدیل می کند tempCfromVolts = @(ولت) (ولت -0.5)*100 ؛ samplingDuration = 5؛ ٪ ثانیه چه مدت می خواهیم نمونه گیری کنیم برای samplingInterval = 1؛ ٪ چند ثانیه بین خواندن دما٪ بردار زمان نمونه برداری samplingTimes = 0: samplingInterval: samplingDuration؛ ٪ تعداد نمونه ها را بر اساس مدت و فاصله numSamples = length (samplingTimes) محاسبه کنید. ٪ متغیرها و متغیرهای دما را از قبل برای تعدادی از خواندنی ها ذخیره می کند tempC = صفر (numSamples ، 1) ؛ tempF = tempC؛ this این بار از حلقه for برای اندازه گیری از پیش تعیین شده٪ قرائت دما استفاده می کنیم

حلقه for:

برای index = 1: numSamples٪ ولتاژ را در tempPin می خوانند و در ولت های متغیر ولت ذخیره می کنند = readVoltage (a، tempPin) ؛ tempC (index) = -1*tempCfromVolts (ولتاژ+0.3) ؛ tempF (index) = tempC (index)*(9/5) +32؛ Display نمایش خروجی قالب بندی شده با دمای فعلی fprintf ( دما در٪ d ثانیه٪ 5.2f C یا٪ 5.2f F. / n 'است ،… samplingTimes (index) ، tempC (index) ، tempF (index)) ؛ ٪ توجه داشته باشید که این خروجی صفحه نمایش تنها یکبار پس از اجرای کد٪ قابل مشاهده می شود مگر اینکه کد را در یک فایل اسکریپت ساده کپی/جایگذاری کنید. مکث (samplingInterval)٪ تاخیر تا پایان نمونه بعدی

در مرحله بعد ، منوی کاربری خود را ایجاد می کنیم تا کاربر تصمیم بگیرد که آیا ترموستات را در حالت دستی یا خودکار قرار دهد. اگر کاربر هیچ یک از دو گزینه را انتخاب نکند ، یک کد خطا ایجاد می کنیم.

منوی حالت دستی کاربر را ملزم می کند که یک عدد برای دمای ترموستات تعیین کند ، سپس خانه را گرم می کند ، خانه را خنک می کند یا بر اساس خوانش ها بیکار می شود. برای تنظیم این قسمت از کد ، از قرائت دما از سنسور دما استفاده می کنید و کدی ایجاد می کنید که وقتی دما از درجه حرارت بالاتر از دمای تنظیم شده باشد خانه را خنک می کند و هنگامی که دمای دما از دمای تنظیم شده پایین تر است خانه را گرم می کند.

پس از اندازه گیری دما ، می توانید کدی ایجاد کنید که به ترموستات می گوید وقتی دما از درجه حرارت بالاتر از دمای تنظیم شده است خانه را خنک کند و هنگامی که دمای دما پایین تر از دمای تنظیم شده است خانه را گرم کنید. برای نمونه اولیه ، چراغ آبی زمانی روشن می شود که ترموستات باید سرد شود و چراغ قرمز هنگام گرم شدن ترموستات روشن می شود.

تنظیم منو:

options = {'Automatic'، 'Manual'}؛ imode = menu ('Mode'، options) if imode> 0 h = msgbox (

حالت دستی کاربر را ملزم می کند که دما را برای ترموستات وارد کند ، سپس بر اساس خوانش های سنسور دما ، گرمایش خانه را یا خنک می کند. اگر سنسور دما از دمای تنظیم شده بیشتر باشد ، شروع به خنک سازی خانه می کند. اگر قرائت سنسور دما کمتر از دمای تنظیم شده باشد ، خانه را گرم می کند.

حالت دستی شروع می شود:

if imode == 2 dlg_prompts = {'چه دمایی را ترجیح می دهید؟'}؛ dlg_title = 'دما'؛ dlg_defaults = {'68'}؛ opts. Resize = 'روشن'؛ dlg_ans = inputdlg (dlg_prompts ، dlg_title ، 1 ، dlg_defaults ، opts) ؛ if isempty (dlg_ans) h = warndlg ("شما دستور inputdlg را لغو کردید")؛ else temp_manual = str2double (dlg_ans {1})٪ [افزودن اسلاید تنظیم دما تنظیم زیر] پایان

در داخل دستور if برای حالت دستی ، باید واسط منو را برای کاربر بنویسید تا دمای خانه مورد نظر خود را انتخاب کند و سپس دستور while را تنظیم کند که دمای خانه را تنظیم می کند.

تنظیم تنظیم دما:

در حالی که temp_manual <tempF writeDigitalPin (a، 'D9'، 1) writeDigitalPin (a، 'D11'، 1)؛ پایان در حالی که temp_manual> tempF writeDigitalPin (a، 'D8'، 1) writeDigitalPin (a، 'D11'، 1)؛ پایان

حالت خودکار به ورودی بیشتری نسبت به حالت دستی نیاز دارد. پس از ورود به حالت خودکار ، کاربر دمای معمولی و دور را برای ترموستات خود تنظیم می کند. پس از انتخاب این موارد ، ترموستات بر اساس کدام حالت است ، به حالت تنظیم دما باز می گردد

تنظیم حالت خودکار:

elseif imode == 1 dlg_prompts = {'عادی' ، 'دور'}؛ dlg_title = 'تنظیمات دما'؛ dlg_defaults = {'68' ، '64'}؛ opts. Resize = 'روشن'؛ dlg_ans = inputdlg (dlg_prompts ، dlg_title ، 1 ، dlg_defaults ، opts) ؛ if isempty (dlg_ans) h = warndlg ("شما دستور inputdlg را لغو کردید")؛ else temp_normal = str2double (dlg_ans {1}) temp_away = str2double (dlg_ans {2}) پایان انتظار برای (h) ؛ ٪ [افزودن مرحله آشکارساز حرکت در زیر]

همچنین باید سنسور حرکت را برای تنظیمات حالت خودکار تنظیم کنیم. وقتی آشکارساز حرکت حرکت را شروع می کند ، دما را بر روی دمای فعلی نگه می دارد ، در غیر این صورت روی تنظیم دمای دور تنظیم می شود.

Run_Motion_Detector (a، inf) while lightStr == 0 temp = temp_away while temp tempF writeDigitalPin (a، 'D6'، 1) هرگونه نور قرمز پین در موتور برای نوشتن فن نیز وجود دارد دیجیتال پین (a، 'D9'، 1)؛ پایان در حالی که lightStr == 1 temp = temp_normal writeDigitalPin (a، 'D6'، 1)٪ تغییر به هر پینی که نور معمولی در آن قرار دارد در حالی که temp temp موتور برای نوشتن فن دیجیتال پین (a ، 'D9' ، 1) ؛ پایان پایان

کد کامل را می توانید در اینجا پیدا کنید.

توصیه شده: