INTERNET ORQALI BOSHQARUV SHARTLARI
WiFi orqali boshqarish degani har doim ham qurilmani Internet orqali boshqarish mumkinligini anglatmaydi, hatto WiFi-routerimiz Internetga ulangan bo’lsa ham. Chunki, yuqoridagi sketchlar yordamida yaratiladigan IP-manzillar ichki tarmoq manzili hisoblanadi.
Yuqoridagilardan kelib chiqadiki, qurilmani boshqarish, masofadan boshqaruv doirasiga ko’ra, lokal yoki global usullarida amalga oshirilishi mumkin. Bunda:
- lokal boshqaruv usulida boshqaruv faqat ma’lum bir WiFi-tarmoq doirasida (ichki tarmoqda) amalga oshiriladi. Bunda mikrokontroller ko’pincha veb-server rolini bajaradi. http-mijoz rolini esa, tarmoqdagi ixtiyoriy qurilma (kompyuter, smartfon, smart-TV) veb-brauzeri, mobil ilova yoki boshqa Arduino qurilmasi mikrokontrolleri bajarishi mumkin. Oxirgi holda 2-mikrokontroller http-mijoz rejimida ishga tushiriladi;
- global boshqaruv usulida boshqaruv ham WiFi-tarmoq doirasida, ham Internet orqali amalga oshirilishi mumkin. Bunda ham mikrokontroller veb-server yoki veb-mijoz rejimlarida ishtirok etishi mumkin.
Lekin, global boshqaruv usulida mikrokontrollerga Internet orqali bog’lanish uchun quyidagi shartlardan hech bo’lmaganda bittasi bajarilishi talab etiladi:
- Mikrokontroller veb-server sifatida va WiFi-stansiya rejimida marshrutizator orqali Internetga ulangan bo’lishi hamda marshrutizatorda kiruvchi ma’lumot paketlarini mikrokontrollerga yo’naltiruvchi (IP-manzil, port) sozlamalari o’rnatilgan bo’lishi kerak. Bu – eng qisqa va bepul usul, lekin bunda foydalanuvchidan marshrutizatorlarni sozlash bo’yicha yetarli tajriba talab etiladi. Bunday usul bilan tarmoq ichidagi faqat 1 ta mikrokontrollerni boshqarish mumkin;
- Mikrokontroller veb-mijoz sifatida va WiFi-stansiya rejimida marshrutizator orqali Internetga ulangan bo’llishi hamda shaxsiy veb-sayt mavjud bo’lishi kerak. Buning uchun veb-hosting pulli xizmatidan foydalanish zarur, uni hosting-provayderlardan ijaraga olish mumkin. Shundan keyin veb-sayt/veb-server dasturiy ta’minoti PHP-fayl (skript)lar, MySQL ma’lumotlar bazasi yordamida yaratiladi va ularni o’zida saqlovchi texnik server vazifasini hosting provayderning virtual yoki jismoniy serveri bajaradi. Veb-serverga http-mijoz sifatida mikrokontrollerdan yuboriladigan http-so’rovlar “POST” metodi yordamida bajariladi (yuqoridagi WiFi orqali http/websockets protokollari yordamida boshqaruvga doir misollarda “GET” metodidan foydalanilgan edi). Bunday usul bilan tegishli dasturiy yechimlar yordamida texnik serverga bog’langan xohlagancha sondagi mikrokontrollerlarni boshqarish mumkin, barcha ma’lumotlar esa bazada saqlanib qoladi. Ma’lumotlar bazasi vazifasini matnli fayl ham bajarishi mumkin. Quyiroqdagi navbatdagi misolda ushbu variantni ko’rib chiqamiz;
- Mikrokontroller AP (kirish nuqtasi) rejimida ishga tushirilgan va unda yaratilgan veb-server (uning IP-manzili) tashqi tarmoqqa tegishli bo’lishi kerak. Ya’ni, mikrokontroller kirish nuqtasi uchun tashqi “oq” IP-manzil va yanada qulaylik uchun domen nomi ham sotib olinishi kerak. Ularni xizmat ko’rsatayotgan Internet provayder va registratorlardan sotib olish mumkin. Bunday usul asosan yirik loyihalar, ko’p sondagi boshqarish qurilmalarini umumlashgan holda boshqarish kabi holatlar uchun tavsiya etiladi;
- Mikrokontroller AP (kirish nuqtasi) rejimida ishga tushirilgan, lekin tashqi tarmoqqa tegishli “oq” IP-manzil olishning imkoni bo’lmasa, maxsus onlayn servislar (bulutli texnologiyalar) xizmatlaridan foydalanilishi zarur. Bunda foydalanuvchidan qo’shimcha ravishda tegishli onlayn servis xizmatlaridan foydalana olish ko’nikmalari talab etiladi, ayrim servislar to’liq yoki qisman pulli hisoblanadi. Hozirgi paytda Internet orqali boshqariladigan ko’plab aqlli qurilmalarni ishlab chiqaruvchi yetakchi kompaniyalarning aksariyati ham o’zlarining mustaqil veb-serverlariga (onlayn servislariga) ega. Masalan, Tuya Smart (Smart Life), Yandex Alice va hokazo. Saytimizda Internet orqali onlayn servislardan yana biri – Telegram API servisi (“API – Application Programming Interface”, ilovadagi dasturlash interfeysi) yordamida qurilmani Telegram boti orqali boshqarish bo’yicha ma’lumotlar alohida darsda keltirilgan. Kelgusida API servislari yordamida Internet orqali boshqarishning boshqa ayrim variantlari bilan ham tanishamiz.
WiFi tarmoqlar bilan ishlashda ularni izlash, ularning xusisiyatlarini ko’rish, tarmoq Internetga ulangan yoki ulanmaganligini tekshirish uchun maxsus utilitalar – Arduino IDE ning tayyor namunaviy sketchlaridan foydalanish mumkin. Bu haqda ushbu darsda ma’lumotlar berilgan.
HTTP protokoli yordamida boshqaruv
Ushbu usulda yarat.uz saytida (texnik server)da http://iot.yarat.uz/misol/sensor.php fayli yordamida hosil qilingan veb-sahifaga http-mijoz sifatida mikrokontrollerdan datchik ko’rsatkichlarini va mikrokontroller ichki svetodiodini boshqarish buyruqlarini yuborish “POST” metodi yordamida bajariladi. Yuborilgan http-so’rovlar mazkur fayldagi maxsus php-skript yordamida qayta ishlanadi, qabul qilingan ko’rsatkichlar alohida matn fayllariga saqlanadi va hisobot sifatida mijozga ham qaytariladi. Bunda http-mijoz rolini ixtiyoriy veb-brauzer ham bajarishi mumkin, lekin natija ham faqat brauzerga qaytariladi. Bundan tashqari, brauzerdan yuborilgan boshqaruv buyruqlaridan iborat http-so’rovlar natijasi parallel ravishda mikrokontrollerga ham yuboriladi. Mikrokontrollerga qaytarilgan hisobot va boshqaruv buyruqlari port monitorida ham ko’rinadi. Ushbu vazifalarni alohida 2 ta misollar yordamida bajaramiz.
Internetdagi serverga datchik ko’rsatkichlarini yuborishni 6-sketch, mikrokontroller ichki svetodiodini boshqarish buyruqlarini 7-sketch misolida ko’rib chiqamiz.
6-sketch (datchik ko’rsatkichlarini Internetdagi serverga yuborish dasturi):
Natija:
7-sketch (Mikrokontroller ichki svetodiodini Internetdagi server orqali boshqarish dasturi):
Dastur ishga tushganidan keyin, brauzer yordamida mikrokontroller svetodiodini yoqish uchun “iot.yarat.uz/misol/led.php?a=1” so’rovi, o’chirish uchun esa, “iot.yarat.uz/misol/led.php?a=0” so’rovi yuborilishi zarur (faqat so’rov oxiridagi raqam o’zgaradi).
Boshqaruvni osonlashtirish uchun, aynan shu http-so’rovlarni serverga yuboruvchi mobil ilovani yaratish maqsadga muvofiq. Chunki, bunda boshqaruv uchun tayyor (masalan, “ON” va “OFF”) tugmalarni bosish yetarli bo’ladi. Misol tarzida, bunday ilovaning Mit App Inventor platformasidagi tashqi ko’rinishi va blokli kodi, shuningdek ilova yordamida boshqaruv jarayoni quyida keltirilgan.
Ilovaning tashqi ko’rinishi:

Ilovaning blokli kodi:

Ilova yordamida svetodiodni boshqarish jarayoni:
Onlayn resurslar orqali hudud ob-havosini kuzatish.
Navbatdagi misol (8-sketch)da ESP8266 mikrokontrolleridan HTTP-so’rov yuborish orqali ma’lum bir hudud (shahar, tuman va hokazo) uchun onlayn servisdan ob-havo ma’lumotlarini olishni ko’rib chiqamiz. Kelgusida, ushbu koddan aqlli uy loyihasida ham foydalanilishi mumkin. Misol sifatida ob-havo ma’lumotlarini tarqatuvchi “OpenWeatherMap” bepul onlayn resursidan olamiz (buning uchun saytda akkaunt ochib, API-kalit olish talab etiladi. Kalitni sketchdagi alohida belgilangan matn o’rniga kiritish zarur). Resursning API interfeysi yordamida olingan JSON formatidagi ushbu ma’lumotlarni maxsus biblioteka yordamida matn holatiga keltiramiz va port monitoriga chiqaramiz. Sketchdagi izoh holatiga o’tkazilgan qatorlarni faollashtiribsh orqali OpenWeaterMap o’rniga Narodmon servisidagi datchik ko’rsatkichlarini ham olish mumkin.
8-sketch (OpenWeatherMap servisi orqali ob-havo ma’lumotini olish):
Natija:
Onlayn resurslarga hudud ob-havosini yuborish, ular orqali masofadan boshqarish.
Ushbu misolda “Народный мониторинг” resursiga Arduino qurilmasi termodatchigi ko’rsatkichlari hamda rozetka (ichki svetodiod) holatini joylashtirish jarayonlarini ko’rib chiqamiz. Bundan tashqari, ushbu resursning saytidan svetodiodni boshqaruv buyrug’ini yuboramiz.
Resursdan foydalanish yoki unga datchik ko’rsatkichlarini yuborish uchun akkaunt (profil) ochish, yangi ilova (“Приложение”) yaratish va token olish zarur bo’ladi. Bu ma’lumotlarni keyinchalik “Профил” menyusi orqali ko’rish va o’zgartirish ham mumkin. Resursdan bepul foydalanilganda, bir qator cheklovlar o’rnatiladi. Masalan, datchik ko’rsatkichlari ba boshqaruv buyruqlarini yuborish intervali kamida 5 daqiqa bo’lishi kerak. Jumladan, saytdan yuboriladigan boshqaruv buyrug’i ham shuncha vaqtdan keyin amalga oshiriladi.
Datchik ko’rsatkichlari saytda dastlab faqat foydalanuvchining o’zi uchun ko’rinadi. Uni hamma uchun ko’rinadigan holatga o’tkazish uchun qurilma va datchik ko’rsatkichlari bir qator talablarga javob berishi kerak.
Kerakli jihozlar:
1) Wemos D1 mini platasi + USB-kabel + o’tkazgichlar to’plami;
2) Tugma – 1 ta;
3) DS18B20 termodatchigi – 2 ta;
4) Rezistor 4,7 kOm – 1 ta.
Sxema:

Sketch:
Natija:
Dastur ishga tushirilganida, qurilmaning port monitorida MAC-manzili ko’rsatiladi. “Народный мониторинг” saytida qurilmani ro’yxatga olishda aynan shu MAC-manzilni ko’rsatish talab etiladi.

Saytdagi sozlamalar hammasi to’g’ri bajarilgan bo’lsa, xaritada “Fergana” qurilmasi ko’rinishi kerak. Sichqoncha yordamida uni tanlansa, u haqidagi asosiy ma’lumotlar ko’rsatiladi: uning egasi (“Владелец”), qurilmaning identifikatsiya kodi (“D1951”), nomi (“Fergana”), datchiklar nomlari (“Термометр №1”, “Термометр №2”) va ko’rsatkichlari, boshqariladigan qurilma nomi (“Розетка”) va holati (“ON” yoki “OFF”), ma’lumot oxirgi yangilangan vaqti va boshqa qo’shimcha ma’lumotlar. Bundan tashqari, har bir datchik ham o’z identifikatsiya kodiga (S42321, S42322, S49032) ega bo’ladi. Dasturlash jarayonida ushbu kodlardan foydalanilishi mumkin.

Agar sayt orqali qurilmaga xabar yoki boshqaruv buyrug’ini yuborish zarurati tug’ilsa, buni “Датчики” menyusidagi “Настройка датчиков и триггеров” buyrug’i yordamida bajarish mumkin. Shuningdek, shu oynadagi “ТИП ДАННЫХ” bo’limida har bir datchik turini aniq ko’rsatib qo’yish mumkin (saytda datchiklar turi avtomatik ravishda o’rnatiladi, ba’zi datchiklar turi notog’ri o’rnatilgan bo’lishi ham mumkin). Masalan, datchikni viklyuchatel (rozetka) holatiga o’tkazish uchun uning turini “Логический”ga o’zgartirib qo’yish zarur. Shundan keyin saytdagi datchik ma’lumotlarida uning holati “ON” (R1=1 bo’lganda) yoki “OFF” (R1=0 bo’lganda) yozuvlari bilan ko’rsatila boshlaydi.
Ochilgan oynadagi “ПОКАЗАНИЯ” bo’limidan tegishli pereklyuchatel bosilsa, oynaning chap quyi qismida boshqaruv kodi (masalan, “R1=1” yoki “R1=0”) ko’rsatiladi. Boshqaruv buyrug’i qurilmaga datchik ko’rsatkichlari olingandan keyin, “OK” yozuvi o’rniga yuboriladi.

Buyruq yuborilgan paytda bu haqda eslatma ko’rsatiladi. Eslatma faqat saytda, elektron pochta, SMS va boshqa vositalar yordamida yetkazilishi mumkin.

Mustahkamlash uchun topshiriqlar