فهرست مطالب:

سیستم خانه هوشمند آردوینو: 7 مرحله
سیستم خانه هوشمند آردوینو: 7 مرحله

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

تصویری: سیستم خانه هوشمند آردوینو: 7 مرحله
تصویری: همه چیز درباره نحوه عملکرد سیستم صوتی خانه هوشمند 2024, جولای
Anonim
سیستم خانه هوشمند آردوینو
سیستم خانه هوشمند آردوینو
سیستم خانه هوشمند آردوینو
سیستم خانه هوشمند آردوینو

در این دستورالعمل به شما نشان می دهیم که چگونه می توانید سیستم خانه هوشمند خود را با طراح برنامه MATLAB با یک تخته قرمز Sparkfun ایجاد کنید. این دستورالعمل را می توان برای کمک به درک اولیه از طراح برنامه MATLAB و همچنین استفاده از مقاومت در برابر نور ، سرووموتور و سنسور حرکت PIR استفاده کرد.

مرحله 1: برای شروع: مواد

این پروژه به مواد زیر نیاز دارد:

- Arduino Uno (برای این پروژه از تخته قرمز Sparkfun استفاده کردیم)

- یک مقاومت نوری

- یک موتور مینی سروو

- یک موتور سروو پیوسته

- یک سنسور حرکت PIR

- یک سنسور دما

- 2 عدد LED

- سیم و مقاومت در صورت نیاز

مرحله 2: مرحله 2: نزدیک شدن به مشکل برای حل

هدف اصلی این پروژه ایجاد یک سیستم خانه هوشمند با استفاده آسان با کدگذاری برد Arduino Uno با MATLAB بود. ما ابتدا فقط به کار با سنسور دما و رطوبت فکر کردیم ، اما اگر با این دو سنسور بمانیم ، سیستم خانه هوشمند ما به راحتی برای مخاطبان عمومی قابل فروش نخواهد بود. ما تصمیم گرفتیم که بخواهیم یک سیستم انرژی خانه هوشمند ایجاد کنیم که به عنوان یک ترموستات و سیستم امنیتی هوشمند عمل کند. در نهایت ، ما می خواستیم با AppDesigner MATLAB کار کنیم تا کاربر بتواند به راحتی خانه هوشمند را به دلخواه تغییر دهد.

مرحله 3: مرحله 3: پیکربندی GUI و Basic Code Flow

مرحله 3: پیکربندی GUI و Basic Code Flow
مرحله 3: پیکربندی GUI و Basic Code Flow

برای شروع باید MATLABs AppDesigner را باز کرده و موارد زیر را قرار دهید:

دو فیلد ویرایش عددی برای ورودی آستانه گرم و سرد

یک دکمه برای باز کردن قفل درب

و چهار چراغ نشانگر برای شومینه ، در ، فن و چراغ سیل.

دو برچسب برای ارتباط با کاربر.

برای این پروژه کار با متغیرهای جهانی و عملکرد راه اندازی در طراح آسان تر شد. در تابع راه اندازی به این متغیرها نیاز دارید:

جهانی a

a = arduino ("COM3" ، "uno" ، "Libraries" ، "Servo") ؛ global s global p global hotUI global coldUI global unlock global global global curr_temp global int_light

در حال حاضر ما فقط یک متغیر برای یک متغیر داریم تا کامپیوتر شما بتواند آردوینو را بخواند. بسته به پورت رایانه شما ممکن است COM3 متفاوت باشد.

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

توجه: ما هیچ دستورالعمل سیم کشی برای سیستم ندادیم. ما به دفترچه راهنمای ارائه شده با برد قرمز SparkFun اشاره کردیم.

مرحله 4: مرحله 3: راه اندازی سیستم ترموستات

مرحله 3: راه اندازی سیستم ترموستات
مرحله 3: راه اندازی سیستم ترموستات
مرحله 3: راه اندازی سیستم ترموستات
مرحله 3: راه اندازی سیستم ترموستات

عملکرد ترموستات به شرح زیر است:

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

برای کدگذاری سیستم ترموستات:

ما از طریق عملکرد راه اندازی شروع به نمایش دمای فعلی می کنیم و اجازه می دهیم کاربر آستانه سرد و گرم خود را وارد کند.

