Sử dụng Raspberry Pi để điều khiển AC của tôi thông qua hồng ngoại


19

Khi tôi đang trên đường trở về nhà từ một nơi nào đó, tôi muốn có thể bật AC vài phút trước khi tôi đến căn hộ của mình, có lẽ bằng cách sử dụng điện thoại của tôi để kết nối với Raspberry Pi trên bàn của tôi, trong đó sẽ xoay, điều khiển AC. AC được điều khiển bằng điều khiển từ xa hồng ngoại. Tôi muốn Raspberry Pi phát ra tín hiệu cần thiết.

Tôi phải mua gì cho Raspberry Pi để cho phép nó gửi tín hiệu cần thiết? Ngoài ra, tôi sẽ cần một cái gì đó cho phép tôi lấy mẫu tín hiệu được gửi bởi điều khiển từ xa ban đầu, vì vậy tôi có thể cho Raspberry Pi biết tín hiệu nào sẽ gửi. Làm thế nào để làm điều đó?

Xin lưu ý rằng ngôn ngữ lập trình duy nhất tôi biết cách sử dụng là Python. Nếu một cái gì đó yêu cầu lập trình bằng C hoặc một cái gì đó, nó không phải là một giải pháp tốt cho tôi.

Câu trả lời:


12

Như đã đề cập ở trên, LIRC là một gói phần mềm tuyệt vời để nhận và gửi tín hiệu IR của RaspberryPi. Kể từ tháng 12 năm 2012, hệ điều hành Raspbian mới nhất hiện nay bao gồm trình điều khiển LIRC của ar0n.

Tôi đã viết một hướng dẫn để cài đặt và cấu hình LIRC trên RaspberryPi của bạn (từ phần cứng trở lên) vì tôi phải tự giải quyết vấn đề này. Khi bạn đã cài đặt LIRC và hoạt động trên RaspberryPi, bạn có thể sử dụng một số ứng dụng đi kèm để gửi và nhận lệnh IR từ Python / Ruby / ngôn ngữ bạn chọn.

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


2
Hôm nay tôi đã viết một bài đăng blog mới mô tả sơ đồ (và các bộ phận tôi đã mua) để xây dựng bộ thu phát RaspberryPi IR. alexba.in/blog/2013/03/09/raspberrypi-ir-schIAL-for-lirc
Alex Bain

5

Có ai đó đã viết trình điều khiển hạt nhân LIRC cho Raspberry Pi, nó có thể được tìm thấy ở đây: Trình điều khiển LIRC Raspberry Pi . Ngoài ra các sơ đồ phần cứng và kết nối cần thiết có thể được tìm thấy trên trang này.

Bản thân tôi chưa thử nghiệm với LIRC, nhưng có nhiều ứng dụng có sẵn sử dụng LIRC, tôi đoán giờ đây tất cả chúng đều hoạt động trên Raspberry Pi.

Nếu bạn muốn / cần, tôi có thể đi sâu vào chủ đề này sâu hơn một chút và đưa ra một số thông tin bổ sung.

Về phần Python, có một mô-đun Python để tương tác với LIRC , được gọi là pyLirc và một phiên bản duy trì mới hơn được gọi là pyLirc2


Cảm ơn câu trả lời, nhưng trang đó đã làm tôi mất tại "Biên dịch lại kernel" :) Không có thứ gì đó có nhiều plug-n-play hơn sao?
Ram Rachum

1
Hiện tại, cho đến khi tài xế này tìm đường vào một bản phân phối, tôi sợ rằng đó là lựa chọn duy nhất để LIRC hoạt động. Nhưng có một mô-đun GPIO cho python, là một lập trình viên Python, bạn có thể tạo mã Python của riêng mình để làm chính xác những gì bạn muốn, chỉ sử dụng phần cứng được hiển thị trong trang được liên kết. Bạn cần đọc chuỗi IR mà điều khiển từ xa AC gửi và phát lại. Điều đó có thể sử dụng mô-đun GPIO Python này.
ikku

1
nhận xét của tôi '... Tôi e rằng đó là lựa chọn duy nhất để LIRC hoạt động ...' chỉ hợp lệ trong bối cảnh GPIO. Các thiết bị nối tiếp / USB vv sẽ hoạt động mà không có vấn đề gì.
ikku

3

Tôi đã tìm thấy LIRC là cách tương đối dễ dàng để gửi tin nhắn IR, nhưng thực sự muốn có thể kiểm soát LIRC từ java. Tôi thích lập trình trong java và không tìm thấy bất kỳ hướng dẫn đơn giản nào cho python để thuyết phục tôi làm việc với nó thay vì java. Sau vài giờ cố gắng gửi mã IR từ pi bằng cách sử dụng java, tôi thấy giải pháp tiếp theo tương đối đơn giản: Tạo một tập lệnh bash có chứa irsendthông báo và bảo java chạy nó.

Thí dụ:

chuyển đổi

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

Bạn cho rằng để có được exit value: 0. Nếu giá trị thoát của bạn là 127 thì có nghĩa là tập lệnh bash không được tìm thấy bởi java.

Một số lưu ý khác:

  • Tôi đã thử jlirc và lircj - các trình bao bọc java cho LIRC nhưng không thể định cấu hình chúng theo cách hiện tại -> không hoạt động.
  • Nhược điểm duy nhất của giải pháp này là bạn không thể nghe tin nhắn IR. Nếu ai đó có bất kỳ ý tưởng nào liên quan đến việc sử dụng phương pháp tương tự để nghe tin nhắn IR tôi muốn biết.

Tài nguyên hữu ích:

  • Làm theo hướng dẫn của Alex Bain để thiết lập LIRC cho pi. Họ thực sự tuyệt! Người ta có thể tìm thêm thông tin về irsend đây . Nó làm cho danh sách từ xa của bạn rõ ràng hơn nhiều.
  • Tại đây bạn có thể tìm thấy nhiều thông tin hơn để chạy các tập lệnh bash từ java.

Hy vọng nó sẽ giúp, Tom


2

Tôi luôn thấy LIRC là dự án khó chịu hơn để giải quyết hơn là cần thiết, giống như cảm biến lm.

Vì vậy, tôi sẽ xem xét điều này có thể theo cách vòng vo hơn một chút: nếu bạn có thể nhận được một vi điều khiển (hoặc thậm chí là một điều khiển từ xa thực tế) để gửi chuỗi xung chính xác khi được kích hoạt, có thể bạn có thể sử dụng pin gpio (hoặc tin nhắn uart) trên RPi để "nhấn nút", nhiều hay ít và kích hoạt gửi.

Đó là tương đối cắm và chơi, nếu bạn tìm thấy giải pháp truyền phát phù hợp.

Hãy để RPi lo lắng về việc máy chủ và mô-đun phần cứng (phần sụn) lo lắng về hành động IR. Có lẽ bạn cũng có thể sử dụng một thủ thuật tương tự để theo dõi trạng thái quá trình.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.