فهرست مطالب:

یک ماژول روشنایی با AtHome بسازید: 7 مرحله
یک ماژول روشنایی با AtHome بسازید: 7 مرحله

تصویری: یک ماژول روشنایی با AtHome بسازید: 7 مرحله

تصویری: یک ماژول روشنایی با AtHome بسازید: 7 مرحله
تصویری: Home Automation: How to use 7 Program 0.1s to 9999 minutes Relay Timer XY-LJ02 2024, نوامبر
Anonim
یک ماژول روشنایی با AtHome بسازید
یک ماژول روشنایی با AtHome بسازید

AtHome یک پروژه دانشجویی کاملاً منبع باز و سخت افزاری است که توسط گروه AtHome از Epitech ساخته شده است ، با هدف توسعه راه حل متصل از چندین ماژول سنسور جداگانه که با پایگاه داده خود میزبان ارتباط برقرار می کند و API مورد استفاده برای تغذیه برنامه تلفن هوشمند و برنامه وب را نشان می دهد. ماژول ها محیط داخلی خانه را کنترل می کنند و می توانند بازخورد بصری را به کاربر بدهند ، از سبز (خوب) به قرمز (بد) و داده های منتقل شده توسط کاربر از طریق ارتباط سریال یک ماژول یا روی آن قابل مشاهده است. در صورت استفاده از برنامه های ما

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

این ماژولها اساساً با یک برد سازگار با آردوینو ساخته شده اند (یک هسته آردوینو تا حدی باید دارای جریان ، وایر و پشتیبانی جریان UART باشد) ، یک LED (قرمز یا RGB) در صورت بروز مشکل قرمز می شود ، سنسور ، منبع تغذیه (منبع تغذیه دیوار یا باتری) و یک مورد برش لیزری.

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

مرحله 1: جمع آوری اجزاء

جمع آوری اجزاء
جمع آوری اجزاء

برای این پروژه ، برای ساخت ماژول AtHome خود به چند جزء نیاز دارید:

  • 1x برد سازگار با آردوینو: در اینجا من از Arduino UNO استفاده می کنم (اما با بردهای دیگر مانند TI Launchpads و بردهای ESP8266 نیز کار می کند)
  • سنسور 1x: من از سنسور روشنایی TSL2561 استفاده می کنم (لیست سنسورهای پشتیبانی شده در اسناد کتابخانه ما موجود است)
  • 1x led: من در اینجا از LED RGB Grove Chainable استفاده می کنم (اما می تواند یک لامپ قرمز ساده یا NeoPixel باشد)
  • سیم های دوپونت

لیست اجزای سازگار در اسناد پروژه ما موجود است.

مرحله 2: نصب کتابخانه ما

نصب کتابخانه ما
نصب کتابخانه ما
نصب کتابخانه ما
نصب کتابخانه ما

برای نصب کتابخانه ما ، باید از مخزن ما بارگیری کنید (بعداً آن را در لیست Arduino IDE و PlatformIO منتشر خواهیم کرد) با این پیوند:

gitlab.com/Woodbox/Framework/-/jobs/artifacts/master/download؟job=deploy

سپس ، وارد Arduino IDE شوید و "Sketch> Include Library> Add. ZIP Library…" را انتخاب کنید. سپس فایل فشرده ای با نام "artifacts.zip" را انتخاب کرده و روی "OK" کلیک کنید.

مرحله 3: نصب کتابخانه های مورد نیاز

نصب کتابخانه های مورد نیاز
نصب کتابخانه های مورد نیاز
نصب کتابخانه های مورد نیاز
نصب کتابخانه های مورد نیاز
نصب کتابخانه های مورد نیاز
نصب کتابخانه های مورد نیاز

برای کار ، کتابخانه ما به چند کتابخانه دیگر نیاز دارد تا بر روی رایانه شما نصب شوند:

  • کتابخانه Arkhipenko TaskScheduler
  • کتابخانه سنسور نور دیجیتال SEEED Studio Grove
  • کتابخانه SEEED Studio Grove Chainable RGB LED
  • کتابخانه Adofruit NeoPixel

با رفتن به "Sketch"> "Include Library"> "Manage libraries …" می توانید آنها را از طریق مدیر کتابخانه Arduino IDE نصب کنید.

در پنجره جدیدی که باز می شود ، نام کتابخانه ای را که می خواهید نصب کنید در نوار جستجوی سفید بنویسید ، سپس روی بلوک آن کلیک کنید. یک دکمه "نصب" ظاهر می شود ، فقط باید روی آن کلیک کنید و IDE آن را بارگیری کرده و برای شما نصب می کند.

مرحله 4: جمع آوری ماژول

مونتاژ ماژول
مونتاژ ماژول

ما با سنسور شروع می کنیم. پین VCC TSL2561 را به سیم 5 ولت آردوینو ، پایه GND سنسور را به یکی از پایه های GND آردوینو و پایه های SDA و SCL سنسور را به پین های SDA و SCL آردوینو وصل کنید. به حالا تمام شدی!

