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 را مطابق با آخرین ورژن نصب نمایید. اگر روش نصب را نمی‌دانید به آموزش نصب کتابخانه در آردوینو مراجعه کنید. پس از نصب کتابخانه باید اطلاعات وای فای خود را در کد برنامه وارد کنید.

const char* ssid = "Parisaa";
const char* password = "******";

در قسمت 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 به وای فای متصل شده و در سریال مانیتور عبارت زیر نمایش داده می‌شود.

WiFi connected
IP address: 
۱۹۲٫۱۶۸٫۱٫۱۷۱
In reconnect...
Attempting MQTT connection...connected

 

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

analog value: 1024
Needs water

 

تشخیص رطوبت خاک با برد 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 شرط نویسی کنید و زمانی که رطوبت از بازه مورد نظر کمتر شد، خروجی دیگری فعال گردد ( به عنوان مثال رله ).
      بررسی و نتیجه را از همین طریق اعلام کنید.

  • با سلام
    پروژه بسیار جذابی است لطفا در خصوص نرم افزار نودرد توضیحاتی بیشتری ارائه دهید چرا که محیط برنامه نویسی آن بسیار متفاوت است

    • با سلام و تشکر از شما
      نرم افزار نود رد یک پلتفرم اوپن سورس بر پایه nodejs و javascript است که به دلیل محیط برنامه نویسی و گرافیکی جذاب آن بسیار پرطرفدار است. در آموزش های مربوط به نرم افزار node-red در سایت توضیحات اولیه کامل ارائه شده است که پیشنهاد میکنم، مطالعه فرمایید.

    • با سلام
      جهت راحتی کار، از منو sketch / include library کلید واژه PubSubClient را سرج و نصب نمایید.
      پس از آن کتابخانه نصب و آماده اجرا می‌باشد.

  • سلام خانم بلورچیان
    چطور مثل شما ابعاد گیج ها را تغییر بدم؟ برای من همش یک اندازه است و ردیفی قرار گرفته

    • با سلام
      در این خصوص پس از ورود به تنظیمات هر نود بر روی گزینه size کلیک کرده و ابعاد مورد نیاز خود را انتخاب نمایید.

  • درود
    آیا با برد Wemos قابل اجرا است
    چه تغییراتی باید انجام بدم لطفا راهنمایی کنید

    • با سلام
      بله تفاوتی در روند اجرای پروژه وجود ندارد. تنها می‌بایست قبل از آپلود نوع برد مورد استفاده را در نرم افزار آردوینو انتخاب نمایید. به عنوان مثال در صورت استفاده از برد wemos d1 mini نوع برد را Wemos D1 R1 انتخاب کنید.

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

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

    • با سلام
      در این خصوص پس از انجام تنظیمات طبق آموزش، جهت ورود به UI ابتدا آی پی آدرس و سپس UI را وارد نمایید. همانند زیر :
      ip address:1880/ui

  • سلام
    من عضویت سه ماهه گرفتم اما دسترسی به سرس هیچ پروژه ای ندام . چطوری میتونم پیگیری کنم ؟

    • با سلام
      در این آموزش از رزبری پای جهت ارتباط با محیط Node-Red و طراحی محیط گرافیکی جهت مدیریت گلدان استفاده شده است.

  • سلام علیکم .روز بخیر.ببخشید ما در حال ساخت پروژه پریز هوشمند هستیم.ممنون میشم اگر راهنمائیم کنید

    • با سلام
      کاربر گرامی لطفا درخواست خود را شفاف توضیح دهید تا راهنمایی شود.

  • سلام خیل آموزش خوبی بود ول ی وقتی میخواد به MQTTوصل بشه وصل نمیشه واین پیغامو میاره
    Attempting MQTT connection…failed, rc=-2 try again in 5 seconds

    • با سلام
      طی به روز رسانی اخیر، سرور MQTT را به mqtt.eclipse.org تغییر دهید. مشکل برطرف خواهد شد.

  • سلام و خسته نباشی…
    اول از همه باید ازتون تشکر کرد بابت مطالب مفیدی که در سایتتون گذاشتین…
    سوالی که دارم اینکه برای یادگیری خوب و مؤثر رزبری پای باید چه مباحثی رو یاد گرفته باشیم؟؟مثلا اگر قبل از رزبری پای باید آردینو رو فرا گرفته باشیم…قبل از آردینو باید چه مبحثی رو بلد باشیم؟؟کلا مسیری که باید طی کنیم رو راهنمایی کنید ممنون میشم…با تشکر.

    • با سلام
      ضمن تشکر از شما، در خصوص یادگیری تمامی مباحث به هم مرتبط است و با یادگیری زبان های برنامه نویسی مانند C++، پایتون میتوانید با آردوینو و رزبری پای شروع به کار و کدنویسی کنید.
      آموزش های رزبری پای در سایت در دو بخش پایتون و نرم افزار Node-Red بخش بندی شده است و تنها کافیست با هر آموزش پروژه محور پیش رفته و از طریق بخش دیدگاه های هر آموزش با نویسنده در ارتباط باشید و به رفع عیب بپردازید.

  • سلام. من از این پروژه میخوام برای کنترل رطوبت فضای تولید پرورش قارچ در ابعاد کوچک (۷۰*۴۰*۵۰) استفاده کنم که بستر کشت ورمیکولیت و کمپوست است. با توجه به شرایط آیا این سنسور در محیط ذکر شده( ورمیکولیت و کمپوست) راه اندازی می شود؟ وآیا در رطوبت بالای ۹۰ درجه مشکلی براش پیش نمیاد؟

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

  • سلام من برای اولین بارمه که اشتراک دیجی‌اسپارک را تهیه کردم میخواستم بدونم چطور بفهمم از ۲۵ پروژه که برایم فعال شده چند تا را دیده ام و چقدر مانده است؟
    آیا صفحه اطلاعات نداره این قسمت؟
    میشه یکم راهنمایی کنید

  • سلام و وقت بخیر
    چطور میشه با اندروید به یه دستگاه هوشمند که wifi داره و راه ارتباطیش با وای فای هست و پروتکل ارتباطیشون هم mqtt هست کار کرد؟!؟
    ایا شما آموزش یا مطلبی دارید که این موضوع رو برای من روشن کنه که به چه صورت کار میکنه؟

    • با سلام
      اگر دستگاه مورد نظر به صورت آماده به کار باشد، بایستی این مورد را از تولید کننده آن پیگیری کنید. ولی اگر منظورتان به صورت کلی است، نیازی نیست دستگاه اندرویدی روی پروتکل MQTT ست شود.

  • سلام ببخشید من با اشتراک سه ماه وارد میشم به این قسمت کد های این قسمت برام بالا نمیاد؟

    • با سلام
      در این خصوص بایستی از بروکرهایی که خدمات میدهند استفاده کنید مانند kaa, eclipse

  • سلام وقت بخیر من به مشکل برخوردم خواهشا کمکم کنیید چون این پروژه رو دارم کار میکنم برای جایی مشکلم اینجاست کد رو بارگزاری میکنم تو ESP8266 و ای پی میده تا اینجا مشکلی نیست ولی این ای پی شبکه هست وفقط به اون هات اسپاتی که باز کردی برای ESP8266 وقتی سرچ میکنی اطلاعات رو تواون نشون میده وبا کامپیوتر ودستگاه های غییره که اون ای پی رو سرچ میکنم نمیاره این اسمش اینترنت اشیا نشد که میشه شبکه داخلی وقسمت Node Rade هم از اول توضیح داده نشده که چطوری میشه به اون ادرس اون رو وصل کرد موقعی که ساختی UI هارو خواهشا کمکم کنید ممنون

    • با سلام
      بله دقیقا چنین سناریویی صحیح است. برای اینکه در شبکه های دیگرهم بتوانید از آی پی مورد نظر استفاده کنید. بایستی نودرد را روی یک سرور نصب کنید و از طریق آن که دارای آی پی است، اقدام کنید.