MQTT آموزش رزبری پای رزبری پای پروژه رزبری پای

مدیریت وسایل برقی با برد Wemos توسط پروتکل MQTT نرم افزار Node Red

Wemos-device-control-with-MQTT-Protocol---Digispark
نوشته شده توسط اروند طباطبایی

همانطور که قبلا هم گفته‌ام، “در پروژه اینترنت اشیاء IOT اطلاعات بر بستر اینترنت جابجا میشوند. در فاز صنعتی امنیت اطلاعاتی بسیار اهمیت پیدا میکنند. همچنین اطلاعات یا دیتا به صورت مستقیم و کد گذاری شده، به سرور ارسال میشود و سپس از سرور بر روی دیوایس‌های مختلف ارسال میشود.” برد Wemos D1 Mini بر پایه ESP8266 طراحی شده است. در این آموزش شیوه مدیریت یک LED را با پروتکل MQTT بر بستر اینترنت مدیریت میکنیم. البته این LED به صورت نمادین است و میتوانید بجای ال ای دی با رله یک سیستم تهویه را مدیریت کنید. نرم افزار نود رد Node Red بدون نیاز به دانش برنامه نویسی به شما کمک میکند تا ایده‌هایتان را عملی کنید. کلیه آموزش‌های نودرد Node red را میتوانید در دیجی اسپارک مطالعه کنید. در ادامه این آموزش جذاب با مرجع تخصصی اینترنت اشیاء IOT دیجی اسپارک همراه باشید.

 


۱- ساختار عملکرد پروتکل MQTT


ساختار برد کنترل اینترنت اشیاء Wemos D1 mini

برد D1 mini توسط کمپانی Wemos متولد شده است. البته پس از موفقیت و استقبال کاربران از برد D1 که هم ابعاد برد آردوینو Arduino Uno بود. برد کنترلی Wemos D1 Miniدارای یک پایه آنالوگ و یک رابط SPI و یک رابط I2CC می‌باشد. با توجه به سنسورها و ماژول‌های که با این برد ارتباط میگیرند، اتصالات را برقرار میکنیم. ابعاد این برد ۲۵ * ۳۵ میلی متر است. همچنین دارای انواع شیلد Shield از جمله دما، نمایشگر، باتری بک آپ، درایور موتور و… برای پروژه‌های مختلف اینترنت اشیاء IOT می‌باشد.

پروتکل MQTT

این پروتکل در حقیقت یک زبان ارسال داده برای پروژه‌های اینترنت اشیاء IOT است. پروتکل MQTT برای اولین بار در اواخر قرن ۲۰ام معرفی شد و برای انتقال دیتا در خطوط لوله نفت به کار رفت. پروتکل MQTT دارای ۳ ویژگی بسیار مهم است. حجم کم، سرعت انتقال زیاد و امنیت قابل توجه، این سه پارامتر باعث شده که امروزه در پروژه‌های اینترنت اشیاء IOT کاربرد داشته باشد. پروتکل MQTT به صورت اوپن سورس است. مخفف شده Message Queue Telemetry Transport میباشد. استفاده از پروتکل MQTT را در پروژه‌های اینترنت اشیاء فقط زمانی که نیاز است دیتا از سنسورهای مختلف ارسال شود. و یا فرمان از راه دور ارسال شود؛ اکیدا توصیه میکنم.

 

وسایل مورد نیاز:

برد کنترلی اینترنت اشیاء Wemos بر پایه ESP8266

ال ای دی LED

برد رزبری پای

 

اتصالات مدار مدیریت وسایل برقی

ساده‌تر از این اتصال نداریم. پایه بلند ال ای دی قطب مثب و پایه کوتاه قطب منفی است. پایه کوتاه را به پین G روی برد Wemos D1 Mini و پایه بلند ال ای دی را به پین ۴ متصل کنید. همانند تصویر زیر

 


۲- کدهای MQTT برد Wemos


 

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

 

دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندس‌های دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید.

 


۳- نرم افزار اینترنت اشیا Node Red


تنظیمات نرم افزار Node Red

ابتدا نود MQTT را وارد محیط نودرد میکنیم. سپس یک نود دیباگ را وارد محیط میکنیم. سپس بر روی MQTT دبل کلیک میکنیم. پنجره تنظیمات باز میشود. اولین گزینه Add new mqtt-broker را انتخاب میکنیم. در این پنجره تنظیمات اصلی سرور و کلاینت آی دی و تنظیمات پیشرفته تر دیگری وجود دارند. در قسمت Topic عنوانی را که در کدها زیر client.subscribe قرار دارد؛ را همانند تصویر زیر وارد میکنیم.

MQTT-with-esp8266-Wemos-d1-Mini--digispark

 

سپس Deploy میکنیم. حالا در قسمت Debug پیغام Salam Doostan را که در کدهای آردوینو وارد کرده‌ایم، میبینم. در این حالت اگر پنجره سریال را در نرم افزار آردوینو باز کنیم، همین پیغام مشاهده میشود.

 

تنظیمات نود MQTT Publisher

