تابحال فکر کرده اید که چطور میتوانیم مقادیر یک سنسور را دریافت، تحلیل و نمایش دهیم! و همچنین این امکان برای ما وجود داشته باشد که در هر زمان و مکانی به آن دیتا دسترسی داشته باشیم، خب جواب شما همیم آموزش است، با کمک دشبور iot سایت ThingSpeak مقادیر سنسور DHT11 را نمایش خواهیم داد. برای آموزش های بیشتر به CiferTech مراجعه کنید، همچنین برای حمایت از من حتما پیج من در اینستاگرام را دنبال کنید. ^-^
ThingSpeak
ThingSpeak یک برنامه open source اینترنت اشیا و API برای ذخیره و بازیابی اطلاعات از طریق پروتکل های HTTP و MQTT با اینترنت و یا با استفاده از شبکه محلی است. Thingspeak به شما امکان می دهد داده های سنسور ها را جمع آوری، ذخیره کنید و تجزیه و تحلیل کنید، همچنین با استفاده از امکانات موجود در دشبورد IOT این سایت می توانیم نمودار هایی بر اساس مقادیر بدست آمده رسم کنیم.
سنسور دما رطوبت 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 ارسال خواهیم کرد، در نتیجه می توانیم در هر مکان و زمانی به این اطلاعات دسترسی داشته باشیم و البته این امکان نیز فراهم خواهد شد که نمودار دقیقی از تغییرات دما داشته باشیم.
قطعات مورد نیاز
سنسور DHT11
برد ESP8266
کتابخانه های موردنیاز
ابتدا در نرم افزار 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 در ادامه استفاده خواهیم کرد.
شماتیک و اتصالات
ابتدا اتصالات را مطابق جدول و شماتیک زیر برقرار کنید، همچنین یک مقاومت بین پایه های VCC و DATA در سنسور DHT قرار میگیرد. در ادامه پین DATA از سنسور DHT به پین D3 در NODEMCU متصل میگردد.
کد و راهاندازی مدار
برای شروع بخش هایی از کد را بررسی خواهیم کرد، ابتدا دو کتابخانه مورد نیاز را فراخوانی میکنیم.
1 2 |
<span style="font-size: 14px;">#include <DHT.h> #include <ESP8266WiFi.h></span> |
در این قسمت اطلاعات شبکه وایفای مورد نظر را وارد کنید، همچنین در قسمت apikey، کدی که با عنوان API بدست آوردیم را وارد کنید.
1 2 3 4 |
<span style="font-size: 14px;">String apiKey = "6NL59VNRDMESSLQ9"; const char *ssid = "C1F3R"; const char *pass = "314159265";</span> |
بخش نهایی کد مربوط به استفاده از API و برقراری ارتباط با سایت ThingSpeak میباشد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<span style="font-size: 14px;"> 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.");</span> |
کد کامل پروژه.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
<span style="font-size: 14px;">#include <DHT.h> #include <ESP8266WiFi.h> String apiKey = "6NL59VNRDMESSLQ9"; const char *ssid = "C1F3R"; const char *pass = "314159265"; const char* server = "api.thingspeak.com"; #define DHTPIN 0 DHT dht(DHTPIN, DHT11); WiFiClient client; void setup() { Serial.begin(115200); delay(10); dht.begin(); Serial.println("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, pass); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); } void loop() { float h = dht.readHumidity(); float t = dht.readTemperature(); if (isnan(h) || isnan(t)) { Serial.println("Failed to read from DHT sensor!"); return; } if (client.connect(server,80)) //"184.106.153.149" or api.thingspeak.com { 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."); } client.stop(); Serial.println("Waiting..."); delay(500); }</span> |
جمع بندی
در این آموزش با استفاده از سنسور DHT11 و همچنین برد ESP8266 توانستیم دمای محیط را در سریال مانیتور نرمافزار Arduino چاپ کنیم. همچنین بدلیل استفاده از برد ESP8266 توانستیم با سایت ThingSpeak ارتباط برقرار کنیم و اطلاعات در دشبورد IOT این سایت مانیتور کنیم.
- تنظیمات منوی tools در نرم افزار آردوینو نیز مانند تصویر زیر است.
12 thoughts on “DHT11 Temp Monitoring ON ThingSpeak”
Hello, i believe that i noticed you visited my web site so i came to go back
the prefer?.I’m trying to find issues to enhance my website!I suppose
its ok to use a few of your ideas!!
Good day! I simply would like to give you a big thumbs up for your great info you’ve got right here on this post.
I’ll be coming back to your web site for more soon.
You need to be a part of a contest for one of the greatest
websites online. I most certainly will highly recommend this web site!
Good day! I know this is somewhat off topic but I
was wondering if you knew where I could get a captcha plugin for my comment form?
I’m using the same blog platform as yours and I’m having difficulty finding one?
Thanks a lot!
Excellent post. I was checking continuously this weblog and I’m inspired!
Very helpful information particularly the remaining section 🙂 I care for such information a lot.
I used to be seeking this certain info for a very long time.
Thank you and good luck.
Pretty nice post. I just stumbled upon your blog and wanted to say that I have really enjoyed surfing around your blog posts.
In any case I’ll be subscribing to your feed and I hope you write again soon!
I am not sure where you’re getting your information, but good topic.
I needs to spend some time learning more or understanding more.
Thanks for wonderful info I was looking for this information for my
mission.
Nice post. I learn something new and challenging on sites I stumbleupon everyday.
It will always be helpful to read articles from other writers and practice something from their sites.
I love your blog.. very nice colors
Excellent post. I was checking continuously
this blog and I am inspired!
This page truly has all of the info I needed concerning this subject and didn’t know who to
ask.
Great work! That is the kind of info that should be shared around
the net. Disgrace on Google for now not positioning this put up
higher! Come on over and visit my site . Thanks
=)