进阶之路(中级篇) - 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 ...
随机推荐
- linux kernel系列四:嵌入式系统中的文件系统以及MTD
本节介绍File System和MTD技术 一 FS 熟知的FS有ext2,3,4.但是这些都是针对磁盘设备的.而ES中一般的存储设备为Flash,由于Flash的特殊性: Flash存储按照Bloc ...
- SqlServer驱动包 Maven
SqlServer驱动包 Maven 学习了:https://blog.csdn.net/wu843820873/article/details/50484623 mvn install: mvn i ...
- 利用NATAPP隧道解决微信公众号开发之本地调试难题
一.问题 众所周知,微信公众号开发需要公网的有效域名和80端口,本机当然互联网是访问不了的.那么我们难道去一个公网的服务器去开发吗?那样是不是太土了. 答案当然是,NO 当然我们在做微信支付的时候,有 ...
- Redis内存淘汰机制
转自:https://my.oschina.net/andylucc/blog/741965 摘要 Redis是一款优秀的.开源的内存数据库,我在阅读Redis源码实现的过程中,时时刻刻能感受到Red ...
- SSH连接linux时,长时间不操作就断开的解决方案
转自:http://www.cnblogs.com/jifeng/archive/2011/06/25/2090118.html 修改/etc/ssh/sshd_config文件,找到 ClientA ...
- C#.NET常见问题(FAQ)-如何改变字符串编码
使用Encoding.Convert方法即可实现转换 更多教学视频和资料下载,欢迎关注以下信息: 我的优酷空间: http://i.youku.com/acetaohai123 我的在线论坛: ...
- PowerDesigner设计的数据库 ORA-0092
异常 数据库由Powerdesigner设计,格式为Oracle10g,由Powerdesigner生成的数据库并没报什么异常,使用navicat也能正常操作,而使用PLSQL Developer去出 ...
- 延迟加载-association来实现
resultMap可以实现高级映射(使用association.collection实现一对一及一对多映射),association.collection具备延迟加载功能. 需求: 如果查询订单并且关 ...
- mybatis批量删除(逻辑删除)
在Mapper.xml文件中 <!-- 批量删除 --> <delete id="deleteAd" parameterType="java.util. ...
- 使用 loop device 制作安装镜像
看了下,手上的镜像中,文件系统才 100 多兆,但是整个镜像居然要 4G, 这意味着,我每次安装这个镜像到 SD 卡都要花很多没必要的时间. 所以,我提取了一些关键内容,然后,准备重新打包镜像. 1. ...