اکنون ، پین VCC LED Grove Chainable RGB را به پین 5 ولت آردوینو و پایه GND LED را به GND دوم آردوینو وصل کنید. اگر آردوینو تنها یک پین 5 ولت هستید ، می توانید از یک تخته نان برای اتصال 5 ولت آردوینو به ردیف + نانبرد و استفاده از پین 5 ولت اجزای خود روی آن استفاده کنید ، یا آنها را روی یک تخته نوار یا به یکدیگر لحیم کنید. از اتصالات wago یا هر چیزی که ترجیح می دهید استفاده کنید. اکنون ، پین CI LED خود را به پین 7 آردوینو و پین DI LED خود را به پین 8 آردوینو متصل کنید. اگر چنین LED ندارید ، نگران نباشید ، این امکان وجود دارد که از LED داخلی برد آردوینو یا یک کلاسیک فقط با کمی تغییر کد استفاده کنید.

مرحله 5: نوشتن طرح ماژول Luminosity

نوشتن طرح ماژول درخشندگی
نوشتن طرح ماژول درخشندگی

بیایید یک طرح جدید ایجاد کنیم و کد ماژول خود را بنویسیم.

اگر به توضیح طرح علاقه ای ندارید ، فقط می توانید آن را در IDE Arduino خود کپی و جایگذاری کنید:

#عبارتند از

