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

Радиоудлинитель датчика температуры DS18B20
Прошивки для радиоудлинителей 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(подтяжка должна остаться).
  • Прижать пин PB3 приёмника к земле.
  • Включить приёмник(светодиод будет светиться постоянно).
  • Включить передатчик.
  • Через 1.5 - 3сек светодиод приёмника должен потухнуть - адрес прописан.
  • Выключить приёмник.
  • Убрать прижим к земле пина PB3.
Синхронизация адреса датчика температуры с приёмником:
  • Выключить передатчик и приёмник.
  • Отключить приёмник от шины 1wire.
  • Включить приёмник.
  • Включить передатчик.
  • Через 1.5сек светодиоды приёмника и передатчика должны загореться - адрес прописан.

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

Что нового:
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
  • Переработан алгоритм ответа на сигнал сброса.
ver TX 4.1.2
  • Исправление отключения ацп.

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

Вложения

Изменено:

Комментарии

Sergo_ST

★★★★★★✩
15 Мар 2020
1,057
877
Прошивки для радиоудлинителей 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(подтяжка должна остаться).
  • Прижать пин PB3 приёмника к земле.
  • Включить приёмник(светодиод будет светиться постоянно).
  • Включить передатчик.
  • Через 1.5 - 3сек светодиод приёмника должен потухнуть - адрес прописан.
  • Выключить приёмник.
  • Убрать прижим к земле пина PB3.
Синхронизация адреса датчика температуры с приёмником:
  • Выключить передатчик и приёмник.
  • Отключить приёмник от шины 1wire.
  • Включить приёмник.
  • Включить передатчик.
  • Через 1.5сек светодиоды приёмника и передатчика должны загореться - адрес прописан.

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

Что нового:
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
  • Переработан алгоритм ответа на сигнал сброса.
ver TX 4.1.2
  • Исправление отключения ацп.

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

Вложения

Изменено:

kym13

★★★✩✩✩✩
14 Ноя 2020
700
112

@МОРО1986,
Нужно в среду IDE установить "microCore 2.2.0" и всё лезет. В шапке каждого скетча написано какой версии ядро и какую частоту установить.
 

Вложения

  • 81.3 KB Просмотры: 8

МОРО1986

✩✩✩✩✩✩✩
8 Фев 2023
26
5
Недолго музыка играла, как говорится... Планировал подключить данный удлинитель к термометру на ГРИ. Схема ниже.
image001.png
После подключения на индикаторах вот такие цифры.
IMG_20250409_203726.jpg

И приёмник не принимает сигнал с передатчика, светодиод не мигает.
Отключаю провод передачи данных от термометра, но питание приемника оставляю. Данные на него приходят, светодиод мигает.
Подключаю провод данных "на горячую". На индикаторах следующие цифры (передатчик за окном висит)
IMG_20250409_203926.jpg

И опять приёмник не работает...
Такая фигня...
Да, подтяжка 4.7 ком есть, на плате приёмника. На плате термометра я её выпаял.
 
  • Лойс +1
Реакции: S_Sergey_G

kym13

★★★✩✩✩✩
14 Ноя 2020
700
112

@МОРО1986,
Вы внимательно читали то что в шапке форума написано? Подтяжка 4,7К должна быть и на приёмнике и на передатчике ОБЯЗАТЕЛЬНО, проходили это без подтяжки работать не будет.
 

МОРО1986

✩✩✩✩✩✩✩
8 Фев 2023
26
5
@kym13, конечно читал. Подтяжка есть на обеих платах (приёмника и передатчика). я имел ввиду, что изначально на плате термометра тоже была подтяжка, но я оттуда её убрал. Вместо неё используется подтяжка на плате приёмника.
 

kym13

★★★✩✩✩✩
14 Ноя 2020
700
112

@МОРО1986,
Вместо неё используется...... Вы не поняли, НЕ ВМЕСТО, а подтяжка ДОЛЖНА быть на обеих платах, на плате приемника подтяжку можно не делать но тогда её нужно делать к пину самих часов куда подключается приемник. Иными словами между + и DO DS18b20 должны стоять резисторы на обеих платах и не важно физический это датчик или эмулятор.
 
Изменено:

МОРО1986

✩✩✩✩✩✩✩
8 Фев 2023
26
5
@kym13, может я конечно настолько не догоняю, но смотрите.

IMG_20250409_221155.jpg
Вот приёмник. Чётко виден резистор 472 между 5 вольт и DQ.

Идём дальше.
IMG_20250409_221522.jpg

Резистор под колодкой 4pin, это 4.7ком
IMG_20250409_221538.jpg

Его контакты на обороте, в цепи 5 вольт и DQ датчика.
 

kym13

★★★✩✩✩✩
14 Ноя 2020
700
112
@МОРО1986,Вы же написали что убрали его. Если они есть всё должно работать, таких комплектов собрал штук пять проблем не было. Сопряжение приемника с передатчиком делали? Адрес и время задали джемперами?
 

