Mundarija:

Yangi boshlanuvchilar uchun ESP8266 qo'llanmasi va ESP8266 yordamida tvit yozish: 17 qadam (rasmlar bilan)
Yangi boshlanuvchilar uchun ESP8266 qo'llanmasi va ESP8266 yordamida tvit yozish: 17 qadam (rasmlar bilan)

Video: Yangi boshlanuvchilar uchun ESP8266 qo'llanmasi va ESP8266 yordamida tvit yozish: 17 qadam (rasmlar bilan)

Video: Yangi boshlanuvchilar uchun ESP8266 qo'llanmasi va ESP8266 yordamida tvit yozish: 17 qadam (rasmlar bilan)
Video: How to use DHT11 DHT22 with NodeMCU ESP8266 to read temperature over WiFi - IoT 2024, Noyabr
Anonim
Yangi boshlanuvchilar uchun ESP8266 qo'llanmasi va ESP8266 yordamida tvit yozish
Yangi boshlanuvchilar uchun ESP8266 qo'llanmasi va ESP8266 yordamida tvit yozish

Men Arduino haqida 2 yil oldin bilib olganman, shuning uchun men LEDlar, tugmalar, dvigatellar kabi oddiy narsalar bilan o'ynay boshladim, keyin kunning ob -havosi, aksiyalar bahosi, poezd vaqtini ko'rsatish kabi narsalarni ulash yaxshi bo'lardi deb o'yladim. LCD displey, men buni Internet orqali ma'lumotlarni yuborish va qabul qilish orqali amalga oshirish mumkinligini aniqladim, shuning uchun yechim intenet -ga ulandi. U erda men Arduino -ni Internetga qanday ulash va ma'lumotlarni yuborish va qabul qilishni qidira boshladim, Internetdagi Wi -Fi modullari haqida bilib oldim va ular juda qimmatga tushdi, keyin ESP8266 haqida bilib oldim.

Men taxminan bir yil oldin ESP8266 modulida Internetda ko'p o'qiganman va uni sotib olganman, lekin ular bilan faqat o'tgan oy ishlashga to'g'ri kelgan. O'sha paytda hech qanday ma'lumot yo'q edi, lekin hozirda ko'plab hujjatlar, videolar mavjud. firmware, AT buyruqlari, loyihalar va boshqalar haqida Internetda. Shuning uchun men boshlashga qaror qildim.

Men buni yangi boshlanuvchilar uchun qo'llanma sifatida yozdim, chunki men ESP8266 -ni ulash va ishga tushirishda ko'p muammolarga duch keldim, shuning uchun men ushbu ko'rsatmalarni modullari bilan muammolarga duch kelgan boshqa odamlar ularni tezroq hal qilishlari uchun yozishga qaror qildim.

Bu ko'rsatmada men ko'rsatishga harakat qilaman

  • ESP8266 -ni qanday ulash va u bilan Arduino Uno orqali bog'lanish.
  • Men Thingspeak yordamida tvit qanday yuborilishi mumkinligini ko'rsatishga harakat qilaman.

ESP8266 nima qilishi mumkin? Bu sizning tasavvuringiz bilan cheklangan, men Internetda shaharning harorati, aktsiyalar narxini, elektron pochta xabarlarini yuborish va qabul qilishni, telefon qo'ng'iroqlarini va boshqa ko'p narsalarni ko'rsatadigan loyihalar va darslarni ko'rdim. Bu ko'rsatma, qanday qilib tvit yuborish kerak.

1 -qadam: Sizga kerak bo'lgan narsalar

Sizga kerak bo'ladigan narsalar
Sizga kerak bo'ladigan narsalar

