ارتباط سنسورها و ماژول‌ها از طریق اینترنت با NodeMCU

یکشنبه, 14 مهر 1398 10:32
این مورد را ارزیابی کنید
(5 رای‌ها)

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

قطعات مورد نیاز

برد NodeMCU و کابل رابط

1 عدد

سنسور DHT11

1 عدد

بردبورد

1 عدد

سیم جامپر

1 بسته

 


معرفی بستر اینترنت اشیای ThingSpeak

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

ارتباط سنسورها و ماژول‌ها از طریق اینترنت با NodeMCU

یکی از سرویس‌های بسیار محبوب خدمات اینترنت اشیا سایت ThingSpeak است که یک اشتراک رایگان به همراه خدمات متنوعی را به شما می‌دهد. این سایت متعلق به شرکت بزرگ MathWorks است و به همین دلیل بسیاری از قابلیت‌های نرم‌افزار MATLAB در آن گنجانده شده و به صورت رایگان قابل استفاده است. در ادامه در مورد بخش‌های مختلف این سرویس و نحوه استفاده از آن صحبت خواهیم کرد.

ارتباط سنسورها و ماژول‌ها از طریق اینترنت با NodeMCU

اولین قدم در استفاده از سایت ThingSpeak ورود به حساب کاربری آن است. برای ورود باید یک حساب کاربری متلب داشته باشید. اگر حساب متلب ندارید بر روی کلید Sign Up کلیک کرده و یک حساب جدید بسازید.

ارتباط سنسورها و ماژول‌ها از طریق اینترنت با NodeMCU

پس از وارد شدن به حساب کاربری، یک پنل در اختیار شما قرار می‌گیرد. مهمترین بخش ThingSpeak کانال (Channel) های آن است. برای ساختن کانال جدید بر روی New Channel کلیک کنید. در این قسمت می‌توانید نام و مشخصات کانال را وارد کنید. همان طور که می‌بینید هر کانال حداکثر ٨ جریان داده را می‌تواند در خود نگه دارد. سایر مشخصات کانال که می‌توانید وارد کنید شامل توضیحات، لینک به سایت‌های دیگر، مختصات جغرافیایی و غیره می‌شود. پس از ذخیره تغییرات، کانال جدید را در لیست کانال‌ها می‌بینید.

ارتباط سنسورها و ماژول‌ها از طریق اینترنت با NodeMCU

 

ارتباط سنسورها و ماژول‌ها از طریق اینترنت با NodeMCU

بر روی کانال جدید کلیک کنید. مجموعه‌ای از امکانات مختلف در اختیار شما قرار می‌گیرد. در بالای این قسمت موردی به نام Channel ID را مشاهده می‌کنید. این عبارت، کد مشخصه کانال بوده و بعدا در کدهایتان از آن استفاده خواهید کرد. ThingSpeak کانال شما را با این کد می‌شناسد.

وارد بخش API Keys شوید. در این بخش دو کد شامل Write API Key و Read API Key وجود دارد. کد اول برای افزودن داده به کانال و کد دوم برای خواندن اطلاعات کانال مورد نیاز است.

در ThingSpeak می‌توانید کانال‌تان را خصوصی یا عمومی کنید. کانال خصوصی فقط برای خودتان با داشتن کدهای فوق قابل دسترسی است اما کانال عمومی برای هر کسی قابل استفاده است. اگر می‌خواهید کانال‌تان حالت عمومی داشته باشد، وارد بخش Sharing شده و وضعیت آن را تغییر دهید.


ارسال داده به سرور ThingSpeak

برای ساختن یک پروژه اینترنت اشیا نیاز به سخت‌افزاری داریم که بتواند با شبکه اینترنت ارتباط برقرار کند. در آموزش‌های قبل روش‌های مختلفی برای اتصال به شبکه معرفی شد. در این بین یکی از بهترین ابزارها NodeMCU است که مزیت‌های فراوانی در این زمینه دارد. NodeMCU را می‌توان دقیقا مثل آردوینو کدنویسی و آپلود کرد؛ سخت‌افزار قوی و وجود کتابخانه‌های خوب از جمله مزایای این برد توسعه‌ای است. قبلا شروع کار با NodeMCU را در آموزش ماژول‌های وایرلس با آردوینو یاد گرفتید. برای استفاده از NodeMCU باید برد esp8266 را در قسمت board manager آردوینو نصب کرده و نیز کتابخانه ESP6288WiFi را اضافه کنید.

