Embedded 版 (精华区)

发信人: Zinux (Linux技工), 信区: Embedded_system
标  题: 用Linux控制你的家电
发信站: 哈工大紫丁香 (2001年06月25日20:23:53 星期一), 站内信件

标 题: ·用Linux控制你的家电 Rui Li (ruili@worldnet.att. 
发信站: 南京大学小百合站 (Wed Jun 20 20:42:10 2001) 

·用Linux控制你的家电 Rui Li (ruili@worldnet.att.net) 
------------------------------------------------------------------------
 
这篇文章教你如何用Linux 来简单的控制你的家电, 你只需要做一个小小的简 
单电路, 就可以用Linux 控制你的家电了. 

1.简介 
相信很多人都想知道Linux 是否可以控制家电呢? 这也一直是我比较喜欢玩的 
东西, 现在, 我可以给你一个肯定的答案: Linux 可以非常轻松简单的控制你的家
 
电! 
前段时间闲来无事, 就把mini-howto中coffee-machine那篇文章中的电路研究 
一番, 然後在加以改进, 做了个小的家电控制的电路这样可以利用crontab 自动设
 
定很多东西, 比如室内电灯, 空调在一定的时间自动打开之类的. 反正只要适用电
 
的简单的开关目前都能控制. 当然, 这个电路也可以控制其它的东西. 但是那也要
 
对家电做一点小小的改动. 比如我家中的VCR和VCD都被我改过, 所以 拨放/停止,
 
前进/後退, 频道等等都可以用电脑控制. 写个小程式, 还可以利用web来控制 (虽
 
然我都是用telnet or ssh), 利用数据机拨入可以做到打电话到自己的电脑里後,
 
输入一组号码控制某个家电. 我下班的时候, 就可以从办公室telnet到家里, 这样
 
回去的时候, 空调已经打开了, 如果时间算的准, 回家的时候灯也打开了. :) 
这个电路最大的好处就是非常简单. 只要五个电子元件就能做成. 可以让不懂 
电路的人也玩的开心. 
这个电路可以再次改良, 能完成更多的功能, 这就看你自己怎麽控制啦. 我在 
这里就只讲基本的东西. 

2.系统要求 
随便找一台可以装起来Linux 的电脑, 确定有个正常工作的并列埠就可以了. 
我目前正在用一台386DX with 4MB RAM 40MB HD的电脑控制我的家电软体方面, 你
 
需要gcc去编辑控制的程式. 如果想用telnet控制, 那麽你还需要telnetd你可以自
 
己写个控制并列埠的程式. 利用ioperm和outb(value,port), 来控制并列埠. 通过
 
value值的改变达到控制多组家电的目的. 
你也可以下截我已经写好的程式, 这个程式需要g++来compile: 
http://home.att.net/~ruili/goldencat/paralle.tar.gz 

3.电路基本原理 
利用电脑的并列埠资料线1到并列埠资料线可以提共0到5伏电的特性. 控制一 
个relay而达到控制电器的目的. 
下面是电脑的并列埠和一个单一的简单电路: 我们需要用到的只有pin 2到pin 
9这八个pin (可以得到+5v), pin 18一直到pin 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 / 
\________________________________________________/ 
| 这里是给relay提共正电Vcc 


/----+--------| |---------| 
P data 4.7K B / c | 1N4002 |_| |---------- 
--------/\/\/\/\--------+-----| NPN ___ | relay |这里接家电 
| \ e __\_/__ |-| |---------- 
LED X \ |--------| |---------| 
P Ground | | | 
----------------------------+-----+---+ 
给relay供电的Ground线 | 
--------------------------------------+ 

原理和介绍: 
P data 并列埠资料线. (pin2到pin9都是, 这里的简单电路只用到了一条) 
p Ground 并列埠地线. (18~25随便挑一条你觉得顺眼的) 
Vcc 看你用那种继电器而定, 我用的是12v的继电器所以就接个12V的直流电 
源供应器. 
Ground 12V直流电源供应器的地线. 
4.7k 4.7K电阻. 
NPN 随便找了个NPN的电晶体, 这个只要随便找个差不多的NPN就可以了. 
1N4002 1N4002的二极体. 
LED 发光二极体随便找个会发光的就好了. 这里当作指示灯. 当家电的开关 
被打开後, 灯就会亮. 
relay relay, 功率看你需要的买, 我最小的都用300W(自己算算就知道了, 一 
个电灯通常45W), 主要是看你接甚麽家电. 300W 对大多数都没有问题. 
如果接空调之类的, 最少3000W才安全. 
这个电路通过电脑的并列埠得到一个+5v电压打开 relay, 这样relay那边的家 
电就就被接通了, 当并列埠的电压变成0的时候, relay就会跳回关闭状态, 家电也
 
就关闭了. 
我自己写了个程式可以很方便的控制并列埠的八条资料线.(需要 g++) 
http://home.att.net/~ruili/goldencat/paralle.tar.gz 
完整的电路可以控制八组relay也就是说可以控制八组不同的家电. 你还需要 
一个DB25接头(并列埠接头)的接口, 这样利用一条并列埠排线就能简单的把电脑和
 
控制电路连接到一起了. 
我是建议接的时候, 做个盒子, 电路都放在盒子里. 盒子的正面是开关, 指示 
灯和DB25的接口用并列埠排线和电脑连接. 底下有些图片可以让你参考: 
http://home.att.net/~ruili/goldencat/p1.jpg 
http://home.att.net/~ruili/goldencat/p2.jpg 
http://home.att.net/~ruili/goldencat/p3.jpg 
完整的电路图(控制八组relay)是用gschem做出来的. 
http://home.att.net/~ruili/goldencat/01.png 
如果需要把图片放大(这样看的会清楚很多)可以找我要我用gschem直接输出的 
存档, 但是这需要gschem, 下载gEDA: 
http://www.geda.seul.org/ 
我的homepage: 
http://home.att.net/~ruili/goldencat/index.html 

4.感谢 
这里特别感谢Rufus Chang rufus@chu.url.com.tw, 如果不是他提议, 我就根 
本不会想到写这篇mini-howto. 
看的人也只好去bbs找或者运气好能找到我的homepage. :) 
他也帮助我翻译了些我无法翻译成中文的英文单词, 因为我一直在美国生活, 
有些单词的中文没有接触的机会, 尤其是电路方面的, 我根本搞不清楚中文都是些
 
甚麽. :) 
也特别感谢Chih-Wei Huang cwhuang@linux.org.tw, 让我把这片 mini-howto 
放到CLDP. 

5.Copyright and License 
Copyright Rui Li 2000-2001 
License is GNU GPL, but it is requested that you retain the author's 
name and email on all copies. 
当您copy这篇文章的时候, 请保留我的姓名和E-mail. 

--

  puke! 
  技工而已

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.239.152]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.263毫秒