# Метеостанция
Датчик DHT11 (Humidity & Temperature Sensor) позволяет измерять температуру и влажность воздуха.
[Datasheet]:
| Параметр | Min | Max | Точность |
| --------------- | ---- | ---- | -------- |
| Температура | 0 | 50 | 2 |
| Влажность | 20% | 90% | 1% |
| Время измерения | 6 с | 30 с | |
Для работы потребуются библиотеки:
* https://github.com/adafruit/DHT-sensor-library
* https://github.com/adafruit/Adafruit_Sensor
### Схема подключения
У нас используется готовый модуль, который уже содержит все необходимые элементы, поэтому подключение будет простым
![](/assets/images/iot/01/dht11.svg "Схема подключения")
| DHT11 | WeMos D1 |
|-------|----------|
| VCC | 3V3 |
| OUT | D2 |
| GND | GND |
### Пример программы
```c
#include
#include
#define DHTPIN D2 // Digital pin connected to the DHT sensor
#define DHTTYPE DHT11
DHT_Unified dht(DHTPIN, DHTTYPE);
int delayMS = 10000;
long lastMsg = 0;
void setup() {
pinMode(BUILTIN_LED, OUTPUT); // Initialize the BUILTIN_LED pin as an output
Serial.begin(115200);
// DHT11
sensor_t sensor;
dht.begin();
dht.temperature().getSensor(&sensor);
dht.humidity().getSensor(&sensor);
}
void loop() {
if ( millis() - lastMsg > delayMS) {
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"));
}
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("%"));
}
lastMsg = millis();
}
}
```
### Готовое устройство
![](/assets/images/iot/01/dht11.jpg)
## Задача
Написать прошивку, которая будет направлять температуру числом в топик **"itschool/temperature"**,
а относительную влажность - в топик **"itschool/humidity"**
[к списку задач](iot/summer/tasks)