20.04.2026

IoT va bog’lanish protokollari [18+]

IoT – “Buyumlar Interneti” tushunchasi

Oxirgi yillarda datchiklar ko’rsatkichlarini masofadan olish va umuman, elektron qurilmalar o’rtasida o’zaro ma’lumot almashuv shu darajada ommalashib ketdiki, bu jarayon “Buyumlar Interneti” (IoT“the Internet of Things”) degan yangi tushuncha paydo bo’lishiga ham sabab bo’ldi.

Buyumlar Interneti – bir-biriga va boshqa xizmatlarga Internet yoki boshqa tarmoq orqali bog’langan hamda ular bilan ma’lumot almashinuvchi jismoniy qurilmalarning tarmog’i hisoblanadi. Yana ham qisqaroq qilib aytganda, Buyumlar Interneti – aqlli buyumlarning alohida tarmog’i deyish mumkin. Buyumlar Interneti qurilmalarini yaratishda va ular bilan ishlashda mavjud aloqa kanallarining aksariyatidan (Bluetooth, ZigBee, WiFi, RF433/RF315, GSM, nRF24L01, LoRa) keng foydalaniladi.

Hozirda buyumlar internetiga ulangan qurilmalar soni 1 milliarddan oshib ketgan va yana oshishda davom etmoqda. Chunki, datchik va dasturiy ta’minot bilan ta’minlash mumkin bo’lgan har qanday elektron qurilmani Internet orqali o’zaro bog’lash imkoniyati mavjud. Buning uchun esa, bulutli xizmatlarning alohida yo’nalishlari ham paydo bo’lgan bo’lib, ular Internet orqali shunday aqlli qurilmalarni o’zaro bog’lashga xizmat qiladi. Aqlli qurilma loyihalarini amalga oshirish jarayonida ham shunday servislarning hozirda eng ommalashgan vakillari bilan tanishib chiqamiz.

IOT SERVISLARI

Google Firebase servisi

Google Firebase – bu Google kompaniyasining Android ilovalari, veb-xizmatlar, sensorlar va boshqalar tomonidan hosil qilingan har qanday ma’lumotlarni yaratish, boshqarish va o’zgartirish uchun mo’ljallangan ma’lumotlar bazasi platformasi. Manzili: firebase.google.com. Ushbu servis yordamida Arduino qurilmasiga ulangan yuklamalarni Internet orqali boshqarish yoki turli datchiklar ko’rsatkichlarini kuzatishimiz mumkin. Buning uchun, foydalanuvchi o’zining Googledagi akkauntidan foydalanishi mumkin.

Veb-brauzer orqali serverga o’tgach, foydalanuvchi yangi loyiha yaratishi, unining ichida esa alohida ma’lumotlar bazasi (“Realtime Database”) ni hosil qilishi zarur. Shundan keyin ularning ma’lumotlari (baza manzili va ro’yxatdan o’tish parametrlari) Arduino sketchiga bog’lanadigan maxsus biblioteka parametrlari yordamida ko’rsatib qo’yiladi.

Firebase yordamida Arduino qurilmalarini yaratishga oddiy misolni alohida amaliy darsda ko’rib chiqamiz.

ThingSpeak servisi

Thingspeak – o’z serverida asosan datchiklar ko’rsatkichlari va qurilma yuklamalari holatini saqlab borish, shuningdek ularni integrallashgan MathLab servisi yordamida grafiklar ko’rinishida vizuallashtirishga ixtisoslashgan onlayn servis. Oxirgi vizuallashtirish xususiyatini hisobga olmaganda, TeamSpeakning vazifasi ham yuqoridagi Google FireBase servisinikiga o’xshab ketadi.

Foydalanuvchining TeamSpeakdagi akkauntiga saqlangan ma’lumotlar faqat shaxsiy (private) yoki umumiy (public) kuzatish maqsadlarida foydalanishi mumkin. Bepul akkauntga ma’lumotlarni saqlash vaqtiga cheklov o’rnatilgan va u 15 sekunddan kam bo’lmasligi kerak. Lekin datchik ko’rsatkichlarini kuzatib borish uchun ko’pincha shu vaqt ham yetarli bo’ladi.

Yuqoridagilardan tashqari, servis yordamida Arduino qurilmasiga ulangan yuklamalarni boshqarish ham mumkin, lekin bunda boshqaruv buyruqlarinining natijasini bilish uchun kamida 15 sekundgacha vaqt ketishi mumkinligini unutmaslik kerak.

Amaliy mashg’ulotda Arduino platasi svetodiodini ThingSpeak servisi orqali boshqarish, shuningdek, plataga ulangan datchik ko’rsatkichlarini olish uchun misollarni ko’rib chiqamiz. Bunda, ThingSpeak serveriga boshqaruv buyrug’ini yuborish va Arduino qurilasiga ulangan datchik ko’rsatkichlarini kuzatish mobil ilova yordamida, datchik ko’rsatkichlarni yuborish esa, Arduino qurilmasi tomonidan amalga oshiriladi. Shuningdek, serverda saqlangan datchik ko’rsatkichlarini bevosita veb-brauzer yordamida grafik ko’rinishida ham kuzatish mumkin.

TeamSpeak akkaunti va kanalini yaratish. Dastlab ThingSpeak saytida bepul akkaunt ochib olishimiz kerak bo’ladi. Buning uchun bosh sahifada “Get Started for Free” tugmasini bosamiz va “Email” matn maydoni ostidagi “Create one!” tugmasini bosamiz. Tegishli maydonlarni to’ldirib, yangi akkaunt hosil qilamiz va unga kiramiz (ko’rsatiladigan email manziliga yuborilgan xabardagi havola yordamida akkauntni faollashtirish zarur bo’ladi). Akkauntdan foydalanish maqsadida (ThingSpeak Usage Intent) “Personal, non-commercial projects” rejimini tanlash mumkin.

Navbatdagi “MyCannels” sahifasida “NewChannel” tugmasini bosamiz. Ochilgan sahifadagi “Name” (kanal nomi), zaruratga qarab navbatdagi “Field 1”, “Field 2”, … “Field 8” maydonlarini to’ldiramiz va “Save Channel” tugmasini bosamiz (qolgan maydonlarni to’ldirish majburiy emas).

Keyingi sahifada yaratilgan kanalimiz haqidagi ma’lumotlar ko’rinadi. Shulardan biz kanal ID raqami (“Channel ID:”), “API Keys” bo’limidagi serverga ma’lumot yuborish uchun (“Write API Key”), serverdagi ma’lumotni o’qish uchun (“Read API keys”) kalitlarini Arduino loyihalarimizda qo’llashimiz mumkin. MaKanaldagi ma’lumotlarni boshqalar bilan ham ulashish rejalashtirilgan taqdirda, “public” rejimi faollashtiriladi va bunda API kalitlardan foydalanish talab etilmaydi.

Arduino qurilmasi ishga tushirilganidan so’ng, qurilmadan yuborilgan dathik ko’rsatkichlarini “Private View” (faqat kanal egasi) yoki “Public View” (kanal egasi va boshqa shaxslar) bo’limida kuzatish mumkin.

Biz amaliy mashg’ulotlarda “thingspeak-arduino” ichki bibliotekasidan foydalanamiz (bibliotekani sketchga ulash uchun “ThingSpeak.h” fayli nomi ko’rsatiladi). Bunda ThingSpeak serverida yaratilgan kanalimizdagi maydonlar ma’lumotlarini xavfsiz o’qish uchun “ReadMultipleSecure” namunaviy sketchidan, ma’lumotlarni serverga xavfsiz yozish uchun esa, “WriteMultipleFields” namunaviy sketchidan foydalanish mumkin. Lekin biz ularni umumlashtiruvchi, ma’lumotlarni serverga ham yozish, ham o’qishga mo’ljallangan yagona sketchdan foydalanamiz.

RemoteXY servisi

RemoteXY bu smartfon yoki planshetdan kontrollerlarni boshqarish uchun mobil grafik interfeyslarni yaratish va ulardan foydalanish tizimi (IoT servisi) hisoblanadi.

Tizim tarkibiga quyidagilar kiradi:
remotexy.com saytida joylashtirilgan, kontrollerlar uchun mobil foydalanyvchi grafik interfeysi muharriri;
Kontrollerga ulanish va grafik interfeyslarni ko’rsatish imkonini beruvchi RemoteXY mobil ilovasi. Ilovani Google Playdan, kerakli bibliotekani GitHubdan yuklab olish zarur bo’ladi.

O’ziga xos xususiyatlari:
– foydalanuvchi grafik interfeysi konfiguratsiyasi kontrollerda saqlanadi. Ulangan holatda, grafik interfeysni yuklab olish uchun uchinchi tomon serverlari bilan o’zaro aloqa mavjud bo’lmaydi. Grafik interfeys konfiguratsiyasi mobil ilovaga mikrokontrollerdan yuklanadi.
– bitta mobil ilovadan ko’plab qurilmalarni boshqarishingiz mumkin. Bunda qurilmalar soni cheklanmagan.

Mikrokontroller va mobil qurilma o’rtasida quyidagi aloqa usullari qo’llab-quvvatlanadi:
– Internet – bulutli server orqali istalgan joydan.
– WiFi – Mijoz va kirish nuqtasi rejimida;
– Bluetooth;
– Ethernet interfeysi – IPmanzil yoki URL orqali;
– USB OTG (faqat USB OTG rejimidagi Android qurilmasi uchun, maxsus USB-kabel orqali).

Interfeys kodi generatori quyidagi kontrollerlarni qo’llab-quvvatlaydi:
– Arduino UNO, Mega, Leonardo, Pro Mini, Nano, Micro va AVR-ga mos keladigan kontrollerlar (tashqi aloqa moduli bilan birga qo’llaniladi);
– ESP8266 oilasi kontrollerlar;
– ESP32 oilasi kontrollerlari;
– STM32F1 oilasi kontrollerlari.

Quyidagi aloqa modullari qo’llab-quvvatlanadi:
– Bluetooth hc05, HC06 va shunga o’xshash;
Bluetooth ble HM 10 va shunga o’xshash;
– ESP8266 mikrokontrollerlari (ESP01, ESP12, …);
Ethernet W5100.

Servisda yaratiladigan akkauntning bepul varianti quyidagi cheklovlarga ega bo’ladi:
– Ilova barcha grafik interfeyslar bilan ishlaydi. Har bir loyiha uchun dasturni qayta o’rnatish talab qilinmaydi.
– Foydalanuvchi grafik interfeysida faqat 5 tagacha elementdan bepul va cheklovsiz foydalanishingiz mumkin.
Agar interfeysda 5 tadan ortiq element mavjud bo’lsa, interfeysni sinab ko’rish uchun ochishga faqat 20 sekund vaqt beriladi.
– Elementlar soni cheklanmagan interfeysdan foydalanish uchun pulli Pro litsenziyani sotib olish zarur bo’ladi.
Pro litsenziyasi (Google Play, Play Store) ilovalar do’koniga bog’langan alohida hisob uchun sotib olinadi. Litsenziya bir xil hisob qaydnomasiga ega bo’lgan har qanday qurilmada faollashtirilishi mumkin. Biroq litsenziyani turli do’konlardan ilovalar o’rtasida o’tkazib bo’lmaydi.
– RemoteXY dan foydalanuvchi o’zining tijorat loyihalari uchun foydalanishi mumkin. Biroq bunda foydalanuvchining har bir mijozi ushbu ilova uchun PRO litsenziyasini sotib olishlariga to’g’ri keladi.

Arduino IDE da foydalanish uchun kerakli dastlabki uskunalarni (xizmatchi funksiyalar, o’zgaruvchilar va ularning qiymatlari, bog’lanishga taalluqli sozlamalar va hokazolarni) RemoteXY servisining onlayn akkauntida hosil qilinadi. Buning uchun “Рудактор” bo’limida boshqaruv uskunalari, jihozlash elementlari, foydalanuvchi interfeysi hosil qilinadi

RemoteXY servisi orqali ESP8266 ichki svetodiodini boshqarish va analog datchik ko’rsatkichlarini kuzatishni alohida amaliy mashg’ulot davomida batafsil ko’rib chiqamiz.

Blynk servisi

Blynk Arduinoni qo’llab-quvvatlovchi plata va modullarini Internet orqali boshqarish uchun iOS va Android dasturlariga ega bo’lgan platforma. Uning boshqa IoT servislaridan asosiy farqi shuki, u turli plata va modullar asosida yaratilgan qurilmalarni yagona mobil ilovadan boshqarishga mo’ljallangan. Yana bir muhim farqi esa, Blynk servisining asosiy vazifasi – virtual bog’lanish interfeysi (virtual pinlar) yordamida ma’lumotlar paketlarini qulay usulda Arduino qurilmasiga yuborish va undan o’qish hisoblanadi. Uning yana bir muhim yutug’i – boshqaruv deyarli real vaqtda amalga oshiriladi. Bu esa, nafaqat lampalar, viklyuchatellar, rozetkalar, datchiklar bilan ishlash uchun, balki PWM-regulirovka talab qilinadigan qurilmalarni (motorlar, rangi yoki yorug’ligi darajasi boshqariladigan lampalar va hokazolarni) boshqarishda ham qo’llash imkonini beradi.

Ilovada qurilmani qulay boshqarish uchun maxsus virtual pinlar va vidjetlardan foydalaniladi. Arduino qurilmasining har bir analog yoki raqamli pini uchun alohida virtual pin yaratib olinishi tavsiya etiladi. Shuningdek, Arduino qurilmasiga ulangan har bir datchik yoki yuklamalari uchun alohida vidjetlarni loyihaga foydalanuvchi o’zi mustaqil qo’shib olishi mumkin.

Blynk platformasi 3 ta asosiy qismlardan tashkil topgan: yagona mobil ilova, yagona server, Arduino IDE uchun turli mikrokontrollerlarga mo’ljallangan bibliotekalar. Bilioteka Arduino ichki bibliotekalari ro’yxatiga ham kiritilgan.

Mobil ilovada foydalanuvchi komponentlari 3 ta: shablonlar (“Template”) va ularga mos vidjet turlari (“Header Widget Box”), har bir shablon uchun elektron komponentlar (“Widget Box”) va ularga mos vidjet turlari, ma’lumot oqimlari (“Datastreams”) va ularga mos virtual pinlarga bo’linadi.

Servisdan bepul va pulli tariflarda foydalanish mumkin, uning aksariyat komponentlari faqat pulli tariflarda faollashadi. Bepul tarifda, foydalanish mumkin bo’lgan vidjet shablonlari (3 tagacha) va ularga mos vidjet turlari (9 tadan 2 ta), har bir shablon uchun elektron komponentlar (49 tadan 8 tasi) va ularga mos vidjet turlari, ma’lumot oqimlari (“Datastreams” – 256 tadan 5 ta) va ularga mos virtual pinlar soni cheklangan. Biroq, Arduino uchun kichik IoT qurilmalarini yaratish uchun ko’pincha uning bepul varianti ham kifoya qiladi.

Blynk bilan ishlash uchun blynk.io serverida (yoki boshqa shaxsiy bepul serverida) akkaunt yaratilgan bo’lishi kerak. Buning uchun elektron pochta manzili va parol yetarli bo’ladi (RU domenidagi elektron pochta manzili uchun akkaunt ochib bo’lmasligi mumkin).

Kompyuterda yoki smartfon brauzerida yuqoridagi saytga o’tib, bosh sahifaning o’ng yuqori tomonidagi “Sign Up” tugmasini bosib, ochilgan yangi sahifada “EMAIL” maydoniga elektron pochta manzilimizni kiritamiz va quyiroqdagi kalitni ulab, “Sign Up” tugmasini bosamiz. Blynk saytidan ko’rsatilgan manzilga yangi parol yaratish va akkauntni faollashtirish uchun instruksiyani o’z ichiga olgan xat yuboriladi. Instruksiya talablari to’g’ri bajarilgach yangi akkaunt va foydalanuvchi veb-konsoli (kabineti) yaratiladi. Keyinchalik barcha sozlash ishlarini, xususan, mobil ilovada bajarib bo’lmaydigan ayrim sozlamalarni (ilova bu haqda eslatadi) shu veb-konsol orqali sozlash mumkin. Bundan tashqari, Arduino qurilmasini yaratish paytida yaratiladigan sketchlarda ko’rsatish talab etiladigan ayrim sozlamalar va kalitlarni (autentifikatsiya tokeni) ham veb-konsolidan olish mumkin.

Smartfonga Blynk mobil ilovasi yuklab olinadi va yuqoridagi ma’lumotlar asosida akkauntga kiriladi (“Log In” tugmasi). Ilova oynasida ro’yxat paydo bo’ladi (agar ilovada ilgari qurilma yaratilgan bo’lsa, ro’yxatni ko’rish uchun o’ng yuqori tomondagi “+” tugmachasini bosish mumkin). Ro’yxatdan “Quickstart device” rejimini tanlaymiz. “HARDWARE” ro’yxatidan qurilmamizda qo’llanilgan mikrokontroller turini (masalan, ESP8266) va Internetga bog’lanish uculini (masalan, “Wi-Fi”) tanlaymiz va “Continue” tugmasini bosamiz. “Quickstart Template” nomli yangi shablon yaratiladi.

Blynk servisi orqali svetodiodni boshqarish va analog datchik ko’rsatkichlarini kuzatishni amaliy mashg’ulot davomida batafsil ko’rib chiqiladi.

“Народный мониторинг” servisi

Narodmon (“Народный мониторинг”) – Arduino yoki boshqa platformalarda yaratilgan loyihalar asosida turli datchiklar ko’rsatkichlari, rozetkalar holati, raqamli kameralar tasvirlari va boshqa qo’lbola qurilmalar ma’lumotlarini to’plash, saqlash, qayta ishlash va onlayn xarita orqali ko’rsatish uchun mo’ljallangan Rossiya IoT servisi. Shuningdek, rozetka, viklyuchatel kabi qurilmalarni saytdan yuboriladigan buyruq yordamida ham boshqarish mumkin. Bundan tashqari ushbu servis Yandex Alice (“Умный дом с Алисой”) onlayn servisi bilan ham integratsiyalashgan, shuning uchun datchiklar ko’rsatkichlarini Yandex Alice servisi orqali ham kuzatish yoki qurilmalarni boshqarishda foydalanish mumkin. Narodmon servisining to’liq funksiyalari bilan yaqindan tanishish uchun ushbu havoladan foydalanish tavsiya etiladi.

OpenWeatherMap servisi

OpenWeatherMap – dunyo miqyosida ob-havo ma’lumotlarini to’plash va ularni turli xil usullarda tarqatishga ixtisoslashgan Internet-servis. Undan Arduino platformasida yaratilgan loyihalarda ham keng foydalanilishi mumkin. OpenWeatherMap hamda yuqoridagi Narodmon servislari yordamida ob-havo ma’lumotlarini olish jarayonlari amaliy dars davomidagi misollarda alohida keltirilgan.

Internet tarmog’ida yuqoridagilardan tashqari yana ko’plab IoT-servislari hamda ulardan foydalanish bo’yicha ma’lumotlarni izlab topish, mikrokontrollerlardan ularning API-interfeyslariga bog’lanish mumkin.

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