Страница 1 из 5
Не отображается температура с датчика DS18B20
Добавлено: Пн сен 03, 2018 8:10 pm
schel4ok
Попробовал получить температуру с датчика DS18B20 по документации
https://hi-lab.ru/arduino-mega-server/d ... re-sensors.
Правда вместо резистора 4,7кОм взял 10кОм (какой был).
Датчики у меня не в корпусе ТО-92, а герметичные с али
https://ru.aliexpress.com/item/MK00241- ... 33edB1p1Fh
В итоге в мониторе порта датчик виден, но на домашней странице всё ещё горит надпись
На улице: 0°C. Столько же было и без датчика.
Что у меня не так? Питание несколько раз отключал и подключал заново, но изменений никаких.
Монитор порта
Код: Выделить всё
2018-09-03 19:37:52 Module Temperature...
2018-09-03 19:37:52 Parasite power ON
2018-09-03 19:37:52 Found 1 devices
2018-09-03 19:37:52 #0: 40 255 169 198 113 23 3 temp1
2018-09-03 19:37:52 #1: 40 255 169 198 113 23 3 temp2
2018-09-03 19:37:52 #2: 40 255 169 198 113 23 3 temp2
В скетче прописал адрес датчика, который посмотрел в мониторе порта
Код: Выделить всё
#define DS18B20_PIN 2
#define MAX_DS18B20_SENSORS 3
#define MAX_ID_DIGITS 7
char objSens[MAX_DS18B20_SENSORS][12] = {"temp1", "temp2", "temp2"};
// Sensors ID's
byte idTempDat[MAX_DS18B20_SENSORS][MAX_ID_DIGITS] = {
{40, 255, 169, 198, 113, 23, 3},
{40, 221, 16, 81, 3, 0, 0},
{40, 23, 98, 87, 3, 0, 0},
};
Re: Не отображается температура с датчика DS18B20
Добавлено: Пн сен 03, 2018 9:02 pm
serghei
Добро пожаловать в мир ажакса ( или аякса ??). Если в дистрибутиве ничего не меняли и особенно в файлах SD карты , то подобного просто не может быть. Покажите вывод в браузере XML таблицы. Правой кнопкой мыши - исследовать элемент ( или в хроме показать код ).

- Resp_dash.png (116.94 КБ) 8221 просмотр
А что бы в этом разобраться - читать учебник -
Выучить НАИЗУСТЬ !.
Покажите XML таблицу.
PS И к стати - в дистрибутиве есть ошибка, но её упорно не исправляют.( на Вашем скрине она есть )).
PSS// Пять золотых правил , что бы значение появилось на странице :
1. Получить переменную в коде.
2. По имени переменной отправить в Ажакс .
3. В СКРИПТЕ не забыть прописать !!!
4. Проверяем появление переменной в XML таблице.
5. Прописываем придуманный ID в HTM страницу.
Re: Не отображается температура с датчика DS18B20
Добавлено: Пн сен 03, 2018 11:02 pm
schel4ok
А почему в хелпе про это ничего не написано?
На странице написано только это
Если вы всё проделаете правильно, то после рестарта системы начнёт определяться температура со всех подключённых датчиков. С первого по списку датчика температура выводится в dash-панель интерфейса Arduino Mega Server.
Вообще ни слова больше.
Как с таким хелпом работать можно?
Re: Не отображается температура с датчика DS18B20
Добавлено: Пн сен 03, 2018 11:13 pm
schel4ok
Как только полез в панель developper tools, то температура на dash панели загорелась 24С.
Только непонятно почему.
Re: Не отображается температура с датчика DS18B20
Добавлено: Пн сен 03, 2018 11:32 pm
schel4ok
Далее попытался прочитать хелп Как добавить дополнительный датчик температуры на dash-панель
В хелпе можно было бы и написать в каком файле какая функция находится. Тут не написано.
Пробую найти поиском по всем файлам функцию, которая нас будет интересовать responseDash() - 0 matches
Я конечно нашел потом нужную функцию, но называется она совсем по-другому, код в ней изменён полностью. Дальше видимо ещё хуже.
Re: Не отображается температура с датчика DS18B20
Добавлено: Пн сен 03, 2018 11:47 pm
serghei
Alex писал(а): ↑Ср июн 17, 2015 9:07 pm
На данный момент проект находится в статусе альфа версии и для работы с ним нужны знания программирования и веб-технологий. Если вы не чувствуете в себе уверенности в этих областях, то, возможно, вам стоит подождать некоторое время, пока проект не приобретёт более или менее законченный вид.
А почему в хелпе про это ничего не написано?
На странице написано только это
Если вы всё проделаете правильно, то после рестарта системы начнёт определяться температура со всех подключённых датчиков. С первого по списку датчика температура выводится в dash-панель интерфейса Arduino Mega Server.
Вообще ни слова больше.
Как с таким хелпом работать можно?
Хелп написан правильно. И проект уже приобрел законченный вид. СКАЧАЛ - СКОМПИЛИЛ - ЗАГРУЗИЛ -
РАБОТАЙ.
Температура согласно коду появится через 5 минут. Только если воткнуть 3 градусника - вылезет ошибка.
Посмотрите на дату написания хелпа и к какой версии он относится. Пробежитесь по тексту , только глазами
Код: Выделить всё
void respDash(EthernetClient cl) { // Может тут пару букв забыли написать ??????
String s = tagXmlVersion();
s += openInputs();
s += makeModules();
s += makeTag("uptime", "", stringUptime());
s += makeTag("freeRAM", "", String(freeMem()));
С темами вопрос риторический - пусть решает модератор. По мне удобнее с человеком работать в одной ветке. Я это все проходил 3 года .
Re: Не отображается температура с датчика DS18B20
Добавлено: Пн сен 03, 2018 11:51 pm
serghei
schel4ok писал(а): ↑Пн сен 03, 2018 11:32 pm
Дальше видимо ещё хуже.
А дальше вообще никак или читать 300 страниц форума и выискивать нужное. Тогда получите конфигурацию как у меня в подписи. Все это на форуме есть.
Re: Не отображается температура с датчика DS18B20
Добавлено: Вт сен 04, 2018 12:11 am
schel4ok
Это вот тут задержка в 5 минут задаётся насколько я понял
Код: Выделить всё
void tempWorks() {
if (cycle5m) {
sensors.requestTemperatures();
getTemperature(0);
getTemperature(1);
getTemperature(2);
}
}
А зачем такая большая задержка?
И мне совсем непонятно по коду файла timers.ino как переменной cycle5m присваивается значение 5 минут.
А потом timeSec - timer1s >= 1. Как это?
И дальше timeSec - timer5m >= 300. Это тоже как?
Re: Не отображается температура с датчика DS18B20
Добавлено: Вт сен 04, 2018 12:48 am
serghei
Температура в комнате меняется на 1 градус в час. На улице в полчаса. В бойлере при нагреве ставлю 1 минуту. Один даллас обрабатывается 1 секунду. А сервер еще должен чем то заниматься.
Про таймеры не подскажу.но 300 это как раз 5 минут.И желательно их дописать до суток.
У Алекса есть статья на Хабре как работают эти таймеры.
Re: Не отображается температура с датчика DS18B20
Добавлено: Вт сен 04, 2018 2:07 am
alexsis_76
А потом timeSec - timer1s >= 1. Как это?
И дальше timeSec - timer5m >= 300. Это тоже как
это такой манер написания кода, а 1 и 300 это магические числа

в минуте 60 сек а в 5 минутах 300.