DIY物联网应用 3-控制继电器

简介:

在上一章《我的第一个物联网应用 2》中,我们完成了 Ruff SDK 的安装,开发环境已经准备就绪,这一章我们的目标是:


  • 新建一个 Ruff 项目,熟悉项目结构
  • 以继电器为例学会添加连接外设,并控制外设

下面有请这一期的主角入场。


  • Ruff 开发板:
    主板
  • 继电器
    继电器


继电器的作用

为了方便理解后面的内容,这里先简单科普一下继电器的工作原理,如果你已经知道继电器的作用可以跳过这段内容。
什么是继电器?继电器是一种通过某种信号变化来自动控制电路开关的电子设备。
继电器简图
上图是最简单的继电器模型图,输出电路有三个端口:常闭、常开和公共端,默认情况下常闭端和公共端是连通的,控制端根据输入的电信号能控制摆动条向下或向上摆,从而控制公共端和常闭端或者常开端连通。例如下图就是一个基于电磁信号来实现的继电器:
电磁信号继电器
大家回忆一下中学物理课中的电磁感应原理,当线圈通电后,线圈环绕的铁芯会产生磁力,在磁力的吸引作用下铁片和常闭端断开、和常开端联通;当线圈断电,铁芯磁力消失,铁片在弹簧拉力的作用下和常闭端联通。 如果我们用开发板控制继电器来控制风扇,那么电路连接情况可以如下图:

创建项目

思路理清楚了,下面我们终于可以写代码了,开干吧!创建一个目录:MyLotApp。进入项目目录。执行命令:

rap init

接下来命令终端会让你输入项目名称、描述、作者等信息,写过 NodeJs 的同学一定会觉得很亲切,项目初始化完成之后我们来看看工程的目录结构:
工程目录
package.json:

{
"name": "MyLotApp",
"version": "0.1.0",
"description": "My first Lot App",
"author": "dalimao",
"main": "src/index.js",
"ruff": {
"boards": {
    "ruff-mbd-v1": "^4.2.0",
    "*": "*"
},
"dependencies": {}

}
}

其中 main 节点指定了程序的入口文件;ruff 节点描述工程的依赖模块,boards 是开发板的基础依赖模块,dependencies 是设备的依赖模块,我们现在还没添加外设备,所以这里是空的。
app.json: 描述设备的逻辑ID(我们在添加外设时自己指定的ID)和驱动依赖包的映射关系。
test 目录:测试代码存放目录。
src 目录:源码目录,我们写的代码就放到这个目录下。
src/index.js: 在package.json 中指定了 index.js 为项目的程序入口。

'use strict';
$.ready(function (error) {
if (error) {
    console.log(error);
    return;
}
$('#led-r').turnOn();

});
$.end(function () {

$('#led-r').turnOff();

});

开发板启动完成、加载程序之后会执行ready() 回调函数,关闭之前会执行end()回调函数。这段代码加载后,开发板会点亮开发板上内置的红色led 灯。现在我们让这段初始化生成的代码在开发板上跑起来吧,有请我们的第一位主角-Ruff 开发板出场。

启动开发版

用 USB 连接线给 Ruff 开发板 ,开发板随即启动。开发版启动后会启动一个名字以 Ruff 开头的 WI-FI 热点,例如 Ruff0021332 。让开发机(你的电脑)连上这个 WI-FI 热点,然后就可以把代码部署到开发板上了。

部署程序

打开终端,进入工程目录,输入命令:

rap deploy -s

部署成功,观察一下开发板上红色 led 灯是否亮了。

添加继电器

关掉开发板电源,WIFI 切回正常使用的 WIFI。先来熟悉下 rap device add 这个命令,这个命令是用来添加外设的, 后面的参数是逻辑上的设备 ID,你可以自行定义,只要保证和其他设备 ID 不重复就行了。

 rap device add relay

这里我把继电器的 ID 定义为 relay ,回车之后 Ruff 命令行会询问你 Module ID, 这个才是设备真正的 ID ,这个 ID 和这个硬件的驱动程序是对应的,这个 ID 在设备的包装盒上有注明,输入这个 ID 回车之后 Ruff SDK 会根据 ID 在 Ruff 的软件仓库帮你寻找对应的驱动程序供你选择安装,如果这个设备还没有对应的驱动程序,你可以去根据 Ruff 的 API 去为它写驱动程序,当然这是后话了。
输入继电器的 Module ID :RELAY-1C,回车选择最新的驱动,然后自动到 Ruff 驱动仓库下载继电器的依赖模块。完成之后观察下项目 package.json 和 app.json 的变化,多了设备的配置信息。
安装上设备驱动之后 rap 命令行会输出设备针脚很开发板管脚的连接布局信息,你也可以通过 rap layout 命令来查询布局信息,你还可以通过 rap layout --visual 这个命令查看图形化的布局信息。
布局信息
根据指示完成继电器和主板的连线,连线过程记得关闭主板电源哟。

控制继电器

现在我们可以写程序来控制继电器了,怎么控制?这里我们要学会去Ruff 官网查看每个设备驱动提供的 API 和用法。到 Ruff 的软件仓库:https://rap.ruff.io/搜索:

你可以直接搜索 Module ID,你也可以搜索设备名称。搜索之后结果页面会出现模块的信息:

进入驱动页面可以看到设备模块对应的驱动的用法:

通过 ID,索引设备对象,这里的 ID 就是我们添加设备的时候自己定义的ID,我们定义的 ID 是"relay",所以我们可以这样来打开继电器(使公共端和常开端连通):

$('#relay').turnOn(function () {
// 打开继电器成功的回调函数
console.log('turn on');

});

现在我们把打开、关闭继电器的逻辑放到src/index.js中:

'use strict';
$.ready(function (error) {
if (error) {
    console.log(error);
    return;
}

$('#relay').turnOn(function () {

 // 打开继电器成功的回调函数
   console.log('turn on');
});

});
$.end(function () {

$('#relay').turnOff(function () { 
    // 关闭继电器成功的回调函数
   console.log('turn off');
});

});

启动并连接开发板,重新部署程序,部署成功你会听到继电器发出“嗒”的一声,说明继电器打开成功。
至此,我们能创建一个应用、学会如何添加并控制外设了,下一章有请另外两位主角:玩具小风扇和红外接收器。

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
25天前
|
存储 传感器 物联网
新技术驱动未来:区块链、物联网、虚拟现实的蓬勃发展与创新应用
随着科技的迅猛发展,新兴技术如区块链、物联网、虚拟现实等正成为当今社会关注的焦点。本文将探讨这些新技术的发展趋势和广泛应用场景,展示它们在不同领域中的潜力与创新价值。
|
20天前
|
供应链 监控 物联网
新技术浪潮:区块链、物联网与虚拟现实的发展趋势与应用探讨
在当今数字化时代,新兴技术如区块链、物联网和虚拟现实正以惊人的速度改变着我们的生活和工作方式。本文将探讨这些新技术的发展趋势和应用场景,分析它们在不同领域中的潜力和影响。
17 4
|
22天前
|
供应链 物联网 5G
新兴科技探索:区块链、物联网、虚拟现实的未来应用前景
在当今数字化快速发展的时代,新兴技术如区块链、物联网、虚拟现实等正逐渐改变我们的生活方式和商业模式。本文将深入探讨这些新技术的发展趋势和多样化应用场景,展望其在未来的巨大潜力。
|
24天前
|
物联网 区块链 vr&ar
新兴科技驱动未来发展:区块链、物联网和虚拟现实的趋势与应用探讨
随着科技的不断进步,新兴技术如区块链、物联网和虚拟现实正日益成为各行业关注的焦点。本文将就这些新兴技术的发展趋势和应用场景展开探讨,从而揭示它们在未来社会发展中的重要作用。
14 3
|
25天前
|
安全 物联网 区块链
新兴科技引领未来发展:探索区块链、物联网、虚拟现实的趋势与应用
在当今数字化飞速发展的时代,新兴技术如区块链、物联网、虚拟现实正逐渐成为引领未来发展的关键驱动力。本文将深入探讨这些技术的发展趋势和多样化应用场景,揭示它们对各行业的革新与影响。
|
27天前
|
安全 物联网 区块链
新技术引领未来:区块链、物联网、虚拟现实的发展与应用探究
在当今数字化时代,新兴技术如区块链、物联网和虚拟现实正日益成为引领未来发展的关键。本文将深入探讨这些技术的发展趋势以及广泛应用的场景,揭示它们对各行业的革新和影响。
|
1月前
|
传感器 安全 物联网
物联网技术的应用与挑战
物联网技术的应用与挑战
|
3月前
|
传感器 存储 监控
引领未来生活方式的智慧之家——物联网在智能家居中的应用
在当今科技日新月异的时代,物联网已经渗透到了我们生活的方方面面,其中最具代表性的就是智能家居。本文将探讨物联网在智能家居中的应用,并剖析其对人们生活方式的影响。从智能家居系统的构成、数据收集与分析、设备互联等角度深入阐述,旨在帮助读者更好地理解物联网技术在智能家居中的重要性和优势
57 4
|
3月前
|
传感器 物联网 智能硬件
连接家居的未来:物联网在智能家居中的革命性应用
随着物联网技术的迅猛发展,智能家居正成为我们生活中不可忽视的一部分。本文将探讨物联网在智能家居领域的创新和应用,包括智能设备的互联互通、家庭自动化、能源管理等方面的进展,以及其对我们日常生活的影响与未来发展的前景。
103 0
|
4月前
|
传感器 边缘计算 物联网
Docker在物联网和边缘计算中的应用
物联网(IoT)和边缘计算(Edge Computing)是当今科技领域中备受关注的两个领域。它们的兴起为连接设备、传感器和数据提供了新的机会,而Docker容器技术则在这一领域中发挥着重要作用。本文将探讨Docker在物联网和边缘计算中的应用,提供丰富的示例代码和综合的内容,以帮助大家更好地理解这两个领域的交汇点。

相关产品

  • 物联网平台