МОРО1986

✩✩✩✩✩✩✩
8 Фев 2023
26
5
@kym13, да, все сделал. Интервал передачи 1минута, адрес тоже прописал, по крайней мере если судить по внешним признакам (по светодиодам). Видать это в самом термометре что-то не так...
 

vik72

✩✩✩✩✩✩✩
23 Мар 2023
21
4
Приветствую.Скорее всего мешает шум от часов, попробуйте изменить положение приёмника, экранировать провода питания и данных. Положение и длина антенны тоже влияет на качество приёма.

Добавлю, судя по картинке Вы используете приёмник RX-470, вроде неплохо работает, но приёмник WL101-341 с этим эмулятором работает намного лучше. Непонятно почему, характеристики вроде одинаковые, но принимает просто исключительно, проверено.
 

МОРО1986

✩✩✩✩✩✩✩
8 Фев 2023
26
5
@kym13, убрал.

@vik72, так дело не в передачи данных. На приемник данные приходят, термометр их видит, если "на горячую" подключать приёмник часам, то термометр разово принимает данные, это видно на втором фото.
Вот когда включаешь термометр, на индикаторах цифры +85. Поиском нашел что это значит - "85 - загружается в ячейки температуры датчика при подаче питания. После передачи правильной команды на чтение температуры там должны быть данные температуры." А у меня данные не приходят, т.к. Attiny будто блокируется. Светодиод на плате приемника не мигает.

@МОРО1986, хм... Сейчас подключил к Ардуино приёмник, проверить выходят ли данные с него, и он тоже не хочет принимать сигнал с передатчика. Не мигает светодиодом.
 
  • Лойс +1
Реакции: kym13

vik72

✩✩✩✩✩✩✩
23 Мар 2023
21
4
85 показывает когда долго нет приёма т.е. при потере датчика ,потому и не мигает.Отсоединяете от часов, данные записываются, и при соединении часы показывают, отсюда вывод-без часов приёмник работает. Значит на проводе данных столько шума, что глушит приёмник.
 

vik72

✩✩✩✩✩✩✩
23 Мар 2023
21
4
Да там тоже микроконтроллер, а они работают на высокой частоте, отсюда и шум. На логику он не влияет, слишком мал уровень, а вот на радиоприем влияет сильно, потому приёмные каскады и усилители ВЧ экранируют и ставят подальше от источников помех.
 

kym13

★★★✩✩✩✩
14 Ноя 2020
700
112

@МОРО1986,
Вы антенки эти спиральные уберите и вместо них кусок провода длиной 17,5 см припаяйте, на приемник можно и длиннее но кратно 2 т.е. 17.5, 35 см и т.д.


@vik72,
Собрал этих удлинителей много никогда таких проблем не было, на последних даже конденсаторы и индуктивность не устанавливал. Один из приемников стоит в панели Р5 32х64 рядом с контроллером ESP8266 и без проблем работает уже несколько месяцев.

PS: Да мужик один жаловался на помехи, но у него панель Р5 128х64, сказал что пришлось приемник размещать на расстоянии больше метра от панели.


@МОРО1986,
Сейчас подключил к Ардуино приёмник...... Было так однажды у меня решилось перепрошивкой Тиньки.
 

vik72

✩✩✩✩✩✩✩
23 Мар 2023
21
4
@kym13,
Этот модуль заэкранирован изначально, да и частоты в десятки раз выше, плюс удачно разместили.

@МОРО1986,
А у Вас наверное проблемы с фъюзами, мало указать частоту, там 3 разновидности, нужно программировать конкретный бит.
 

МОРО1986

✩✩✩✩✩✩✩
8 Фев 2023
26
5
@vik72, эмм... А можете, пожалуйста, поподробнее объяснить.
Сейчас перезалил прошивки не через Ардуино, а через AvrDude. Теперь не получается сделать сопряжение передатчика с приемником. Фьюзы несколько раз перепероверил.

@kym13, перепаял, ничего не поменялось.
 
Изменено:

vik72

✩✩✩✩✩✩✩
23 Мар 2023
21
4
@МОРО1986,
Извините, долго не отвечал, занят немного. Собственно особо то и нечего объяснять, передатчик-Low 79 (4,8MHz-64ms), High FB( можно FD,порог питания снизится до 1,8v). Приёмник-Low 7A, High FF.
 

МОРО1986

✩✩✩✩✩✩✩
8 Фев 2023
26
5
@vik72, спасибо. С ними в принципе-то все ясно. А вот с Ардуино...

Новый рисунок (12).jpg

Я пока разобрался только с BODEN и частотой МК. А вот какие остальные настройки нужно указать?
 

vik72

✩✩✩✩✩✩✩
23 Мар 2023
21
4
9,6MHz это для приёмника, для передатчика 4,8MHz.