رفتن به مطلب
انجمن الکترولب
Ali Ezzati

اتصال ESP8266 به ربات تلگرام

پست های پیشنهاد شده

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

اضافه کردن بردهای مبتنی بر ESP8266 به نرم افزار آردوینو

برای آن که بتوانید بر روی این ماژول توسط IDE آردوینو برنامه نویسی کنید باید درایورها و بورد آن را بر روی نرم افزار آردوینو نصب کنید.برای این منظور وارد  نرم افزار آردوینو شوید. سپس از قسمت File وارد Preferences  شوید. Node-MCU-setup-arduino-IDE.jpg

سپس لینک زیر را کپی کنید و در پنجره Preferences در قسمت Additional Boards Manager URLs ، لینک را paste کنید و OK را بزنید.

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Node-MCU-setup-arduino-IDE-2.jpg

 

سپس از قسمت Tools وارد Boards Manager… شوید.

ArduinoESP2.jpg

سپس در لیست نمایش داده شده به دنبال esp8266 by ESP8266 Community بگردید و آن را نصب کنید. ArduinoESP3.jpg م

نتظر بمانید تا عملیات نصب تکمیل شود. ArduinoESP.jpg

برای استفاده از ماژول وای فای ESP8266 باید در لیست برد ها برد متناسب با ماژول خود را انتخاب کنید.

esp8266fs.png

اضافه کردن کتابخانه های مورد نیاز ارتباط با تلگرام و اینترنت:

برای کامپایل کردن برنامه اتصال ESP8266 به ربات تلگرام نیاز به سه کتابخانه ArduinoJson , WiFiclientSecure , UniversalTelegramBot دارید که به دو روش می توانید این کتابخانه ها را به برنامه آردوینو خود اضافه کنید: روش اول استفاده از قسمت manage library برنامه آردوینو: ares00.jpg

در این روش می توانید با جست و جو کردن نام کتابخانه کتابخانه مورد نظر را پیدا کرده و نصب کنید. ares00-1.jpg

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

C:\Users\ezzati\Documents\Arduino\libraries

ares02.jpg

برنامه آردوینو اتصال ESP8266 به ربات تلگرام

#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
 
// Initialize Wifi connection to the router
char ssid[] = "***";     // نام روتر وایفای
char password[] = "123456789"; // پسورد وایفای
 
// Initialize Telegram BOT
#define BOTtoken "441099696:AAE**************nBb9Qp4NnqpH2XvuE"  // توکن ربات تلگرام
 
WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);
 
int Bot_mtbs = 1000; //mean time between scan messages
long Bot_lasttime;   //last time messages' scan has been done
bool Start = false;
 
const int ledPin = D2;
int ledStatus = 0;
 
void handleNewMessages(int numNewMessages) {
  Serial.println("handleNewMessages");
  Serial.println(String(numNewMessages));
 
  for (int i=0; i<numNewMessages; i++) {
    String chat_id = String(bot.messages[i].chat_id);
    String text = bot.messages[i].text;
 
    String from_name = bot.messages[i].from_name;
    if (from_name == "") from_name = "Guest";
 
    if (text == "/ledon") {
      digitalWrite(ledPin, HIGH);   // turn the LED on (HIGH is the voltage level)
      ledStatus = 1;
      bot.sendMessage(chat_id, "Led is ON", "");
    }
 
    if (text == "/ledoff") {
      ledStatus = 0;
      digitalWrite(ledPin, LOW);    // turn the LED off (LOW is the voltage level)
      bot.sendMessage(chat_id, "Led is OFF", "");
    }
 
    if (text == "/status") {
      if(ledStatus){
        bot.sendMessage(chat_id, "Led is ON", "");
      } else {
        bot.sendMessage(chat_id, "Led is OFF", "");
      }
    }
 
    if (text == "/start") {
      String welcome = "به برنامه ارتباط اینترنت اشیاء با ربات تلگرام خوش آمدید" + from_name + ".\n";
      welcome += "برنامه نمونه برای مدیریت ال ای دی.\n\n";
      welcome += "/ledon : جهت روشن کردن ال ای دی از این دستور استفاده کنید.\n";
      welcome += "/ledoff : جهت خاموش کردن ال ای دی از این دستور استفاده کنید.\n";
      welcome += "/status : چنانچه نمیدانید ال ای دی در چه وضعیتی است از این دستور استفاده کنید.\n";
      bot.sendMessage(chat_id, welcome, "Markdown");
    }
  }
}
 
 
void setup() {
  Serial.begin(115200);
 
  // Set WiFi to station mode and disconnect from an AP if it was Previously
  // connected
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);
 
  // attempt to connect to Wifi network:
  Serial.print("Connecting Wifi: ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }
 
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
 
  pinMode(ledPin, OUTPUT); // initialize digital ledPin as an output.
  delay(10);
  digitalWrite(ledPin, LOW); // initialize pin as off
}
 
void loop() {
  if (millis() > Bot_lasttime + Bot_mtbs)  {
    int numNewMessages = bot.getUpdates(bot.last_message_received + 1);
 
    while(numNewMessages) {
      Serial.println("got response");
      handleNewMessages(numNewMessages);
      numNewMessages = bot.getUpdates(bot.last_message_received + 1);
    }
 
    Bot_lasttime = millis();
  }
}

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

یوزنیم و پسور وای فای + توکن ربات تلگرام را در کدها وارد کنید. سپس روی برد آپلود کنید. پس از آن همانند تصویر زیر وارد ربات تلگرام که ساخته‌اید بشوید و Start را بزنید. سپس ۳ دستور که در کدهای بالا تعریف شده است برای شما برگردانده میشود. بعد از اتصال به مودم IP اختصاص یافته به برد ESP8266 در ترمینال سریال برنامه آردوینو نمایش داده میشود. ares03.jpg

 

بعد از این مرحله کافیست نام رباتی که ایجاد کردید را در تلگرام جست و جو کنید و strat را بزنید.

ares04.jpg

با زدن هر یک از دستور ها عمل متناظر با دستور روی ماژول وای فای اجرا میشود

برای سوال در این مورد می توانید به انجمن الکترولب مراجعه کنید.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری

×