در بیشتر پروژه ها و مثال هایی که برای ماژول های 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 = "";
}





