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

پروژه گلدان هوشمند برپایه IoT با برد Nodemcu و پروتکل MQTT

Soil-control--IOT-nodemcu-and-Nodered-digispark
نوشته شده توسط پریسا پوربلورچیان

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

 


پروتکل ارسال و دریافت MQTT


امنیت! یک اصل مهم در پروژه‌های اینترنت اشیا ارسال و دریافت دیتا در یک بستر امن می‌باشد. پروتکل MQTT این امکان را در اختیار کاربران قرار داده است تا از امکانات ویژه پروتکل در بستر اینترنت اشیا استفاده کنند. پروتکل MQTT یک پروتکل سبک، امن و با سرعت بسیار بالا می‌باشد. کلاینت‌ها در شبکه از طریق یک سرور مشترک اطلاعات را منتشر کرده و سپس به اشتراک می‌گذارند. با اجرای این پروژه به خوبی با روش فعال سازی MQTT آشنا خواهید شد. پیشنهاد می‌شود برای مطالعه و بررسی دقیق‌تر به آموزش کنترل وسایل الکترونیکی توسط پروتکل MQTT در پلتفرم Node-RED مراجعه کنید. کنترل وسایل الکترونیکی از راه دور بدون برنامه نویسی با پروتکل MQTT

 

پروژه گلدان هوشمند با Nodemcu و پرتکل MQTT در بستر Nodered - دیجی اسپارک

 

راه اندازی برد Nodemcu

Nodemcu یک برد کنترلی اینترنت اشیا بر پایه تراشه وای فای ESP8266 می‌باشد. توسط تراشه ESP8266 می‌توان به شبکه وای فای Wifi متصل شد و دیتا را بین دستگاه‌های مختلف از طریق اینترنت دریافت و ارسال کرد. از مزیت‌های برد Nodemcu توسط نرم افزار قدرتمند آردوینو Arduino قابل راه اندازی است. برای اینکار کافیست در قسمت تنظیمات برد نرم افزار آردوینو، ESP8266 را نصب و کانفیگ کنید. برای اطلاع از نحوه‌ی نصب و راه اندازی Nodemcu به آموزش زیر مراجعه کنید. پس از نصب ESP8266، در لیست انتخاب بردهای آردوینو، ورژن‌های مختلف با تراشه ESP8266 اضافه خواهد شد. آموزش راه اندازی NodeMCU به وسیله‌‌ی آردوینو

 

در این آموزش توسط سنسور رطوبت خاک Soil Moisture ، نیاز گیاه به آبیاری را بررسی می‌کنیم. سنسور رطوبت خاک با قرار گرفتن در خاک و محیط مرطوب عمل خواهد کرد. همانطور که در ساختار سنسور مشخص است از یک پایه دیجیتال و آنالوگ برای دریافت دیتا ساخته شده است. توسط پایه آنالوگ رطوبت خاک در بازه ۰ تا ۱۰۲۴ تغییر کرده و می‌توانیم بازه های متفاوت برای عملکرد خاص سنسور تعریف نماییم. برای اینکار نیاز به تعریف چند بازه خواهیم داشت. با قرار گرفتن سنسور در محیط مرطوب مشخص خواهیم کرد چه زمانی گیاه نیاز به آب رسانی خواهد داشت.

 


کتابخانه آردوینو Arduino


برای ارتباط با وای فای Wifi و پروتکل MQTT نیاز به تعریف دو کتابخانه خواهیم داشت:

کتابخانه ESP8266wifi

کتابخانه ESP8266 جهت ارتباط برد آردوینو با وای فای فراخوانی می‌شود. برای دانلود کتابخانه از مسیر اصلی نرم افزار آردوینو اقدام کنید. برای اینکار از منو Sketch، گزینه Include Library را انتخاب کنید. سپس کلید واژه ESP8266 را وارد و کتابخانه ESP8266wifi را مطابق با آخرین ورژن نصب نمایید. اگر روش نصب را نمی‌دانید به آموزش نصب کتابخانه در آردوینو مراجعه کنید. پس از نصب کتابخانه باید اطلاعات وای فای خود را در کد برنامه وارد کنید.

در قسمت SSID نام کاربری وای فای و در قسمت Password، رمز عبور وای فای خود را وارد نمایید. حال نوبت به فعال سازی وای فای رسیده است. برای اینکار طبق دستورات پیش پردازنده کتابخانه ESP8266، از دستور زیر برای فعال سازی و اطلاع از فعال شدن و غیر فعال شدن اینترنت وای فای wifi استفاده می‌کنیم.

 

جهت دسترسی به این بخش از پروژه، اسپارکر پلاس شوید.

 

حال با توجه به ورژن برد Nodemcu ، نوع برد را انتخاب نمایید. در این مرحله با کامپایل کد آردوینو، Nodemcu به وای فای متصل خواهد شد.

 

کتابخانه PubSubClient

از کتابخانه PubSubClient جهت ارتباط برد آردوینو با پروتکل MQTT و دریافت و ارسال دیتا استفاده می‌شود. جهت دانلود کتابخانه همانند روش قبل در منو library manager کتابخانه، کلید واژه PubSubClient سرچ کرده و سپس آن را نصب نمایید. کتابخانه PubSubClient با بردهایی از جمله Arduino ethernet، Arduino ethernet shield، Arduino YUN، ESP8266 و ESP32 سازگار است. برای فعال سازی پروتکل MQTT در کد آردوینو از دستور پیش پردازنده زیر استفاده خواهیم کرد.

 