در نرم‌افزار آردوینو بر روی File→Preferences کلیک کرده و در قسمت Additional Borads Manager آدرس زیر را وارد کرده و OK را بزنید.

ارتباط سنسورها و ماژول‌ها از طریق اینترنت با NodeMCU

ارتباط سنسورها و ماژول‌ها از طریق اینترنت با NodeMCU

سپس از قسمت Tools→Board→Boards Manager عبارت esp8266 را جستجو کرده و کتابخانه مورد نظر را نصب کنید.

ارتباط سنسورها و ماژول‌ها از طریق اینترنت با NodeMCU

ارتباط سنسورها و ماژول‌ها از طریق اینترنت با NodeMCU

سپس کتابخانه ESP8266WiFi را به آردوینو اضافه کنید. این کتابخانه را می‌توانید از لینک زیر نیز دانلود کنید.

دانلود کتابخانه ESP8266WiFi

در آخر از قسمت Tools→Board برد NodeMCU 1.0 را انتخاب کنید.

ارتباط سنسورها و ماژول‌ها از طریق اینترنت با NodeMCU

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

دانلود کتابخانه ThingSpeak

برنامه زیر را بر روی برد آپلود کنید:

/*
SanatBazar
Arduino Tutorial Series
Author: Davood Dorostkar
Website: www.sanatbazar.com

*/

#include <ESP8266WiFi.h>
#include <ThingSpeak.h>

// WiFi
const char *netName = "SanatBazzar";
const char *netPassword = "xxxxxxxxx";
bool wifiState = 0;
WiFiClient myClient;

// ThingSpeak
#define channelID 701131
const int field1 = 1;
const char *writeAPIkey = "xxxxxxxxxxxxxxxx";

void wifiStatusCheck()
{
  while ((WiFi.status() == WL_CONNECTED) && wifiState == 0)
  {
    Serial.println("Connected!");
    wifiState = 1;
  }
  while ((WiFi.status() == WL_DISCONNECTED) && wifiState == 1)
  {
    Serial.println("Disconnected!");
    wifiState = 0;
  }
}

void thingSpeakCheck(int sentData)
{
  if (sentData == 200)
  {
    Serial.println("Channel updated successful.");
  }
  else
  {
    Serial.println("Problem updating channel.");
  }
}

void setup()
{
  Serial.begin(115200);
  ThingSpeak.begin(myClient);
  WiFi.mode(WIFI_STA);
  WiFi.begin(netName, netPassword);
  delay(4000);
  Serial.println("");
  Serial.println("Connecting to network... ");
  Serial.println("");
}
void loop()
{
  delay(2000);
  wifiStatusCheck();
  if (wifiState)
  {
    int value = random(20, 40);
    int sentData = ThingSpeak.writeField(channelID, field1, value, writeAPIkey);
    thingSpeakCheck(sentData);
    delay(20000);
  }
  else
    Serial.println("Could not connect to network");
}

در ابتدای برنامه کتابخانه‌های وایفای و ThingSpeak را اضافه می‌کنیم:

#include <ESP8266WiFi.h>
#include <ThingSpeak.h>

نام و رمز عبور روتر اینترنت را در این قسمت وارد کنید. همچنین یک Client اینترنت بسازید. این Client را برای ارتباط با ThingSpeak نیاز خواهید داشت:

const char *netName = "SanatBazzar";
const char *netPassword = "xxxxxxxxx";
bool wifiState = 0;
WiFiClient myClient;

کد ID مربوط به کانال ThingSpeak به همراه کد Write API Key آن را در این قسمت وارد کنید:

#define channelID 701131
const int field1 = 1;
const char *writeAPIkey = "xxxxxxxxxxxxxxxx";

تابع()wifiStatusCheckوضعیت اتصال به اینترنت را چک کرده و هر زمان که به شبکه وصل یا از آن قطع شوید به شما اطلاع می‌دهد:

