داشبورد اینترنت اشیا با آردوینو و کنترل رله + نمایش سنسور
محتویات
اگر از دیدن داده های حسگر خود بر روی یک صفحه سفید ساده خسته شده اید، پس این آموزش برای شما مناسب است. 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 را انتخاب کنید.
پس از دادن نام و توضیحات کوتاه به داشبورد، روی Create کلیک کنید.
بعد، به داشبورد جدید خود بروید.
باید داشبورد خود را با بلوک ها پر کنید. برای انجام این کار، دکمه آبی + در سمت راست داشبورد را انتخاب کنید.
بلوکها سوئیچها، دکمهها، اهرمها، سنجها و تکنیکهای تجسمی هستند که دادههای شما را نشان میدهند و به آنها واکنش نشان میدهند. برای پروژه نمونه ما به یک نمودار خطی و دو gauges برای نمایش دما و رطوبت اتاق و دو دکمه برای کنترل رله نیاز داریم.
پس از انتخاب یک بلوک، Adafruit از شما می خواهد که یک فید را انتخاب کنید. برای نگهداری مقادیر دما و رطوبت سنسور DHT به دو فید نیاز داریم. با استفاده از دکمه ایجاد در سمت راست یک فید ایجاد کنید.
در مرحله بعد، تنظیمات بلوک را همانطور که می خواهید پیکربندی کنید.
همین کار را با دکمه های رله انجام دهید تا بتوانید هر دو داده را به طور همزمان کنترل و نظارت کنید.
برای پر کردن بلوک ها با داده، به نام کاربری و کلید خود نیاز دارید. برای به دست آوردن هر دو اطلاعات، به صفحه اصلی بازگردید و روی Adafruit IO Key کلیک کنید. پنجره ای ظاهر می شود که نام کاربری و کلید شما را نمایش می دهد. یک قلم و کاغذ بردارید و آنها را یادداشت کنید.
نصب کتابخانه ADAFRUIT IO در آردوینو
برای نصب کتابخانه در آردوینو، به Library Manager بروید و “Adafruit IO Arduino” را جستجو کنید. آخرین نسخه را انتخاب کنید و روی Install کلیک کنید. این از شما می خواهد که کتابخانه های دیگری را نصب کنید که Adafruit IO Arduino برای درست کار کردن به آنها نیاز دارد. حتماً کتابخانه برد ESP8266 خود را نیز به روز کنید. نسخههای قدیمیتر هنگام آپلود کد، خطا نشان میدهند.
مدار اتصال رله و سنسور به آردوینو برای اینترنت اشیا
ما قرار است سنسور 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 IO شناسایی کرده است، بنابراین Relay 1 را روشن می کند.
امیدواریم این مطلب ساخت یک کنترل پنل IOT مبتنی بر وب با آردوینو را برای شما آسانتر کند. اگر سوالی دارید، در زیر نظر خود را با ما در میان بگذارید.
موارد موجود در فایل : سورس و کتابخانه
برای دانلود فایل ها باید حساب کاربری داشته باشید ثبت نام / ورود
سلام ممنون از node mcu استفاده میکتم کد بدون ارور پروگرام شد فقط در سایت موقع یافتن esp پیدا نمیکنه حتی به اینترنت هر دو وصل هستند
اقا لطفا پاسخ ما رو بدید من تمام شد فقط موقع وصل شدن esp به سایت میگه سینک نشده لطفا روش بازنشانی رو امتحان کنید ، از node mcu استفاده میکنم 8266 ، لطفا پاسخ ما رو بدید با تشکر از ایرنکس
همه کد ها روی اردوینو پروگرام میشن؟؟؟ یا روی esp هم پروگرام میشه؟
ضمن اینکه تفاوت فایل نود ام سی یو با esp8266 چیه؟
فقط از کد آردوینو استفاده کنید
سلام ارور esp —
: (), sketch_jul17a:35:10: fatal error: ESP8266WiFi.h: No such file or directory
#include
به چه دلیل هست ؟
سلام عزیز
کتابخانه وای فای را نصب کنید.
کتابخانه ها همه نصب هستند باید چه کنم
نسخه آردوینو و کتابخانه ها را تغییر بدهید
سلام
ضمن تشکر
من آموزش iot از سایت شما را دانلود کردم
برای ابزارکها و ویجت های بیشتر که رایگان نیست چطوری میتونم مبلغ را که دلار هست از سایت adafruit بخرم .
با تشکر
سلام عزیز
میتونید از طریق صرافی ها و سایت هایی که خرید دلاری انجام میدهند بخواهید برای شما خریداری کنند. یا میتوانید یک گیفت کارت دلاری خریداری کنید و خودتان هزینه را پرداخت کنید.
خیر ۵ ولت است
ولتاژ خروجی پایه های NodeMCU برابر با 3.3 ولت هست و توان کافی برای رله 5 ولت رو نداره.
از رله 3.3 ولت استفاده کنید یا از یک ترانزیستور به عنوان سوئیچ استفاده کنید و با NodeMCU ترانزیستور رو کنترل کنید سپس با ترانزیستور رله 5 ولت رو کنترل کنید
سلام مهندس من از نود ام سیو استفاده می کنم و به مشکل خوردم.
رله ها رو نمی تونم با پایه های برد کنترل کنم ولی ال ای دی ها رو وقتی به پایه های برد وصل می کنم، می تونم از اینترنت کنترل کنم.
سلام عزیز
رله تون 3.3 ولت هست؟
سلام مهندس من می خواستم سورس رو دانلود کنم، نیاز به ثبت نام داشتم، رفتم که ثبت نام کنم همش ارور داد که مشکل پنل پیامکی رو با شما در میان بگذارم.
سلام عزیز
ممنون از اطلاع رسانی شما، مشکل برطرف شد
سلام سایت adafruit.io فیلتر شده و کار نمیکنه .
باید چکار کنیم؟
سلام عزیز
سایت Adafruit فیلتر نیست. در اینترنت بین المللی کشور (به دلیل حوادث اخیر – مهر 1401) اختلال هست و بعد از رفع اختلال میتونید به Adafruit متصل بشید.
اردوینو و esp جدا برنامه نویسی میشن؟
سلام خسته نباشید
آیا بدون ماژولESP و فقط با اردوینو میتوانیم کنترل از راه دور انجام دهیم؟
سلام عزیز
میتونید از اردوینو های دارای esp استفاده کنید
خود اردینو خالی مثل uno چیزی برای ارتباط از راه دور نداره باید یک ماژول مکمل باشه
ضمن عرض تشکر از شما بابت این اشتراک، من با nodemcu تلاش کردم و نشد.. درواقع ارور از ide ندارم ولی در داشبورد هیچ اکشنی انجام و نمایش نمیشود
لطفا راهنمایی بفرمایید .. آیا برای راه اندازی داشبورد ، غیر از این توضیحات ، کاری دیگه باید انجام بدهم!؟
سلام عزیز، میتونید دوره آموزش اینترنت اشیا رو مشاهده کنید