{"id":2534,"date":"2024-04-14T15:12:37","date_gmt":"2024-04-14T10:12:37","guid":{"rendered":"https:\/\/yarat.uz\/?p=2534"},"modified":"2025-03-19T15:27:03","modified_gmt":"2025-03-19T10:27:03","slug":"firebase-yordamida-boshqarish-18","status":"publish","type":"post","link":"https:\/\/yarat.uz\/?p=2534","title":{"rendered":"Firebase servisi ishtirokida boshqaruv [18+]"},"content":{"rendered":"<p style=\"text-align: justify;\">Wemos D1 mini platasi ichki svetodiodini hamda plataga ulangan DHT11 termodatchigi ko&#8217;rsatkichlarini Google Firebase servisining &#8220;Realtime Database&#8221; funksiyasi yordamida kuzatish va boshqarish jarayonini misol yordamida ko&#8217;rib chiqamiz. Bunda, Wemos D1 mini platasi svetodiodini holati va unga ulangan termodatchik ma&#8217;lumotlari platadan ma&#8217;lum davriylikda Firebase ma&#8217;lumotlar bazasiga yuborib turiladi. Yaratiladigan oddiy mobil ilovamiz yordamida esa, Firebase bazasidan olingan ma&#8217;lumotlar asosida svetodiodni o&#8217;chirib-yoqishimiz va termodatchik ko&#8217;rsatkichlarini, ya&#8217;ni hududdagi harorat va havo namligini kuzatishimiz mumkin bo&#8217;ladi. Firebase servisi haqida ma&#8217;lumotga ega bo&#8217;lish uchun <a href=\"https:\/\/yarat.uz\/?p=2465\">alohida dars materialidan<\/a> foydalanishingiz mumkin.<\/p>\n<p style=\"text-align: justify;\">Dastlab, Firebaseda yangi loyiha va ma&#8217;lumotlar bazasini quyidagi tartibda yaratib olamiz:<\/p>\n<p style=\"text-align: justify;\">1) <a href=\"https:\/\/console.firebase.google.com\">Google FireBase konsoli sahifasiga<\/a> o&#8217;tamiz va &#8220;+ Add project&#8221; tugmasini bosamiz.<br \/>\n2) Yangi loyiha nomini kiritamiz va &#8220;Continue&#8221; tugmasini bosamiz.<br \/>\n3) &#8220;Google Analytics&#8221; xizmatidan foydalanish taklifiga rad javobini berishimiz mumkin. Buning uchun &#8220;<span class=\"analytics-page-toggle-title\">Enable Google Analytics for this project<\/span>&#8221; kalitini uzib qo&#8217;yamiz.<br \/>\n4) &#8220;Create project&#8221; tugmasi bosilsa, bir necha sekundlardan keying yangi loyiha yaratilgani haqida xabar beriladi. &#8220;Continue&#8221; tugmasini bosib, yaratilgan loyiha asosiy oynasiga o&#8217;tamiz.<br \/>\n5) Oynaning chap tomonidan &#8220;Build&#8221; ro&#8217;yxatini ochamiz va u yerdan &#8220;Realtime Database&#8221; elementini tanlaymiz.<br \/>\n6) Hosil bo&#8217;lgan oynada &#8220;Create Database&#8221; ko&#8217;rinadi, uni bosib, bazaning serveri joylashlangan mamlakatni ko&#8217;rsatamiz (farqi yo&#8217;q). Ekranda ko&#8217;ringan &#8220;Set up database&#8221; dialog oynasida &#8220;Start in test mode&#8221; rejimini (test rejimini) tanlaymiz va &#8220;Enable&#8221; tugmasini bosamiz.<\/p>\n<p style=\"text-align: justify;\">Natijada quyidagi ko&#8217;rinishdagi &#8220;Realtime Database&#8221; sahifasi ochiladi, unda biz yaratgan baza manzili ko&#8217;rsatiladi. Kelgusida esa, bazaga saqlangan qiymatlar jonli rejimida ko&#8217;rsatib turilishi mumkin:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2567 size-full\" src=\"https:\/\/yarat.uz\/wp-content\/uploads\/2024\/04\/firebase_server.jpg\" alt=\"\" width=\"1256\" height=\"598\" srcset=\"https:\/\/yarat.uz\/wp-content\/uploads\/2024\/04\/firebase_server.jpg 1256w, https:\/\/yarat.uz\/wp-content\/uploads\/2024\/04\/firebase_server-300x143.jpg 300w, https:\/\/yarat.uz\/wp-content\/uploads\/2024\/04\/firebase_server-1024x488.jpg 1024w, https:\/\/yarat.uz\/wp-content\/uploads\/2024\/04\/firebase_server-768x366.jpg 768w\" sizes=\"auto, (max-width: 1256px) 100vw, 1256px\" \/><\/p>\n<p style=\"text-align: justify;\">Oynada baza manzili, quyiroqda esa, uning ichidagi ma&#8217;lumotlar ko&#8217;rsatiladi. Zarurat bo&#8217;sa, bazadagi kerakli qiymatlarni tog&#8217;ridan to&#8217;g&#8217;ri veb-brauzerda o&#8217;zgartirish orqali ham, Arduino qurilmasini boshqarish mumkin bo&#8217;ladi (Masalan, LED maydoni ro&#8217;parasidagi qiymatni o&#8217;zgartirib, svetodiodni yoqib-o&#8217;chirish mumkin). Biroq, brauzer orqali boshqaruv nisbatan noqulayligi sababli, biz ularni ko&#8217;rsatuvchi va boshqaruvchi mobil ilovani yaratishimiz maqsadga muvofiq bo&#8217;ladi:<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2570 aligncenter\" src=\"https:\/\/yarat.uz\/wp-content\/uploads\/2024\/04\/iot_firebase2.jpg\" alt=\"\" width=\"720\" height=\"670\" srcset=\"https:\/\/yarat.uz\/wp-content\/uploads\/2024\/04\/iot_firebase2.jpg 720w, https:\/\/yarat.uz\/wp-content\/uploads\/2024\/04\/iot_firebase2-300x279.jpg 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/p>\n<p style=\"text-align: justify;\">Ma&#8217;lumotlar bazasidan foydalanish xavfsizligini oshirish uchun, yana yuqoridagi oynaning chap tomonidan &#8220;Build&#8221; ro&#8217;yxatini ochib, u yerdan &#8220;Authentication&#8221; elementini tanlashimiz va kerakli autentifikatsiya usullarini faollashtirib olishimiz mumkin. O&#8217;z navbatida, kelgusida yaratiladigan sketchimizda ham tegishli funksiyalarni faollashtirishimiz zarur bo&#8217;ladi. O&#8217;rganishga qulaylik uchun biz hozircha bunday funksiyalardan foydalanmaymiz.<\/p>\n<p>Bog&#8217;lanish sxemasi:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2290 aligncenter\" src=\"https:\/\/yarat.uz\/wp-content\/uploads\/2024\/03\/wemos_dht11_bb-e1711018992877.jpg\" alt=\"\" width=\"574\" height=\"675\" srcset=\"https:\/\/yarat.uz\/wp-content\/uploads\/2024\/03\/wemos_dht11_bb-e1711018992877.jpg 574w, https:\/\/yarat.uz\/wp-content\/uploads\/2024\/03\/wemos_dht11_bb-e1711018992877-255x300.jpg 255w\" sizes=\"auto, (max-width: 574px) 100vw, 574px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify;\">ESP8266 mikrokontrollerlari uchun Firebase mijozi (muallif: Mobizt) bibliotekasini o&#8217;rnatamiz:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2538\" src=\"https:\/\/yarat.uz\/wp-content\/uploads\/2024\/04\/firebase_esp8266_lib.jpg\" alt=\"\" width=\"786\" height=\"451\" srcset=\"https:\/\/yarat.uz\/wp-content\/uploads\/2024\/04\/firebase_esp8266_lib.jpg 786w, https:\/\/yarat.uz\/wp-content\/uploads\/2024\/04\/firebase_esp8266_lib-300x172.jpg 300w, https:\/\/yarat.uz\/wp-content\/uploads\/2024\/04\/firebase_esp8266_lib-768x441.jpg 768w\" sizes=\"auto, (max-width: 786px) 100vw, 786px\" \/><\/p>\n<p style=\"text-align: justify;\">Svetodiod holati va termodatchik ko&#8217;rsatkichlarini 2 xil usulda kuzatamiz: 1) bevosita &#8211; Google Firebase serverining &#8220;Realtime Database&#8221; sahifasi orqali, 2) bilvosita &#8211; mobil ilova orqali.<\/p>\n<p style=\"text-align: justify;\">Realtime Database sahifasi orqali kuzatish va boshqaruv uchun, shunchaki Google Firebasedagi shaxsiy akkauntimizga kirishimiz va u yerdan tegishli &#8220;Realtime Database&#8221; veb-sahifasiga o&#8217;tishimiz yetarli.<\/p>\n<p style=\"text-align: justify;\">Mobil ilova orqali kuzatish va boshqarish uchun esa, MIT APP Invertor blokli dasturlash vositasida oddiy mobil ilova yaratib olamiz. Uning tashqi ko&#8217;rinishi va blokli kodi quyidagicha bo&#8217;ladi:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2543 size-full\" src=\"https:\/\/yarat.uz\/wp-content\/uploads\/2024\/04\/mit_ai_firebase1.jpg\" alt=\"\" width=\"1274\" height=\"799\" srcset=\"https:\/\/yarat.uz\/wp-content\/uploads\/2024\/04\/mit_ai_firebase1.jpg 1274w, https:\/\/yarat.uz\/wp-content\/uploads\/2024\/04\/mit_ai_firebase1-300x188.jpg 300w, https:\/\/yarat.uz\/wp-content\/uploads\/2024\/04\/mit_ai_firebase1-1024x642.jpg 1024w, https:\/\/yarat.uz\/wp-content\/uploads\/2024\/04\/mit_ai_firebase1-768x482.jpg 768w\" sizes=\"auto, (max-width: 1274px) 100vw, 1274px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2544 size-full\" src=\"https:\/\/yarat.uz\/wp-content\/uploads\/2024\/04\/mit_ai_firebase2-e1713177100978.jpg\" alt=\"\" width=\"1257\" height=\"762\" srcset=\"https:\/\/yarat.uz\/wp-content\/uploads\/2024\/04\/mit_ai_firebase2-e1713177100978.jpg 1257w, https:\/\/yarat.uz\/wp-content\/uploads\/2024\/04\/mit_ai_firebase2-e1713177100978-300x182.jpg 300w, https:\/\/yarat.uz\/wp-content\/uploads\/2024\/04\/mit_ai_firebase2-e1713177100978-1024x621.jpg 1024w, https:\/\/yarat.uz\/wp-content\/uploads\/2024\/04\/mit_ai_firebase2-e1713177100978-768x466.jpg 768w\" sizes=\"auto, (max-width: 1257px) 100vw, 1257px\" \/><br \/>\nTayyor mobil ilovamiz faylini esa, quyidagi havola orqali yuklab olish mumkin: <a href=\"https:\/\/disk.yandex.uz\/d\/4NE2LqmVVriwcQ\">iot_firebase<\/a>.<\/p>\n<p style=\"text-align: justify;\">Namunaviy sketchni tuzishda <a href=\"https:\/\/disk.yandex.uz\/d\/iQgFoFpQNNZxQg\">Mobizt<\/a> muallifligidagi ESP8266 platalari uchun (mijoz rejimi) bibliotekasidan foydalanamiz (original &#8220;<strong>TestMode<\/strong>&#8221; namunaviy sketchini Arduino IDE ning &#8220;<strong>\u041f\u0440\u0438\u043c\u0435\u0440\u044b\/Firebase ESP8266 Client\/Authentications<\/strong>&#8221; bo&#8217;limidan ochish mumkin). Sketch ma&#8217;lumotlar bazasidan test rejimida foydalanish uchun tuzilgan. Baza va umuman, Arduino qurilmasi bilan ishlash xavsizligini oshirish, undan begonalar foydalanishining oldini olish uchun bibliotekaning ko&#8217;plab qo&#8217;shimcha funksiyalaridan foydalanishga tog&#8217;ri kelishi mumkin. Buning uchun tabiiyki, tegishli bibliotekani yaqindan o&#8217;rganib chiqish zarur bo&#8217;ladi.<\/p>\n<p style=\"text-align: justify;\">Diqqat! Sketchni va mobil ilovani ma&#8217;lumotlar bazasiga bog&#8217;lashda, ma&#8217;lumotlar bazasi unga yuboriladigan va undan qabul qilinadigan qiymatlar turlariga juda sezgirligini hisobga olish zarur. Ma&#8217;lumki, Arduinoda har qanday sonli qiymatni osonlikcha <em><strong>Int<\/strong><\/em> qiymat turiga o&#8217;tkazib olish mumkin. Ba&#8217;zida hatto Arduinoning o&#8217;zi sukunat bo&#8217;yicha sonli qiymatlarni shunday turga mansub deb qarayveradi. Lekin, ma&#8217;lumotni Firebase ma&#8217;lumotlar bazasiga yuborishda yoki undagi ma&#8217;lumotni o&#8217;qishda qiymat turi aniq ko&#8217;rsatib qo&#8217;yilmasa, sketchni hamda mobil ilovani yaratishda turli xatoliklarga duch kelish mumkin! Ya&#8217;ni, baza bilan ishlashda xatolik yozaga kelsa, ko&#8217;pincha uning yechimi qiymat turini notog&#8217;ri ko&#8217;rsatish bilan bog&#8217;liq bo&#8217;ladi.<\/p>\n<p><em>Sketch:<\/em><\/p>\n<pre><code><\/code><\/pre>\n<p>Yuqorida aytib o&#8217;tilganidek, natijani 2 xil usulda kuzatishimiz va boshqarishimiz mumkin:<\/p>\n<p>1) Bevosita &#8220;Realtime Database&#8221; sahifasi orqali:<\/p>\n<div class=\"su-youtube su-u-responsive-media-yes\"><iframe loading=\"lazy\" width=\"640\" height=\"480\" src=\"https:\/\/www.youtube.com\/embed\/EtU_RY_vplk?\" frameborder=\"0\" allowfullscreen allow=\"autoplay; encrypted-media; picture-in-picture\" title=\"Google Firebase\"><\/iframe><\/div>\n<p>2) O&#8217;zimiz yaratgan oddiy mobil ilova orqali:<\/p>\n<div class=\"su-youtube su-u-responsive-media-yes\"><iframe loading=\"lazy\" width=\"640\" height=\"480\" src=\"https:\/\/www.youtube.com\/embed\/QIkzRC168_0?\" frameborder=\"0\" allowfullscreen allow=\"autoplay; encrypted-media; picture-in-picture\" title=\"Google Firebase\"><\/iframe><\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: center;\"><em><strong>Mustahkamlash uchun topshiriqlar:<\/strong><\/em><\/p>\n<p style=\"text-align: justify;\"><em>1) Yuqoridagi sketchni bir nechta datchiklar ma&#8217;lumotlarini olish uchun o&#8217;zgartiring;<\/em><\/p>\n<p style=\"text-align: center;\"><strong><em>(materialning ushbu qismi to&#8217;ldirish jarayonida)<\/em><\/strong><\/p>\n<p style=\"text-align: justify;\"><em>2) <\/em><em>Yuqoridagi sketchni bir nechta yuklamalarni (bir nechta kanalli relelarni) boshqarish uchun o&#8217;zgartiring;<\/em><\/p>\n<p style=\"text-align: center;\"><strong><em>(materialning ushbu qismi to&#8217;ldirish jarayonida)<\/em><\/strong><\/p>\n<p style=\"text-align: justify;\"><em>3) Yuqoridagi sketchga turli displeylarini ulab, datchik ko&#8217;rsatkichlari va svetodiod holatini kuzatishga moslashtirin;<\/em><\/p>\n<p style=\"text-align: center;\"><strong><em>(materialning ushbu qismi to&#8217;ldirish jarayonida)<\/em><\/strong><\/p>\n<p style=\"text-align: justify;\"><em>4) Yuqoridagi sketchni ESP oilasidagi boshqa (o&#8217;zingizda mavjud) platalar bilan ishlashga moslashtiring.<\/em><\/p>\n<p style=\"text-align: center;\"><strong><em>(materialning ushbu qismi to&#8217;ldirish jarayonida)<\/em><\/strong><\/p>\n<p style=\"text-align: justify;\"><em>5) Yuqoridagi sketchdan foydalanib ushbu dars mavzusiga doir shaxsiy o&#8217;quv loyihasi taklifini bering va uni amalda bajaring, uning videosini tayyorlang (muvaffaqiyatli unikal loyihalar videosiga havolalar o&#8217;quvchining nomidan saytning shu joyiga joylashtirib boriladi).<br \/>\n<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wemos D1 mini platasi ichki svetodiodini hamda plataga ulangan DHT11 termodatchigi ko&#8217;rsatkichlarini Google Firebase servisining &#8220;Realtime Database&#8221; funksiyasi yordamida kuzatish va boshqarish jarayonini misol yordamida ko&#8217;rib chiqamiz. Bunda, Wemos D1 mini platasi svetodiodini holati va unga ulangan termodatchik ma&#8217;lumotlari platadan ma&#8217;lum davriylikda Firebase ma&#8217;lumotlar bazasiga yuborib turiladi. Yaratiladigan oddiy mobil ilovamiz yordamida esa, Firebase bazasidan [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-2534","post","type-post","status-publish","format-standard","hentry","category-namunaviy-sketchlar"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/yarat.uz\/index.php?rest_route=\/wp\/v2\/posts\/2534","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yarat.uz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yarat.uz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yarat.uz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yarat.uz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2534"}],"version-history":[{"count":42,"href":"https:\/\/yarat.uz\/index.php?rest_route=\/wp\/v2\/posts\/2534\/revisions"}],"predecessor-version":[{"id":5130,"href":"https:\/\/yarat.uz\/index.php?rest_route=\/wp\/v2\/posts\/2534\/revisions\/5130"}],"wp:attachment":[{"href":"https:\/\/yarat.uz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2534"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yarat.uz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2534"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yarat.uz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2534"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}