Kızılötesi ile AC kontrol etmek için Raspberry Pi kullanma


19

Bir yerden eve döndüğümde, daireme gelmeden önce AC'imi birkaç dakika açabilmek istiyorum, muhtemelen telefonumu kullanarak masamdaki Raspberry Pi'ye bağlanmak için AC kontrol edin. AC, kızılötesi uzaktan kumanda kullanılarak kontrol edilebilir. Raspberry Pi'nin gerekli sinyali vermesini istiyorum.

Raspberry Pi'nin gerekli sinyali göndermesine izin vermek için ne satın almam gerekiyor? Ayrıca, orijinal uzaktan kumanda tarafından gönderilen sinyali örneklememe izin verecek bir şeye ihtiyacım olacak, böylece Raspberry Pi'ye hangi sinyali göndereceğini söyleyebilirim. Bunu nasıl yaparım?

Nasıl kullanılacağını bildiğim tek programlama dilinin Python olduğunu lütfen unutmayın. Bir şey C veya başka bir şeyle programlama gerektiriyorsa, bu benim için iyi bir çözüm değildir.

Yanıtlar:


12

Yukarıda belirtildiği gibi, LIRC RaspberryPi'nizi IR sinyalleri gönderip almak için harika bir yazılım paketidir. Aralık 2012 itibariyle en yeni Raspbian OS artık ar0n'nin LIRC sürücüsünü içeriyor.

LIRC'yi RaspberryPi'nize (donanımdan yukarı doğru) kurmak ve yapılandırmak için bir kılavuz yazdım, çünkü aynı sorunu kendim çözmek zorunda kaldım. LIRC kurulduktan ve RaspberryPi üzerinde çalıştıktan sonra, Python / Ruby / seçtiğiniz dilden IR komutları göndermek ve almak için içerdiği uygulamalardan bazılarını kullanabilirsiniz.

http://alexba.in/blog/2013/01/06/setting-up-lirc-on-the-raspberrypi/


2
Bugün bir RaspberryPi IR alıcı-vericisi oluşturmak için şematiği (ve satın aldığım parçaları) açıklayan yeni bir blog yazısı yazdım. alexba.in/blog/2013/03/09/raspberrypi-ir-schematic-for-lirc
Alex Bain

5

Raspberry Pi için zaten bir LIRC çekirdek sürücüsü yazmış biri var, burada bulabilirsiniz: LIRC Raspberry Pi sürücüsü . Ayrıca gerekli donanım ve bağlantı şemaları bu sayfada bulunabilir.

Kendimi LIRC ile denemedim, ancak LIRC kullanan birçok uygulama var, sanırım şimdi hepsi Raspberry Pi'de çalışıyor.

İsterseniz / ihtiyacınız varsa, bu konuya biraz daha derinlemesine dalabilir ve bazı ek bilgiler bulabilirim.

Python kısmı için, denilen lirc ile etkileştiği için bir Python modülü vardır pyLirc ve verilen daha yeni tutulan versiyonu pyLirc2


Cevabınız için teşekkürler, ancak bu sayfa beni "Çekirdeği Yeniden Derle" de kaybetti :) Daha fazla tak ve çalıştır özelliği olan bir şey yok mu?
Ram Rachum

1
Şimdilik, bu sürücü bir dağıtımda yolunu bulana kadar, LIRC'nin çalışması için tek seçenek olduğunu düşünüyorum. Ancak bir Python programcısı olan python için bir GPIO modülü vardır, yalnızca bağlantılı sayfada gösterilen donanımı kullanarak tam olarak ne yapmak istediğinizi kendi Python kodunuzu oluşturabilirsiniz. AC uzaktan kumandanın hangi IR dizisini gönderdiğini okumalı ve tekrar oynatmalısınız. Bu Python GPIO modülünü kullanarak mümkün olmalıdır.
ikku

1
'... LIRC'nin çalışması için tek seçenek budur ...' korkuyorum sadece GPIO bağlamında geçerlidir. Seri / USB vb. Aygıtlar sorunsuz çalışmalıdır.
ikku

3

LIRC'nin IR mesajları göndermenin nispeten kolay bir yolu olduğunu gördüm, ancak gerçekten LIRC'i java'dan kontrol etmek istedim. Java'da programlama yapmayı seviyorum ve python'un beni java yerine onunla çalışmamıza ikna etmesi için basit bir öğretici bulamadım. Java kullanarak pi'den IR kodları göndermeye çalıştıktan birkaç saat sonra bir sonraki çözümü nispeten basit buldum: irsendMesajı içeren bir bash betiği yapın ve java'yı çalıştırmasını söyleyin.

Misal:

toggleLight.sh

#!/bin/bash
irsend SEND_ONCE HyundaiFan lightOnOff

RunBash.java

public class RunBash {
    public static final void main (String args[]) {
        String cmd = "../toggleLight.sh";
        try {
            Runtime runtime = Runtime.getRuntime();
            Process process = runtime.exec(new String[] {"/bin/bash", "-c", cmd});
            int exitValue = process.waitFor();
            System.out.println("exit value: " + exitValue);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Almalısın exit value: 0. Çıkış değeriniz 127 ise, bash betiğinin java tarafından bulunmadığı anlamına gelir.

Bazı notlar:

  • LIRC için jlirc ve lircj - java sarmalayıcıları denedim ama onları doğru bir şekilde yapılandıramadım -> çalışmıyor.
  • Bu çözümün tek dezavantajı, IR mesajlarını dinleyememenizdir. Birisi IR mesajlarını dinlemek için benzer yöntemi kullanma konusunda herhangi bir fikriniz varsa bilmek istiyorum.

Yararlı kaynaklar:

  • Pi için LIRC'yi ayarlamak için Alex Bain talimatlarını takip edin. Onlar gerçekten iyi! irsend Burada daha fazla bilgi bulabilirsiniz . Uzaktan kumandalarınızı listelemeyi çok daha net hale getirir.
  • Java'dan bash betikleri çalıştırmak için daha fazla bilgiyi burada bulabilirsiniz.

Umarım yardımcı olur, Tom


2

LIRC ile başa çıkmak için her zaman gerekli göründüğünden daha tatsız bir proje buldum, tıpkı lm sensörleri gibi.

Bu yüzden belki biraz daha dolambaçlı bir şekilde bakardım: tetiklendiğinde doğru nabız trenini göndermek için bir mikrodenetleyici (hatta gerçek bir uzaktan kumanda) alabilirseniz, belki bir gpio pin (veya uart mesajı) kullanabilirsiniz. RPi, az ya da çok "düğmeye basmak" ve gönderimi tetiklemek için.

Doğru verici çözümünü bulursanız nispeten tak ve çalıştır.

RPi'nin sunucu ve donanım (bellenim) modülü olmaktan, IR eylemi hakkında endişelenmesine izin verin. Belki de işlem durumunu izlemek için benzer bir numara kullanabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.