物联网涉及到硬件控制的通常有两种,一种是调用第三方公司开发好的接口包(当然,传感器也被第三方公司进行了封装),另外一种是自己开发传感器的数据采集程序。
下面先讲解第一种方式通过第三方的接口包控制传感器,当然下面这个厂家提供了模拟器,模拟器的效果和实物效果是一样的,下面是现场沙盘,传感器、协调器、网关是真实的,下面开发的程序与网关在同一个WiFi环境下就可以控制。
厂家把所有的传感器通过采集器采集后,再通过协调器来连接网关,我们只需要通过网关来收发数据就可以了。厂家分别提供了Java、C#、Android的接口包,操作都是一样的,下面讲解采用C#的方式进行传感器的数据传输。
一、连接好对应的终端设备
启动厂家提供的终端仿真软件,终端布局如下:
上图相当于在大棚安装了六个传感器,分别监测:空气温度、空气湿度、土壤温度、土壤湿度、光照强度、二氧化碳含量。
我们可以通过厂家的无线数据采集器采集传感器的数据,采集器与协调器连接。
继电器连接大棚的排风扇(调整温湿度及二氧化碳含量)、大棚的灯(调整光照)、大棚的喷灌(调整湿度)、大棚的遮阳设备(调整光照)。
继电器模块与协调器连接,协调器通过网关对外提供数据读写的IP地址与端口,应用层只需要通过厂家提供的接口包连接到对应的IP与端口就可以实现传感器的数据采集及继电器的远程控制。
二、代码编写
2.1创建项目
打开VisualStudio 2017创建一个桌面项目。
下面创建的是WinFrom项目,当然,你创建WPF项目,问题也不大,只不过部分代码写法不一样而已。
确定后,打开项目地址,
把厂家提供的dll文件拷贝到项目根目录,后面需要导入这个dll集成包,我们就不必要写那么多的代码,很多都是封装好了的。
其实上面放哪里都可以,项目生成后,开发环境会自动把这个dll文件打包,和生成的EXE可执行文件放一起。
回到开发环境,把dll文件加入引用。
点击浏览--浏览,找到项目根目录下面的dll文件,然后点击确定。
我们看到项目里面已经加入了对应的dll文档的引用。
2.2界面设计
界面如上所示,首先最底部的是网关连接设置,我们可以通过IP地址和端口连接传感器控制侧的网关。
下面部分,左边是周期性更新的大棚环境指标,右边是我们可以根据大棚的环境指标来认为控制大棚的排风扇、灯光、喷头、遮阳电机来改变大棚的环境。
代码如下图所示:
三、运行效果
点击启动运行。
把模拟实训台的网关IP和地址输入到程序里面。然后点击“打开网关”按钮。
如果网络正确,则程序会提示“网关打开成功!”
并如上图所示每隔5秒钟显示传感器的数据及继电器的状态(四个勾选的控件)。
当前模拟器的四个继电器状态如下(全部都没有开):
此时我们把程序的四个勾全部勾选,然后点击“控制”按钮。此时我们可以看到四个继电器对应的设备都启动了。
当然,该套模拟器里面,我们还可以通过设置传感器的属性来设置不同的环境参数,如下图。
我们还可以通过加入一些判断,通过在代码里面设置传感器的阈值来实现自动化控制。
下一讲,我们讲下如何抛开深度集成的厂家的产品,对更底层的硬件进行控制。