اینترنت اشیا IOT برد ویموس Wemos

آموزش ساخت گلدان هوشمند با رویکرد احساس گرا در پلتفرم Cayenne

Smart-pot-Wemos-and-cayenne-digispark
نوشته شده توسط علی فلاحی

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

 


تجهیزات مورد نیاز


این تصور را می توان در قالب یک آموزش و از طریق برد wemos d1 mini و سنسور دما و رطوبت DHT11 و ماژول رطوبت خاک (Soil Moisture) با ماژول راه انداز YL-100 و یک ما ژول رله تک کانال و یک پمپ آب به واقعیت تبدیل کرد. در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید

برد wemos D1 mini

سنسور دما و رطوبت محیط DHT11

ماژول رطوبت خاک YL-100

ماژول رله تک کانال

پمپ آب


برد Wemos D1 Mini


wemos d1 mini یک برد کنترل اینترنت اشیا بر پایه تراشه وای فای ESP8266 می‌باشد. توسط تراشه ESP8266 می‌توان به شبکه وای فای Wifi متصل شد و داده ها را بین دستگاه‌های مختلف از طریق اینترنت دریافت و ارسال کرد. برد wemos d1 mini توسط نرم افزار قدرتمند آردوینو (Arduino) قابل راه اندازی است. برای اینکار کافیست در قسمت تنظیمات برد نرم افزار آردوینو، ESP8266 را نصب و راه اندازی کنید. برای اطلاع از نحوه‌ی نصب و راه اندازی wemos d1 mini به آموزش زیر مراجعه کنید. پس از نصب ESP8266، در لیست انتخاب بردهای آردوینو، نسخه های مختلف با تراشه ESP8266 اضافه خواهد شد. آموزش راه اندازی برد wemos d1 mini را مشاهده بفرمایید. برای ارتباط با گیاه توسط گلدان هوشمند نیاز به یک بستر برای نگهداری و پردازش اطلاعات دارید. در این آموزش اطلاعات دریافتی از محیط گلدان و فرمان های ارسالی از سوی کاربر، توسط نرم افزار اینترنت اشیا Cayenne my devices پردازش می شوند.

 


اتصالات مدار


  • پایه های سنسور رطوبت خاک را به ماژول آن وصل می‌کنیم.
  • VCCماژول رطوبت خاک = ۵+ ولت برد
  • پایه GNDماژول رطوبت خاک = GND برد
  • پایه AO ماژول رطوبت خاک = پایه A0 برد
  • پایه IN ماژول رله = پایه D1 برد
  • پایه GND ماژول رله = پایه GND برد
  • پایه VCC ماژول رله = پایه ۵+ ولت برد
  • پایه IN سنسور DHT 11 =  پایه D2 برد
  • پایه VCC سنسور DHT 11 = پایه ۵+ ولت برد
  • پایه GND  سنسور DHT 11 = پایه GND برد

 


نرم افزار Cayenne my devices


این اپلیکیشن روی سخت افزارهای آردوینو Arduino ، بردهای امبدد از جمله رزبری پای Raspberry Pi و ماژول‌های ESP8266 و حتی لورا LoRa قابل اجرا می‌باشد. کلیه فرآیند طراحی به صورت Drag & Drop می‌باشد. با برنامه Cayenne می‌توانید از راه دور به تمامی سخت افزارها و ماژول‌هایی که در نظر دارید، فرمان دهید. توسعه نرم افزار از طریق سایت و اپلیکیشن Cayenne امکان پذیر است. محیط گرافیکی و رابط کاربری ساده از نقاط قوت این نرم افزار جذاب می‌باشد. برای شروع ابتدا باید وارد سایت Cayenne my devices شوید و حساب کاربری خود را ایجاد کنید.

cayenne mydevices login

 

پس از وارد شدن به حساب کاربری خودتان، بر روی منوی سبز رنگ Add new که در گوشه بالا سمت چپ قرا گرفته است، وارد منوی Device/Widget شوید. حالا از منوی  Microcontrollers برد های با تراشه esp8266 را انتخاب کنبد.

انتخاب برد در نرم افزار cayenne mydevices

 

