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毫秒