Mündəricat:

R-PiAlerts: Raspberry Pis ilə WiFi əsaslı bir təhlükəsizlik sistemi qurun: 8 addım (şəkillərlə)
R-PiAlerts: Raspberry Pis ilə WiFi əsaslı bir təhlükəsizlik sistemi qurun: 8 addım (şəkillərlə)

Video: R-PiAlerts: Raspberry Pis ilə WiFi əsaslı bir təhlükəsizlik sistemi qurun: 8 addım (şəkillərlə)

Video: R-PiAlerts: Raspberry Pis ilə WiFi əsaslı bir təhlükəsizlik sistemi qurun: 8 addım (şəkillərlə)
Video: Web Development - Computer Science for Business Leaders 2016 2024, Noyabr
Anonim
Image
Image
R-PiAlerts: Raspberry Pis ilə WiFi əsaslı bir təhlükəsizlik sistemi qurun
R-PiAlerts: Raspberry Pis ilə WiFi əsaslı bir təhlükəsizlik sistemi qurun
R-PiAlerts: Raspberry Pis ilə WiFi əsaslı bir təhlükəsizlik sistemi qurun
R-PiAlerts: Raspberry Pis ilə WiFi əsaslı bir təhlükəsizlik sistemi qurun

Masanızda işləyərkən birdən uzaqdan bir səs eşidirsiniz. Biri evə təzə gəldi? Maşın evimin qarşısında dayanıb, kimsə maşınıma girib? Araşdırmaq istəməyinizə qərar vermək üçün telefonunuzda və ya masanızda bildiriş almağınızı istəmirsinizmi? Yaxşı, artıq sual yoxdur! R-PiAlerts burada!

R-PiAlerts-R-PiAlerts, Firebase Buludu ətrafında qurulmuş bir Raspberry Pi3 əsaslı təhlükəsizlik sistemidir. Hərəkət aşkar edilərsə, sistem istifadəçiyə mətn mesajı və yanıb-sönən LED displey (hər cür səssiz vizual həyəcan siqnalı) ilə potensial girişi bildirəcəkdir. İstifadəçi bir bildiriş aldıqdan sonra araşdıra bilər. Bütün aşkar edilmiş hərəkətlər Firebase verilənlər bazasına daxil ediləcək. İstifadəçi bir veb brauzerində hərəkət qeydinə baxmaqla yanaşı, iOS tətbiqetməsi vasitəsi ilə də hərəkət qeydinə daxil ola bilər. Son vaxtlar həm nəqliyyat vasitələrinə, həm də ətrafımdakı evlərə girənlərin sayının artması səbəbindən bunu tikməyə qərar verdim.

Niyə Pi3? Hərəkəti aşkar edə bilən və lazım olduqda batareyanın tükənməsini təmin edən kiçik bir şeyə ehtiyacım var idi. Sonra cihazı qapının arxasında və ya maşında gizlədə bilərəm. Ayrıca bölmənin mənə bildiriş və ya xəbərdarlıq göndərə bilməsi lazımdır. Pi3 bütün bunları daxili wifi və USB batareya paketindən çıxma qabiliyyəti ilə edə bilər. Pi3 -ü seçməyimin digər səbəbləri:

  • Pi nisbətən ucuzdur
  • Yerləşdirmək və böyütmək asandır
  • Proqram baxımından konfiqurasiya edilə bilər
  • Ekran və sensorlardan istifadə etmək bacarığı. Bu layihə SenseHat istifadə edəcək
  • Başsız işləyin (monitor, klaviatura və ya siçan olmadan)

Bu necə işləyir

  • İdeal olaraq istifadəçinin Firebase verilənlər bazasına qoşulmuş 2 Raspberry Pisə ehtiyacı olacaq, ancaq tək bir Pi də işləyəcək.
  • SenseHat istifadə edərək, ilk Pi (Pi1) akselerometr ilə hərəkəti aşkar edəcək, ikinci Pi (Pi2) isə hərəkət bildirişlərini göstərəcək.
  • Pi1 hərəkəti algıladığında 3 şeyi edir

    • hərəkəti verilənlər bazasına daxil edin
    • Pi2 -nin göstərilməsi üçün verilənlər bazasında bir bildiriş girişi yaradın
    • istifadəçiyə hərəkəti bildirən bir mətn mesajı göndərin.
  • Pi2 verilənlər bazasından göstərmək üçün bir bildiriş aldıqda iki şey olur

    • Pi2 -nin LED displeyi bildirişi davamlı olaraq göstərəcək
    • İstifadəçi Pi2 SenseHat düyməsini aşağı basaraq bildirişi silə bilər. Bu da verilənlər bazasındakı bildiriş girişini siləcək.
  • İOS tətbiqi ilə istifadəçi edə bilər

    • verilənlər bazasına daxil olmaq; hərəkət jurnalını oxuyun və silin
    • istifadəçi Pi1 -in LED ekranında bir mesaj göstərmək üçün Pi1 göndərə bilər.

Praktik Tətbiqlər

  1. Küçədə avtomobilinizi wifi daxilində park etsəniz. Batareya paketini Pi1 -ə qoşun (şəkilə bax). Pi1 -i avtomobilinizdə gizlədin. Pi2 -ni masanızın yanında asanlıqla görünə biləcəyi bir yerə qoyun (şəkilə bax).
  2. Başqa bir tətbiq, Pi1 -i evinizə qapının kənarına yerləşdirməkdir. Pi o qədər kiçikdir ki, əksər insanlar, xüsusən də menteşə tərəfinin arxasındadırsa, fərq etməyəcəklər (şəkilə bax). Sonra Pi2 -ni iş masanıza qoyun.
  3. Köpək evin bir nöqtəsinə girə bilərmi? Bu əraziyə Pi1 qoyun. Köpəyinizin çeynəməməsi üçün Pi -ni möhkəm bir qutuya qoyduğunuzdan əmin olun.

Pisləriniz wifi aralığında olduğu müddətdə sizi hərəkətdən xəbərdar edə və ya xəbərdar edə bilər. İkinci bir Pi yoxdursa, hərəkəti aşkar etmək və cib telefonunuz vasitəsilə SMS bildirişləri almaq üçün Pi1 -dən istifadə edə bilərsiniz.

Materiallar Bill

  • Raspbian işləyən iki (2) Raspberry Pi 3s (Raspberry Pi 2 bir wifi kilidi ilə də işləyəcək)
  • İki (2) SenseHats
  • Mac və iOS cihazı

Proqram Lazımdır

  • Pyrebase kitabxanası (Firebase -ə qoşulmaq)
  • SenseHat kitabxanası (akselerometr və LED displeyə daxil olmaq üçün)
  • Twilio kitabxanası (SMS göndərmək üçün)
  • Python 3, ən son Raspbian ilə qurulmuşdur
  • IDLE ilə Raspbian
  • Mac -da Xcode8 və Cocoapods
  • Öyrənmək və araşdırmaq istəyi

Yan Qeyd Bu, yalnız Pi əsaslı təhlükəsizlik həlli deyil. Hər hansı bir fikriniz, təklifiniz varsa və ya sadəcə kodumu dəyişdirmək istəyirsinizsə, aşağıda bir şərh yazın! =)

Addım 1: Firebase və Twilio Hesablarını Qurun

Firebase və Twilio Hesablarını Qurun
Firebase və Twilio Hesablarını Qurun
Firebase və Twilio Hesablarını Qurun
Firebase və Twilio Hesablarını Qurun

Birincisi, Pis ilə məşğul olmağa başlamazdan əvvəl Firebase və Twilio qurmalıyıq. Firebase, Google -un bir xidmət olaraq arxa tərəfidir. Firebase, verilənlər bazası, bulud mesajlaşması, identifikasiya, saxlama və s. Kimi xüsusiyyətləri ehtiva edir. Bu layihə üçün yalnız Firebase -in real vaxt verilənlər bazasından və identifikasiyasından istifadə etməyimiz lazım olacaq. Firebase verilənlər bazanızda oxumaq və yazmaq üçün kimlik doğrulaması tələb olunacaq. Firebase qurmaq üçün:

  1. Pulsuz bir Firebase hesabı üçün qeydiyyatdan keçin
  2. Konsola gedin. Yeni bir layihə yaradın və ona bir ad verin.
  3. Sol menyunun altında "Baxış" düyməsini basın.
  4. "Veb tətbiqinizə Firebase əlavə et" düyməsini basın, APIKey və layihənizi kopyalayın (url deyil). Layihə ID, verilənlər bazası kimi fərqli URL -lərdə yerləşir:
  5. Sol menyunun altında "Doğrulama" düyməsini basın. "Giriş Metodu" na gedin və "E -poçt/Şifrə" ni aktiv edin
  6. "İstifadəçi" altında, seçdiyiniz e -poçt/şifrə ilə yeni bir istifadəçi hesabı yaradın. Verilənlər bazasına daxil olmaq üçün bu etimadnamədən istifadə edəcəksiniz.
  7. Sol menyunun altındakı "Veritabanı" na gedin.
  8. Bu sizin Veritabanınızdır. Hal hazırda boşdur. Doldurulduqda JSON formatında olacaq. URL, əvvəllər gördüyünüzlə eyni olmalıdır.

