В качестве эталонной температуры используется значение, считываемое с термостата MASTER по интерфейсу RS‑485. Калибровка позволяет скорректировать показания каждого датчика DS18B20 путём сохранения кода поправки в его регистр TL (температурный порог низкого уровня). Верхний порог TH уже используется для номера датчика в косе.
- Принцип калибровки
- Для каждого датчика вычисляется отклонение по принципу:
Отклонение равно разница между показанием датчика DS18B20 и снятой температуры c термостата. - Отклонение преобразуется в код группы (целое число от 90 до 110) с шагом 0,05 °C.
- Код группы записывается в TL (8‑битный регистр) датчика DS18B20.
- В дальнейшем, при чтении температуры через интерфейс графиков или на приборе СТО-3, код группы преобразуется обратно в определенную поправку и добавляется к считываемому значению:
Считываем значение и добавляем поправку согласно группы извлеченной из TL. - Такой принцип позволяет сохранять калибровку (группу) в энергонезависимой памяти датчика, не требуя внешнего хранилища и подбора датчиков по прецизионным параметрам (сортировка физическая датчиков, чем занимались ранее).
Запись в TL возможна только для датчиков, работающих в 12‑битном режиме. Если разрешение датчика ниже (9‑11 бит), запись пропускается – такие датчики не могут хранить произвольное значение в TL. Сделано для того, чтобы не стирать номер косы.
- Последовательность действий для калибровки
2.1. Подготовка оборудования
- Подключите калибратор к термостату
- Погрузите косу в емкость термостата.
- Подключите датчики косы DS18B20 к выводу прибора.
2.2. Доступ к веб‑интерфейсу
- Калибратор «поднимет» точку доступа Termostat или схожую (без пароля).
- Подключитесь к этой Wi‑Fi сети с компьютера.
- Откройте браузер и перейдите по адресу http://192.168.4.1.
- На главной странице нажмите кнопку «График температур в реальном времени» для отслеживания температуры, «Калибровка DS18B20» для калибровки датчиков.
- На вкладке «Калибровка DS18B20» сбрасываем группы на TL=100, см. п 2.6.
- На вкладке «График температур в реальном времени» ждем стабилизации температуры датчиков DS18B20.
- Стабилизация - это условие при котором предыдущее показание всех датчиков не более температуры разрешения самих датчиков, то есть не более 0,06 для DS18B20.
(Проще говоря, условно проводим две горизонтальные линии параллельные температуре датчика термостата, и все датчики не должны выходить за пределы этих условных линий +/- 0,5 градуса Цельсия в течение 10-15 минут (время выдержки), при этом также показывать стабильность своих измерений, выдавать одни и те же или схожие значения (не более 0,06) от одного измерения к другому)
2.3. Получение эталонной температуры
На странице калибровки задаем эталонную температуру:
- Нажмите кнопку «Взять с термостата». Калибратор отправит команду :00000000 DAT.T RD по RS‑485 и подставит полученное значение.
Запрос происходит на все адреса на линии, так как в адресе одни нули, и так как у нас и подключен один термостат, то показания приходят именно с него. По идее можно к одному прибору подключать несколько термостатов и запрашивать с каждого из них свою температуру. Адрес термостата это их серийных номер, который высвечивается при включении.
2.4. Запуск калибровки
- Нажмите кнопку «Выполнить калибровку».
- Калибратор выполнит следующие действия:
- Считает значения температуры всех датчиков DS18B20.
- Для каждого датчика вычислит отклонение от эталона.
- Определит код группы и запишет его в TL (только для 12‑битных датчиков).
- Повторно прочитает регистры датчиков для проверки.
- Выведет сообщение «Calibration completed» и обновит таблицу.
2.5. Проверка результатов
На той же странице ниже расположена таблица состояния датчиков. В ней отображаются:
- Считываемая температура
- Поправка (вычисленная по коду группы)
- Скорректированная температура (сырая + поправка)
- Код группы (TL) и его текстовое представление (например, +0.10 или -0.05)
- Разрешение датчика (9–12 бит)
Если калибровка прошла успешно, поправка должна соответствовать отклонению, а скорректированная температура – быть близкой к эталонной, к температуре датчика термостата.
2.6. Сброс калибровки
Требуется первоначальный сброс до калибровки и до стабилизации температуры. Также сброс может быть применен если есть сомнения в правильности калибровки. Кнопка «Сбросить группы (TL=100)» записывает во все датчики код 100, что соответствует нулевой поправке. Это возвращает датчики в состояние считывание температуры без поправки, обнуляет группы.
- Рекомендации
Работа с 12‑битными датчиками
- Проверьте разрешение датчиков в таблице. Если какой‑либо датчик имеет разрешение 9, 10 или 11 бит, его TL не будет изменён – калибровка для него пропустится. Поэтому после калибровки мы можем увидеть явное отклонение одного из датчиков по температуре, если использовалась коса с номером, так как для него не будет «залита группа».
- Перед массовой калибровкой надо сбросить все группы кнопкой «Сбросить группы» и записать исходные поправки (все коды 100). Это позволит вернуться к исходному состоянию.
Повторная калибровка
- Требуется когда на графике явно видно, что расхождения датчиков после калибровки стали больше чем до нее.
- Обработка ошибок
- Если датчик не отвечает (сырая температура = -127.0), в таблицу выводится -127, как правило стоит проверить косу на приборе СТО-3, убедиться, что она работоспособна.
- Количество датчиков ограничено 50 штук.
- Запись в TL каждого датчика занимает около 50 мс, поэтому калибровка 10 датчиков выполняется менее чем за секунду.
- Возможные проблемы и их решение
|
Проблема |
Вероятная причина |
Решение |
|
Калибровка не меняет показания датчика |
Разрешение датчика <12 бит |
Переведите датчик в 12‑битный режим (измените конфигурационный регистр) |
|
При нажатии «Взять с термостата» появляется 25.0 |
Нет ответа от термостата по RS‑485 |
Проверьте подключение, адрес |
|
В таблице поправка отображается, но скорректированная температура не совпадает с эталонной |
Разрешение датчика 12 бит, но запись не верифицировалась |
Повторите калибровку |
|
После сброса групп датчики продолжают показывать старую поправку |
Не была выполнена команда |
Обновить страницу |
|
Веб‑интерфейс не открывается |
ESP32 не создал точку доступа |
Проверить наличие сети и подключение к ней/ |
- Заключение
Калибратор позволяет легко и быстро откалибровать группу датчиков на термокосе по эталонному датчику термостата. Благодаря хранению поправок в самом датчике, калибровка сохраняется после перезагрузки и не требует отдельной базы данных в виде микроконтроллере на косе. Использование веб‑интерфейса и физического OLED‑дисплея делает процесс наглядным, удобным, интуитивно понятным для оператора.
Схема калибратора.

Скетч для заливки есть на сервере (termo_master_v5). Если кому-то надо, пишите комментарии.