Wemos D1 mini platasi ichki svetodiodini hamda plataga ulangan DHT11 termodatchigi ko’rsatkichlarini Google Firebase servisining “Realtime Database” funksiyasi yordamida kuzatish va boshqarish jarayonini misol yordamida ko’rib chiqamiz. Bunda, Wemos D1 mini platasi svetodiodini holati va unga ulangan termodatchik ma’lumotlari platadan ma’lum davriylikda Firebase ma’lumotlar bazasiga yuborib turiladi. Yaratiladigan oddiy mobil ilovamiz yordamida esa, Firebase bazasidan olingan ma’lumotlar asosida svetodiodni o’chirib-yoqishimiz va termodatchik ko’rsatkichlarini, ya’ni hududdagi harorat va havo namligini kuzatishimiz mumkin bo’ladi. Firebase servisi haqida ma’lumotga ega bo’lish uchun alohida dars materialidan foydalanishingiz mumkin.
Dastlab, Firebaseda yangi loyiha va ma’lumotlar bazasini quyidagi tartibda yaratib olamiz:
1) Google FireBase konsoli sahifasiga o’tamiz va “+ Add project” tugmasini bosamiz.
2) Yangi loyiha nomini kiritamiz va “Continue” tugmasini bosamiz.
3) “Google Analytics” xizmatidan foydalanish taklifiga rad javobini berishimiz mumkin. Buning uchun “Enable Google Analytics for this project” kalitini uzib qo’yamiz.
4) “Create project” tugmasi bosilsa, bir necha sekundlardan keying yangi loyiha yaratilgani haqida xabar beriladi. “Continue” tugmasini bosib, yaratilgan loyiha asosiy oynasiga o’tamiz.
5) Oynaning chap tomonidan “Build” ro’yxatini ochamiz va u yerdan “Realtime Database” elementini tanlaymiz.
6) Hosil bo’lgan oynada “Create Database” ko’rinadi, uni bosib, bazaning serveri joylashlangan mamlakatni ko’rsatamiz (farqi yo’q). Ekranda ko’ringan “Set up database” dialog oynasida “Start in test mode” rejimini (test rejimini) tanlaymiz va “Enable” tugmasini bosamiz.
Natijada quyidagi ko’rinishdagi “Realtime Database” sahifasi ochiladi, unda biz yaratgan baza manzili ko’rsatiladi. Kelgusida esa, bazaga saqlangan qiymatlar jonli rejimida ko’rsatib turilishi mumkin:

Oynada baza manzili, quyiroqda esa, uning ichidagi ma’lumotlar ko’rsatiladi. Zarurat bo’sa, bazadagi kerakli qiymatlarni tog’ridan to’g’ri veb-brauzerda o’zgartirish orqali ham, Arduino qurilmasini boshqarish mumkin bo’ladi (Masalan, LED maydoni ro’parasidagi qiymatni o’zgartirib, svetodiodni yoqib-o’chirish mumkin). Biroq, brauzer orqali boshqaruv nisbatan noqulayligi sababli, biz ularni ko’rsatuvchi va boshqaruvchi mobil ilovani yaratishimiz maqsadga muvofiq bo’ladi:

Ma’lumotlar bazasidan foydalanish xavfsizligini oshirish uchun, yana yuqoridagi oynaning chap tomonidan “Build” ro’yxatini ochib, u yerdan “Authentication” elementini tanlashimiz va kerakli autentifikatsiya usullarini faollashtirib olishimiz mumkin. O’z navbatida, kelgusida yaratiladigan sketchimizda ham tegishli funksiyalarni faollashtirishimiz zarur bo’ladi. O’rganishga qulaylik uchun biz hozircha bunday funksiyalardan foydalanmaymiz.
Bog’lanish sxemasi:

ESP8266 mikrokontrollerlari uchun Firebase mijozi (muallif: Mobizt) bibliotekasini o’rnatamiz:

Svetodiod holati va termodatchik ko’rsatkichlarini 2 xil usulda kuzatamiz: 1) bevosita – Google Firebase serverining “Realtime Database” sahifasi orqali, 2) bilvosita – mobil ilova orqali.
Realtime Database sahifasi orqali kuzatish va boshqaruv uchun, shunchaki Google Firebasedagi shaxsiy akkauntimizga kirishimiz va u yerdan tegishli “Realtime Database” veb-sahifasiga o’tishimiz yetarli.
Mobil ilova orqali kuzatish va boshqarish uchun esa, MIT APP Invertor blokli dasturlash vositasida oddiy mobil ilova yaratib olamiz. Uning tashqi ko’rinishi va blokli kodi quyidagicha bo’ladi:


Tayyor mobil ilovamiz faylini esa, quyidagi havola orqali yuklab olish mumkin: iot_firebase.
Namunaviy sketchni tuzishda Mobizt muallifligidagi ESP8266 platalari uchun (mijoz rejimi) bibliotekasidan foydalanamiz (original “TestMode” namunaviy sketchini Arduino IDE ning “Примеры/Firebase ESP8266 Client/Authentications” bo’limidan ochish mumkin). Sketch ma’lumotlar bazasidan test rejimida foydalanish uchun tuzilgan. Baza va umuman, Arduino qurilmasi bilan ishlash xavsizligini oshirish, undan begonalar foydalanishining oldini olish uchun bibliotekaning ko’plab qo’shimcha funksiyalaridan foydalanishga tog’ri kelishi mumkin. Buning uchun tabiiyki, tegishli bibliotekani yaqindan o’rganib chiqish zarur bo’ladi.
Diqqat! Sketchni va mobil ilovani ma’lumotlar bazasiga bog’lashda, ma’lumotlar bazasi unga yuboriladigan va undan qabul qilinadigan qiymatlar turlariga juda sezgirligini hisobga olish zarur. Ma’lumki, Arduinoda har qanday sonli qiymatni osonlikcha Int qiymat turiga o’tkazib olish mumkin. Ba’zida hatto Arduinoning o’zi sukunat bo’yicha sonli qiymatlarni shunday turga mansub deb qarayveradi. Lekin, ma’lumotni Firebase ma’lumotlar bazasiga yuborishda yoki undagi ma’lumotni o’qishda qiymat turi aniq ko’rsatib qo’yilmasa, sketchni hamda mobil ilovani yaratishda turli xatoliklarga duch kelish mumkin! Ya’ni, baza bilan ishlashda xatolik yozaga kelsa, ko’pincha uning yechimi qiymat turini notog’ri ko’rsatish bilan bog’liq bo’ladi.
Sketch:
Yuqorida aytib o’tilganidek, natijani 2 xil usulda kuzatishimiz va boshqarishimiz mumkin:
1) Bevosita “Realtime Database” sahifasi orqali:
2) O’zimiz yaratgan oddiy mobil ilova orqali:
Mustahkamlash uchun topshiriqlar:
1) Yuqoridagi sketchni bir nechta datchiklar ma’lumotlarini olish uchun o’zgartiring;
(materialning ushbu qismi to’ldirish jarayonida)
2) Yuqoridagi sketchni bir nechta yuklamalarni (bir nechta kanalli relelarni) boshqarish uchun o’zgartiring;
(materialning ushbu qismi to’ldirish jarayonida)
3) Yuqoridagi sketchga turli displeylarini ulab, datchik ko’rsatkichlari va svetodiod holatini kuzatishga moslashtirin;
(materialning ushbu qismi to’ldirish jarayonida)
4) Yuqoridagi sketchni ESP oilasidagi boshqa (o’zingizda mavjud) platalar bilan ishlashga moslashtiring.
(materialning ushbu qismi to’ldirish jarayonida)
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).