ЭЛЕКТРОНИКА Радиоудлинитель датчика температуры DS18B20

Sergo_ST

★★★★★★✩
15 Мар 2020
809
736
Прошивки для радиоудлинителей DS18B20 можно скачать здесь.

Внимание! Перед прошивкой передатчика, обязательно полностью отключите радио-модуль, иначе он может выйти из строя!
Так-же могут быть проблемы с ATTINY13A купленными в Китае!!!


WDS18B20.JPG
Фьюзы RX прошивки Low 0x7A High 0xFF.
Фьюзы TX прошивки Low 0x79 High 0xFB.

Перед прошивкой передатчика желательно считать из сигнатуры мк калибровочный байт для осциллятора 4.8МГц и прописать его в OSCCAL_SET прошивки передатчика!
После прошивки необходимо обязательно прописать адрес передатчика в приёмнике по инструкции ниже!

Поддерживаются любые совместимые с указанными в схеме радио-модули на 433МГц.

Что реализовано:
  • Полноценная шина 1wire с возможностью адресации(команды - Search ROM, Read ROM, Match ROM, Skip ROM).
  • Копирование памяти и адреса датчика(адрес хранится в EEPROM приемника).
  • Защита от помех(передача бит по высокому уровню + проверка сигнала раскачки).
  • Сверка адреса передатчика(адрес задается перемычками).
  • Прописывание адреса передатчика в приёмник.
  • Сверка контрольной суммы принятых данных.
  • Система ошибок(125 - передатчик давно не выходил на связь, -85 - нет сигнала от датчика температуры).
  • Возможность установки перемычками установки интервалов передачи и адресов.
  • Возможность перед компиляцией установить свой максимальный интервал передачи(по умолчанию 60мин).
  • Возможность перед компиляцией выбрать режим "SLOW_MODE", для более устойчивой передачи.
  • Дублирование передачи(отправка повторного пакета через 8 сек).
  • Запрос температуры(за 8 секунд до основной передачи).

Синхронизация адреса датчика температуры с приёмником:
  • Выключить передатчик и приёмник.
  • Отключить приёмник от шины 1wire.
  • Включить приёмник.
  • Включить передатчик.
  • Через 1,5сек светодиоды приёмника и передатчика должны загореться - адрес прописан.

Синхронизация адреса передатчика с приёмником:
  • Выключить передатчик и приёмник.
  • Отключить приёмник от шины 1wire.
  • Прижать пин PB3 приёмника к земле.
  • Включить приёмник(светодиод будет светиться постоянно).
  • Включить передатчик.
  • Через 1,5 - 3сек светодиод приёмника должен потухнуть - адрес прописан.
  • Выключить приёмник.
  • Убрать прижим к земле пина PB3.

Установка аналоговых перемычек(резисторы подключаются к GND):
  • GND - PB4(1мин), PB3(0xAA)
  • Резистор 60K - PB4(5мин), PB3(0xBB)
  • Резистор 170K - PB4(10мин), PB3(0xEE)
  • VCC - PB4(30мин), PB3(0xCC)
Что нового:

ver 3.5.2

  • Добавлена индивидуальная адресация(можно использовать несколько удлинителей в одном месте).
  • Добавлена возможность прописывать передатчик в память приёмника (для этого необходимо PB3 прижать к земле и включить питание).
  • Добавлен медленный режим для протокола радиопередачи
  • Повышена помехоустойчивость при раскачке.
  • Убраны интервалы дублирующей передачи 8сек(теперь передаётся за раз 3 пакета).
  • Теперь при старте передаётся температура вместе с адресом датчика.
  • Оптимизация.
ver 3.5.4
  • Добавлен выбор адреса и времени с помощью аналоговых перемычек для передатчика.
  • Удалён режим передачи 3-х пакетов за раз.
  • Оптимизация приёмника.
ver 3.5.5
  • Исправление прошивки приёмника.
  • Добавлена возможность установить коррекцию частоты.
  • Мелкие исправления.
ver RX 4.0.0
  • Новый алгоритм обработки шины 1wire(позволяет обрабатывать практически все варианты поведения шины).
ver RX 4.1.0
  • Переработан алгоритм ответа на сигнал сброса.

За идею была взята статья с этого сайта.
Так-же огромное спасибо maksland за тестирование прошивок и схемы подключения!
Если есть вопросы/проблемы, или вы нашли баг, пишите в ЛС или ниже в теме.
 

Вложения

Изменено:

alexangarsk

✩✩✩✩✩✩✩
29 Окт 2022
17
1
@record35,
Добрейшего всем времени суток !
Есть у меня такие часы и чтобы этот радиоудлинитель в них работал нужна модифицированная прошивка.
Я когда повторял конструкцию, обращался к автору Sergo_ST и он правил исходники.....
 

Вложения

  • Лойс +1
Реакции: record35

merkus666

✩✩✩✩✩✩✩
24 Ноя 2023
3
0
Приветствую, подскажите может кто-нибудь собирал удлинитель для термостатов, интересно будет ли работать с zont H1-V? gsm-termostat-zont-h-1v-3din.jpg
Сейчас подключено 3 DS18b20 по трех проводной схеме с доп. питанием 5в, хотелось бы добавить еще один но нет возможности прокинуть провод. Ценник на родной радио-модуль с беспроводным датчиком уж больно не адекватный.

