آموزش Espآموزش آردوینوآموزش اینترنت اشیاپروژه های Espپروژه های آردوینوپروژه های اینترنت اشیا

داشبورد اینترنت اشیا با آردوینو و کنترل رله + نمایش سنسور

اگر از دیدن داده های حسگر خود بر روی یک صفحه سفید ساده خسته شده اید، پس این آموزش برای شما مناسب است. Adafruit IO قرار است داده های شما را در اینترنت به خوبی نشان دهد.

انقلاب صنعتی چهارم

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

اکنون ما در چهارمین انقلاب صنعتی را که با نام صنعت 4.0 نیز شناخته می شود، زندگی می کنیم. این دوران هنوز در دست ساخت است، اما هدف ادغام فناوری در زندگی روزمره بشریت است. مواردی مانند یادگیری ماشینی، هوش مصنوعی، پرینت سه بعدی، وسایل نقلیه خودران، بانکداری آنلاین و حتی ویرایش ژنوم از معدود هدایای این عصر هستند. همه اینها بر روی یک فناوری به نام IoT متمرکز شده اند.

اینترنت اشیا

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

ساده ترین راه برای تمرین اینترنت اشیا استفاده از آردوینو و وب سرویسی به نام Adafruit IO است.

ADAFRUIT IO چیست؟

Adafruit IO یک پلتفرم وب رایگان اینترنت اشیا است که توسط Adafruit Industries ساخته شده است. این به عنوان یک کنترل پنل برای انواع دستگاه ها از جمله سنسورهای ساخته شده با پلت فرم آردوینو عمل می کند. این نه تنها برای تجسم داده ها بلکه برای کنترل دستگاه نیز طراحی شده است. با Adafruit IO، می توانید از نمودارها برای نمایش داده های خود و همچنین دکمه ها و سوئیچ ها برای فعال کردن ویژگی های خاص در دستگاه خود استفاده کنید. Adafruit IO دارای کتابخانه های مستند شده ای است که می توانید از آنها برای کاهش ساعات برنامه نویسی استفاده کنید.

در اینجا اصطلاحاتی وجود دارد که باید قبل از ادامه کار یاد بگیرید:

  • داشبورد – نمودارها، گزارش‌ها و بسیاری از تکنیک‌های تجسم‌سازی دیگر را برای داده‌های شما ارائه می‌دهد.
  • ماشه – به داده های شما واکنش نشان می دهد. به عنوان مثال، می توانید زمانی که دمای یک سنسور از مقدار آستانه فراتر رفت از یک ماشه برای ارسال ایمیل استفاده کنید،.
  • فید – حاوی داده‌هایی است که در Adafruit IO آپلود می‌کنید. فید همچنین تاریخ و زمان آپلود اطلاعات شما را در خود دارد.

برای نشان دادن نحوه استفاده از Adafruit IO با آردوینو، می‌خواهیم سنسور رطوبت و دما DHT22 و رله 5 ولت دو کاناله را به Arduino UNO وصل کنیم، سپس مقادیر دما و رطوبت را هر 5 ثانیه به یک ماژول ESP8266 منتقل کنیم. ماژول ESP8266 طوری تنظیم شده است که داشبورد Adafruit IO شما را زمانی که داده ها را از آردوینو دریافت می کند، به روز کند.

اجازه دهید با راه اندازی Adafruit IO شروع کنیم.

راه اندازی ADAFRUIT IO

ابتدا به وب سایت Adafruit IO بروید و یک حساب کاربری ایجاد کنید. پس از ورود، به صفحه اصلی بروید. در قسمت Actions، Create a New Dashboard را انتخاب کنید.

راه اندازی ADAFRUIT IO

پس از دادن نام و توضیحات کوتاه به داشبورد، روی Create کلیک کنید.

بعد، به داشبورد جدید خود بروید.

باید داشبورد خود را با بلوک ها پر کنید. برای انجام این کار، دکمه آبی + در سمت راست داشبورد را انتخاب کنید.

اضافه کردن بلوک به داشبورد اینترنت اشیا

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید

بلوک‌ها سوئیچ‌ها، دکمه‌ها، اهرم‌ها، سنج‌ها و تکنیک‌های تجسمی هستند که داده‌های شما را نشان می‌دهند و به آنها واکنش نشان می‌دهند. برای پروژه نمونه ما به یک نمودار خطی و دو gauges برای نمایش دما و رطوبت اتاق و دو دکمه برای کنترل رله نیاز داریم.

بلوک های مختلف در Adafruit Io

پس از انتخاب یک بلوک، Adafruit از شما می خواهد که یک فید را انتخاب کنید. برای نگهداری مقادیر دما و رطوبت سنسور DHT به دو فید نیاز داریم. با استفاده از دکمه ایجاد در سمت راست یک فید ایجاد کنید.

ایجاد فید برای اینترنت اشیا

در مرحله بعد، تنظیمات بلوک را همانطور که می خواهید پیکربندی کنید.

تنظیمات بلوک نمایش مقادیر سنسور در اینترنت

همین کار را با دکمه های رله انجام دهید تا بتوانید هر دو داده را به طور همزمان کنترل و نظارت کنید.

اضافه کردن دکمه برای کنترل رله اینترنتی

برای پر کردن بلوک ها با داده، به نام کاربری و کلید خود نیاز دارید. برای به دست آوردن هر دو اطلاعات، به صفحه اصلی بازگردید و روی Adafruit IO Key کلیک کنید. پنجره ای ظاهر می شود که نام کاربری و کلید شما را نمایش می دهد. یک قلم و کاغذ بردارید و آنها را یادداشت کنید.

نام کاربری و کلید Adafruit io

نصب کتابخانه ADAFRUIT IO در آردوینو

برای نصب کتابخانه در آردوینو، به Library Manager بروید و “Adafruit IO Arduino” را جستجو کنید. آخرین نسخه را انتخاب کنید و روی Install کلیک کنید. این از شما می خواهد که کتابخانه های دیگری را نصب کنید که Adafruit IO Arduino برای درست کار کردن به آنها نیاز دارد. حتماً کتابخانه برد ESP8266 خود را نیز به روز کنید. نسخه‌های قدیمی‌تر هنگام آپلود کد، خطا نشان میدهند.

نصب کتابخانه ADAFRUIT IO در آردوینو

مدار اتصال رله و سنسور به آردوینو برای اینترنت اشیا

ما قرار است سنسور DHT22 و یک رله 5 ولتی دو کاناله را به آردوینو متصل کنیم، سپس هر 5 ثانیه یک بار خوانش سنسور را به ماژول ESP8266 منتقل می کنیم. ماژول ESP8266 طوری تنظیم شده است که داشبورد Adafruit IO شما را زمانی که داده ها را از آردوینو دریافت می کند، به روز کند.

مدار اتصال رله و سنسور به آردوینو برای اینترنت اشیا

قطعات مورد نیاز

  • آردوینو UNO
  • ماژول ESP8266-01
  • سنسور دما و رطوبت DHT22
  • 3* مقاومت 1 کیلو اهم
  • مقاومت 10 کیلو اهم
  • رله 2 کانال 5 ولت (یا 2 رله 5 ولت)
  • سیم های جامپر
  • برد بورد

کد ارسال داده سنسور به Adafruit و کنترل رله

کد کامل در فایل دانلودی انتهای صفحه قرار داده شده است. در اینجا قسمت های مهم کد را توضیح میدهیم. ما قصد داریم از کتابخانه SerialTransfer.h برای ارسال داده های حسگر از Arduino UNO به ماژول ESP و بالعکس استفاده کنیم.

اینها خطوط مهمی هستند که ما از این کتابخانه استفاده کرده ایم:

  • SerialTransfer myTransfer – یک نمونه SerialTransfer به نام myTransfer ایجاد می کند.
  • myTransfer.begin (Serial) – ارتباط سریال را شروع می کند.
  • myTransfer.txObj(status, sizeof(status)) – یک شی به طور خاص برای وضعیت ایجاد می کند.
  • myTransfer.sendData(sizeof(status)) – وضعیت را در یک بسته به اندازه آن ارسال می کند.
  • myTransfer.rxObj(status, sizeof(status)) – وضعیت را از فرستنده دریافت می کند.