p = 'A0' pin پین مقاومت در برابر نور

ولت = خواندن ولتاژ (a ، temp) ؛ celc = (ولت 0.5).*100؛ curr_temp = celc*9/5+32 ؛ app. Label_4. Text = num2str (curr_temp) ؛ ٪ شماره برچسب می تواند مکث را تغییر دهد (10) ؛ ٪ ممکن است بخواهد تغییر کند !!!!!

سپس سیستم ترموستات را در ویژگی Timer تکمیل می کنیم.

curr_temp جهانی

global coldUI global a hotUI global if curr_temp hotUI app. FanStateLamp. Color = [0.47 0.67 0.19]؛ ٪ سبز چراغ GUI را سبز می نویسد 0.90 0.90 0.90]؛ ٪ این همه لامپهای GUI و برنامه شومینه را خاموش می کند. FanStateLamp. Color = [0.9 0.9 0.9]؛ writeDigitalPin (a، 'D13'، 0)؛ پایان

مرحله 5: مرحله 4: راه اندازی سیستم درب

مرحله 4: راه اندازی سیستم درب
مرحله 4: راه اندازی سیستم درب

عملکرد درب به شرح زیر عمل می کند:

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

برای پیکربندی سروو موتور و مقاومت در برابر عکس:

برای کدگذاری سیستم درب:

ما از طریق عملکرد راه اندازی شروع می کنیم تا خوانش های اولیه نور را انجام دهیم.

s = سروو (a ، 'D9')٪ ممکن است پین بر اساس سیم کشی تغییر کند

app. Label_4. Text = 'لطفاً در را برای کالیبراسیون سیستم باز کنید' ؛ مکث (15) ؛ ٪ این به کاربر زمان می دهد تا در را باز کند int_light = readVoltage (a، p)؛ app. Label_4. Text = 'شما می توانید انگشت خود را بردارید' ؛

در مرحله بعد ، کد را در ویژگی Timer تکمیل می کنیم

باز کردن قفل جهانی

global int_light global s global a٪ برای مقایسه curr_light = readVoltage (a، p) یک خوانش نور فعلی دریافت کنید؛ ٪ - قفل در - اگر int_light <curr_light writePosition (s، 1)٪ موقعیت های سروو ممکن است در هر مکث موتور متفاوت باشد (0.5) ؛ app. DoorStateLamp. Color = [0.47 0.67 0.19]؛ پایان٪ - باز کردن قفل درب - در صورت باز شدن == 1234 مکث (0.5) ؛ writePosition (s ،.52) app. DoorStateLamp. Color = [0.85 0.33 0.10]؛ پایان

در نهایت ما دکمه باز کردن قفل تماس را ایجاد می کنیم. هنگامی که کاربر دکمه باز کردن را فشار می دهد ، به متغیر باز شدن قفل شماره ای اختصاص داده می شود که می تواند دستور if نهایی را در ویژگی Timer تکمیل کند.

باز کردن قفل جهانی

باز کردن قفل = 1234؛

مرحله 6: مرحله 6: راه اندازی سیستم Flood Light

مرحله 6: راه اندازی سیستم Flood Light
مرحله 6: راه اندازی سیستم Flood Light

عملکرد چراغ سیل به شرح زیر عمل می کند:

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

برای پیکربندی سیستم نور سیل:

برای کدگذاری سیستم نور سیل:

این بار می توانیم به ویژگی Timer برویم زیرا نیازی به نوشتن متغیرهای اضافی نداریم.

human_detected = readDigitalPin (a ، 'D2') ؛ درصورتیکه human_detected == 0 writeDigitalPin (a، 'D7'، 1)٪ Pin ممکن است app. FloodLightStateLamp. Color = [0.47 0.67 0.19]؛ elseif human_detected == 1 app. FloodLightStateLamp. Color = [0.9 0.9 0.9 0.9] ؛ writeDigitalPin (a ، 'D7'، 0) پایان

مرحله 7: نتیجه گیری

اکنون که پیش نویس GUI خود را با طراح برنامه و کد خود برای Arduino در اختیار دارید ، آماده اید ویرایش های خود را انجام دهید یا Arduino خود را وصل کنید و بروید!

توصیه شده: