20.04.2026

Telegram bot orqali boshqarishga misol [18+]

Telegram bot haqida

Ma’lumki, Telegram – keng tarqalgan messenjerlardan biri. Undan kompyuter, deyarli har qanday brauzer va Android/iOS qurilmalarida foydalanish mumkin. Ularning har bir turi uchun alohida Telegram versiyalari mavjud.

Messenjerning muhim va qiziqarli funksiyalaridan biri – unda botlarni (harakatlarini dasturlar yordamida boshqarish mumkin bo’lgan sun’iy foydalanuvchilarni) yaratish mumkinligi hisoblanadi. Bunday bot foydalanuvchiga xat yozishi, yoki uning xatlarini o’qishi va javob qaytarishi, chatga tugmali menyularni yuborishi hamda boshqa vazifalarni bajarishi mumkin.

Bizga tanish bo’lgan ESP8266/ESP32 asosidagi plata va modullar bunday botlarni boshqarishi va ulardan ma’lunotlarni qabul qilishi mumkin. Bu Arduinochilar uchun katta imkoniyatlar yaratib beradi. Masalan, botlar yordamida Internet orqali datchiklar ma’lumotlarini olish, qurilmalarni boshqarish mutlaqo bepul amalga oshirilishi mumkin. Bunda, Telegram tarmog’ining api.telegram.org serveri bulutli xizmat serveri vazifasini bajaradi.

Bot yaratish va u bilan ishlash ko’pchilik uchun tanish bo’lsa-da, uni bir qator eslatib o’tamiz.

Buning uchun uni ro’yxatdan o’tkazish zarur. Buning uchun, @BotFather ga “/newbot” buyrug’i bilan murojaat qilinadi va bot uchun yangi nom tanlanadi (keyinchalik uni o’zgartirish ham mumkin). Shundan keyin bot uchun unikal nik o’ylab topish kerak bo’ladi. Uning nomini keyinchalik o’zgartirib bo’lmaydi. Ro’yxatdan o’tish muvaffaqiyatli bo’lsa, @BotFather bizga token (botni boshqarishga ruxsat beruvchi uzun unikal kod) yuboradi. Keyinchalik undan foydalanishimiz uchun tokenni eslab qolamiz, u bizga kerak bo’ladi.

Chat ID sini izlash. Bot xabar yubora olishi uchun, u qabul qiluvchi kimligini bilishi kerak. Telegramda har bir akkaunt va har bir chat o’zining unikal tartib raqamiga – ID ga ega bo’lishi kerak. Bot uning yordamida chatga xabar yuborishi mumkin bo’ladi. ID ni bilish uchun, @IDBot maxsus boti bilan chat yaratamiz. Buning uchun uni @myidbot havolasi bo’yicha izlab topamiz va unga “/getid” buyrug’ini yuboramiz. U ID raqamini (musbat butun sonni) yuboradi.

Bot bilan chat yoki uni Telegram guruhiga qo’shish. Agar bot Telegram guruhida ishlashi kerak bo’lsa, uni va @IDBot ni tegishli guruhga qo’shamiz. Unga “/getgroupid” buyrug’i yuboriladi. U chat ID raqamini (manfiy butun son) qaytaradi. Sukunat bo’yicha, guruhda bot faqat buyruq ko’rinishidagi, ya’ni “/” belgisi bilan boshlanuvchi yozuvlarni o’qiy oladi. Bot guruhdagi barcha xabarlarni o’qishi uchun guruhni ochiq guruhga aylantirish zarur. Buning uchun, @BotFather bilan chatda /mybots orqali kerakli botni tanlab, botga ketma-ket “/Bot Settings/Group Privacy/Turn off” buyruqlari yuboriladi.

Botlarda buyruq yuborish tartibi mavjud. Ular “/” belgisi bilan boshlanadigan xabardan iborat bo’ladi. Botga bir yo’la barcha buyruqlar ro’yxatini yuborish mumkin, ular chatda ham ro’yxat (menyu) ko’rinishida ko’rsatiladi va turli dasturlar bilan bog’lanish uchun qo’llanilishi mumkin.

