Ahududu Pi ile Odaya Girdiğinizde Kendi Tema Ayarınızı Oynayın

  • Edmund Richardson
  • 0
  • 4000
  • 328
reklâm

Hiç kişisel bir karşılama evine gelmek istediniz mi? Ahududu Pi ve birkaç basit bileşen ile yapabilirsiniz! Bu basit projede, bir kapı açıldığında tema ayarını tetiklemek için reed anahtarı kullanacağız. Buradaki denetleyici olarak bir Raspberry Pi kullanıyor olacağız, ancak diğer tüm mikrodenetleyicileri kullanabilmenize rağmen $ 5 Mikrodenetleyici: Arduino, Raspberry Pi Zero veya NodeMCU? 5 $ Mikrodenetleyiciler: Arduino, Ahududu Pi Sıfır mı, NodeMCU mu? Eskiden bilgisayar almak istersen, parasını ödemek için evini yeniden yatırman gerekecekti. Şimdi, bir Abraham Lincoln için bir tane alabilirsiniz. Bu proje için aynı devreyi kullanarak. İşte bir demo.

İhtiyacın olacak

Büyük olasılıkla bu işlemi yapmanız gereken tüm parçalara zaten sahip olacaksınız (yaklaşık 2-3 dolar olan kamış anahtarı dışında veya 5 dolardan 8 doların üzerinde bir paket alabilirsiniz).

  • Ahududu Pi (herhangi bir model bunun için çalışacak).
  • 1 x 220 Ohm direnç.
  • 1 x 1K Ohm direnci.
  • 3 x 10K Ohm direnci.
  • 1 x Manyetik reed anahtarı.
  • 1 x LED.
  • 2 x düğme anahtarı.
  • maketler.
  • Bağlama kabloları.
  • Bilgisayar hoparlörü veya benzeri.

Odaya girildiğinde bir şarkıyı çalmak için Raspberry Pi'yi kullanacağız ve gecikmeli olarak etkinleştirmek ve programı durdurmak için breadboard'umuzda düğmeleri olan bir devre tasarlayacağız..

Bu proje, daha çok eğlenmek için yapılsa da, DIY ev otomasyonunda birçok uygulamanın temellerini içermektedir. Ahududu Pi ve Arduino ile Ev Otomasyonu Rehberi Ahududu Pi ve Arduino ile Ev Otomasyonu pazarı, bir tane ile uyumsuz, pahalı tüketici sistemleri ile doludur yüklemek için başka ve pahalı. Bir Ahududu Pi ve bir Arduino'nuz varsa, temelde aynı şeyi başarabilirsiniz… ve ayrıca DIY ev güvenliği DIY Ev Güvenlik Sistemi Çözümü mü Arıyorsunuz? Bunlardan birini deneyin DIY Ev Güvenlik Sistemi Çözümü? Bunlardan Birini Deneyin Dijital teknoloji ve her zaman bağlı donanım çağında, bir ev güvenlik sistemi kurmak, duvara alarm şeklinde bir kutu koyma sanatını aşmalıdır..

Başlamak

Devremizi yaparak başlayalım. Pi'nizin gücünün yetmediğinden emin olun ve devrenizi şu şekilde ayarlayın:

LED bizim pi üzerindeki pin 7'ye bağlanmıştır. İki düğmeli düğme 11 ve 13 numaralı pinlere takılıdır ve kamış anahtarı 15 numaralı pime bağlanmaktadır. Gücümüz 1 (3v3) ve 6 numaralı pimlere (Gnd) gider..

Her şeyin tam olarak doğru yerde olduğundan emin olun.

Bu projeyi test ederken reed anahtarınızı önünüzde tutmanıza yardımcı olabilir, böylece kolayca açıp kapatabilirsiniz. Bu durumda, reed anahtarı zaten kapının üzerine monte edildi. Projeniz çalışmaya başladıktan sonra, düğmeyi geçici olarak kapınıza kullanarak bant kullanarak ya da kendinden emin hissediyorsanız, gelecekteki projelerde kullanmak için daha kalıcı olarak takabilirsiniz.!

Pi'nin 3,5 mm jak çıkışını hoparlör sisteminize bağlayın. Her şey bir araya getirildiğinde şöyle görünmeli:

Burada kullanılan breadboard'un, yukarıdaki Fritzing diagramının diğer ucunda elektrikli raylara sahip olduğuna dikkat edin..

Şimdi Pi'nizi çalıştırın ve terminale erişebilmemiz için SSH kullanarak erişin. Bunu nasıl yapacağınızdan emin değilseniz, bu kılavuz SSH ile Başsız Kullanım İçin Ahududu Pi'nizi Ayarlama SSH ile Başsız Kullanım İçin Ahududu Pi'nizi Ayarlama Raspberry Pi, yerel bir ağa bağlandığında (Ethernet veya Ethernet ile) SSH komutlarını kabul edebilir. Wi-Fi), kolayca ayarlamanızı sağlar. SSH'nin faydaları günlük gösterimi üzmenin ötesine geçip… size yardımcı olabilir. Raspberry Pi'nizi monitör, fare ve klavyeyle kullanıyorsanız, bu adımı atlayın ve terminali açın..

Başlamadan önce, güncel olup olmadığınızı kontrol etmeye değer. tip sudo apt-get update terminale.

Şimdi Pi'mizi devre ile konuşmaya devam ettirebiliriz..

Kurulumumuzu Test Etme

Başlamak için basit bir program kullanarak devremizi kontrol edelim. Şu ana kadar her şeyi kablolu yayınladığınızdan eminseniz, bu adımı atlayabilirsiniz, ancak daha sonra başınızı ağrıtlardan kurtarabileceği için tavsiye ederim..

Daha önce hiç Python'da programlama yapmadıysanız ve biraz korktuysanız, çok sayıda harika web sitesi var Python Programlamasını Öğrenen En İyi 5 Web Sitesi Python Programlamasını Öğrenen En İyi 5 Web Sitesi Python Programlamasını Öğrenmek İçin En İyi 5 İnternet Sitesi? Python'u çevrimiçi öğrenmenin, çoğu tamamen ücretsiz olan en iyi yolları. Bu başlamanıza yardımcı olabilir.

Terminalde yeni bir komut dosyası oluşturun:

nano test.py

Açtıktan sonra bu kodu dosyaya ekleyin ve çıkmak için Ctrl-C tuşlarına basın, kaydetme iletişim kutusunu takip edin:

# Bu kod, www.MakeUseOf.com adresinde Ian Buckley tarafından yazılmış bir makale için yazılmıştır. GPIO alma zamanı olarak GPi.GPIO alma GPIO.setwarnings (Yanlış) GPIO.setmode (GPIO.BOARD) GPIO.setup (7, GPIO.OUT) GPIO.setup (11, GPIO.IN) GPIO.setup (13, GPIO). IN) Doğru ise GPIO.setup (15, GPIO.IN): GPIO.output (7, GPIO.HIGH) ise (GPIO.input (11) == 1): yazdır ("GPIO 11 üzerindeki Düğme") (1) if (GPIO.input (13) == 1): yazdır ("GPIO 13'teki Düğme") time.sleep (1) if (GPIO.input (15) == 1): Yazdır ("GPIO 15 ") time.sleep (1) GPIO.cleanup () 

Bu kod, düğmelerin değerini okur ve değiştiğinde ekrana yazdırır. İki basma düğmesinde dirençler bulunur, bu yüzden basıldığında YÜKSEK olarak bildirilirler. Kamış mıknatıs anahtarı, beraberindeki mıknatıs yakın olduğunda YÜKSEK bildirir.

Programı çalıştır:

python test.py

