Автоматика управления отоплением дома своими руками. Часть 2

Напомню, что мы ведем речь о системе управления отоплением дома с применением таймера-термостата NM8036 (начало здесь).

5b37b534c1454736865ab3b0b75bd9d1.jpg

Аналоговые (АЦП) входы контроллера и подключение датчиков температуры.
Итак, АЦП. Не каждому и не сразу понятно, что это такое и с чем его едят. Потому попытаюсь объяснить своими словами.

Вообще, что такое «аналоговый» вход? У контроллера два типа входов: цифровой и аналоговый. Цифровой может принимать только два значения: ноль и единица. Ноль — нет напряжения, единица — есть напряжение. Информация передается на цифровой вход импульсами во времени. А вот аналоговый вход способен принимать не только эти два значения, но вообще любое напряжение.

У контроллера NM8036 имеются два аналоговых входа (см. про сборку блока NM8036 в первой части). На каждый из этих входов может быть подано любое напряжение в пределах от 0 до напряжения питания (5 в). Например, 1,8 вольта, или 3,2 вольта… Короче, любое, но не более 5 вольт.

Что с этим напряжением делает контроллер? Очень просто: измеряет и представляет его в цифровом виде. Причем, делает он это в пределах от 0 до 1023. Это бинарные данные (bin-data), в которых верхний предел (1023) приравнивается к напряжению в 5 вольт. Это и есть Аналого-Цифровое Преобразование (АЦП).

Но фактическое напряжение — оно и есть фактическое. 5 вольт — они и есть 5 вольт. Это значение рассматривается здесь, как «Вольты». И правильно, вольты и есть.

Но здесь можно представить это напряжение и в других физических величинах (Физика). Например, подключили мы ко входу датчик давления или влажности, или тоже датчик температуры, но не цифровой, как DS1820, а терморезисторный. Этот терморезисторный датчик выдаст нам напряжение от 0 до 5 вольт (электронщики, не возбуждайтесь! Это лишь для примера.), но ведь нам важно знать температуру, а не напряжение!

b4f54528c38c4a7abf7dfec16cdcac43.jpg

Вот мы и калибруем эти значения. Нижний предел в настройках установим, например, в 16 градусов, а верхний — в 30 градусов. Вот такой вот у нас датчик, видите ли, подключен. А количество знаков после запятой поставим 2. И префикс укажем: С (то бишь, градусов Цельсия).

И что мы при этом получим? А получим то, что когда датчик пришлет на вход напряжение, например, в 2,5 вольта, контроллер быстренько все пересчитает и выдаст нам три варианта результатов: 512 (bin-data), 2,5в (Вольты) и 23.00 С (градусов цельсия). Вот таким образом можно настроить работу практически с любым датчиком, выдающим на своем выходе аналоговое значение напряжения.

Существование двух аналоговых входов у контроллера — это ведь не только возможность подключения вышеперечисленных датчиков. Можно придумать немало схем, которые могут оказаться очень даже полезными для разных целей в частном доме.

Перечислю навскидку возможные из них:
Простой выключатель на 2 положения. Может иметь на выходе Data либо 0 вольт, либо 5 вольт. Подключается тремя проводами: Vcc (+5в), Data (данные) и Gnd (общий провод). Таким выключателем можно устанавливать два разных режима работы нагрузок при программировании системы.

67518442c7b947fab715fcd251059a11.jpg

Переключатель на большее количество положений может обеспечить возможность программирования и большего количества режимов. Вот, скажем, на 3 положения. Каждое положение имеет свое напряжение на выходе. Самое нижнее положение — на выходе 1,25 в, среднее 2,5 в и верхнее 3.75 в. Увеличивая количество резистров в цепочке, можно увеличивать и количество положений переключателя.

fd6a21c4f21e4c54b6789bda6cb8a481.jpg

Это были варианты ступенчатой регулировки, но ведь есть и вариант плавного регулирования. Здесь величина выходного напряжения зависит от положения движка переменного резистора.

75ff5696e56b463cbc5186020e532e6a.jpg

Можно применить, например, для ручной регулировки температуры. Сделать программу так, чтобы она поддерживала температуру в помещении такой, какая задана регулятором. Автоматическая регулировка — это одно, но нередко хочется где-то что-то повернуть, щелкнуть, чтобы было потеплее, или, наоборот, попрохладнее. Человек ведь существо привередливое.

Или применить такую схему для контроля, скажем, за уровнем воды в емкости, в колодце… Это несложно: поплавок на нитке, намотанной на ручку переменного резистора. Подпружиненной, естественно. Но это так, навскидку, без детальной проработки.

Если же продолжать фантазировать, то можно еще измерять уровень освещенности и в нужное время включать/отключать лампу… Короче, возможностей у этих аналоговых входов масса, NM8036 вполне может осилить немало задач не только в управлении отоплением частного дома, но и для решения многих других задач. О возможностях настройки и программирования поговорим в следующих статьях.

Кстати, по поводу регулировки температуры в помещении есть очень даже неплохое решение, взятое мною из форума MasterKit. В ответ на чей-то вопрос автор сообщения Brokly (он же автор программы Advanced Manager, о ней я также расскажу далее) привел пример применения аналогового входа. Привожу дословно:
Вы бы еще сложнее че нить придумали. Поставьте контактный настенный термостат, подключите к аналоговому входу, и пусть алкаши сами его крутят. И уборщицу освободите, и пъяным забава. Да и контроллеру меньше работы, сработал термостат — можно не греть.

Как тебе такое, Мастер? А мне, знаешь, понравилось.

Теперь о подключении датчиков температуры. В инструкции, конечно, есть схема подключения, но я бы акцентировал дополнительно твое внимание на том, что датчики должны быть подключены последовательно, без образования «звезды».