با استفاده از LightModule = AtHomeModule ؛ جریان *جریان = {& Serial، nullptr}؛ GroveChainableLED:: Pins grovePins = {7 ، 8} ؛ چراغ GroveChainableLED (& grovePins) ؛ ماژول LightModule *= LightModule:: getInstance ()؛ void setup () {// کد راه اندازی خود را در اینجا قرار دهید تا یکبار اجرا شود: Serial.begin (9600)؛ module-> setStreams (جریان) ؛ GroveDigitalLightSensor *lightSensor = new GroveDigitalLightSensor ()؛ module-> setSensor (lightSensor) ؛ module-> setDisplay (& led)؛ module-> setup ()؛ } void loop () {// کد اصلی خود را در اینجا قرار دهید تا بارها اجرا شود: module-> run ()؛ }

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

برای شروع ، ما باید کتابخانه خود را در طرح خود قرار دهیم و این خط را در بالای طرح بنویسیم:

#عبارتند از

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

برای مثال فرض کنید من می خواهم این کادر "LightModule" نامگذاری شود ، زیرا از آن برای پیاده سازی یک ماژول نظارت بر روشنایی استفاده می شود و من می خواهم فقط 1 مقدار را در یک زمان حفظ کنم. میزان روشنایی در سنسور TSL2561 ما در نوع لوکس بصورت یکپارچه نشان داده شده است که توسط رایانه ها به صورت uint16_t نشان داده شده است. نام مستعار ما به این شکل خواهد بود:

با استفاده از LightModule = AtHomeModule ؛

کلمه کلیدی "استفاده" به این معنی است که ما یک نام مستعار ایجاد می کنیم و نامی که ما آن را بلافاصله پس از آن می گذاریم مطابق با دنباله بعد از کاراکتر "=" است.

"AtHomeModule" نام واقعی این کادر است که ما نام جدیدی بر آن می گذاریم و پارامترهای تعریف مقدار و تعداد مقادیر ذخیره شده در حافظه بین "" ذکر شده است.

حالا ، وقتی بعداً از نام "AtHomeModule" استفاده می کنیم ، آردوینو می داند که اشاره به نام کامل "AtHomeModule" دارد.

اگر می خواهید جعبه شما بتواند 5 مقدار را به جای 1 در حافظه خود نگه دارد ، فقط باید "1" را با "5" جایگزین کنید و آردوینو نوع دیگری از جعبه را برای شما ایجاد می کند که می تواند آنچه شما می خواهید انجام دهد. با این حال ، توجه داشته باشید که اگر ماژول طوری برنامه ریزی شده است که مقادیر خود را قبل از زمان اندازه گیری موثر 5 مقدار سنسور ارسال کند ، هرگز 5 مورد از آنها را ارسال نمی کنید زیرا از آخرین بارگذاری فقط مقادیر جدید را ارسال می کند.

در مرحله بعد ، ما باید آرایه ای از اشاره گرها را در جریانهای آردوینو ایجاد کنیم که توسط ماژول برای برقراری ارتباط استفاده می شود ، که همیشه توسط keyworkd "nullptr" خاتمه می یابد. در اینجا ، من فقط از جریان "Serial" آردوینو استفاده می کنم که از طریق پورت USB با کامپیوتر ارتباط برقرار می کند ، بنابراین آرایه به این شکل است:

جریان *جریان = {& Serial، nullptr}؛

کاراکتر "*" به این معنی است که نوع اشاره گر است (محل عنصر ، نه خود عنصر) و براکت "" به این معنی است که در آردوینو یک آرایه است ، بنابراین می توانیم چندین مقدار را قرار دهیم.

در مرحله بعد ، ما باید LED خود را ایجاد کنیم. برای این کار باید دو خط زیر را بنویسیم ؛

GroveChainableLED:: Pins grovePins = {7 ، 8} ؛

چراغ GroveChainableLED (& grovePins) ؛

اگر LED Grove RGB ندارید اما باز هم بازخورد بصری می خواهید ، می توانید این کار را با یک تغییر ساده در طرح انجام دهید. دو خط قبلی را با این خط جایگزین کنید:

LED تک رنگ (LED_BUILTIN) ؛

در این پیکربندی ، چراغ سبز داخلی روشن می شود تا زمانی که مقدار کنترل شده برای سلامتی مناسب باشد و هنگامی که از اتصال خارج است خاموش می شود. اگر ترجیح می دهید زمانی که پیوند ندارد روشن شود (زیرا برای مثال از LED قرمز به جای چراغ سبز در پین 13 استفاده می کنید) می توانید به جای آن از این خط استفاده کنید:

LED تک رنگ (LED_BUILTIN ، درست) ؛

مرحله بعدی این است که ماژول خود را ایجاد کنیم. این اولین باری است که ما مکان آن را در حافظه با فراخوانی روش "getInstance" دریافت می کنیم ، مانند این:

ماژول LightModule *= LightModule:: getInstance ()؛

سپس ، ما باید پارامترها را در تابع "setup ()" آردوینو تنظیم کنیم ، با راه اندازی اولیه پورت "Serial" به طور معمول در طرح های آردوینو:

Serial.begin (9600)؛

ما با نوشتن این خط حسگر نور را ایجاد می کنیم:

GroveDigitalLightSensor *lightSensor = new GroveDigitalLightSensor ()؛

سپس ، ما به واحد خود می گوییم که از آرایه اشاره گرهای ما در Arduino Stream برای برقراری ارتباط از طریق آنها استفاده کند:

module-> setStreams (جریان) ؛

ما همچنین به ماژول خود می گوییم از سنسور نور ما برای نظارت بر شدت نور در محل ماژول استفاده کند:

module-> setSensor (lightSensor) ؛

ما به ماژول خود می گوییم که از LED ما برای بازخورد بصری استفاده کند:

module-> setDisplay (& led)؛

در نهایت ، ما به ماژول خود می گوییم که آماده است هرگونه پیکربندی داخلی مورد نیاز خود را با فراخوانی عملکرد "setup" خود انجام دهد:

module-> setup ()؛

آخرین مرحله ما این است که تابع "run ()" ماژول خود را فراخوانی کنیم ، که طوری طراحی شده است که در هر تکرار تابع "حلقه" آردوینو با نوشتن این خط در داخل تابع "حلقه" فراخوانی شود:

module-> run ()؛

اکنون ، طرح ما بالاخره آماده بارگیری در آردوینو و آزمایش ماژول ما است!

مرحله 6: آزمایش ماژول AtHome ما

ماژول AtHome ما را آزمایش کنید
ماژول AtHome ما را آزمایش کنید
ماژول AtHome ما را آزمایش کنید
ماژول AtHome ما را آزمایش کنید

برای بارگذاری طرح در Arduino ، با رفتن به بخش "Tools"> "Port"> "[COMx or/dev/x] (Arduino/Genuino UNO) ، برد Arduino UNO خود را انتخاب کنید.

آخرین مورد ، کافی است روی دکمه "بارگذاری" (دکمه دایره ای با فلش سمت راست ، نماد دوم نوار ابزار) کلیک کنید تا طرح را در صفحه خود بارگذاری کنید.

انجام شد! اکنون ماژول شما باید کار کند و مقادیری را که در Serial Monitor of Arduino قابل مشاهده است به رایانه شما ارسال کند. می توانید با باز کردن "Serial Monitor" آردوینو در منوی "Tools" آن را بررسی کنید و باید خروجی شبیه تصویر عنوان دوم این مرحله داشته باشید:)

مرحله 7: ایجاد یک مورد برای ماژول

ساخت مورد برای ماژول
ساخت مورد برای ماژول

می توانید یک جعبه جعبه ساده برای ماژول خود با برش لیزری در یک تخته سه لا تخته سه میلی متری بسازید.

برای ساخت جعبه های جعبه ای خود ، از makercase برای آماده سازی یک الگو در ابعاد دلخواه که بعداً سفارشی می کنیم ، استفاده می کنیم. فایل svg ماژول روشنایی متصل به این مرحله را خواهید یافت.

سپس فقط صورتها را بجز یکی بچسبانید تا بعداً بتوانید آن را باز کنید ، مدار خود را داخل بگذارید و LED را در سوراخ بدنه بچسبانید (ما از نوار شفاف برای پر کردن حفره استفاده می کنیم و نور را پخش می کنیم و LED را در جلو می چسبانیم. از آن)

حالا فقط یک باتری برای تغذیه آردوینو اضافه کنید ، کیس را ببندید و ماژول شما آماده است و باید خوب به نظر برسد:)

توصیه شده: