سلام.
قبلا آموزش خوبی توسط آقای عزتی درمورد اتصال esp8266 به ربات تلگرام در انجمن قرار داده شده که ایشون در اون از کتابخانه مخصوص تلگرام در آردوینو استفاده کردند. چند نفر از دوستان بخاطر طولانی بودن و توضیحات کم در اون برنامه متاسفانه نتونستن متن برنامه رو کامل متوجه بشن.
تاپیک مورد نظر
بدلایلی که اونجا گفتم قرار شد یه تاپیک تو قسمت آردوینو بزنیم و اینجا ادامه بدیم.
مختصرا بگم این برنامه که من نوشتم:
- دیگه نیازی به اون کتابخونه نداره
- تاحد امکان ساده و کوتاه هست.(فقط روش انجام کار رو نشون میده)
- شما request خودتون رو بسادگی بصورت String نوشته و ارسال میکنید .
اینم کدی که نوشتم و جواب گرفتم:
فقط باید اطلاعات مربوطه رو در سه قسمتی که با XXXX مشخص شده جایگذاری کنید.
عبارت درخواستی رو هم در متغیر get_request بگذارید.
قبلا آموزش خوبی توسط آقای عزتی درمورد اتصال esp8266 به ربات تلگرام در انجمن قرار داده شده که ایشون در اون از کتابخانه مخصوص تلگرام در آردوینو استفاده کردند. چند نفر از دوستان بخاطر طولانی بودن و توضیحات کم در اون برنامه متاسفانه نتونستن متن برنامه رو کامل متوجه بشن.
تاپیک مورد نظر
بدلایلی که اونجا گفتم قرار شد یه تاپیک تو قسمت آردوینو بزنیم و اینجا ادامه بدیم.
مختصرا بگم این برنامه که من نوشتم:
- دیگه نیازی به اون کتابخونه نداره
- تاحد امکان ساده و کوتاه هست.(فقط روش انجام کار رو نشون میده)
- شما request خودتون رو بسادگی بصورت String نوشته و ارسال میکنید .
اینم کدی که نوشتم و جواب گرفتم:
کد:
[FONT=Yekan]#include <ESP8266WiFi.h>[/FONT] #include <WiFiClientSecure.h> // const char* wifi_ssid = "XXXX"; const char* wifi_pass = "XXXX"; const char* http_site = "api.telegram.org"; const char* apiKey = "/botXXXX/"; const char* get_request = "getme"; const int http_port = 443; WiFiClientSecure client; String d; void setup() { Serial.begin(115200); delay(10); connectWiFi(); if ( !getPage() ) { Serial.println("GET request failed"); } } void loop() { // If there are incoming bytes, print them if ( client.available() ) { char c = client.read(); d += String(c); } // If the server has disconnected, stop the client and WiFi if ( !client.connected() ) { Serial.print(d); // Close and wait for disconnect from WiFi client.stop(); if ( WiFi.status() != WL_DISCONNECTED ) { WiFi.disconnect(); } // Do nothing Serial.println(); Serial.println("Finished GET Telegram."); while(true){ delay(1000); } } } void connectWiFi() { // Set WiFi mode to station (client) WiFi.mode(WIFI_STA); // Initiate connection with SSID and PSK WiFi.begin(wifi_ssid, wifi_pass); Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(wifi_ssid); while ( WiFi.status() != WL_CONNECTED ) { Serial.print("."); delay(500); } Serial.println(); Serial.println("Let's go ..."); Serial.println(); } // Perform an HTTP GET request to a remote page bool getPage() { // Attempt to make a connection to the remote server if ( !client.connect(http_site, http_port) ) { return false; } String url = apiKey; url += get_request; // Make an HTTP GET request client.println("GET " + url + " HTTP/1.1"); client.print("Host: "); client.println(http_site); client.println("Connection: close"); client.println(); return true; [FONT=Yekan]}[/FONT]
عبارت درخواستی رو هم در متغیر get_request بگذارید.