Używanie Raspberry Pi do kontrolowania mojego prądu zmiennego przez podczerwień


19

Kiedy wracam skądś z domu, chcę móc włączyć klimatyzację na kilka minut, zanim dotrę do mojego mieszkania, prawdopodobnie używając telefonu do połączenia się z moim Raspberry Pi na biurku, które będzie obróć, kontroluj AC. AC można kontrolować za pomocą pilota na podczerwień. Chcę, aby Raspberry Pi emitował potrzebny sygnał.

Co muszę kupić za Raspberry Pi, aby mógł wysłać potrzebny sygnał? Potrzebuję też czegoś, co pozwoli mi próbkować sygnał wysłany przez oryginalnego pilota, aby móc powiedzieć Raspberry Pi, który sygnał wysłać. Jak mogę to zrobić?

Należy pamiętać, że jedynym językiem programowania, który znam, jest język Python. Jeśli coś wymaga programowania w C lub coś, to nie jest dla mnie dobre rozwiązanie.

Odpowiedzi:


12

Jak wspomniano powyżej, LIRC to świetny pakiet oprogramowania do wysyłania i odbierania sygnałów RaspberryPi w podczerwieni. Od grudnia 2012 r. Najnowszy system operacyjny Raspbian zawiera teraz sterownik LIRC ar0n.

Napisałem przewodnik, aby zainstalować LIRC i skonfigurować go na twoim RaspberryPi (od sprzętu), ponieważ sam musiałem rozwiązać ten sam problem. Po zainstalowaniu LIRC i pracy na RaspberryPi możesz korzystać z niektórych dołączonych aplikacji do wysyłania i odbierania poleceń IR z Python / Ruby / wybranego języka.

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


2
Dzisiaj napisałem nowy post na blogu opisujący schemat (i części, które kupiłem), aby zbudować transceiver IR RaspberryPi. alexba.in/blog/2013/03/09/raspberrypi-ir-schematic-for-lirc
Alex Bain

5

Jest ktoś, kto już napisał sterownik jądra LIRC dla Raspberry Pi, można go znaleźć tutaj: sterownik LIRC Raspberry Pi . Na tej stronie można również znaleźć wymagany schemat sprzętu i połączeń.

Sam nie eksperymentowałem z LIRC, ale istnieje wiele dostępnych aplikacji, które używają LIRC, myślę, że teraz wszystkie działają na Raspberry Pi.

Jeśli chcesz / potrzebujesz, mogę zagłębić się w ten temat nieco głębiej i podać dodatkowe informacje.

W części Python istnieje moduł Pythona do interakcji z LIRC, zwany pyLirc i nowsza utrzymywana wersja o nazwie pyLirc2


Dzięki za odpowiedź, ale ta strona straciła mnie podczas „Ponownej kompilacji jądra” :) Czy nie ma czegoś takiego jak plug-n-play?
Ram Rachum

1
Na razie, dopóki ten sterownik nie znajdzie się w dystrybucji, obawiam się, że jest to jedyna opcja dla LIRC. Ale istnieje moduł GPIO dla Pythona, jako programista w Pythonie, możesz stworzyć swój własny kod Pythona, aby robić dokładnie to, co chcesz, używając tylko sprzętu pokazanego na połączonej stronie. Musisz przeczytać sekwencję IR, którą wysyła pilot AC i odtworzyć ją. Powinno to być możliwe przy użyciu tego modułu Python GPIO.
ikku

1
mój komentarz „… obawiam się, że jest to jedyna opcja, aby LIRC działał…” jest ważny tylko w kontekście GPIO. Urządzenia szeregowe / USB itp. Powinny działać bez problemu.
ikku

3

Odkryłem, że LIRC jest stosunkowo łatwym sposobem wysyłania wiadomości IR, ale naprawdę chciałem móc kontrolować LIRC z java. Lubię programować w Javie i nie znalazłem żadnego prostego tutoriala dla Pythona, aby przekonać mnie do pracy z nim zamiast w Javie. Po kilku godzinach próby wysłania kodów IR z pi przy użyciu java, kolejne rozwiązanie okazało się stosunkowo proste: Stwórz skrypt bash, który zawiera irsendkomunikat i powiedz java, żeby go uruchomił.

Przykład:

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();
        }
    }
}

Chyba chcesz exit value: 0. Jeśli twoja wartość wyjściowa to 127, oznacza to, że skrypt bash nie został znaleziony przez java.

Kilka dodatkowych notatek:

  • Próbowałem jlirc i lircj - owijarki Java dla LIRC, ale nie byłem w stanie poprawnie je skonfigurować -> nie działa.
  • Jedynym minusem tego rozwiązania jest to, że nie można nasłuchiwać wiadomości IR. Jeśli ktoś ma pomysł na użycie podobnej metody do nasłuchiwania wiadomości IR, chciałbym wiedzieć.

Przydatne zasoby:

  • Postępuj zgodnie z instrukcjami Alexa Baina, aby skonfigurować LIRC dla pi. Oni są naprawdę dobrzy! Więcej informacji na ten temat można znaleźć irsend tutaj . To sprawia, że ​​lista twoich pilotów jest znacznie bardziej przejrzysta.
  • Tutaj znajdziesz więcej informacji na temat uruchamiania skryptów bash z Java.

Mam nadzieję, że to pomaga, Tom


2

Zawsze uważałem LIRC za bardziej nieprzyjemny projekt do wykonania, niż wydaje się to konieczne, podobnie jak czujniki lm.

Więc mógłbym spojrzeć na to może w nieco bardziej okrężny sposób: jeśli możesz dostać mikrokontroler (lub nawet rzeczywisty pilot), który wyśle ​​prawidłowy ciąg impulsów po uruchomieniu, może możesz użyć pinu gpio (lub komunikatu UART) na RPi, aby „nacisnąć przycisk”, mniej więcej, i uruchomić wysyłanie.

Jest to stosunkowo plug and play, jeśli znajdziesz odpowiednie rozwiązanie nadajnika.

Niech RPi martwi się, że jest serwerem, a moduł sprzętowy (firmware) martwi się działaniem IR. Być może możesz użyć podobnej sztuczki do monitorowania statusu procesu.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.