1. 发光二极管

tm-onoff

var Gpio = require('tm-onoff').Gpio,
led = new Gpio(17, 'out'),
button = new Gpio(18, 'in', 'both');
// 'both':按钮的上升下降沿都应该被处理,即调用如下的函数
button.watch(function(err, value) {
led.writeSync(value);
});

上述代码在ctrl+c退出时,并未释放资源,也未处理错误,一份更完整的处理如下:

var Gpio = require('tm-onoff').Gpio,
led = new Gpio(17, 'out'),
button = new Gpio(18, 'in', 'both'); button.watch(function(err, value) {
if (err) exit();
led.writeSync(value);
}); function exit() {
led.unexport();
button.unexport();
process.exit();
} process.on('SIGINT', exit);
  • 通过调用 led、btn 的 unexport 方法以释放其资源;

    var onoff = require('onoff');
    var Gpio = onoff.Gpio,
    led = new Gpio(4, 'out'),
    interval; interval = setInterval(function () { //#C
    var value = (led.readSync() + 1) % 2; //#D
    led.write(value, function () { //#E
    console.log("Changed LED state to: " + value);
    });
    }, 2000); process.on('SIGINT', function () { //#F
    clearInterval(interval);
    led.writeSync(0); //#G
    led.unexport();
    console.log('Bye, bye!');
    process.exit();
    });

2. dht:温湿度传感器

GitHub - momenso/node-dht-sensor: Node.js Humidity and Temperature sensor addon

  • node-dht-sensor 的安装使用如下命令:

    $ npm install --save node-dht-sensor
    
    # 如果存在权限问题,使用
    
    $ sudo npm install --unsafe-perm --save node-dht-sensor
var dhtLib = require('node-dht-sensor');
dhtLib.initialize(11, 12);
// 第一个参数表示传感器类型,dht11使用11,dht22使用22
// 第二个参数表示GPIO引脚号
var interval = setInterval(function (){
read();
}, 2000);
function read() {
var readout = dhtLib.read();
console.log('Temperature: ' + readout.temperature.toFixed(2) + 'C, ' +
'humidity: ' + readout.humidity.toFixed(2) + '%');
};
process.on('SIGINT', function () {
clearInterval(interval);
console.log('Bye, bye!');
process.exit();
});

树莓派与node.js —— onoff、dht的更多相关文章

  1. 树莓派.使用Node.js来制作一个作业检查仪

    先上图 前段时间, 花了点时间给女儿做了个数学习题的小程序 首页 做题界面(题目每次都随机生成, 加减乘除都有) 做题记录 现在问题来了, 怎么才能随时知道作业有没有完成呢? 每次打开做题记录页面刷新 ...

  2. 树莓派.使用Node.js控制GPIO

    树莓派上的40个GPIO是最好玩的东西 它们可以被C,/C++, Python, Java等语言直接控制 现在就来看看怎么用Node.js做到同样的事情 在试验之前, 请先安装好Node.js, 具体 ...

  3. 树莓派安装node.js

    因为树莓派是arm架构,node.js上并没有提供arm架构的二进制包下载. 试过使用apt包管理安装和直接node.js源代码编译安装(编译了四五个小时...),都没有成功,报非法指令错误,预计还是 ...

  4. 树莓派.安装系统+Node.js+MongoDB系列环境

    1.先去树莓派官网下载最新的ROM https://www.raspberrypi.org/downloads/raspbian/ 这里选的是: RASPBIAN JESSIE WITH DESKTO ...

  5. 在树莓派3B上安装node.js

    本文主讲如何在树莓派3B上安装node.js 环境描述1. 树莓派安装了`2016-11-25-raspbian-jessie-lite`(PS:在此版本的镜像中,默认禁用了ssh,在烧录好镜像之后, ...

  6. pidera安装node.js(树莓派)

    1. 下载node.js wget http://nodejs.org/dist/v0.10.5/node-v0.10.5-linux-arm-pi.tar.gz tar -xzvf node-v0. ...

  7. 玩儿转物联网IoT - 在Beagle Bone Black上运行node.js 程序

    物联网(IoT)技术方兴未艾,智能手环,智能血压计,智能眼镜甚至智能鞋垫都开始进入我们的生活,各种智能设备层出不穷,世界已经到了一个"人有多大胆,地有多大产"的时代,不玩儿点物联网 ...

  8. 用Node.js开发Windows 10物联网应用

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 未来10年内,物联网将会如移动互联网这样深入到我们生活的各方各面.所以微软现在对物联网进行了 ...

  9. [Cubieboard] Node.js 在 Lubuntu 上安装指南

    在 Ubuntu 下安装 Node.js sudo apt-get install python-software-properties python g++ make sudo add-apt-re ...

随机推荐

  1. java中super和this的使用

    要说super就先要说this."this",作为一个特殊的关键字,它的规则如下: 1.可以表示构造函数传递.this(a,b)表示调用另外一个构造函数.这里面的this就是一个特 ...

  2. jQuery-全屏滚动插件【fullPage.js】API 使用方法总结

    jQuery-全屏滚动插件[fullPage.js]API 使用方法总结   jQuery-全屏滚动插件fullPage.js使用方法总结 作者github及下载地址:https://github.c ...

  3. vue-navigation 实现前进刷新,后退不刷新

    vue-navigation GitHub地址 导航默认行为类似手机APP的页面导航(A.B.C为页面): A前进到B,再前进到C: C返回到B时,B会从缓存中恢复: B再次前进到C,C会重新生成,不 ...

  4. AIX 5335端口IBM WebSphere应用服务器关闭连接信息泄露漏洞的修复

    今天按要求协助进行漏洞修复,有个“IBM WebSphere应用服务器关闭连接信息泄露漏洞”,一直没太搞清是不是没打补丁引起的问题. 感觉同样的安装有的报这漏洞有的不报,而报的有的是应用端口,有时是控 ...

  5. hibernate配置log

    hibernate依赖jboss-logging,通过它选择对应的对应的日志包,选择的逻辑课查看具体代码org.jboss.logging.LoggerProviders. 先通过系统变量(org.j ...

  6. day25-python操作redis一

    1.     Python操作nosql数据库 NoSQL,泛指非关系型的数据库.随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2 ...

  7. day5-python数据类型

    数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定 ...

  8. python 调用zabbix api实现查询主机信息,输出所有主机ip

    之前发现搜索出来的主机调用zabbix api信息都不是那么明确,后来通过zabbix官方文档,查到想要的api信息,随后写一篇自己这次项目中用到的api. #!/usr/bin/env python ...

  9. day02 运算符和编码

    今日所学 主要是运算符和编码的初认识, 1   还有比较运算 ==,!=,<>,>,<,>=,<=等 2  .  赋值运算 =,+=,-=等 还有今天的难点逻辑运算 ...

  10. Огонек--灯光--IPA--俄语

    苏联老歌总让人沉浸其中.