پارامترهای محیطی از جمله دما، رطوبت، شدت نور، میزان مصرف جریان برق حتی حضور یا عدم حضور انسان در یک محیط از موارد مهم در اینترنت اشیاء 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
باتری لیتیوم پلیمر (در صورت نیاز به تغذیه پشتیبان)
اتصالات مدار مانیتور دما رطوبت اینترنت اشیاء
این سه ماژول به صورت شیلد روی هم دیگر قرار میگیرند. کافیست پین هدرهای همراه ماژولها را به ترتیبی که نیاز دارید روی هم قرار دهید؛ اتصال دهید. در این پروژه من برد کنترلی 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 هم جواب میده؟
با سلام و تشکر از توجه شما
بله کارایی دارد ولی در برد 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.
با سلام
این ارور مربوط به کتابخانه است، لطفا از لینک شیلد دما رطوبت DHT11 برد کنترل اینترنت اشیاء در قسمت دانلود، کتابخانه را دانلود و در مسیر نصب آردوینو پس از خارج کردن از زیپ ذخیره کنید.
خب من این فهمیدم و این کار رو کردم و از توی خود تب 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.
با سلام و تشکر از شما
همچنان ارور کتابخانه در خصوص Adafruit_Sensor.h دریافت میکنید. مجددا بررسی و موارد را از همین طریق اطلاع رسانی کنید.
سلام من میخوام پروژه ای طراحی کنم که چندین تا سنسور به ماژول وصل بشند و الگوریتم ها کنترلی رو نتایج انجام بشه ولی نمیدونم این ماژول جواب میده یا نیاز به nodemcu هستش…بعد اینکه کد هاشون باهم متفاوته؟
با سلام
بله با برد Nodemcu از نظر کدنویسی یکسان است. ولی در خصوص بخش اول سوال شما بنده دقیقا متوجه نشدم که کاربردی مد نظر دارید.
سلام
من یه پروژه دارم به این صورت که بطور کامل کمک میخام…
موضوع پروژه: طراحی پلتفرم ارتباطی IoT:
هدف: طراحی چارچوب نرم افزاری برای تسهیل دستیابی به داده ها داخل یک ساختمان از طریق دستگاه های متفاوت اینترنت اشیا
با قابلیت پشتیبانی از پروتکل های MQTT ، CoAP ، HTTP
• نوع برد و سنسور مهم نیست. ولی حداقل شامل یک سنسور (مثلا دما و رطوبت باشد){برد آردوینو wemos d1 دارم و ماژول دما و رطوبت}
• هر برد بتواند دادها را ارسال یا داده خاصی را دریافت کند.
• زبان برنامه نویسی مهم نیست.
• داده ها حتما در یک دیتابیس time-series ذخیره شود.
• امکان دسترسی به دیتا از بیرون شبکه محلی وجود داشته باشد.
• طراحی رابط گرافیکی مناسب امتیاز اضافه تر دارد.
• تحلیل دادهها، استخراج وابستگی داده ها به همدیگر و ارائه داشبوردهای مناسب امتیاز اضافه تر دارد.
• استفاده از هر نوع ابزار، کتابخانه یا پلتفرم جانبی مجاز است.
با سلام و تشکر از شما
مواردی که مطرح کردید، همگی پیشنیاز برای ایجاد یک کسب و کار تخصصی در حوزه IoT هستند. به عبارتی چنین مواردی دیگر یک پروژه ساده نخواهند بود.