فهرست مطالب:
- مرحله 1: کمی بیشتر جزئیات
- مرحله 2: جزئیات بیشتر - حسگرها
- مرحله 3: در جزئیات بیشتر - دنباله IFTTT
- مرحله 4: در جزئیات بیشتر - Blynk
- مرحله 5: کد
- مرحله 6: همه چیز را با هم ترکیب کنید
- مرحله 7: افکار
تصویری: IDC2018IOT به من بگو کی AC را خاموش کنم: 7 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:56
بسیاری از ما ، به ویژه در تابستان ، تقریباً بدون توقف از AC استفاده می کنیم ، در حالی که در واقعیت در زمان های خاصی از روز می توانیم فقط پنجره ای را باز کنیم و از نسیم خوبی لذت ببریم. همچنین ، ما شخصاً متوجه شدیم که حتی گاهی اوقات فراموش می کنیم که هنگام خروج از اتاق ، AC را خاموش کرده و انرژی و پول را هدر می دهیم.
راه حلی که ما ایجاد می کنیم ، دمای داخل را با خارج مقایسه می کند و هنگامی که آنها به اندازه کافی نزدیک باشند ، از طریق Facebook Messanger به ما اطلاع می دهد که زمان باز کردن یک پنجره و استراحت به AC است.
همچنین ، زمانی که AC را فراموش کرده و از اتاق خارج شدیم ، مکانیسم دیگری برای اطلاع رسانی به ما ایجاد می کنیم.
مرحله 1: کمی بیشتر جزئیات
ما داده ها را از 4 سنسور مختلف جمع آوری می کنیم:
- دو سنسور DHT دمای داخل خانه و خارج از خانه را جمع آوری می کنند.
- یک سنسور PIR حرکت در اتاق را تشخیص می دهد.
- از یک میکروفون Electret برای تشخیص باد خارج شده از دریچه AC استفاده می شود ، یک راه ساده و مطمئن برای تعیین اینکه آیا AC روشن است.
داده های حاصل از حسگرها پردازش شده و به Blynk ارسال می شود و در رابط کاربری ایجاد شده نمایش داده می شود. همچنین ، ما رویدادهای IFTTT را فعال می کنیم تا به کاربر اطلاع دهیم که او می تواند به جای AC پنجره ای را باز کند ، و هنگامی که AC را فراموش کرد و اتاق را برای مدت زمان از پیش تعیین شده ترک کرد.
رابط Blynk همچنین راهی برای تغییر تنظیمات مربوطه به دلخواه کاربر به ما می دهد ، زیرا بعداً در مورد جزئیات بیشتر بحث خواهیم کرد.
قطعات مورد نیاز:
- ماژول WiFi - ESP8266
- سنسور PIR
- سنسورهای دما DHT11/DHT22 x2.
- مقاومتهای 10k/4.7k (DHT11 - 4.7k ، DHT22 - 10k ، PIR - 10k).
- میکروفون الکتریت.
- پرش کننده ها
- کابل های بلند (سیم تلفن کار بسیار خوبی انجام می دهد).
کد کامل پروژه در انتها همراه با نظرات در سراسر کد ضمیمه شده است.
از نظر منطقی ، دارای چندین لایه مختلف عملکرد است:
- داده های سنسورها در فواصل 3 ثانیه ای خوانده می شود زیرا دقیق تر نشان می دهد و نیازی به بیش از آن نیست.
- یک قسمت از کد ، پیگیری وضعیت AC با مقادیر حاصل از میکروفون الکترت است که روی دهانه AC قرار می گیرد.
- بخش دیگر پیگیری میزان خوانده شده از سنسورهای دما و تفاوت استفاده قابل قبول برای چرخاندن AC و باز کردن پنجره به جای آن است. ما به دنبال لحظه ای هستیم که دما به اندازه کافی نزدیک شود.
- بخش سوم پیگیری حرکت در اتاق است. اگر هیچ حرکت عمده ای را تشخیص ندهد (روش بررسی اصلی به زودی توضیح داده می شود) در بازه زمانی مشخص شده توسط کاربر ، و حالت AC روشن باشد ، یک اعلان برای کاربر ارسال می شود.
- اعلان ها از طریق راه اندازی IHTTT Webhook انجام می شوند که پیام های از پیش تعیین شده را از طریق فیس بوک مسنجر به کاربر ارسال می کند.
- آخرین قسمتی که باید به آن توجه شود ، قسمتی است که رابط Blynk را مدیریت می کند ، هم با ایجاد تغییراتی که کاربر در متغیرها ایجاد می کند و هم از طرف دیگر - انتقال داده ها به رابط Blynk برای مشاهده کاربر.
مرحله 2: جزئیات بیشتر - حسگرها
بیا شروع کنیم.
اول ، ما باید مطمئن شویم که هر دو سنسور DHT ما وقتی در یک مکان قرار می گیرند ، دمای یکسانی را می خوانند. برای این کار ، ما یک طرح ساده در انتهای این بخش (CompareSensors.ino) ضمیمه کردیم. هر دو سنسور را وصل کنید و مطمئن شوید که نوع سنسورهای DHT را در طرح با توجه به سنسورهایی که دارید تغییر دهید (به طور پیش فرض یک DHT11 و یک DHT22 است ، بنابراین می توانید نحوه برخورد با هر دو را در کد مشاهده کنید). مانیتور سریال را باز کنید و بگذارید برای مدتی کار کند ، مخصوصاً اگر از سنسورهای DHT11 استفاده می کنید ، زیرا آنها بیشتر طول می کشد تا خود را با تغییرات دما وفق دهند.
به تفاوت بین حسگرها توجه کنید و بعداً آن را در کد اصلی در متغیر "offset" وارد کنید.
قرار دادن سنسورها:
یک سنسور DHT باید روی دیوار بیرونی خانه قرار گیرد ، بنابراین آن را به برخی از کابل های بلند وصل کنید ، به حدی که بتوانید به ESP8266 خود در داخل اتاق برسید و آن را در خارج قرار دهید (به راحتی از طریق پنجره انجام می شود). سنسور DHT دیگر باید روی تخته نان ، داخل اتاقی که از AC در آن استفاده می کنیم ، قرار گیرد.
میکروفون الکتریکی نیز باید به کابل های طولانی متصل شود و در محلی قرار گیرد که باد خروجی از AC به آن برخورد کند.
در نهایت ، سنسور PIR باید در محلی رو به مرکز اتاق قرار گیرد تا بتواند هرگونه حرکت در اتاق را ثبت کند. توجه داشته باشید که سنسور دارای دو دستگیره کوچک است که یکی تأخیر را کنترل می کند (مدت زمانی که سیگنال HIGH تشخیص حرکت بالا نگه داشته می شود) و دیگری حساسیت را کنترل می کند (تصویر را ببینید).
ممکن است لازم باشد با آن بازی کنید تا زمانی که به خواندن کتابی که از آن راضی هستید ، برسید. برای ما ، بهترین نتیجه تأخیر در تمام راه به سمت چپ (کمترین مقدار) و حساسیت درست در وسط بود. این کد چاپهای سریالی را ارائه می دهد که شامل خواندن تمام سنسورها می شود که اشکال زدایی چنین مشکلاتی را بسیار ساده تر می کند.
اتصال سنسورها:
شماره پین هایی که استفاده کردیم به شرح زیر است (و در کد اصلی قابل تغییر است):
سنسور DHT خارج - D2.
داخل سنسور DHT - D3.
Electret - A0 (پین آنالوگ).
PIR - D5.
طرحهای اتصال هر یک از آنها را می توان به راحتی با استفاده از جستجوی تصویر در Google همراه با چیزی در راستای "شماتیک شماتیک مقاومت PIR Arduino" پیدا کرد (ما نمی خواهیم آنها را در اینجا کپی کرده و از خطوط حق نسخه برداری عبور کنیم:)).
ما همچنین تصویری از تخته نان خود را ضمیمه کردیم ، احتمالاً دنبال کردن اتصالات واقعاً دشوار است ، اما می تواند احساس خوبی برای آن ایجاد کند.
همانطور که احتمالاً می دانید ، مواردی که در اولین باری که آنها را به هم وصل می کنیم به ندرت کار می کنند. به همین دلیل ما عملکردی را ایجاد کردیم که خواندن سنسورها را به آسانی می خواند ، بنابراین می توانید راه خود را برای کارکرد آنها اشکال زدایی کنید. اگر نمی خواهید هنگام اشکال زدایی کد سعی کند به Blynk متصل شود ، فقط "Blynk.begin (author، ssid، pass)؛" از قسمت راه اندازی کد ، آن را اجرا کرده و مانیتور سریال را باز کنید تا چاپ ها را ببینید. همچنین تصویری از چاپ ها را ضمیمه کردیم.
مرحله 3: در جزئیات بیشتر - دنباله IFTTT
بنابراین ما می خواهیم در دو سناریو مطلع شویم:
1. دمای بیرون به اندازه کافی نزدیک به دمای داخلی است که AC با آن کار می کند.
2. ما برای مدت طولانی اتاق را ترک کرده ایم و AC هنوز کار می کند.
IFTTT ما را قادر می سازد تا خدمات مختلفی را که معمولاً با یکدیگر تعامل ندارند ، به روشی بسیار ساده متصل کنیم. در مورد ما ، به ما امکان می دهد اعلان ها را به راحتی از طریق بسیاری از خدمات ارسال کنیم. ما فیس بوک مسنجر را انتخاب کردیم ، اما پس از کار با فیس بوک مسنجر ، می توانید آن را به راحتی به هر سرویس دیگری که انتخاب می کنید تغییر دهید.
فرآیند:
در وب سایت IFTTT روی نام کاربری خود (گوشه سمت راست بالا) کلیک کنید و سپس "New Applet" "Webhooks" را به عنوان ماشه انتخاب کنید ("این") ، و "دریافت درخواست وب" را انتخاب کنید. نام رویداد را تنظیم کنید (به عنوان مثال اتاق_خالی).
برای سرویس فعال شده ، عمل ("آن") ، Facebook Messenger> Send message را انتخاب کنید و پیامی را که می خواهید در صورت وقوع این رویداد دریافت کنید تایپ کنید (به عنوان مثال "سلام ، به نظر می رسد که AC را فراموش کرده اید:).
در حالی که ما اینجا هستیم ، شما همچنین باید کلید مخفی خود را پیدا کنید که باید در محل مناسب کد قرار دهید.
برای یافتن کلید مخفی خود به https://ifttt.com/services/maker_webhooks/settings بروید در آنجا آدرس اینترنتی با کلید خود در قالب زیر پیدا خواهید کرد:
مرحله 4: در جزئیات بیشتر - Blynk
ما همچنین یک رابط می خواهیم که دارای ویژگی های زیر باشد:
1. قابلیت تنظیم مدت زمان خالی بودن اتاق با کارکرد AC قبل از اینکه به ما اطلاع داده شود
2. قابلیت انتخاب میزان نزدیک بودن دمای بیرون به داخل.
3. صفحه نمایش برای خواندن از سنسورهای دما
4. LED به ما می گوید وضعیت AC (روشن/خاموش).
5. و از همه مهمتر ، یک صفحه نمایش برای نشان دادن میزان $ $ $ و انرژی ما.
نحوه ایجاد رابط Blynk:
اگر هنوز برنامه Blynk را ندارید ، آن را در تلفن خود بارگیری کنید. وقتی برنامه را باز می کنید و یک پروژه جدید ایجاد می کنید ، مطمئن شوید که دستگاه مناسب را انتخاب کرده اید (به عنوان مثال ESP8266).
ایمیلی با توکن احراز هویت دریافت خواهید کرد که آن را در کد مناسب در محل مناسب وارد می کنید (همچنین اگر آن را از دست دادید می توانید بعداً آن را برای خود مجدداً ارسال کنید).
ویجت های جدید را روی صفحه خود قرار دهید ، روی علامت + در بالا کلیک کنید. ویدجت ها را انتخاب کنید و سپس روی ویجت کلیک کنید تا تنظیمات آن وارد شود. ما تصاویری از تنظیمات را برای همه ابزارک هایی که استفاده کردیم ، به عنوان مرجع شما اضافه کرده ایم.
پس از اتمام کار با برنامه و هنگامی که در نهایت می خواهید از آن استفاده کنید ، کافی است بر روی نماد "پخش" در گوشه سمت راست بالا کلیک کنید تا برنامه Blynk اجرا شود. همچنین می توانید زمان اتصال ESP8266 خود را مشاهده کنید.
توجه داشته باشید - دکمه "به روز رسانی" برای وصول دما و وضعیت AC برای مشاهده ما در برنامه استفاده می شود. هنگام تغییر تنظیمات (مانند اختلاف دما) ، نیازی به آن نیست ، زیرا به طور خودکار تحت فشار قرار می گیرند.
مرحله 5: کد
ما تلاش زیادی کردیم تا هر قسمت از کد را به گونه ای مستند کنیم که درک آن را تا حد ممکن آسان کند.
قسمت هایی از کد که قبل از استفاده باید تغییر دهید (به عنوان کلید نویسنده Blynk ، SSID و رمز وای فای شما و غیره …) با کامنت //* change* همراه است تا بتوانید به راحتی آنها را جستجو کنید.
شما باید کتابخانه های مورد استفاده در کد را داشته باشید ، می توانید آنها را از طریق Arduino IDE با کلیک روی Sketch> Include Libraries> Manage Libraries نصب کنید. در آنجا می توانید نام کتابخانه را جستجو کرده و آن را نصب کنید. همچنین ، مطمئن شوید که فایل generic8266_ifttt.h را در همان محل ACsaver.ino قرار داده اید.
یک قسمت از کد که ما در اینجا توضیح می دهیم زیرا نمی خواهیم کد را به هم بریزیم ، نحوه تصمیم گیری در مورد تغییر وضعیت AC از روشن به خاموش و حالت اتاق از خالی به عدم خالی است.
ما هر 3 ثانیه از روی سنسورها می خوانیم ، اما از آنجا که سنسورها 100 accurate دقیق نیستند ، ما نمی خواهیم که یک خواندن وضعیتی را که ما فکر می کنیم در حال حاضر در اتاق است تغییر دهد. برای حل این مشکل ، کاری که کد انجام می دهد این است که آیا ما یک شمارنده داریم که وقتی به نفع "AC is on" خوانده می شود ، ++ می زنیم و در غیر این صورت. سپس ، وقتی به مقدار تعریف شده در SWITCHAFTER (پیش فرض روی 4) می رسیم ، حالت را به "AC is on" تغییر می دهیم ، وقتی به -SWITCHAFTER (منفی همان مقدار) می رسیم ، حالت را به "AC is off" تغییر می دهیم."
تأثیر زمان تغییر آن ناچیز است و ما معتقدیم که تنها در تشخیص تغییرات درست بسیار قابل اعتماد است.
مرحله 6: همه چیز را با هم ترکیب کنید
خوب ، بنابراین همه سنسورها در جای خود هستند و به درستی کار می کنند. رابط Blynk (با پین های مجازی صحیح!) تنظیم شده است. و رویدادهای IFTTT منتظر ماشه ما هستند.
شما کلید مخفی IFTTT را در کد ، کلید autor از Blynk ، SSID وای فای و گذرواژه خود را وارد کرده اید و حتی بررسی کرده اید که سنسورهای DHT کالیبره شده اند و در غیر این صورت ، تنظیمات مربوطه را تغییر داده اند (برای مثال ، ما خارج از DHT درجه حرارت را 1 درجه سانتیگراد بالاتر از آنچه که باید داشته باشد می خواند ، بنابراین ما از offset = -1 استفاده کردیم).
مطمئن شوید که وای فای شما روشن است ، برنامه Blynk خود را راه اندازی کنید و کد را در ESP8266 خود بارگذاری کنید.
خودشه. اگر همه چیز به درستی انجام شده است ، اکنون می توانید بازی کنید و آن را در عمل ببینید.
و اگر فقط می خواهید بدون هیچ مشکلی همه چیز را در کنار هم ببینید … خوب … به بالا بروید و فیلم را تماشا کنید. (با زیرنویس تماشا کنید! بدون صدا)
مرحله 7: افکار
ما در اینجا دو چالش اصلی داشتیم.
اول از همه ، چگونه می دانیم که AC روشن است؟ ما سعی کردیم از یک گیرنده IR استفاده کنیم که به ارتباط بین AC و ریموت "گوش" می دهد. به نظر می رسد بسیار پیچیده است ، زیرا داده ها بسیار نامرتب بودند و به اندازه کافی سازگار نبودند تا درک کنند "خوب ، این یک سیگنال روشن است". بنابراین ما به دنبال راه های دیگری بودیم. یک ایده این بود که از یک ملخ کوچک استفاده کنیم که در هنگام حرکت از باد AC جریان کمی ایجاد کند ، ایده دیگری که ما سعی کردیم این بود که یک شتاب سنج اندازه گیری زاویه بالهای چرخان روی دریچه ها و تشخیص حرکت آنها از موقعیت خاموش باشد.
سرانجام ، ما متوجه شدیم ساده ترین راه برای انجام این کار میکروفون الکتریکی است که با اطمینان می تواند باد خروجی از AC را تشخیص دهد.
به کار انداختن سنسورهای DHT نسیم بود؛) ، اما بعداً متوجه شدیم که یکی از آنها کمی از دمای واقعی فاصله دارد. همانطور که قبلاً توضیح داده شد ، سنسور PIR نیز نیاز به تعدادی تنظیمات داشت.
چالش دوم این بود که کل راه حل را ساده و قابل اعتماد کرد. به این معنا که استفاده از آن باید آزاردهنده باشد ، فقط باید در آنجا باشد و در مواقع نیاز حرکت کند. در غیر این صورت ، ما خودمان احتمالاً استفاده از آن را متوقف می کنیم.
بنابراین ما در مورد آنچه باید در رابط Blynk وجود داشته باشد فکر کردیم و سعی کردیم با مراقبت از هر مورد لبه ای که می توانیم به آن برسیم ، کد را تا آنجا که می تواند قابل اعتماد باشد.
یکی دیگر از چالش هایی که در زمان نگارش این دستورالعمل موفق به حل آن نشدیم ، افزودن یک بلاستر IR بود که به ما اجازه می داد AC را از رابط Blynk خاموش کنیم. اینکه بدانید AC را بدون امکان خاموش کردن فراموش کرده اید ، چه فایده ای دارد؟ (خوب … می توانید از کسی بپرسید که آیا در خانه است).
متأسفانه ، در پخش مجدد سیگنالهایی که از کنترل از راه دور ضبط کرده بودیم ، با ESP8266 به AC متصل شدیم. ما با استفاده از Arduino Uno ، AC را تحت دستورالعمل زیر کنترل کردیم:
www.instructables.com/id/How-to-control-th…
ما به زودی دوباره تلاش می کنیم ، و دستورالعمل های آموزشی را با یافته های خود به روز می کنیم ، و امیدوارم دستورالعمل هایی در مورد چگونگی افزودن این قابلیت ارائه شود.
محدودیت دیگری که ما مشاهده می کنیم این واقعیت است که ما باید یک سنسور را به خارج از پنجره متصل کنیم ، که ممکن است در شرایط خاص امکان پذیر نباشد و همچنین به معنای نیاز به یک کابل طولانی برای بیرون رفتن است. یک راه حل ممکن است این باشد که داده های آب و هوایی محل سکونت خود را از اینترنت دریافت کنید. همچنین ، سنسور الکترت که از AC کار می کند می تواند با گیرنده IR که در بالا توضیح دادیم جایگزین شود ، برای مدل های AC با کد های IR شناخته شده تر یا آسان برای رمزگشایی.
پروژه را می توان به طرق مختلف تمدید کرد. همانطور که در بالا گفته شد ، ما سعی خواهیم کرد راهی برای کنترل IR بر روی AC پیدا کنیم ، که در نتیجه جهان جدیدی از فرصت ها برای روشن و خاموش کردن AC از هر نقطه در جهان ، یا تنظیم و خاموش کردن زمانها از طریق Blynk باز می شود. برنامه ، به عنوان مثال دیگر. پس از فهمیدن مشکلات فنی IR ، افزودن کد نسبتاً ساده و سرراست است و نباید زیاد طول بکشد.
اگر واقعاً می خواهیم رویای بزرگی داشته باشیم … پروژه را می توان به یک ماژول کامل تبدیل کرد که هر AC را به یک AC هوشمند تبدیل می کند. و نیازی به چیزی بیشتر از ما ندارد. فقط کد بیشتر ، استفاده بیشتر از IR ، و اگر می خواهیم به صورت انبوه تولید شود ، شاید مطمئن شوید که داده های آب و هوا را بر اساس مکان واکشی می کنیم ، سپس می توانیم کل را در یک جعبه کوچک قرار دهیم.
در واقع ، تنها چیزی که ما نیاز داریم یک سنسور دما برای دمای داخلی ، یک سنسور PIR برای تشخیص حرکت و یک LED IR به عنوان یک بلستر و یک گیرنده IR برای "گوش دادن" به ارتباط بین AC و ریموت مورد استفاده ما است.
Blynk تمام قابلیت هایی را که برای کنترل جعبه جادویی به آن نیاز داریم ، به روشی بسیار ساده و قابل اطمینان ارائه می دهد.
ساختن چنین پروژه ای کامل مدتی طول می کشد ، به ویژه از دیدگاه چند منظوره بودن آن برای پیکربندی خود و تشخیص و درک خودکار اکثر AC ها.
اما تهیه آن برای خودتان ، خوب ، اگر این کار را در اوقات فراغت انجام می دهید ، تقریباً نباید بیش از یک یا دو هفته طول بکشد. بستگی به این دارد که چقدر اوقات فراغت دارید … چالش اصلی در اینجا ذخیره تمام سیگنال های مختلف است که ریموت AC می تواند ارسال کند ، و درک آنها. (اگرچه فقط بازپخش آنها حتی باید آسانتر باشد).
توصیه شده:
چگونه می توانم پیشرفته ترین چراغ قوه را ایجاد کنم: 10 مرحله (همراه با تصاویر)
چگونه من پیشرفته ترین چراغ قوه را تا به حال ساخته ام: طراحی PCB نقطه ضعف من است. من اغلب یک ایده ساده می گیرم و تصمیم می گیرم که آن را تا آنجا که ممکن است پیچیده و کامل بدانم. بنابراین من یک بار به نظر می رسیدم که یک "نظامی" قدیمی است. چراغ قوه 4.5 ولت با لامپ معمولی که گرد و غبار جمع می کرد a. خروجی نور از آن ب
چگونه می توانم لپ تاپ مرده خود را بیش از دو سال تعمیر کنم: 8 مرحله
چگونه می توانم لپ تاپ مرده خود را بیش از دو سال تعمیر کنم: توجه داشته باشید ** اگر از این پروژه قدردانی می کنید رای دهید ، از شما سپاسگزارم این لپ تاپ NE522 دروازه را در کشو من حدود دو سال گنگ کنید احتمالاً به این دلیل که از دیگری استفاده کرده اید ، بنابراین وقتی این مسابقه را دیدم می دانم که ارزش تعمیر و به اشتراک گذاری تمام تعمیرات را دارد
به من یادآوری کنید که از دستگاه دارویی استفاده کنم: 5 مرحله
به من یادآوری کنید که از دارو استفاده کنم: این دستگاهی است که می تواند مصرف دارو را به شما یادآوری کند. مردم اغلب مصرف دارو را فراموش می کنند ، چه قبل از بیرون رفتن و چه قبل از خواب. وقتی از کنار دستگاه عبور می کنید ، یک دارو می ریزد ، بنابراین آن را در جایی که معمولاً عبور می کنید قرار دهید ، مانند کنار تخت
Greatest Holdies: من یک تلفن قدیمی را هک کردم تا بزرگترین موسیقی را پخش کنم .: 13 مرحله (همراه با تصاویر)
Greatest Holdies: من یک تلفن قدیمی را هک کردم تا بتوانم بزرگترین موسیقی را پخش کنم. بیشمار پروژه هیجان انگیز دیگر وجود دارد که می توانید با این هک بسیار اساسی این & quot؛ میز & quot؛ تلفن ها
آیا می توانم از TinyLiDAR در Scratch استفاده کنم؟: 3 مرحله
آیا می توانم از TinyLiDAR در … Scratch استفاده کنم؟: هر از چند گاهی درخواست هایی از ما می پرسد که آیا tinyLiDAR روی پلتفرم محاسباتی خاص آنها کار می کند یا خیر. اگرچه tinyLiDAR به عنوان یک حسگر LiDAR ساده برای استفاده در Arduino UNO طراحی شده است ، اما هیچ چیز مانع از استفاده آن در سایر پلتفرم ها نمی شود