如何用Skype远程控制自制智能家居

2024-01-17 08:08

本文主要是介绍如何用Skype远程控制自制智能家居,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

如何用Skype自己做智能家电控制

ByRichard Davis
Software Design Engineer at SharpLogic Software

本文介绍如何通过Skype发送命令远程控制家中的家用电器,比如:读取家里的温度、家里的音响正在播放什么歌曲,调节音乐的音量、照明、风扇的开、关,等等。

难度:中等

所需时间:3-6小时

成本:大约1500

所需硬件:

8/8/8 Interface Kit.

http://www.guigujianwen.com/2016/06/23/1018_2-phidgetinterfacekit-888/

产品编号: 1018

USB连接线.

 

温度传感器.

http://www.dengfengsoft.com/ViewDetails138.aspx

产品编号: 1124

 

LED.

http://www.dengfengsoft.com/ViewDetails238.aspx

数量: 4

产品编号:3600

 

压力传感器.

http://www.dengfengsoft.com/ViewDetails151.aspx

产品编号: 1106

 

触摸传感器.

http://www.dengfengsoft.com/ViewDetails148.aspx

产品编号: 1110

 

光传感器.

http://www.dengfengsoft.com/ViewDetails135.aspx

产品编号: 1105

 

12Volt电脑风扇 (直流供电).

 

提示:可以从旧电脑中拆出来 (如果是 12Volt).

 

功率电晶体.

可到电子城购买,符合以下要求即可:

·        V(DS): 60 Volts

·        V(GS): +/-20 Volts

我们使用 STMicroelectronics P16NF06.

 

9V电池 (Phidget 8/8/8 digital输出还无法带动12V 风扇).

 

9V电池连接线.

 

 

 


 

硬件部分除了上述部件之外,还需要一些连接风扇与Phidget 8/8/8接口板的电线。

所需软件:

1.   .NET Framework 2.0如果没有安装,请下载安装

2.   Windows Media Player 10或更高版本

3.   Phidgets驱动.

4.   Phidgets编程.

5.   Microsoft Visual C# or Visual Basic 2005 Express Edition或更高版本

6.   Skype version 1.2.0.48或更高版本

7.   本文的程序源码C# VB

 

操作步骤:

 

1,USB线连接PCPhidget 8/8/8 接口板:

 

 

Figure1-连接到电脑USB

Figure2连接到Phidget 8/8/8接口板

 

2

把温度传感器连接线插入0

把光传感器连接线插入1

把压力传感器连接线插入2

把触摸传感器连接线插入3

如下图所示:

 

 

Figure3把传感器连接线连接到Interface Kit

 

 

 

 

完成后应该如下图所示:

 

 

Figure4所有传感器已经连接

 

其他类型的传感器本文没有做示范,但如果大家感兴趣,可以到天邦登峰Phidgets查找所有的编程资源和范例源码.

 

下面我们来看看接口板的功能吧:

打开Samples.SkypeAutomationServer.sln工程文件(C#默认路径我的文档/MSDN/SkypeAutomationServer” ).按下 Ctrl+F5启动服务.

 

注意:如果你无法编译工程,请检查Phidgets硬件驱动 , Windows Media Player 10(或更高版本), Skype, and Microsoft .NET 2.0(或更高版本)是否安装。

 

 

Figure5 – Skype Automation Server显示 Phidget传感器开始读入数据

 

现在应该可以看到界面顶部的状态显示Phidget Controller Status: Connected。可以测试其他的传感器看看数据是否已经读入。

连接指示灯

一般来说,设备加几个指示灯可以更清楚的反应设备的工作状态,也显得专业一些。

 

我们可以把 LEDs连接 Phidget 8/8/8 2, 3, 4, and 5数据输出口。每个LED应该有电源和地线两端,地线是扁平的一端。


 

 

连接后应该如下图所示:

 

 

 

Figure6 - LEDs连接Interface Kit 2345输出口

 

注意:电源端不要互相接触,地线端可以共用.

连接计算机风扇到Phidget 8/8/8输出口

 

连接图如下:

 

 

Figure7 - 计算机风扇、电池和 MOSFET的连接图

 

 

1.   MOSFET的左右脚稍作弯曲。

 

Figure8 - MOSFET transistor

Figure9 - MOSFET(稍作弯曲)

 

2.   用导线将MOSFET的一端与Phidget 8/8/8的输出口的地线端连接。

 

Figure10 - MOSFET地线端连接

 

3.   Phidget 8/8/8输出端 #1 连接到MOSFET另一端.

 

Figure11 - MOSFETPhidget 8/8/8输出端#1连接

 


Phidget 8/8/8完整的连接图如下图所示:

 

Figure12Phidget 8/8/8MOSFET连接

 

4.   把电脑风扇的导线末端外皮去除,如下图:

 

 

Figure13处理电脑风扇导线的两端

 


5.   把电脑风扇导线的正极与9伏电池的正极连接线连接.

 

 

Figure14电脑风扇正极导线连接

 

6.   将电池连接线的负极与MOSFET的地线端连接:

7.    

 

Figure15电池连接线负极连接到MOSFET的地线端

 


8.   把风扇导线的负极连接到MOSFET中间的脚:

 

Figure16电脑风扇导线负极连接MOSFET中间脚。

 

9.最后一部把9V电池接入电池连接盖中。

系统硬件部分连接完毕!

 

测试Phidget 8/8/8接口板输出数据

打开 “Program Files/Phidgets/ProductionExamples/Visual Basic”运行interfacekit-controller.exe

 

Figure17 - Interfacekit-Controller.exe测试软件

 

可以在软件上测试操作输出LED灯开关,#1口风扇开关指令。


运行Skype Automation Server服务器程序

运行前,我们看下Samples.SkypeAutomationServer.sln工程文件的配置文件 App.config文件。

<!—授权使用automation server的用户-->

<addkey="authorizedUser"value="rwdavis"/>

<!-- Temp sensor (p/n 1114) analog index on 8/8/8 interface kit -->

<addkey="tempSensorIndex"value="0"/>

<!-- Light sensor (p/n 1105) analog index on 8/8/8 interface kit -->

<addkey="lightSensorIndex"value="1"/>

<!-- Force sensor (p/n 1106) analog index on 8/8/8 interface kit -->

<addkey="forceSensorIndex"value="2"/>

<!-- Touch sensor (p/n 1110) analog index on 8/8/8 interface kit -->

<addkey="touchSensorIndex"value="3"/>

<!-- Step sensor (p/n 91252) analog index on 8/8/8 interface kit -->

<addkey="stepSensorIndex"value="4"/>

<!-- Digital output index of computer fan -->

<addkey ="computerFanIndex"value="1"/>

<!-- Temperature sensor threshold (Celsius) to turn on fan -->

<addkey="fanTempThreshold"value="26"/>

<!-- LED digital output index on 8/8/8 interface kit -->

<addkey="firstLEDIndex"value="5"/>

<addkey="secondLEDIndex"value="4"/>

<addkey="thirdLEDIndex"value="3"/>

<addkey="fourthLEDIndex"value="2"/>

 

你需要两个Skype账户,一个用在服务器端的Skype上,你需要把用户名输入到这个配置文件的authorizedUser” key上面.另一账户用在运行在远程客户端电脑的Skype上,需要添加服务器端的用户为联系人,这样你就可以发送命令消息到服务器端的Skype上了!

 

所有传感器所连接的Phidget 8/8/8端口号必须在这里设置好,如果你不是按照以上教程的连接端口连接,你需要在这里修改相应的Index .

 

fanTempThreshold值是摄制温度值,当室内温度高于这个值时,电脑风扇自动启动。

 

 

Figure18 - Skype Automation Server服务器端

 

假定所有硬件设备都连接正确,软件配置也连接正确,我们就可以运行服务器端,并打开Skype客户端来发送指令了!

 

Figure19 - Skype客户端与 Automation Server服务器端交谈

 

如果输入 ‘GET PHIDGET HELP’就可以收到服务器返回的帮助菜单:

 

Figure20 - Skype Server “Help” response


如果你输入 ‘GET PHIDGET TEMP’可以收到服务器端返回的室内温度值:

 

Figure21 - Skype Server “Get Temp”回应

 

注意:如果没有这个命令,服务器端返回“Not implemented”.

 

你可以输入Type ‘GET STEREO SONG’可以查看WMP 正在播放的内容.

 

Figure22 - Skype Server “Get Song”回应

 

控制音量可以使用: ‘SET STEREO VOLUME’ 和一个百分比.比如设置 50% 的音量可以输入 ‘SET STEREO VOLUME 50’.

 

如果想实时接收服务器端的触摸传感器的触摸事件,那么可以输入:‘REGISTER PHIDGET TOUCH’,那么如果服务器端的触摸传感器被触发,客户端就有回应:

 

Figure23 - Skype Server “Register Touch”回应

 

你还可以输入“SET EXECUTE方法来打开服务器端的任何可执行软件,比如你可以输入“SET EXECUTE IEXPLORE 来打开IE浏览器.


 

 

整个教程的运行原理图如下:

 

Figure24完整 Skype Automation Server原理图

这篇关于如何用Skype远程控制自制智能家居的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/615390

相关文章

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Java实现远程执行Shell指令

《Java实现远程执行Shell指令》文章介绍使用JSch在SpringBoot项目中实现远程Shell操作,涵盖环境配置、依赖引入及工具类编写,详解分号和双与号执行多指令的区别... 目录软硬件环境说明编写执行Shell指令的工具类总结jsch(Java Secure Channel)是SSH2的一个纯J

Mac电脑如何通过 IntelliJ IDEA 远程连接 MySQL

《Mac电脑如何通过IntelliJIDEA远程连接MySQL》本文详解Mac通过IntelliJIDEA远程连接MySQL的步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟... 目录MAC电脑通过 IntelliJ IDEA 远程连接 mysql 的详细教程一、前缀条件确认二、打开 ID

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Python远程控制MySQL的完整指南

《Python远程控制MySQL的完整指南》MySQL是最流行的关系型数据库之一,Python通过多种方式可以与MySQL进行交互,下面小编就为大家详细介绍一下Python操作MySQL的常用方法和最... 目录1. 准备工作2. 连接mysql数据库使用mysql-connector使用PyMySQL3.

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主