İçindekiler:

Bu Yaz Bebeğinizi Serin Tutmak - Aptal Hayranları Akıllı Şeylerle Kontrol Etmek!: 6 Adım (Resimlerle)
Bu Yaz Bebeğinizi Serin Tutmak - Aptal Hayranları Akıllı Şeylerle Kontrol Etmek!: 6 Adım (Resimlerle)

Video: Bu Yaz Bebeğinizi Serin Tutmak - Aptal Hayranları Akıllı Şeylerle Kontrol Etmek!: 6 Adım (Resimlerle)

Video: Bu Yaz Bebeğinizi Serin Tutmak - Aptal Hayranları Akıllı Şeylerle Kontrol Etmek!: 6 Adım (Resimlerle)
Video: 15 Bilmeceyi Çözebilirseniz Sherlock’tan Daha Akıllısınız 2024, Kasım
Anonim
Bu Yaz Bebeğinizi Serin Tutmak - Aptal Hayranları Akıllı Şeylerle Kontrol Etmek!
Bu Yaz Bebeğinizi Serin Tutmak - Aptal Hayranları Akıllı Şeylerle Kontrol Etmek!
Bu Yaz Bebeğinizi Serin Tutmak - Aptal Hayranları Akıllı Şeylerle Kontrol Etmek!
Bu Yaz Bebeğinizi Serin Tutmak - Aptal Hayranları Akıllı Şeylerle Kontrol Etmek!

İki hafta önce bunu yazarken, inanılmaz bir erkek bebek babası oldum!

Mevsimlerin değişmesi, günlerin uzaması ve havaların ısınması ile birlikte, yukarıların ne kadar sıcak olduğunu kontrol etmek için çocuk odasında bir tür monitör bulundurmanın iyi olacağını düşündüm!

Yıllar boyunca çok fazla python ile uğraşmadım ama yaklaşık 5 yıl önce üniversitedeki ilk yılımdan bu yana geri dönmek istedim! Bu nedenle, daha sonra bana yardım etmek, aynı şeyi yapmak isteyen başka birine de yardım etmek için yaptıklarımı belgelemenin daha iyi olacağını düşündüm!

Bir Raspberry pi, Enviro pHAT ve akıllı bir TP-link kasa fişi kullanarak, IFTTT çerçevesini kullanarak fişleri kontrol edebilirsiniz! bunu yapmak gerçekten çok basit ve hatta farklı sensörler ve farklı cihazlar aracılığıyla herhangi bir şeyi kontrol etmek için bu izlenecek yolu değiştirebilirsiniz! Umarım bunu faydalı bulursunuz. Bu talimatı beğendiyseniz, lütfen sensörler yarışmasında sunumuma oy vermeyi unutmayın!:D (sorduğum için üzgünüm), bunu ilk kez yapıyorum ve buna harcadığım her zaman için bir şeyler kazanma şansına sahip olmak istiyorum

** DÜZENLE ** Önümüzdeki birkaç gün içinde bu verileri bir Grafana panosuna aktarmaya bakacağım, bunun iyi olacağını düşünüyorsanız, bildirin!:NS

Hemen konuya girelim…

Gereçler

  1. Herhangi bir Ahududu pi yapacak ama çekilişimde vermem gereken şey olduğu için Sıfır W'yi seçtim, ayrıca varsayılan olarak WiFi etkinken en küçük form faktörüne de sahip! - Ahududu PI Sıfır w
  2. SD kart, herkesin bunlarla ilgili tercihleri farklı ama ben bunlardan birini kullandım! - Mikro SD kart
  3. Sıkışırsanız, SD kartlar için resmi desteklenen belgeler - resmi desteklenen SD kartlar
  4. Jumper kabloları (daha sonra açıklanacaktır) - Jumper kabloları
  5. Tüm muhteşem sensörler için Enviro pHAT! - Envrio-pHAT
  6. Akıllı bir fiş, kutuyu çalıştırmak için herhangi bir süslü hub'a ihtiyacınız olmadığından TP-Link ile gittim! - Akıllı Fiş!
  7. Kontrol etmek için aptal bir fan, herhangi bir fanı kullanabilirsiniz, amazon'da bir fan buldum, ancak herhangi bir duvar prizi fanı iyi çalışır - Aptal fan
  8. Bir havya, ancak bir havya kullanmak istemiyorsanız, PI ve pHAT'ınız için başlıklara tıklayabilirsiniz - GPIO-hammer-header

TP-links ile IFTTT arasında bir bağlantının çalışması için, bu talimata başlamadan önce bir TP-link kasası ve IFTTT hesabınızın kurulmuş olması gerekir. TP-link akıllı fişinizi aldığınızda, akıllı fişle birlikte verilen talimatlar, fişinizin nasıl adlandırılacağı ve temel işlevleri dahil olmak üzere kurulum sürecinde size rehberlik edecektir

Tüm alışveriş listenize sahip olduğunuzda, hepsini bir araya getirmenin zamanı geldi!

Adım 1: Raspberry Pi'nizi Ayarlama

Mikro-SD kartınızı görüntüleme En yeni ve en iyi Raspbian görüntüsünü alın, lite sürümü sıfır w için daha iyi olmasa da iyi sonuç verecektir! -

Bu görüntüyü SD karta yazın, bunun için bir okuyucuya ve bir görüntüleyiciye ihtiyacınız olacak, etcher kullanıyorum -

Wifi Kurulumu (isteğe bağlı) Eğer PI'niz yerleşik bir WIFI'ye sahipse, daha sonra konsollarla uğraşmaktan kurtulmak için neden şimdi kurmuyorsunuz?

Pi'niz görüntülendikten sonra sürücü çıkarıldı. Makineniz tarafından tekrar algılanması için SD kartın bağlantısını kesin ve bağlayın. Bir önyükleme bölümü görünmelidir.

Pi'nizin önyükleme bölümünde wpa_supplicant.conf adlı boş bir dosya oluşturun, buraya aşağıdakileri bu yeni dosyaya yerleştirin:

ağ={

ssid="YOUR_SSID" psk="YOUR_WIFI_PASSWORD" key_mgmt=WPA-PSK }

Seçtiğiniz PI'de SSH'yi etkinleştirme (isteğe bağlı)

Varsayılan olarak, temiz bir Raspbian görüntüsü, ssh'sini devre dışı bırakacaktır. Sistemi başlatmanız, bir klavye bağlamanız ve Pi'ye görüntülemeniz ve ardından ssh'yi etkinleştirmeniz gerekir. Bu adım, ilk açılışta ssh'yi etkinleştirecektir. Önyükleme bölümünde, ssh adında yeni bir dosya oluşturun. Tam olarak bu ada sahip boş bir dosya.

İsteğe bağlı iki adımı tamamladıktan sonra, PI'niz otomatik olarak WIFI'nıza bağlanacak ve varsayılan olarak SSH'yi etkinleştirecektir.

Micro-SD kartı görüntüleyip yapılandırdıktan sonra, onu PI'nize veya seçiminize takabilir ve çalıştırabilirsiniz!

PIO'nuzu güncelleme PI'nizi başlattıktan sonra, kablosuz yönlendirici ayarlarınızda PI'nizin IP adresini bulabilirsiniz. Çoğu yönlendirici farklıdır, bu nedenle maalesef bunun için bir kılavuz yazmak zor olacaktır!

PI'nizin IP'sini aldıktan sonra, SSH üzerinden bağlanın ve aşağıdakilerle giriş yapın:

Kullanıcı adı: pi

Şifre: ahududu

PI'niz ile aktif bir SSH oturumunuz olduğunda, onu güncellemek isteyeceksiniz, güncelleme boyunca aşağıdakini ilgili Y veya N ile çalıştırmanız yeterlidir:

sudo apt-get güncellemesi

sudo apt-get yükseltme

En son güncellemelerle yeniden çalıştırıldığından emin olmak için herhangi bir yeni güncelleme yüklendikten sonra bir PI'yi yeniden başlatmak her zaman iyidir, bu

sudo yeniden başlatma -n

Şimdi PI hazır, bir sonraki adıma geçme zamanı!

2. Adım: Enviro PHAT'ınızı Ayarlayın

Enviro PHAT'ınızı Ayarlama
Enviro PHAT'ınızı Ayarlama
Enviro PHAT'ınızı Ayarlama
Enviro PHAT'ınızı Ayarlama

Enviro pHAT'ınızı kablolama