Yuqorida keltirilgan api.telegram.org serveri orqali botga yuboriladigan mikrokontroller buyruqlari quyidagi formatda bo’lishi kerak:

https://api.telegram.org/bot<token>/METHOD_NAME.

Bu yerda, <token> – telegram bot tokeni, METHOD_NAME – http-so’rov yuborish (GET yoki POST) usuli. Masalan: https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/getMe kabi.

HTTP-so’rov javobi JSON obyekti ko’rinishida qaytariladi (Batafsil ma’lumotlar: Telegram bot API sahifasida).

Misol tariqasida, ESP8266 oilasiga mansub mikrokontrollerga yuboriladigan boshqaruv buyrug’ini yaratamiz: 1) /@BotFather ga qaytamiz va “/mybots” buyrug’ini yuboramiz; 2) Kerakli botni ro’yxatdan tanlaymiz; 3) “Edit Bot” elementini tanlaymiz; 4) “Edit Commands” elementini tanlaymiz; 5) buyruqlarimizni quyidagi formatda kiritamiz: “buyruq_nomi – vazifasi” va <Shift+ENTER>, zarurat bo’lsa <Back to Bot> buyrug’i orqali ortga qaytib, yana yangi buyruq qo’shish mumkin, faqat eng oxirida <ENTER> bosiladi (Masalan, “salom”, “gpio1” va “gpio0” buyruqlarini qo’shish ketma-ketligi: <Edit Bot><Edit Commands>salom – Assalomu alaykum! Boshqarish uchun ‘/gpio1’, ‘/gpio0’ yoki ‘/status’ buyrug’ini yuboring!<Shift+ENTER>gpio1 – Ichki svetodiodni yoq<Shift+ENTER>gpio0 – Ichki svetodiodni o’chir<Shift+ENTER>status – Svetodiod holatini ko’rsat<ENTER>).

Bot bilan chat oynasiga o’tilsa, unda buyruqni tanlash tugmasi “/” paydo bo’ladi. Uni tanlasak, ro’yxat ochiladi va biz kiritgan buyruqlar va ularning vazifalari ko’rinadi (Aslida, Arduino qurilmalarini Telegram boti orqali boshqarish uchun buyruqlar aynan yuqoridagi tartibda menyuga kiritilishi shart emas. Ya’ni, oddiy matnli xabar ham buyruq vazifasini bajarishi mumkin. Biroq, menyu ko’rinishiga keltirilgan buyruqlar ro’yxati boshqaruvning tushunarli va tartibli bo’lishiga yordam beradi).

Bunday botni, dasturlash mumkin bo’lgan va Internetga chiqish imkoniyati bo’lgan har qanday dasturiy platformadan boshqarish mumkin. Navbatdagi bosqichda yuqoridagi Telegram boti orqali ESP8266 oilasiga mansub platani boshqarish va aksincha, platadan javob xabarlari qaytarilishi jarayonlarini misol yordamida ko’rib chiqamiz.

Telegram bot orqali boshqaruv

Arduino platasi sketchi yordamida Telegram boti bilan ishlash uchun UniversalTelegramBot.h (ko’p funksiyali, lekin og’ir) yoki FastBot.h (kam funksiyali, lekin tezkor) bibliotekalaridan foydalanishimiz mumkin. Ushbu bibliotekalar https protokoli va Telegram bot API (api.telegram.org serveri) orqali ishlashga taalluqli barcha mayda jarayonlarni o’z ichiga olgan, shuning uchun ham to’g’ridan-to’g’ri biblioteka ichki funksiyalaridan foydalanishimiz yetarli bo’ladi.

