Checksum error dht11

Arduino/libraries/DHTlib/dht.cpp Line 66 in 83ef3dc uint8_t sum = bits[0] + bits[2]; first and third not always 0. Please fix for uint8_t sum = bits[0] + bits[1]+ bits[2] + bits[3];

Comments

@Nikolo

@RobTillaart

Hi Nikolo,
For the DHT11 these values should always be zero as the humidity and temperature have no decimal part in the DHT11 according to the datasheet. OK the datasheet indicates that these bytes should taken into account for the checksum
Can you give a temperature or humidity for which this is not the case?
Or does the DHT11 suddenly support a decimal part?

This is the first time in 6 years that this is reported as a problem.
(fix is not difficult and would hardly impact size, but if not needed I would prefer not to do it)

@Nikolo

Hi!
Yes i have problem with DHT11. But when I added bits 1 and 3 into the check sum, all was normalized.
I did not find in datasheet where would be said that 1 and 3 bytes always 0, only in an example.
But in the same example it is indicated that the check sum must be counted on all bytes.
If it is interesting that I can send the photo of sensor and load any your example for the checking.

@RobTillaart

@RobTillaart

Fixed in DHTlib and DHTStable

2 participants

@Nikolo

@RobTillaart

  • #1

Имеется: NODEMCU V3, датчик температуры и влажности DHT11
Прошивка:

Код:

NodeMCU custom build by frightanic.com
    branch: master
    commit: 11592951b90707cdcb6d751876170bf4da82850d
    SSL: false
    modules: dht,file,gpio,http,i2c,mqtt,net,node,sjson,tmr,uart,websocket,wifi
build created on 2018-12-30 19:20
powered by Lua 5.1.4 on SDK 2.2.1(6ab97e9)

Скетч самый простой отсюда:

Код:

pin = 5
status, temp, humi, temp_dec, humi_dec = dht.read(pin)
if status == dht.OK then
    -- Integer firmware using this example
    print(string.format("DHT Temperature:%d.%03d;Humidity:%d.%03drn",
          math.floor(temp),
          temp_dec,
          math.floor(humi),
          humi_dec
    ))

    -- Float firmware using this example
    print("DHT Temperature:"..temp..";".."Humidity:"..humi)

elseif status == dht.ERROR_CHECKSUM then
    print( "DHT Checksum error." )
elseif status == dht.ERROR_TIMEOUT then
    print( "DHT timed out." )
end

Вот такие значения приходят с датчика:

DHT Temperature:665.900;Humidity:947.200

Значения увеличиваются/уменьшаются в соответствии с изменениями окруж. среды. Вот только приходят в неверном формате. Может кто сталкивался?

Последнее редактирование: 3 Янв 2019

  • #2

Перепрошил на AT v0.23 SDK 1.0.1. С бибилиотекой DHT-sensor-library для Arduino IDE все работает нормально. Показатели с датчика приходят корректные. А вот с LUA прошивкой успехов так и не добился…

Последнее редактирование: 3 Янв 2019

tretyakov_sa


  • #3

Попробуйте время опроса датчика сделать не чаще чем две секунды.

  • #4

Попробуйте время опроса датчика сделать не чаще чем две секунды.

Сначала тоже так подумал. Так вот мой скрипт не выполняется циклично, а только один раз, если отправить команду dofile(«script1.lua»). Соответственно датчик опрашивается единожды. Наверно дело не в частоте опроса датчика..

tretyakov_sa


  • #5

Сначала тоже так подумал. Так вот мой скрипт не выполняется циклично, а только один раз, если отправить команду dofile(«script1.lua»). Соответственно датчик опрашивается единожды. Наверно дело не в частоте опроса датчика..

Считайте два раза. Посмотрите результат второго считывания. Конечно с промежутком в 2 секунды.

  • #6

Считайте два раза. Посмотрите результат второго считывания. Конечно с промежутком в 2 секунды.

Изменил скрипт, как вы сказали: опрашиваю теперь дважды с паузой в 2 сек. Паузу вызываю следующим методом:

Код:

socket = require("socket")

function sleep(sec)
    socket.sleep(sec)
end

sleep(2)

Ответ приходит все такой же:

