در بیشتر پروژه ها و مثال هایی که برای ماژول های ESP8266 وجود دارد ، از یک شبکه Local جهت کنترل این ماژول ها استفاده شده است . اما در پروژه های عملی IoT انتظار می رود که کاربر در مکان هایی دورتر از سیستم بتواند آن را کنترل کند یا وضیعت سیستم را ببیند . در ماژول های ESP8266 به دلیل پشتیبانی از TCP/IP شما به راحتی می توانید درخواست های HTTP را به سمت سرور بفرستید و از این قابلیت در پروژه های مختلفی استفاده کنید . می توانید API های مختلف را توسط این ماژول اجرا کنید و از قابلیت های این API استفاده کنید . در هر پروژه مبتنی بر اینترنت اشیا ، نیاز به یک مرکز یا یک پایگاه داده می باشد که گره ها بتوانند وضعیت خود را در آن جا در اختیار کاربر و سایر برنامه ها قرار دهد و یا از تغغیر وضعیت های جدید با خبر شوند . ساخت همچین پایگاهی نیاز به یک هاست خواهد داشت که بتوانید دیتای هر گره را در آن ذخیره و به روز کنید . خوشبختانه وب سایت هایی هستند که امکان ذخیره دیتا به صورت رایگان را می دهند . یکی از این وب سایت ها Thingspeak می باشد . Thingspeak امکان ذخیره دیتا هایی مانند اعداد ،رشته ها ، موقعیت و… را به شما می دهد که به راحتی می توانید از آن استفاده کنید . در این وب سایت می توانید کانال هایی را بسازید و در هر کانال نیز می توانید چندین فیلد ار تعریف کنید . هر فیلد شامل مجموعه ای از دیتا می باشد که از سمت مدار شما به آن ارسال می شود . برای استفاده از خدمات این سایت می بایست در این سایت ثبت نام کنید . برای این کار ابتدا مراحل زیر را انجام دهید :

1- ابتدا وارد سایت  Thingspeak شوید :

بر روی قسمت نشان داده شده کلیک کنید .

 

2- سپس گزینه نشان داده شده در تصویر زیر را انتخاب کنید :

 

 

3- در پنجره بعدی با وارد کردن اطلاعات خود می توانید یک حساب کاربری بسازی . نکته مهمدر این جا این است که حتما از یک ایمیل سازمانی باید استفاده کنید :

گزینه New Channels را انتخاب کنید .

 

4- یک نام برای کانال خود انتخاب کنید و گزینه های دیگر را تغییر ندهید :

 

5- پس از آن با انتخاب کانال خود در همان صفحه اول گزینه API Key را انتخاب کنید . برای هر کانال دو API Key در اختیار شما قرار می دهد که یکی برای خواندن از وبسایت و دیگری برای نوشتن در کانال است.

 

کد های زیر را بر روی برد ESP8266 خود آپلود کنید . قبل از آپلود لازم است که وایفا و رمز وایفای خود را وارد کنید و همچنین API Key نوشتن را نیز در برنامه وارد کنید . پس از پروگرام کردن برد ، ESP8266 یکعدد رندوم را به کانالی که ساخته اید ارسال خواهد کرد . این برنامه جهت تست اتصال ی باشد . شما می توانید به جای مقادیر رندوم مقادیر به دست آمده از یک سنسور را به Thingspeak ارسال کنید . در این برنامه از کتابخان Thingspeak استفاده شده است :

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

//------- WI-FI details ----------//
char ssid[] = "XXXXXXX"; //SSID here
char pass[] = "YYYYYYY"; // Passowrd here
//--------------------------------//

//----------- Channel details ----------------//
unsigned long Channel_ID = 0000000; // Channel ID
const int Field_Number = 1; // Don't change
const char * myWriteAPIKey = "ABCEDFG"; //Your write API key
//-------------------------------------------//

String value = "";
int x;
WiFiClient  client;

void setup()
{
  Serial.begin(115200);
  WiFi.mode(WIFI_STA);
  ThingSpeak.begin(client);
  internet();
}

void loop()
{
  internet();
  if (Serial.available() > 0)
  {
    while (Serial.available() > 0)
    {
      int inChar = Serial.read();
      value += (char)inChar;
    }
  }
  upload();
}

void internet()
{
  if (WiFi.status() != WL_CONNECTED)
  {
    while (WiFi.status() != WL_CONNECTED)
    {
      WiFi.begin(ssid, pass);
      delay(5000);
    }
  }
}

void upload()
{
  x = ThingSpeak.writeField(Channel_ID, Field_Number, value, myWriteAPIKey);
  if (x != 200)
  {
    delay(15000);
    upload();
  }
  value = "";
}

 

 

Tags:
About Author: USER_4