آیا خوب نیست اگر بتوانید قبل از ترک خانه شروع به گرم کردن کمپ کنید؟ چطور از الکسا برای انجام این کار برای شما استفاده کنید!
موارد استفاده شده در این پروژه
داستان
ایده من یک سیستم اتوماسیون خانگی برای یک کمپ بدون اینترنت است.
آیا خوب نیست اگر بتوانید قبل از ترک خانه شروع به گرم کردن کمپ کنید؟ در مورد روشن کردن چند چراغ به دلیل دیر رسیدن به آنجا چطور؟ شاید بخواهید بدانید که دمای هوا در خارج از کمپ چقدر است. خوب با الکسا و پروژه اتوماسیون خانه سلولی من می توانید. از خانه خود، فقط بگویید «الکسا، شروع به گرم کردن کمپ در ساعت 5:00 بعدازظهر» کنید، الکسا یک ماشه به سیستم من ارسال می کند تا گرما را در زمان درخواست شده روشن کند.
سیستم من از arduinos برای کنترل دستگاه ها و خواندن حسگرها استفاده می کند. آردوینوها اطلاعات را با استفاده از mqtt به Raspberry Pi ارسال یا دریافت میکنند، جایی که Pi میتواند با استفاده از مودم سلولی هولوگرام Nova به اینترنت متصل شود.
چند فرض وجود دارد،
1. شما در کمپ خود برق دارید، درگاه می تواند باتری ها و خورشیدی را خالی کند، اما برای دیدن مدت زمان آن آزمایش نشده است.
2. حتی اگر اینترنت ندارید، باز هم باید در منطقه ای باشید که تلفن های همراه کار می کنند.
سنسور:
برای سخت افزار از آردوینو MKR1000 و برد رله 8 کاناله استفاده خواهیم کرد. برای اطلاعات سیم کشی شماتیک را ببینید. MKR1000 هنوز دارای چند پایه IO اضافی است، بنابراین اگر میخواهید چند سنسور دیگر اضافه کنید، فضا خالی است.
این سنسور یک WeMos را شبیه سازی می کند. من توانستم کدی را به صورت آنلاین پیدا کنم که این کار را برای ESP8266 انجام می دهد. من از آن کد برای پورت آن به MKR1000 برای ارسال و دریافت پیام استفاده کردم.
کد چگونه کار می کند:
- ابتدا یک اتصال وای فای به نقطه دسترسی برقرار می کند (جزئیات در مورد آن بعداً)
- سپس سروری را راه اندازی می کند که اتصالات UDP و TCP را به آن می پذیرد.
- اگر درخواست پخش M-SEARCH UDP دریافت شود، آن را ارزیابی کرده و آدرس اینترنتی را به setup.xml دستگاه برمیگرداند .
- سپس پخش کننده درخواست setup.xml را می دهد . این فایل حاوی تمام خدمات موجود برای دستگاه است. من همچنین حاوی uri's to service و آنچه که فایل تعریف eventservice است را خواهم داشت.
<serviceList>
<service>"
<serviceType>urn:Belkin:service:basicevent:1</serviceType>
<serviceId>urn:Belkin:serviceId:basicevent1</serviceId>
<controlURL>/upnp/control/basicevent1</controlURL>
<eventSubURL>/upnp/event/basicevent1</eventSubURL>
<SCPDURL>/eventservice.xml</SCPDURL>
</service>
...
- سپس منتظر میماند تا درخواست وارد آدرسهای اینترنتی سرویس شود و آن رویدادها را طبق تعریف پردازش کند.
تست سنسور
- رابط کاربری adruino را باز کنید و کد آردوینو پیوست شده را بارگذاری کنید.
- آن را روی MKR1000 خود بسازید و فلش کنید (در صورت داشتن وای فای از سایر بردها می توان استفاده کرد)
- مانیتور سریال را باز کنید، باید پیام هایی ببینید که نشان می دهد سنسور در انتظار درخواست است.
- یک مرورگر را باز کنید و به http:// arduino_ip /index.html بروید. شما باید یک پیام سلام ببینید. در این مرحله سنسور شما باید کار کند.
- یک آزمایش دیگر این است که به http:// arduino_ip /setup.xml بروید تا فایل xml را ببینید که در یک پخش UDP M-SEARCH بازگردانده می شود.
دروازه سلولی
Cellular Gateway از Raspberry pi 2 به عنوان کنترل کننده خود استفاده خواهد کرد. به آن یک مودم سلولی هولوگرام نووا USB و یک آداپتور WIFI متصل می شود. و البته آداپتور برق. مودم USB برای دسترسی به اینترنت و آداپتور WIFI برای ایجاد یک نقطه دسترسی برای سنسور ایجاد شده در بالا برای اتصال به آن استفاده خواهد شد.