Pi'nizin tamamı güncel olduğunda, Enviro pHAT'ınızı istediğiniz PI'ye bağlayabilirsiniz!

***PI'nize veya pHAT'nize zarar vermediğinizden emin olmak için önce kapattığınızdan emin olun***

Burada jumper kablolarını kullandım çünkü Enviro pHAT altında CPU'nun ısınmasından termal yıkama alabilirsiniz. Bu ekstra ısı, daha sonra alacağınız sıcaklık okumalarını değiştirebilir. Bu nedenle aşağıdaki pinlerde 5 jumper kablosu kullandım:

  • Pin 3 – GPIO2 (SDA I2C)
  • Pin 5 – GPIO3 (SCL I2C)
  • Pim 7 – GPIO4
  • Pim 6 – Toprak
  • Pim 4 - 5V

Görsel referans için lütfen bu adımın üst kısmındaki kablo şemasını veya aşağıdaki bağlantıyı kontrol edin:

pinout.xyz/pinout/enviro_phat

(boya işi için kusura bakmayın)

pHAT'ınızı bağlarken, doğru şekilde ayarladığınızdan emin olun, aksi takdirde potansiyel olarak ona zarar verebilirsiniz!!! Bunu yapmak için, ANALOG IN başlıkları SD kart yuvasına doğru olacak şekilde benim kurulumum vardı, bu daha sonra resimlerimde "taşıyıcıma" tam olarak sığması için çevrildi.

Bağımlılıkları yükleme

PI'nizi yedekleyin ve SSH'yi tekrar açın

PI'nize geri döndüğünüzde, Enviro pHAT'niz için gerekli paketleri ve yazılımı kurmak için aşağıdakileri çalıştırın:

curl https://get.pimoroni.com/envirophat | bash

Gerektiğinde Y veya N'ye bastığınızdan emin olun.

Yükleme tamamlandıktan sonra, PI'nizi yeniden başlattığınızdan emin olun…

sudo yeniden başlatma -n

pHAT'ı test etme

pHAT'ınızın doğru şekilde bağlandığından emin olmak için, bir python modülüne düşebilir ve PI'nize geri dönüp python yazarak birkaç komut çalıştırabilirsiniz, bir python modülünde bir kez aşağıdakini yazın:

envirophat ithalat havasından

print(weather.temerpature())

Bu size aşağıdaki gibi bir okuma göstermelidir:

>> envirophat ithalat havasından

>> print(weather.temperature()) 24.0806166987

Sorun giderme

Aşağıdaki bir hatanın satırları boyunca bir şey alırsanız:

Geri izleme (en son arama): Dosya "", satır 1, Dosya "/usr/lib/python2.7/dist-packages/envirophat/bmp280.py", satır 134, sıcaklık self.update() Dosya " /usr/lib/python2.7/dist-packages/envirophat/bmp280.py", satır 169, güncellemede if self._read_byte(REGISTER_CHIPID) == 0x58: # sensör kimliğini kontrol edin 0x58=BMP280 Dosyası "/usr/lib/ python2.7/dist-packages/envirophat/bmp280.py", satır 116, _read_byte içinde self.i2c_bus.read_byte_data(self.addr, register) IOError: [Errno 121] Uzak G/Ç hatası

Daha sonra çalıştırabilirsiniz:

sudo i2cdetect -y 1

Bu, bağlantılarınız/kablolamalarınız üzerinde bir teşhis kontrolü yapacak ve aşağıdaki gibi bir şey arıyor olacaksınız:

pi@raspberrypi:~ $ sudo i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 abcdef 00: -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- 1d -- -- 20: -- -- -- -- -- -- -- - - -- 29 -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- 49 -- -- -- -- -- -- 50: -- -- -- -- -- -- -- - - -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - 70: -- -- -- -- -- -- -- 77

Değilse, geri dönüp kablolamanızı tekrar kontrol etmeniz gerekecek, lütfen kablo şemasını kontrol edin ve tekrar deneyin!

pi-baby-cooler.py betiğini yükleme

Her şey yolundaysa ve sıcaklık ölçümü almayı başardıysanız, devam edip baby-cooler.py paketini kurabiliriz!

