24.04.2026

Arduinoda masofadan boshqaruv [18+]

Arduinoda masofadan boshqaruv texnologiyalarini shartli 3 ta asosiy yo’nalishlarga ajratgan holda ko’rib chiqamiz: bog’lanish kanallari, interfeyslari va protokollari bo’yicha (ba’zida interfeys protokolning eng quyi darajali turi sifatida ham qaraladi, lekin aksariyat hollarda ular bir-biridan ajratib ko’rsatiladi). Qisqacha aytganda, 2 ta qurilma ma’lum bir turdagi bog’lanish kanali orqali, bog’lanish interfeysi hamda protokoli yordamida bog’lanishi mumkin. Ularning hech birisiz o’zaro bog’lanishni o’rnatib bo’lmaydi!

BOG’LANISH KANALLARI

Bog’lanish kanallari – Arduino qurilmasiga boshqa qurilmalardan (yoki aksincha) bog’lanishda qo’llaniladigan aloqa kanallari. Ularga asosan quyidagilar kiradi:

  • kabelli;
  • yorug’lik nuri (tabiiy yorug’lik nuri, infraqizil nur, lazer nuri, optik tolali kanal);
  • tovush (inson ovozi va tabiiy tovushlar, ultratovush);
  • radioto’lqin (Bluetooth, WiFi, GSM, RF433/RF315, nRF24L01, LoRa, RFID/NFC va boshqalar);
  • sun’iy yo’ldosh orqali (GPS) navigatsiya (obyekt lokatsiyasi, tezligi, yo’nalishi, joriy sana va aniq vaqtni aniqlash).

Bizga ma’lum bo’lgan Bluetooth (2.4 GHz), WiFi (2.4 va 5 GHz) hamda GSM (800, 900, 1800, 2100 va 2600 MHz) texnologiyalari maxsus radiochastotalar diapazonida ishlashga mo’ljallangan.

BOG’LANISH PROTOKOLLARI

Bog’lanish protokollari – obyektlar o’rtasida bog’lanish jarayonini ta’minlovchi qoidalar, moslashuvlar, signallar va protseduralar majmuasi. Xususan Arduino bilan ishlashda, qurilmaga aloqa kanali orqali bog’lanish jarayonida qo’llaniladigan dasturiy texnologiyalar tushuniladi (Eslab qolish uchun: protokol har doim “qanday qoida asosida?” savoliga javob beradi).

Yuqorida sanab o’tilgan interfeyslarining har birida mos keluvchi bog’lanish protokollari qo’llaniladi. Har bir protokol o’ziga xos nom va versiyalarga ega bo’lsa-da, amaliyotda qulaylik uchun ko’p hollarda protokol o’rnida ham interfeysning nomlanishi qo’llaniladi (Lekin har doim emas: WiFi interfeysi orqali bog’lanishda WiFi protokoli o’rniga yoki u bilan birga ESP-NOW protokolidan ham foydalanish mumkin). Masalan, WiFi, Bluetooth, GSM va boshqa interfeyslar bir vaqtning o’zida, bog’lanish protokoli deb ham yuritiladi.

Aksariyat hollarda bir xil interfeysga ega bo’lgan 2 ta qurilmani o’zaro bog’lashda bir xil protokoldan foydalaniladi. Lekin ba’zida bir xil protokol yordamida turli xil interfeyslarni ham bog’lash mumkin (masalan, TCP protokolidan WiFi va GSM interfeyslarini bog’lashda).

Yuqoridagilardan tashqari, aloqa kanallari orqali ma’lumot uzatishni tezlashtirish, axborot xavfsizligini ta’minlash, boshqaruvni soddalashtirish kabi maqsadlarda protokollarning keyingi (yuqori) darajadagi turlaridan ham foydalanililadi. Masalan, TCP, UDP, HTTP/HTTPS, WebSockets, MQTT protokollaridan va hokazo. Xususan, ESP mikrokontrollerlari uchun ESP-NOW protokolidan ham foydalanish mumkin. Arduino qurilmalarini yaratishda ushbu protokollardan lokal (ichki tarmoqda) yoki global mashtabda (Internet tarmog’i orqali) boshqarish uchun foydalanish mumkin.

TCP (“Transmission Control Protocol” – uzatishni nazorat qilish protokoli) protokoli – Internet va lokal tarmoqlarda ma’lumotni paketli (segmentli) ko’rinishda almashinishning, quyi darajadagi asosiy protokollaridan biri. U IP (“Internet Protokol”) protokoli bilan birgalikda qo’llaniladi – TCP ma’lumot almashinuvi va paketlar butun yetkazilishiga, IP ma’lumotlarni paketlarga (qismlarga) ajratish va manzillashtirish vazifalarini bajaradi. Shuning uchun ularni birgalikda TCP/IP protokoli deb ham yuritiladi. Har bir ma’lumot paketi sarlavha (uning manbasi, manzili, vaqt belgilari va boshqa xizmatchi axborotlar) hamda paket tanasini (foydali ma’lumotni – yuborilayotgan axborotni o’z ichiga oluvchi asosiy blokni) o’z ichiga oladi.

TCP protokolini qo’llashda, odatda bog’lanilayotgan tarmoq qurilmasi IP manzilidan tashqari uning port manzili ham ko’rsatiladi. U 0 … 65535 oralig’ida ko’rsatilishi mumkin. Keng tarqalgan yuqori darajali protokollarni standartlashtirish maqsadida ularda har doim bir xil port raqamlari qo’llaniladi (0…1023 oralig’ida): HTTP – 80 va 8080, HTTPS – 443,  Websockets – 81 va 8081, FTP – 20/21, Telnet – 23, SMTP – 25 va hokazo. Bundan tashqari, IANA boshqarmasi tomonidan ro’yxatga olinadigan 1024 … 49151 portlari hamda vaqtinchalik umumfoydalanish mumkin bo’lgan 49152 … 65535 portlari farqlanadi.

TCP/IP modeli bo’yicha tarmoq quyidagi darajalarga ajratiladi (OSI modelidan qisman farq qiladi):

  1. kanal darajasi (eng quyi daraja): ma’lumot uzatish muhiti, prinsiplari va xarakteristikalarini ifodalaydi. Bevosita bog’lanish kanali bilan ishlovchi bunday darajali protokollarni interfeys deb ham yuritiladi (WiFi, Ethernet, Bluetooth va hokazo);
  2. tarmoq (TCP, IP) darjasi: qurilmalar o’rtasida ma’lumot almashishni ta’minlaydi. IP-manzil tizimlarga masofadan kirish usuli sifatida qo’llaniladi;
  3. transport darajasi: jarayonlar o’rtasidagi bog’lanishni ta’minlaydi. Ushbu daraja turli servislarga murojaat qilishda portlarni qo’llaydi. Qo’llanilayotgan protokol turidan kelib chiqib, bog’lanishning xavfsizlik darajasi yuqori (TCP) yoki quyi (UDP) bo’lgan holatini yaratishi mumkin;
  4. amaliy (eng yuqori) daraja: ilovalar o’rtasida ma’lumot almashishga javob beradi. Bunda turli tarmoq ilovalari qo’llanilishi mumkin. Foydalanuvchi masofaviy ilovani go’yoki lokal ilovadek qo’llay oladi.

UDP (“User Datagram Protocol” – foydalanuvchi datagrammalari protokoli) protokoli – transport darajasida qo’llaniladigan, TCP protokolidagidek, ma’lumotlarni paketlar ko’rinishida yuborishga asoslangan protokol.

UDP protokolining TCP protokolidan asosiy farqi shuki, u qabul qiluvchi tomon bilan dastlabki bog’lanishda aloqa sifatini tekshirmaydi va ko’rsatilgan IP-manzilga tog’ridan-tog’ri ma’lumotlar paketini yuborishga o’tadi. Bundan tashqari, UDP protokolida ortiqcha xizmatchi paketlardan foydalanilmaydi. Bu esa, UDP protokolining ham yutug’i, ham kamchiligi hisoblanadi. Bu jihatdan uni bir tomonlama radiochastotali boshqaruvga qiyoslash mumkin (pult bosilganda ma’lumot yuborilaveradi, lekin uning qabul qilgichga qanchalik yetib borganligi nazorat qilinmaydi). Ma’lumotlar qanchalik to’liq yetkazilishi ko’proq aloqa sifatiga bog’liq bo’ladi.

Yutug’i – ma’lumot uzatishdagi uzilishlar to’liq yetib borishi muhim bo’lmagan, lekin yuqori tezlik talab etiladigan vaziyatlarda unumli foydalanish mumkin. Xususan, Arduino qurilmasi yuklamasi tezkor boshqarishda katta rol o’ynaydi. Zarurat bo’lganda esa, kerakli boshqaruv buyrug’i muvaffaqiyatli ijrochi mikrokontrollerda muvaffaqiyatli bajarilganligini alohida so’rov yordamida aniqlash mumkin (ya’ni, bunga qo’shimcha vaqt talab etiladi).

Kamchiligi – yuborilgan ma’lumot paketlari manzilga yetib borganligi qabul qiluvchi tomonidan tasdiqlanishi shart bo’lmaganligi sababli, ayrim ma’lumot paketlari manzilga qisman yetib borishi yoki umuman yetib bormay qolishi ham mumkin. Yetib bormagan paket xatoligi haqida esa, xabar berilmaydi. Shuning uchun, Arduinoda ham ma’lumot kafolatli yetib borishi zarur bo’lgan loyihalarda uning o’rniga TCP protokolidan yoki boshqa uzatish usullaridan foydalanish tavsiya etiladi.

HTTP (“Hypertext Transfer Protocol”) protokoli – amaliy (yuqori) darajali, gipertekstni uzatish protokoli. serverga yuboriladigan

hozirda ham amalda keng qo’llanilayotganiga qaramay, serverga so’rov yuborish, serverda so’rovni qayta ishlab, natijani http-mijozga qaytarish va oxirida server bilan albatta aloqani uzish bosqichlari nisbatan ko’p vaqt talab etishi – http protokolining o’ziga xos kamchiligi hisoblanadi. Masalan, brauzer bilan Arduino qurilmasi o’rtasida bitta boshqaruv buyrug’ini amalga oshirish vaqti 3-5 sekund yoki undan ko’proqni tashkil etishi mumkin.
Ma’lumki, HTTP protokoli mijoz serverga bog’lanishi va hosil bo’lgan aloqa kanali orqali so’rov (request) yuborishi, so’rov serverda qayta ishlanganidan keyin, tegishli javob (response) yana o’sha mijozga qaytarilishi, oxirida albatta mijoz serverdan uzilishi bosqichlariga asoslangan. Navbatdagi so’rovni yuborish uchun ham ushbu bosqichlar qayta bajarilishi kerak.

WebSockets protokoli – HTTP texnologiyasining takomillashtirilgan varianti bo’lib, mijoz va server orasida ma’lumot almashinuvi tezligini keskin oshirish imkonini beradi. WebSockets protokolida ham HTTP protokoliga xos yuqoridagi bosqichlar ketma-ket bajariladi, lekin bunda mijoz va server o’rtasidagi aloqa kanali o’rnatilganidan keyin (ya’ni, “salomlashish” bosqichi bajarilganidan keyin) ham bog’lanish faol holda qoladi, aniqrog’i, “salomlashish” jarayonida yangi bog’lanish kanali (soket) ochiladi va u http-so’rov yakunlanganidan keyin ham faol holda qoladi. Bundan tashqari, bitta mijoz so’rovi serverda qayta ishlanganidan keyin, ining natijasini nafaqat o’sha mijozga qaytarish, balki serverga ulangan boshqa mijozlarga ham ulashish (broadcast) imkoniyati bor. Brauzer bilan Arduino qurilmasi o’rtasida bitta boshqaruv buyrug’ini amalga oshirish vaqti WebSockets protokoli orqali yuqori tezlikda, aniqrog’i – real vaqt rejimida (sekundning o’ndan birgacha bo’lgan qisqa ulushlariga teng) bo’lishi mumkin. Bunday yuqori tezlik tez harakatlanadigan robot yoki mashinalarni boshqarishda katta ahamiyatga ega bo’ladi.

ESP-NOW protokoli –  faqat ESP8266 va ESP32 mikrokontrollerlarida o’rtasida qo’llash mumkin bo’lgan, WiFi protokoliga alternativ bo’lgan alohida bog’lanish protokoli. Ushbu protokolda mikrokontrollerlar o’rtasidagi bog’lanish odatdagidek WiFi kirish nuqtasi yoki WiFi-router ishtirokida hamda IP-manzillar asosida emas, mikrokontrollerlarning MAC-manzillari asosida o’rnatiladi. Bunda ma’lumot paketlarini o’zaro uzatish/qabul qilish intervali 30 ms (0,03 sekund) gacha qisqarishi mumkin, ya’ni bunda ham yuklama boshqaruvi deyarli real vaqtda bajariladi.

ESP-NOW protokoli yordamida mikrokontrollerlar o’rtasidagi bog’lanishlar quyidagi usullarda amalga oshirilishi mumkin:
– nuqtadan nuqtaga, ya’ni, yoki mijozdan serverga (faqat 2 ta mikrokontroller o’rtasidagi bog’lanish);
– nuqtadaga bir nechta nuqtalardan, ya’ni, bir nechta mijozdan bitta serverga (lekin, bunday “tarmoq”da ham router yoki kirish nuqtasi ishtirok etmaydi).
Har bir mikrokontroller qurilmalarda “IDLE” (“Rol belgilanmagan” – bog’lanish ruxsat etilmaydi), “CONTROLLER” (“Boshqaruvchi”, WiFi STA rejimida), “SLAVE” (“Ijrochi”, WiFi SoftAP rejimida), “COMBO” (“Boshqaruvchi + Ijrochi”, WiFi SoftAP rejimida) yoki “MAX” (“Boshqaruvchi + Ijrochi”, WiFi STA rejimida) rollaridan birida qatnashishi mumkin. Bunda mikrokontrollerlar bir-biriga to’g’ridan-to’g’ri bog’langani sababli, ma’lumot almashinuv tezligi WiFi router orqali bog’lanishga nisbatan yuqori bo’ladi.
Bundan tashqari, dastlabki bog’lanish bajarilganidan keyin, uzulishlar sodir bo’lmaydi (jismoniy uzilishlardan tashqari), modul qayta ishga tushirilganida qayta ulanish avtomatik ravishda va tezkor amalga oshadi. Buning uchun sketchda, bog’lanishi zarur bo’lgan mikrokontrollerlarning mac-manzili oldindan aniq ko’rsatib qo’yilishi zarur bo’ladi.
Biroq, ESP-NOW protokoli ayrim cheklovlarga ham ega:
– ma’lumotlar paketida (buferida) ko’pi bilan 250 baytgacha ma’lumot yuborish mumkin;
– ma’lumot uzatish tezligi – 1 mbit/s gacha;
– protokol yordamida (mikrokontrollerlarning tarmoqdagi rollaridan kelib chiqib) faqat 20 tagacha mikrokontrollerlarni bir-biriga bog’lash mumkin;
– bir-biriga bog’lanadigan mikrokontrollerning mac-manzillari sketchlarda oldindan aniq ko’rsatib qo’yilishi shart.

ESP-NOW protokoli asosidagi misollar bilan amaliy mashg’ulotda batafsil tanishish mumkin.

MQQT protokoli

Ma’lumotni yuborish va qabul qilish jarayonida ko’pchilikka tanish bo’lgan http/https, WebSockets, tcp, udp kabi protokollardan tashqari, MQTT protokolidan foydalanish ham muhim o’rin tutadi. Undan Internet orqali boshqaruvning 2 ta (mijoz, server) tomonini o’zaro bog’lash uchun foydalanish mumkin. Xususan, ushbu texnologiya bulutli xizmatlardan foydalanishda ham katta ahamiyatga ega bo’ladi.

MQTT (“Message Queue Telemetry Transport” – “xabarlar navbati telemetriyasi transporti”) – buyumlar internetida (IoT) keng qo’llaniladigan protokol hisoblanadi. U xuddi HTTP protokolidek, ma’lumot almashishda mijoz-server texnologiyasidan foydalanadi. Biroq, MQQT ning HTTP ga nisbatan afzalligi shundaki – u yordamida ma’lumot almashish juda tez (1 sekunddan boshlab va deyarli uzilishlarsiz) amalga oshiriladi, chunki almashinadigan ma’lumot hajmi juda kichik va ortiqcha xizmatchi ma’lumotlarni o’z ichiga olmaydi, bu esa, o’z navbatida aloqa kanallarining ma’lumot o’tkazuvchanligiga ham salbiy ta’sir qilmaydi.

Kamchiliklari esa – MQQT protokoli orqali bog’lanishni ta’minlovchi servislar aksariyat hollarda pulli hisoblanadi, bepul variantlarida esa, foydalanuvchi uchun loyihani kengaytirish imkoniyatlarini cheklangan bo’ladi (test rejimi). Shunday bo’lsada, ushbu servislardan foydalanuvchilar soni muntazam ortib bormoqda.

HTTP/WebSeckets yoki MQQT?

Ma’lumki, HTTP/WebSockets protokollari bilan ishlashda faqat 2 ta tomon (so’rov yuborish va natijani qabul qiluvchi tomon – http-mijoz, veb-mijoz va so’rovni qabul qilish, qayta ishlash hamda qaytarish vazifasini bajaruvchi tomon – http-server, veb-server) ma’lumot almashish jarayonining ishtirokchilari hisoblanadi. Lekin ulardan ko’proq lokal tarmoqlarda foydalanish qulayroq hisoblanadi.

MQQT protokoli bilan ishlashda esa, bunday tomonlar soni 3 ta: MQQT-broker (Broker), MQQT-nashrchi (Nashrchi, “MQQT-Publisher”) va MQQT-obunachi (MQQT-Mijoz, “MQQT-Client”). Bunda:

  • MQQT-nashrchi – Xabarni shakllantirib, uni Brokerga uzatuvchi qurilma (mijoz);
  • MQQT-broker – nashrchilar xabarlari asosida ma’lum nom (mavzu) bilan topik (guruh) yaratuvchi va u orqali xabarlarni obunachilarga tarqatuvchi, odatda Internet tarmog’idagi serverda joylashgan servis. MQQT-brokerdagi ma’lumotlar vaqtincha saqlanadi va nashrchidan kelgan navbatdagi xabar oldingisini o’chirib yuboradi;
  • MQQT-obunachi – topikka obuna bo’lgan, topikdagi nashrchilar ma’lumotlaridan broker yordamida foydalanadigan qurilma (mijoz).

Ko’rinib, turibdiki MQQT-nashrchi va MQQT-mijoz jarayonning asosiy ishtirokchilari bo’lib, biri xabarni MQQT-brokerga yuboradi, 2-chisi esa, ma’lumotni qabul qilib, undan foydalanadi. Demak, MQQT-broker ular orasida ko’prik vazifasini bajarib beruvchi, asosiysi, tashqi IP-manzilga ega bo’lmagan 2 ta tomonlarni o’zaro bog’lovchi 3-tomon hisoblanadi. Masalan, bizning holda MQQT-nashrchi vazifasini Arduino qurilmasi, MQQT-mijoz vazifasini mobil uskuna, kompyuter yoki yana bir Arduino qurilmasi, MQQT-broker vazifasini MQQT protokoli yordamida ularni bog’lovchi, Internetdagi tegishli onlayn-servis bajaradi.

Arduino va MQQT

Arduino qurilmalarini yaratishda qurilma bir vaqtning o’zida ham MQQT-mijoz ham MQQT-nashrchi vazifasini bajarishi mumkin. Arduinoda MQQT protokoli bilan ishlash jarayoni quyidagicha tartibda amalga oshiriladi:

  1. Nashrchi (bizning holda Arduino asosidagi qurilma) o’z ma’lumotlaridan (topik nomi, datchik ko’rsatkichlari, boshqaruv tugmalari, relelar holati va hokazolardan) iborat xabarni shakllantiradi va ma’lum davriylikda Brokerga yuborib turadi;
  2. Xabar asosida, Broker tomonidan topik hosil qilinadi va unda xabar e’lon qilinadi;
  3. Obunachi Broker tomonidan e’lon qilingan xabarni qabul qiladi va undan foydalanuvchini xabardor qiladi;
  4. Obunachi zarurat bo’lsa, o’z buyruqlari asosidagi yangi xabarni Brokerga yuborib, vaqtincha nashrchiga aylanishi mumkin. Nashrchi esa, Broker orqali olingan buyruq xabarini qabul qilib vaqtincha obunachiga aylanishi, buyruqni qayta ishlash natijasini yana Brokerga yuborib nashrchiga aylanishi mumkin. Broker orqali qabul qilingan xabarni qabul qilib, obunachi yana o’zining dastlabki vazifasini bajarishi mumkin.

Oxirgi holatda nashrchi obunachiga va obunachi nashrchiga aylanishi uchun, tegishli qurilmalar dasturiy ta’minoti har ikki rejimda ishlashga mo’ljallab o’zgartirilishi zarur (masalan, Arduino sketchida shunga mos bibliotekadan foydalanilishi kerak, bu haqda alohida amaliy darsda ma’lumot beriladi).

MQQT-servislar

Hozirgi kunda Internetda quyidagilar kabi va yana ko’plab MQQT-brokerlar o’z xizmatlarini ko’rsatib kelmoqda: eclipse (server manzili), hivemq (server manzili), io.adafruit (server), ThingSpeak (server manzili), Cayenne (GitHub dagi sahifasi), mosquitto (server manzili) va hokazo. Raspberry Pi havaskorlari uchun uning o’ziga mosquitto brokeri serverini o’rnatish ham keng tarqalgan. Amaliy darslarda biz, ularning ayrimlari asosidagi nisbatan sodda loyihalarni amalga oshirish bilan cheklanamiz. Ularning imkoniyatlaridan professional foydalanishni o’rganishni esa, o’quvchining o’ziga havola qilamiz.

