آردوینو اینترنت اشیا IOT برد ویموس Wemos پروژه های آردوینو

مانیتور دما و رطوبت محیط با برد کنترل اینترنت اشیاء IOT مدل Wemos D1 Mini

Wemos-d1-mini-OLED-temp-humidity-IOT-Digispark
نوشته شده توسط اروند طباطبایی

پارامترهای محیطی از جمله دما، رطوبت، شدت نور، میزان مصرف جریان برق حتی حضور یا عدم حضور انسان در یک محیط از موارد مهم در اینترنت اشیاء IOT میباشد. این پارامترها به صورت آنالوگ هستند و برای تبدیل به مفهوم قابل درک برای سیستم نیاز به سنسور می‌باشد. سنسورها در اینترنت اشیاء IOT توانایی قابل درک بودن پارامترهای فیزیکی برای اشیاء را به دنبال خواهند داشت. معمولا برای هر پارامتر فیزیکی و آنالوگ یک سنسور طراحی شده است. البته سنسور اثر بویایی کمی عملکرد پیشرفته تری دارد. بنابراین با انواع سنسورها میتوانیم مقادیر آنالوگ را به مقادیر دیجیتال و صفر و یک تبدیل کنیم. در این پس با استفاده از برد کنترل اینترنت اشیاء Wemos D1 Mini بر پایه ESP8266 و سنسور DHT11 و یک نمایشگر OLED دما و رطوبت محیط را میخوانیم و به نمایش در می‌آوریم. در ادامه این آموزش با مرجع آموزش تخصصی اینترنت اشیاء IOT دیجی اسپارک همراه باشید.

 

ساختار MCU در اینترنت اشیاء IOT

ام سی یو Main Control Unit مهمترین بخش در اینترنت اشیاء به شمار می‌رود. البته تمامی بخش‌ها از اهمیت برخوردار هستند و عملکرد همه‌ی بخش‌ها در قالب یک سیستم اهمیت دارد. در این پروژه از برد کنترل اینترنت اشیاء Wemos D1 Mini بر پایه تراشه ESP8266 استفاده کرده‌ام. این برد با توجه به ابعاد ۳۵ در ۲۵ میلیمتری و مصرف برق بسیار ناچیز، در کنار استفاده از تراشه وای فای، انتخاب بسیار مناسب برای اینترنت اشیاء میباشد. خصوصا اینکه با استفاده از یک باتری لیتیوم پلیمر میتوان تا ۲۴ ساعت تغذیه پشتیبان برای این برد در نظر گرفت. در واقع MCU با کلیه سنسورها میتواند ارتباط بگیرد و پارامترهای آن‌ها را دریافت و روی سرور ارسال کند. برد کنترلی Wemos D1 Mini دارای یک پایه آنالوگ و یک رابط SPI و یک رابط I2C می‌باشد. با توجه به سنسورها و ماژول‌های که با این برد ارتباط میگیرند، اتصالات را برقرار میکنیم.

 

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

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

شیلد سنسور دما رطوبت DHT11 مخصوص اینترنت اشیا iOT برد Mini D1

شیلد نمایشگر OLED مخصوص اینترنت اشیا iOT برد Mini D1

کابل Micro USB

باتری لیتیوم پلیمر (در صورت نیاز به تغذیه پشتیبان)

 

 

اتصالات مدار مانیتور دما رطوبت اینترنت اشیاء

این سه ماژول به صورت شیلد روی هم دیگر قرار می‌گیرند. کافیست پین‌ هدرهای همراه ماژول‌ها را به ترتیبی که نیاز دارید روی هم قرار دهید؛ اتصال دهید. در این پروژه من برد کنترلی Wemos D1 Mini را به عنوان برد اول، سپس شیلد DHT11 مخصوص Wemos D1 Mini را روی آن قرار دادم. بعد از آن شیلد نمایشگر OLED را روی آن قرار دادم، تا جهت نمایش مقادیر روی نمایشگر در دسترس باشد.

 

 

