我买了几个湿度传感器 ebay link
便宜并试用了它们。 有2套不同的库和2个不同的传感器,两者都产生非常不正确的湿度读数相同的40点。
代码:
#include "DHT.h"
DHT dht;
void setup()
{
Serial.begin(9600);
Serial.println();
Serial.println("Status\tHumidity (%)\tTemperature (C)\t(F)");
dht.setup(2); // data pin 2
}
void loop()
{
delay(dht.getMinimumSamplingPeriod());
float humidity = dht.getHumidity();
float temperature = dht.getTemperature();
Serial.print(dht.getStatusString());
Serial.print("\t");
Serial.print(humidity, 1);
Serial.print("\t\t");
Serial.print(temperature, 1);
Serial.print("\t\t");
Serial.println(dht.toFahrenheit(temperature), 1);
}
输出:
我有2个其他设备和82%湿度的粘性天气报告。 该设备报告的湿度为40%。减去40分。
我并没有完全购买顶级货架装备,但我也是该技术的新手。
是否要进行校准? 我是否应该像专业人士那样为丑陋的黑客攻击40分,这真的只是一个大谎言? 或者这些传感器只是垃圾?
如何从DHT11传感器获得正确的湿度读数,或者我只需要更高质量的齿轮?
温度看起来正确,湿度不是。 我的项目需要远程准确的湿度读数。
更新: 尝试了第3次,所有3次行为相同。相同的40点缺陷。
更新#2:
我使用他们的测试代码重试了Adafruit图书馆,如果我住在维纳斯,它将会死亡。 但遗憾的是我住在地球上,这些读数也没有多大帮助。
输出:
更新3: 我正在尝试https://forum.mysensors.org/topic/126/calibrating-humidty 如果没有额外的更新,那么这个或者我买了别的东西。
最后更新: 这是化学问题,而不是数字问题。 DHT11无需任何校准即可切割。 解? 稍微膨胀金属。 盐帮助氧化过程,只要问任何船。 我将一些浓盐水混合在一个杯子中,然后用一张纸将传感器悬挂在杯子上面而不直接弄湿,这也将传感器稍微密封/封装在杯唇水平以下。 由于传感器(而不是电路板)有些气密,我允许盐水蒸汽在其中工作约6-8小时。 在这潮湿的一天,它仍然是18点害羞。 所以我加热盐水一点,因为我不耐烦。 这瞬间将湿度从约50%上升到95%。 让它静置大约一个小时,传感器仍然报告很高。 1小时后,它目前保持在约-3%的目标。哪个没问题。
DHT11必须经过化学校准(盐水)才能准确......
供参考: calibration info
答案 0 :(得分:0)
更新后,我确信Adafruit库实际上并不适合您,只是您没有取消评估正确的传感器定义。
在示例中就是这样。
var ScrollDebounce = true;
$('.class').on('scroll',
function () {
if (ScrollDebounce) {
ScrollDebounce = false;
//do stuff
setTimeout(function () { ScrollDebounce = true; }, 500);
}
})
对于DHT11应该是这样的
//#define DHTTYPE DHT11 // DHT 11
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
如果DHT22为您提供800%的湿度,这应该可以让您的湿度在30%到40%之间。
我之前遇到过同样的问题。
此时您可以得出的唯一结论是您的传感器不好。
我希望这会有所帮助。