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
目录
相关文章
|
24天前
|
供应链 数据可视化 物联网
新技术趋势与应用:区块链、物联网与虚拟现实的融合与创新
本文深入探讨了当前最具变革性的新兴技术——区块链、物联网(IoT)和虚拟现实(VR)的发展趋势及其应用场景。通过分析这些技术的基本原理、独特优势以及实际用例,揭示了它们如何相互促进、融合创新,并共同塑造未来智能化世界的蓝图。文章旨在为读者提供对新技术趋势的全面理解,展现其在不同领域中的广泛应用前景,以及这些技术如何共同推动社会进步和产业升级。
|
1月前
|
供应链 安全 物联网
新技术趋势与应用:区块链、物联网和虚拟现实的未来发展
本文将探讨新兴技术如区块链、物联网和虚拟现实的发展趋势和应用场景。区块链技术作为一种分布式数据库,具有去中心化、安全透明等特点,被广泛应用于金融、供应链等领域。物联网技术通过将物品与互联网连接,实现智能化管理和控制,应用于智能家居、智能交通等场景。虚拟现实技术则通过模拟虚拟环境,提供沉浸式体验,应用于游戏、教育等领域。这些技术的发展将深刻影响我们的生活和社会。
39 2
|
2天前
|
传感器 监控 物联网
PWM在物联网中的应用
PWM(脉冲宽度调制)在物联网中广泛应用,通过控制信号的占空比来调节设备的工作状态,如LED亮度、电机速度等,实现高效、精确的控制,常用于智能家居、工业自动化等领域。
|
5天前
|
传感器 存储 运维
智能物联网:LoRaWAN技术在低功耗广域网中的应用
【10月更文挑战第26天】本文详细介绍了LoRaWAN技术的基本原理、应用场景及实际应用示例。LoRaWAN是一种低功耗、长距离的网络层协议,适用于智能城市、农业、工业监控等领域。文章通过示例代码展示了如何使用LoRaWAN传输温湿度数据,并强调了其在物联网中的重要性和广阔前景。
25 6
|
4天前
|
传感器 监控 物联网
智能物联网:LoRaWAN技术在低功耗广域网中的应用
【10月更文挑战第27天】LoRaWAN技术是低功耗广域网(LPWAN)的重要代表,以其远距离通信、低功耗和低成本部署等优势,广泛应用于智能城市、农业监测和环境监测等领域。本文介绍LoRaWAN的工作原理及其实际应用,并提供示例代码展示如何使用LoRaWAN进行数据传输。
15 2
|
9天前
|
传感器 监控 物联网
探索新技术趋势与应用:物联网与虚拟现实的未来展望
本文旨在深入探讨新兴技术如物联网(IoT)和虚拟现实(VR)的发展趋势及其在各行业的潜在应用场景。随着科技的不断进步,这些技术正以前所未有的速度改变着我们的生活、工作和娱乐方式。本文将从技术原理、当前发展趋势、以及实际应用案例三个方面进行全面分析,揭示物联网和虚拟现实如何共同推动社会进步,并展望未来可能的发展方向。
|
10天前
|
安全 物联网 区块链
探索未来:区块链技术在物联网和虚拟现实中的融合应用
【10月更文挑战第21天】本文深入探讨了区块链、物联网(IoT)和虚拟现实(VR)这三项前沿技术的发展趋势,并分析了它们如何相互作用以推动创新。我们将通过具体案例来揭示这些技术如何改变我们的工作和生活方式,同时提供对未来发展的一些预测。
|
11天前
|
供应链 物联网 区块链
未来技术浪潮之巅:区块链、物联网与虚拟现实的应用探索
【10月更文挑战第20天】随着技术的飞速发展,新兴技术如区块链、物联网和虚拟现实正在重塑我们的工作和生活方式。本文将深入探讨这些技术的发展趋势和应用场景,并展示如何通过代码示例实现它们在现实世界中的应用。让我们一起揭开这些技术神秘面纱,探索它们在未来的无限可能!
|
13天前
|
物联网 数据安全/隐私保护 数据格式
不同行业在应用物联网时面临哪些挑战?
不同行业在应用物联网(IoT)时面临的挑战多种多样,这些挑战往往与行业特性、技术基础、法规环境、数据安全和隐私保护等因素密切相关。以下是对不同行业在应用物联网时可能面临的主要挑战的操作性分析:
|
18天前
|
传感器 监控 物联网
新技术趋势与应用在科技日新月异的今天,新兴技术如物联网、虚拟现实等正以前所未有的速度改变着我们的生活。本文将深入探讨这些技术的发展趋势和应用场景,揭示它们如何塑造未来。
本文聚焦于物联网和虚拟现实等新兴技术的发展动态及其广泛应用。通过分析当前技术进展、实际应用案例以及未来发展的可能性,本文揭示了这些技术如何深刻影响各行各业,并对未来的趋势进行了展望。

相关产品

  • 物联网平台