/*
DHT11 Module library V1.0
2017 Copyright (c) Adeept Technology Inc. All right reserved.
Author: TOM
*/
#include "DHT11.h"
// Return values:
// DHTLIB_OK
// DHTLIB_ERROR_CHECKSUM
// DHTLIB_ERROR_TIMEOUT
int DHT11::read(int pin)
{
// BUFFER TO RECEIVE
uint8_t bits[5];
uint8_t cnt = 7;
uint8_t idx = 0;
// EMPTY BUFFER
for (int i=0; i< 5; i++) bits[i] = 0;
// REQUEST SAMPLE
pinMode(pin, OUTPUT);
digitalWrite(pin, LOW);
delay(18);
digitalWrite(pin, HIGH);
delayMicroseconds(40);
pinMode(pin, INPUT);
// ACKNOWLEDGE or TIMEOUT
unsigned int loopCnt = 10000;
while(digitalRead(pin) == LOW)
if (loopCnt-- == 0) return DHTLIB_ERROR_TIMEOUT;
loopCnt = 10000;
while(digitalRead(pin) == HIGH)
if (loopCnt-- == 0) return DHTLIB_ERROR_TIMEOUT;
// READ OUTPUT - 40 BITS => 5 BYTES or TIMEOUT
for (int i=0; i<40; i++)
{
loopCnt = 10000;
while(digitalRead(pin) == LOW)
if (loopCnt-- == 0) return DHTLIB_ERROR_TIMEOUT;
unsigned long t = micros();
loopCnt = 10000;
while(digitalRead(pin) == HIGH)
if (loopCnt-- == 0) return DHTLIB_ERROR_TIMEOUT;
if ((micros() - t) > 40) bits[idx] |= (1 << cnt);
if (cnt == 0) // next byte?
{
cnt = 7; // restart at MSB
idx++; // next byte!
}
else cnt--;
}
// WRITE TO RIGHT VARS
// as bits[1] and bits[3] are allways zero they are omitted in formulas.
humidity = bits[0];
temperature = bits[2];
uint8_t sum = bits[0] + bits[2];
if (bits[4] != sum) return DHTLIB_ERROR_CHECKSUM;
return DHTLIB_OK;
}
没有合适的资源?快使用搜索试试~ 我知道了~
arduino通过ESP8266透传onenet平台代码.rar
共3个文件
ino:1个
cpp:1个
h:1个
5星 · 超过95%的资源 需积分: 47 30 下载量 178 浏览量
2020-03-09
10:53:52
上传
评论 5
收藏 2KB RAR 举报
温馨提示
arduino通过ESP8266透传onenet平台代码,如何通过函数实现透传,如何实现上传报文,如何上传温湿度数据。
资源推荐
资源详情
资源评论
收起资源包目录
arduino通过ESP8266透传onenet平台代码.rar (3个子文件)
ESP8266_EDP
DHT11.h 492B
DHT11.cpp 2KB
ESP8266_EDP.ino 2KB
共 3 条
- 1
资源评论
- 生活教会我们2023-07-26这个文件的代码编写十分规范,易于阅读和理解,对于编程新手而言非常实用。
- 士多霹雳酱2023-07-26这个文件给出了一个完整的解决方案,让开发者能够轻松地将Arduino与ESP8266与onenet平台无缝连接。
- 一筐猪的头发丝2023-07-26这个文件中的代码示例非常详细,可以帮助用户快速上手并实现与onenet平台的连接。
- 三更寒天2023-07-26这个文件提供了一个简洁而实用的Arduino与ESP8266透传onenet平台的代码,对于初学者来说非常友好。
- 赵伊辰2023-07-26这个文件提供的代码非常稳定,通过实验验证,可以确保数据的可靠传输。
代码_终结者
- 粉丝: 252
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
- C语言实现直接插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序、计数排序,并带图详解.zip
- 常用工具集参考用于图像等数据处理
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功