DHT Temperature:665.900;Humidity:947.200
DHT Temperature:671.000;Humidity:1150.300

Подышал на датчик в промежутке между двумя запросами показаний — видно, что показания меняются

Пробовал использовать функцию dht.read11() вместо dht.read() для считывания показаний — приходит ошибка dht.ERROR_CHECKSUM

Последнее редактирование: 3 Янв 2019

  • #7

Интересует такая же проблема.
Прошивку NodeMCU Lua SDK 2.2.1 брал отсюда NodeMCU custom builds
Я еще кроме этого подцепил резистор 10 кОм на +3,3В на Дата выход датчика DHT11.
Всё равно не помогло, датчик возвращает левые цифры.
Иногда (может раз в 10 минут) появляются корректная Температура и Влажность.

Последнее редактирование: 27 Янв 2019

  • #8

у меня тоже с dht11какието левые значения.. лежит на окне, показывает 8-10-15 влажность.. если подышать влажность растет..

  • 2019-02-13_09-24.png

    35.1 KB
    Просмотры: 3

  • #9

у меня тоже с dht11какието левые значения.. лежит на окне, показывает 8-10-15 влажность.. если подышать влажность растет..

смотрите программу
вот здесь есть пример как выводить данные датчика в луа.
dht — NodeMCU Documentation

  • #10

Пробовал использовать функцию dht.read11() вместо dht.read() для считывания показаний — приходит ошибка dht.ERROR_CHECKSUM

А у меня только этот вариант прокатил. Просто добавит «11», и всё.

01 На заметку:
. У данной статьи есть видеоверсия!
Подписывайтесь на канал, чтобы быть в курсе обновлений!
02

В статье показывается работа с датчиком температуры и влажности DHT11 в модульном исполнении:

04

Отличие в исполнениях заключается лишь в том, что в модуле линия данных уже притянута подтягивающим резистором к линии питания:

07

А если использовать только датчик, то резистор придется устанавливать самостоятельно — номинал резистора 5 кОм:

09

И пусть вас не смущает тот факт, что у модуля 3 выходных пина, а у самостоятельного датчика 4 пина — один пин (на схеме NC) не используется.

10

В силу своей дешевизны он обладает невпечатляющими техническими характеристиками, и вполне пригоден в ознакомительных целях, либо проектах, непритязательных к прецизионности данных.

11

Датчики температуры и влажности DHT11 и DHT22 практически идентичны за исключением некоторых технических характеристик:

12
DHT11 DHT22
Измеряемый диапазон влажности (погрешность) 20-95% (±5%) 0-100% (±5%)
Измеряемый диапазон температуры (погрешность) 0°C — 50°C (±2°C) -40°C — 125°C (±2°C)
Частота опроса 1 раз/сек 0,5 раз/сек
Одинаковые характеристики
Рабочее напряжение 3,3 — 5,5 В
Максимально потребляемый ток 2.5 мА (в режиме передачи данных),
100 мкА (в режиме ожидания)
13

Как видно из таблицы более дорогой датчик DHT22 обладает улучшенными по сравнению с DHT11 характеристиками.

14

Взаимодействие с датчиком.

Процесс получения информации с датчика DHT11 очень прост и подробно описан в даташите (842 KB). Чтобы начать получать данные с датчика микроконтроллер должен отправить датчику запрос и дождаться ответа от датчика о том, что датчик готов передавать информацию. Происходит это следующим образом.

15

Когда микроконтроллер собрался принимать данные, он должен притянуть линию данных к нулю на 18 мс, и после отпустить её обратно к 1. Микроконтроллер переходит в режим ожидания и следит за тем, что происходит с линией данных. Через 20-40 мкс, если все в порядке, датчик отвечает притягиванием уже со своей стороны линии данных к нулю на 80 мкс, и отпускает её на 80 мкс. Таким образом датчик дает понять микроконтроллеру, что с ним все в порядке и он начинает передачу данных. Данные передаются побитно.

17

Перед передачей каждого нового бита датчик притягивает линию данных к нулю на 50 мкс, после этого отпускает её к 1. В зависимости от того на сколько датчик отпускает дата-линию к 1 микроконтроллер распознает какой бит был передан. Если длительность временного промежутка до следующего притягивания к нулю — 26-28 мкс, то передан 0, если 70 мкс — передана 1.