فراخوانی کتابخانه‌ها

در این آموزش من از ۵ کتابخانه استفاده کرده‌ام. کتابخانه SPI و کتابخانه Wire به صورت پیشفرض در IDE آردوینو نصب هستند. سه کتابخانه دیگر را به ترتیب از لینک‌ها اعلام شده دانلود کنید. کتابخانه GFX  و کتابخانه SSD1306 مخصوص نمایشگر OLED که توسط آدافورت Adafruit توسعه داده شده است. برای دانلود این دو کتابخانه به صفحه محصول شیلد نمایشگر OLED مخصوص اینترنت اشیا iOT برد Mini D1 مراجعه و در انتهای صفحه لینک دانلود وجود دارد. همچنین کتابخانه جامع سنسورهای DHT برای دانلود این کتابخانه به صفحه محصول شیلد سنسور دما رطوبت DHT11 مخصوص اینترنت اشیا iOT برد Mini D1 مراجعه و در انتهای صفحه لینک دانلود قرار دارد.

 

 

کدهای برنامه:

 

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

 

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

 

 

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

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

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

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

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

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

۵۲ دیدگاه

  • متشکرم جناب طباطبایى، چرا اسم این مدار را اینترنت اشیا گذاشتین؟ لطفا توضیح بدید.

    • با سلام
      ضمن تشکر از توجه شما، برد Wemos D1 Mini یک کنترلر اینترنت اشیاء است. از این رو کلیه پروژه‌هایی که توسط این برد کار میشوند، توانایی ارسال دیتا در بستر اینترنت را دارند. پروژه مانیتور دما رطوبت در این پست هیچ دیتایی ارسال نمیکند. ولی پیشنیازی برای ورود به اینترنت اشیاء است. در سری آموزش‌ها با برد Wemos از پروژه‌های ساده شروع کرده‌ام و پروژه‌های پیچیده و فنی را در آینده خواهیم داشت.

  • تشکر از شما
    میخواستم بدونم که چطوری میتونیم همین اطلاعات را روی تلفن همراه ارسال کنیم؟ در ایمیلی که ارسال کردید این طور نوشته بودید.

    • با سلام
      ضمن تشکر از توجه و دقت شما، در این بخش از آموزش فقط شیوه خواندن اطلاعات و نمایش روی OLED آموزش داده شد و در آینده که مجموعه آموزش‌های اینترنت اشیاء IOT با برد Wemos را ادامه میدهیم؛ شیوه انتقال دیتا و نمایش بر روی موبایل را آموزش خواهیم داد.

    • با سلام و تشکر از توجه شما
      بله کارایی دارد ولی در برد Node MCU تعریف پین‌ها متفاوت است. که به طبع باید آدرس دهی پین‌ها را متناسب با مداری که بسته‌اید تغییر دهید. همچنین نوع برد را هم از قسمت Boards نرم افزار باید تغییر دهید.

  • سلام
    میشه کلا آموزشهایی هم بزارید که بر پایه آردوینو یا بهتر بگم میکروهای AVR نباشه
    میکروهای صنعتی نظیر Pic یا stm یا arm استفاده بشه

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

  • سلام چرا موقع کامپایل کد ها این ارور رو میده ؟

    Arduino: 1.6.12 (Windows 8.1), Board: “Adafruit HUZZAH ESP8266, 80 MHz, 115200, 4M (3M SPIFFS)”

    In file included from C:\Program Files (x86)\Arduino\libraries\DHT-sensor-library-master\DHT_U.cpp:22:0:

    C:\Program Files (x86)\Arduino\libraries\DHT-sensor-library-master\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 Adafruit HUZZAH ESP8266.

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

  • خب من این فهمیدم و این کار رو کردم و از توی خود تب sketch فراخوانی کردم ولی این ارور رفع نمیشه

    • لطفا از همان مسیر Sketch وارد include Library و سپس Manage library شوید و در قسمت جستجو عبارت Adafruit_Sensor.h را جستجو کرده و نصب کنید. اگر مورد رفع نشد، مجددا پیام بگذارید.

        • پیدا کردمش اون حل شد ولی باز این error رو میده
          Arduino: 1.6.12 (Windows 8.1), Board: “Adafruit HUZZAH ESP8266, 80 MHz, 115200, 4M (3M SPIFFS)”

          project:14: error: ‘DHTPIN’ was not declared in this scope

          DHT dht(DHTPIN, DHTTYPE);

          ^

          project:14: error: ‘DHTTYPE’ was not declared in this scope

          DHT dht(DHTPIN, DHTTYPE);

          ^

          exit status 1
          ‘DHTPIN’ was not declared in this scope

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

          • این ارور مربوط به کدها میباشد. احتمالا قسمتی از کدهایی را که روی برنامه‌تان کپی کرده‌اید، دچار مشکل شده اند. لطفا بجای select کردن کدها، از کلید میانبر بالای کدها Ctrl+C استفاده کنید، تا کدها بدون مشکل کپی شوند.

          • با اینکه از رومیانبر کپی کردم دوباره همین ارور که میگه توی این اسکوپ نباید تعریف بشه رو اورد

            • با سلام
              لطفا جهت رفع مشکل از طریق ریموت دسکتاپ با شماره فروشگاه تماس بگیرید.

  • سلام
    راستش خیلی ها فکر میکنند بهترین انتخاب آردوینو و avr هستش و شاید ندونن کار عملی واقعا متفاوت با آموزشه
    بنابراین اگر روی میکروهای صنعتی هم کار کنید برای استفاده همه مفیده، درسته اسمشون صنعتیه ولی چیز عجیب غریبی نیستن، شاید حتی ارزونتر و ساده تر در بعضی موارد

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

    • با سلام
      ضمن تشکر از توجه شما، بعضی مواقع بسته به نوع سنسور این مشکل بوجود می‌آید. لطفا دستور شرطی زیر را امتحان کنید.
      if (bits[2] & 0x80) // negative temperature
      {
      temperature = word(bits[2]&0x7F, bits[3]) * 0.1;
      temperature = -1.0 * temperature;
      }
      else
      {
      temperature = word(bits[2], bits[3]) * 0.1;
      }

  • باسلام…
    حضور یا عدم حضور انسان در یک محیط با سنسور pir و ارسال داده به سرور به چه نحوی هست؟
    با تشکر…

    • با سلام
      ضمن تشکر از توجه شما، فرآیند ارسال اطلاعات دما در این پروژه‌ را در نظر بگیرید، همانند همین موضوع از سنسور PIR استفاده کنید. همچنین دقت داشته باشید که شما باید کدنویسی به زبان C++ انجام دهید و توسعه کدها را پیش ببرید.

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

    • با سلام
      ضمن تشکر از توجه شما، بله میتوانید، از تابع serial.print باید استفاده کنید.

  • باسلام
    به جای شیلد سنسور دما رطوبت DHT11 مخصوص برد Mini D1 میشه از سنسور دما رطوبت DHT11 استفاده کرد.منظورم اینه که مخصوص اینترنت اشیا نباشه؟پین out سنسور رو به پین A0 زد و تغیر دیگه ای انجام نداد؟؟

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

  • باسلام
    به جای شیلد سنسور دما رطوبت DHT11 مخصوص برد Mini D1 میشه از سنسور دما رطوبت DHT11 استفاده کرد.منظورم اینه که مخصوص اینترنت اشیا نباشه؟پین out سنسور رو به پین A0 زد؟
    و به جای شیلد نمایشگر OLED مخصوص برد Mini D1 از یک نمایشگر OLED 12C استفاده کرد؟
    بااین حساب تغیر خاصی تو کدها لازمه؟

  • سلام و خسته نباشید
    oled من زمانی که کد ها رو روی برد می ریزم این ها را نشان میده
    c
    ity
    %
    لطفا راهنمایی کنید
    با تشکر

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

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

    c
    ity
    %
    لطفا کمک کنید

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

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

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

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

      • با استفاده از پیامک امکان پذیر هستش؟اگر هست کد مورد نظر به چه شکل نوشته میشه؟
        خیلی ممنون.

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

  • سلام
    من همه کتابخانه هارو نصب کردم ولی بازم این پیامو میده
    Arduino: 1.8.5 (Windows 10), Board: “WeMos D1(Retired), 80 MHz, 9600, 4M (3M SPIFFS)”

    WARNING: Category ‘Sensor’ in library Adafruit CCS811 Library is not valid. Setting to ‘Uncategorized’
    In file included from C:\Users\mohammad\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.cpp:22:0:

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

    #include

    ^

    compilation terminated.

    Multiple libraries were found for “Adafruit_GFX.h”
    Used: C:\Users\mohammad\Documents\Arduino\libraries\arduino_942630
    Not used: C:\Program Files\Arduino\libraries\Adafruit-GFX-Library-master
    Not used: C:\Program Files\Arduino\libraries\Adafruit-GFX-Library-master
    Not used: C:\Program Files\Arduino\libraries\Adafruit-GFX-Library-master
    Not used: C:\Program Files\Arduino\libraries\Adafruit-GFX-Library-master
    Multiple libraries were found for “Adafruit_SSD1306.h”
    Used: C:\Users\mohammad\Documents\Arduino\libraries\Adafruit_SSD1306
    Not used: C:\Users\mohammad\Documents\Arduino\libraries\Adafruit_SSD1306_Wemos_Mini_OLED
    Not used: C:\Program Files\Arduino\libraries\Adafruit_SSD1306-master
    Multiple libraries were found for “DHT.h”
    Used: C:\Users\mohammad\Documents\Arduino\libraries\DHT_sensor_library
    Not used: C:\Program Files\Arduino\libraries\DHT-sensor-library-master
    exit status 1
    Error compiling for board WeMos D1(Retired).

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

  • سلام من میخوام پروژه ای طراحی کنم که چندین تا سنسور به ماژول وصل بشند و الگوریتم ها کنترلی رو نتایج انجام بشه ولی نمیدونم این ماژول جواب میده یا نیاز به nodemcu هستش…بعد اینکه کد هاشون باهم متفاوته؟

  • سلام
    من یه پروژه دارم به این صورت که بطور کامل کمک میخام…
    موضوع پروژه: طراحی پلتفرم ارتباطی IoT:
    هدف: طراحی چارچوب نرم افزاری برای تسهیل دستیابی به داده ها داخل یک ساختمان از طریق دستگاه های متفاوت اینترنت اشیا
    با قابلیت پشتیبانی از پروتکل های MQTT ، CoAP ، HTTP
    • نوع برد و سنسور مهم نیست. ولی حداقل شامل یک سنسور (مثلا دما و رطوبت باشد){برد آردوینو wemos d1 دارم و ماژول دما و رطوبت}
    • هر برد بتواند دادها را ارسال یا داده خاصی را دریافت کند.
    • زبان برنامه نویسی مهم نیست.
    • داده ها حتما در یک دیتابیس time-series ذخیره شود.
    • امکان دسترسی به دیتا از بیرون شبکه محلی وجود داشته باشد.
    • طراحی رابط گرافیکی مناسب امتیاز اضافه تر دارد.
    • تحلیل دادهها، استخراج وابستگی داده ها به همدیگر و ارائه داشبوردهای مناسب امتیاز اضافه تر دارد.
    • استفاده از هر نوع ابزار، کتابخانه یا پلتفرم جانبی مجاز است.

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