void wifiStatusCheck()
{
  while ((WiFi.status() == WL_CONNECTED) && wifiState == 0)
  {
    Serial.println("Connected!");
    wifiState = 1;
  }
  while ((WiFi.status() == WL_DISCONNECTED) && wifiState == 1)
  {
    Serial.println("Disconnected!");
    wifiState = 0;
  }
}

در صورتی که داده‌ای که به ThingSpeak از طریق کتابخانه آن می‌فرستید با موفقیت ارسال شود، عدد ٢٠٠ برگردانده خواهد شد. بر همین اساس تابع()thingSpeakCheckصحت ارسال داده‌ها را بررسی کرده و به شما اطلاع می‌دهد:

void thingSpeakCheck(int sentData)
{
  if (sentData == 200)
  {
    Serial.println("Channel updated successful.");
  }
  else
  {
    Serial.println("Problem updating channel.");
  }
}

در حلقه setup سریال مانیتور را با همان سرعت پیش‌فرض ماژول NodeMCU یعنی ۱۱۵۲۰۰ راه‌اندازی کرده‌ایم. در ادامه ThingSpeak و WiFi را راه‌اندازی می‌کنیم. ممکن است ماژول در حالت پیش‌فرض در وضعیت Access Point یا Access Point+Station قرار داشته باشد. در این صورت ممکن است ماژول وایفای برای سایر دستگاه‌های متصل به شبکه مشکل ایجاد کند. به همین دلیل در این قسمت ماژول را در وضعیت Station قرار می‌دهیم.

Serial.begin(115200);
ThingSpeak.begin(myClient);
WiFi.mode(WIFI_STA);
WiFi.begin(netName, netPassword);
delay(4000);
Serial.println("");
Serial.println("Connecting to network... ");
Serial.println("");

