تابحال فکر کرده اید که چطور میتوانیم مقادیر یک سنسور را دریافت، تحلیل و نمایش دهیم! و همچنین این امکان برای ما وجود داشته باشد که در هر زمان و مکانی به آن دیتا دسترسی داشته باشیم، خب جواب شما همین آموزش است. با کمک دشبور iot پلتفرم ThingSpeak مقادیر سنسور DHT11 را نمایش خواهیم داد. پیش از این در پست قبلی مقادیر سنسور فشار BMP180 را به پلتفرم اینترنت اشیا ThingSpeak ارسال کردیم و در دشبورد نمایش دادیم. در این آموزش با کمک سنسور دما رطوبت محیطی DHT11 اینکار را انجام خواهیم داد. در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
لینک اجرای این پروژه در لایو اینستاگرام
پلتفرم اینترنت اشیا ThingSpeak
پلتفرم ThingSpeak یک برنامه open source اینترنت اشیا و API برای ذخیره و بازیابی اطلاعات از طریق پروتکل های HTTP و MQTT با اینترنت و یا با استفاده از شبکه محلی است. Thingspeak به شما امکان می دهد داده های سنسور ها را جمع آوری، ذخیره کنید و تجزیه و تحلیل کنید، همچنین با استفاده از امکانات موجود در دشبورد IOT این سایت می توانیم نمودار هایی بر اساس مقادیر بدست آمده رسم کنیم. ThingSpeak یک سرویس پلتفرم تجزیه و تحلیل اینترنت اشیا است که به شما امکان می دهد جریان های داده زنده را در کلاود جمع آوری، تجسم و تجزیه و تحلیل کنید. می توانید از طریق دستگاه های خود داده ها را به ThingSpeak ارسال کنید، ایجاد تصویری فوری از داده های زنده و با استفاده از سرویس های وب مانند Twitter و Twilio هشدار ارسال کنید. ThingSpeak مهندسان و دانشمندان را قادر می سازد تا نمونه های اولیه و ساخت سیستم های اینترنت اشیا را بدون تنظیم سرورها یا توسعه نرم افزارهای وب ایجاد کنند.
سنسور دما رطوبت DHT11
سنسور دما و رطوبت DHT11 سنسوری ارزان قیمت جهت اندازه گیری دما و رطوبت هوا است. اندازه، مصرف کم انرژی آن را به یکی از بهترین گزینهها جهت استفاده در پروژههای مختلف، تبدیل کرده است. با توجه به خروجی دیجیتال این سنسور، به راحتی می تواند به pyboard و یا سایر میکروکنترلر ها متصل گردد. سنسور DHT11 کالیبره شده و دارای خروجی دیجیتال است. محدوده اندازه گیری رطوبت بین ۲۰ تا ۹۰% RH و محدودهی دما از ۰ تا ۵۰ درجه سانتی گراد میباشد. ولتاژ کاری ماژول DHT بین ۳٫۳ تا ۵ ولت DC است. فاصله انتقال سیگنال در ماژول DHT11 تا ۲۰ متر میباشد. ماژول دما و رطوبت DHT11 بسیار مقرون به صرفه، دارای کیفیت عالی و واکنش سریع نسبت به تغییر دمای محیط است. ماژول DHT11 به ترتیب دارای ۳ پایه GND, VCC, Signal میباشد.
برد ESP8266
تراشه های ESP8266 از موارد محبوب در زمینه اینترنت اشیا هستند که نسبت به دیگر نمونه ها کیفیت بهتر و همچنین قیمت پایین تری نیز دارند، هسته مرکزی این ماژول ESP8266 EX می باشد که در واقع زیر این شیلد فلزی قرار گرفته است، در ضمن این شیلد فلزی به منظور کاهش نویز و همچنین محافظت از قطعات SMD حساس این ماژول قرار داده شده است. این ماژول ها در سری های مختلفی تولید میشوند از جمله esp01 و esp12، در واقع تفاوتی که مدل ها با یکدیگر دارند تعداد GPIO ها و همچنین حافظه آن ها است البته معمولا از نظر ظاهری نیز تفاوت هایی که با یکدیگر دارند که قابل تشخیص است. این ماژول ها از شبکه WIFI داخلی پشتیبانی میکنند، این میکرو کنترلر ها اولین بار در سال ۲۰۱۴ به بازار عرضه شدند. ESP8266 دارای ۱۳ GPIO و همچنین یک ورودی آنالوگ (A0) است.
شرح آموزش
در این آموزش با استفاده از سنسور دما DHT11 مقادیر دمای محیط را بدست آورده و به کمک برد ESP8266، این مقادیر را به دشبورد ThingSpeak ارسال خواهیم کرد، در نتیجه می توانیم در هر مکان و زمانی به این اطلاعات دسترسی داشته باشیم و البته این امکان نیز فراهم خواهد شد که نمودار دقیقی از تغییرات دما داشته باشیم.
وسایل مورد نیاز
کتابخانههای موردنیاز
ابتدا در نرم افزار Arduino IDE اقدام به نصب نرم افزار مرجع سنسور های DHT می پردازیم. مراحل زیر را دنبال کنید:
- این مسیر را دنبال کنید Sketch > Include Library > Manage Libraries
- کلمه DHT sensor را جستجو کنید.
- کتابخانه را نصب کنید.
در ادامه از این لینک کتابخانه Adafruit Unified Sensor را دانلود، و طبق مراحل زیر پیش بروید.
- ابتدا به مسیر Sketch > Include Library > Add .zip Library بروید، و فایل .Zip که از لینک های زیر دانلود کرده اید را اضافه کنید.
راه اندازی دشبورد ThingSpeak
این بخش در آموزش قبلی هم توضیح داده شد. ولی مجددا برای افزایش سرعت آموزش در این پست هم توضیح خواهم داد. ابتدا به آدرس thingspeak.com مراجعه کنید و یک یک اکانت جدید ایجاد کنید، سپس در قسمت Channels و در ادامه مانند تصویر زیر New Channel، اقدام به ساخت یک چنل یا دشبورد کنید.
در ادامه صفحه ای مانند تصویر زیر را مشاهده خواهید کرد، اطلاعات اسم و توضیحات را به دلخواه پر کنید و در انتهای صفحه گزینه save channel را انتخاب کنید.
در ادامه با صفحه زیر روبرو خواهید شد که میتوانید مقادیر دریافت شده را مشاهده کنید
همچنین با استفاده از گزینه Add Widgets، میتوانید، المان های دلخواه خود برای نمایش مقادیر را اضافه کنید.
دریافت API
در بخش API keys و در باکس مشخص شده میتوانید API مورد نیاز برای پروژه را پیدا کنید، از این API در ادامه استفاده خواهیم کرد.
شماتیک و اتصالات
ابتدا اتصالات سنسور DHT11 و پلتفرم ThingSpeak را مطابق جدول و شماتیک زیر برقرار کنید، همچنین یک مقاومت بین پایه های VCC و DATA در سنسور DHT قرار میگیرد. در ادامه پین DATA از سنسور DHT به پین D3 در NODEMCU متصل میگردد.
کد و راهاندازی مدار
برای شروع بخش هایی از کد را بررسی خواهیم کرد، ابتدا دو کتابخانه مورد نیاز را فراخوانی میکنیم.
#include <DHT.h> #include <ESP8266WiFi.h>
در این قسمت اطلاعات شبکه وایفای مورد نظر را وارد کنید، همچنین در قسمت apikey، کدی که با عنوان API بدست آوردیم را وارد کنید.
String apiKey = "6NL59VNRDMESSLQ9"; const char *ssid = "C1F3R"; const char *pass = "314159265";
بخش نهایی کد مربوط به استفاده از API و برقراری ارتباط با سایت ThingSpeak میباشد.
String postStr = apiKey; postStr +="&field1="; postStr += String(t); postStr +="&field2="; postStr += String(h); postStr += "\r\n\r\n"; client.print("POST /update HTTP/1.1\n"); client.print("Host: api.thingspeak.com\n"); client.print("Connection: close\n"); client.print("X-THINGSPEAKAPIKEY: "+apiKey+"\n"); client.print("Content-Type: application/x-www-form-urlencoded\n"); client.print("Content-Length: "); client.print(postStr.length()); client.print("\n\n"); client.print(postStr); Serial.print("Temperature: "); Serial.print(t); Serial.print(" degrees Celcius, Humidity: "); Serial.print(h); Serial.println("%. Send to Thingspeak.");
کد کامل پروژه انتقال اطلاعات سنسور DHT11 به پلتفرم اینترنت اشیا ThingSpeak
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
جمع بندی
در این آموزش با استفاده از سنسور DHT11 و همچنین برد ESP8266 توانستیم دمای محیط را در سریال مانیتور نرمافزار Arduino چاپ کنیم. همچنین بدلیل استفاده از برد ESP8266 توانستیم با سایت ThingSpeak ارتباط برقرار کنیم و اطلاعات در دشبورد IOT این سایت مانیتور کنیم.
- تنظیمات منوی tools در نرم افزار آردوینو نیز مانند تصویر زیر است.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
سلام
پلتفرم تینگ اسپیک کجاییه؟
این سرویس متعلق به شرکت ioBridge است.
با عرض ادب و احترام
با اضافه کردن یک سنسور جدید و ایجاد تغییرات در کد، داده ها اپدیت نمی شوند. به علاوه داده سنسور جدید در مانیتور پورت سریال قابل مشاهده است اما در thingspeak نه.
با سلام
بایستی نود جدید را در سرور تنظیم کنید.
سلام در مدار بالا قبل از اتصال سنسور باید پورت پیدا کند ولی متاسفانه پورت کام را پیدا نمی کند و پیغام خطا serial.serialutil.SerialException: could not open port ‘COM6’: FileNotFoundError دارد .
با سلام
این مشکل مربوط به سیستم شماست. ارتباطی با آموزش و راه اندازی ندارد. اتصالات مرتبط به برد را جدا کرده و به صورت مستقل به کامپیوتر متصل کنید. اگر هم از نوعی استفاده میکنید که درایور نیاز دارد، حتما درایور را روی سیستم عامل نصب کنید.