Yuqoridagi ma’lumotlardan foydalanib, ESP8266 ichki svetodiodini boshqarish buyruqlari va ularning natijasi bo’yicha hisob beruvchi sketchni tuzamiz (sketchni izohlar bilan keltiramiz, ayrim kodlar shaxsiy kodlar bilan almashtirilishi kerak). Ichki svetodiod piniga parallel ravishda elektromagnit rele ulash orqali, har qanday (2 kVt gacha quvvatli) tashqi qurilmani ham boshqarish mumkin.

Kerakli materiallar:
1) Maket platasi, o’tkazgichlar;
2) Wemos D1 mini;
3) 5V kuchlanishga mos elektromagnit rele;
4) 5V 1A kuchlanish stabilizatori.

Bog’lanish sxemasi:

Ba’zi 1 ta kabelli rele modullarida, unga kiruvchi signal kuchlanishi Arduinoning chiqish signal kuchlanishiga mos kelmasligi mumkin. Bunday vaziyatlarda 5V kuchlanishni bo’lish usulidan foydalanish zarur. Buning uchun, rele signal kirish pinidan Arduino “GND” va “5V” qutblari piniga 2 ta rezistor o’rnatiladi. Rezistorlar qiymati (qarshiligi) tajriba yo’li bilan tanlanadi va 1 kOm dan yuqori bo’lishi kerak.

Sketch:

 

Natija:

Telegram bot orqali datchik ko’rsatkichlarini kuzatish

Yuqoridagi sketchga kichik o’zgartirishlarni kiritish orqali, mikrokontrollerga ulangan datchik ko’rsatmalarini ham Telegram boti orqali uzatib borish mumkin. Quyida ma’lum bir hududdagi temperatura va havo namligini DHT11 raqamli datchigi orqali o’lchash va natijalarni Telegram boti so’rovi asosida unga yuborish sketchini tuzamiz. Natijani olish uchun botga quyidagi buyruqlarni yuborish zarur: temperaturani olish uchun “/temperatura” yoki “/temp” buyrug’i, havo namligini olish uchun “/namlik” buyrug’i va har ikki ko’rsatkichni birdaniga olish uchun “/status” buyrug’i. Qulaylik uchun yaratilgan botimizga ushbu buyruqlarni yuqorida keltirilgan tartibda tanishtirib qo’yishimiz mumkin.

Kerakli materiallar:
1) Maket platasi, o’tkazgichlar;
2) Wemos D1 mini;
3) DHT11 raqamli termodatchigi.

Bog’lanish sxemasi (3 ta pinli DHT11 modulidan farq qiladi):


Sketch:

 

Natija:

Ushbu sketchlarni umumlashtirish va yanada takomillashtirish orqali, hududdagi temperaturani kuzatish, zarurat tug’ilsa isitish va sovutish uskunalarini ishga tushirishni bot orqali boshqarishni yo’lga qo’yish, ya’ni termostat funksiyasini bajarish mumkin.

Mustahkamlash topshiriqlari.
Quyidagi videomateriallardagi loyihalar sketchini mustaqil ravishda yarating:

1) O’zingiz mustaqil Telegram boti yarating, unga Wemos D1 mini platasining D1 pini (va unga ulangan rele)ni trigger usulida boshqarish buyruqlarini qo’shing, shunga mos ravishda sketchga o’zgartirishlar kiriting.

Natija:

