Mundarija:

Yuz tanib oluvchi eshik qo'ng'irog'i: 7 qadam (rasmlar bilan)
Yuz tanib oluvchi eshik qo'ng'irog'i: 7 qadam (rasmlar bilan)

Video: Yuz tanib oluvchi eshik qo'ng'irog'i: 7 qadam (rasmlar bilan)

Video: Yuz tanib oluvchi eshik qo'ng'irog'i: 7 qadam (rasmlar bilan)
Video: ОШҚОЗОН ИЧАК КАСАЛЛИКЛАРИ УЙ ШАРОИТИДА ДАВО ЧОРАЛАРИ / ГАСТРИТ, ЯЗВА, ҚИЗАРИШ ДОРИЛАРИ 2024, Iyul
Anonim
Yuzni tanib oluvchi eshik qo'ng'irog'i
Yuzni tanib oluvchi eshik qo'ng'irog'i

Motivatsiya

So'nggi paytlarda mening mamlakatimda qariyalar uyiga qarata uyushtirilgan qaroqchilik to'lqini sodir bo'ldi. Odatda, kirishga ruxsat beruvchilarning o'zlari tomonidan beriladi, chunki tashrif buyuruvchilar ularni tarbiyachi/hamshira ekanligiga ishontirishadi. Bu so'zlar meni qanchalik g'azablantiradi va qayg'uga soladi. Uy sizning birinchi xavfsiz boshpana bo'lishi kerak va bundan ham ko'proq, agar siz tashqarida bo'lganingizda allaqachon himoyasiz holatda bo'lsangiz. Shuni hisobga olib, men bu loyihani boshladim.

Umumiy ma'lumot

Eshik qo'ng'irog'i tizimi asosan keksa yoki ko'rish qobiliyati cheklangan kishilar uchun mo'ljallangan bo'lib, u o'z ishida juda aniq. Qisqacha aytganda, eshik qo'ng'irog'ini almashtirish kamerani tasvirga olish uchun ishga tushiradi. Keyinchalik, kadrlardagi yuzlar aniqlanadi va oq ro'yxat va qora ro'yxat bilan mos keladi. Svetoforning aniq displeyi orqali yo'lovchi aniq vizual mulohazalarni oladi. Yashil, sariq yoki qizil chiroq odam (lar) ning oq ro'yxatga kirganligini, tizimga noma'lum yoki qora ro'yxatda ekanligini ko'rsatadi. Agar sariq yoki qizil chiroq yoqilsa, fotosurat Telegram boti orqali qarindoshi yoki qarovchisini xabardor qilish/ogohlantirish uchun yuboriladi.

Tajriba darajasi

Loyiha, ayniqsa, kompyuter ko'rish va sun'iy intellektdan foydalanishga qiziquvchilar uchun mo'ljallangan. Bu ko'rsatma yangi boshlanuvchilar uchun yozilgan, shuning uchun tajribangiz bo'lmasa, xavotir olmang! Bundan tashqari, loyiha tajribali ishlab chiqaruvchilar uchun ham qiziqarli bo'lishi mumkin, chunki quvur liniyasi sizning shaxsiy ko'rish qobiliyatingiz va yuzni aniqlash g'oyalari bilan ko'p qiyinchiliksiz kengaytiriladigan tarzda tashkil etilgan.

1 -qadam: materiallar

Materiallar
Materiallar

Minimal talablarga ega mahsulotlar ro'yxati:

