MQQT protokoli orqali qurilmadan Wemos D1 mini platasiga ulangan analog datchik ma’lumotlarini olish uchun Arduinoning ichki “ArduinoMqttClient.h” bibliotekasi va Mosquitto brokeridan foydalanamiz. Biblioteka Arduino IDE ga o’rnatilganidan so’ng, “Примеры” menyusida “ArduinoMqttClient” bo’limi paydo bo’ladi. Biz ushbu bo’limdagi “WiFiSimpleSender” (nashrchi rolida), “WiFiSimpleReceiver” (obunachi rolida) hamda ularning umumlashgan ko’rinishi – “WiFiEcho” (ham nashrchi ham obunachi rolida) namunaviy sketchlarining o’zimizga moslashtirilgan ko’rinishlaridan foydalanamiz (barcha sketchlarda – Mosquitto serveri broker vazifasini bajaradi). Lekin, yuqoridagi sketchlarga kichik o’zgartirishlar kiritamiz: sketchdagi mikrokontrollerdan WiFi tarmoqqa ulanish qismini alohida funksiya tarzida ifodalangan, o’zimizga tanish bo’lgan ko’rinishga keltiramiz, shuningdek, yuboriladigan ma’lumot sifatida termistor ko’rsatkichlaridan foydalanamiz.
Yana bir (4-) misolda esa, Wemos D1 mini platasiga raqamli DHT11 termodatchigini ulaymiz va uning ko’rsatkichlarini brokerga yuboramiz, shuningdek, yuboriladigan xabar yordamida platadagi ichki svetodiodni boshqaramiz. Lekin biblioteka sifatida “knolleary” muallifligidagi universal bibliotekadan foydalanamiz. Har doimgidek, yangi tushunchalar izohlab boriladi.
1-misol. Wemos D1 mini platasiga ulangan NTC-termorezistor (termistor) ko’rsatkichini aniqlab, MQTT brokerga yuboramiz. Ya’ni, Arduino qurilmasi – nashrchi rolini bajaradi. Obunachi sifatida esa, “MQQT Dashboard client“ nomli tayyor mobil ilovadan foydalanamiz (shunga o’xshash boshqa ilovalardan ham foydalanish mumkin). Ilovani Google Play Marketdan yuklab olamiz va unga MQQT-broker sozlamalarini kiritamiz:

Kerakli materiallar:
1) Wemos D1 mini, maket platasi, USB-kabel, o’tkazgichlar;
2) termistor;
3) rezistor 10 kOm.
Sxema:

Natijani port monitori (yuborilayotgan xabarni ko’rish uchun) va “MQQT Dashboard client” nomli tayyor mobil ilovada kuzatamiz:
2-misol. MQTT nashrchidan broker orqali yuborilgan ma’lumotlarni Wemos D1 mini platasi orqali qabul qilib, portga chiqaramiz, shu bilan birga, qabul qilingan ma’lumotdagi buyruq kodi yordamida ichki svetodiodni boshqaramiz. Ya’ni, ushbu holda Arduino qurilmasi – obunachi rolini bajaradi. Boshqaruv buyruqlarini yana “MQQT Dashboard client” universal mobil ilovasi yordamida yuboramiz.
Kerakli materiallar:
1) Wemos D1 mini, maket platasi, USB-kabel.
Sketch:
Natija:
3-misol. Wemos D1 mini platasiga ulangan NTC-termorezistor (termistor) ko’rsatkichini aniqlab, MQTT brokerga yuboramiz. Shuningdek, MQTT nashrchidan broker orqali yuborilgan ma’lumotlarni plata orqali qabul qilib, portga chiqaramiz va qabul qilingan ma’lumotdagi buyruq kodi yordamida ichki svetodiodni boshqaramiz. Ya’ni, ushbu holda Arduino qurilmasi – ham nashrchi, ham obunachi rolini bajaradi. Natijalarni kuzatish uchun yana yuqoridagi universal mobil ilovadan (2-obunachi rolida) foydalanamiz.
Kerakli materiallar:
1) Wemos D1 mini, maket platasi, USB-kabel.
Sketch:
Natija:
Oxirgi sketch ishga tushirish natijasini kuzatganda, ba’zida platadagi ichki svetodiod o’zidan-o’zi ham o’chib-yonayotganini kuzatish mumkin. Bu – tabiiy hol, chunki “WifiEcho” sketchiga deyarli qo’shimcha kiritilmagan va qabul qilingan termistor ko’rsatkichlarida ham “0” va “1” raqamlari uchrashi mumkin hamda ular ham buyruq sifatida qabul qilinishi mumkin. Bunday holning oldini olish uchun sketchga, xabar matnini tahlil qilib, svetodiodni faqat maxsus buyruq kodi asosida boshqarishga mo’ljallangan tegishli qo’shimchalarni kiritish zarur bo’ladi.
4-misol. Wemos D1 mini platasi D2 piniga ulangan DHT11 datchigi ko’rsatkichlarini tayyor universal MQQT-ilova va o’zimiz yaratadigan oddiy mobil ilova orqali kuzatamiz, shuningdek, ilovalardan yuborilgan buyruq yordamida ichki svetodiodni boshqaramiz. Ya’ni, Arduino qurilmasi – ham nashrchi, ham obunachi rolini bajaradi.
O’zimiz Mit App Inventor vositasi yordamida yaratadigan mobil ilova tashqi ko’rinishi va blokli kodi quyidagicha bo’ladi (Mit App Inventorda MQQT-brokerlar bilan ishlash bo’yicha ichki vosita va bloklar mavjud bo’lmaganligi sababli, Internetdan “UrsPahoMqqtClient” nomli tashqi kengaytmani yuklab, qo’shib olamiz. Kengaytma dastur oynasining chap tomonidagi “Extension” bo’limiga qo’shiladi):


Kerakli materiallar:
1) Wemos D1 mini, maket platasi, USB-kabel, o’tkazgichlar;
2) DHT11 termodatchigi.
Sxema:

Sketch:
Natija:
1) Tayyor universal MQQT-ilova yordamida boshqarish (yuklab olish):
Mustahkamlash topshiriqlari:
1) Yuqoridagi 1-misol sketchiga termistor qiymatlari asosida haroratni aniqlash kodini qo’shing va mobil ilovada termistor qiymatlari bilan birga haroratni ham kuzating.
2) Yuqoridagi 2-misol sketchiga o’zgartirishlar kiritib, uni 4 ta raqamli pinni boshqarishga moslashtiring.
3) Yuqoridagi 3-misol sketchiga o’zgartirishlar kiritib, uni 1 ta analog, 1 ta raqamli termodatchik qiymatlarini yuborishga, shuningdek 2 ta raqamli pinni boshqarishga moslashtiring.
4) Yuqoridagi 4-sketchga o’zgartirishlar kiritib, uni 1 ta analog, 1 ta raqamli termodatchik qiymatlarini yuborishga va shuningdek 2 ta raqamli pinni boshqarishga moslashtiring. Shuningdek, natijalarni kuzatish uchun 4-misolda keltirilgan mobil ilovaga ham tegishli o’zgartirishlarni kiriting.
5) Yuqoridagi sketchdan 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).