Bot buyruqlari (menyudan tanlash yoki oddiy matn qilib yozish ham mumkin): “/d1on” – D1 pinini ulash, “/d1off” – D1 pinini uzish, “/status” – D1 pini oxirgi holatini ko’rish. “/salom” – botning dastlabki eslatmasini ko’rsatish.
D1 piniga ulangan 1 ta kanalli elektromagnit rele moduli inversiya rejimiga ishlashga mo’ljallanganligi uchun, undagi yashil svetodiod ham qarama-qarshi tartibda ishlaydi (pin ulansa – rele uziladi va indikator o’chadi, aksincha, pin uzilsa – rele ulanadi va svetodiod yonadi).
Tanlangan 1 ta kanalli rele moduli uchun mikrokontroller pinidagi chiqish signali kuchlanishi yetarli bo’lmaganligi uchun, ushbu holda sxemaga relening ‘in‘ kirish kontaktiga plataning 5V va D1 kontaktlaridan kuchlanishni bo’luvchi 2 ta rezistor qo’shilgan. Ularning qarshiligi 1 … 10 kOm oralig’ida bo’lishi kerak va tajriba yo’li bilan tanlanadi.
Eslatma: Agar mikrokontrollerning 5V kontaktidagi kuchlanish rele kontaktini ulash uchun yetarli bo’lmasa, relening VCC kontaktini alohida 5V kuchlanishli ta’minot bloki yoki stabilizatorining 5V kontaktiga ulanishi kerak! Bunda, ta’minot blokining GND kontakti mikrokontroller GND kontaktiga ham ulanadi, lekin VCC kontakti mikrokontroller 5V kontaktiga ulanmasligi shart!

2) O’zingiz yaratgan botni va sketchni 2 ta (D1…D2) pinlarni va 2 kanalli rele modulini boshqarishga moslashtiring.

Natija:

Bot buyruqlari: “/rele1_on” – D1 pini va u orqali 1-releni ulash, “/rele1_off” – D1 pini va 1-releni uzish, “/rele2_on” – D2 pini va u orqali 2-releni ulash, “/rele2_off” – D2 pini va 2-releni uzish, “/status” – D1, D2 pinlari va relelarning oxirgi holatini ko’rish.
D1 va D2 pinlariga ulangan 2 ta kanalli elektromagnit rele moduli inversiya rejimiga ishlashga mo’ljallanganligi uchun, undagi yashil svetodiodlar ham qarama-qarshi tartibda ishlaydi (pin ulansa – tegishli rele uziladi va indikator o’chadi, aksincha, pin uzilsa – rele ulanadi va svetodiod yonadi).

3) O’zingiz yaratgan botni biron ochiq guruhga qo’shib, 2 ta raqamli pinni va rele modulini Telegram guruhi a’zosi sifatida boshqaring.

Natija:

Bot buyruqlari: “/rele1_on” – D1 pini va u orqali 1-releni ulash, “/rele1_off” – D1 pini va 1-releni uzish, “/rele2_on” – D2 pini va u orqali 2-releni ulash, “/rele2_off” – D2 pini va 2-releni uzish, “/status” – D1, D2 pinlari va relelarning oxirgi holatini ko’rish. Guruh menyusida buyruq nomiga bot nomi ham qo’shib ko’rsatiladi. Lekin, matnli xabar yuborishda uni ko’rsatish shart emas!
D1 va D2 pinlariga ulangan 2 ta kanalli elektromagnit rele moduli inversiya rejimiga ishlashga mo’ljallanganligi uchun, undagi yashil svetodiodlar ham qarama-qarshi tartibda ishlaydi (pin ulansa – tegishli rele uziladi va indikator o’chadi, aksincha, pin uzilsa – rele ulanadi va svetodiod yonadi).
Eslatma: bot guruhga qo’shilganligi sababli, guruhning har qanday a’zosi botni boshqarishi mumkin. Shuning uchun guruhga faqat botni boshqarishga ruxsat etiladigan shaxslarni qo’shish, qolganlarni guruhdan chiqarish tavsiya etiladi.

4) Temperatura va havo namligini olish sketchini takomillashtirib, natijalarni botga har 10 sekundda avtomatik yuborishga moslashtiring.

Natija:

Temperatura va havo namligi Telegram bot chatiga avtomatik ravishda har 10 sekundda yuboriladi. Yuborish intervalini sketchda o’zgartirilishi mumkin.

5) Yuqoridagi sketchlardan foydalanib ushbu dars mavzusiga doir shaxsiy o’quv loyihasi taklifini bering va uni amalda bajaring, uning videosini tayyorlang (muvaffaqiyatli unikal loyihalar videosiga havolalar o’quvchining nomidan saytning shu joyiga joylashtirib boriladi).

Добавить комментарий