Датчик DS18B20 с контролем работоспособности

Пользовательские блоки расширяющие базовый функуионал программы по работе с различными датчиками и энкодерами
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Аватара пользователя
RedSky
Лейтенант
Сообщения: 576
Зарегистрирован: 19 дек 2016, 20:07
Откуда: Днепропетровск
Имя: Алексей
Поблагодарили: 1 раз

Датчик DS18B20 с контролем работоспособности

Сообщение RedSky »

Дальнейшая доработка моего блока (выкладывал на старом форуме), упростил использование в проекте, теперь не надо генераторов и триггеров.
Блок служит для опроса одного датчика (только один датчик на один пин). Реализован контроль работоспособности датчика.
Не требуется прописывать адрес датчика, можно заменять датчик без отключения устройства.
Работает следующим образом: сразу после включения контроллера или подключения датчика происходит частый опрос шины (каждые 800 мс), на выходе "error" при этом высокий уровень, в случае нахождения датчика происходит измерение температуры. Выход "error" будет сброшен после следующего опроса, это нужно что бы пропустить некорректные 85 градусов. Далее опрос происходит с заданным периодом (вход "period"). В случае обрыва датчика поиск снова выполняется с периодом 800 мс независимо от установленного периода опроса. Опрос происходит только при наличии высокого уровня на входе "EN"
Входы:
EN - разрешение опроса
period - период опроса, мс
Выходы:
temp - температура
crcOK - контрольная сумма правильная
error - обрыв линии данных, нет питания датчика, датчик неисправен
Параметры пользователя:
pins - номер пина для подключения датчика
Нужна библиотека OneWire.
ds18b20_error_Ver_0.2_(CODE).ubi


Добавил новый блок, т. к. старый не обеспечивал должной надёжности. Теперь контроль более строгий, контрольная сумма принимается в расчёт в любом случае. Выход ошибки теперь один, по прежнему когда есть ошибка опрос максимально частый независимо от заданного времени для максимально быстрого восстановления рабочего состояния. В остальном без изменений.
ds18b20_errorCRCVer_0.2_(Code_-_Basic).ubi

Переписал блок в новом редакторе. Некоторые вычисления упрятал в функции - меньший расход памяти при использовании нескольких блоков. Вход периода опроса теперь подключаемый - возможен опрос по входу EN (через rtrigger, ещё меньше памяти).
Добавил возможность подключения внутреннего подтягивающего резистора (только для тестов, нет необходимости использовать внешний на 4,7к).
ds18b20_v0.2_(Code_-_Professional).ubi
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось RedSky 26 май 2023, 11:43, всего редактировалось 7 раз.
Аватара пользователя
RedSky
Лейтенант
Сообщения: 576
Зарегистрирован: 19 дек 2016, 20:07
Откуда: Днепропетровск
Имя: Алексей
Поблагодарили: 1 раз

Датчик DS18B20 с контролем работоспособности

Сообщение RedSky »

Обновил блок. Изменил алгоритм опроса при потере связи. Теперь можно задать частоту опроса более 32 секунд.
Timur
Рядовой
Сообщения: 23
Зарегистрирован: 25 янв 2019, 11:05
Имя: Тимур

Датчик DS18B20 с контролем работоспособности

Сообщение Timur »

Доброго дня.
Делаю автоматику на теплицу. По проекту в теплице 4 датчика ds18b20.
Необходимо вычислить среднюю температуру, но чтобы при выходе из строя датчика он не брался в расчет.
Вопрос: если на входе "EN" вашего блока не будет сигнала(подать инвертированный сигнал "error"), что будет на выходе "temp"?

P.S. можно было конечно на практике проверить, просто датчик сейчас в пути, а ручонки чешутся :smile469:
Brand2
Лейтенант
Сообщения: 450
Зарегистрирован: 26 фев 2018, 21:27
Откуда: Haifa
Имя: Alex
Благодарил (а): 2 раза
Поблагодарили: 5 раз

Датчик DS18B20 с контролем работоспособности

Сообщение Brand2 »

[ref]Timur[/ref], я использую бп ds18b20,после него ставлю фильтр Filtr_anomal,где задаю дельту в разумных пределах и потом блок сравнения,и если температура выходит за предела допустимых значений то присваиваю переменной error.
Аватара пользователя
diman27
Сержант
Сообщения: 291
Зарегистрирован: 06 сен 2015, 07:33
Откуда: Белово
Благодарил (а): 4 раза

Датчик DS18B20 с контролем работоспособности

Сообщение diman27 »

Спасибо автору за блок. Подскажите как его с esp использовать?
smol
Рядовой
Сообщения: 62
Зарегистрирован: 16 ноя 2017, 18:25

Датчик DS18B20 с контролем работоспособности

Сообщение smol »

А если 8 штук использовать?
Аватара пользователя
RedSky
Лейтенант
Сообщения: 576
Зарегистрирован: 19 дек 2016, 20:07
Откуда: Днепропетровск
Имя: Алексей
Поблагодарили: 1 раз

Датчик DS18B20 с контролем работоспособности

Сообщение RedSky »

На ESP не проверял, но отличий в использовании не должно быть.
Количество любое, но все должны быть подключены к разным пинам.
vovka1973
Подполковник
Сообщения: 1202
Зарегистрирован: 14 фев 2016, 14:16
Откуда: kazahstan
Благодарил (а): 32 раза
Поблагодарили: 6 раз

Датчик DS18B20 с контролем работоспособности

Сообщение vovka1973 »

