پلتفرمهای اینترنت اشیا بسیار گسترده و متنوع هستند. هر پلتفرم IoT برای کاربری مختلفی طراحی شده است. معولا بردهای امبدد از جمله آردوینو، Nodemcu و… قابلیت ارسال دیتا به این پلتفرمها را دارند. پلتفرم اینترنت اشیا ThingSpeak دارای بخشهای گستردهای است. قسمتهایی از پلتفرم ThingSpeak را میتوانید به صورت رایگان استفاده کنید. در آموزش قبل با کمک سنسور BMP180، مقادیر دما و فشار را در سریال مانیتور و Oled نمایش دادیم. در این آموزش علاوه بر این کار قصد داریم مقادیر را در داشبورد پلتفرم اینترنت اشیا ThingSpeak به روش های مختلف نمایش بدهیم. سپس یک نمودار گرافیکی از تغییرات دما در محیط اطراف خود بدست بیاوریم. در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
پلتفرم اینترنت اشیا ThingSpeak
ThingSpeak یک برنامه open source اینترنت اشیا و API برای ذخیره و بازیابی اطلاعات از طریق پروتکل های HTTP و MQTT با اینترنت و یا با استفاده از شبکه محلی است. Thingspeak به شما امکان می دهد داده های سنسور ها را جمع آوری، ذخیره کنید و تجزیه و تحلیل کنید، همچنین با استفاده از امکانات موجود در دشبورد IOT این سایت می توانیم نمودار هایی بر اساس مقادیر بدست آمده رسم کنیم.
سنسور BMP180
سنسور BPM180 برای مواردی که نیاز به دقت بالایی در اندازه گیری دارند استفاده میشود، این سنسور با دقت ۰٫۰۳ هکتوپاسکال قابلیت اندازهگیری فشار هوا و همچنین دما را دارد که این پروسه ابتدا با اندازه گیری دما محیط و سپس فشار صورت میگیرد، در واقع BMP180 فشار و دما را اندازه گیری می کند زیرا دما، چگالی گازها مانند هوا را تغییر می دهد. در دمای بالاتر هوا متراکم و سنگین نیست، بنابراین فشار کمتری به سنسور وارد می کند. در دمای پایین هوا چگال تر و وزن بیشتری دارد، بنابراین فشار بیشتری به سنسور وارد می کند. این سنسور از اندازه گیری دما در زمان واقعی برای جبران قرائت فشار برای تغییر در چگالی هوا استفاده می کند.
برد ESP8266
تراشه های ESP8266 از موارد محبوب در زمینه اینترنت اشیا هستند که نسبت به دیگر نمونه ها کیفیت بهتر و همچنین قیمت پایین تری نیز دارند، هسته مرکزی این ماژول ESP8266 EX می باشد که در واقع زیر این شیلد فلزی قرار گرفته است، در ضمن این شیلد فلزی به منظور کاهش نویز و همچنین محافظت از قطعات SMD حساس این ماژول قرار داده شده است. این ماژول ها در سری های مختلفی تولید میشوند از جمله esp01 و esp12، در واقع تفاوتی که مدل ها با یکدیگر دارند تعداد GPIO ها و همچنین حافظه آن ها است البته معمولا از نظر ظاهری نیز تفاوت هایی که با یکدیگر دارند که قابل تشخیص است. این ماژول ها از شبکه WIFI داخلی پشتیبانی میکنند، این میکرو کنترلر ها اولین بار در سال ۲۰۱۴ به بازار عرضه شدند. ESP8266 دارای ۱۳ GPIO و همچنین یک ورودی آنالوگ (A0) است.
ماژول نمایشگر Oled 1306
معمولا در پروژه های اینترنت اشیا و دیگر پروژه های امبدد از برای نمایش متن و مقادیر مختلف از نمایشگر های Oled استفاده می شود، این ماژول ها بدر انواع مختلق بسته به نوع ذرایور اندازه یافت می شوند که یکی از پرطرفدار ترین آن ها SSD1306 می باشد، این نوع از Oled ها معمولا در اندازه های ۰٫۹۶ و ۱٫۳ اینچ ساخته می شوند همچنین پروتکل ارتباطی Oled ها I2C می باشد.
شرح آموزش
در این آموزش ابتدا مقادیر را در نمایشگر Oled و همچنین سریال مانیتور چاپ خواهیمکرد و در ادامه با ثبت نام در سایت ThingSpeak و ساخت یک دشبورد IOT میتوانیم با دریافت یک API از سایت و استفاده از آن در کد مورد استفاده در این آموزش مقادیر را بصورت لحظه ای دریافت کنیم. در نتیجه شما می توانید با public کردن دشبورد از هر مکانی اطلاعات را دریافت و مشاهده کنید.
قطعات موردنیاز
راه اندازی دشبورد ThingSpeak
ابتدا به آدرس thingspeak.com مراجعه کنید و یک یک اکانت جدید در پلتفرم ThingSpeak ایجاد کنید. سپس در قسمت Channels و در ادامه مانند تصویر زیر New Channel، اقدام به ساخت یک چنل یا دشبورد کنید.
در ادامه صفحه ای مانند تصویر زیر را مشاهده خواهید کرد، اطلاعات اسم و توضیحات را به دلخواه پر کنید و در انتهای صفحه گزینه save channel را انتخاب کنید.
در ادامه با صفحه زیر روبرو خواهید شد که میتوانید مقادیر دریافت شده را مشاهده کنید
همچنین با استفاده از گزینه Add Widgets، میتوانید، المان های دلخواه خود برای نمایش مقادیر را اضافه کنید.
دریافت API
در بخش API keys و در باکس مشخص شده میتوانید API مورد نیاز برای پروژه را پیدا کنید، از این API در ادامه استفاده خواهیم کرد.
نصب کتابخانه مورد نیاز
ابتدا در نرم افزار Arduino IDE اقدام به نصب کتابخانه مورد نیاز خواهیمکرد. مراحل زیر را دنبال کنید:
- این مسیر را دنبال کنید Sketch > Include Library > Manage Libraries
- کلمه Adafruit SSD1306 را جستجو کنید.
- کتابخانه را نصب کنید.
- سپس کلمه “GFX” را جستجو کنید و آن را نصب کنید.
در ادامه با استفاده از این لینک کتابخانه مورد نیاز برای راهاندازی سنسور BMP180 را دانلود و به نرم افزار Arduino IDE اضافه کنید.
شماتیک و اتصالات
ابتدا اتصالات را برقرار کنید هر دو ماژول استفاده شده در آموزش از پروتکل I2C استفاده می کنند، پس می توانیم پایه های SCL, SDA هر ماژول را موازی کنیم و در نهایت آن هارا به پین های D1, D2 برد nodemcu متصل کنیم.
کد و راهاندازی مدار
ابتدا به بررسی بخش های مختلف کد از جمله قسمت هایی که نیاز به تغییر دارند خواهیم پرداخت. ابتدا کتابخانه های مورد نیاز را فراخوانی کردهایم.
#include <ESP8266WiFi.h> #include <SFE_BMP180.h> #include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h>
در این قسمت اطلاعات شبکه وایفای مورد نظر را وارد کنید، همچنین در قسمت apikey، کدی که با عنوان API بدست آوردیم را وارد کنید.
String apiKey = "6NL59VNRDMESSLQ9"; const char *ssid = "C1F3R"; const char *pass = "314159265";
بخش نهایی کد مربوط به استفاده از API و برقراری ارتباط با سایت ThingSpeak میباشد.
String postStr = apiKey; postStr += "&field1="; postStr += String(T,2); postStr += "&field2="; postStr += String(P*0.0295333727,2); postStr += "&field3="; postStr += String(p0*0.0295333727,2); postStr += "&field4="; postStr += String(a,0); postStr += "\r\n\r\n\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);
کد کامل پروژه، انتقال اطلاعات سنسور BMP180 به پلتفرم اینترنت اشیا ThingSpeak
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
جمع بندی
در این آموزش با استفاده از قطعات BMP180, Oled 0.96 و همچنین برد ESP8266 توانستیم دمای محیط را در نمایشگر oled و سریال مانیتور نرمافزار Arduino چاپ کنیم. همچنین بدلیل استفاده از برد ESP8266 توانستیم با سایت ThingSpeak ارتباط برقرار کنیم و اطلاعات در دشبورد IOT این سایت مانیتور کنیم.
- تنظیمات منوی tools در نرم افزار آردوینو نیز مانند تصویر زیر است.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
سلام
آیا دسترسی به پلتفرم thingspeak آزاد است و آیا نیاز به پرداخت هزینه دارد؟
با سلام، خیر نیازی به پرداخت هزینه نیست.
سلام ممنون از مطالب خوبتون
دو تا سوال داشتم
۱- من نتونستم اکانت داخل این سایت بسازم اگر میشه یه راهنمای تصویری کامل بذارید
۲- اینکه آیا میشود با برد های stm32f103 و کامپایلر keil این پروژ رو راه انداخت؟
سلام، با تشکر از توجهتون. روند ثبت در سایت مراحل زیادی ندارد، ولی حتما در اولین فرصت این مورد به آموزش اضافه خواهد شد.
– این مورد را من تست نکردم، اما در هر صورت بدلیل نیاز به اتصال وایفای باید از یک تراشه وای فای هم استفاده شود.
سلام
من تمام مراحل که شما فرمودید رو. انجام دادم ولی اعدادی که روی OLED من نمایش داده می شه خیلی کوچک هستن و خوانایی ندارند. ضمنا در سایت ThingSpeak هم نمی تونم مقادیر نشون بدم. فکر می کنم متغیر هایی که در سایت شما قرار دادید با من فرق می کنه بنابراین نمایش هم باید شخصی سازی بشه. لطفا راهنمایی فرمایید. همچنین با توجه به اینکه من اشتراک دارم چطور می تونم تیکت بزارم که سریعتر به پاسخ برسم؟ تشکر
با سلام، اگر از سنسوری که در آموزش استفاده شده استفاده میکنید نباید مشکلی وجود داشته باشد، زیرا پروژه ها قبل از انتشار چندین بار تست خواهند شد. و اعضای سایت نیز در اجرای پروژه مشکلی نداشته اند. در هر صورت برای ثبت تیکت از سایت دانشجو کیت اقدام به ثبت تیکت کنید در صورت نیاز.