18

Передаваемые данные содержат как целую, так и дробную часть цифровых данных о температуре/влажности. Общий объем переданной информации составляет 40 бит: 1 и 2 байт содержат соответственно целую и дробную часть информации о влажности, 3 и 4 байт содержат целую и дробную часть информации о температуре и в 5 байте передается контрольная хеш-сумма, которая представляет из себя последние 8 бит от сложения предыдущих 4 байт.

19

После передачи пакета данных датчик переходит в спящий режим, до следующего запроса со стороны микроконтроллера.

20

Библиотека dht.h и принцип работы.

Для того, чтобы понять устройство библиотек по работе с датчиком DHT11 — напишем свой фрагмент кода, который без библиотеки сможет получать данные с датчика. Код прокомментирован очень детально:

21 Arduino (C++)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104

#define DHT_OK 0
#define DHT_ERROR_CHECKSUM -1
#define DHT_ERROR_TIMEOUT -2

int pinData = 12;

int humidity;
int temperature;

void setup() {
Serial.begin(9600);
}

void loop() {
int result = getTempDate(pinData);
if (result == DHT_OK) {
Serial.print(«Temperature: «); Serial.print((int)temperature); Serial.print(» *C, «);
Serial.print(«Humidity: «); Serial.print((int)humidity); Serial.print(» %»);
Serial.println(«»);
}
else if (result == DHT_ERROR_CHECKSUM) {
Serial.println(«Error data checksum»);
}
else if (result == DHT_ERROR_TIMEOUT) {
Serial.println(«Error data timeout»);
}
delay(3000);
}

int getTempDate(int pin) {
String mydata = «»;

byte data[40];

pinMode(pinData, OUTPUT);

digitalWrite(pinData, LOW);
delay(18);

digitalWrite(pinData, HIGH);
delayMicroseconds(40);
pinMode(pinData, INPUT);

unsigned int timeoutInt = 10000;

while (digitalRead(pin) == LOW)
if (timeoutInt— == 0) return DHT_ERROR_TIMEOUT;

timeoutInt = 10000;
while (digitalRead(pin) == HIGH)
if (timeoutInt— == 0) return DHT_ERROR_TIMEOUT;

for (int i = 0; i < 40; i++)
{
timeoutInt = 10000;

while (digitalRead(pin) == LOW)
if (timeoutInt— == 0) return DHT_ERROR_TIMEOUT;

unsigned long t = micros();
timeoutInt = 10000;

while (digitalRead(pin) == HIGH)
if (timeoutInt— == 0) return DHT_ERROR_TIMEOUT;

if ((micros() — t) > 40) data[i] = 1;
else data[i] = 0;
}

byte bytes[5] = {0, 0, 0, 0, 0};
int byteindex = 0;
int posindex = 7;
for (int i = 0; i < 40; i++) {
if (data[i] == 1) bytes[byteindex] |= (1 << posindex);
posindex—;
if (posindex < 0) {
posindex = 7;
byteindex++;
}
}

uint8_t sum = bytes[0] + bytes[2];

if (bytes[4] != sum) return DHT_ERROR_CHECKSUM;

humidity = bytes[0];
temperature = bytes[2];

return DHT_OK;
}

24

Так как необходимо отображать данные и температуры и влажности, будем менять значения на дисплее, к примеру, каждые 2 сек. А поскольку значения обоих показателей не будет превышать 2 цифр, будем подставлять в начало и конец отображаемых данных символы, позволяющие их идентифицировать — t (temperature) и h (humidity) в начале, и с и % в конце. И для ещё большего удобства перевернем индикатор вверх ногами, чтобы точка (разделитель разрядов, который не используется из-за отображения целых чисел) была вверху и зажигалась, имитируя значок градуса:

27

Снова обращаю внимание, что если используется датчик на модуле, то резистор не нужен, и наоборот, если только датчик, то резистор обязателен!

28

Так как необходимо отображать данные и температуры и влажности, будем менять значения на дисплее каждые 2 сек. А поскольку значения обоих показателей не будет превышать 2 цифр, будем подставлять в начало и конец отображаемых данных символы, позволяющие их идентифицировать — t и h в начале, и с и % в конце.

