标签:espruino javascript stm32 arduino 开源硬件
http://blog.csdn.net/qwert1213131/article/details/35828873
本文属于个人理解,能力有限,纰漏在所难免,还望指正!
【小鱼有点电】
在第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米时请根据实际情况选用合适的上拉电阻。
对于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();
【Espruino】NO.14 温湿度传感器DHT11,布布扣,bubuko.com
标签:espruino javascript stm32 arduino 开源硬件
原文地址:http://blog.csdn.net/qwert1213131/article/details/35828873