Проектируя электронику для квартиры я как-то внезапно понял, что навскидку число термодатчиков, которые я запланировал, перевалило за 2 десятка.
Чтобы предупредить вопросы:
- 6 в тёплых полах
- 2 (воздух и сама ванна) в ванной комнате
- 7 около батарей отопления (температура воздуха)
- 1 на улице
- 2 около вытяжки (верх-низ, для детектирования работы кухонной плиты)
- по 2 около кондеев, вход-выход
- 2: на уровне лица и на потолке, чтобы знать градиент температуры по вертикали
А ещё хотелось бы на г/х водопровод, в серверный шкаф, на лестничную клетку и на хотя бы одну батарею отопления.
Изначально делать термодатчики я хотел на Овен МВА и терморезисторах pt1000, как у взрослых. И частично так оно и будет.
Но.
- 24 датчика это три МВА, это порядка 12 тыс руб.
- на каждый датчик отдельная пара. где-то хватает, где-то нет. в любом случае как-то расширить систему - малореально.
- сами терморезисторы стоят ощутимых денег.
Возник вопрос - а не 1wire ли это, и не старые добрые DS1820.
Начал я с того, что купил и собрал комплект NM8036 - ищет, отображает на идентификаторы и транслирует в 232 до 32 1wire термометров. Всё бы хорошо, но все аппноты по топологии 1wire говорят, что звезда не работает. Что понятно, в целом. Да и софт для NM8036 закрыт и глючен. В частности, девайс может тупо повиснуть, прочитав что-то незнакомое из компорта. Опять же, протокол - говно, даже контрольных сумм нет...
Встал вопрос - не взять ли из шкафа mega32, и не сделать ли на нём сканер восьми 1wire шин с трансляцией в rs485/modbus.
Как уже догадывается мой проницательный читатель, ответ на него покоится на гугл коде - https://code.google.com/p/smart-home-devices/
Что умеет:
- Сканировать до 32 1wire термометров и, опционально, один 2401, для самоидентификации.
- Всё это на восьми самостоятельных 1wire шинах, причём термометр можно перекидывать с шины на шину.
- Хранить в EEPROM карту отображения ROM ID в числовой идентификатор точки измерения температуры.
- Отдавать в модбас всё, что знает. Modbus ascii/rtu распознаётся автоматически, можно смешивать оба.
- Будет ещё DCON, если я не поленюсь его отладить.
- Всё настраивается через 1602 и UI на базе двух потенциометров и двух кнопок. Потенциометр вместо энкодера - я считаю, моя гениальная находка. Дико просто делать и программировать. Рекомендую.
- Есть отладочные функции (дамп буфера приёма, отображение счётчиков ошибок по шинам и т.п.)
- Про запас 4 ADC канала в тот же модбас
- Может быть, будут счётчики, или DI, или DO, или PWM - не знаю, пока.
- Может быть, будет UI в режиме control surface - трансляция потенциометров и кнопок в модбас, для уставок и управления.
Всё это расчитано на то, чтобы дружить с PLK (у меня это Овен 110) или хостом (тот же OpenHAB), самостоятельно жить не планирует. Хотя, собственно, добавить туда термостабилизатор несложно.
Чтобы предупредить вопросы:
- 6 в тёплых полах
- 2 (воздух и сама ванна) в ванной комнате
- 7 около батарей отопления (температура воздуха)
- 1 на улице
- 2 около вытяжки (верх-низ, для детектирования работы кухонной плиты)
- по 2 около кондеев, вход-выход
- 2: на уровне лица и на потолке, чтобы знать градиент температуры по вертикали
А ещё хотелось бы на г/х водопровод, в серверный шкаф, на лестничную клетку и на хотя бы одну батарею отопления.
Изначально делать термодатчики я хотел на Овен МВА и терморезисторах pt1000, как у взрослых. И частично так оно и будет.
Но.
- 24 датчика это три МВА, это порядка 12 тыс руб.
- на каждый датчик отдельная пара. где-то хватает, где-то нет. в любом случае как-то расширить систему - малореально.
- сами терморезисторы стоят ощутимых денег.
Возник вопрос - а не 1wire ли это, и не старые добрые DS1820.
Начал я с того, что купил и собрал комплект NM8036 - ищет, отображает на идентификаторы и транслирует в 232 до 32 1wire термометров. Всё бы хорошо, но все аппноты по топологии 1wire говорят, что звезда не работает. Что понятно, в целом. Да и софт для NM8036 закрыт и глючен. В частности, девайс может тупо повиснуть, прочитав что-то незнакомое из компорта. Опять же, протокол - говно, даже контрольных сумм нет...
Встал вопрос - не взять ли из шкафа mega32, и не сделать ли на нём сканер восьми 1wire шин с трансляцией в rs485/modbus.
Как уже догадывается мой проницательный читатель, ответ на него покоится на гугл коде - https://code.google.com/p/smart-home-devices/
Что умеет:
- Сканировать до 32 1wire термометров и, опционально, один 2401, для самоидентификации.
- Всё это на восьми самостоятельных 1wire шинах, причём термометр можно перекидывать с шины на шину.
- Хранить в EEPROM карту отображения ROM ID в числовой идентификатор точки измерения температуры.
- Отдавать в модбас всё, что знает. Modbus ascii/rtu распознаётся автоматически, можно смешивать оба.
- Будет ещё DCON, если я не поленюсь его отладить.
- Всё настраивается через 1602 и UI на базе двух потенциометров и двух кнопок. Потенциометр вместо энкодера - я считаю, моя гениальная находка. Дико просто делать и программировать. Рекомендую.
- Есть отладочные функции (дамп буфера приёма, отображение счётчиков ошибок по шинам и т.п.)
- Про запас 4 ADC канала в тот же модбас
- Может быть, будут счётчики, или DI, или DO, или PWM - не знаю, пока.
- Может быть, будет UI в режиме control surface - трансляция потенциометров и кнопок в модбас, для уставок и управления.
Всё это расчитано на то, чтобы дружить с PLK (у меня это Овен 110) или хостом (тот же OpenHAB), самостоятельно жить не планирует. Хотя, собственно, добавить туда термостабилизатор несложно.