LED'in yandığını görmeli ve iki düğmenize bastığınızda ve mıknatısı saz anahtarınızdan uzağa çekerken ekrana bir rapor vermelisiniz. Düğmelere bastığınızda geri bildirim alamıyorsanız, devrelerinizi tekrar kontrol edin ve her şeyin olması gerektiği gibi bağlı olduğundan emin olun. Testi tamamladığınızda tuşuna basın. CTRL-C programı durdurmak için.

Şimdi kapı sensörümüzü ayarlamak, tetiklemek ve sıfırlamak için basit bir program oluşturabiliriz. Kodun bazı bölümlerini inceleyip, her bir bölümün ne yaptığını kısaca açıklayacağız;.

Bazı modülleri ithal ederek başlamamız gerekiyor:

GPIO ithalatı olarak Rpi.GPIO ithalatı pygame.mixer ithalat zamanı 

Kullanacağız pygame müziğimizi çalmak için modül. Raspbian Jessie ile standart olarak geliyor ve Python oyunları ve diğer birçok harika proje için ihtiyacınız olan her şey için mükemmel bir kütüphane. Ahududu Pi Nasıl Yapılır Twitter Bot Ahududu Pi Nasıl Yapılır Twitter Bot Twitter dünyanın en büyük deposu söyleyecek hiçbir şeyi olmayan insanlardan gelen mesajlar - ve siz de o ahududu tarafından desteklenen otomatik bir Twitter botuyla bu epik projeye katkıda bulunabilirsiniz… .

Denilen bir değişken kullanacağız aktif Sistemimizin aktif olup olmadığına karar vermek. Bunu bizim için yapacak birkaç işlevi tanımlayalım:

def activeSetup (): global aktif aktif = 0 yazdırma ("Currently Aktif Değil") def activeState (): eğer aktifse global aktif == 1: active = 0 GPIO.output (7, GPIO.LOW) yazdırılır ("Currently Active değil ") elif active == 0: x aralığında (0,10) için yazdır (" 10 saniyede etkinleştirme "): GPIO.output (7, GPIO.HIGH) time.sleep (0.5) GPIO.output (7, GPIO .LOW) time.sleep (0.5) aktif = 1 GPIO.output (7, GPIO.HIGH) baskı ("Currently Active") başkası: return 

Buradaki ilk işlev, adlı bir değişken oluşturur aktif, ve aktif duruma nümerik bir değer vermek, programınızı daha sonra farklı aktif durumlara sahip olacak şekilde ölçeklendirmeyi planlıyorsanız, buna göre numaralandırabileceğiniz anlamına gelir. Dünyadaki en iyi Python programlaması olmasa da, bu proje için yeterli olacaktır.

Çağrıldığında ikinci işlev, sistemin aktif olup olmadığını kontrol eder (veya Aktif == 1). Eğer öyleyse, sistemi aktif olmayacak şekilde ayarlar (Aktif == 0), LED'i kapatır ve konsola yazdırır. Değilse, sistemin aktif olduğunu göstermek için açık kalmadan önce, LED'in yanıp söndüğü odadan çıkmak için 10 saniyelik bir geri sayım verir..

Şimdi saz mıknatıs anahtarımızı izleyecek bir fonksiyon tanımlayabiliriz:

def watchDoor (): global oynamaya oynama = Doğru iken Yanlış: etkinse: = 1 ve GPIO.input (15) == 1 ve oynamaya = = Yanlış: oynama = Gerçek pygame.mixer.music.play () GPIO.input ise (13) == 1: yazdır ("Durdur düğmesine basıldı: Çıkılıyor") pygame.mixer.music.stop () GPIO.input (11) == 1: activeState () time.sleep (0.5) 

Burada başka bir değişken yaratıyoruz. oynama - bu sadece anahtar tetiklendiğinde programı art arda çalmaya başlamayı denemek için vardır.

While döngüsü içinde, ilk if ifadesi müziği başlatır (henüz elimizde olmayan, ama endişelenme, geliyor). Yalnızca sistem etkinse, reed anahtarı açıksa ve zaten çalmıyorsa, müziğin başlatılmasını sağlar.

İkinci if ifadesi çıkış butonumuz içindir. Bu düğmeye basılırsa, müzik durur ve program kapanır.

Üçüncü if ifadesi, sistemin aktif olup olmadığını değiştirmek içindir. Uyku zamanı Buradaki işlev, basıldığında birden fazla düğmenin okunmasını önlemektir.

Şimdi Pi'nin pinlerini kurma zamanı.

GPIO.setmode (GPIO.BOARD) GPIO.setup (7, GPIO.OUT, ilk = GPIO.LOW) GPIO.setup (11, GPIO.IN) GPIO.setup (13, GPIO.IN) GPIO.setup (15, GPIO.IN) 

Pi ile daha önce herhangi bir deney yaptıysanız, bu size tanıdık gelmelidir. ilk = GPIO.LOW pin 7'nin kurulumundaki argüman, başlatıldığı anda onu düşük seviyeye ayarlar..

Artık program başladığında sistemi aktif olmayacak fonksiyonumuzu çağırabiliriz..

ActiveSetup () 

Müzik Maestro!

Bu noktada, çalınacak müziği düşünmeye başlamalıyız. İstediğiniz herhangi bir müzik dosyasını seçebilirsiniz, ancak şimdilik herkes için uygun bir şey seçmeliyiz. YouTube'u izlerseniz, muhtemelen Kevin MacLeod'un müziğine aşinasınızdır. Onun tarafından fantastik bir melodi indirelim “Tek gözlü Maestro”. Bu, sitedeki müziğin çoğuyla birlikte Creative Commons altında lisanslıdır ve Creative Commons Nedir ve Kullanmalısınız? Creative Commons Nedir ve Kullanmalısınız? Creative Commons, içeriği yeniden kullanma ve dağıtma gibi çeşitli işlemleri yapmanıza otomatik olarak izin veren bir lisanslar kümesidir. Daha fazlasını ve nasıl kullanılacağını öğrenelim. projeleriniz için bu lisanslarla içerik kullanmak için.

Kodumuza geri döndüğümüzde Pygame karıştırıcısını başlatmalı ve ayarlarımızı yüklemeliyiz.

pygame.mixer.init (44100, -16,2,1024) pygame.mixer.music.set_volume (1.0) name = "Tek gözlü Maestro.mp3" pygame.mixer.music.load (isim) print ("Yüklenen parça - "+ str (ad)) 

Bu bloğun ilk satırı, pygame karıştırıcı. Parantez içindeki son argüman, sesin çalındığı gecikmeyi kontrol eden arabellektir. Müziğiniz çalınırken daha sonra dalgalı bir çalma sesiyle karşılaşırsanız, bu sayıyı 4096'ya yükseltmeyi deneyin..

Müzik dosyanızı, telefonunuza indirmek için farklı bir dizine indirdiyseniz, door.py program, ad değişkenini tanımlarken, parantez içinde tam yol sağlamanız gerekir..

Şimdi yapılacak tek şey programı aktif hale getirmemizi veya programdan çıkmamızı bekleyen bir döngü oluşturmak..

true iken: if (GPIO.input (13) == 1): yazdır ("Durdur düğmesine basılıyor: Çıkılıyor") pygame.mixer.music.stop () sonu ise (GPIO.input (11) == 1): activeState () time.sleep (0.5) eğer (aktif == 1): watchDoor () GPIO.cleanup () komutunu kırdı 

Bu, döngü her iki tuştan da bir giriş bekler ve duruma göre aktif duruma geçer veya bu durumu değiştirir. Eğer aktif durum 1 ise, o zaman watchDoor Daha önce tanımladığımız fonksiyon çağrılır ve kapı bir dahaki sefere açıldığında melodi çalar. Biz de ararız GPIO.cleanup () Raspberry Pi'deki tüm programlamalar için genellikle iyi bir uygulama olan çıkıştaki pinlerimizi sıfırlamak için.

Bu projeyi başlatmak ve çalıştırmak için yapmamız gereken her şey, işte tam kod:

GPI olarak RPi.GPIO içeri aktarma import pygame.mixer içe aktarma süresi def activeSetup (): global aktif aktif = 0 baskı ("Currently Aktif Değil") def activeState (): eğer aktifse global aktif == 1: aktif = 0 GPIO.output ( 7, GPIO.LOW) yazdır ("Şu Anda Aktif Değil") elif active == 0: x aralığında (0,10) yazdırma ("10 saniyede etkinleştirme"): GPIO.output (7, GPIO.HIGH) süre .sleep (0.5) GPIO.output (7, GPIO.LOW) time.sleep (0.5) aktif = 1 GPIO.output (7, GPIO.HIGH) yazdır ("Şu Anda Aktif") else: return def watchDoor (): global Oynama = Doğru iken Yanlış: eğer aktifse == 1 ve GPIO.input (15) == 1 ve Oynatma == Yanlış ise: oynama = Gerçek = pygame.mixer.music.play () GPIO.input (13) == 1 ise : yazdır ("Durdur düğmesi basılı: Çıkılıyor") pygame.mixer.music.stop () GPIO.input (11) == 1: activeState () time.sleep (0.5) GPIO.setmode (GPIO.BOARD) GPIO .setup (7, GPIO.OUT, initial = GPIO.LOW) GPIO.setup (11, GPIO.IN) GPIO.setup (13, GPIO.IN) GPIO.setup (15, GPIO.IN) activeSetup () pygame. mixer.init (44100, -16,2,1024) pygame.mixer.music.set_volume (1.0) name = "Tek göz d Maestro.mp3 "pygame.mixer.music.load (name) print (" Yüklenen parça - "+ str (name)) True iken: eğer (GPIO.input (13) == 1): Yazdır (" Durdur düğmesine basıldı : ") Pygame.mixer.music.stop () çıkılırsa (GPIO.input (11) == 1): activeState (), time.sleep (0.5) ise (active == 1): watchDoor () GPIO'yu keser. Temizlemek() 

Kodun tamamını hemen almak için buraya kaydırdıysanız, Pi'nin çalışması için müziği Pi'nize indirmeniz gerekeceğini unutmayın.!

Şimdi işleyen bir karşılama ev teması ayarına sahip olmalısınız! Kamış anahtarınızı kapınıza takın ve deneyin. Utanç verici dans isteğe bağlıdır ancak önerilir.

Bu proje, birçok ev izleme, güvenlik ve otomasyon formunun temellerini kapsıyordu ve umarım eğlenceliydi.!

Şimdi bu kadar uzağa geldin, neden orada durdun? Daha fazla parça ekleyebilir ve programın listeden rastgele birini seçmesini sağlayabilirsiniz. Bir röle ekleyebilirsiniz. Bir Ahududu Pi GPIO ile Başlarken Bir Ahududu Pi GPIO ile Başlarken Arduino serin olsa da, ellerinizi bir Ahududu Pi ile elde edene kadar bekleyin - bunlar muhteşem. Tamamen işlevsel bir bilgisayar olmasının yanı sıra, aynı zamanda… ve girişte başka nesnelerin tetiklenmesi de var. Ev müzik sisteminiz varsa, neden her oda için bir tema şarkısı yok??

Kendi kişisel hoş geldin ev mesajınızı mı tasarlayacaksınız? Evinizde saz düğmelerini başka yollarla da mı icat ettiniz? Öyleyse, aşağıdaki yorumlar bölümünde neyi planladığınız veya ne yaptığınız hakkında bir yorum bırakın!




Henüz no comments

Modern teknoloji hakkında basit ve uygun fiyatlı.
Modern teknoloji dünyasında rehberiniz. Her gün bizi çevreleyen teknolojileri ve araçları nasıl kullanacağınızı ve Internet'te ilginç şeyleri nasıl keşfedeceğinizi öğrenin.