- 积分
- 9
- 实力分
- 点
- 金钱数
- 两
- 技术分
- 分
- 贡献分
- 分
|

楼主 |
发表于 2006-3-3 13:37:40
|
显示全部楼层
对于接触过单片机的人来说,要驱动两个继电器的断开和闭合是很容易的,只要在相应的管脚上置高低电平就好了。事实上小8的CPU也是一片单片机。而继电器的开合就控制了家电的开关。从而实现家电的自动控制。问题什么时候去命令这两个管脚输出高低电平,这就由小8来控制了。
实现远程控制有5个方法,一个是接通手机后进行数据通信CSD方式,二是通过来电显示号码信息来区别,三就是GPRS方式,4是接通电话后利用语音DTMF传送数据方式,第5就是短消息方式了,我这里采用了最方便最直观的方式,短消息方式
那怎么实现对小8收到的短消息进行处理呢?很简单,大家可能都用过手机工作室这个软件吧,当你用数据线把小8连到电脑的串口上时,是不是就可以用手机工作室读出或者收发短消息呢?事实上前两年我也做过这样的PC端软件。既然电脑可以通过软件来处理小8的短消息,那为什么单片机就不能呢?答案当然是肯定的,因为单片机也相当于一台电脑,它也有串口,也可以来处理小8的短消息,并且它可以很方便的用软件来命令某个管脚输出高低电平来。
所以实现的基础条件有了,自然也可以来实现通过短信来控制继电器了
手机厂家为了实现手机与其它设备的通讯,制订了一套协议,这就是AT指令,每个厂家的AT指令不尽相同,但基本命令还是相同的,对短消息的读写就要用到AT指令了,如AT+CMGR=1就是一条读取一号位置的短信命令.读出来的编码是一串PDU编码,它是有一定格式的编码,特别是短信中的中文部分,全部是UNICODE编码,所以你必须先把中文转成UNICODE编码再来和他比较是否执行操作.程序检测是否收到短信并不是使用查询法的,因为不断的去查询是否有新短信势必造成通讯繁忙,而且单片机也变得不能做其它事了,所以我在程序中用的是中断法,一旦有新短信进来,手机立刻让单片机产生一个中断,程序就会马上去读这条新短信,发现是控制命令,则根据命令内容去执行相应结果,并删除这条短信,不是控制命令,则不予处理.我以前做的上位机软件也是利用这种方式的,只要一有新消息进来就会自动弹出窗口,大家可以下载来用数据线连上电脑试试看
[ 本帖最后由 yingbin 于 2006-3-3 23:34 编辑 ] |
|