Instructables'ın bağlantıları nasıl işlediğinden dolayı, yukarıdaki adım başlığına.py betiğini ekledim… Bunu PI'nize kopyalamak için WinSCP gibi bir şey kullanmanızı öneririm:

winscp.net/eng/download.php

WinSCP, Microsoft Windows için popüler bir SFTP istemcisi ve FTP istemcisidir! FTP, FTPS, SCP, SFTP, WebDAV veya S3 dosya aktarım protokollerini kullanarak yerel bir bilgisayar ile uzak sunucular arasında dosya kopyalayın.

WinSCP'nin kullanımı kolaydır, sadece PI'nizin IP adresini kullanarak PI'nize bağlanın ve ardından.py dosyasını çalıştırmak istediğiniz yere sürükleyip bırakın, bu benim için /home/pi'den.

Şimdi.py betiği PI'nizde, IFTTT hesabınızı / bağlantılarınızı kurmaya geçme zamanı

3. Adım: IFTTT Hesabınızı/bağlantınızı Ayarlama

IFTTT Hesabınızı/bağlantınızı Ayarlama
IFTTT Hesabınızı/bağlantınızı Ayarlama
IFTTT Hesabınızı/bağlantınızı Ayarlama
IFTTT Hesabınızı/bağlantınızı Ayarlama
IFTTT Hesabınızı/bağlantınızı Ayarlama
IFTTT Hesabınızı/bağlantınızı Ayarlama

Sırada bir IFTTT belirteci almaya bakacağız, bu, kasa fişine bağlanmak ve fanı açmak/kapatmak için komut dosyasındaki sıcak/soğuk işlevini çağırırken kullanılacaktır.

Web kancalarını oluşturma

Https://ifttt.com/ adresine gidin ve henüz bir hesabınız yoksa bir hesap oluşturun.

Giriş yaptıktan sonra, arama çubuğunda şunu arayın: TP-link kasa

Bu yüklendikten sonra, hizmetler'e ve ardından TP-link kasa'ya tıklayın. Ardından kasa hesabınızı IFTTT hesabınıza bağlamanız, bağlantı kurmak için IFTTT üzerinden kasa hesabınıza giriş yapmanız gerekecektir.

Hesabınızı bağladıktan sonra "Uygulamalarım"ı ve ardından yeni uygulamayı tıklayın, ardından "+bu"yu tıklayın ve web kancalarında arama yapın.

Etkinlik adı türünde hot (bu, istediğiniz herhangi bir şey olabilir, ancak bunu daha sonra pi-baby-coller.py betiği içinde güncellemeniz gerekir, aksi takdirde bu işe yaramaz, döndürmek için hot kullandım) içinde "Bir web isteği al" seçeneğini tıklayın. fanı kapatmak için fanı açın ve soğutun. Ardından tetikleyici oluştur'a tıklayın.

Sırada, yeni tetikleyicinizi Kasa hesabınıza bağlamamız gerekiyor, "+bu" düğmesini tıklayın ve kasayı arayın, TP-bağlantı kasasını tıklayın ve ardından "aç"ı tıklayın, bundan sonra açmak istediğiniz cihazı seçin, ardından oluştur'u tıklayın. eylem. Eylemi gözden geçirin ve doğruysa bitir'i tıklayın.

**********

"Sıcak" ve "soğuk" dışında başka bir Etkinlik adı seçtiyseniz, bunları daha sonra not etmeniz ve senaryoyu güncellemeniz gerekeceğini unutmayın! Aksi takdirde.py betiği çalışmaz

**********

İlk web kancamızı oluşturduktan sonra "soğuk" için işlemi tekrarlayın, ancak bu sefer +o eylemini seçerken aç yerine kapat seçeneğini seçiyorsunuz.

Uygulamalarım hesabı bölümünde iki etkinlik web kancası olduğunda, hizmetleri tıklayın ve web kancalarını arayın ve ardından buna tıklayın. Burada bir dokümantasyon düğmesi göreceksiniz (sağ üstte), buna tıklayın. IFTTT jeton anahtarınızı burada bulacaksınız. Burada anahtarınızı not edin (daha sonra ihtiyacınız olacak), benimkini resimde düzenledim, aksi takdirde herkes akıllı fişlerimi açıp kapatabilir.

Web kancalarını test etme

Artık kasa hesabımıza bağlı iki web kancası oluşturduk, çalışıp çalışmadıklarını test edebiliriz!

PI'niz içinde aşağıdakileri girebilirsiniz:

curl -X POST

"Sıcak" yazan yere etkinlik adınızı eklemeniz gerekir, "sıcak" olarak bıraktıysanız bunu boş bırakın. /siz… yazdığı yerde bunu IFTTT jeton anahtarınızla değiştirmeniz gerekir. Enter tuşuna basın ve ardından akıllı fiş rölenizin fişi açan tıklama sesini duymalısınız. Duyamıyorsanız, fişlerinizin durumunu kontrol etmek için Kasa uygulamasını kontrol edebilirsiniz.

Artık Enviro pHAT'ımızın bağımlılıkları yüklü ve şimdi IFTTT kurulumuna sahibiz, kodu değiştirerek bitirme zamanı.

4. Adım: Komut Dosyasını Düzenleme

Komut Dosyasını Düzenleme
Komut Dosyasını Düzenleme

Etkinlik adı ve IFTTT TOKENSpi'nize geri dönün, pi-baby-cooler.py betiğinizin konumuna yükselin, benim için /home/pi'de (ana klasörüm) ve dosyayı nano kullanarak düzenleyin:

nano pi-baby-cooler.py

Bulucu içinde def turn_off() yazan yerde

def dönüş_kapalı():

# Tetikleyici kelimenizi ayarlayın - ör. "soğuk" - ve aşağıdaki IFTTT Web kancası belirteci. TRIGGER_WORD = "soğuk" TOKEN = "IFTTT TOKENİNİZ BURAYA GİDİYOR" request.post("https://maker.ifttt.com/trigger/{trigger_word}/with/key/{token}".format(trigger_word=TRIGGER_WORD, jeton=TOKEN)) print("Hayran kapalı!"):

Fanı kapatma işlevi budur. Bunu, tplink HS100'ün kapanmasını tetikleyen IFTTT'ye bir web kancası göndererek yapar. IFTTT hesabınızdaki tetikleme işini "soğuk" ile aynı tuttuysanız, bunu olduğu gibi bırakabilir ve daha önce web kancası belgelerinden aldığınız belirteci değiştirebilirsiniz. Farklı bir etkinlik adı seçtiyseniz, bu kelimeyi burada değiştirin.

IFTTT jetonunuzu yapıştırdıktan sonra, def turn_on() yazan sonraki bölüme gidin.

def turn_on():# Tetikleyici kelimenizi ayarlayın - ör. "sıcak" - ve aşağıdaki IFTTT Web kancası belirteci. TRIGGER_WORD = "hot" TOKEN = "IFTTT TOKENİNİZ BURAYA GİDİYOR" request.post("https://maker.ifttt.com/trigger/{trigger_word}/with/key/{token}".format(trigger_word=TRIGGER_WORD, jeton=TOKEN)) print("Fan açık!")

Bu fonksiyon kapatmanın tersidir, TP-link akıllı fişi açar!

IFTTT hesabınızdaki tetikleme işini "sıcak" ile aynı tuttuysanız, bunu içeride bırakabilir ve daha önce web kancaları belgelerinden aldığınız belirteci değiştirebilirsiniz. Farklı bir etkinlik adı seçtiyseniz, bu kelimeyi burada değiştirin.

Diğer her şey zaten kodlanmıştır, bu nedenle TRIGGER_WORD, TOKEN ve bir sonraki sıcaklıkta birkaç ayarlama dışında kodda herhangi bir değişiklik yapmanız gerekmez!

Sıcaklıkların değiştirilmesi

Sırada, # Yerel değişkenler yazan yeri bulun.

deneyin: # Yerel değişkenler. durum = 0 # Düşük anahtarın durumunu ayarlar = 20 # Sıcaklık seviyesi için düşük değer (santigrat). yüksek = 24 # Sıcaklık seviyesi için yüksek değer (santigrat). periyot = 120 # Çağrılar arasındaki saniye cinsinden gecikme.

Durum değişkeni, pi'nin fişin açık olup olmadığını nasıl bildiğidir, çok ısınırsa bu daha sonra güncellenir (24+*c sonra durum daha sonra 1'e değiştirilir), bu da webhook'a ateşlenir ve döner akıllı fiş açık!

Düşük değişken, fiş kapatılmadan önce odanın ne kadar soğuk olmasını istediğimdir. Odanın daha sıcak olmasını istiyorsanız, bunu daha yüksek bir değere değiştirmeniz yeterlidir. Daha soğuk olmasını istiyorsanız değeri düşürün.

Yüksek değişken, fanın devreye girip odayı soğutmaya başlamasını istemeden önce odanın almasını istediğim maksimum sıcaklıktır. Fanın bundan önce çalışmasını istiyorsanız, değeri düşürmeniz veya daha sıcak olmasını istiyorsanız değeri yükseltmeniz yeterlidir.

Periyot değişkeni, sıcaklık kontrolleri arasındaki saniye cinsinden süredir, pi komut dosyasının daha az sıklıkta kontrol etmesini istiyorsanız sayıyı yükseltin, eğer süreyi kısaltmak istiyorsanız sayıyı azaltın.

Değişikliklerinizi yaptıktan sonra kaydedin ve nano'dan çıkın

CTRL + x

Adım 5: Komut Dosyasını Kullanma

Komut Dosyasını Kullanma
Komut Dosyasını Kullanma

Komut dosyasını yerel olarak çalıştırma

Bu betiği çalıştırmanın birkaç yolu vardır, SSH üzerinden bağlanıp aşağıdakini yazabilirsiniz:

sudo python /pi-baby-cooler.py

Bu, komut dosyasını isteğe bağlı olarak çalıştıracaktır, bu yalnızca PI'de aktif bir SSH oturumu olduğu sürece çalışacaktır. Diğer yol ise ekranı kullanmaktır, ekran varsayılan olarak yüklenmez, sanmıyorum, bu yüzden bir sudo apt yükleme ekranının kullanılması gerekecek.

İşte ekranın nasıl düzgün kullanılacağına dair harika bir eğitim:

Screen veya GNU Screen bir terminal çoklayıcıdır. Başka bir deyişle, bir ekran oturumu başlatabileceğiniz ve ardından o oturum içinde istediğiniz sayıda pencereyi (sanal terminaller) açabileceğiniz anlamına gelir. Ekranda çalışan işlemler, bağlantınız kesilse bile pencereleri görünmediğinde çalışmaya devam edecektir.

Önyüklemede çalıştırmak için otomatikleştirme

Diğer yol, nano'yu kullanmak için /etc/rc.local içindeki önyükleme dosyasını düzenlemektir.

sudo nano /etc/rc.local

Bu dosyayı düzenlemek, komut dosyasının önyüklemede çalışmasını sağlar. yani PI açıkken her zaman çalışacak, ayrıca komut dosyalarımın %90'ını diğer PI'lerde bu şekilde çalıştırıyorum.

rc.local'ı kullandıysanız, o anda PI'de nelerin çalıştığını kontrol etmek için aşağıdaki komutu çalıştırabilirsiniz. Bu, betiğin çalışıp çalışmadığını görmek için daha sonra sorun gidermek için kullanışlıdır:

ps -aef | grep pitonu

Adım 6: Tamamlandı

Peki… Hala buradaysan ve bu noktaya geldiysen teşekkürler!

Üzgünüm oldukça uzun oldu, bu benim ilk dersimdi ve ne yazacağımdan tam olarak emin değildim.

Başta bahsettiğim gibi, bu talimatın akıllı bir fişi tetiklemek için ısı kullanarak birçok farklı uygulaması var! Evdeki/dairedeki/apartmandaki/garajdaki/barakadaki herhangi bir odayı soğutabilirsiniz. IFTTT ile kontrol edilebilen herhangi bir akıllı cihazı tetiklemek için IFTTT'yi bile değiştirebilirsiniz, sadece TP-link kasa cihazları olması gerekmez.

Bu talimatları denediyseniz veya ilginç bulduysanız bile lütfen bana aşağıda bir yorum bırakın!

Herhangi bir sorunuz varsa, bunları aşağıda bıraktığınızdan emin olun; onlara cevap vermek için elimden geleni yapacağım!

Sensörler Yarışması
Sensörler Yarışması
Sensörler Yarışması
Sensörler Yarışması

Sensörler Yarışmasında İkincilik

Önerilen: