در این آموزش یاد میگیرید که با استفاده از چه ابزارهایی میتوان دادههای مربوط به سنسورها را جمعآوری، نگهداری، آنالیز و به صورت نموداری پردازش کرد و اینکه چگونه میتوان با استفاده از این امکانات، وقایعی را که دوست داریم در یک سیستم رقم بزنیم و در یک کلام؛ خانه یا محل کار خود را هوشمند و اتومات کنیم. این آموزش به دلایل زیر بسیار کاربردی است و احتمالا مورد توجه شما قرار میگیرد.
چرا پلتفرم Arduino IoT Cloud
- Arduino IoT Cloud برای مبتدیها ساده و برای حرفهایها یک پلتفرم پر سرعت و مطلوب محسوب میشود.
- اولا که مبتنی بر Arduino است که میلیونها کاربر حرفهای و حتی مبتدی این حوزه آن را میشناسند و احتمالا بر آن مسلط هستند.
- میتوان با استفاده از آن و به کمک ویجتهای متداول روزمره، به سرعت سیستمی برای نظارت بر سنسورها طراحی کرد.
- با استفاده از صفحات وب به راحتی به دیتابیسها و آلارمهای هوشمند و … متصل میشود.
- با استفاده از Arduino IoT Api میتوانید اپلیکیشن اختصاصی هم برای سیستم نظارتی خود طراحی کنید.
- علی رغم سادگی کارکردن با آن؛ از فناوریهای مهم روز به حساب میآید.
- امنیت دیوایسهای موجود در سیستم با استفاده احراز هویت مبتنی بر گواهی ۵۰۹ تضمین میشود.
- همان طور که گفتیم، این قابلیت را دارد که افراد اپلیکیشنهای اختصاصی خودشان را داشته باشند.
- مبتنی بر استانداردهای روز IoT و پیادهسازی سختافزاری.
- مراحل اجرای پروژه کاربردی و ساده هستند.
- یک بورد Arduino MKR تهیه کنید.
- به صورت رایگان در سایت Arduino IoT Cloud ثبت نام کنید. (حساب کاربری بسازید)
- قدم به قدم دستورالعملهای آموزش را دنبال کنید و فراموش نکنید که بهترین و موثرترین راه یاد گرفتن پروژههای اینترنت اشیا، انجام دادن آنهاست.
لازم به ذکر است که Arduino IoT Cloud اکنون در مرحلهی public beta است و فیدبکهای شما در استفاده از آن میتواند در اصلاح و بهبود مسیر توسعهی آن بسیار موثر باشد.
آنچه که برای انجام این پروژه نیاز داریم
بسته به اینکه چه نوع کاربردی از اینترنت اشیا مد نظر هر پروژهای باشد، به موارد زیر نیاز خواهیم داشت.
- دیوایسهایی که دادهها را جمعآوری کنند و یا به کمک آنها بتوان مولفهای از آن سیستم را کنترل کرد (مثلا سنسورها)
- نرمافزارهایی که بتوان با استفاده از آنها، رفتار و عملکرد سختافزار سیستم را توضیح داد. مثلا Arduino Sketch.
- اپلیکیشنهای ابری (cloud) برای ذخیره و نگهداری دادههای جمعآوری شده و در صورت نیاز کنترل اجزاء سیستم براساس این دادهها.
در تصویر زیر میتوانید موارد فوق را ببینید که در یک سیستم اینترنت اشیا حضور دارند.
دیوایسها و اشیا قابل استفاده در پروژه Arduino IoT Cloud
دیوایسها می توانند شامل هر گونه اشیا فیزیکی باشند. مثلا بوردهای سختافزاری مانند همین بورد MKR. این دیوایسها در واقع سختافزارهای پروژه هستند که نرمافزار موجود بر روی آنها اجرا میشود، دادههای سنسورها را میخوانند، عملگر مکانیکی (actuators) را کنترل میکنند و همچنین واسطهی ارتباطی با Arduino IoT Cloud هستند.
اشیا، نمایشی منطقی برای چیزهایی که قرار است در یک شبکه به هم متصل باشند
منظور از اشیا (things)، بیش از هر چیزی ویژگیهایی است که در درون objectsها وجود دارد و بنابراین زمانی که این لفظ را استفاده میکنیم، منظورمان کمتر متوجه آن سختافزاری است که آن چیز به وسیلهی آن پیادهسازی شده است. پس هر شی در واقع به مجموعهای از ویژگیها اشاره دارد (مثلا دما، شدت نور و …)
ویژگیهای Arduino IoT Cloud
منظور از ویژگیها کیفیتهایی هستند که مشخصههای یک سیستم را توضیح میدهند. مثلا ویژگی فقط خواندنی بودن (read-only) بیانگر این است که مثلا یک سیستم Arduino IoT Cloud، فقط میتواند دادهها را بخواند، نمیتواند آنها را تغییر دهد. در مقابل ویژگی خواندنی و نوشتنی بودن (read-and-write) را داریم. سیستمی که این ویژگی را داشته باشد، علاوه بر اینکه میتواند دادهها را بخواند، میتواند در مقادیر آنها تغییراتی نیز ایجاد کند و یا حتی آلارمهایی را به دیوایسها ارسال کند.
به عنوان مثال فرض کنیم یکی از دیوایسهای یک سیستم سنسوری برای خواندن دمای محیط باشد. این دیوایس (read-only (RO است چرا که واضح است که سنسور نمیتواند مقدار دمای محیط را تغییر دهد و فقط چیزی که وجود دارد را میتواند بخواند. اما اگر دیوایس ما یک ترموستات باشد، ویژگی آن (read-and-write (RW)خواهد بود چرا که ترموستات خود قادر است بر دمای محیط نیز تاثیر بگذارد.
وقایع در Arduino IoT Cloud
این پلتفرم زمانی از رخداد یک واقعه مطلع میشود که پیامی مبنی بر این که «چیزی به وقوع پیوسته است» از جانب اپلیکیشن دریافت کند. مثلا؛ اگر یک اپلیکیشن تشخیص چهره در سیستم ما وجود داشته باشد، زمانی که کسی در مقابل در حضور داشته باشد، پیغام این حضور به عنوان یک event توسط اپلیکیشن به پلتفرم مرکزی ارسال خواهد شد. یا مثلا اپلیکیشن دیگری ممکن است پیغامی ارسال کند که نور فضا کم یا زیاد شود.
نرمافزار مناسب برای Arduino IoT Cloud
همان طور که میدانیم، بوردهای آردوینو نیازمند پروگرم شدن هستند. به این معنا که باید یک کد برای اجرای عملکرد مورد نظر توسط آنها نوشته شده و بر روی آنها بارگذاری شود. پلتفرم Arduino IoT Cloud این قابلیت را دارد که به محض رخداد هر تغییری در سیستم، برنامه و sketch متناظر با آن را ایجاد کرده و اجرا کند. این یکی از مهمترین توانمندیهای این پلتفرم است که کار کردن با آن را فوقالعاده راحت میکند. ضمن آنکه میتوان با روشهای دیگر نیز با این پلتفرم تعامل ایجاد کرد.
مثلا از طریق HTTP REST API ،MQTT، ابزارهای Command-Line و Websockets و Javascript. به طور کلی میتوان گفت که این سیستم یک سیستم بسیار گسترده با قابلیتهای متنوع و کاربردی است. اگر علاقهمند هستید که در مورد آن بیشتر بدانید به API document آن مراجعه کنید.
طراحی فلوچارتی برای ایجاد یک پروژهی جدید IoT
برای اینکه درک بهتری از چگونگی کارکرد آن داشته باشیم، فرض کنید که میخواهیم یک گلخانهی مجهز به IoT داشته باشیم. یعنی یک فضای کوچک با دیوارههای شیشهای برای پرورش گل یا گیاه. هدف ما از مجهز کردن این فضا به IoT این است که بتوانیم از راه دور نیز شرایط موجود در این گلخانه را کنترل کرده و به آن رسیدگی کنیم. مثلا بتوانیم چراغهای آن را خاموش و روشن کنیم، دما را بخوانیم، در صورت لزوم سیستم آبیاری آن را فعال یا غیر فعال کنیم و … . بسیار خب برای ساخت چنین پروژهای به موارد زیر نیاز خواهیم داشت.
به یک دیوایس برای کنترل سیستم آبیاری نیاز داریم. به این منظور از بورد Arduino MKR WiFi 1010 استفاده میکنیم که سنسورهای مختلفی برای اندازهگیری دما، شدت روشنایی و غیره نیز دارد. عملگر مکانیکی مانند پمپ آبرسانی، سوییچهای تهویه هوا و کنترل نور نیز مورد نیاز خواهند بود. نرم افزار مورد استفاده نیز Arduino Sketch است که بر روی بورد MKR آپلود میشود و همان طور که در قسمت قبلی اشاره کردیم به صورت اتوماتیک عملگرهای مکانیکی را کنترل میکند. یعنی مثلا در صورتی که شدت رطوبت یا دما در فضای گلخانه بالا باشد ، به صورت خودکار عملکرد را به گونهای تنظیم میکند که فنهای تهویه هوا روشن شوند و شرایط را به حالت ایدهآل تعریف شده برسانند.
ویژگیهای سیستم در فضای cloud
تمام ویژگیهای سیستم در فضای cloud ذخیره میشوند و در مواقع نیاز براساس آن تصمیمگیری میشود. این ویژگیها در مورد سیستم گلخانهی IoT میتواند شامل این موارد باشد:
- فشار محیط
- دمای محیط
- میزان رطوبت
- شدت اشعههای UVA/B
- وضعیت پمپ در هر لحظه
- وضعیت فنهای تهویه در هر لحظه
- وضعیت نور در هر لحظه
زمانی که تمام اینها در cloud وجود دارند، کار سیستم این خواهد بود که منتظر بماند و در صورت رخداد هر واقعهی جدید، واکنشهای لازم را اعمال کند. وقایع میتوانند مواردی مثل روشن شدن پمپ آب، خاموش شدن فنهای تهویه، روشن شدن لامپها و مواردی این چنینی باشند. ما قبلا یک نسخه مدار گلخانه هوشمند منتشر کردهایم و شاید وقتش رسیده تا برد قبلی را به اینترنت وصل کنید؟!
- منبع: ترجمه از سایت arduino.cc
- منبع: عکس شاخص از سایت udemy.com
برای مشاهده آموزشهای بیشتر به قسمت آموزشهای آردوینو مراجعه کنید. در جلسه بعدی بصورت عملی با پلتفرم Arduino IoT Cloud کار خواهیم کرد. لینک جلسه دوم: آموزش کار با IoT Cloud آردوینو
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.