Twilio, inkişaf etdiricilərə müştərilərinə mesaj göndərməyə imkan verir. Pi hərəkəti aşkar etdikdə telefonunuza SMS göndərmək üçün istifadə edəcəyik. Twilio sizə SMS göndərmək üçün bir telefon nömrəsi təqdim edəcək. Twilio qurmaq üçün:

  1. Twilio saytında pulsuz bir hesab üçün qeydiyyatdan keçin
  2. Hesabınızı kopyalayınSID və authToken
  3. "Sınır Məhdudiyyətləri" ni vurun və "ilk Twilio telefon nömrənizi əldə edin" seçin.
  4. Yeni telefon nömrənizi kopyalayın

Addım 2: Pisinizi qurun

Pisinizi qurun
Pisinizi qurun
Pisinizi qurun
Pisinizi qurun

Pis proqramlaşdırmağa başlamazdan əvvəl bir az qurulma aparmalıyıq. Pis üçün parol daxil etdiyinizə əmin olun. Əvvəlcə SenseHat lövhələrini Pis -ə fiziki olaraq bağlayacağıq. Sonra, lazım olan SenseHat, Twilio və Pyrebase kitabxanalarını quraşdıracağıq. Firebase real vaxt verilənlər bazası mobil cihazlar və ya veb saytlar üçün hazırlanmışdır. Bununla birlikdə, Pyrebase kimi köməkçi kitabxana ilə Rest API vasitəsilə bulud verilənlər bazasını oxuya və yaza bilərik.

SenseHat -ı bağlayın SenseHats -ın Pis cihazınıza bağlı olduğundan əmin olun. Qeyri -adi bir vəziyyətiniz varsa, SenseHat -ı bağlamadan əvvəl Pi -ni çıxarmalı ola bilərsiniz.

Kitabxanaların quraşdırılması Bütün kitabxana qurğuları Terminalda aparılacaq

  • Pisinizi yükləyin, əgər hələ yoxsa.
  • Başladıqdan sonra SenseHat -da bu rəngli LED göy qurşağı əldə edirsən! (şəkilə bax)
  • Terminala gedin və yeniləyin/uzaqlaşdırın, yazın:

    • sudo apt-get yeniləməsi
    • sudo apt-get dist-upgrade
  • Yükseltmeler tamamlandıktan sonra, SenseHat kitabxanalarını yüklemek üçün aşağıdakıları yazın:

    sudo apt-get install-hat qurmaq

  • Pyrebase qurmaq üçün yazın:

    sudo pip pyrebase quraşdırın

  • Son olaraq Twilio qurun

    sudo pip twilio quraşdırın

Addım 3: Pi1 üçün Python Script

Daha əvvəl də qeyd etdiyimiz kimi, Pi1 hərəkəti aşkar etmək üçün istifadə ediləcək Pi olacaq. Hərəkəti təyin etmək üçün SenseHat -ın akselerometrinin dəyərlərindən istifadə olunacaq. Beləliklə, Pi1 kodu, akselerometr g qüvvə dəyərlərinə daxil olmaq və Firebase Veritabanına aşkarlanan hərəkətləri qeyd etmək ətrafında olacaq. İşdə proses axınının ümumi görünüşü:

  • Pi1 hərəkəti algılarsa, Firebase DB -də "siqnallar" uşağına bir giriş əlavə edəcək.
  • Pi1, "notifypi2" uşağını hərəkətlə əlaqədar bir bildiriş mesajı ilə də yeniləyəcək.
  • Pi2, sonra "notifypi2" oxuyur və LED matris ekranında bildirişi göstərir.

İzləməyiniz üçün Pi1 Python skriptini daxil etdim. Skriptdəki şərhlər kodun nə etdiyini izah edir.

Pi1 skripti üçün əlavə qeydlər və anlayışlar

  • Firebase və Twilio qurmaq üçün. Əvvəlki addımlardan kopyaladığınız uyğun API açarlarını, ID -ləri, parolları və s.
  • Firebase identifikasiyasına gəldikdə, əlavə təhlükəsizlik üçün bu etimadnamələrini sərt kodlaşdırmaq yerinə istifadəçi girişi istəyə bilərsiniz. Verilənlər bazasından hər dəfə yazdıqda və ya oxuduqda daxil etməliyik

    istifadəçi ['idtoken'] ilə

    almaq (), itələmək (), qurmaq () üsullar.

  • CPU istiliyinə ehtiyac var, buna görə Pi bir avtomobildə və ya qapalı bir mühitdə həddindən artıq istilərsə müdaxilə edə bilərik.
  • Mənfi dəyərləri bilməyimizə ehtiyac olmadığı üçün G qüvvələrinin mütləq dəyərini də alırıq. Yalnız G qüvvələrinin olub olmadığını bilmək lazımdır.
  • If ifadəsi, akselerometrin dəyərlərini yoxlayacaq. G qüvvələri hər hansı bir istiqamətdə 1 -dən çox olarsa, Pi1 hərəkət müddətini qeyd edəcək və öz LED displeyində nida işarəsi göstərəcək. "Notifypi2" uşağını da yeniləyəcək. "Notifypi2" yeniləndikdə Pi2 oxuyacaq və "!!!" göstərəcək. istifadəçiyə mümkün hərəkət/girilmə barədə məlumat vermək üçün LED displeyində. Pi1 də istifadəçiyə hərəkət barədə SMS bildirişi göndərəcək.
  • Push () metodundan istifadə edərkən, Firebase yeni bir girişlə bir uşağı avtomatik olaraq yaradacaq. Bu lazım idi, buna görə qeyd olunan hərəkət məlumatları unikal olacaq. Digər tərəfdən set () metodu əvvəlki məlumatların üzərinə yazacaq.
  • Verilənlər bazasını yoxlamaq üçün 10 saniyəlik döngə lazımdır, buna görə Pi -niz Firebase -dən dəfələrlə məlumat tələb etmir. Firebase -ə davamlı spam göndərsəniz, Google sizi təxminən 10 dəqiqə ərzində hesabdan çıxaracaq.
  • Nişan yenilənməsə, Firebase istifadəçini hər 60 dəqiqədən bir qovacaq. Yeniləməni 1800 saniyə (30 dəqiqə) olaraq təyin etdim.

Addım 4: Pi2 üçün Python Script

Pi2 üçün Python Script
Pi2 üçün Python Script

Fotoya baxırsınızsa, bu, Pi2 -nin mümkün hərəkət barədə bildiriş nümayiş etdirməsidir.

Pi2 -in ssenarisi, Pi1 -ə bənzəyir, ancaq ssenari hərəkəti aşkar etmir. Pi2 yalnız "notifypi2" uşağından gələn bildiriş mesajlarını göstərir və ya sıfırlayır. Yeganə fərq bu olduğuna görə aşağıda izah edəcəyəm.

  • Hər 10 saniyədə Pi2 göstərmək üçün "notifypi2" ni yoxlayacaq. Göstəriləcək bir bildiriş mesajı varsa, Pi2 davamlı olaraq istifadəçini görməsi üçün göstərəcək.
  • Joystick düyməsini basmaqla yalnız istifadəçi müdaxiləsi mesajı siləcək və verilənlər bazası tərəfində sıfırlanacaq.

Addım 5: Pis test edin

Image
Image
Pisi sınayın
Pisi sınayın

Pisləri sınamağın vaxtı gəldi.

  • Müvafiq olaraq Pis üçün skriptləri işə salın.
  • Firebase -ə daxil olun və layihələr bazası bölməsinə keçin.
  • Pi1 -ni silkələyin, Pi1 LED ekranında qırmızı bir ünlem işarəsi görməlisiniz. Bir SMS mesajı da almalısınız.
  • Verilənlər bazasını yoxlayın, xəbərdarlıq qeydləri görünməyə başlamalıdır. "notifypi2" də yenilənməlidir.
  • Pi2 -ə baxın. Siz də "!!!" Bu bildiriş mesajını silmək üçün joystickə basmaq kifayətdir. "notifypi2" sıfırlanmalıdır. Təsdiq etmək üçün Firebase'inizi yoxlayın.
  • Pi1 -ni hərəkətə çox həssas görürsünüzsə, Pi1 skriptində eşik həddini 1G -dən çox artırın.

Hər şey yaxşı olarsa, skriptləriniz çökməyəcək. İndi işləyən bir bildiriş sisteminiz var. Pi1 hərəkətləri və ya titrəmələri algıladığında, bir SMS mesajı bildirişi və Pi2 -də vizual LED bildirişi alacaqsınız.

Addım 6: R-PiAlerts IOS Tətbiqinin qurulması

R-PiAlerts IOS Tətbiqinin qurulması
R-PiAlerts IOS Tətbiqinin qurulması

İOS tətbiqetməsini qurmağın vaxtı gəldi! Tətbiq olduqca sadə olacaq. Bir LoginViewController və ItemsTableViewController olacaq. ItemsTableViewController, "xəbərdarlıqlar" uşağından xəbərdarlıq bildirişləri göstərəcək. Verilənlər bazası girişlərini də tətbiqdən silə bilərsiniz. Bir az baş ağrınızdan xilas olmaq üçün, Firebase üçün onlayn dərslərə baxmağı planlaşdırırsınızsa, keçən il o dövrdə böyük dəyişikliklər olduğu üçün 2016 -cı ilin martından sonrakı dərsləri axtardığınızdan əmin olun. Mart 2016 -dan əvvəl hər şey miras qalacaq. Sürətli sənədlərlə maraqlanırsınız, koddakı şərhləri nəzərdən keçirin. Verilənlər bazasını oxuyan bir Firebase tətbiqinin necə qurulacağına dair ətraflı bir dərs istəsəniz, Ray Wunderlichin təlimatına baxın.

İOS Layihənizə Baxışınızı Qurun

  • Xcode -da tək görünüşlü bir iOS layihəsi yaradın.
  • Paket identifikatorunu kopyalayın
  • Veb saytdakı Firebase layihənizə gedin və paket identifikatoru olan bir info.plist faylı yaradın.
  • GoogleService-info.plist faylını layihənizə əlavə edin. Bu info.plist yalnız yaratdığınız xüsusi Firebase Layihəsi ilə işləyir.
  • Xcode -dan çıxın və Firebase -i Cocoapods vasitəsilə quraşdırın. Doğrulama və Veritabanı qurduğunuzdan əmin olun.
  • Xcode -u yenidən başladın, sonra Firebase üçün AppDelegate.swift -i konfiqurasiya edin. Yalnız 2 satır kod tələb edir.

    Firebase -i idxal edin bir

    FIRApp.configure (). İsteğe bağlı olaraq, Firebase yalnız 1 satır kod götürən davamlılıq xüsusiyyətinə malikdir

    FIRDatabase.database (). PersenceEnabled = doğru

  • Ətraflı quraşdırma addımlarını Firebase veb saytında tapa bilərsiniz

Tətbiqin Firebase Verilənlər Bazası ilə necə qarşılıqlı əlaqəsi var:

  • Tətbiq istifadəçini təsdiqləməlidir.
  • Doğrulandıqdan sonra tətbiq Firebase verilənlər bazasının görüntüsünü alır və onu "Item" obyekti olaraq saxlayır.
  • Bu obyekt bir sıra dolduracaq. Cədvəl görünüşünü doldurmaq üçün bu sıra istifadə ediləcək.
  • Müşahidəçi Firebase verilənlər bazasında dəyişiklikləri izləyəcək və anlıq görüntü yaradacaq.
  • Dəyişikliklər aşkar edildikdən sonra yeni anlıq görüntüdən sıra əlavə olunacaq.
  • Dəyişiklikləri göstərmək üçün Cədvəl görüntüsü yenidən yüklənəcək.

