{"id":4907,"date":"2025-01-03T00:28:48","date_gmt":"2025-01-02T19:28:48","guid":{"rendered":"https:\/\/yarat.uz\/?p=4907"},"modified":"2025-01-06T13:34:01","modified_gmt":"2025-01-06T08:34:01","slug":"esp-now-protokoli-yordamida-boshqaruv-18","status":"publish","type":"post","link":"https:\/\/yarat.uz\/?p=4907","title":{"rendered":"ESP-NOW protokoli yordamida boshqaruv [18+]"},"content":{"rendered":"<p style=\"text-align: justify;\">ESP-NOW protokolidan foydalanish uchun ko&#8217;plab bibliotekalar yaratilgan. Biz shulardan ESP8266 (espnow.h) va ESP32 (&#8220;ESP32_NOW.h&#8221;) platalari uchun alohida-alohida (!) yaratilgan bibliotekalardan foydalanamiz. ESP8266 uchun &#8220;espnow.h&#8221; bibliotekasi platalar uchun dasturiy ta&#8217;minot tarkibida avtomatik ravishda o&#8217;rnatiladi, lekin menyudagi bibliotekalar ro&#8217;yxatida ko&#8217;rinmaydi. ESP32 uchun biblioteka alohida o&#8217;rnatilishi zarur va u menyuda ham alohida nom bilan ko&#8217;rinadi.<\/p>\n<p style=\"text-align: justify;\">&#8220;espnow.h&#8221; bibliotekasining quyidagi funksiyalaridan foydalanish mumkin (batafsil ma&#8217;lumotlar: <a href=\"https:\/\/demo-dijiudu.readthedocs.io\/en\/latest\/api-reference\/wifi\/esp_now.html\">bu yerda<\/a> va <a href=\"https:\/\/github.com\/espressif\/esp-now\/blob\/master\/User_Guide.md?ysclid=m5k104u3g6409607696\">bu yerda<\/a>):<br \/>\n<strong>&#8211; esp_now_init()<\/strong> &#8211; ESP-NOW protokolini initsializatsiyalash (faollashtirish);<br \/>\n<strong>&#8211; esp_now_set_self_role(role)<\/strong> &#8211; qurilmaning tarmoqdagi rolini o&#8217;rnatish. Argumentda quyidagi rollardan biri ko&#8217;rsatilishi mumkin: ESP_NOW_ROLE_IDLE = 0, ESP_NOW_ROLE_CONTROLLER, ESP_NOW_ROLE_SLAVE, ESP_NOW_ROLE_COMBO, ESP_NOW_ROLE_MAX.<br \/>\n<strong>&#8211; esp_now_add_peer(uint8 mac_addr, uint8 role, uint8 channel, uint8 key, uint8 key_len)<\/strong> &#8211; boshqa qurilma bilan moslashish;<br \/>\n<strong>&#8211; esp_now_send(uint8 mac_addr, uint8 data, int len)<\/strong> &#8211; boshqa qurilmaga ma&#8217;lumot paketini, uzunligini ko&#8217;rsatgan holda yuborish;<br \/>\n<strong>&#8211; esp_now-register_send_cb(&lt;funksiya_nomi&gt;)<\/strong> &#8211; ma&#8217;lumot yuborilganidan keyin chaqiriladigan teskari aloqa funksiyasini ko&#8217;rsatish. U ma&#8217;lumot qabul qilinganini tasdiqlashda foydalanishi mumkin;<br \/>\n<strong>&#8211; esp_now-register_rcv_cb(&lt;funksiya_nomi&gt;)<\/strong> &#8211; ma&#8217;lumot qabul qilinganidan keyin chaqiriladigan teskari aloqa funksiyasini ko&#8217;rsatish. Funksiya doirasida qabul qilingan ma&#8217;lumot paketini tahlil qilish va uning asosida tashqi qurilmalarni boshqarishda foydalanilishi mumkin.<\/p>\n<p style=\"text-align: justify;\">1-misol. Dastlab &#8220;nuqtadan nuqtaga&#8221; rejimida birinchi (boshqaruvchi) mikrokontrollerga ulangan tugma (yoki viklyuchatel) yordamida ikkinchi (bo&#8217;ysunuvchi) mikrokontroller ichki svetodiodini boshqarishni ko&#8217;rib chiqamiz.<\/p>\n<p><em>Boshqaruvchi sxemasi:<\/em><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4776 aligncenter\" src=\"https:\/\/yarat.uz\/wp-content\/uploads\/2024\/02\/wemos-viklyuchatel_bb-e1733315302989.jpg\" alt=\"\" width=\"613\" height=\"575\" srcset=\"https:\/\/yarat.uz\/wp-content\/uploads\/2024\/02\/wemos-viklyuchatel_bb-e1733315302989.jpg 613w, https:\/\/yarat.uz\/wp-content\/uploads\/2024\/02\/wemos-viklyuchatel_bb-e1733315302989-300x281.jpg 300w\" sizes=\"auto, (max-width: 613px) 100vw, 613px\" \/><br \/>\n<em>1-sketch (Boshqaruvchi):<\/em><\/p>\n<pre><code><\/code><\/pre>\n<p><em>2-sketch (Ijrochi):<\/em><\/p>\n<pre><code><\/code><\/pre>\n<p><em>Natija:<\/em><\/p>\n<div class=\"epyt-video-wrapper\"><iframe loading=\"lazy\"  id=\"_ytid_49313\"  width=\"800\" height=\"450\"  data-origwidth=\"800\" data-origheight=\"450\"  data-relstop=\"1\" src=\"https:\/\/www.youtube.com\/embed\/YVONdLPxHfY?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;rel=0&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;hl=ru_RU&#038;theme=dark&#038;color=red&#038;controls=1&#038;\" class=\"__youtube_prefs__  epyt-is-override  no-lazyload\" data-vol=\"25\"  title=\"YouTube player\"  allow=\"fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen data-no-lazy=\"1\" data-skipgform_ajax_framebjll=\"\"><\/iframe><\/div>\n","protected":false},"excerpt":{"rendered":"<p>ESP-NOW protokolidan foydalanish uchun ko&#8217;plab bibliotekalar yaratilgan. Biz shulardan ESP8266 (espnow.h) va ESP32 (&#8220;ESP32_NOW.h&#8221;) platalari uchun alohida-alohida (!) yaratilgan bibliotekalardan foydalanamiz. ESP8266 uchun &#8220;espnow.h&#8221; bibliotekasi platalar uchun dasturiy ta&#8217;minot tarkibida avtomatik ravishda o&#8217;rnatiladi, lekin menyudagi bibliotekalar ro&#8217;yxatida ko&#8217;rinmaydi. ESP32 uchun biblioteka alohida o&#8217;rnatilishi zarur va u menyuda ham alohida nom bilan ko&#8217;rinadi. &#8220;espnow.h&#8221; bibliotekasining quyidagi [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21],"tags":[],"class_list":["post-4907","post","type-post","status-publish","format-standard","hentry","category-iot"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/yarat.uz\/index.php?rest_route=\/wp\/v2\/posts\/4907","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=4907"}],"version-history":[{"count":14,"href":"https:\/\/yarat.uz\/index.php?rest_route=\/wp\/v2\/posts\/4907\/revisions"}],"predecessor-version":[{"id":4940,"href":"https:\/\/yarat.uz\/index.php?rest_route=\/wp\/v2\/posts\/4907\/revisions\/4940"}],"wp:attachment":[{"href":"https:\/\/yarat.uz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4907"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yarat.uz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4907"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yarat.uz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4907"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}