树莓派与node.js —— onoff、dht
1. 发光二极管
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的更多相关文章
- 树莓派.使用Node.js来制作一个作业检查仪
先上图 前段时间, 花了点时间给女儿做了个数学习题的小程序 首页 做题界面(题目每次都随机生成, 加减乘除都有) 做题记录 现在问题来了, 怎么才能随时知道作业有没有完成呢? 每次打开做题记录页面刷新 ...
- 树莓派.使用Node.js控制GPIO
树莓派上的40个GPIO是最好玩的东西 它们可以被C,/C++, Python, Java等语言直接控制 现在就来看看怎么用Node.js做到同样的事情 在试验之前, 请先安装好Node.js, 具体 ...
- 树莓派安装node.js
因为树莓派是arm架构,node.js上并没有提供arm架构的二进制包下载. 试过使用apt包管理安装和直接node.js源代码编译安装(编译了四五个小时...),都没有成功,报非法指令错误,预计还是 ...
- 树莓派.安装系统+Node.js+MongoDB系列环境
1.先去树莓派官网下载最新的ROM https://www.raspberrypi.org/downloads/raspbian/ 这里选的是: RASPBIAN JESSIE WITH DESKTO ...
- 在树莓派3B上安装node.js
本文主讲如何在树莓派3B上安装node.js 环境描述1. 树莓派安装了`2016-11-25-raspbian-jessie-lite`(PS:在此版本的镜像中,默认禁用了ssh,在烧录好镜像之后, ...
- 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. ...
- 玩儿转物联网IoT - 在Beagle Bone Black上运行node.js 程序
物联网(IoT)技术方兴未艾,智能手环,智能血压计,智能眼镜甚至智能鞋垫都开始进入我们的生活,各种智能设备层出不穷,世界已经到了一个"人有多大胆,地有多大产"的时代,不玩儿点物联网 ...
- 用Node.js开发Windows 10物联网应用
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 未来10年内,物联网将会如移动互联网这样深入到我们生活的各方各面.所以微软现在对物联网进行了 ...
- [Cubieboard] Node.js 在 Lubuntu 上安装指南
在 Ubuntu 下安装 Node.js sudo apt-get install python-software-properties python g++ make sudo add-apt-re ...
随机推荐
- 切换JDK版本时修改JAVA_HOME环境变量不生效(转)
当电脑上存在多个版本的JDK时,可能 会遇到想切换版本时无论你如何改JAVA_HOME的路径 进入cmd java -version 都无法得到最新设置的JDK版本 如果遇到类似以下信息 Regist ...
- [codechef July Challenge 2017] IPC Trainers
IPCTRAIN: 训练营教练题目描述本次印度编程训练营(Indian Programming Camp,IPC)共请到了 N 名教练.训练营的日程安排有 M 天,每天最多上一节课.第 i 名教练在第 ...
- 自签名证书说明——自签名证书的Issuer和Subject是一样的。不安全的原因是:没有得到专业SSL证书颁发的机构的技术支持?比如使用不安全的1024位非对称密钥对,有效期设置很长等
一般的数字证书产品的主题通常含有如下字段:公用名称 (Common Name) 简称:CN 字段,对于 SSL 证书,一般为网站域名:而对于代码签名证书则为申请单位名称:而对于客户端证书则为证书申请者 ...
- Nginx反向代理配置教程(php-fpm)
1.安装nginx http://www.cnblogs.com/lsdb/p/6543441.html 2.安装php-fpm yum install -y php-fpm 3.配置Nginx反向代 ...
- QPainter使用不同风格的QBrush来填充区域
效果图: void WgtText::paintEvent(QPaintEvent *event) { QPainter painter(this); painter.setRenderHint(QP ...
- windows 下的命令操作
删除文件夹 RD /S D:\aaaaa 删除文件夹下的文件 DEL D:\aaaaa\*.*
- 逆袭之旅DAY14.东软实训.Oracle.多表连接、分组函数、子查询
2018-07-10 08:29:55 思考应用场景 异常数据的测试 6.显示能挣得奖金的雇员的姓名.工资.奖金,并以工资和奖金降序排列.select ename,sal,commfrom empWH ...
- learning scala 数组和容器
数组:可变的,可索引的,元素具有相同类型的数据集合 一维数组 scala> val intValueArr = new Array[Int](3)intValueArr: Array[Int] ...
- vue-6-事件处理
<div id="example-2"> <button v-on:click="greet">Greet</button> ...
- requests(第三方模块) 请求、登录、下载网页
import requests #http://docs.python-requests.org/en/latest/api/ 说明文档 ''' requests.request(method,ur ...