Mahsulot Havola Sharh
Raspberry Pi 3b RPi Havola RPi 4 -ni ko'rsatadi, chunki u RPi 3b -ga qaraganda ancha yaxshi ishlashga va deyarli teng narxga ega.
Micro SD Amazon 16 Gb yoki undan katta micro SD -karta bu ishni bajaradi. Ammo Amazon -dagi 16 Gb kartalar hozirda 32 Gb kartalar bilan deyarli bir xil.
Raspberry Pi kamerasi Amazon Kamera v1 arzonroq, lekin v2 yaxshiroq va uzoq vaqt qo'llab -quvvatlanadi.
15 pinli FPC moslashuvchan kabel Amazon Aslida, loyihaning davomiyligi uning davomiyligiga bog'liq. Agar siz faqat prototip qurmoqchi bo'lsangiz, bu ishni asl egiluvchan kabel bajaradi.
5V mikro usb quvvat manbai Adafruit Bu odam hech qachon uchrashishiga yo'l qo'ymaydi! Ajoyib sifat. (Suratda emas)
O'rnatilgan LEDli arja tugmalari Amazon O'zingiz xohlagan o'lchamni tanlang, lekin SAPR dizayni 60 mm tugmachalarga asoslangan
Rezistorlar Amazon Sizga faqat 1k va 100 ohmli rezistorlar kerak. Oddiy 1/4 Vt yaxshi.
Kondansatkichlar 0,1 uF Amazon Uchta kondansatör kerak. (Suratda emas)
Jumper simlari / tasma kabeli Amazon Amazon Agar siz o'zingizni bir necha dollar tejashni xohlasangiz, eski egiluvchan lenta kabelidan ham foydalanishingiz mumkin (rasmga qarang).
Qisqartiruvchi naycha / elektr tasmasi Amazon Amazon

Kerakli vositalar:

Asbob Muhimmi? Sharh
Lehimlash temir Ha
Multimetr Ha
Tel -striptizchi Ha Yoki siz pichoq/qaychi ishlatishingiz mumkin.
Lazerli kesuvchi Yo'q
3D printer Yo'q
Qisqichlar Yo'q Sinov bosqichida qutini birga saqlash uchun foydalidir.

Izohlar:

Loyihaning mavjudligini oshirish uchun men uni Raspberry Pi 3b yordamida ishlab chiqishga qaror qildim. Bu kirish imkoniyatini oshirsa -da, bu dastur imkoniyatlarini pasaytiradi, chunki RPi tez emas. Agar siz tezroq ishlaydigan bitta kompyuterni qidirsangiz, NVIDIA Jetson Nano -ni ko'rib chiqishingiz mumkin

2 -qadam: simlarni ulash

Ulanish
Ulanish
Ulanish
Ulanish
Ulanish
Ulanish

Sxematik diagramma bu qadam uchun eng ma'lumotli va o'z -o'zidan tushunarli. Agar siz elektronika sohasida yangi bo'lsangiz, afsonaviy tasvirdan foydalanishingiz mumkin. Komponentning qiymati (agar kerak bo'lsa) sxematik diagrammada ko'rsatilgan. Fotosuratlar sxemani qanday qurayotganimni ko'rishga yordam beradi. Asosan, men barcha tarkibiy qismlarni iloji boricha arkada tugmachasiga yaqin bog'ladim, buning natijasida nima bo'layotgani aniq ko'rib chiqiladi.

Izohlar:

  • Men tasma kabeli ulagichlarini ishlatishni juda yaxshi ko'raman, chunki ular bitta o'tish simlaridan ko'ra mustahkamroq.
  • Tavsiya etilganidek, men eski kompyuterdan tozalangan lenta kabelidan foydalandim. Bu biroz qiyin, lekin siz kabel konfiguratsiyasini qo'lda tasdiqlashingiz kerak bo'ladi. Masalan, men ushbu loyihada ba'zi teshiklar bir -biri bilan bog'langanligini bilib oldim (ehtimol, asl dastur uchun asos sifatida ishlatilgan). Shuning uchun, keyinroq rasmlarda ko'rib turganingizdek, boshqa kabelni olishim kerak edi.

3 -qadam: Kosonni qurish

Kosonni qurish
Kosonni qurish
Kosonni qurish
Kosonni qurish
Kosonni qurish
Kosonni qurish
Kosonni qurish
Kosonni qurish

Kamera korpusi

Pikamera uchun ko'plab qobiqlarni Internetdan erkin yuklab olish mumkin. Shunday qilib, men g'ildirakni qaytadan kashf qilmaslikni va Internetdan oddiy, lekin chiroyli korpusni tanlamoqchiman: thingiverse.com - Raspberry pi kamera qutisi/muhofazasi. (Dizayner VGerga baqirish.)

Svetofor korpusi

Svetoforning korpusi uchun men Autodesk Fusion 360 -da (uni bepul yuklab olish mumkin, Izohlarga qarang) barcha jihozlarga mos keladigan kichkina quti yaratdim. Qo'shimchada siz mening mahalliy lazerni kesish kompaniyasiga yuborgan faylni topishingiz mumkin. Shunday qilib, dizayn 6 mm plastinka qalinligiga asoslangan. Ammo, agar siz narsalarni sozlamoqchi bo'lsangiz, ushbu havola orqali har xil fayl formatlariga kirishingiz mumkin. Rasmda ko'rsatilgandek, agar sizda lazerli kesgich bo'lmasa, karton qutidan ham foydalanishingiz mumkin. Men prototiplash uchun rasmdagi karton qutidan foydalandim va u joziba kabi ishlaydi.

O'rnatish juda aniq:

  1. Arja kalitlarini joylashtiring.
  2. Eshik qo'ng'irog'ining simlarini bo'sh qoldiring.
  3. Lenta kabelini RPi -ga ulang.
  4. RPi -ni pastki panelga burab qo'ying.
  5. Eshik qo'ng'irog'i simlarini sim ulagichiga ulang va uni pastki panelga ham o'rnating.
  6. Picamera -ni RPi -ga ulang.
  7. Yon panellardan birida eshik qo'ng'irog'ini almashtirish simini va RPi quvvat simini teshik qiling.

Tel ulagichi eshik qo'ng'irog'ini almashtirish simlari uchun o'rnatish nuqtasi sifatida ishlatiladi, shuning uchun uni keyinchalik mavjud qo'ng'iroqqa mahkamlash mumkin. Endi hamma narsa joyida va uni yopishtirish mumkin. Ammo, avvalo, hamma narsa avvalgidek ishlashiga ishonch hosil qilish uchun keyingi qadamlarni tugatishni xohlashingiz mumkin.

Izohlar:

Qiziquvchilar uchun Autodesk Fusion 360 bepul mavjud! Agar siz nusxasini olishni istasangiz, quyidagi havolaga tashrif buyuring: autodesk.com - Fusion 360 havaskorlar uchun. Ba'zi shartlar bor, shuning uchun ularni o'qib, amalda qo'llang. Bu mening Fusion 360 bilan birinchi loyiham edi va menda SAPR dasturidan foydalanish tajribasi yo'q, lekin aytishim kerakki, menga dasturiy ta'minot va Fusion 360 bilan keladigan barcha qo'shimcha vositalar yoqadi

4 -qadam: Kamerani sozlash

Kamerani sozlash
Kamerani sozlash
Kamerani sozlash
Kamerani sozlash
Kamerani sozlash
Kamerani sozlash

Sizda Raspbian o'rnatilgan va u GUI rejimida ishlaydi deb taxmin qilinadi. Agar siz hali Raspbian -ni o'rnatmagan bo'lsangiz, ushbu maqolaga amal qilishingiz mumkin: raspberrypi.org - Operatsion tizim tasvirlarini o'rnatish. Agar siz Raspbian -ni yuklasangiz, rasmlarda ko'rsatilgandek ish stolini ko'rishingiz kerak.

Keling, kamerani RPi -da sozlaymiz va uning ishlashini tekshiramiz! Bu erda tasvirlangan usul to'g'ridan -to'g'ri raspberrypi.org - Hujjatlar. Birinchidan, terminal oynasida quyidagi buyruqlarni bajarish orqali so'nggi paketlarni (shu jumladan, kamera dasturiy ta'minotini) yangilab turamiz (rasmlarga qarang):

sudo apt yangilash

sudo apt to'liq yangilash

Keyin kamerani quyidagi buyruq yordamida yoqish kerak:

sudo raspi-config

Menyuda 5. Interfacing Options -> P1 Camera -ga o'ting. Kamerani yoqishni tanlang va RPi -ni qayta ishga tushiring:

qayta yuklash

Endi kamera to'g'ri sozlangan bo'lishi kerak. Buni terminal oynasini ochish va tekshirish orqali tekshirish mumkin:

raspistill -v -o /home/pi/test.jpg

Rasm saqlanadi: /home /pi.

5 -qadam: Docker -ni sozlash

Docker -ni sozlash
Docker -ni sozlash
Docker -ni sozlash
Docker -ni sozlash
Docker -ni sozlash
Docker -ni sozlash
Docker -ni sozlash
Docker -ni sozlash