در این قسمت ۳ عبارت برای شما به نمایش در می آید که عبارتند از MQTT Username , MQTT Password , Client ID و هر کدام از این عبارت ها در کدی که پیش تر قرار گرفته است جای گذاری می شوند.

mqtt panel در نرم افزار cayenne mydevices

 

هنگامی که با یک حساب کاربری وارد می شوید، MQTT Username و MQTT Password برای شما یکسان خواهد بود و برای هر MicroController یک Client ID به شما تعلق می گیرد. در این قسمت کد های پروژه را با هم مرور می کنیم.

 


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


برای برقرار شدن ارتباط برد، با نرم افزار Cayenne و همچنین استفاده از سنسور DHT  کتابخانه های زیر را در صورتی که قبلا با آن ها کار نکرده اید، باید به کامپایلر آردوینو خود اضافه کنید.

 

#include <CayenneMQTTESP8266.h>
#include <DHT.h>
#include <DHT_U.h>غ

 

 


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


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

char ssid[] = ".............";
char wifiPassword[] = ".............";

 

 


ارتباط با پلتفرم Cayenne


در این قسمت عبارت هایی را که از نرم افزار Cayenne دریافت کرده بودید را یک به یک در جای خود وارد کنید.

char username[] = "...........";
char password[] = "...........";
char clientID[] = "...........";

 

کدهای گلدان هوشمند با پلتفرم Cayenne را پس از اعمال تغییرات بر روی برد Wemos بارگذاری کنید.

#define CAYENNE_DEBUG
#define CAYENNE_PRINT Serial
#include <CayenneMQTTESP8266.h>
#include <DHT.h>
#include <DHT_U.h>
#define DHTPIN D2
#define DHTTYPE DHT11
DHT_Unified dht(DHTPIN, DHTTYPE);
int maxx=1023 ;
#define relay D1 // اتصال رله
#define Humsensor A0  // اتصال سنسور 
// WiFi network info.
char ssid[] = ".............";  // نام مودم وای فای خود را با رعایت بزرگ یا کوچک بودن حروف در این قسمت جایگزین کنید
char wifiPassword[] = "............."; // رمز عبور وای فای خود را با رعایت بزرگ یا کوچک بودن حروف در این قسمت جایگزین کنید
// اطلاعات دریافت شده از سایت را به طور مجزا در قسمت های زیر جایگزین کنید
char username[] = "...........";
char password[] = "...........";
char clientID[] = "...........";

void setup() {
  Serial.begin(9600);
  Cayenne.begin(username, password, clientID, ssid, wifiPassword);

      pinMode(D1 , OUTPUT);
    delay(10);
    digitalWrite(relay , LOW);
}

void loop() {
  Cayenne.loop();
  int x = analogRead(Humsensor);
  if (x<maxx)
  maxx = x ;
  int y = map(x, 1024, maxx , 0, 100);
Cayenne.virtualWrite(1,y, "soil_moist" , "p" );
sensors_event_t event;  
    dht.temperature().getEvent(&event);
    Cayenne.celsiusWrite(2, event.temperature);
    dht.humidity().getEvent(&event);
    Cayenne.virtualWrite(3, event.relative_humidity, "rel_hum", "p");
   delay(200);
}

CAYENNE_IN(4)
  {
    digitalWrite(relay , !getValue.asInt());
  }

 


راه اندازی Cayenne


اگر تمام مراحل را تا به این جا درست پشت سر گذاشته باشید، پس از اتصال برد به اینترنت نرم افزار Cayenne صفحه ای که در زیر مشاهده می کنید را به شما نمایش خواهد داد.

داشبورد نرم افزار cayenne mydevices

کانال ۱ در کد های برنامه به رطوبت خاک، کانال ۲ به دمای محیط، کانال ۳ به رطوبت محیط و کانال ۴ به رله اختصاص یافته است. بر روی + سبز رنگ بالای هرکانال کلیک کنید تا بتوانید تغییراتی را که می خواهید بر روی آن ها اعمال کنید. برای ویرایش نام و نوع نمایش  از منوی تنظیمات هر کانال می توانید تغییرات لازم را اعمال کنید.

 

تغییرات channel در نرم افزار cayenne my devices

 


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


