通过rs232串口控制投影机定时开关
2010-11-25 11:17

在很多情况下需要能对投影机进行自动开关机。本文讲解如何通过PC机的rs232串口控制投影机定时自动开关,并提供免费的软件。

投影机一般可以使用rs232串口或者红外遥控的方式来进行开关控制。红外遥控的开关机指令是相同的,加上红外自身的特点,它的可靠性就不是很强了,而串口是有线连接,开关机指令也不同,具有很高的可靠性。

一、接线

PC的COM1口是DB9,通常投影机的串口也是DB9,接口定义如下图



通常只需要连接2接收数据,3发送数据,5地就可以了,23需要交叉连接,RXD接TXD。

二、RS232中控码

有串口的投影机都会有中控码,开机与关机是最基本的中控码,你可以查看投影机的说明书,或者询问厂商或经销商。很多说明书上并没有写到中控码,有些经销商也可能不知道(他们只管卖),最好是询问厂商,当然也有可能在百度上搜到。只要有rs232接口的投影机就一定有这个中控码,尽管有些经销商会说没有。

你需要得到以下参数

波特率 多数是9600或19200

校验位 多数是无检验(NONE),还有可能是偶(EVEN)奇(ODD)

数据位 多数是8

停止位 多数是1

开机码 即开机指令代码,可能是一个字符串或者16进制的数据

关机码 即关机指令代码,可能是一个字符串或者16进制的数据

三、控制开关机

AutoSwitcher程序是本人开发的rs232串口开关控制程序,可以定时自动发送开关指令,下载地址:[下载]

程序需要.net framework 2.0支持,如果你的电脑上没装,需要装一下。

使用记事本打开config.xml编辑参数

<?xml version="1.0" encoding="utf-8"?>

<SP>

<!--控制的设备名称,显示在提示框和标题栏上-->

<name>投影机</name>

<!--端口-->

<port>COM1</port>

<!--波特率-->

<baudrate>19200</baudrate>

<!--奇偶检验 Even Odd Mark None Space-->

<parity>None</parity>

<!--数据位-->

<databits>8</databits>

<!--停止位 1 1.5 2-->

<stopbits>1</stopbits>

<!--启用RTS 0:不启用 1:启用-->

<rts>0</rts>

<!--使用十六进制发送-->

<hex>1</hex>

<!--开机码-->

<on>F<?xml:namespace prefix = st1 />123A0</on>

<!--关机码-->

<off>F123B1</off>

<!--定时开关机时间,可以自由增加或删除“<ontime></ontime>” “<offtime></offtime>”标签-->

<!--时间格式 hh:mm:ss-->

<ontime>08:30:00</ontime>

<offtime>10:30:00</offtime>

<ontime>11:00:00</ontime>

<offtime>13:00:00</offtime>

</SP>

设置好串口参数后可以运行AutoSwitcher.exe,运行后在右下角托盘中有一个图标,双击可打开窗口,点击立即开、立即关可以测试参数与接线是否正确。

测试成功后可以设置<ontime>与<offtime>,如上面的参数在8:30与11:00的时候会发送开机指令,在10:30与13:00的时候会发送关机指令。

可以创建一个快捷方式复制到开始菜单启动项开机自动运行这个程序。