Qarama -qarshilik va o'rnatish xatolarining oldini olish uchun men ushbu loyiha uchun maxsus Docker tasvirini yaratishga qaror qildim (qarang: wikipedia.org - Docker). Agar siz Docker -ni hech qachon ishlatmagan bo'lsangiz yoki eshitmagan bo'lsangiz, tashvishlanmang, men uni ushbu loyihada qanday ishlatishni bosqichma -bosqich tushuntirib beraman. Aslida, bu juda oson! Agar siz ushbu loyihani mahalliy o'rnatishda ishlatmoqchi bo'lsangiz (Docker konteynerida emas), men sizga ba'zi maslahatlar beraman. Ammo Docker tasviridan foydalanish tavsiya etiladi. Axir, men sizga bu loyihani ishga tushirishingizni osonlashtirish uchun quraman!

Docker nima?

Eslatma: bu qism Docker haqida ba'zi ma'lumot beradi, agar siz faqat kodni ishlatmoqchi bo'lsangiz, uni o'tkazib yuborishingiz mumkin.

Bu loyiha men Docker -dan birinchi marta foydalanganman va bu juda ajoyib! Balki siz Python uchun virtualenv yoki Anaconda haqida eshitgandirsiz? Xo'sh, Docker juda o'xshash, chunki siz boshqa muhitdan (yoki Docker deb nomlangan konteynerdan) foydalanib, paket versiyalarini osongina boshqarishingiz va bitta Python versiyasini bitta xost tizimida ishlatishingiz mumkin. Ammo virtualenv va Anaconda bilan taqqoslaganda, Docker ancha kuchliroq, chunki u faqat Python paketlarini o'z ichiga olmaydi. Darhaqiqat, Docker konteynerida siz kerakli operatsion tizim paketlarini o'rnatishingiz va boshqarishingiz mumkin. Masalan, Python veb -tuzilmasi (masalan, Django), ma'lumotlar bazasi (masalan, MySQL) bilan ishlaydigan, siz ko'chirmoqchi bo'lgan veb -saytni ko'rib chiqing. Docker konteynerisiz siz barcha paketlarni yangi serverga o'rnatishingiz kerak bo'ladi, bu jarayon xato va xatolarga juda moyil. Boshqa tomondan, sizning veb -saytingiz Docker -da qurilgan bo'lsa, ko'chirish, asosan, rasm faylini/fayllarini yangi serverga ko'chirish va uni ishga tushirish kabi oson. Siz tasavvur qilganingizdek, Docker Instructables -dagi loyihalar uchun ham juda foydali;)! Agar siz Docker haqida ko'proq bilmoqchi bo'lsangiz, ularning veb -saytiga qarang: docker.org - Docker: Enterprise Container Platform. Keling, Docker bilan ishga tushaylik!

Docker -ni o'rnatish

Quyidagi amallarni bajarish orqali Docker -ni o'rnating:

curl -sSL https://get.docker.com | sh

Keyinchalik, foydalanuvchi "docker" foydalanuvchi guruhiga qo'shiladi, bu Docker -ni ishga tushirish huquqini beradi. Bu quyidagilar tomonidan amalga oshiriladi:

sudo usermod -aG docker $ USER

Endi siz Docker -ni ishga tushirishingiz kerak. Buni salom-dunyo tasvirini ishga tushirish orqali tasdiqlash mumkin:

docker run salom-dunyo

Nihoyat, eshik qo'ng'irog'ini ishlatish uchun zarur bo'lgan barcha bog'liqliklarni o'z ichiga olgan Docker tasvirini olaylik Python skriptlari. Bu jarayon biroz vaqt talab qilishi mumkin, chunki tasvir juda katta (~ 1,5 GB). Ijro etish:

docker pull erientes/eshik qo'ng'irog'i

Eslatma: Dockerfile -ni Github -dagi eshik qo'ng'irog'i omborida topish mumkin. Endi hamma narsa eshik qo'ng'irog'i skriptlarini ishga tushirishga tayyor, ular keyingi bosqichda muhokama qilinadi.

Mahalliy o'rnatish

Shunga qaramay, men mahalliy o'rnatish o'rniga Docker tasviridan foydalanishni tavsiya qilaman. Ammo bu qo'llanmani to'liq bajarish uchun men hozirda mahalliy o'rnatish uchun qilgan ba'zi qadamlarni tasvirlab beraman.

Kodni ishga tushirish uchun python versiyasi> = 3.5 bo'lishi kerak (men python 3.5.3 ishlatganman) va quyidagi paketlarni o'rnatish kerak:

  • yuzni tanish
  • pikamera
  • befarq
  • Yostiq
  • python-telegram-bot
  • RPi. GPIO