در این پروژه UNO دو کار دارد. ابتدا باید داده های سنسور DHT را بخواند و سپس هر پنج ثانیه آن را به ماژول ESP ارسال کند. دوم، باید منتظر ورودی Adafruit IO برای فعال یا غیرفعال کردن یک کانال خاص در رله ها باشد. درست مانند قبل، ما با استفاده از کتابخانه DHT.h با سنسور DHT ارتباط برقرار می کنیم. برای استفاده صحیح از کتابخانه، باید پین محل اتصال سنسور و نوع سنسور DHT مورد استفاده خود را مشخص کنید. سپس، با استفاده از این دو، یک شی DHT ایجاد می کنیم. کد باید به این شکل باشد: DHT dht(DHTPIN، DHTTYPE). پس از ایجاد شی، سنسور را با استفاده از dht.begin() مقداردهی اولیه می کنیم تا از توابعی مانند dht.readTemperature() و dht.readHumidity استفاده کنیم. در نهایت از SerialTransfer.h برای ارسال داده ها به ماژول ESP استفاده می کنیم.

از طرف دیگر، یکی دیگر از وظایف ماژول ESP تشخیص داده های دریافتی از آردوینو و ارسال آنها به سرور Adafruit IO است. علاوه بر این، باید وضعیت دکمه رله را از داشبورد Adafruit IO دریافت کرده و به Arduino UNO ارسال کند. ما از io() برای اتصال ماژول ESP به سرور Adafruit IO استفاده می کنیم. در مرحله بعد، فیدهایی را که قرار است با آنها تعامل داشته باشیم با استفاده از io.feed() مشخص می کنیم. ما در مجموع 4 فید برای مقادیر دما و رطوبت و وضعیت هر کانال در ماژول رله داریم. ما از onMessage() و get() برای فراخوانی تابع helper برای دکمه رله و واکشی داده ها از آن استفاده می کنیم. بعد، بخش حلقه باید شامل io.run() باشد تا ارتباط آنلاین بماند. برای ارسال مقادیر دما و رطوبت به Adafruit IO از save() استفاده می کنیم.

نتیجه

آردوینو شما به محض اتصال به سرور Adafruit IO داشبورد را پر می کند. من به دستگاه اجازه دادم اطلاعات را برای حدود 15 دقیقه ارسال کند سپس دکمه Relay Channel 1 را فشار دادم.

داشبورد نهایی Adafruit نمایش سنسور و رله

مانیتور سریال ساده است اما در واقع بسیار مفید است. همانطور که می بینید، آردوینو سیگنال بالا را از Adafruit IO شناسایی کرده است، بنابراین Relay 1 را روشن می کند.

نتیجه در سریال مانیتور آردوینو

امیدواریم این مطلب ساخت یک کنترل پنل IOT مبتنی بر وب با آردوینو را برای شما آسان‌تر کند. اگر سوالی دارید، در زیر نظر خود را با ما در میان بگذارید.

موارد موجود در فایل : سورس و کتابخانه

دانلود فایل های پروژه

5/5 - (1 امتیاز)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام آیرنکس را دنبال کنید.
تصویر از محمد رحیمی

محمد رحیمی

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

2 نظر

  1. محمد گفت:

    ضمن عرض تشکر از شما بابت این اشتراک، من با nodemcu تلاش کردم و نشد.. درواقع ارور از ide ندارم ولی در داشبورد هیچ اکشنی انجام و نمایش نمیشود
    لطفا راهنمایی بفرمایید .. آیا برای راه اندازی داشبورد ، غیر از این توضیحات ، کاری دیگه باید انجام بدهم!؟

    1. محمد رحیمی گفت:

      سلام عزیز، میتونید دوره آموزش اینترنت اشیا رو مشاهده کنید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.