برای ایجاد کلید آبیاری کافیست تا از منوی Add New گزینه Device/Widget را انتخاب کنید. پس از آن با انتخاب منوی Custom Widget  گزینه Button را انتخاب کنی. و مراحل را همانند تصویر زیر طی کنید.

Name: یک نام دلخواه انتخاب کنید.

Data: Digital Actuator

Unit: Digital 0/1

Channel: 4

choose icon: button

و در آخر گزینه Add Widget را انتخاب کنید.

ایجاد کلید در نرم افزار cayenne mydevices

 

 


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


برای آبیاری اتوماتیک باید یک Trigger تعریف کنید. از منوی Add new گزینه Trigger را انتخاب کنید. در این مرحله یک If / That را مشاهده می کنید که می توانید به کمک آن آبیاری خودکار را برنامه ریزی کنید. برای این کار تنها کافیست تا برد خود را داخل منوی If بیندازید. واز منوی آن رطوبت خاک را که کانال ۱ می باشد انتخاب کنید. سپس با توجه به نوع گیاه بازه آبیاری را برای روشن و خاموش شدن پمپ تعریف کنید.

ایجاد trigger در نرم افزار cayenne mydevices

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

ایجاد trigger در نرم افزار cayenne my devices

 

 


گلدان هوشمند احساس گرا


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

تنظیمات دما در cayenne mydevices

 

جمع بندی

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

 

 

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

 


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


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

 

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

 

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

علی فلاحی

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

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