Tətbiqi necə quracağınıza dair ümumi məlumat

  • Tətbiqin Xcode interfeys qurucusunda necə qurulduğuna dair bir şəkilə baxın.
  • Interfeys qurucusunda ViewController yaradın və xüsusi sinfi LoginViewController.swift -ə yönəldin.
  • E -poçt və şifrə üçün mətn sahələri əlavə edin. Şifrə sahəsi üçün "Təhlükəsiz Mətn Girişi" ni açmağı unutmayın. Giriş düyməsini əlavə edin.
  • Mətn sahələrini və düyməni LoginViewController.swift ilə əlaqələndirin. LoginViewController.swift identifikasiyanı idarə edəcək.
  • İnterfeys qurucusuna Naviqasiya Nəzarətçisi əlavə edin. LoginViewController -dən Naviqasiya Nəzarətçisinə bir seqge yaradın. Seque bir identifikator verdiyinizə əmin olun.
  • Naviqasiya nəzarətçisi ilə birlikdə gələn yeni masa görünüşünün xüsusi sinifini ItemsTableViewController.swift -ə işarə edin. ItemsTableViewController -də 2 düyməm var: Çıxış və Əlavə et düyməsi. Düymələri ItemsTableViewController.swift -ə bağlayın.
  • LoginViewController.swift kodu ilə əlaqədar. İstifadəçi giriş məlumatlarını daxil edəcək və Firebase istifadəçini geri qaytaracaq. Bir istifadəçi varsa, identifikatorla bir seqment həyata keçirəcək. (əlavə edilmiş koda baxın)
  • Item.swift sinifini əlavə edin (əlavə edilmiş koda baxın)
  • ItemsTableViewController koduna gəlincə, olduqca standart cədvəl kodudur. Verilənlər bazanızdakı dəyişiklikləri bir maddə obyekti olaraq anlıq olaraq saxlayan bir müşahidəçi olacaq. Sonra Item obyekti cədvəl görünüşünü doldurmaq üçün massivə əlavə edəcək. Əlavə et düyməsi, Firebase verilənlər bazasında Pi1 -in oxunması və göstərilməsi üçün bir giriş təyin edir. Gülmək üçün kod da əlavə etdim (əlavə edilmiş koda baxın)

Addım 7: Tətbiqi sınayın

Tətbiqi sınayın
Tətbiqi sınayın
Tətbiqi sınayın
Tətbiqi sınayın
Tətbiqi sınayın
Tətbiqi sınayın

Tətbiqinizi işə salın

  • Giriş edin və Pi1 -ni silkələyin. Yeni xəbərdarlıq bildirişlərinin görünməsini görməyə başlamalısınız.
  • Əlavə et düyməsinə toxunun və Pi1 -in mesajınızı göstərməsini izləyin.
  • Sola sürüşdürün, "Xəbərdarlıqlar" girişlərinin silinəcəyinə baxın.
  • Sürətlə çox sayda bildiriş alırsınız? akselerometr eşikini tənzimləyin və ya Pi1 skriptində yuxu müddətini artırın.

Addım 8: Nəticə

Nəticə
Nəticə
Nəticə
Nəticə

Əla! İndi hərəkəti aşkar edə və hərəkətlər barədə bildirişlər göndərə bilən Pisimiz var. Bunun üzərinə, iOS cihazınızla xəbərdarlıq mesaj qeydinizi idarə edə bilərsiniz! Pis'i yerləşdirməyin vaxtı gəldi. Pi1 -i qapınızın yanına və Pi2 -ni iş sahənizin ətrafına qoyun. Növbəti dəfə kimsə girəndə vəziyyəti yoxlaya bilərsiniz! Ya da daha yaxşısı, batareyanızla avtomobilinizdə Pi -də gizlənməyə çalışın. Qapıları bir neçə dəfə döyün, görün nə olacaq!

Bu, Raspberry Pi və Firebase ilə nə edə biləcəyinizə dair imkanların yalnız bir başlanğıcıdır. SenseHat -a ətraf mühit sensörleri, gyros və pusula da daxildir. Ətrafınıza müəyyən dəyişiklikləri daxil etmək üçün Pisinizi qura bilərsiniz. Oyununuzu gücləndirmək istəyirsiniz? Pi'niz hərəkətləri algıladıqda, şəkillər çəkən bir kamera istifadə edin və fotoşəkillərinizə Pi mətnini yazdırın. Həm də üzləri tanımaq üçün kompüter görmə alqoritmindən istifadə etməyə çalışın. tanıdığınız birinin üzü varsa, xəbərdar ola bilərsiniz! Əylənin!

Tövsiyə: