家庭电器设备控制 HOWTO

Rui Li

Joy Yokley - 将文档从 Linuxdoc 转换为 DocBook v4.1 (SGML)。

2003-02-08

修订历史
修订版本 0.0082003-02-08修订者: Goldencat
修订版本 0.0072002-02-12修订者: RL
修订版本 0.0062001-06-27修订者: JEY
修订版本 0.0052001-06-13修订者: RL
修订版本 0.0042001-06-12修订者: JEY

本 HOWTO 将告诉你如何使用 Linux 控制你的家庭电器设备。你只需要制作一个非常简单的电路,就可以使用 Linux 控制几乎任何类型的电器设备!


目录
1. 简介
2. 系统要求
3. 电子电路
4. 继电器示例
5. 特别感谢
6. 版权和许可

1. 简介

很多人问我,“是否可以使用家用电脑控制一些电器设备[例如灯、收音机、电视等]?” 答案是肯定的。这个过程非常简单,任何人都可以做到。

在阅读了 Coffee Machine Mini-HOWTO 后,我得到了如何控制我的家用电器的想法。我对 Coffee Machine Mini-HOWTO 中讨论的电路进行了一些修改,并编写了一个简单的程序。这个电路可以控制许多小型电器设备。^_^ 你可以使用 crontab 来设置你的灯自动打开或打开你的空调。我用它来控制我的 VCR 和 VCD(我仍然需要对 VCR/VCD 进行一些修改)。通过编写一个简单的程序,你可以通过网络控制一切。你可以使用带有 SSH 的 telnet 和你的电话拨号来控制你电路上的所有电器。

这个电路非常简单。即使你对电路一无所知,你也可以搭建这个电路。


2. 系统要求

任何运行 Linux 并具有可用并行端口的计算机即可。:) 我正在使用一台配备 4MB RAM 和 40MB 硬盘的 386DX。 你将需要 gcc 来编译程序。 如果你想使用 telnet 或 SSH,你还需要 telnetdsshd。 你可以使用 iopermoutb 编写你自己的程序。 如果你想使用我的程序,你将需要 g++。

点击以下链接下载我的程序。 你将需要 g++ 来编译它。 edc.sourceforge.net/paralle.tar.gz


3. 电子电路

并行端口的数据线可以提供 0 到 5 伏之间的电压。因此,我们可以使用这条线来控制继电器,并让继电器控制电器设备。

使用引脚 2 到 9 获取 +5V 电压

使用引脚 18 到 25 作为接地

            ____________________________________________________________
           /                                                            \
           \     13  12  11  10   9   8   7   6   5   4   3   2   1     /
            \                                                          /
             \     25  24  23  22  21  20  19  18  17  16  15  14     /
              \______________________________________________________/




                                             | Vcc for Relay
                                             |
                                             |
                                    / -------+--------| |---------|
P data              4.7K         B /  c      | 1N4002 |_|         |-------
-----------/\/\/\/\---------+-----| NPN    _____        | relay   |home device
                            |     \   e     /_\       |-|         |-------
                 LED        X      \         +--------| |---------|
P Ground                    |       |        |
----------------------------+-------+--------+
Relay Ground                                 |
---------------------------------------------+

	

以下是上面图表的图例

P data		parallel port data line(pin 2 to pin 9, use any)

P Ground			parallel port ground (pin 18 to pin 25, use any)

Vcc				depends on the type of your relay. I'm using 12VDC

Relay Ground	the ground for 12VDC

4.7k				4.7K resistor

NPN				C2235 NPN transistor

1N4002			1N4002 diode

LED				light emitting diode

relay				a coil relay

来自并行端口的 +5 伏电压将开启继电器。一旦继电器开启,连接到该继电器的设备将开启。当并行端口的数据线回到 0 时,它将关闭继电器,设备也将关闭。


4. 继电器示例

下面的图表用于解释继电器的工作原理。

继电器本身只是一个开关,如下图所示

relay power off                        relay power on

       |3                                    |3
       |                                     |
       |                                     |
       o                                     o
        \                                    |
       o \                                   o
       |                                     |
       |                                     |
       |                                     |
       |4                                    |4

下图演示了 4 针继电器的设置。

      ____________________________
      |                          |
  1   |                          |  3
 -----|---------s     o----------|-------
      |  coil   s      \switch   |
  2   |         s       \        |  4
 -----|---------s     o- \-------|-------
      |                          |
      |                          |
      |                          |
      |__________________________|

在上图中,引脚 3 和引脚 4 默认断开。当你在引脚 1 和引脚 2 之间发送 +12V 电压时,它将打开一个开关,引脚 3 和 4 现在连接。

以下是一个 5 针继电器

           _______________________________
           |                             |
     1     |                             |       5
  ---------|---+            o------------|----------------
           |   |-----------/---- s       |
           |              /      s       |
     3     |             /       s       |
  ---------|-----------o/   coil s       |       4
           |                 o---s-------|----------------
           |                     |       |
           |                     |       |
     2     |                     |       |
 ----------|---------------------+       |
           |_____________________________|

在上面的图中,引脚 3 默认连接到引脚 5。通过在引脚 1 和引脚 2 之间发送 +12V 电压,你将打开一个开关。引脚 1 和引脚 2 将断开,引脚 5 和引脚 4 将连接。

 relay power off                 relay power on

     |5                                  |5
     |                                   |
     |                                   |
     o                                   o
      \                                  |
     o \                                 o  o
     |  o                                |  |
     |  |                                |  |
     |  |                                |  |
    4|  |3                              4|  |3

有些继电器可能有超过 5 个引脚。更多的引脚只意味着有更多的开关。

我编写了一个简单的程序,可以控制 8 个继电器。该程序可在以下位置获得,并且需要 g++ 才能使用此程序。 http://edc.sourceforge.net/paralle.tar.gz

一个完整的电路可以控制多达八个继电器,这意味着一个完整的电路可以控制八个不同的设备。 你将需要一个 DB25 连接器。 使用并行开关电缆,将此继电器板连接到你的计算机。 我将继电器板放在一个盒子中,并使用并行开关电缆将其连接到我的 Linux 机器

Panel: LED, Switch		Back:  DB25 connector

下面是如何将继电器板与你的电器设备连接的示例

			CONNECTED RELAY BOARD
			

                         +-----+ power outlet
       1 _______3        |   __|________             ||   ||
       --|     |---------+  |  |       |             ||   ||
       2 |relay|4           | (o) (o)  |            _||___||__
       --|_____|----+       |------|---|            |        |
                    |              |                |        | 
                    | +------------+                |        | plug
            ground  | | hot                         |        |
                    | |                             |        |
                  __|_|__                           |        |
                  | | | |                           |________|
                  | | | | plug 
                  | | | |
                  |_|_|_| (i know it doesn't look like a plug, but it's a plug :-) )
                   || ||
                   || ||

要连接系统,只需将你的家用电器设备连接到电源插座即可。 就这样! 你无需对电器设备进行任何更改。 你可以将任何类型的设备连接到该电源插座。 将此电源插座插入任何墙壁插座。

要查看成品外观的照片,请访问以下站点

以下 URL 显示了一个完整的电子电路(控制 8 个设备): http://edc.sourceforge.net/01.png


5. 特别感谢

特别感谢 Rufus Chang rufus@chu.url.com.tw

特别感谢 Chih-Wei Huang cwhuang@linux.org.tw


6. 版权和许可

版权 Rui Li 2000-2001。 许可为 GNU GPL,但要求你在所有副本上保留作者姓名和电子邮件。 复制本 HOWTO 时,请保留我的姓名和电子邮件地址。