- ابزارآلات و آهنربا
-
ابزارآلات
- ابزار اندازه گیری (مولتیمتر، کولیس و . . .)
- ابزار سوراخکاری (مته، سه نظام، چهار نظام، پنج نظام و . . .)
- ابزار و تجهیزات کار (پیچ گوشتی، انبردست، سیمچین، پنس و . . .)
- برد بورد، فیبر خام و سوراخدار (فیبر مدار چاپی و PCB)
- پیچ و اسپیسر (پیچ و مهره رباتیک و اسپیسر پلاستیکی و فلزی)
- سیم و کابل (سیم افشان، فلت، باندی، کابل شارژ، پرینتر، و . . .)
- لحیمکاری (هویه، نوک هویه، پایه هویه، سیم لحیم، روغن لحیم و . . . )
- منبع تغذیه، باتری و جاباتری (باتری قلمی، نیم قلمی، کتابی و . . . )
-
ابزارآلات
- برد هوشمند
- پرینتر سه بعدی
- رباتیک و پروازی
- ماژول
- قطعات الکترونیک
- کیت الکترونیکی و انواع جعبه
- موتور
- اصناف مختلف
راه اندازی ماژول ESP8266 با آردوینو
در این مطلب از بلاگ بهنام رباتیک چگونگی راه اندازی ماژول ESP8266 با آردوینو را خواهیم آموخت. با این کار، برد آردوینو با کمک ماژول نامبرده به یک دستگاه اینترنت اشیا (IoT) تبدیل خواهد شد؛ پس با ما همراه باشید.
فهرست مطالب
اگر قصد دارید که یک پروژه اینترنت اشیا آماتور را آغاز کنید، ماژول ESP8266 میتواند گزینهای مناسب برای ورود به این حوزه باشد. امکان کدنویسی روی این ماژول با دو روش وجود دارد؛ 1) از طریق LUA و 2) از طریق آردوینو. از آن جایی که آردوینو دارد روزبهروز محبوبیت بیشتری پیدا میکند، ما نیز میخواهیم در این مطلب چگونگی انجام این کار را به شما آموزش دهیم.
لوازم مورد نیاز برای پروژه راه اندازی ماژول ESP8266 با آردوینو
نگاهی به ماژول ESP8266
ماژول وایفای ESP8266 که در پروژه راه اندازی ماژول ESP8266 با آردوینو استفاده شده، یک گیرنده بیسیم ارزان قیمت است که میتواند برای پروژههای اینترنت اشیا به کار برود. این ماژول امکان برقراری ارتباط اینترنتی میان دستگاههای مختلف را به وجود میآورد. ESP8266 از پروتکل ارتباطی TCP/UDP بهره میبرد تا با سرور ارتباط برقرار کند.
برای ارتباط برقرار کردن با ماژول وایفای ESP8266، میکروکنترلر روی آن میبایست از دستورات AT پیروی کند. این میکروکنترلر با استفاده از پروتکل UART و با بادریت پیشفرض 115200 با این ماژول در ارتباط خواهد بود.
سیمکشی مدار پروژه راه اندازی ماژول ESP8266 با آردوینو
برای اینکه اتصالات قطعات استفاده شده در پروژه راه اندازی ماژول ESP8266 با آردوینو را به درستی برقرار کنید، میبایست طبق تصویر زیر، پینها را به یکدیگر وصل نمایید.
TCP Client با استفاده از ماژول وایفای ESP8266
اینک بد نیست برد آردوینو خود را برنامهنویسی کنیم تا امکان کنترل ماژول وایفای ESP8266 به عنوان TCP Client وجود داشته باشد و بتوان دادهها را با استفاده از وایفای، از سرور دریافت و آنها را ارسال کرد.
در پروژه راه اندازی ماژول ESP8266 با آردوینو، ما از سرور Thingspeak برای TCP Client استفاده کردهایم.
Thingspeak یک پلتفرم اینترنت اشیا منبع باز است که هر کسی میتواند دادههای به دست آمده از دستگاههای سنسوری را به صورت زنده مشاهده کند. به علاوه، در این پلتفرم میتوان دادههای پست شده توسط دستگاههای از راه دور از طریق کدنویسی برنامه Matlab را نیز آنالیز کرد.
برای استفاده از Thingspeak فقط باید یک کانال راهاندازی کنید. در پروژه راه اندازی ماژول ESP8266 با آردوینو، ما از کانال زیر بهره گرفته و با به کارگیری آن توانستهایم دادهها را در پلتفرم نامبرده دریافت یا ارسال کنیم.
شناسه کانال: 119922
کلید نوشتن: C7JFHZY54GLCJY38
نکته: توجه داشته باشید که در تنظیمات کانال، حتماً تیک گزینه Make Public را بزنید تا امکان استفاده از کانال به صورت عمومی وجود داشته باشد. با این کار، هر کاربری قادر خواهد بود بدون نیاز به نام کاربری و رمز عبور، از کانال استفاده کند.
برای روش TCP RECEIVE، از دستورات AT زیر که در اسکرینشاتهای گرفته شده از RealTerm Serial Terminal قابل مشاهده هستند، استفاده نمایید.
در این اسکرینشاتها، دستورات AT با رنگ سبز و پاسخها با رنگ زرد به چشم میخورند.
برای روش TCP SEND هم از دستورات AT زیر که در اسکرینشاتهای گرفته شده از RealTerm Serial Terminal قابل مشاهده هستند، استفاده نمایید.
برای دسترسی به کاربردهای مختلف نظیر دریافت یا ارسال TCP، مطابق دستورات زیر، تغییرات را به وجود بیاورید.
برای TCP Client RECEIVE
#define RECEIVE_DEMO /* Define RECEIVE demo */
//#define SEND_DEMO /* Define SEND demo */
برای TCP Client SEND
//#define RECEIVE_DEMO /* Define RECEIVE demo */
#define SEND_DEMO /* Define SEND demo */
کدهای زیر را با دادههای مربوطه در فایل هدر ESP8266 ویرایش کنید.
/* Define Required fields shown below */
#define DOMAIN "api.thingspeak.com"
#define PORT "80"
#define API_WRITE_KEY " Thingspeak Write Key "
#define CHANNEL_ID " Thingspeak Channel ID "
#define SSID " WiFi SSID "
#define PASSWORD " WiFi Password "
کدهای پروژه راه اندازی ماژول ESP8266 با آردوینو
/*
* ESP8266 wifi module Interfacing with Arduino Uno
* http://www.behnamrobotic.com
*/
#include "ESP8266_AT.h"
/* Select Demo */
//#define RECEIVE_DEMO /* Define RECEIVE demo */
#define SEND_DEMO /* Define SEND demo */
/* Define Required fields shown below */
#define DOMAIN "api.thingspeak.com"
#define PORT "80"
#define API_WRITE_KEY "Write your Write Key here"
#define CHANNEL_ID "Write your Channel ID here"
#define SSID "Write your WIFI SSID here"
#define PASSWORD "Write your WIFI Password here"
char _buffer[150];
uint8_t Connect_Status;
#ifdef SEND_DEMO
uint8_t Sample = 0;
#endif
void setup() {
Serial.begin(115200);
while(!ESP8266_Begin());
ESP8266_WIFIMode(BOTH_STATION_AND_ACCESPOINT); /* 3 = Both (AP and STA) */
ESP8266_ConnectionMode(SINGLE); /* 0 = Single; 1 = Multi */
ESP8266_ApplicationMode(NORMAL); /* 0 = Normal Mode; 1 = Transperant Mode */
if(ESP8266_connected() == ESP8266_NOT_CONNECTED_TO_AP)/*Check WIFI connection*/
ESP8266_JoinAccessPoint(SSID, PASSWORD); /*Connect to WIFI*/
ESP8266_Start(0, DOMAIN, PORT);
}
void loop() {
Connect_Status = ESP8266_connected();
if(Connect_Status == ESP8266_NOT_CONNECTED_TO_AP) /*Again check connection to WIFI*/
ESP8266_JoinAccessPoint(SSID, PASSWORD); /*Connect to WIFI*/
if(Connect_Status == ESP8266_TRANSMISSION_DISCONNECTED)
ESP8266_Start(0, DOMAIN, PORT); /*Connect to TCP port*/
#ifdef SEND_DEMO
memset(_buffer, 0, 150);
sprintf(_buffer, "GET /update?api_key=%s&field1=%d", API_WRITE_KEY, Sample++); /*connect to thingspeak server to post data using your API_WRITE_KEY*/
ESP8266_Send(_buffer);
delay(15000); /* Thingspeak server delay */
#endif
#ifdef RECEIVE_DEMO
memset(_buffer, 0, 150);
sprintf(_buffer, "GET /channels/%s/feeds/last.txt", CHANNEL_ID); /*Connect to thingspeak server to get data using your channel ID*/
ESP8266_Send(_buffer);
Read_Data(_buffer);
delay(600);
#endif
}
پاسخهای ماژول ESP8266 در آردوینو
به عنوان کاربر، باید پاسخهای ماژول ESP8266 را بررسی کنیم. میتوان این کار را با آنالیز سریال ترمینال رایانه انجام داد. فقط کافی است پین TX ماژول ESP8266 را به پین RX آردوینو بزنید و پین RX کابل USB را به مبدل سریال وصل کنید (مطابق تصویر زیر). در ادامه سریال ترمینال را در رایانه اجرا نمایید تا پاسخهای ESP8266 برای دستورات AT ارسال شده از آردوینو را ببینید.
اینک برای دستورات TCP SEND که از ماژول آردوینو ارسال شدهاند، میتوانیم پاسخها را مطابق تصویر زیر در سریال ترمینال سرور Thingspeak مشاهده نماییم.
در پاسخ به TCP SEND، ورودی داده را به صورت عددی (مطابق تصویر بالا 1131، 1132 و . . .) خواهیم دید.
برای دستورات TCP RECEIVE که از آردوینو ارسال شدهاند، میتوانیم پاسخها را مطابق تصویر زیر در سریال ترمینال سرور Thingspeak مشاهده نماییم.
در پاسخ به TCP RECEIVE، آخرین داده ورودی برای فیلد اول 1 میباشد که در تصویر بالا قابل مشاهده است.
نکته: در اینجا آخرین داده ورودی در فیلد اول سرور Thingspeak را دریافت میکنیم حال آنکه آخرین داده آپدیت شده از سرور 11 میباشد. در عمل، از فایل GET/channels/119922/feeds/last.txt صرفاً برای مشاهده آخرین داده آپدیت شده بهره میبریم.
آپدیت دادهها در TCP SEND سرور Thingspeak
برای TCP SEND، میتوانیم خروجی را در سرور ببینیم. در اینجا ما از سرور Thingspeak استفاده و مقادیر افزایش یافته را به فیلد شماره 1 ارسال میکنیم. همانطور که در تصویر زیر میبینید، مقادیر افزایش یافته به این صورت میباشد.