Bu havola juda foydali: Github - dlib va face_recognition ni Raspberry Pi -ga o'rnating. Biroq, bu erda ba'zi ogohlantirishlar mavjud: 1) Yostiqchaga kamida Python 3.5 kerak, bu usuldan keyin o'rnatilmaydi. 2) Bundan tashqari, eshik qo'ng'irog'i loyihasida kerak bo'ladigan hamma paketlar ham shu usulda o'rnatilmaydi. Biroq, siz uni pip3 yordamida o'rnatishingiz kerak.

6 -qadam: Eshik qo'ng'irog'i skriptlarini ishga tushirish

Eshik qo'ng'irog'i skriptlarini ishga tushirish
Eshik qo'ng'irog'i skriptlarini ishga tushirish
Eshik qo'ng'irog'i skriptlarini ishga tushirish
Eshik qo'ng'irog'i skriptlarini ishga tushirish
Eshik qo'ng'irog'i skriptlarini ishga tushirish
Eshik qo'ng'irog'i skriptlarini ishga tushirish

Skriptlarni oling

Skriptlarni qo'lda yuklab olish mumkin: github.com - Erientes/eshik qo'ng'irog'i. Yoki agar sizda Git o'rnatilgan bo'lsa, quyidagini bajaring:

git klon

Taxalluslar yarating

Keling, hayotimizni biroz osonlashtirish uchun, keling, skriptlarni ishga tushirish uchun taxalluslar yarataylik. Ijro etish:

barg paneli ~/.bashrc

Quyidagi qatorlarni qo'shing va faylni saqlang:

alias doorbell_run = 'docker run --privileged -v/home/pi/doorbell:/doorbell -w/doorbell -it erientes/doorbell python $ 1'

alias doorbell_login = 'docker run --privileged -v/home/pi/doorbell:/doorbell -w/doorbell -it erientes/doorbell bash'

Sinov skriptlari

Hamma narsa to'g'ri o'rnatilganligini tekshirish uchun yangi terminalni oching va bajaring:

doorbell_run misollari/0_test_installation.py

Natijada terminal oynasida "Eshik qo'ng'irog'ini o'rnatish muvaffaqiyatli yakunlandi!" Degan xabar bo'lishi kerak. Docker konteyneridan kameraga kirish mumkinligini tekshirish uchun quyidagilarni bajaring:

eshik qo'ng'irog'ini ishga tushirish misollari/1_test_camera.py

1_test_camera.py -ni ishga tushirish orqali surat olinadi va "test.jpg" sifatida saqlanadi, uni/home/pi/eshik qo'ng'irog'ida topish mumkin. Nihoyat, LED drayverlarini sinash mumkin:

eshik qo'ng'irog'ini ishga tushirish misollari/2_test_voicehat_drivers.py

Bu skript ishlayotganda, tugma bosilganda arkad kalitidagi LED javob berishi kerak.

Doorbell skriptlarini ishga tushirish

Doorbell skriptlarini ishga tushirish uchun avval Telegram bot ma'lumotlarini olish kerak. Telefoningizga Telegram -ni o'rnating va telegram.me -ga o'ting - Ota. Suhbatni boshlang va kiriting:

/newbot

Bot uchun ism va foydalanuvchi nomini kiriting. Shundan so'ng, sizga kirish belgisi beriladi. Ushbu qiymatni/home/pi/doorbell -dagi 'credentials_telegram_template.py' fayliga nusxa ko'chiring va 'credentials_telegram.py' nomli yangi faylga saqlang. Nihoyat, Botfather sizga taqdim etadigan havolani bosish orqali siz yaratgan bot bilan suhbatni boshlang.

Nihoyat, yuzni tanib olish bilan eshik qo'ng'irog'ini ishga tushiramiz:

eshik qo'ng'irog'i_run main.py

Izohlar:

Agar siz kodning qanday ishlashi haqida ko'proq bilmoqchi bo'lsangiz, skriptlarning o'zidagi sharhlarni tekshiring. Agar sizda kod haqida savol bo'lsa, Github orqali men bilan bog'laning

7 -qadam: Eshik qo'ng'irog'idan foydalanish

Image
Image
Eshik qo'ng'irog'idan foydalanish
Eshik qo'ng'irog'idan foydalanish
Eshik qo'ng'irog'idan foydalanish
Eshik qo'ng'irog'idan foydalanish

Keling, eshik qo'ng'irog'i skriptini bajaramiz:

eshik qo'ng'irog'i_run main.py Paketlarni yuklagandan so'ng, skriptlar ishlamay qoladi. Asosan sodir bo'lishi mumkin bo'lgan 2 narsa bor:

  1. Kimdir eshik qo'ng'irog'ini chaladi.
  2. Kimdir oq ro'yxatga qo'shilgan.

Kimdir eshik qo'ng'irog'ini chaladi

Bunday holda, skript yuz aniqlanadigan suratga olinmaguncha suratga olishni boshlaydi. Aniqlangandan so'ng, yuzning 128 kodini hisoblash uchun "face_recognition" python paketining ba'zi usullari chaqiriladi. Keyin olingan kodlash whitelist.csv va blacklist.csv kodlari bilan taqqoslanadi. Mumkin bo'lgan natijalar quyidagi javobni beradi:

Oq ro'yxatda? Qora ro'yxatda? Javob
Ha Yo'q Yashil chiroq yonadi.
Ha Ha Sariq chiroq yonadi. Eshik qo'ng'irog'i kamerasi fotosuratlarni to'q sariq rangli Telegram botiga yuboradi. Agar kimdir ikkala ro'yxatga qo'shilsa, bu holat sodir bo'lishi mumkin. Misol uchun, kimdir dastlab xush kelibsiz, lekin keyinroq qora ro'yxatga kiritilgan.
Yo'q Yo'q Sariq chiroq yonadi. Eshik qo'ng'irog'i kamerasi rasmlarni to'q sariq rangli Telegram botiga yuboradi.
Yo'q Ha Qizil chiroq yonadi. Eshik qo'ng'irog'i kamerasi rasmlarni qizil belgi bilan Telegram botiga yuboradi.

Kimdir oq ro'yxatga qo'shilgan

Kimnidir oq ro'yxatga qo'shish uchun eshik qo'ng'irog'i bo'sh holatda turganida svetoforning sariq tugmasini bosing. Birinchidan, sariq chiroq yonadi. Agar yashil chiroq 3 marta yonib tursa, odamning yuzi oq ro'yxatga muvaffaqiyatli qo'shiladi. Agar yashil chiroq 3 marta yonmasa, urinish muvaffaqiyatsiz tugadi. Bunday holda, yana sariq tugmani bosing. Eshik qo'ng'irog'ini bosish va yashil chiroq o'tib ketmaganligini tekshirish orqali uning muvaffaqiyatli o'tganligini osongina aniqlash mumkin.

Qanday qilib odamni qora ro'yxatga qo'shish mumkin?

Shubhasiz, yomon niyatli odamlar bizga yuzlarining suratini berish uchun o'tib ketmaydi. Buning o'rniga, siz img/qora ro'yxat papkasida politsiya e'lon qilgan mashhur odamlarning rasmlarini qo'shishingiz mumkin. Har soatda bu papkada yangi rasmlar borligi tekshiriladi. Agar yangi rasm bo'lsa, yuzni kodlash hisoblab chiqiladi va blacklist.csv ga qo'shiladi. Keyin tasvir nomini o'zgartiradi va/img/qora ro'yxat/kodlangan papkaga o'tkaziladi.

Izohlar:

  • Skriptlarni RPi -ga kirish orqali boshqarish ko'proq nazorat va ma'lumotni beradi, lekin asosiy nazorat va ma'lumotni faqat svetofor displeyi yordamida olish mumkin.
  • Yuzni aniqlash "face_recognition" python to'plami yordamida amalga oshiriladi. Bu paket Dlib-ga asoslangan bo'lib, u yuzni aniqlashning zamonaviy algoritmini o'z ichiga oladi, u 99,38% aniqlikdagi Yovvoyi tabiat belgilarida aniqlanadi (manba: dlib.net-Deep Metric Learning yordamida yuqori sifatli yuzni aniqlash).).
Texnik yordamchi tanlovi
Texnik yordamchi tanlovi
Texnik yordamchi tanlovi
Texnik yordamchi tanlovi

Assistive Tech tanlovida birinchi sovrin

Tavsiya: