Библиотека DHT11
- Войдите на сайт для отправки комментариев
Пнд, 06/01/2014 - 20:25
Друзья, есть у кого нормальная библиотека для датчика температуры и влажности DHT11. Многие перепробывал не работают. Одну скачал, код для примера загрузил, все работала, а теперь уже нет. Вот такое выдает
C:\Program Files\Arduino\libraries\dht\~$dht.cpp:3: error: stray '\20' in program
C:\Program Files\Arduino\libraries\dht\~$dht.cpp:1: error: 'nout' does not name a type
C:\Program Files\Arduino\libraries\dht\~$dht.cpp:3: error: 'l' does not name a type.
Или может кто подскажет что не так. Я новичок
у меня так работает
вот еще
https://github.com/niesteszeck/idDHT11
Спасибо большое за библиотеки! Я тоже нашел одну, загрузил в ардуино тест программу, работает. Попытался переделать под свои нужды, добавил код чтоб реле срабатывала выше какой-то температуры. Не хочет работать, тоесть температуру и влажность показывает чрез монитор порта, а реле молчит. Может кто подскажет, что не так, я совсем только начинаю изучать. Может конечно не много сразу со сложного, но я с пользой для дела
Помогите люди добрые!!!
Идея такова : сделать в частном доме вентиляцию , для этого использовал dht11 ( в планах подключить 3 датчика ), датчик движения ( для туалета), реле и естественно вентилятор.
Проблема в том что при подключенном USB к компу и открытом окне монитора порта все работает!!! Но как только я подключаю внешнее питание ( блок 12 вольт) ардуинка перестает опрашивать датчик dht11 хотя на пир реагирует реле отлично счелкает выдерживает все паузы.
Не судите строго это первая программа .
Вот что смог неимоверными усилиями слепить :
Разобрался со свом случаем. Забыл определить 33 ножку как выход
shurrup
код пришлось менять?
напиши текст конечного скетча..
поясни
01
#include "DHT.h"
02
03
DHT dht;
04
int
ven = 33;
05
void
setup
()
06
{
07
Serial
.begin(9600);
08
Serial
.println();
09
Serial
.println(
"Status\tHumidity (%)\tTemperature (C)\t(F)"
);
10
11
dht.
setup
(A2);
// data pin 2
12
13
}
14
15
void
loop
()
16
{
17
18
delay(dht.getMinimumSamplingPeriod());
19
20
float
humidity = dht.getHumidity();
21
float
temperature = dht.getTemperature();
22
23
Serial
.print(dht.getStatusString());
24
Serial
.print(
"\t"
);
25
Serial
.print(humidity);
26
Serial
.print(
"\t\t"
);
27
Serial
.print(temperature);
28
Serial
.print(
"\t\t"
);
29
Serial
.println(dht.toFahrenheit(temperature));
30
if
(temperature > 30 ) digitalWrite(ven,HIGH);
31
else
digitalWrite(ven,LOW);
32
delay(1000);
33
34
}
я правда уже гораздо более сложный забабахал. а ты что делаешь?
Спасибо за пояснения!
Имею:
Arduino UNO, DHT11, LCD1602 Keypad Shield? релюши http://www.buyincoins.com/item/27801.html
Требуется скетч с выводом температуры на дисплей (желательно при нажатии влево, вправо были показания по разным датчикам А1, А2,А3, и.т.д.)
при превышении Т 80гр. по дному датчику, срабатывает реле N1, при превышении Т по двум датчикам реле N2.
Думаю затея вполне понятная и не сложная, скетчи по отдельности нужных мне функций встречал, и анализирую (мало времени) вот только объединить бы их в конечный код.....
З.Ы. И тут где то писали как правильно код скетча вставлять в сообщения...
в верхней строке где пишеш сообщения там значок с красными скобками "вставка и редактирование кода"
30
if
(temperature > 30 ) digitalWrite(ven,HIGH);
31
else
digitalWrite(ven,LOW);
Думается мне температура HIGH and LOW должна быть разная, хотяб на градус (у меня в готовом китайском термоконтроллере минимум устанавливается дельта 2 оС). При температуре в около 30 может получится дребезг на ven ноге. Мк будет ей многократно дергать.
if (temp>30) {on;}
if (temp<28) {off;}
Вопрос по библеотеке DHT.h
НЕ хочет она работать если я включаю таймер2.
виснет мк в момент чтения температуры, влажности в 20 строке.
Пляски пока не помогли. Дайте бубен :-)
Потому что она тоже этот таймер использует. 0 таймер используется для millis, 1 таймер для PWM. Используйте 1 таймер если у вас PWM не используется.
Спасибо, буду пробавать.
Правильно ли я понимаю:
У таймера 0 и 1 общий предделитель. В ардуине настроенный на 64. (ATMega328p)
0 таймер используется для millis
1 таймер для PWM.
2 dht
А где про это можно почитать?
A не существует ли готовой библиотеки для dht11 без использования таймеров - на задержках.
0 таймер используется для millis
1 таймер для PWM.
2 dht
А где про это можно почитать?
A не существует ли готовой библиотеки для dht11 без использования таймеров - на задержках.
Она вроде и так, в delay()-ях как барбоска в блохах.
Она вроде и так, в delay()-ях как барбоска в блохах.
Вот и я не пойму. Вроде таймер не один не используется.
А прерывания вы не включаете? У меня температуру отдает, но при ее считывании диммер помаргивает. Как раз с delay() проблема.
Прерывания включаю. и 1 и 2.
подмигивание вызвано не отображением дисплея в момент считывания с датчика.
Считавать с датчика надо между включениями разрядов дисплея.
На своей мини столкнулся с тем, что похоже реально она работает на 2Mhz (кварц16 и похоже включен предделитель на8). это тоже тормозит процесс. Думаю надо перепрошивать. А еще использовать прямой доступ к портам.
Библиотека для датчика, ту которую выложил выше г-но. Нах каждый раз проверять какой у меня датчик(как будто в процессе работы я его меняю) и проверять в чем в цельчиях или ф-гейтах выводить?
Библиотеку начал коцать. Уже половину выкинул. Мучаю дальше.
А с нуля написать проблемно? вроде ничего сложного - http://codius.ru/articles/187#a21
Ну отчего ж "проблемно"? Совсем нет.
Сходил по ссылке. Спасибо, повеселили. Казалось бы действительно, ничего сложного. Стоит только шашку вытащить и разз-з-зз-махнуться...
На своей мини столкнулся с тем, что похоже реально она работает на 2Mhz (кварц16 и похоже включен предделитель на8). это тоже тормозит процесс. Думаю надо перепрошивать. А еще использовать прямой доступ к портам.
не тут ошибся 16и есть
Сходил по ссылке. Спасибо, повеселили. Казалось бы действительно, ничего сложного.
Рассказали бы что веселого, чтобы опыт некорректный не перенимать?
Сходил по ссылке. Спасибо, повеселили. Казалось бы действительно, ничего сложного.
Рассказали бы что веселого, чтобы опыт некорректный не перенимать?
жизнь веселая, смотришь ищешь знакомые букАвы и иногда находишь.
вот и я урезал ее практически до состояния приведенного примера где без библиотеки все работает.
2 deftvk
Ну начиналось-то интригующе
А с нуля написать проблемно? вроде ничего сложного - http://codius.ru/articles/187#a21
Вдруг, наконец, кто-то перестал копипастить говнокод и написал что-то стоющее, оригинальное, пуркуа бы и не па? Но вам удалось переписать код от Rob Tillaart (вы сами даете на него ссылку, где в скетче пытаетесь прикрутить 7-индикатор) э-ээ... специфично, без улыбки не прочтешь. Кстати, отчего ж его ("свой") не использовать в своих-то примерах?
Вот и ответил вам - повеселило бесконечное повторение не лучших образцов в еще худшем исполнении. А написать с нуля, неблокирующее чтение датчика, компактный код - да нет, не проблемно.
Вот и ответил вам - повеселило бесконечное повторение не лучших образцов в еще худшем исполнении. А написать с нуля, неблокирующее чтение датчика, компактный код - да нет, не проблемно.
Автор по ссылке, ИМХО, дает код для разбора начинающим и пониманию работы датчика, и "худшее исполнение" также преследовало именно эту цель, а не мало кому понятный из начинающих "С++ жесткач" с прерываниями и программированием потоков - это тема другого обсуждения...
2 deftvk
Мало кто из "начинающих" вообще читает код, судя по этому и другим форумам, предпочитая готовые решения. Ну в целом это нормально, соответствует парадигме проекта "ардуино".
Но, размещая на этом форуме ссылку, вы ведь меньше всего хотели о DHT11 поговорить, не правда ли?
Поэтому компенсируя мою язвительность (следствие дурного характера), очень коротко скажу. Понравилось в целом, четкий и лаконичный дизайн, внятный и грамотный язык без провинциального "... намедни пришла с али микруха и решил я ее тута потестить", разумная компиляция материалов, видео как пруф работы кода и т.п. Если хватит сил продолжить, не забросить - вот тогда и критиковать можно будет.