用8266学习单片机-8-DHT温湿度传感器-传感器读取数据失败???-Failed to read from DHT sensor!
DHT库项目-加载库-管理库,搜索dht,安装对应的库效果你说更牛逼的??可以做出LED展示??web展示,那也很简单,请参考这个服务器网页展示四位数码管案例参考https://www.w3cschool.cn/arduino/arduino_humidity_sensor.html...
·
DHT库
项目-加载库-管理库,搜索dht,安装对应的库
效果
你说更牛逼的??可以做出LED展示??web展示,那也很简单,请参考这个
服务器网页展示
四位数码管
案例
文件-示例-DHT- DHT_Unified_Sensor
这里需要注意两个地方
- 修改合适的数据读取管脚,默认为2(8266对应D4)
个人喜好,我选择GPIO13 - D7管脚,修改为13 - 修改合适的DHT型号,默认为DHT22
示例中有三种型号,把自己的型号注释去掉,然后把其它型号注释掉即可
第二部很坑爹哇,我一下午都母鸡,然后结果只有这样
Failed to read from DHT sensor!
或者这样
21:50:36.982 -> Error reading temperature!
21:50:36.982 -> Error reading humidity!
我的内心!!。。!!于是我不断尝试换管脚、换开发板。。终于换了几个板子我放弃了。。温湿度模块说明也看了几遍。。。然后再看示例代码发现这玩意还有三种类型。。。我。。。。。然后看看自己的型号是DHT11,不是默认的DHT22.。。。。我不想说话了。。。
#include "DHT.h"
#define DHTPIN 13 // 数据读取管脚
#define DHTTYPE DHT11 // DHT 11 // 修改合适的DHT型号
//#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println(F("DHTxx test!"));
dht.begin();
}
void loop() {
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
float f = dht.readTemperature(true);
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
float hif = dht.computeHeatIndex(f, h);
float hic = dht.computeHeatIndex(t, h, false);
Serial.print(F("Humidity: "));
Serial.print(h);
Serial.print(F("% Temperature: "));
Serial.print(t);
Serial.print(F("°C "));
Serial.print(f);
Serial.print(F("°F Heat index: "));
Serial.print(hic);
Serial.print(F("°C "));
Serial.print(hif);
Serial.println(F("°F"));
}
进步在哪里
把数据显示在数码管上呗。或者显示在OLED屏上,或者显示在网页上
参考
- https://www.w3cschool.cn/arduino/arduino_humidity_sensor.html
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献25条内容
所有评论(0)