Разработка системы автоматического контроля температуры

Автор KVN, Суббота, октября 31, 2020, 04:35:27

« предыдущая тема - следующая тема »
Вниз

KVN

Суббота, октября 31, 2020, 04:35:27 Последнее редактирование: Воскресенье, ноября 22, 2020, 11:02:06 от KVN
Тема: Разработка многоточечного измерителя температуры воздуха на основе сети цифровых датчиков DS18B20 для промышленной или бытовой вентиляции и отопления зданий.
Исполнитель: Толстошеев Виктор Вячеславович, студент гр. 741об
Руководитель СКБ "Промышленная робототехника и автоматизация" Русинов Владислав Леонидович

Вступление


Текст…

Введение


Необходимостью разработки предлагаемого многоточечного измерителя температуры является то, что существующие МИТ дороги и сложны в установке и наладке. Имеющиеся на рынке готовые МИТ предназначены для конкретных технологического процессов или объектов автоматизации с полностью ограниченными функциональными возможностями. В большинстве предлагаемых устройств вывод результатов измерений производится только на персональный компьютер.
Разрабатываемый многоточечный измеритель температуры будет использоваться в следующих областях:
- системы автоматизации вентиляции и отопления промышленных и общественных зданий;
- системы "Умный дом";
- мониторинг температуры в книжных хранилищах, фармацевтических складах, музеях и пр..
- технологические процессы с большим количеством измерений температуры, теплицы, фермы и пр..;
- бытовое применение.

Основная часть доклада


1. Аппаратная часть
Дешевизна разрабатываемого устройства обусловлена использованием, для непосредственного измерения температуры, цифровых термометров компании DALLAS типаDS18B20в корпусе ТО-72, рис.1.
Разрешение термометра от 9 до 12-bit, может сохраняться в EEPROM памяти прибора. Диапазон измерений от -55°C до +125°C и точностью 0.5°C в диапазоне от -10°C до +85°C. В дополнение, DS18B20 может питаться напряжением линии данных ("parasitepower"), при отсутствии внешнего источника напряжения.
Благодаря наличию уникального 64-битного кода для каждого датчика, имеется возможность общения с множеством датчиков по 1-wire шине, использующую всего один провод для обмена данными, обеспечивая совместную работу множества датчиков. Благодаря чему достаточно использовать один микропроцессор для работы с множеством датчиков DS18B20, распределенных по большому участку.



Рисунок - 1. Цифровой датчик температур DS18B20


На данный момент разработан отладочный вариант МИТ на микроконтроллерной плате Arduino NANO v.3, рис.2.


Рисунок - 2. Структурная схема МИТ


2. Принцип работы
Принцип работы устройства основан на протоколе 1-Wire.
Данный протокол для AVR контроллеров позволяет "общаться" с помощью одного провода.


Рисунок - 3.Принципиальная схема МИТ


Обмен информацией ведётся тайм-слотами (60 мкс): один тайм-слот служит для обмена одним битом информации. Данные передаются бит за битом, начиная с младшего бита младшего байта. При этом в свободном состоянии на шине поддерживается высокий потенциал, а ведущее устройство занижает его. При этом, перед каждой командой, ведущее устройство отправляет "предупреждающий сигнал" опуская шину в 0 на 1...15 мкс.

3. Программа
Схема алгоритма программы:


Рисунок - 4. Алгоритм программы



Рисунок - 5. Инициализация датчиков


Важно отметить одну из базовых проблем использования 1-Wire протокола:
Протокол, сам по себе не учитывает возможные неисправности оборудования. Если устройство будет опускать линию всегда на 0. Тогда, если ведущий не проверит, что линия возвращается в единицу, то вероятна следующая ситуация:
1) МК отсылает импульс сброса
2) Датчик коротит линию на ноль - МК обнаруживает, что есть импульс приветствия
3) МК отсылает адресную команду "Skip ROM"
4) МК отсылает функциональную команду "Convert T"
5) МК ждёт
6) МК отсылает импульс сброса
7) история повторяется, датчик отсылает ноль
8) МК отсылает адресную команду "Skip ROM"
9) МК отсылает функциональную команду "Read Scratchpad"
10) МК считывает нужное количество байт - и получает, естественно, все нули. Даже если мы считываем всю память вместе с CRC, CRC от нуля будет равно нулю - то есть ошибки не произойдет МК конвертирует температуру, получает ноль, отправляет команду нагревать печь. И так до бесконечности. Во избежание подобного сценария, в процессе считывания данных с датчика, следует предусмотреть периодическую проверку данных(повторно инициализировать датчики).
Заключение


текст...

ran

Рисунки не все отображаются

KVN


Вверх