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