نود MQTT در حالت پابلیشر یا نود خروجی یا نود منتشر کننده اطلاعات ورودی را به سمت سرور ارسال می‌کند. این نود را وارد صفحه می‌کنیم و دو نود UI که من از نودهای Switch استفاده کرده‌ام. وارد صفحه می‌کنیم و همانند تصویر زیر اتصال می‌دهیم. حالا یک نود دیباگ Debug هم به برنامه اضافه می‌کنیم. دقت داشته باشید که می‌توانید تنظیمات اضافی ماننده اسم و رنگ به نودهای UI اضافه کنید. سپس Deploy کنید. حالا می‌توانید از محیط گرافیکی نود رد با تغییر وضعیت دکمه‌ها، ال ای دی را مدیریت کنید. به این روش از راه دور با برد اینترنت اشیاء بر پایه ESP8266 و نرم افزار نود رد Node red میتوانیم وسایل برقی را مدیریت کنیم.

نکته بسیار مهم، در ارتباط MQTT قسمت Topic بسیار اهمیت دارد. این تاپیک باید در نود فرستنده و نود گیرنده و دستگاهی که به سرور اطلاعات ارسال میکند، یکسان باشد. در غیر این صورت دچار ارور خواهید شد. در ادامه نودهای UI را جهت مدیریت پروژه به صورت گرافیکی را همانند تصویر به پنل اضافه می‌کنیم. با این روش میتوانید دکمه و آیکون برای مدیریت تعریف کنید.

MQTT-with-esp8266-Wemos-d1-Mini-UI-digispark

 

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

 

 


پروژه و دریافت بن ارسال رایگان


برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ‌های دیجی_اسپارک و دانشجوکیت  و digispark  و  daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۰۳۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

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

اروند طباطبایی

بنیانگذار دیجی اسپارک: اولین مرجع تخصصی امبدد سیستم به زبان فارسی / کارشناس سئو و تولید محتوا

هرچه می آموزم میبینم که خیلی کم آموختم. علاقه به رباتیک و تکنولوژی دارم. امیدوارم بتونم دانشی را که آموخته‌ام، به روش‌های مختلفی به کاربران علاقمند منتقل کنم.

تبادل نظر و رفع عیب با ثبت دیدگاه

۲۰ دیدگاه

  • آقای مهندس سلام
    وقتی می خوام esp رو پروگرم کنم این ارور رو میده
    Documents\Arduino\mqtt\sketch_aug21a\sketch_aug21a.ino:2:26: fatal error: PubSubClient.h: No such file or directory

    #include

    ^

    compilation terminated.

    exit status 1
    Error compiling for board Generic ESP8266 Module.
    آیا باید به جای”iot.eclipse.org” آی پی یا چیز دیگه ای بذاریم؟

  • الان مشکلی که هست اینه که سمت برد esp آی پی رو میشناسه ولی می نویسه:
    Attempting MQTT connection…failed, rc=-2 try again in 10 seconds
    سمت node red هم در ارتباط با iot.eclipse.org:1883 مینویسه connection failed

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

  • سلام
    وقت بخیر
    در بخش لوازم مورد نیاز برد رزبری پای رو ذکر فرمودید ولی بعد از این که این آموزش رو مطالعه کردم اینطور به نظر نمی رسه که به برد رزبری پای نیازی باشه
    درسته؟

  • سلام من یه سرور Mosquitto ساختم ومیخوام دیتای دو رزبری پای رو به هم انتقال بدم ولی وقتی در نود رد رزبری پای ها میرم یکی connectedمیشه اون یکی disconnected میشه وبرعکس کلا یدون connected میمونه اون یکی فوراdisconnected میشه؟علت چی هستش؟
    خواستم تو بخش مربوطه آموزش بزارم سایت ارور داد

    • با سلام
      پیام شما در آموزش قبل ارسال شده است. موارد را از همان طریق دنبال کنید.

  • سلام خسته نباشید
    سوالی داشتم
    امکانش هست برد ویموس با آردوینو از طریق سریال در ارتباط باشه و دیتا های آردوینو رو روی تاپیک خاصی به سرور ارسال کنه؟!
    مثلاً یه پیکیج سنسور وصل کنیم به آردوینو از طریق ارتباط سریال با برد ویموس دیتا اون پیج سنسور ها رو بفرستیم به سرور
    چطوری این کار رو باید انجام بدم؟!

    • با سلام
      ارتباط سریالی بین چند برد آردوینو امکان پذیر است. ولی علت اینکه تمایل به انجام چنین کاری با MQTT دارید، دقیقا چیست؟ درخواستی که شما دارید به تنهایی و با برد ویموس امکان پذیر خواهد بود.

  • سلام خسته نباشید
    من مشکلم اینه که تو نود رد زده کانکت و به رنگ سبز هم هست ولی در esp قسمت سریال مانیتور زده متصل نشده
    Attempting MQTT connection…failed, rc=-2 try again in 5 seconds
    تاپیک ها را یکسان وارد کردم و آی پی را هم درست زدم از آردوینو، که با دستور ipconfig تو cmd ای پی را بدست آوردم و زدم
    اولاش نود رد را هم می زد کانکت ولی به رنگ زرد بود که من با یک آموزش تو یوتوب این مشکل را برطرف کردم قسمت windows defender firewall یه چیز اضافه کرد مشکل نود رد که متصل نمی شد را برطرف کرد ولی نمی دونم چرا تو esp هنوز اون ارور را زده
    اینم نوشتم یه وقت کسی تو این قسمت مشکل داشت برطرف بشه

    می شه راهنمایم کنید ممنون