۳۳ دیدگاه

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

    • سلام و روز به خیر.
      شما می توانید آموزش کامل راه اندازی برد wemos D1 mini و ارتباط برد با کامپایلر آردوینو را در آموزش نصب و راه اندازی برد کنترل IOT اینترنت اشیاء Wemos D1 Mini مظالعه کنید.
      همچنین می توانید لینک تصاویر خود را در انتهای همین آموزش قرار دهید.

    • الان مطمئن شدم درست وصل شدم.در نرم افزار اردوینو در قسمت تنظیم باید برد wemos d1 رو انتخاب کنم.یا esp8266?برنامه نویسی و کامپایل کردن به چه شکل؟اگر اشتراک spark رو بخرم کل برنامه نویسی رو در اختیارم میذاره؟

      • برای اتصال در کامپایلر آردوینو برد wemos D1 را انتخاب کنید.
        برای دسترسی به کد های پروژه شما نیاز به اشتراک اسپارکر پلاس دارید.

    • سلام
      برای اجرا کردن کد ها بر روی Nodemcu، کافیه که در کامپایلرتون برد مورد نظر رو انتخاب کنید. و اتصالات رو به همین شکل به برد Nodemcu وصل کنید.

      • سلام توی کامپایلر بر nodemcu رو انتخاب میکنم و وقتی کد چراغ چشمک زن رو وارد میکنم همه چی درسته و چراغ روی برد شروع به چشمک زدن میکنه.
        ولی وقتی کد های این مجموعرو وارد میکنم این اروور رو میده:
        Arduino: 1.8.9 (Mac OS X), Board: “Generic ESP8266 Module, 80 MHz, Flash, Disabled, All SSL ciphers (most compatible), ck, 26 MHz, 40MHz, DOUT (compatible), 512K (no SPIFFS), 2, nonos-sdk 2.2.1 (legacy), v2 Lower Memory, Disabled, None, Only Sketch, 115200”

        In file included from /Users/Milad/Documents/Arduino/sketch_may20b/sketch_may20b.ino:2:0:
        /Users/Milad/Documents/Arduino/libraries/DHT_sensor_library/DHT_U.h:25:29: fatal error: Adafruit_Sensor.h: No such file or directory
        #include

        ^
        compilation terminated.
        exit status 1
        Error compiling for board Generic ESP8266 Module.

        This report would have more information with
        “Show verbose output during compilation”
        option enabled in File -> Preferences.

        • با سلام.
          خطا مربوط به یکی از کتابخانه های استفاده شده در پروژه می باشد.(error: Adafruit_Sensor.h:) کتابخانه هارا بررسی کنید و نتیجه را از طریق کامنت اعلام کنید.

  • سلام.دسترسی به سایت mydevices.com برای ایران قطع شده و با فیلتر شکن باید وارد شد.با وارد شدن به سایت هم انگار طوری تغییر دادن که تنها با اپ مخصوص میتوان کنترل کرد.لطفا از طریق اپ هم آموزش رو بروز کنید.

    • یا سلام.
      برای ورود به پنل کاربری در سایت cayenne.mydevices.com به فیلتر شکن نیاز دارید. در انتهای صفحه اصلی در زیر منوی cayenne، گزینه های sign in و sing up free قرار گرفته است.
      اگرپس از ورود با گوشی یا تبلت، آیکون های google play و app store را برای دانلود برنامه مشاهده کردید، با چرخاندن گوشی مشکل رفع خواهد شد.

  • سلام.
    ارور
    Arduino: 1.8.9 (Windows 7), Board: “WeMos D1 R2 & mini, 80 MHz, 115200, 4M (3M SPIFFS)”

    sketch_may15a:3:32: error: CayenneMQTTESP8266.h: No such file or directory

    #include

    ^

    compilation terminated.

    exit status 1
    CayenneMQTTESP8266.h: No such file or directory

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

  • سلام مجدد.
    ارور قبلی برطرف شد.الان اینو میگه
    Arduino: 1.8.9 (Windows 7), Board: “WeMos D1 R2 & mini, 80 MHz, 115200, 4M (3M SPIFFS)”

    In file included from C:\Users\Admin\Documents\Arduino\sketch_may15a\sketch_may15a.ino:5:0:

    C:\Users\Admin\Documents\Arduino\libraries\DHT_sensor_library/DHT_U.h:36:29: fatal error: Adafruit_Sensor.h: No such file or directory

    #include

    ^

    compilation terminated.

    exit status 1
    Error compiling for board WeMos D1 R2 & mini.

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

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

  • سلام.کدها رو کامل کامپایل کردم.بدون هیچ اروری کامپایل شدو در حال کامپایل کردن هم برد مداوم چشمک میزد.اما برد بعد از کامپایل شدن هیچ چشمکی که مثلن به وای فای وصل شده نمیزنه.بزرگی کوچکی حروف هم کنترل کردم.بعد توی اردوینو قسمت tools…board info که میرم bn رو میزنه unknown board.مشکل میتونه از این باشه.

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

  • سلام مجدد.در سریال مانیتور اینها رو نمایش میده
    ۹۷۵۸] Publish: topic 1, channel 1, value 99, subkey p, key soil_moist
    [۱۳۰۱۱۶] Publish: topic 1, channel 2, value nan, subkey c, key temp
    [۱۳۰۳۲۴] Publish: topic 1, channel 3, value nan, subkey p, key rel_hum
    [۱۳۱۷۶۲] Connection ok
    [۱۳۱۷۶۲] Publish: topic 1, channel 1, value 98, subkey p, key soil_moist
    [۱۳۲۰۰۰] Publish: topic 1, channel 2, value nan, subkey c, key temp
    [۱۳۲۳۱۱] Publish: topic 1, channel 3, value nan, subkey p, key rel_hum
    [۱۳۳۷۶۲] Publish: topic 1, channel 1, value 99, subkey p, key soil_moist
    [۱۳۴۰۰۲] Publish: topic 1, channel 2, value nan, subkey c, key temp
    [۱۳۴۳۱۱] Publish: topic 1, channel 3, value nan, subkey p, key rel_hum
    [۱۳۵۷۶۸] Publish: topic 1, channel 1, value 98, subkey p, key soil_moist
    [۱۳۶۰۰۰] Publish: topic 1, channel 2, value nan, subkey c, key temp
    [۱۳۶۳۱۳] Publish: topic 1, channel 3, value nan, subkey p, key rel_hum

    که بطور مداوم رفرش میشه

  • سلام دوستان در چند روز اخیر platform cayenne شما ایا درست کار نمی دهد یا مشکل از من و اینترنت بنده است
    مشکلم قطع و وصل شدن و برد با سرور cayenne است و عدم بر قرار اتصال با ان می باشد

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

  • سلام مهندس با توجه به اینکه سایت فیلتر شده میتوان این پروژه را اجرا کرد یا نه ؟؟