Arduino qurilmasini ayrim MQQT servislar orqali boshqarish yoki undan ma’lumotlarni olishni alohida amaliy darsda misollar bilan ko’rib chiqiladi.

BOG’LANISH INTERFEYSLARI

Bog’lanish interfeyslari – dastur, qurilma, funksiya va boshqalar bilan bog’lanishda qo’llaniladigan texnik va dasturiy vositalar majmuasi hisoblanadi (Eslab qolish uchun: interfeys har doim “qanday qilib?”, “qaysi usulda?” kabi savollarga javob beradigan tushuncha). Interfeyslar simli (USB, HDMI va hk) yoki simsiz (Bluetooth, WiFi va hk) variantlarda bo’lishi mumkin.

Xususan, interfeys deganda Arduino qurilmasiga bog’lanishda qo’llaniladigan maxsus modullar hamda platalar va ularni boshqaruvchi dasturiy texnologiyalar (drayverlar) tushuniladi. Bog’lanish interfeyslari qabul qilingan va qayta ishlangan raqamli signalni mikrokontrollerga uzatish (“qabul qilgich”) yoki aksincha, mikrokontrollerda qayta ishlangan raqamli signalni tegishli bog’lanish kanallari orqali boshqa qurilmalarga uzatish (“uzatkich”) vazifalarini bajaradi. Ba’zi modullar bir vaqtning o’zida ushbu vazifalarning har ikkisini ham bajarishi mumkin. Masalan, radiochastota diapazoni uchun Bluetooth, RF433/RF315, RFID/NFC modullarining ba’zilari faqat uzatkich, ba’zilari faqat qabul qilgich rolini bajara oladi.
Barcha turdagi WiFi, GSM, nRF24L01, LoRa radiochastota modullari esa, ham uzatkich, ham qabul qilgich rolini bajarishi mumkin. Biroq bunday modullarning qurilmada bajaradigan roli foydalanuvchi tomonidan dasturiy yo’l bilan cheklanishi ham mumkin.

Yuqorida sanab o’tilgan boshqaruv usullarining ayrimlaridan Arduinoda deyarli foydalanilmaydi. Masalan, kabelli va tabiiy yorug’lik yordamidagi boshqaruvdan. Bundan tashqari, optik tolalili kabel orqali Arduino qurilmasini boshqarishga ham ehtiyoj yuqori bo’lmasligi mumkin, ayniqsa, kerakli jihozlar narxlari qimmatligini hisobga olinganda. Shuning uchun, bunday boshqaruv usullari bo’yicha to’xtalib o’tmaymiz.

Arduino qurilmalarini ovoz va ultratovush yordamida boshqaruv jarayonlari haqida analog va raqamli datchiklar bilan ishlashga doir tegishli amaliy mashg’ulotlarda ma’lumotlar keltirilgan. Bluetooth, WiFi, RF433/RF315, RFID/NFC radiochastota diapazonlarida bog’lanish va boshqaruv jarayonlari, GPS-navigatsiya mavzulari bo’yicha esa, alohida darslar davomida batafsil to’xtalamiz.

Quyida esa, bulardan tashqari bo’lgan boshqaruv usullari haqida muhim ma’lumotlar keltiriladi.

Yorug’lik yordamida boshqaruv

Infraqizil yorug’lik nuri yordamida boshqaruv.

Maishiy texnika vositalarini infraqizil (IQ) diapazonda boshqarish jarayonlarida NEC, Sony, Panasonic va boshqa taniqli kompaniyalar tomonidan yaratilgan mos protokollardan foydalaniladi. Xususan, biz ham Arduino qurilmalarini yaratishda amaliy mashg’ulot davomida, eng ko’p tarqalgan NEC protokolidan foydalanamiz (shu protokolda ishlovchi IQ-pultlardan foydalanamiz).
Infraqizil diapazonda boshqarish texnologiyasi va protokollari 1990-2000 yillarda keng qo’llanilgan bo’lib, asosan maishiy texnika vositasini bir necha metr masofadan maxsus pult yordamida, simsiz qulay boshqarish maqsadida qo’llanilgan. Asta-sekin IQ-vositalarning takomillashgan, ya’ni boshqaruv radiusi hamda ma’lumot uzatish tezligi yuqori bo’lgan variantlari ham yaratilgan. Biroq, Bluetooth, WiFi va RF433/RF315 kabi yangi texnologiyalarning yaratilishi, IQ-texnologiyalardan foydalanishning rivojlanishi asta-sekin pasayib ketishiga olib kelgan. Biroq hozirda ham ushbu texnologiyadan butunlay voz kechilmagan. Xususan, Arduino qurilmalarini yaratishda ham ushbu texnologiyadan foydalanib, foydali va qiziqarli loyihalarni yaratish mumkin. Masalan, IQ-pult yordamida Arduino qurilmasi yuklamasi (lampalar, rozetkalar, elektron qulflar, bolalar o’yinchoqlari va mashinalari va hokazolar)ni boshqarish mumkin.

Boshqa ayrim bog’lanish texnologiyalaridan farqli ravishda, IQ diapazon orqali boshqaruvda 1-tomon vazifasini IQ-pult, ijrochi vazifasini esa, elektron qurilma sxemasiga qo’shilgan IQ qabul qilgich bajaradi. IQ-pultdan qabul qilingan maxsus kodlar qabul qilgichda ajratilib, elektron qurilmaning tegishli funksiyalarini boshqarish imkonini beradi.

Shuning uchun, IQ-nur chastotalari diapazonida bog’lanish va boshqarish jarayonlarida boshqaruvchi Arduino qurilmasini matnda qulaylik uchun shartli ravishda “IQ-pult”, qabul qilingan signal asosida boshqariladigan qurilmani esa, Arduino qurilmasini esa “ijrochi” deb ataymiz. Shuningdek, IQ-pultining IQ-svetodiodni o’z ichiga olgan va IQ-signallarini uzatish vazifasini bajaradigan qismini “uzatkich”, ijrochining IQ-signallarni qabul qiluvchi, fotodiodni o’z ichiga olgan qismini “datchik”, ijrochiga ulangan va u tomonidan boshqariladigan elektr jihozlarini qisqacha “yuklama” deb yuritamiz.

IQ-nur chastotalari diapazonida qurilmlar o’rtasida o’zaro bog’lanish va boshqarish jarayonlarini to’liq qamrab olish uchun ularni quyidagi 3 ta bosqichga ajratish mumkin:

1. IQ nur chastotalari diapazoni pultlari buyruqlarini identifikatsiyalash (tugmalar kodini aniqlash);
2. Aniqlangan kodlar asosida, Arduino yuklamalarini boshqarish. Ya’ni, bunda Arduino – ijrochi qurilma sifatida qo’llaniladi. Ushbu usulda 1 ta yoki bir nechta IQ-pult yordamida ijrochiga (Arduinoga) ulangan bir yoki bir nechta yuklamalarni boshqarish mumkin bo’ladi;
3. Arduino-uzatkichda buyruqlarni identifikatsiyalash va ular asosida yuklamalarni boshqarish. Ya’ni, bunda Arduino qurilmasi IQ-pult vazifasini bajaradi. Turli xil jihozlarning IQ-pultlari buyruq kodlarini yagona Arduino qurilmasida umumlashtirish hamda qurilmani Internet (WiFi) yoki Bluetooth texnologiyalari orqali smartfonga bog’lash orqali esa, Arduinoni mobil ilova bilan birgalikda ko’plab jihozlarni (oddiy lampalar, elektr qulflari, ventilyatorlar, isitgichlar, kotyollar va boshqalarni) boshqara oladigan aqlli universal pultga aylantirish mumkin bo’ladi.
Bundan tashqari, 2- va 3-bosqichlarni umumlashtirish orqali 2 ta Arduino qurilmalarini o’zaro bog’lash ham mumkin. Ya’ni, bunda 1 ta Arduino qurilmasi IQ-pult, 2-si esa ijrochi rolini baharadi. Bunday bog’lanish usuli yordamida, IQ-pult va IQ-datchikka ega bo’lmagan yuklamalarni ham boshqarish imkoniyati bo’ladi.

IQ-boshqaruv bo’yicha misollar amaliy mashg’ulotda batafsil ko’rib chiqiladi.

Lazer nuri yordamida boshqaruv.

Lazer (LASER – Light Amplification by Stimulated Emission of Radiation) – majburiy nurlantirish vositasida yorug’likni kuchaytirish hodisasi. Lazer nurini hosil qilishda qo’llaniladigan vosita turiga qarab, lazerning asosan 5 ta turi keng tarqalgan (gazli, qattiq jinsli, suyuqlikli, optik tolali, yarim o’tkazgichli).

Lazer nuri – lazer yordamida ma’lum (asosan – qizil, yashil, ko’k) ranglarda  hosil qilinadigan, ingichka chiziq ko’rinishida tarqaladigan yorug’lik nuri.

Laser moduli – laser nurini hosil qiluvchi va uni uzatuvchi modul. Arduino qurilmalarini yaratishda svetodiodli (yarim o’tkazgichli) lazer modullari qo’llaniladi.

Svetodiodli lazer moduli – lazer svetodiodini o’z ichiga olgan uzatuvchi lazer moduli. Bunda lazer nurini maxsus svetodiod yordamida hosil qilinadi. O’quv amaliyotida KY-008 lazer moduli eng ko’p qo’llaniladi. Lazer quvvati bir necha millivattdan tortib, to o’nlab vattlargachani tashkil qilishi mumkin.

KY-008 – faqat lazer nurini hosil qilish va uzatishga mo’ljalangan, 640 nm optik to’lqin uzunligiga ega bo’lgan lazerli svetodiodini o’z ichiga olgan uzatkich-lazer moduli. Arduino amaliy loyihalarini yaratishda, yuklamani lazer nuri yordamida masofadan boshqarish uchun biz aynan shu lazer modulidan foydalanamiz. Modul maksimal kuchlanishi – 5V, tok kuchiga minimal talab – 30 mA.

Laser nurini qabul qilish uchun maxsus ISO203 tayyor modulidan, uni topishning imkoni bo’lmagan hollarda esa, har qanday fotodatchikdan foydalanish mumkin.

Uzatkich-lazer (KY-008) va lazer fotodatchigi (ISO203) modullari

Lazer fotodatchigini ISO203 moduliga o’rnatish qoidasi

Uzatkich-lazer moduli bilan ishlashda uning quyidagi o’ziga xos jihatlariga e’tibor qaratilishi shart:

    • lazer nurini inson yoki boshqa jonzotlarning ko’ziga yo’naltirish unga jiddiy zarar yetkazishi mumkin;
    • lazer quvvatini oshirish uchun ta’minot manbaining kuchlanishi (volt)ni oshirish emas, uni yuqori tok kuchi (amper)ga ega bo’lgan elektr manbaiga (akkumulyatorga, ta’minot blokiga) ulanishi zarur. Bunday hollarda uzatkich-lazer modulini radiatorga joylashtirilishi zarur;
    • uzatkich-lazer moduli kuchlanishga juda sezgir, ya’ni belgilangan qiymatdan hatto qisqa muddatga oshib ketishi (yoki statik elektr toki) uning ishdan chiqishiga olib kelishi mumkin, shuning uchun uni elektr manbaiga ulashdan oldin kuchlanishni aniq sozlab olish tavsiya etiladi;
    • lazer nuri yordamida nafaqat yorug’lik hosil qilish mumkin, balki axborotni (matn, tovush, videoni) uzatish yoki kompakt-disklarga yozish hamda ulardan o’qish ham mumkin. Lazer yordamida uzatiladigan axborotni tutib olish juda qiyin, uni (yorug’likni) faqat to’sib qo’yish mumkin xolos. Ma’lumki, lazer yordamida ma’lumotlarni kompakt-disklardan o’qish va yozishda lazer turlicha usullarda hosil qilinadi hamda disklar turi ham boshqa-boshqa bo’ladi.

Arduinoda KY-008 moduli yordamida masofadan boshqarishga doir misol bilan amaliy mashg’ulotda tanishamiz.

Uyali aloqa tarmog’i orqali boshqaruv

Uyali aloqa tarmog’i orqali boshqaruv Arduino qurilmalarini masofadan boshqarishning yana bir muhim yo’nalishi hisoblanadi. Chunki, GSM tarmog’i radiochastota orqali masofadan boshqaruvning boshqa (Bluetooth, RF, WiFi) aloqa kanallaridan quyidagi o’ziga xos tomonlari bilan ajralib turadi:

  • GSM tarmog’i geografiyasi juda kengligi – u dunyoning barcha mamlakatlarida mavjud va ular o’zaro bir-biriga bog’lana oladi (jumladan, rouming rejimida ham); aholi yashamaydigan, borish qiyin bo’lgan, telekommunikatsiyaning boshqa usullaridan foydalanish imkoni bo’lmaydigan (tegishli infrastruktura mavjud bo’lmagan) vaziyatlarda, agar hudud uyali aloqa bilan qamrab olingan bo’lsa, uning imkoniyatlaridan unumli foydalanishi mumkin;
  • GSM tarmog’i bir vaqtning o’zida GSM (“Global System for Mobile Communications”, “Mobil Bog’lanishlar uchun Global Tizim”) va GPRS (“General Packet Radio Service”, “Umumfoydalanishdagi Paketli Radioaloqa”), GPRS ning keyingi avlodlari (3G/4G/5G – mos ravishda 3-, 4- va 5-avlod ma’nosida) texnologiyalarini birlashtirganligi – ular yordamida foydalanuvchi tarmoq orqali qo’ng’iroq yoki SMS-xabarlar almashinishi, global Internet tarmog’i resurslaridan foydalanishi va boshqa foydalanuvchilar bilan bog’lanishi mumkin.

Arduino qurilmalarini yaratishda ham GSM tarmog’ining yuqoridagi barcha imkoniyatlaridan foydalanish mumkin. Buning uchun Arduinoni qo’llab-quvvatlovchi GSM-modullardan foydalaniladi. Ularning ayrimlari bilan ishlashni soddalashtirish uchun esa, Arduino bibliotekalari ham yaratilgan (faqat ba’zi modullar uchun).

Demak, GSM-modullardan foydalanib yaratiladigan Arduino qurilmalari ishtirokida quyidagi vazifalarni bajarish mumkin:

  • telefon qo’ng’irog’i (“RING”) yordamida yuklamani ishga tushirish yoki o’chirish, yuklamadan smartfonga qo’ng’iroq qilish (masalan, ogohlantirish maqsadlarida);
  • SMS-xabarlar yordamida yuklamani ishga tushirish, o’chirish, sozlash, undan javob SMS-xabarlarini qabul qilish (masalan, ogohlantirish maqsadlarida);
  • DTMF-signallar yordamida yuklamani jonli (onlayn) rejimda to’liq boshqarish (ishga tushirish, o’chirish, harakatini nazorat qilish va hokazo) – bunda smartfon boshqaruv pulti rolini bajaradi;
  • GPRS/3G/4G/5G texnologiyalari yordamida Internet orqali qurilmaga bog’lanish va uni to’liq boshqarish, shuningdek, undan javob xabarlarini qabul qilish (ko’p tarqalgan, nisbatan arzon GSM-modullarda faqat GPRS texnologiyasidan foydalanish mumkin xolos).

Biz Arduino qurilmalarini GSM tarmog’i orqali boshqarishga doir amaliy mashg’ulotlarda hozirgi paytda sotuvda eng ko’p uchraydigan, foydalanish uchun biblioteka talab qilmaydigan GSM-modullardan biri – SIM800L modulidan foydalanamiz. Biroq uni boshqarish uchun mo’ljallangan sketchlarda qo’llaniladigan dasturiy algoritmni deyarli o’zgarishsiz, boshqa GSM-modullarga ham qo’llash mumkin.

GSM tarmog’i orqali boshqaruv prinsiplari bilan yaqindan tanishish uchun avvalo GSM-modullar bilan ishlashda qo’llaniladigan maxsus kodlar – AT-buyruqlar (AT – “ATtention” so’zidan olingan) tushunchasi bilan kengroq tanishib olish maqsadga muvofiq.