جهت دسترسی به این بخش از پروژه، اسپارکر پلاس شوید.

 

تشخیص رطوبت خاک با برد Nodemcu و پرتکل MQTT اینترنت اشیا- دیجی اسپارک

در این آموزش از سرویس رایگان Eclipse پروتکل MQTT استفاده شده است. این سرویس به صورت رایگان در اختیار کاربران قرار گرفته شده است و تنها کافیست در هر دو دستگاه از آدرس سرور iot.eclipse.org استفاده نمایید. سرویس‌هایی دیگری برای استفاده از پروتکل MQTT وجود دارد. در آموزش‌های بعدی به آن خواهیم پرداخت.

 


سنسور رطوبت خاک


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

 

جهت دسترسی به این بخش از پروژه، اسپارکر پلاس شوید.

 

 


کد آردوینو گلدان هوشمند


کدهای زیر نهایی شده و همه موارد از جمله کتابخانه و سورس MQTT در آن قرار گرفته شده است. کافیست با استفاده از کلیدهای میانبر بالای کدها، عینا موارد را کپی کرده و در کامپایلر آردوینو ذخیره کنید.

 

جهت دسترسی به این بخش از پروژه، اسپارکر پلاس شوید.

 

 


کامپایل پروژه گلدان هوشمند


پس از انتقال کد به نرم افزار آردوینو نوبت به کامپایل و اجرای پروژه است. در ابتدا با توجه به ورژن برد Nodemcu ، برد مناسب را انتخاب و باد ریت را تنظیم کنید. سپس کد را کامپایل کنید. پس از کامپایل کد آردوینو، سریال مانیتور را باز کنید. در مرحله اول برد Nodemcu به وای فای متصل شده و در سریال مانیتور عبارت زیر نمایش داده می‌شود.

 

خط اول، در صورتیکه تنظیمات ssid و password را به درستی وارد کرده باشید، به وای فای متصل خواهید شد و عبارت wifi connected نمایش داده می‌شود. سپس ip address برای اتصال به سرور مشخص می‌گردد. در مرحله آخر MQTT فعال شده و عبارت Attempting MQTT connection…connected نمایش داده می‌شود. سپس طبق شرط گذاری‌های انجام شده برای سنسور رطوبت خاک، با قرار گرفتن سنسور در محیط مرطوب و سطح آب مشخص دیتا دریافتی از پایه آنالوگ به همراه متن مورد نظر ما نمایش داده می‌شود.

 

تشخیص رطوبت خاک با برد Nodemcu و پرتکل MQTT اینترنت اشیا- دیجی اسپارک

 


نرم افزار Node-RED


نرم افزار نود رد Node-RED یک پلتفرم اوپن سورس در بین نرم افزارهای اینترنت اشیا IOT می‌باشد. از ویژگی جذاب محیط نود رد Node-RED کدنویسی در یک محیط گرافیکی است که با Drag & Drop و انتخاب نودهای تعریف شده امکان پذیر خواهد بود. در مجموعه آموزش‌های نود رد Node-RED نحوه راه اندازی و کار با آن آموزش داده شده است. جهت اطلاعات بیشتر به لینک زیر مراجعه و مطالعه کنید. آموزش نرم افزار Node Red در این مرحله می‌خواهیم دیتا دریافتی از سنسور را در محیط گرافیکی UI دریافت و کنترل کنیم. برای اینکار نیاز به نودهای شاخه UI خوااهیم داشت. در آموزش بخش دوم کار با نرم افزار اینترنت اشیا Node-RED نحوه‌ی فعال سازی و تنظیمات نودهای UI کامل توضیح داده شده است. مطالعه کنید. دقت داشته باشید که کلیه تنظیمات سمت نرم افزار نود رد فقط برای اعضایی با سطح اشتراک اسپارکر پلاس قابل دسترس و رفع عیب می‌باشد.

 

جهت دسترسی به این بخش از پروژه، اسپارکر پلاس شوید.

 

پروژه شما آماده است. وارد محیط UI شده و گلدان هوشمند خود را مدیریت و کنترل کنید.


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


رزبری پای Raspberry pi

برد NodeMCU بر پایه ESP8266

ماژول رطوبت خاک Soil Moisture

 

 

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

 


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


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

 

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

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

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

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

۲ دیدگاه

  • با سلام و تشکر از مطلب مفیدتون . یک سوالی داشتم :
    توی این پروژه شما فقط میزان رطوبت خاک رو می سنجید . حالا اگر بخواهیم طوری عمل کنیم که زمانی که این رطوبت به یک مقدار خاصی رسید یک کار خاصی انجام بشود مثلاٌ آب رو برسونه به گل باید به چه صورت عمل کنیم ؟

    • سلام
      از توجه شما ممنونم.
      در این خصوص بایستی با دستور if شرط نویسی کنید و زمانی که رطوبت از بازه مورد نظر کمتر شد، خروجی دیگری فعال گردد ( به عنوان مثال رله ).
      بررسی و نتیجه را از همین طریق اعلام کنید.