30

Код (будем использовать библиотеку dht11.zip (2,58 KB)):

31 Arduino (C++)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114

#include <dht11.h>
dht11 DHT;
#define PIN_DATA 3

int anodPins[] = {A1, A2, A3, A4};
int segmentsPins[] = {5, 6, 7, 8, 9, 10, 11, 12};

int state;

unsigned long ms_mode = 0;
unsigned long ms_dht = 0;

void setup() {
for (int i = 0; i < 4; i++) pinMode(anodPins[i], OUTPUT);
for (int i = 0; i < 8; i++) pinMode(segmentsPins[i], OUTPUT);

ms_mode = millis();
ms_dht = millis();

state = DHT.read(PIN_DATA);
getDigits();
}

byte seg[15] = {
B11111100,
B00001100,
B11011010,
B10011110,
B00101110,
B10110110,
B11110110,
B00011100,
B11111110,
B10111110,
B11110001,
B11100010,
B00100100,
B01100110,
B00000000
};

int err[4] = {
B00000000,
B11110010,
B01000010,
B01000010,
};

static byte arr[4];

int mode = 0;
int changemodeperiod = 2000;
int refreshdataperiod = 10000;

void loop() {

if ((millis() — ms_mode) > changemodeperiod) {
ms_mode = millis();
mode = mode == 1 ? 0 : 1;

if ((millis() — ms_dht) > refreshdataperiod) {
ms_dht = millis();
state = DHT.read(PIN_DATA);
}
getDigits();
}
displayMessage(arr);
}

void getDigits () {
if (state == DHTLIB_OK) {
if (mode == 0) {
arr[0] = seg[11]; arr[3] = seg[10];
arr[2] = seg[DHT.temperature % 10];
if (DHT.temperature > 9)
arr[1] = seg[(int)(DHT.temperature / 10)];
else arr[1] = seg[14];
arr[0] = seg[11]; arr[3] = seg[10];
}
else if (mode == 1) {
arr[0] = seg[11]; arr[3] = seg[10];
arr[2] = seg[DHT.humidity % 10];
if (DHT.humidity > 9)
arr[1] = seg[(int)(DHT.humidity / 10)];
else arr[1] = seg[14];
arr[0] = seg[13]; arr[3] = seg[12];
}
}
else {
for (int i = 0; i < 4; i++)
arr[i] = err[i];
}

}

void displayMessage(byte dig[4]) {
for (int i = 0; i < 4; i++) {

for (int k = 0; k < 8; k++) {
digitalWrite(segmentsPins[k], ((bitRead(dig[i], 7 — k) == 1) ? LOW : HIGH));
}
digitalWrite(anodPins[3 — i], HIGH);
delay(1);
digitalWrite(anodPins[3 — i], LOW);
}

}

33

.

Подписывайтесь на канал

, чтобы быть в курсе обновлений!

35

Похожие запросы:

  • DHT11 temperature and humidity sensor
  • DHT11 /DHT22 Temperature Sensor
  • Чем отличаются датчики DHT11 и DHT22?
  • Датчики температуры и влажности DHT11 и DHT22 и Arduino
  • Подключение датчика температуры и влажности DHT11 и DHT22
  • Модуль DHT11 подключение к Arduino
  • Подключение датчика DHT11 к Arduino UNO
  • Выводим температуру и влажность помещения с датчика DHT11 на Arduino UNO

Для Arduino существует большое количество датчиков и модулей измерения температуры. Модули KY-001, KY-013 мы уже рассмотрели в предыдущих уроках. Сегодня поговорим о модуле KY-015, который оснащен датчиком DHT11, он может измерять не только температуру, но и влажность воздуха.

модуле KY-015, который оснащен датчиком DHT11

Описание модуля KY-015 с датчиком DHT11.

Модуль датчика температуры и влажности KY-015 обеспечен цифровым последовательным интерфейсом для измерения влажности и температуры и передачи показаний Arduino.

Технические характеристики KY-015.

Описание модуля KY-015 с датчиком DHT11

Модуль KY-015 состоит из цифрового датчика влажности и температуры DHT11 и резистора 1 кОм. DHT11 использует внутренний термистор и емкостной датчик влажности для определения условий окружающей среды, а внутренний чип отвечает за преобразование показаний в последовательный цифровой сигнал.

Рабочее напряжение

От 3,3 до 5,5 В

Диапазон измерения влажности

От 20% до 90%

Точность измерения влажности

± 5%

Разрешение измерения влажности

1%

Диапазон измерения температуры

От 0 ºC до 50 ºC

Точность измерения температуры

± 2 ºC

Разрешение измерения температуры

1 ºC

Дальность передачи сигнала

20 м

модуля KY-015 с датчиком DHT11 к Arduino UNO

Схема подключения модуля KY-015 с датчиком DHT11 к Arduino UNO.

Схема подключения модуля KY-015 с датчиком DHT11 к Arduino UNO.

Схема подключения модуля KY-015 с датчиком DHT11 к Arduino NANO.

Схема подключения модуля KY-015 с датчиком DHT11 к Arduino NANO.

Подключаем линию питания (посередине) и землю (-) к +5 и GND соответственно. Сигнал (S) подключаем к контакту 2 на Arduino.

Пример скетча KY-015 для Arduino без использования библиотек.

int DHpin = 2; // pin  ввода/вывода
byte dat[5];   

byte read_data()
{
  byte i = 0;
  byte result = 0;
  for (i = 0; i < 8; i++) {
      while (digitalRead(DHpin) == LOW); // ждать 50 микрсек. 
      delayMicroseconds(30); //Продолжительность высокого уровня оценивается для определения того, являются ли данные " 0 " или "1"
      if (digitalRead(DHpin) == HIGH)
        result |= (1 << (8 - i)); //Высоко в начале, низко в посте
    while (digitalRead(DHpin) == HIGH); //Данные '1', ожидание следующего бита приема
    }
  return result;
}

void start_test()
{
  digitalWrite(DHpin, LOW); //Потяните вниз шину, чтобы отправить сигнал запуска
  delay(30); //Задержка превышает 30 мс, так что DHT 11 может обнаружить сигнал запуска
  digitalWrite(DHpin, HIGH);
  delayMicroseconds(40); //Дождитесь ответа DHT11
  pinMode(DHpin, INPUT);
  while(digitalRead(DHpin) == HIGH);
  delayMicroseconds(80); // DHT11 реагирует, потянув шину низко на 80 микрсек.
  
  if(digitalRead(DHpin) == LOW)
    delayMicroseconds(80); //DHT11 подтянут 80 микрсек, чтобы начать отправку данных;
  for(int i = 0; i < 5; i++) //При получении данных о температуре и влажности контрольные биты не учитываются;
    dat[i] = read_data();
  pinMode(DHpin, OUTPUT);
  digitalWrite(DHpin, HIGH); //После завершения отпускаем шины данных, ожидая, когда хост начнет следующий сигнал
}

void setup()
{
  Serial.begin(9600);
  pinMode(DHpin, OUTPUT);
}

void loop()
{
  start_test();
  Serial.print("Humdity = ");
  Serial.print(dat[0], DEC); //Отображает целочисленные биты влажности;
  Serial.print('.');
  Serial.print(dat[1], DEC); //Отображает десятичные знаки влажности;
  Serial.println('%');
  Serial.print("Temperature = ");
  Serial.print(dat[2], DEC); //Отображает целочисленные биты температуры;
  Serial.print('.');
  Serial.print(dat[3], DEC); //Отображает десятичные знаки температуры;
  Serial.println('C');

  byte checksum = dat[0] + dat[1] + dat[2] + dat[3];
  if (dat[4] != checksum) 
    Serial.println("-- Checksum Error!");
  else
    Serial.println("-- OK");
 
  delay(1000);
}

Данный пример кода можно загрузить в Arduino и получать показания с датчика DHT11. Предварительно ничего настраивать и устанавливать не нужно. В мониторе порта мы увидим значения температуры и влажности с датчика DHT11.

В мониторе порта мы увидим значения температуры и влажности с датчика DHT11.

Пример кода с использованием библиотеки «DHT sensor library».

Для данного примера нам понадобиться библиотека «DHT sensor library». Установить ее можно через менеджер библиотек, для этого переходим «Скетч -> Подключить библиотеку -> Управлять библиотеками…».

понадобиться библиотека «DHT sensor library»

В строке поиска указываем «DHT11» и устанавливаем библиотеку «DHT sensor library». Для этого нажимаем на кнопку «Установка».

В строке поиска указываем «DHT11» и устанавливаем библиотеку «DHT sensor library»

Для работы библиотеки «DHT sensor library» нужна библиотека «Adafruit_Sensor», которую можно скачать с сайта github или внизу урока, в разделе «Файлы для скачивания».

Для работы библиотеки «DHT sensor library» нужна библиотека «Adafruit_Sensor»

Скачать библиотеку с github можно выбрав «Code -> Download ZIP».Скачать библиотеку с github можно выбрав

После чего в Arduino IDE выбираем «Скетч -> Подключить библиотеку -> Добавить .ZIP библиотеку…».

После чего в Arduino IDE выбираем Скетч - Подключить библиотеку - Добавить .ZIP библиотеку

Выбираем скаченный архив с библиотекой.

Выбираем скаченный архив с библиотекой.

С библиотекой устанавливается 2 примера. Один из которых мы будем использовать в нашем уроке. Для этого переходим в меню «Файл -> Примеры -> DHT sensor library -> DHTtest».

Файл - Примеры - DHT sensor library - DHTtest

В данном примере нам нужно указать пин подключения модуля. Также раскомментировать строчку подключения нашего датчика.

#include "DHT.h"
#define DHTPIN 2     // контакт, к которому подключаемся
// и расскомментировать строчку датчика:
#define DHTTYPE DHT11   // DHT 11
//#define DHTTYPE DHT22   // DHT 22  (AM2302)
//#define DHTTYPE DHT21   // DHT 21 (AM2301)
// инициализируйте датчик DHT
DHT dht(DHTPIN, DHTTYPE);
void setup() {
  Serial.begin(9600);
  Serial.println("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("Failed to read from DHT sensor!");
    // "Не данных с DHT!"
    return;
  }
  // рассчит теплового индекса;
  float hi = dht.computeHeatIndex(f, h);
  Serial.print("Humidity: ");  //  "Влажность: "
  Serial.print(h);
  Serial.print(" %t");
  Serial.print("Temperature: ");  //  "Температура: "
  Serial.print(t);
  Serial.print(" *C ");
  Serial.print(f);
  Serial.print(" *Ft");
  Serial.print("Heat index: ");  //  "Тепловой индекс: "
  Serial.print(hi);
  Serial.println(" *F");
}

Также не забудьте, чтобы строчки подключения других датчиков были закомментированы.

В данном примере нам нужно указать пин подключения модуля.

Загружаем пример и смотрим в мониторе порта.

Загружаем пример и смотрим в мониторе порта.

Как видим все работает отлично и показания выводятся. При этом значения достаточно стабильные. Точность показаний я не стал проверять, как делал с модулем KY-013. Это вы можете сделать самостоятельно.

Вывод про модуль KY-015

Вывод про модуль KY-015.

В связи с тем, что модуль оснащён датчиком DHT11, показания температуры и влажности не очень точные, но при этом применять его для измерения температуры и влажности в бытовых условиях можно. Например, настроить автоматическое включения вытяжки в ванной, данного модуля будет достаточно и не стоит покупать более дорогие аналоги.

Понравился Урок KY-015 — Модуль с датчиком температуры и влажности DHT11? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.

Спасибо за внимание!

Технологии начинаются с простого!

Фотографии к статье

KY-015 с датчиком DHT11

KY-015 Arduino

Файлы для скачивания

Пример скетча KY-015 для Arduino без использования библиотек Пример скетча KY-015 для Arduino без использования библиотек.ino 3 Kb 333 Скачать
Пример кода с использованием библиотеки «DHT sensor library» Пример кода с использованием библиотеки «DHT sensor library».ino 2 Kb 351 Скачать

Понравилась статья? Поделить с друзьями:
  • Chevrolet lacetti ошибка датчик распредвала
  • Checksum error assetto corsa
  • Chevrolet lacetti ошибка p0107
  • Chevrolet cruze ошибка код 84
  • Chevrolet cruze ошибка p2723