AT-buyruqlar – yuboruvchi qurilmadan qabul qiluvchi qurilmaga (modemga) bog’lanish, uni sozlash yoki boshqarish uchun yuboriladigan buyruqlar to’plami. Ular har doim “AT” yoki “at” kodi bilan boshlanadi. Terminaldan yuborilayotgan har bir buyruq oxirida “Enter” klavishasi bosiladi, dasturiy kodidan yuborilayotganda esa, xabar oxirida “(char)26” kodi ham yuboriladi.

AT-buyruqlar ko’rinishlarda qo’llanilishi mumkin:

  • AT<x><n> yoki AT&<x><n> – bazaviy buyruqlar (<x> – yuboriladigan buyruq, <n> – yuboriladigan parametr. Masalan, ATI – GSM-modul indentifikatsiya ma’lumotlarini ko’rish, AT&V – modulning hozirgi konfiguratsiyasini ko’rish)
  • ATS<i>=<m> – S parametrli buyruq (<i> – S registr indeksi, <m> – unga o’zlashtiriladigan qiymat. Masalan, “ATS0=2” – kiruvchi qo’ng’iroqqa 2 ta gudokdan keyin avtomatik javob berish, “ATS0” – umuman javob bermaslik kerakligi)
  • AT+<x>=? (ma’lumot olish), AT+<x>? (ma’lumot olish), AT+<x>=<…> (parametrni o’rnatish, saqlash), AT+<x> (oddiy buyruq) – kengaytirilgan buyruqlar guruhi. Masalan, AT+IPR=? – AT+IPR buyrug’i bilan o’rnatish mumkin bo’lgan parametr qiymatlari ro’yxatini olish, AT+IPR? – o’rnatilgan qiymatni olish, AT+IPR=<…> – yangi qiymatni o’rnatish.

Bir nechta AT-buyruqlarni bitta xabar ko’rinishida birlashtirish mumkin, bunda AT yozuvi faqat xabar boshda 1 marta ko’rsatiladi. Har bir kengaytirilgan AT-buyruqlar oxirida “;” belgisi bilan ajratib qo’yilishi kerak (bazaviy va S turidagi buyruqlarda “;” belgisi ko’rsatilmaydi).

Masalan, quyidagi xabarda ATV0 (AT-buyruq javobini qisqa formatda qaytarish),  ATE1 (AT-buyruqlar exosini ulash), AT+DDET=1,0,1 (DTMF ton yordamida boshqarish rejimini faollashtirish), AT+Q0S0=1 (Natija kodini taqdim etish rejimini o’rnatish), AT+CLIP=1 (qo’ng’iroqqa avtomatik javob berish rejimini faollashtirish), AT+CMGF=1 (SMS uchun matn rejimini faollashtirish),  AT&W (oxirgi AT-buyruq parametrini xotiraga saqlab qo’yish) AT-buyruqlarni birlashtirgan holda keltirilgan:

ATV0E1+DDET=1,0,1;Q0S0=1+CLIP=1;+CMGF=1;&W

Bulardan tashqari, modemdan foydalanish jarayonida turli vaziyatlarda so’ralmagan eslatma ko’rinishidagi quyidagi xabarlar ham kelishi mumkin: RING – kiruvchi qo’ng’iroq mavjudligi, +CMTI – yangi SMS-xabar kelganligi va uning tartib raqami (masalan: +CMTI: “SM”,2), +CLIP – kiruvchi qo’ng’iroq raqami avtomatik aniqlanganligi (masalan: +CLIP: “+9980000000″,145,””,0,””,0), +CUSD – USSD-so’rov javobi (masalan, +CUSD: 0, ” Vash balans 198.02 sum) va hokazo.

Arduino bilan birgalikda qo”llaniladigan GSM-modullar ham modemnig bir ko’rinishi sifatida AT-buyruqlar yordamida boshqariladi. Xususan, biz o’rganadigan SIM800L GSM-moduli ham. Modul 4 xil turdagi antennalardan biri bilan birga sotib olinishi mumkin (oddiy, spiralli va 2 xil tashqi). Agar yuqori sezgirlik talab etilsa (masalan uyali tarmoq signali past bo’lgan hududlarda), modulga ulanadigan tashqi antennadan foydalanish maqsadga muvofiq, boshqa hollarda boshqa antennalardan ham foydalanish mumkin.

 

Aslida, SIM800 seriyasidagi chiplar asosida mos ravishda bir nechta variantdagi modullar ishlab chiqariladi, ularning xususiyatlari, xususan, SIM800L dan farqli tomonlari bilan quyidagi (yuqori sifatli) jadval orqali tanishib olish mumkin.

Yuqoridagi jadvaldan ko’rish mumkinki, chiplarning ayrim variantlarida ichki bluetooth (classic), fm-radio va gps-qabul qilgich bloklari mavjudligini ko’rish mumkin. Xususan, biz o’rganayotgan SIM800L moduli chipi (mikrokontrolleri) ham o’z ichiga fm-radio blokini olgan. Biroq, chipning tegishli pinlari modul GSM-modul chetiga chiqarilmaganligi va chipning smt-kontaktlaridan foydalanish juda noqulayligi sababli, ushbu funksiyadan deyarli hech kim foydalanmaydi.

Modulning GSM+GPRS imkoniyatlaridan to’laqonli foydalanish uchun unga mikrofon va spiker ham ulash mumkin. Natijada, moduldan to’laqonli uyali so’zlashuv vositasi sifatida ham foydalanish mumkin bo’ladi (saytda keltiriladigan o’quv mashg’ulotlarida biz mikrofon va spikerdan foydalanmaymiz).