RedSky писал(а): 18 фев 2019, 14:55 На ESP не проверял, но отличий в использовании не должно быть.
Количество любое, но все должны быть подключены к разным пинам.
На esp32 работает :smile9:
Изображение
Аватара пользователя
RedSky
Лейтенант
Сообщения: 576
Зарегистрирован: 19 дек 2016, 20:07
Откуда: Днепропетровск
Имя: Алексей
Поблагодарили: 1 раз

Датчик DS18B20 с контролем работоспособности

Сообщение RedSky »

Добавил новый блок, т. к. старый не обеспечивал должной надёжности. Теперь контроль более строгий, контрольная сумма принимается в расчёт в любом случае. Выход ошибки теперь один, по прежнему когда есть ошибка опрос максимально частый независимо от заданного времени для максимально быстрого восстановления рабочего состояния. В остальном без изменений.
Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03 ноя 2018, 19:38
Имя: Дмитрий

Датчик DS18B20 с контролем работоспособности

Сообщение Di123 »

а как понять номер вывода есп8266 из букв разных привязать к единицам для блока ?
допустим D3 это наверное 3 теоретически
а S3 это что тогда ?
Аватара пользователя
RedSky
Лейтенант
Сообщения: 576
Зарегистрирован: 19 дек 2016, 20:07
Откуда: Днепропетровск
Имя: Алексей
Поблагодарили: 1 раз

Датчик DS18B20 с контролем работоспособности

Сообщение RedSky »

Di123 писал(а): 15 мар 2021, 06:38 а S3 это что тогда ?
Номер указывать как для IDE, т. е. номер GPIO.
S3 (или SD3 на некоторых) это GPIO10.
Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03 ноя 2018, 19:38
Имя: Дмитрий

Датчик DS18B20 с контролем работоспособности

Сообщение Di123 »

да работает
dsfbuy
Сержант
Сообщения: 172
Зарегистрирован: 03 ноя 2018, 12:40
Откуда: Братск
Имя: Виктор

Датчик DS18B20 с контролем работоспособности

Сообщение dsfbuy »

RedSky писал(а): 27 окт 2018, 00:57новый блок
У меня на NODEMCU отрицательная температура не работает. Показывает 4095 градусов, при понижении соответственно уменьшается, выше 0 все ОК. На ардуине все нормально.
погода_proba_733.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
RedSky
Лейтенант
Сообщения: 576
Зарегистрирован: 19 дек 2016, 20:07
Откуда: Днепропетровск
Имя: Алексей
Поблагодарили: 1 раз

Датчик DS18B20 с контролем работоспособности

Сообщение RedSky »

dsfbuy писал(а): 18 мар 2021, 10:44 Показывает 4095 градусов
Вот исправленный блок. Похоже никто не знал, что в ESP int длиной в 4 байта. Завтра постараюсь сделать один универсальный блок.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
RedSky
Лейтенант
Сообщения: 576
Зарегистрирован: 19 дек 2016, 20:07
Откуда: Днепропетровск
Имя: Алексей
Поблагодарили: 1 раз

Датчик DS18B20 с контролем работоспособности

Сообщение RedSky »

Обновил блок. Были проблемы на ESP при отрицательных температурах.
Утвш
Сержант
Сообщения: 148
Зарегистрирован: 02 дек 2016, 07:31
Благодарил (а): 2 раза

Датчик DS18B20 с контролем работоспособности

Сообщение Утвш »

А что подразумевается под контрольной суммой?
Аватара пользователя
Rovki
Полковник
Сообщения: 5721
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Благодарил (а): 67 раз
Поблагодарили: 213 раз
Контактная информация:

Датчик DS18B20 с контролем работоспособности

Сообщение Rovki »

RedSky писал(а): 18 мар 2021, 14:45
dsfbuy писал(а): 18 мар 2021, 10:44 Показывает 4095 градусов
Вот исправленный блок. Похоже никто не знал, что в ESP int длиной в 4 байта. Завтра постараюсь сделать один универсальный блок.
Везде инт -16 бит ! Просто есть целое без знака 0-65535, а есть целое со знаком от-32768 до 32768. :smile37:
Электронщик до мозга костей и не только
Аватара пользователя
Phazz
Полковник
Сообщения: 3114
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 231 раз
Поблагодарили: 110 раз

Датчик DS18B20 с контролем работоспособности

Сообщение Phazz »

[ref=#ff8000]Rovki[/ref], там речь про байты и в есп32 их действительно 4 в integer
Аватара пользователя
Rovki
Полковник
Сообщения: 5721
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Благодарил (а): 67 раз
Поблагодарили: 213 раз
Контактная информация:

Датчик DS18B20 с контролем работоспособности

Сообщение Rovki »

Phazz писал(а): 03 апр 2021, 08:40 [ref=#ff8000]Rovki[/ref], там речь про байты и в есп32 их действительно 4 в integer
Думаю проще- ЕСР машина 32 битная ,поэтому длина регистра 32 бита (4 байта) :smile37:
Электронщик до мозга костей и не только
Kot
Сержант
Сообщения: 125
Зарегистрирован: 09 окт 2021, 11:54
Имя: Дима
Поблагодарили: 1 раз

Датчик DS18B20 с контролем работоспособности

Сообщение Kot »

[ref]RedSky[/ref], а можете собрать блок для чтения нескольких датчиков на одном пине ?
по этому примеру https://radioprog.ru/post/763
Ответить

Вернуться в «Датчики и энкодеры»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя