进阶之路(中级篇) - 016 温湿度传感器DHT11
如果想使用 Arduino 开发板驱动 DHT11 来获取温湿度的时候建议使用第三方的库,这样可以加快程序的开发速度,而且不容易出错,下面的代码我已经安转了第三方的库了。详细的安装方法请参考极客先锋的博客:http://www.cnblogs.com/jikexianfeng/p/6290203.html 作者安装的为最低版本(1.0.0)。这样为了更好的兼容。
/*********************************
代码功能:温湿度传感器DHT11
使用函数:
simple_dht11_read(DHT11传感器引脚,存放湿度数据地址,存放温度数据地址,存放40位01数据的地址); //获取温湿度数据函数
使用头文件:
#include <SimpleDHT.h> //需要安装库,具体安装方法见:http://www.cnblogs.com/jikexianfeng/p/6290203.html
创作时间:2017*1*18
作者邮箱:jikexianfeng@outlook.com
********************************/
#include <SimpleDHT.h>
int pinDHT11 = ; void setup()
{
Serial.begin();
} void loop()
{
Serial.println("=================================");
Serial.println("Sample DHT11...");
byte temperatyre = ; //温度
byte humidity = ; //湿度
byte data[];
if (simple_dht11_read(pinDHT11, &temperatyre, &humidity, data)) {
Serial.print("Read DHT11 failed.");
return;
}
Serial.print("Humidity (%):");
Serial.println(humidity);
Serial.print("Temperatyre(oC)");
Serial.println(temperatyre);
Serial.print("Temperatyre(oF)");
Serial.println(Fahrenheit(temperatyre));
Serial.print("Temperatyre(k)");
Serial.println(Kelvin(temperatyre));
Serial.print("Dew point(oC):");
Serial.println(dewPoint(temperatyre,humidity));
//Serial.print("Dew PointFast(oC):");
//Serial.println(dewPointFast(temperatyre,humidity));
delay();
} double Fahrenheit(byte celsius)
{
return 1.8*celsius+;
} double Kelvin(byte celsius)
{
return celsius+273.15;
} double dewPoint(byte celsius,byte humidity)
{
double A0 =373.15/(273.15+celsius);
double SUM = -7.90298*(A0-);
SUM+=5.02808*log10(A0);
SUM+=-1.3816e-78*(pow(,(11.344*(-/A0)))-);
SUM+=8.1328e-3*(pow(,(-3.49149*(A0-)))-);
SUM+=log10(1013.246);
double VP=pow(,SUM-)*humidity;
double T =log(VP/0.61078);
return (241.88*T)/(17.558-T);
} double dewPointFast(byte celsius,byte humidity)
{
double a=17.271;
double b=273.7;
double temp=(a*celsius)/(b+celsius)+log(humidity/);
double Td=(b*temp)/(a-temp);
return Td;
}
如果采集回来的数据没有没有浮点型数据,所以浮点段字符数据为全部为0,这是传感器的问题,不能进行时代码为题。
/////////////////////////
参考网页:http://www.cnblogs.com/jikexianfeng/p/6290203.html
参考网页:http://wenku.baidu.com/view/dcdc9efa700abb68a982fbe0.html?re=view
进阶之路(中级篇) - 016 温湿度传感器DHT11的更多相关文章
- STM32读取温湿度传感器DHT11和DHT21(AM2301)系列问题
		
1.DHT11和DHT21传感器 这两种传感器都是奥松公司的产品,具体的传感器说明书在其官网上有(www.aosong.com). DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合 ...
 - 温湿度传感器DHT11程序示例
		
DHT11概述 HT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器. 它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性.传感器包括一个电阻式 ...
 - docker进阶之路-基础篇 | 一:环境搭建
		
转载请注明作者及出处: 作者:银河架构师 原文链接:https://www.cnblogs.com/luas/p/12061747.html 一.准备工作 查看内核 Docker 要求 CentOS ...
 - docker进阶之路-基础篇 | 二:portainer安装与基本使用
		
转载请注明作者及出处: 作者:银河架构师 原文链接:https://www.cnblogs.com/luas/p/12061755.html 简介 Portainer 是轻量级,跨平台,开源的管理D ...
 - [转载]   树莓派读取温湿度传感器DHT11
		
原文地址: http://blog.csdn.net/liang890319/article/details/8739683 硬件: 树莓派 2.0 DHT模块 接树莓派5V GND GPIO1 功 ...
 - 运维工程师打怪升级进阶之路 V2.0
		
在此之前,发布过两个版本: 运维工程师打怪升级之路 V1.0 版本发布 运维工程师打怪升级必经之路 V1.0.1 很多读者伙伴们反应总结的很系统.很全面,无论是0基础初学者,还是有基础的入门者,或者是 ...
 - 在树莓派上读取DHT11温湿度传感器-python代码实现及常见问题(全面简单易懂)
		
最近由于自己的课题需要,想要用在树莓派上使用DHT11温湿度传感器来读取空气中温湿度,遇到了几个问题,解决之后也对之前的知识进行了回顾,总结,特整理如下,希望能给也在学习树莓派的小伙伴们带来一些帮助. ...
 - 基于CC2530/CC2430 的温湿度采集系统--DHT11
		
采用常用的温湿度传感器DHT11 参见论坛中实例视频讲解http://bphero.com.cn/forum.php?mod=viewthread&tid=15&extra=page% ...
 - 进阶之路(基础篇) - 012 Arduino IDE 添加DHT11传感器第三方库的方法
		
由于Arduino本身没有DHT 11温湿度传感器的的头文件,单有第三方的库可以给我门使用.方法如下: Step 1:下载地址:https://pan.baidu.com/s/1qYfdBJ2#lis ...
 
随机推荐
- 双数组Trie的一种实现
			
An Implementation of Double-Array Trie 双数组Trie的一种实现 原文:http://linux.thai.net/~thep/datrie/datrie.htm ...
 - 10gocm->session3->数据备份与恢复
			
这个实验考查我们当数据库出现问题宕机.数据丢失的情况下怎样挽回我们的损失,怎样在最短时间内恢复我们的数据库服务. RMAN规划 host target库 catalog库 ocm01 ocmdb ...
 - Direct2D教程VII——变换几何(TransformedGeometry)对象
			
目前博客园中成系列的Direct2D的教程有 1.万一的 Direct2D 系列,用的是Delphi 2009 2.zdd的 Direct2D 系列,用的是VS中的C++ 3.本文所在的 Direct ...
 - Discuz常见小问题-如何为每个板块设置不同的图标
			
进入后台的论坛-版块管理,选中要修改图标的板块,点击后面的编辑 在板块图标中找到图标文件,一般是PNG或者GIF,大小为32X32,提交之后效果如下
 - asp.net使用include包含文件
			
么?用asp.net使用include包含文件?……有必要吗?使用“用户控件”不是更好吗? 当然,绝大多数情况下,用户控件都能解决问题.但若要在用户控件中需包含其他公用块,即使用用户控件嵌套,老是出问 ...
 - 第五周 Word注释与交叉引用
			
第五周 Word注释与交叉引用 教学时间 2013-3-26 教学课时 2 教案序号 4 教学目标 1.掌握脚注.尾注.题注的概念和应用 2.掌握交叉引用的操作方法 教学过程: 复习提问 1.如何利用 ...
 - C#中将DLL文件打包到EXE文件
			
1:在工程目录增加dll目录,然后将dll文件复制到此目录,例如: 2:增加引用,定位到工程的dll目录,选中要增加的dll文件 3:修改dll文件夹下面的dll文件属性 选中嵌入式资源,不复制. 4 ...
 - Serializable 介绍
			
今天咱们简单介绍一些serializable. 1.序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来.虽然你可以用你自己的各 ...
 - 算法笔记_218:花朵数(Java)
			
目录 1 问题描述 2 解决方案 1 问题描述 一个N位的十进制正整数,如果它的每个位上的数字的N次方的和等于这个数本身,则称其为花朵数.例如:当N=3时,153就满足条件,因为 1^3 + 5^ ...
 - C#的ThreadStart 和 Thread
			
多线程,new Thread(t1);和new Thread(new ThreadStart(t1));有什么区别 没有区别. 前者,是c#的语法.也就是说是编译器帮你改写为第二种形式. 因此你要搞清 ...