Чтобы было понятнее, вот рисунок: на нем у каждого датчика свой кабель для соединения с контроллером, и где-то у самого контроллера эти кабели соединяются в один. Вот это и есть соединение звездой.

41f0320b8ea5441bb828f285b1ebc8d3.jpg

Спору нет, так, конечно, удобнее датчики раскидать. Только потом возможны проблемы с их определением, да и в работе у прибора будут необъяснимые глюки.

А вот эта схема — пример последовательного соединения датчиков температуры DS18B20. То есть, к одному непрерывному кабелю, подключенному к NM8036, последовательно подключаются датчик за датчиком на всем протяжении кабеля.

08ced468aaa245e29b7b6f4bae358c78.jpg

Вообще-то, если строго судить с точки зрения электрических соединений, это соединение является параллельным, но я для лучшего понимания обозвал тут по своему. Ведь соединение звездой — тоже параллельное…

В общем, такой тип соединения, как на рисунке — наиболее правильный, но он не всегда удобен в реальных условиях, когда датчики должны располагаться в разных помещениях, разбросанных вовсе не в соответствии с логикой последовательного подключения датчиков. И что же делать?

Выходом в такой ситуации служит соединение с возвратами, именно по такому пути я и пошел. Там, где оказалось невозможно протянуть кабель последовательно от датчика до датчика, я возвращался от очередного датчика к исходной точке и далее вновь шел к следующему датчику.

5103b3f88a0647bfb64cf13b0ab0d149.jpg

Эта схема — лишь отвлеченный пример, дающий представление о способе соединения датчиков в реальных условиях. Как видим, принцип последовательного соединения здесь соблюден полностью.

При монтаже датчиков температуры я использовал кабель «витая пара», каким прокладывают компьютерные сети. В этом кабеле 8 разноцветных жил, скрученных попарно. Во-первых, это оказалось очень удобным для выполнения соединений с возвратом, а во-вторых — кабель «витая пара» как раз очень хорош для таких целей, снижая количество наведенных помех.

Купить такой кабель можно в любой компьютерной мастерской, сервисе, в магазинах электроники. Не так уж и дорого, рупь штучка, три рубля кучка.

У кабеля четыре пары: синий и белосиний, коричневый и белокоричневый, розовый и белорозовый, зеленый и белозеленый. Все провода бело- использую под общий провод. Провод коричневый — Data на входе, синий — питание на входе. На выходе: Data — зеленый, питание — розовый.

На другом конце кабеля «с возвратом» подключаю датчик по указанной схеме, т.е., все белые — общий, зеленый и коричневый — Data, синий и розовый — питание.

cd7047c09c2648e39a64c90ff3ae876f.jpg

64d13141e3e346888f80848bec5cfd8a.jpg

cd7753c71367406f9f93c7dd43ab63c5.jpg

Теперь цоколевка датчика, назначение его выводов. Путать их, конечно, не следует. Берем датчик за ножки и смотрим на его лицевую сторону, где расположены надписи. При этом справа будет вывод питания, слева — общий, и в середине — вывод данных.

17d2bd3846d84a6b9e902a46747a9904.jpg

Но вот кабели раскинуты, датчики подпаяны. Как их закреплять? Вопрос неоднозначен, если задаваться целью измерения температуры с точностью до десятых градусов. Собственно, датчик так и меряет, но он меряет свою температуру. А измерение температуры датчика и температуры воды в трубе — далеко не одно и то же.

Казалось бы, чего тут сложного? Приклеил датчик к трубе — и он будет измерять температуру воды в трубе. Разве не логично? Логично. Но неверно. Во-первых, сама поверхность трубы уже дает погрешность, ведь она омывается воздухом, температуру которого не всегда равна температуре воды. Во-вторых, что самое важное, датчик прижат к трубе только одной поверхностью. Остальные — опять же омываются воздухом и температура самого датчика получается вовсе не равной температуре поверхности трубы.

Выход напрашивается сам собой: утеплить датчик и участок трубы и сделать над местом крепления датчика некий кожух, защищающий от воздействий наружного воздуха.

Но я, опять же, пошел по пути упрощения и прикрепил датчики к трубам с помощью обыкновенного матерчатого пластыря. Да, показания датчиков не соответствуют действительности. Разница в пределах от одного до полутора градусов. Ну и что?

Я же не термостат собираю для научных экспериментов, у меня просто система управления отоплением частного дома. Да и при программировании системы ничто не мешает мне учитывать эту разницу, что я, собственно и сделал. Например, в прихожке у меня разница показаний датчика и градусника (один от другого в 2-х миллиметрах) — 1,3 градуса. Градусник показывает 24, а датчик — 22,7. Кто из них врет — разве важно? Хотя, я больше все-таки цифровому датчику доверяю.

Что еще по датчикам? Вроде все. Ага, вот еще: не спеши датчики сразу все на место прикручивать/приматывать. Определять их потом будет непросто. Пусть пока в воздухе висят, чтобы потом, когда запустишь при настройках «Поиск датчиков» и все они будут определены, можно было ладонями изменять их температуру и давать имена в системе.

Система ведь датчики определит по их серийным номерам и вывалит тебе список этих серийников. Откуда она знает, что вот этот серийник принадлежит датчику возле унитаза, а вот этот — датчику под кроватью? Вот тогда заползешь под кровать, подогреешь датчик ладошками, подышишь на него, а супругу попросишь посмотреть на список датчиков. И узнаешь среди всех, у которого температура поднялась. И узнаешь, какой у него серийный номер, да и название ему присвоишь: Кровать!

Продолжение следует…

© Geektimes