Корзина пуста
Модуль Датчика DHT22 (Digital Humidity Temperature)
Датчик представляет собой ёмкостный датчик относительной влажности воздуха, термистор и аналого-цифровой преобразователь(АЦП), объединённые в одном корпусе. Данные с датчиков преобразовываются АЦП в цифровой сигнал, считываемый Arduino или другим микроконтроллером.
Характеристики датчика:
Датчик способен определять относительную влажность воздуха в диапазоне от 0 до 100% с погрешностью в 2% и температуру окружающего воздуха или газа в диапазоне от -40 °C до 125 °C с погрешностью 0,5 °C. Корпус датчика позволяет использовать его вне помещений, а длина проводов, соединяющих его с микроконтроллером, может достигать 20 м. Питание на датчик можно подавать как 3,3 В, так и 5 В.
Подключение
Если датчик расположен на переходной плате, то есть скомпонован как модуль, и имеет три вывода, он может соединяться с Arduino напрямую без дополнительных деталей. Подключение датчика с четырьмя выходами будет рассмотрено далее. Три выхода датчика маркированы как «+», «-» и «out». «+» можно подключить к выходу +5 V Arduino, «-» к выходу GND Arduino, а «out» подключается к одному из цифровых контактов (digital pin). В скетче, который приводится ниже, подразумевается, что выход датчика подключен к контакту 2.
Если датчик имеет четыре выхода, то если держать датчик лицевой стороной выходами вниз, то первый выход будет соответствовать +5 V, второй это «out», третий не используется, а четвёртый выход это GND. Между выходами +5 V и «out» необходимо поставить подтягивающий резистор на 4,7-10 кОм. Также желательно между выходами +5 V и GND поставить конденсатор на 100 нФ.
Работа с датчиком
Для снятия показаний удобно использовать библиотеку DHT-Sensor Library от Adafruit. Скачать её можно здесь - https://github.com/adafruit/DHT-sensor-library
Также понадобится установить библиотеку Adafruit_Sensor отсюда - https://github.com/adafruit/Adafruit_Sensor . Скачав и установив библиотеки в среду разработки Arduino IDE, можно прошить Arduino таким скетчем:
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
#define DHTPIN 2 // Digital pin connected to the DHT sensor
#define DHTTYPE DHT22 // DHT 22 (AM2302)
DHT_Unified dht(DHTPIN, DHTTYPE);
uint32_t delayMS;
void setup() {
Serial.begin(9600);
// Initialize device.
dht.begin();
Serial.println(F("DHTxx Unified Sensor Example"));
// Print temperature sensor details.
sensor_t sensor;
dht.temperature().getSensor(&sensor);
Serial.println(F("------------------------------------"));
Serial.println(F("Temperature Sensor"));
Serial.print (F("Sensor Type: ")); Serial.println(sensor.name);
Serial.print (F("Driver Ver: ")); Serial.println(sensor.version);
Serial.print (F("Unique ID: ")); Serial.println(sensor.sensor_id);
Serial.print (F("Max Value: ")); Serial.print(sensor.max_value); Serial.println(F("°C"));
Serial.print (F("Min Value: ")); Serial.print(sensor.min_value); Serial.println(F("°C"));
Serial.print (F("Resolution: ")); Serial.print(sensor.resolution); Serial.println(F("°C"));
Serial.println(F("------------------------------------"));
// Print humidity sensor details.
dht.humidity().getSensor(&sensor);
Serial.println(F("Humidity Sensor"));
Serial.print (F("Sensor Type: ")); Serial.println(sensor.name);
Serial.print (F("Driver Ver: ")); Serial.println(sensor.version);
Serial.print (F("Unique ID: ")); Serial.println(sensor.sensor_id);
Serial.print (F("Max Value: ")); Serial.print(sensor.max_value); Serial.println(F("%"));
Serial.print (F("Min Value: ")); Serial.print(sensor.min_value); Serial.println(F("%"));
Serial.print (F("Resolution: ")); Serial.print(sensor.resolution); Serial.println(F("%"));
Serial.println(F("------------------------------------"));
// Set delay between sensor readings based on sensor details.
delayMS = sensor.min_delay / 1000;
}
void loop() {
// Delay between measurements.
delay(delayMS);
// Get temperature event and print its value.
sensors_event_t event;
dht.temperature().getEvent(&event);
if (isnan(event.temperature)) {
Serial.println(F("Error reading temperature!"));
}
else {
Serial.print(F("Temperature: "));
Serial.print(event.temperature);
Serial.println(F("°C"));
}
// Get humidity event and print its value.
dht.humidity().getEvent(&event);
if (isnan(event.relative_humidity)) {
Serial.println(F("Error reading humidity!"));
}
else {
Serial.print(F("Humidity: "));
Serial.print(event.relative_humidity);
Serial.println(F("%"));
}
Если всё сделано правильно, то открыв окно последовательного интерфейса, вы увидите что-то подобное тому, что показано на изображении:
Видео:
«Измерение температуры и влажности с датчиком DHT11 и DHT22» на канале «Радиолюбитель TV»:
Габариты (Д х Ш х В):
44мм х 15мм х 10мм
Вес:
7г.
Сообщения не найдены