rx-dht-sensor
A DHT11 Sensor Driven written with Noejs. Monitoring temperature and humidity changes using RxJS.
使用NodeJS驱动DHT11温度湿度传感器,并使用RxJS监测数据的变化。
安装
npm install rx-dht-sensor
接线
按照如下图进行接线
快速开始
var DHTSeries = ; var dht11 = model: 'dht11' address: 4; dht11;
使用观察者模式监控数值
// We are interested in temperature and humidity.var observable = dht11; // Now we are monitoring.var subscription = observable; // use dispose() to stop monitor.// subscription.dispose()
上面我们使用 RxJS 提供的观察者模式进行监控数据。使用 observe(interval, type='all') 同时进行温度和湿度的监控。
observe 会返回 observable(观察者) 对象,然后我们订阅温度和湿度的值。
注意: observe 只返回 观察者,此时它并不会真正的去读取传感器的数值,因为 观察者 是惰性的,现在还没有人订阅它。 必须使用驱动提供的 then 操作符去订阅它,或者使用 RxJS 自带的 subscribe 函数订阅。
订阅后,每隔 2s 就会打印 温度和湿度 的数值。如果想根据温度和湿度的变化进行一系列的操作,就可以在 then 回调函数里面进行。
observe 可以同时监控温度和湿度,也可以只监控 温度 或者 湿度。可以通过 type 来筛选。
只监控 温度:
// We are only interested in temperature.var observable = dht11; // Now we are monitoring.var subscription = observable; // use dispose() to stop monitor.// subscription.dispose()
当然,驱动提供了常用的操作符用于简化业务代码。下面我们介绍驱动提供的几种操作符。
操作符
max: 当数值大于设定条件的时候触发
// notify when temperature larger than 28var subscription = dht11;
min: 当数值小于设定条件的时候触发
// notify when humidity less than 20var subscription = dht11;
when: 当数值等于给定条件的时候触发
// notify when temperature equal 20var subscription = dht11;
between: 当数值大于左区间并且小于右区间的时候触发
// notify when temperature larger thanvar subscription = dht11;