در حلقه loop اتصال ماژول به شبکه بررسی شده و در صورت تایید اتصال، داده مورد نظر که یک عدد تصادفی است به سرور ThingSpeak ارسال می‌شود. داده تصادفی توسط تابع(random(min,maxبین دو مقدار min و max تولید می‌شود. برای نوشتن یک مقدار در بخش‌های یک کانال در thingSpeak از تابع()writeFieldاستفاده می‌شود.

delay(2000);
wifiStatusCheck();
if (wifiState)
{
  int value = random(20, 40);
  int sentData = ThingSpeak.writeField(channelID, field1, value, writeAPIkey);
  thingSpeakCheck(sentData);
  delay(20000);
}
else
  Serial.println("Could not connect to network");

ارسال داده سنسورها از طریق اینترنت

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

یک ماژول DHT11 را به صورت زیر به برد NodeMCU وصل کنید. اگر می‌خواهید در مورد سنسورهای دما و رطوبت بیشتر بدانید می‌توانید آموزش راه‌اندازی انواع سنسورهای دما و رطوبت با آردوینو را مطالعه کنید.

ارتباط سنسورها و ماژول‌ها از طریق اینترنت با NodeMCU

برنامه زیر را بر روی برد آپلود کنید:

/*
SanatBazar
Arduino Tutorial Series
Author: Davood Dorostkar
Website: www.sanatbazar.com

*/

#include <ESP8266WiFi.h>
#include <ThingSpeak.h>
#include <dht.h>

// Sensor
#define sensorPin D4
dht DHT;

// WiFi
const char *netName = "SanatBazzar";
const char *netPassword = "xxxxxxxx";
bool wifiState = 0;
WiFiClient myClient;

// ThingSpeak
#define channelID 701131
const int field1 = 1;
const int field2 = 2;
const char *writeAPIkey = "xxxxxxxxxxxxxxxx";

void wifiStatusCheck()
{
  while ((WiFi.status() == WL_CONNECTED) && wifiState == 0)
  {
    Serial.println("Connected!");
    wifiState = 1;
  }
  while ((WiFi.status() == WL_DISCONNECTED) && wifiState == 1)
  {
    Serial.println("Disconnected!");
    wifiState = 0;
  }
}

void thingSpeakCheck(int sentData)
{
  if ((sentData == 200))
  {
    Serial.println("Channel update successful.");
  }
  else
  {
    Serial.println("Problem updating channel.");
  }
}

void setup()
{
  Serial.begin(115200);
  ThingSpeak.begin(myClient);
  WiFi.mode(WIFI_STA);
  WiFi.begin(netName, netPassword);
  delay(4000);
  Serial.println("");
  Serial.println("Connecting... ");
  Serial.println("");
}
void loop()
{
  delay(2000);
  DHT.read11(sensorPin);
  wifiStatusCheck();
  float temp = DHT.temperature;
  float hum = DHT.humidity;
  Serial.print(temp);
  Serial.print(" --- ");
  Serial.println(hum);
  if (wifiState)
  {
    ThingSpeak.setField(field1, temp);
    ThingSpeak.setField(field2, hum);
    int sentData = ThingSpeak.writeFields(channelID, writeAPIkey);
    thingSpeakCheck(sentData);
    delay(20000);
  }
  else
    Serial.println("Could not connect to network");
}

در ابتدای برنامه کتابخانه‌های مورد نیاز را فراخوانی کرده و سنسور دما را تعریف کنید:

#include <ESP8266WiFi.h>
#include <ThingSpeak.h>
#include <dht.h>

// Sensor
#define sensorPin D4
dht DHT;

از آنجا که در این برنامه می‌خواهیم دو متغیر دما و رطوبت را ثبت کنیم، دو بخش از کانال ThingSpeak را تعریف می‌کنیم:

#define channelID 701131
const int field1 = 1;
const int field2 = 2;
const char *writeAPIkey = "xxxxxxxxxxxxxxxx";

در حلقه loop مقادیر دما و رطوبت را از سنسور می‌خوانیم:

DHT.read11(sensorPin);
wifiStatusCheck();
float temp = DHT.temperature;
float hum = DHT.humidity;

مهمترین تفاوت این برنامه با برنامه قبل در این قسمت است. اگر بخواهید چند داده را به ThingSpeak بفرستید باید از تابع()writeFieldsاستفاده کنید. قبل از فراخوانی این تابع لازم است تا به کمک تابع()setFieldمقدار هر بخش را تعیین کنیم. پس از تعیین تمام مقادیر، دستور()writeFieldsمقادیر جدید را به سرور می‌فرستد. تاخیر ٢٠ ثانیه‌ای به این دلیل است که سرور ThingSpeak اجازه ارسال داده جدید را هر ١۵ ثانیه یک بار می‌دهد.

if (wifiState)
{
  ThingSpeak.setField(field1, temp);
  ThingSpeak.setField(field2, hum);
  int sentData = ThingSpeak.writeFields(channelID, writeAPIkey);
  thingSpeakCheck(sentData);
  delay(20000);
}
else
  Serial.println("Could not connect to network");

دریافت داده سنسورها از طریق اینترنت

تا اینجا توانستیم داده‌هایی که در نظر داریم را به اینترنت یا اگر بخواهیم دقیق‌تر بگوییم، بر روی فضای ابری (Cloud) بفرستیم. آیا کار اینترنت اشیا به همین جا ختم می‌شود؟ اصلا! این تازه شروع ماجراست. قدم بعدی در اینترنت اشیا این است که بتوانیم داده‌های موجود بر روی فضای ابری را بخوانیم. این کار با استفاده از ابزارهایی که معرفی کردیم یعنی NodeMCU و ThingSpeak به راحتی انجام می‌شود. برای امتحان کردن این موضوع می‌توانید یک پروژه جالب را انجام بدهید؛ به این صورت که یک برد NodeMCU را به سنسور دما وصل کرده و دمای محیط را به سرور بفرستید. سپس با استفاده از یک برد NodeMCU دیگر به اینترنت وصل شده و داده‌های ثبت شده در ThingSpeak را بخوانید. همان طور که قبلا نیز اشاره شد برای خواندن داده‌ها از کانال، Read API Key را نیاز خواهید داشت که باید آن را از روی سایت ببینید. برنامه‌ای که قبلا برای ارسال داده دما نوشتید بدون تغییر می‌ماند. بر روی برد دوم برنامه زیر را آپلود کنید:

/*
SanatBazar
Arduino Tutorial Series
Author: Davood Dorostkar
Website: www.sanatbazar.com

*/

#include <ESP8266WiFi.h>
#include <ThingSpeak.h>

// WiFi
const char *netName = "SanatBazzar";
const char *netPassword = "xxxxxxxx";
bool wifiState = 0;
WiFiClient myClient;

// ThingSpeak
#define channelID 701131
const int readField = 1;
const char *readAPIkey = "xxxxxxxxxxxxxxxx";

void wifiStatusCheck()
{
  while ((WiFi.status() == WL_CONNECTED) && wifiState == 0)
  {
    Serial.println("Connected!");
    wifiState = 1;
  }
  while ((WiFi.status() == WL_DISCONNECTED) && wifiState == 1)
  {
    Serial.println("Disconnected!");
    wifiState = 0;
  }
}

void thingSpeakCheck()
{
  int readStatus = ThingSpeak.getLastReadStatus();
  if ((readStatus == 200))
  {
    Serial.println("Channel read successful.");
  }
  else
  {
    Serial.println("Problem reading channel.");
  }
}

void setup()
{
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  WiFi.begin(netName, netPassword);
  delay(4000);
  ThingSpeak.begin(myClient);
  Serial.println("");
  Serial.println("Connecting... ");
  Serial.println("");
}

void loop()
{
  delay(2000);
  wifiStatusCheck();
  if (wifiState)
  {
    int readData = ThingSpeak.readIntField(channelID, readField, readAPIkey);
    thingSpeakCheck();
    Serial.println(readData);
    delay(5000);
  }
  else
    Serial.println("Could not connect to network");
}

در این برنامه بیشتر موارد مانند برنامه ارسال داده است. فقط چند مورد را باید تغییر دهید. اول اینکه باید API Key را از حالت نوشتن به حالت خواندن تغییر دهید:

#define channelID 701131
const int readField = 1;
const char *readAPIkey = "xxxxxxxxxxxxxxxx";

مورد دیگر اینکه برای خواندن داده از سرور ThingSpeak بسته به نوع داده‌تان از یکی از دستورهای زیر استفاده می‌شود:

ThingSpeak.readIntField()

ThingSpeak.readStringField()

ThingSpeak.readFloatField()

ThingSpeak.readLongField()

در اینجا داده دما به صورت Integer خوانده شده و در سریال مانیتور نمایش داده می‌شود:

int readData = ThingSpeak.readIntField(channelID, readField, readAPIkey);

در صورتی که کانال شما عمومی (Public) است نیازی به وارد کردن API Key در این قسمت نیست.


ارتباط تلفن همراه به اینترنت اشیا

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

دقت کنید که گوشی تلفن همراه شما باید به اینترنت متصل باشد

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

HTTP

HTTP یا Hypertext Transfer Protocol یک پروتکل ارتباطی است که ارتباط بین Server و Client طبق آن صورت می‌گیرد. Server کامپیوتری است که پایگاه داده بر روی آن قرار دارد و Client می‌تواند یک رایانه شخصی یا تلفن همراه باشد. تمام پیام‌ها در این پروتکل، یا درخواست (request) هستند یا پاسخ (response).

در HTTP دو متد اصلی برای ارتباط بین Server و Client به نام GET و POST وجود دارد. در متد GET یک آدرس خاص از سرور درخواست می‌شود. در متد POST داده خاصی برای پردازش به سرور ارسال شده و سرور پاسخ مناسب را برمی‌گرداند.

JSON

JSON یا JavaScript Object Notation یک نحوه نگارش برای ذخیره‌سازی و انتقال داده‌های متنی است که در سال‌های اخیر بسیار مورد توجه قرار گرفته است. هرچند که JSON بر اساس زبان برنامه‌نویسی جاوا اسکریپت طراحی شده اما مستقل از زبان عمل کرده و دستگاه‌های مختلف با هر زبانی می‌توانند از آن استفاده کنند. از JSON می‌توان برای ارسال درخواست HTTP به سرور و دریافت پاسخ متناسب از آن استفاده کرد.

برگردیم به پروژه خودمان! در اینجا برنامه‌ای نوشته‌ایم که هر دو ثانیه یک بار اطلاعات دما و رطوبت موجود بر روی سرور ThingSpeak را خوانده و نشان می‌دهد. در این برنامه از متد GET برای خواندن این مقادیر استفاده شده است. برای استفاده از این متد به آدرس ذخیره‌سازی داده‌ها بر روی سرور نیاز دارید. این آدرس (و نیز آدرس‌های دیگر مثل آدرس POST) در صفحه کانال‌تان موجود است. زمانی که این درخواست را به ThingSpeak می‌فرستید، سرور یک پاسخ به صورت JSON برای شما می‌فرستد  که باید آن را دریافت و مقادیر مورد نظرتان را از آن استخراج کنید.

برنامه را از لینک زیر دانلود کرده و بر روی تلفن همراهتان نصب کنید. حالا می‌توانید دما و رطوبت را در صنعت‌بازار ببینید!

لینک دانلود اپلیکیشن اینترنت اشیا

 

ارتباط سنسورها و ماژول‌ها از طریق اینترنت با NodeMCU


نتیجه گیری

در این آموزش با مفاهیم اولیه مورد نیاز برای ساخت شبکه‌ای از وسیله‌های هوشمند آشنا شدید. همچنین به کمک پلتفرم ThingSpeak و برد NodeMCU داده‌های سنسورهایتان را به اینترنت فرستاده و دریافت کردید. اگر به سایت ThingSpeak سری بزنید خواهید دید که امکانات بسیار زیادی در آن وجود دارد. همان طور که قبل‌تر هم گفتیم ThingSpeak تنها ابزار اینترنت اشیا نیست و سرویس‌های زیادی با قابلیت‌های کم و بیش مشابهی برای این کار وجود دارد. کار با هر کدام که برایتان لذت‌بخش بود از همان سرویس استفاده کنید. البته هر زمان که در این زمینه حرفه‌ای شدید حتما سرویس شخصی خودتان را راه‌اندازی کنید.

این آموزش آخرین قسمت از مجموعه آموزش جامع اینترنت اشیا با آردوینو بود. از اینجا به بعد فقط تجربه و سعی و خطا کردن حرف اول را می‌زند. یادتان باشد که این مجموعه فقط ذره‌ای از تمام مطالبی است که می‌توانید در اینترنت اشیا یاد بگیرید؛ در این حوزه، یاد گرفتن دائمی اهمیت زیادی دارد.

نظرات شما باعث بهبود محتوای آموزشی ما می‌شود. اگر این آموزش را دوست داشتید، همین‌طور اگر سوالی در مورد آن دارید، از شنیدن نظراتتان خوشحال خواهیم شد.

خواندن 5491 دفعه
داوود درستکار

داوود درستکار دانش‌آموخته کارشناسی مهندسی مکانیک از دانشگاه صنعتی اصفهان و کارشناسی ارشد از دانشگاه تهران است. وی همچنین عضو تیم تحقیقاتی مرکز سیستمها و فناوریهای پیشرفته دانشگاه تهران (CAST) است. داود مسلط به طراحی و تحلیل سیستم‌های دینامیکی، طراحی و ساخت ربات، کنترل سیستم‌های غیرخطی و پیاده‌سازی سیستم‌های هوشمند با استفاده از آردوینو است. مهمترین علاقه او در حوزه رباتیک، پرنده‌های بدون سرنشین، رباتهای توانبخشی و ساخت تجهیزات هوشمندسازی و کنترل می‌باشد.

کاربرانی که در این گفتگو شرکت کرده اند

نظرات (39)

  1. محمدرضا

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

 
  1. پشتیبانی    محمدرضا

سلام وقت بخیر
اپ مجددا بررسی شد و مشکلی نداشت. احتمالا ایراد از دستگاه شما باشه. اگر می تونید با یک دستگاه دیگر امتحان کنید.
موفق باشید

 
  1. اردلان

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

 
  1. پشتیبانی    اردلان

سلام اردلان عزیز
کلیه ارتباطات با تمامی کارمندان شرکت از طریق شماره ذکر شده در سایت امکان پذیر می باشد.
نرم افزار در Arduino IDE نوشته شده است که می تونید از لینک زیر برای ویندوز دانلود کنید.

ادامه مطلب
 
  1. اردلان

سلام ممنون از مطالبی که میزارید
من چند تا سوال داشتم
میخواستم بپرسم شماره تماستون رو لطف میکنید بگید
و میخواستم بپرسم این برنامه رو با چه آی دی ای نوشتید؟

 
  1. ایمان

سلام من ۱۳ سالمه و علاقه مند به ساخت و ساز وسایل هستم ؛ شما می توانید برای ساخت وسایل الکتریکی من را راهنمایی کنید؟؟؟؟

 
  1. پشتیبانی    ایمان

سلام ایمان عزیز
خیلی عالیه که در این سن مشتاق مهندسی هستید. بله می تونید کارتون رو با مطالعه اموزش های سایت صنعت بازار شروع کنید و با پروژه های ساده تر اردوینو شروع به کار کنید و سوالی بود در خدمتیم.
موفق باشید

 
  1. سیروس شیرپور

سلام با تشکر از آموزش خوبتان من می خواهم اطلاعات ارسالی توسط برد را بدون ارسال به اینترنت صرفا در لب تاپ یا کامپیوتر ببینم و منحنی تغییرات داده های سنسور را رسم کنم لطفا در این مورد راهنمایی کنید با تشکر

 
  1. پشتیبانی    سیروس شیرپور

سلام دوست عزیز
روش های مختلفی هست که یک مورد مثلا میتونید داده هارو به پورت سریان مانیتور ارسال و مانند روش های موجود در لینک زیر در فایل txt ذخیره و استفاده کنید.
https://b2n.ir/474812
https://b2n.ir/545773
موفق باشید

 
  1. علیرضا

سلام خسته نباشید بابت این پروژه خوب و عالی
من یک دستگاه جوجه کشی درست کردم و میخوام در کنار نمایش دما و رطوبت بتونم مقادیر کنترل مثل حداقل دما ویا حداکثر و... رو تغیر بدم امکان داره راهنمایی کنید به چه نحو است ممنون

 
  1. پشتیبانی    علیرضا

سلام علیرضا عزیز
اگر بیشتر توضیح بدید منظورتون رو بهتره. چون کاره خاصی نداره! به نظر به همون صورت که دما و رطوبت رو نشان داده اید می تونید مقادیر دیگر رو هم نمایش بدید و فقط باید برنامه رو بنویسید که مشابه قبل است.
موفق باشید

 
  1. زهراا

سلام وقتتون خوش اگه بخوام داده ها از زریق nodemcu به فایربیس متصل بشه چکار کنیم؟

 
  1. پشتیبانی    زهراا

سلام دوست عزیز
می تونید مشابه لینک های زیر عمل کنید:
https://b2n.ir/336028
https://b2n.ir/236873
https://b2n.ir/735268
موفق باشید

 
  1. فاطمه

سلام خیلی ممنون از آموزش عالی تون
یسوال داشتم . اگه کانالمون THINGSPEAK نباشه چه کنیم؟

 
  1. پشتیبانی    فاطمه

سلام فاطمه عزیز
ممنون از لطف شما. برای کانال های دیگر باید کتابخانه مربوطه و نحوه ارسال اطلاعات به طور کامل بررسی بشه.
موفق باشید

 
  1. ماریا

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

 
  1. پشتیبانی    ماریا

سلام ماریا عزیز
ممنون از نظرات پر مهر شما دوست عزیز. همیشه موفق باشید
با تشکر

 
  1. محمد

سلام مهندس آیا میشه با اتصال این ماژول به مودم روتر دما رو از هر نقطه ای که هستیم فقط با وارد کردن ip به دست بیاریم یا حتما فقط باید به خود ماژول وصل باشیم؟؟؟

 
  1. پشتیبانی    محمد

سلام محمد عزیز
خیر باید مشابه همین آموزش عمل کنید که سنسور به برد NodeMCU متصل باشد.
موفق باشید

 
هیچ نظری در اینجا وجود ندارد
بارگذاری بیشتر ...

نظر خود را اضافه کنید.

ارسال نظر بعنوان یک مهمان
پیوست ها (0 / 3)
مکان خود را به اشتراک بگذارید
عبارت تصویر زیر را بازنویسی کنید. واضح نیست؟

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

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

Copyright © 2017-2018 | Sanatbazar.com