码迷,mamicode.com
首页 > 其他好文 > 详细

【Espruino】NO.14 温湿度传感器DHT11

时间:2014-06-30 18:57:32      阅读:356      评论:0      收藏:0      [点我收藏+]

标签:espruino   javascript   stm32   arduino   开源硬件   

http://blog.csdn.net/qwert1213131/article/details/35828873

本文属于个人理解,能力有限,纰漏在所难免,还望指正!

【小鱼有点电】

【Espruino中文社区】

 

bubuko.com,布布扣

第10节演示过一个DS18B20温度传感器,这节引入可以同时检测温度和湿度的传感器DHT11,可检测温度范围0~50℃(精度为+/-1℃),湿度20~90%(精度为 +/- 4%)。DHT11有时不能识别触发脉冲,或偶尔不能读取正确的数据,因此使用校验和机制来验证所以接收到的数据。若连续20次无法得到响应或者校验失败,则返回{“temp”:-1,"rh":-1}。因此建议对返回的数据进行再次检查。

通讯方式跟DS18B20一致,采用单线模式,供电范围为3-5.5V,本板采用3.3V供电,通讯线连接到引脚C9,建议在通讯线长短于20米时使用5K上拉电阻,大于20米时请根据实际情况选用合适的上拉电阻。

bubuko.com,布布扣bubuko.com,布布扣

对于DHT11已经有现成的模块文件可以直接调用,操作如下:

var dht = require("DHT11").connect(C11);
dht.read(function (a) {console.log("Temp:"+a.temp.toString()+" RH:"+a.rh.toString());});

在espruino web IDE右边区域输入以上代码执行后,在左侧会显示温湿度,当然也可以使用setInterval函数来周期获得温湿度。

我们还可以综合LCD那节的内容,将数值显示在LCD上,代码如下,视频地址:

SPI1.setup({ sck:B3, mosi:B5, order: "lsb", baud: 2000000 });
var g = require("MemoryLCD").connect(SPI1, B4/*SCS*/, C12/*EXTCOMIN*/,128/*width*/, 128/*height*/); 
g.clear();//清除缓冲区

var dht = require("DHT11").connect(C9);
temp="";
rh="";

setInterval(function(){
  dht.read(function (a) {temp=a.temp;rh=a.rh;console.log(temp+""+rh);});
  if(temp!==-1){
    LED1.set(1);
    g.setFontVector(30);
    g.fillRect(0, 0, 128-1, 60-1);
    g.setColor(0,0,0);
    g.drawString("DHT11",4,12);
    g.setFontVector(16);
    g.setColor(1,1,1);
    g.drawString("Temp: "+temp, 30, 70);
    g.drawString("RH: "+rh, 30, 100);
    g.flip();
    g.clear();
  }
  else{
    LED1.reset();
  }

},1000);
save();

bubuko.com,布布扣


【Espruino】NO.14 温湿度传感器DHT11,布布扣,bubuko.com

【Espruino】NO.14 温湿度传感器DHT11

标签:espruino   javascript   stm32   arduino   开源硬件   

原文地址:http://blog.csdn.net/qwert1213131/article/details/35828873

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!