@merkus666,

Собрал на макетке, если подключать к ардуино приемник то температуру и адрес датчика в монитор COM порта выводит и все работает как надо. Подключил к ZONT, адрес датчика увидел но температуру не хочет показывать. Кстати после подключения к ZONT-у почему-то светодиод приемника при передаче не всегда загорается, иногда моргает 1 раз вместо 2-х, иногда 2 но коротко, не так как на передатчике. Как только откидываешь минус или шину то все норм светодиоды загораются почти синхронно. Плюс питания подаю от отдельного источника 5v минуса получается объединены в самом ZONT-e ну и шина также к ZONT-у. При таком подключении физически (т.е. без удлинителя) датчик работает. Пробовал убрать резистор 4.7 так даже адрес не отображает. Прошивки последние. Собственно вопрос если адрес датчика передается термостату и он его видит почему температуру не хочет показывать?
 

Sergo_ST

★★★★★★✩
15 Мар 2020
809
736
@record35, Можно, почему нет. Это же эмулятор физического датчика, значит он будет работать практически везде, где уже используется ds18b20.
 

merkus666

✩✩✩✩✩✩✩
24 Ноя 2023
3
0
@alexangarsk, Да ничего, пишет недоступен вместо показаний, но если через меню сбросить датчики то находит его снова.20240113_175612.jpg
 

Sergo_ST

★★★★★★✩
15 Мар 2020
809
736
@merkus666, Сложно сказать что ему не нравится, нужно логанализатором посмотреть что происходит на шине во время обмена.
Прошивки с гитхаб или из шапки темы? Заливали хекс или собирали исходники сами?

Адрес датчика из эмулятора точно считывается верный?
 
Изменено:

merkus666

✩✩✩✩✩✩✩
24 Ноя 2023
3
0
@Sergo_ST, Скачал с гитхаба закинул файл скетча в arduino ide и прошил через arduino ISP. Предварительно прописал фьюзы через консольную утилиту с avrdude и конфигом. Но кстати после прошивки приемник не видел передатчик, тогда я еще раз прописал фьюзы в приемник и заработало.
Да адрес верный, если подключить проводом то он не меняется.Screenshot_20240113-191046_ZONT.jpg
 
Изменено:

asm83

✩✩✩✩✩✩✩
27 Янв 2024
2
0
Можно ли сделать на готовом модуле WIFI NodeMCU Lua V3 wi-fi на базе ESP8266 ?

Там паять даже не надо ничего. Прицепил датчик температуры. Один модуль как приемник, второй как передатчик. Можно было бы и по принципу 1 приемник - несколько передатчиков. Смотреть температуру как через Web интерфейс, так и передавать на устройство, например ZONT

Проблема в том что у меня кроме самого NodeMCU Lua V3 wi-fi на базе ESP8266 и датчика температуры больше ничего нет (навыков написания кода и тд и тп). Если кто может подсказать готовый код (прошивку), буду благодарен. В инете куча прошивок для Веб просмотра или отправки на MQTT сервер, а не приемник - передатчик.
 

Sergo_ST

★★★★★★✩
15 Мар 2020
809
736
@asm83, Можно, если готовы мириться с низкой автономностью и небольшим радиусом передачи.
 

asm83

✩✩✩✩✩✩✩
27 Янв 2024
2
0
WIFI NodeMCU Lua V3 wi-fi на базе ESP8266 - готовый код прошивки есть у кого ни будь?
 

AlChel

✩✩✩✩✩✩✩
20 Апр 2022
18
1
Парни, подскажите по потреблению, питаю передатчик от 2х ААА батареек, потребление около 200мкА, при передаче до 15мА подскакивает, это норма?
И второй вопрос - резисторы выбора интервала передачи - насколько критичен номинал?
 
Изменено:

vik72

✩✩✩✩✩✩✩
23 Мар 2023
4
2
Приветствую.При передаче ток потребления увеличивается,15ма даже маловато.Резистор не критичен,и подбирается экспериментально,для нужной паузы между передачами.
 
  • Лойс +1
Реакции: AlChel

ahtohhe

✩✩✩✩✩✩✩
4 Апр 2024
2
0
Добрый день! пожалуйста подскажите, я правильно понимаю, что эту схему можно использовать для эмуляции ds18b20 на attiny13? очень нужен эмулятор этого датчика для проверки оборудования.
 

Sergo_ST

★★★★★★✩
15 Мар 2020
809
736
@ahtohhe, Да, в массивах приёмника можно указать свой уникальный адрес датчика и параметры его памяти(температура и тд).
 

ahtohhe

✩✩✩✩✩✩✩
4 Апр 2024
2
0
@Sergo_ST, чтобы работало без передатчика надо в изменить в 104 строчке, а адрес и температура настраивается в 66?
 

Sergo_ST

★★★★★★✩
15 Мар 2020
809
736
@ahtohhe, Адрес датчика хранится в еепром, соответственно прописывать его нужно именно туда с 0-го байта.
Информация о памяти датчика хранится в массиве wireMemory.
В него при запуске помещается информация из массива wireReceiveError.

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

Прошивки смотрите последние по ссылке на гитхаб в шапке темы.
 
  • Лойс +1
Реакции: ahtohhe