Датчик DS18B20 с контролем работоспособности
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
- RedSky
- Лейтенант
- Сообщения: 576
- Зарегистрирован: 19 дек 2016, 20:07
- Откуда: Днепропетровск
- Имя: Алексей
- Поблагодарили: 1 раз
Датчик DS18B20 с контролем работоспособности
Дальнейшая доработка моего блока (выкладывал на старом форуме), упростил использование в проекте, теперь не надо генераторов и триггеров.
Блок служит для опроса одного датчика (только один датчик на один пин). Реализован контроль работоспособности датчика.
Не требуется прописывать адрес датчика, можно заменять датчик без отключения устройства.
Работает следующим образом: сразу после включения контроллера или подключения датчика происходит частый опрос шины (каждые 800 мс), на выходе "error" при этом высокий уровень, в случае нахождения датчика происходит измерение температуры. Выход "error" будет сброшен после следующего опроса, это нужно что бы пропустить некорректные 85 градусов. Далее опрос происходит с заданным периодом (вход "period"). В случае обрыва датчика поиск снова выполняется с периодом 800 мс независимо от установленного периода опроса. Опрос происходит только при наличии высокого уровня на входе "EN"
Входы:
EN - разрешение опроса
period - период опроса, мс
Выходы:
temp - температура
crcOK - контрольная сумма правильная
error - обрыв линии данных, нет питания датчика, датчик неисправен
Параметры пользователя:
pins - номер пина для подключения датчика
Нужна библиотека OneWire.
Добавил новый блок, т. к. старый не обеспечивал должной надёжности. Теперь контроль более строгий, контрольная сумма принимается в расчёт в любом случае. Выход ошибки теперь один, по прежнему когда есть ошибка опрос максимально частый независимо от заданного времени для максимально быстрого восстановления рабочего состояния. В остальном без изменений.
Переписал блок в новом редакторе. Некоторые вычисления упрятал в функции - меньший расход памяти при использовании нескольких блоков. Вход периода опроса теперь подключаемый - возможен опрос по входу EN (через rtrigger, ещё меньше памяти).
Добавил возможность подключения внутреннего подтягивающего резистора (только для тестов, нет необходимости использовать внешний на 4,7к).
Блок служит для опроса одного датчика (только один датчик на один пин). Реализован контроль работоспособности датчика.
Не требуется прописывать адрес датчика, можно заменять датчик без отключения устройства.
Работает следующим образом: сразу после включения контроллера или подключения датчика происходит частый опрос шины (каждые 800 мс), на выходе "error" при этом высокий уровень, в случае нахождения датчика происходит измерение температуры. Выход "error" будет сброшен после следующего опроса, это нужно что бы пропустить некорректные 85 градусов. Далее опрос происходит с заданным периодом (вход "period"). В случае обрыва датчика поиск снова выполняется с периодом 800 мс независимо от установленного периода опроса. Опрос происходит только при наличии высокого уровня на входе "EN"
Входы:
EN - разрешение опроса
period - период опроса, мс
Выходы:
temp - температура
crcOK - контрольная сумма правильная
error - обрыв линии данных, нет питания датчика, датчик неисправен
Параметры пользователя:
pins - номер пина для подключения датчика
Нужна библиотека OneWire.
Добавил новый блок, т. к. старый не обеспечивал должной надёжности. Теперь контроль более строгий, контрольная сумма принимается в расчёт в любом случае. Выход ошибки теперь один, по прежнему когда есть ошибка опрос максимально частый независимо от заданного времени для максимально быстрого восстановления рабочего состояния. В остальном без изменений.
Переписал блок в новом редакторе. Некоторые вычисления упрятал в функции - меньший расход памяти при использовании нескольких блоков. Вход периода опроса теперь подключаемый - возможен опрос по входу EN (через rtrigger, ещё меньше памяти).
Добавил возможность подключения внутреннего подтягивающего резистора (только для тестов, нет необходимости использовать внешний на 4,7к).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось RedSky 26 май 2023, 11:43, всего редактировалось 7 раз.
- RedSky
- Лейтенант
- Сообщения: 576
- Зарегистрирован: 19 дек 2016, 20:07
- Откуда: Днепропетровск
- Имя: Алексей
- Поблагодарили: 1 раз
Датчик DS18B20 с контролем работоспособности
Обновил блок. Изменил алгоритм опроса при потере связи. Теперь можно задать частоту опроса более 32 секунд.
Датчик DS18B20 с контролем работоспособности
Доброго дня.
Делаю автоматику на теплицу. По проекту в теплице 4 датчика ds18b20.
Необходимо вычислить среднюю температуру, но чтобы при выходе из строя датчика он не брался в расчет.
Вопрос: если на входе "EN" вашего блока не будет сигнала(подать инвертированный сигнал "error"), что будет на выходе "temp"?
P.S. можно было конечно на практике проверить, просто датчик сейчас в пути, а ручонки чешутся
Делаю автоматику на теплицу. По проекту в теплице 4 датчика ds18b20.
Необходимо вычислить среднюю температуру, но чтобы при выходе из строя датчика он не брался в расчет.
Вопрос: если на входе "EN" вашего блока не будет сигнала(подать инвертированный сигнал "error"), что будет на выходе "temp"?
P.S. можно было конечно на практике проверить, просто датчик сейчас в пути, а ручонки чешутся

-
- Лейтенант
- Сообщения: 450
- Зарегистрирован: 26 фев 2018, 21:27
- Откуда: Haifa
- Имя: Alex
- Благодарил (а): 2 раза
- Поблагодарили: 5 раз
Датчик DS18B20 с контролем работоспособности
[ref]Timur[/ref], я использую бп ds18b20,после него ставлю фильтр Filtr_anomal,где задаю дельту в разумных пределах и потом блок сравнения,и если температура выходит за предела допустимых значений то присваиваю переменной error.
- diman27
- Сержант
- Сообщения: 291
- Зарегистрирован: 06 сен 2015, 07:33
- Откуда: Белово
- Благодарил (а): 4 раза
Датчик DS18B20 с контролем работоспособности
Спасибо автору за блок. Подскажите как его с esp использовать?
- RedSky
- Лейтенант
- Сообщения: 576
- Зарегистрирован: 19 дек 2016, 20:07
- Откуда: Днепропетровск
- Имя: Алексей
- Поблагодарили: 1 раз
Датчик DS18B20 с контролем работоспособности
На ESP не проверял, но отличий в использовании не должно быть.
Количество любое, но все должны быть подключены к разным пинам.
Количество любое, но все должны быть подключены к разным пинам.
-
- Подполковник
- Сообщения: 1202
- Зарегистрирован: 14 фев 2016, 14:16
- Откуда: kazahstan
- Благодарил (а): 32 раза
- Поблагодарили: 6 раз
Датчик DS18B20 с контролем работоспособности
На esp32 работаетRedSky писал(а): 18 фев 2019, 14:55 На ESP не проверял, но отличий в использовании не должно быть.
Количество любое, но все должны быть подключены к разным пинам.

- RedSky
- Лейтенант
- Сообщения: 576
- Зарегистрирован: 19 дек 2016, 20:07
- Откуда: Днепропетровск
- Имя: Алексей
- Поблагодарили: 1 раз
Датчик DS18B20 с контролем работоспособности
Добавил новый блок, т. к. старый не обеспечивал должной надёжности. Теперь контроль более строгий, контрольная сумма принимается в расчёт в любом случае. Выход ошибки теперь один, по прежнему когда есть ошибка опрос максимально частый независимо от заданного времени для максимально быстрого восстановления рабочего состояния. В остальном без изменений.
Датчик DS18B20 с контролем работоспособности
а как понять номер вывода есп8266 из букв разных привязать к единицам для блока ?
допустим D3 это наверное 3 теоретически
а S3 это что тогда ?
допустим D3 это наверное 3 теоретически
а S3 это что тогда ?
- RedSky
- Лейтенант
- Сообщения: 576
- Зарегистрирован: 19 дек 2016, 20:07
- Откуда: Днепропетровск
- Имя: Алексей
- Поблагодарили: 1 раз
Датчик DS18B20 с контролем работоспособности
Номер указывать как для IDE, т. е. номер GPIO.
S3 (или SD3 на некоторых) это GPIO10.
Датчик DS18B20 с контролем работоспособности
У меня на NODEMCU отрицательная температура не работает. Показывает 4095 градусов, при понижении соответственно уменьшается, выше 0 все ОК. На ардуине все нормально.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- RedSky
- Лейтенант
- Сообщения: 576
- Зарегистрирован: 19 дек 2016, 20:07
- Откуда: Днепропетровск
- Имя: Алексей
- Поблагодарили: 1 раз
Датчик DS18B20 с контролем работоспособности
Вот исправленный блок. Похоже никто не знал, что в ESP int длиной в 4 байта. Завтра постараюсь сделать один универсальный блок.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- RedSky
- Лейтенант
- Сообщения: 576
- Зарегистрирован: 19 дек 2016, 20:07
- Откуда: Днепропетровск
- Имя: Алексей
- Поблагодарили: 1 раз
Датчик DS18B20 с контролем работоспособности
Обновил блок. Были проблемы на ESP при отрицательных температурах.
- Rovki
- Полковник
- Сообщения: 5711
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 67 раз
- Поблагодарили: 212 раз
- Контактная информация:
Датчик DS18B20 с контролем работоспособности
Везде инт -16 бит ! Просто есть целое без знака 0-65535, а есть целое со знаком от-32768 до 32768.

Электронщик до мозга костей и не только
- Phazz
- Полковник
- Сообщения: 3113
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 229 раз
- Поблагодарили: 109 раз
Датчик DS18B20 с контролем работоспособности
[ref=#ff8000]Rovki[/ref], там речь про байты и в есп32 их действительно 4 в integer
- Rovki
- Полковник
- Сообщения: 5711
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 67 раз
- Поблагодарили: 212 раз
- Контактная информация:
Датчик DS18B20 с контролем работоспособности
Думаю проще- ЕСР машина 32 битная ,поэтому длина регистра 32 бита (4 байта)Phazz писал(а): 03 апр 2021, 08:40 [ref=#ff8000]Rovki[/ref], там речь про байты и в есп32 их действительно 4 в integer

Электронщик до мозга костей и не только
Датчик DS18B20 с контролем работоспособности
[ref]RedSky[/ref], а можете собрать блок для чтения нескольких датчиков на одном пине ?
по этому примеру https://radioprog.ru/post/763
по этому примеру https://radioprog.ru/post/763
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя