C#控制硬件


浏览:935 次

概述

C#仍然是这个星球上使用人数最多的语言,简单、易用、开发周期短。 下面就一步步说明,如何用C#来控制硬件设备。

开发前的准备

首先,你需要一台设备,或者要清楚应该选用怎样的设备。 在一些场景中,你可能还需要一点基础的电工知识。

比如:要控制灯、饮水机以及一些电器的通断,大多数时候,你其实是要控制的是他们的电源开关。 再比如:要控制门(门禁),其实是控制门的电磁锁的电源通断。 作为最通用的控制设备,本文以智能WiFi通断器为例,来说明Java是怎样控制一只灯光的。 如果你是第一次尝试对接物联网设备,建议你申请一台测试设备[链接], 使用是免费的,但需要交纳100元/台的押金,测试完成后,会马上退回。

设备名称
WiFi通断器 WiFi墙壁插座(10A) WiFi墙壁开关(2路)

物联网控制台

物联网控制台是平台为开发者提供的设备管理、控制、调试工具, 在控制台可以方便的查看设备状态、属性、日志,可为设备编组,打标签。 控制台的所有设备管理能力均有对应接口,您可以调用这些接口,在您的系统上实现设备管理, 也可以只在系统上实现设备控制,在控制台来管理设备。 点击这里,一键安装控制台模块。

收到设备后,一定是迫不及待的测试一把。 先按照设备说明,接线、配网,然后你就可以控制这台设备了。

有两种控制方式:

1. 小程序控制
2. 控制台控制
以WiFi出门开关为例
控制台上有更加详细的设备情况:

在调试卡片,你可以看到每一条设备收发的消息

在日志卡片,你可以看到设备的工作情况

用C#控制硬件

用C#构造一个HTTP请求,向设备下发命令。接口文档地址

GET|POST方式均有效

名称 必填 类型 说明
device string
设备ID,读取设备列表时返回的ID 指定多台设备时请用间隔符(,或|)连接 指定多个设备时,不要这些设备属于同一类产品,但必须有相同的指令 如:10222为一代通断器,10333为二代通断器,都有指令 power=1,则可同时指定
sync int
为1时(默认),同步返回指令执行结果 为0时(需指定),只返回是否下发成功,而不返回指令执行结果
属性 string
命令,格式为 设备的属性名称=属性值 在设备详情页,可查询设备的可用指令以及可用的值 如power=1,则下发命令接通设备电源 也可以将属性值用order包裹起来,如:order:{power:1}
请求地址: http://iot-api.unisoft.cn/{APP_ID}/device/control/?sign={sign}&ts={ts} 关于sign和ts的定义

下面的Java代码用来控制一台3路的WiFi智能墙壁插座