Mana sizga kerak bo'ladigan narsalar. Ularning ko'pini har qanday elektr do'konidan yoki Internetdan sotib olish mumkin (men havolani havola uchun berganman).

  • 1xESP8266 (ESP -01) -ebay
  • 1xBreadboard adapteri (bu erda qanday yasashni bilib oling yoki bir nechta o'tish simlarini ishlating)
  • 1xLM2596 -ebay
  • 1xLogik darajadagi konvertor -ebay
  • 1xArduino Uno
  • Arduino Uno uchun USB kabel
  • 1xBreadboard -ebay
  • Simlar -ebay
  • Arduino IDE
  • Thingspeak bilan hisob

Umumiy xarajat 600 rupiy atrofida bo'ladi (taxminan 9 dollar). Men Arduino Uno narxini hisobga olmaganman, chunki bu asl nusxa yoki klonni xohlashingizga bog'liq. Eng arzon klonlar 500 rupiy atrofida (taxminan 4 dollar).

2 -qadam: ESP8266 haqida ba'zi ma'lumotlar

ESP8266 2014 yilda bir yil oldin ishga tushirilgan, shuning uchun u juda yangi, chiplar Espressif tomonidan ishlab chiqarilgan.

Afzallik

ESP8266 -ning eng katta afzalligi, ehtimol, uning narxidir. Bu juda arzon va siz ulardan bir nechtasini birdaniga sotib olishingiz mumkin. Men bu haqda bilishimdan oldin, hatto Wi -Fi modulini sotib olishni ham o'ylay olmasdim.. ESP8266 -ning yangi versiyalari tez -tez chiqariladi va eng so'nggi versiyasi ESP 12. Ammo men bu yo'riqnomada faqat mashhur ESP 01 -ga e'tibor qarataman, bundan tashqari siz ESP8266 -ni sotib olganingizda u standart AT dasturiy ta'minoti bilan oldindan yuklangan bo'ladi. Siz uni sotib olishingiz bilanoq boshlashingiz kerak.. Bundan tashqari, bu ko'rsatmalarni ko'rib turganingizdek, ularni o'zaro bog'lash juda oson.

Kamchilik

Har bir qurilmaning o'ziga xos afzalliklari va kamchiliklari bor va ESPdan farqi yo'q. ESP bilan ishlash juda qiyin va asabiy bo'lishi mumkin, chunki bu yangi ma'lumotni olish qiyin bo'ladi..com juda ko'p yordam beradi, bundan tashqari, ba'zida ketma -ket ulanish orqali axlat yukini tashlab yuborish kabi kutilmagan ishlarni ham qila boshlaydi.

E'tibor bering, Internetda juda ko'p hujjatlar mavjud va ularning bir qismi bir -biriga ziddir. Bu yo'riqnomaning farqi yo'q, men ESP8266 bilan o'ynab yurganimda, u internetda aytilganlardan ancha farq qilganini aniqladim (sizning ham), lekin u yaxshi ishladi.

3 -qadam: ESP8266 -ni aniqlash

ESP8266 -ni aniqlash
ESP8266 -ni aniqlash

ESP8266da ko'rsatilganidek, 8 ta pin bor.

Gnd va Vcc odatdagidek erga ulangan bo'lishi kerak va ESP8266 3.3V da ishlaydi.

RESET pin ESPni qo'lda qayta o'rnatish uchun ishlatiladi, u odatda 3.3V ga ulangan bo'lishi kerak, agar siz ESPni qayta o'rnatmoqchi bo'lsangiz, bu pinni bir zumda erga ulang va keyin 3.3V ga qaytaring.

CH_PD - bu chipning quvvati pasayishi, uni odatda 3.3V ga ulash lozim.

GPIO0 va GPIO2 - umumiy maqsadli kirish chiqish pinlari, ular odatda 3.3V ga ulangan bo'lishi kerak, lekin proshivka yonib turganda GPIO0 ni gnd ga ulang.

Rx va Tx pinlari - bu ESP8266 uzatuvchi va qabul qiluvchi pinlari, ular 3.3V mantiqda ishlaydi, ya'ni 3.3V - ESP8266 uchun yuqori mantiq.

Batafsil ulanishlar keyingi bosqichlarda taqdim etiladi.

4 -qadam: ESP8266 bilan aloqa qilish uchun nima ishlatilishi kerak?

ESP8266 bilan aloqa qilish uchun nima ishlatilishi kerak?
ESP8266 bilan aloqa qilish uchun nima ishlatilishi kerak?
ESP8266 bilan aloqa qilish uchun nima ishlatilishi kerak?
ESP8266 bilan aloqa qilish uchun nima ishlatilishi kerak?
ESP8266 bilan aloqa qilish uchun nima ishlatilishi kerak?
ESP8266 bilan aloqa qilish uchun nima ishlatilishi kerak?

ESP8266 bilan aloqa o'rnatish uchun FTDI dasturchilari, USB to TTL ketma -ket konvertori, Arduino va boshqalar kabi ko'plab qurilmalar mavjud, biroq men Arduino Uno -ni ishlatganman. Arduino -da sizda Arduino IDE mavjud va uning ketma -ket monitorini ESP8266 bilan aloqa qilish uchun ishlatish mumkin, shuning uchun FTDI dasturchilariga pul sarflamaysiz va hokazo.

Ammo agar xohlasangiz yoki sizda mavjud bo'lsa, siz FTDI dasturchisini yoki USB -dan TTL -ga ketma -ket konvertorni ishlatishingiz mumkin (keyinroq ularni qanday ulash haqida). Shuningdek, RealTerm yoki macun kabi ko'plab dasturlar mavjud. ular Arduino IDE seriyali monitoriga o'xshaydi.

5 -qadam: ESP8266 -ni elektron jadvalga o'rnatish

ESP8266 -ni elektron jadvalga o'rnatish
ESP8266 -ni elektron jadvalga o'rnatish
ESP8266 -ni elektron jadvalga o'rnatish
ESP8266 -ni elektron jadvalga o'rnatish

ESP8266 pinlari non paneli uchun mos emasligiga e'tibor bering, buni ikki yo'l bilan engish mumkin.

Ayol -erkak o'tish simlarini ishlating, bu narsalarni chalkashtirib yuborishi mumkin

Ushbu ko'rsatmada ko'rsatilganidek qiling yoki

Adapter taxtasidan foydalaning, uni o'zingiz tayyorlang (ular Instructables -da juda ko'p), bu juda toza.

6 -qadam: Elektr ta'minoti

Quvvatlantirish manbai
Quvvatlantirish manbai

ESP8266 3.3V kuchlanish bilan ishlaydi, uni Arduino -dagi 5V -ga ulamang, ehtimol u yonib ketadi.

Ba'zi darsliklar 5k kuchlanishli 1k, 2k rezistorlar yordamida 2k rezistor orqali 3.3V olish va uni Arduino -ga etkazib berishni taklif qildi.

Men uni Arduino -dagi 3.3V yordamida yoqishga muvaffaq bo'ldim, lekin bir muncha vaqt o'tgach, ESP qizib ketganini ko'rdim.

Siz 3,3V kuchlanish regulyatoridan foydalanishingiz mumkin.

Yoki LM2596 dc-dc pastga tushirish konvertoridan foydalanishingiz mumkin, bu juda arzon va men ulardan foydalandim. Arduino-dan 5V ga kirishni kiriting. Modulning potentsiometrini sozlang. Ulardan birini soatlab bog'lang.

7 -qadam: Mantiqiy darajadagi konvertatsiya

Mantiqiy darajadagi konvertatsiya
Mantiqiy darajadagi konvertatsiya

Ta'kidlanishicha, ESP 3.3V, Arduino esa 5V mantiqqa ega.

Bu shuni anglatadiki, ESP 3.3V yuqori mantiqiy, Arduino 5V esa mantiqiy yuqori, bu ularni bir -biriga ulashda ba'zi muammolarga olib kelishi mumkin.

Men Internetda ESP Rx va Txni Arduino bilan bog'lashda mantiqiy darajadagi konversiyani qo'llash kerakligini aniqladim.

Ba'zi o'quv qo'llanmalari, ESP Rx pinini ulashda, mantiqiy darajani o'zgartirish zarurligini eslatib o'tdi.

Ammo shuni aniqladimki, odatda ESP Rx va Tx pinlarini Arduino -ga ulash hech qanday muammo tug'dirmaydi

Men Rx va Txni mantiqiy darajadagi konvertor orqali, shuningdek Rx bilan bog'ladim, lekin hech qanday javob olmaganman.

Ammo shuni aniqladimki, EX Tx pinini Tx -ni to'g'ridan -to'g'ri ulashda mantiqiy darajali konvertor orqali ulash ham hech qanday muammo tug'dirmaydi

Shunday qilib, mantiqiy darajadagi konvertor ishlatilishi mumkin yoki bo'lmasligi mumkin.

Sinov va xato paytida sizga mos keladigan usullardan foydalaning.

8 -qadam: ulanishlar

Ulanishlar
Ulanishlar

ESP8266 ulanishlari:

ESP8266

Gnd ------------------- Gnd

GPIO2 --------------- 3.3V

GPIO0 --------------- 3.3V

Rx -------------------- Arduino Rx

Tx --------------------- Arduino Tx (to'g'ridan-to'g'ri yoki mantiqiy darajali konvertor orqali)

CH_PD -------------- 3.3V

Qayta o'rnatish -------------- 3.3V

Vcc -------------------- 3.3V

(E'tibor bering, ba'zi versiyalarda ESP Rx Arduino Tx va ESP Tx Arduino Rx ga ulangan bo'lishi kerak).

Agar siz FTDI dasturchisi yoki USB dan TTL seriyali konvertoridan foydalanayotgan bo'lsangiz, ularning Tx va Rxlarini mos ravishda ESP8266 ning Rx va Tx ga ulang.

9 -qadam: Boshlash

Ulanishni o'rnatgandan so'ng, yuklang

bo'sh o'rnatish ()

{}

bo'sh halqa ()

{}

ya'ni Arduino uchun bo'sh eskiz.

Ketma -ket monitorni oching va "Ham NL, ham CR" ga o'rnating.

Baud tezligi bilan tajriba. Odatda 9600 bo'lishi kerak, lekin ba'zida 115200 bo'lishi mumkin.

10 -qadam: AT buyruqlari

AT buyruqlar
AT buyruqlar

AT buyruqlari - bu ESP8266 ga yuborilishi mumkin bo'lgan buyruqlar, shuning uchun uni qayta ishga tushirish, Wi -Fi tarmog'iga ulanish va hk kabi ba'zi funktsiyalarni bajarishga imkon beradi. ESP bunga javoban matn shaklida ba'zi tasdiqlarni yuboradi. AT buyruqlari va ESP ularga qanday javob beradi, shuni esda tutingki, men yuborish orqali buyruqni yozishni va enter (qaytish) ni bosishni nazarda tutaman.

ATni ketma -ket monitor orqali yuboring

Bu buyruq test buyrug'i sifatida ishlatiladi.

ESP qanday javob beradi: OK qaytarilishi kerak.

AT+RSTni ketma -ket monitor orqali yuboring

Bu buyruq modulni qayta ishga tushirish uchun ishlatiladi.

ESP qanday javob beradi: ESP axlat yukini qaytaradi, lekin tayyor yoki tayyorni qidiring.

AT+GMR -ni ketma -ket monitor orqali yuboring

Bu buyruq modulning proshivka versiyasini aniqlash uchun ishlatiladi.

ESP qanday javob beradi: dasturiy ta'minot versiyasi qaytarilishi kerak.

Dasturiy ta'minot - bu odatda ROM (faqat o'qish uchun mo'ljallangan xotira) qurilmasiga o'rnatiladigan dasturiy ta'minot, ya'ni uni tez -tez o'zgartirish yoki umuman o'zgartirish uchun mo'ljallanmagan. turli xil dasturiy ta'minot, ularning hammasini o'chirish (o'rnatish) juda oson.

11 -qadam: AT buyruqlarining umumiy sintaksisi

Turli xil funktsiyalarni bajarish uchun AT buyruqlarining umumiy sintaksisi berilgan:

AT+parametri =?

Bu turdagi buyruq ketma -ket monitor orqali yuborilganda, ESP parametr olishi mumkin bo'lgan barcha qiymatlarni qaytaradi.

AT+parametri = val

Ushbu turdagi buyruq ketma -ket monitor orqali yuborilganda, ESP parametr qiymatini val ga o'rnatadi.

AT+parametri?

Ushbu turdagi buyruq ketma -ket monitor orqali yuborilganda, ESP parametrning joriy qiymatini qaytaradi.

Ba'zi AT buyruqlari yuqoridagi turlardan bittasini olishi mumkin, ba'zilari esa 3 -ni olishi mumkin.

Yuqoridagi 3 turda mumkin bo'lgan buyruqqa misol - wifi rejimini o'rnatish uchun ishlatiladigan CWMODE.

AT+CWMODE = yuborilsinmi? ketma -ket monitor orqali

ESP qanday javob beradi: ESP CWMODE olishi mumkin bo'lgan barcha qiymatlar (1-3) maxsus qaytariladi +CWMODE (1-3).

1 = Statik

2 = AP

3 = Ham statik, ham AP

AT+CWMODE = 1 ni ketma -ket monitor orqali yuboring

ESP qanday javob beradi: agar CWMODE -da oldingi qiymatdan o'zgarish bo'lsa va u statik bo'lsa, OK qaytarilishi kerak, aks holda CWMODE qiymatida o'zgarish bo'lmasa, hech qanday o'zgarish qaytarilmasligi kerak.

MUHIM: CWMODE 1 ga o'rnatilmasa, keyingi bosqichlardagi buyruqlar ishlamaydi.

AT+CWMODE yuborilsinmi? ketma -ket monitor orqali

ESP qanday javob beradi: CWMODE -ning hozirgi qiymati qaytarilishi kerak, agar siz yuqoridagi +CWMODE: 1 -qadamni bajargan bo'lsangiz, qaytarilishi kerak.

12 -qadam: Wi -Fi tarmog'iga ulanish

AT+CWLAP -ni ketma -ket monitor orqali yuboring

Bu buyruq hududdagi barcha tarmoqlarni ro'yxatga olish uchun ishlatiladi.

ESP qanday javob beradi: barcha kirish nuqtalari yoki wifi tarmoqlari ro'yxati qaytarilishi kerak.

AT+CWJAP = "SSID", "parol" yuboring

(ikkita tirnoqni o'z ichiga olgan holda).

Bu buyruq wifi tarmog'iga ulanish uchun ishlatiladi.

ESP qanday javob beradi: agar modul tarmoqqa ulangan bo'lsa, OK qaytarilishi kerak.

AT+CWJAP yuborilsinmi? ketma -ket monitor orqali

Bu buyruq hozirda ESP ulangan tarmoqni aniqlash uchun ishlatiladi.

ESP qanday javob beradi: ESP ulangan tarmoq qaytariladi. Maxsus +CWJAP: "SSID"

AT+CWQAP -ni ketma -ket monitor orqali yuboring

Bu buyruq hozirda ESP ulangan tarmoqdan uzish uchun ishlatiladi.

ESP qanday javob beradi: ESP ulangan tarmoqdan chiqadi va OK qaytariladi.

AT+CIFSR -ni ketma -ket monitor orqali yuboring

Bu buyruq ESP ning IP manzilini aniqlash uchun ishlatiladi.

ESP qanday javob beradi: ESP IP -manzili qaytariladi.

13 -qadam: Thingspeak

Gapirish
Gapirish
Gapirish
Gapirish
Gapirish
Gapirish
Gapirish
Gapirish

Agar siz Thingspeak -da hisob ochmagan bo'lsangiz, hoziroq uni yarating.

Thingspeak -da hisob yaratgandan so'ng, Ilovalar> ThingTweet -ga o'ting.

U bilan twitter hisobingizni bog'lang.

Yaratilgan API kalitiga e'tibor bering.

Bu erda ThingTweet ilovasi Twitter hisobini ThingSpeak hisobingizga bog'lash uchun ishlatilgandan so'ng, siz TweetContol API yordamida tvit yuborishingiz mumkin.

API (amaliy dastur interfeysi) - bu ikkita dasturiy ta'minot bir -biri bilan aloqa o'rnatishga imkon beruvchi kod.

Ishlab chiquvchilar uchun mavjud bo'lgan boshqa API -lar - Google Maps API, Open weather API va boshqalar.

Faqat ESPni sozlash, tekshirish va Wi -Fi tarmog'iga ulangandan so'ng (asosan oldingi 2 bosqichda berilgan barcha amallar), quyida keltirilgan amallarni bajaring.

14 -qadam: Yana AT buyruqlari

AT+CIPMODE = 0 ni ketma -ket monitor orqali yuboring

ESP qanday javob beradi: OK qaytariladi.

CIPMODE buyrug'i uzatish rejimini o'rnatish uchun ishlatiladi.

0 = oddiy rejim

1 = UART-WiFi uzatish rejimi

AT+CIPMUX = 1 ni ketma -ket monitor orqali yuboring

ESP qanday javob beradi: OK qaytariladi.

CIPMUX buyrug'i bitta yoki bir nechta ulanishni o'rnatish uchun ishlatiladi.

0 = bitta ulanish

1 = bir nechta ulanish

15 -qadam: TCP ulanishini sozlash

TCP ulanishini sozlash
TCP ulanishini sozlash
TCP ulanishini sozlash
TCP ulanishini sozlash

E'tibor bering, birinchi buyruqdan boshlab, siz birinchisini yuborganingizdan so'ng, aloqa faqat cheklangan vaqtga o'rnatiladi, shuning uchun buyruqlarni iloji boricha tezroq yuboring.

AT+CIPSTART = 0, "TCP", "api.thingspeak.com", 80 ni ketma -ket monitor orqali yuboring

ESP qanday javob beradi: Agar ulanish o'rnatilgan bo'lsa, bog'langan qaytariladi.

Bu buyruq TCP ulanishini o'rnatish uchun ishlatiladi.

Sintaksis AT+CIPSTART = havola identifikatori, turi, uzoq IP, uzoq port

qayerda

havola identifikatori = tarmoq ulanishining identifikatori (0 ~ 4), ko'p ulanish uchun ishlatiladi.

type = string, "TCP" yoki "UDP".

masofali IP = satr, uzoq IP -manzil (veb -sayt manzili).

uzoq port = string, masofali port raqami (odatda 80 ga tanlanadi).

AT+CIPSEND = 0, 110 ni ketma -ket monitor orqali yuboring

ESP qanday javob beradi:> buyrug'i muvaffaqiyatli bo'lsa qaytariladi.

Bu buyruq ma'lumotlarni yuborish uchun ishlatiladi.

Sintaksis AT+CIPSEND = havola identifikatori, uzunligi

qayerda

havola identifikatori = ulanish identifikatori (0 ~ 4), ko'p ulanish uchun. CIPMUX 1 ga o'rnatilgandan buyon 1.

uzunligi = ma'lumotlar uzunligi, MAX 2048 bayt. Umuman uzunlik uchun katta sonni tanlang.

16 -qadam: tvit yuborish

Tvit yuborish
Tvit yuborish

Endi tvit yuborish uchun

Ketma -ket monitor orqali GET/apps/thingtweet/1/statuses/update? Api_key = yourAPI & status = yourtweet yuboring.

O'zingizning API -ni API kaliti bilan almashtiring va tvitingizni xohlagan tvit bilan almashtiring.

Siz yuqoridagi buyruqni yuborganingizdan so'ng, taxminan 1 soniya oralig'ida Enter (qaytish) tugmasini bosishni boshlang, bir muncha vaqt o'tgach, OK, +IPD, 0, 1: 1 va OK yuboring, bu esa tvit joylashtirilganligini bildiradi.

Twitter -ni oching va tvit joylashtirilganligini tekshiring.

Shuni ham unutmangki, bir xil tvitni qayta -qayta yuborib bo'lmaydi.

Yuborilgan yuqoridagi satr (GET….) HTTP GET so'rovidir.

GET so'rovi berilgan serverdan ma'lumotlarni olish uchun ishlatiladi (api.thingspeak.com).

17 -qadam: Shundan keyin nima qilish kerak

(Videoni kamida 360p da ko'ring)

Kodni va sxemalarni yuklab olish uchun ushbu omborga o'ting. "Klonlash yoki Yuklab olish" tugmachasini bosing (o'ng tomonda yashil rangda) va ZIP faylini yuklab olish uchun "ZIP -ni yuklash" -ni tanlang. Endi kompyuteringizdagi tarkibni chiqarib oling. kod va sxemalar (sxemalar papkasida). Men ham bu omborga AT -ning barcha buyruqlarini jamlaydigan chehesheet yukladim.

Internetda ESP8266 bilan shug'ullanadigan juda ko'p ajoyib manbalar mavjud. Men ulardan ba'zilarini aytib o'tdim:

  • Kevin Darra video.
  • ALLaboutEE videolari.
  • esp8266.com

Siz AT buyruqlari bilan ko'proq tajriba o'tkazishingiz mumkin, Internetda ob -havo, aktsiya bahosi va h.k. kabi har xil ishlarni qila oladigan juda ko'p API mavjud.

To'liq AT buyruq hujjatlari

Shuningdek, men hozirda sensorning analog qiymatlarini avtomatik ravishda tweetlaydigan dastur ustida ishlayapman va u to'g'ri ishlagandan so'ng uni joylashtiraman.

Agar sizga Arduino hamma narsa tanlovida mening ovoz berishim yoqqan bo'lsa.

Tavsiya: