Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
empenoso
Сообщения: 710
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение empenoso » 05 янв 2018, 15:53

Поставил MegaD-2561 и с I2C датчиками совсем запутался.
Фактически у меня две витые пары - одна идет на балкон, вторая в коридор на выключатель - "выключить всё".
Хочу использовать датчики: BME280 (температура / атмосферное давление / влажность), MAX44009 (освещенность), HTU21D (температура / влажность), SSD1306 (OLED-дисплей). Два первых датчика на улице, два вторых в коридоре.

Если все датчики подключаю на одну шину SDA, SCL - ничего не работает (показания некорректны) хотя они все через i2c scan видятся (кроме BME280, вместо него BME180 ставлю).
Если использую общий порт SCL, а SDA разношу по витым парам, то аналогично корректной работы нет. Поэтому разнес SDA, SCL на четыре порта - по два на витую пару.

На улице если подключаю BME180 - температура давления - какие-то миллионные цифры значения, если подключаю BME280 - просто пусто - ничего не находит и через i2c scan.
В коридоре - HTU21D вроде заработал, но экран SSD1306 глючит:
IMG_20180105_160757.jpg
IMG_20180105_160757.jpg (157.44 КБ) 235 просмотров
Еще есть три DS18B20: на кухне, на батареи спальни, и в гостиной. Два работают, а когда подключаю в гостиной получаю отрицательные значения температуры (первый похоже на кухне, если в гостиной убрать - он нормально показывает):

Код: Выделить всё

4fd169070000:-0.06;ff04f2711605:23.06;fff9b7731604:43.81
Текущая схема подключения:
2018_01_MegaD схемы_в2.jpg
2018_01_MegaD схемы_в2.jpg (177.72 КБ) 235 просмотров

Andrey_B
Администратор
Сообщения: 3275
Зарегистрирован: 18 мар 2011, 12:06

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение Andrey_B » 05 янв 2018, 17:27

Очевидно, что есть проблемы с шиной электрического характера.
Прежде всего, я бы сперва убедился, что каждый датчик работает в отдельности. А затем подключал бы по одному.
Если не работает по отдельности или не работает при подключении нескольких датчиков.
1. Ответвления от шины должны быть минимальными.
2. Как говорилось в соседней теме попробовать для подключения SDA и SCL использовать свитые с землей пары.
3. Проверить, не проходит ли линия рядом с источником сильных электромагнитных помех.
4. Если линия превышает 10-20 метров попробовать снизить номинал подтяжки с помощью внешних резисторов (тогда резисторы будут работать параллельно и общий номинал будет меньше). Это актуально и для ситуации с DS18B20.

BME180 я не тестировал. В основной статье нигде не заявлена его поддержка.
Странно, что не виден BME280. Я писал, что никогда не сталкивался с неработающими датчиками этого типа. Но всякое возможно.

На фото SSD1306 видна, вероятно, помеха/сбой при передаче данных по цифровой шине.

У себя я использую SSD1306 (правда, висит от на шине один) с кабелем UTP длиной около 7 метров.
UTP при этом лежит вплотную на кабеле по которому проходят токи порядка 20А. Сбоев не видел ни разу. А работает давно.

empenoso
Сообщения: 710
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение empenoso » 06 янв 2018, 18:29

Andrey_B писал(а):
05 янв 2018, 17:27
Очевидно, что есть проблемы с шиной электрического характера.
Прежде всего, я бы сперва убедился, что каждый датчик работает в отдельности. А затем подключал бы по одному.
Если не работает по отдельности или не работает при подключении нескольких датчиков.
1. Ответвления от шины должны быть минимальными.
2. Как говорилось в соседней теме попробовать для подключения SDA и SCL использовать свитые с землей пары.
3. Проверить, не проходит ли линия рядом с источником сильных электромагнитных помех.
Для четырех датчиков заработала следующая конфигурация:
1: Темп/влажн на улице HTU21D
2: Освещ. улицы MAX44009;
3: Темп/влажн в коридоре HTU21D
4: Диспл. SSD1306
Питание (+ и -), SCL - общее для всех. SDA один порт для HTU21D и MAX44009 на улице. Другой SDA порт для HTU21D и SSD1306. Если на улице заменяю HTU21D на точно рабочий BMP180 - BMP180 ничего не показывает хотя на отдельном порту работает.
Andrey_B писал(а):
05 янв 2018, 17:27
4. Если линия превышает 10-20 метров попробовать снизить номинал подтяжки с помощью внешних резисторов (тогда резисторы будут работать параллельно и общий номинал будет меньше). Это актуально и для ситуации с DS18B20.
Да, спасибо большое - совет помог они заработали - в разрыв провода который идет на центральные ножки (DQ) DS18B20, подключил резистор 4,7кОм от порта питания 3,3В. Единственное он сначала пишет:

Код: Выделить всё

4fd169070000:85.00;ff04f2711605:85.00;fff9b7731604:85.00
а спустя некоторое время (не так и быстро), выдает температуру:

Код: Выделить всё

4fd169070000:20.37;ff04f2711605:22.25;fff9b7731604:44.93
Andrey_B писал(а):
05 янв 2018, 17:27
BME180 я не тестировал. В основной статье нигде не заявлена его поддержка.
Странно, что не виден BME280. Я писал, что никогда не сталкивался с неработающими датчиками этого типа. Но всякое возможно.
Это я опечатался, датчик BMP180. Отдельно от всех остальных BMP180 работает, BME280 - даже сканером не находится, видимо все таки нерабочий.
Andrey_B писал(а):
05 янв 2018, 17:27
На фото SSD1306 видна, вероятно, помеха/сбой при передаче данных по цифровой шине.

У себя я использую SSD1306 (правда, висит от на шине один) с кабелем UTP длиной около 7 метров.
UTP при этом лежит вплотную на кабеле по которому проходят токи порядка 20А. Сбоев не видел ни разу. А работает давно.
При монтаже отломился нижний край дисплейчика - связываю с этим, а целого нет чтобы проверить.

empenoso
Сообщения: 710
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение empenoso » 06 янв 2018, 21:48

Andrey_B писал(а):
05 янв 2018, 17:27
4. Если линия превышает 10-20 метров попробовать снизить номинал подтяжки с помощью внешних резисторов (тогда резисторы будут работать параллельно и общий номинал будет меньше). Это актуально и для ситуации с DS18B20.
В разрыв провода который идет от центральных ножек (DQ) DS18B20 на порт IN MegaD-2561, подключил резистор 4,7кОм от порта питания 3,3В.
И все-таки не совсем корректно работает - то правильные значения, то 85 градусов отображает:

Код: Выделить всё

4fd169070000:20.25;ff04f2711605:22.18;fff9b7731604:44.81

Код: Выделить всё

4fd169070000:85.00;ff04f2711605:85.00;fff9b7731604:85.00

Andrey_B
Администратор
Сообщения: 3275
Зарегистрирован: 18 мар 2011, 12:06

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение Andrey_B » 06 янв 2018, 22:03

85.00 - это значение, которое датчик отдает мастеру после старта, если запрос на конвертацию температуры еще не поступал, и логика датчика еще не содержит в памяти реальной температуры. Исходя из этого напрашивается вывод - датчики перезагружаются. По какой причине - вопрос. Вернее, таких причин может быть очень много.
Можно также попробовать перед опросом сперва отправить команду конвертации.
Пример: http://192.168.0.14/sec/?pt=32&cmd=conv
Это может и не решит проблему перезагрузки датчиков, но я думаю должно значительно уменьшить вероятность считывания значения 85.00.

empenoso
Сообщения: 710
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение empenoso » 08 янв 2018, 16:45

Andrey_B писал(а):
06 янв 2018, 22:03
85.00 - это значение, которое датчик отдает мастеру после старта, если запрос на конвертацию температуры еще не поступал, и логика датчика еще не содержит в памяти реальной температуры. Исходя из этого напрашивается вывод - датчики перезагружаются. По какой причине - вопрос. Вернее, таких причин может быть очень много.
Можно также попробовать перед опросом сперва отправить команду конвертации.
Пример: http://192.168.0.14/sec/?pt=32&cmd=conv
Это может и не решит проблему перезагрузки датчиков, но я думаю должно значительно уменьшить вероятность считывания значения 85.00.
Пересчитал значение резистора для центральных ножек (DQ) DS18B20 по формуле из того расчета, что требуется резистор 4,7кОм для 5 вольт, а мега выдает 3,5 вольта и заменил его:
R=U/I
I = 0,0011 А для 5 вольт
R для 3,5 вольт = 3,29 кОм

Результат правда примерно тот же самый - значения 85 часто, реальные значения - как получится :( .
http://192.168.88.60/sec/?pt=7&cmd=conv http://192.168.88.60/sec/?pt=7&cmd=list

Код: Выделить всё

4fd169070000:85.00;ff04f2711605:85.00;fff9b7731604:85.00

Andrey_B
Администратор
Сообщения: 3275
Зарегистрирован: 18 мар 2011, 12:06

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение Andrey_B » 08 янв 2018, 17:03

Эти расчеты были лишними.
Если датчики подключены к цифровым портам XT2 или MegaD-14-IN, то внешний резистор работал параллельно штатному, а значит реальное сопротивление R1*R2/(R1+R2).
Резистор на длинных линиях подбирается исходя из возможности обеспечить нужные тайминги (тайм-слоты) для работы протокола, и Maxim говорит, что его номинал в отдельных случаях может доходить до 1кОма.
Проблема 85 градусов (при условии всегда четкого считывания адресов) все же кроется не в подтяжке. Если датчики сидят на паразитном питании, то соединена ли нога Vdd с землей? Как поведут себя датчики, если подать питание?
Если питание подается, то откуда оно берется, и как поведут себя датчики, если переключить на паразитное питание?

empenoso
Сообщения: 710
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение empenoso » Вчера, 09:14

Andrey_B писал(а):
08 янв 2018, 17:03
Эти расчеты были лишними.
Если датчики подключены к цифровым портам XT2 или MegaD-14-IN, то внешний резистор работал параллельно штатному, а значит реальное сопротивление R1*R2/(R1+R2).
Резистор на длинных линиях подбирается исходя из возможности обеспечить нужные тайминги (тайм-слоты) для работы протокола, и Maxim говорит, что его номинал в отдельных случаях может доходить до 1кОма.
Проблема 85 градусов (при условии всегда четкого считывания адресов) все же кроется не в подтяжке. Если датчики сидят на паразитном питании, то соединена ли нога Vdd с землей? Как поведут себя датчики, если подать питание?
Если питание подается, то откуда оно берется, и как поведут себя датчики, если переключить на паразитное питание?
Адреса считываются всегда, на текущий момент DS18B20 на паразитном питании, нога Vdd соединена с землей. Настроил графики. Вот такая картина:
123.png
123.png (59.71 КБ) 54 просмотра

Andrey_B
Администратор
Сообщения: 3275
Зарегистрирован: 18 мар 2011, 12:06

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение Andrey_B » Вчера, 12:24

1. Всегда можно приделать костыль в виде фильтрации на сервере 85 градусов.
2. Нужно попробовать подключить к датчикам питание и посмотреть, что будет.

Ради статистики. Какова общая длина кабеля? Кабель UTP? Для данных и земли используется свитая пара? Сколько датчиков висит на шине? Какова длина ответвлений от шины к датчикам? Vdd с землей соединена непосредственно у каждого датчика?

empenoso
Сообщения: 710
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение empenoso » Вчера, 22:33

Andrey_B писал(а):
Вчера, 12:24
1. Всегда можно приделать костыль в виде фильтрации на сервере 85 градусов.
2. Нужно попробовать подключить к датчикам питание и посмотреть, что будет.

Ради статистики. Какова общая длина кабеля? Кабель UTP? Для данных и земли используется свитая пара? Сколько датчиков висит на шине? Какова длина ответвлений от шины к датчикам? Vdd с землей соединена непосредственно у каждого датчика?
Костыль я конечно прикрутил и теперь значение 85 не попадает в openHAB:

Код: Выделить всё

Number P7_DS18B20_Kitchen		"Темп. кухня [%.2f °C]" 		         <temperature>  (Kitchen, Indoor)			{ http="<[http://192.168.88.60/sec/?pt=7&cmd=list:60000:REGEX(.*?ff4902731604:(?!85)(.*?);(.*))]" }	
Number P7_DS18B20_livingroom	"Темп. гостиная [%.2f °C]"	             <temperature>	(Living_room, Indoor)		{ http="<[http://192.168.88.60/sec/?pt=7&cmd=list:60000:REGEX(.*?ff04f2711605:(?!85)(.*?);(.*))]" }	
Number P7_DS18B20_Heat_bedroom	"Темп. бат. спальни [%.2f °C]"           <heating>   	(Pipes)	                	{ http="<[http://192.168.88.60/sec/?pt=7&cmd=list:60000:REGEX(.*?fff9b7731604:(?!85)(.*?))]" }	
Три витые пары до трех датчиков DS18B20 звездой. Если два - показания без 85, цепляю третий датчик - сразу 85 появляется. Питание не пробовал еще переключать.

Alex_Jet
Сообщения: 574
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение Alex_Jet » Вчера, 23:02

empenoso писал(а):
Вчера, 22:33
Три витые пары до трех датчиков DS18B20 звездой. Если два - показания без 85, цепляю третий датчик - сразу 85 появляется. Питание не пробовал еще переключать.
А сколько метров каждый сегмент UTP? Возможно внешнее питание спасет ситуацию.
Одну витую пару не было возможности кинуть "по кругу"? Надобность в 1-wire есть ли или не хватает свободных портов для подключения DS по отдельности?
Сразу скажу - в соединениях скотчлоки и dupont - это ЗЛО, которое надо исключать. Лучше всего пайка!

empenoso
Сообщения: 710
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение empenoso » 35 минут назад

Alex_Jet писал(а):
Вчера, 23:02
empenoso писал(а):
Вчера, 22:33
Три витые пары до трех датчиков DS18B20 звездой. Если два - показания без 85, цепляю третий датчик - сразу 85 появляется. Питание не пробовал еще переключать.
А сколько метров каждый сегмент UTP? Возможно внешнее питание спасет ситуацию.
Одну витую пару не было возможности кинуть "по кругу"? Надобность в 1-wire есть ли или не хватает свободных портов для подключения DS по отдельности?
Сразу скажу - в соединениях скотчлоки и dupont - это ЗЛО, которое надо исключать. Лучше всего пайка!
Каждый отрезок, а их три, примерно 7-9 метров. когда делали несколько лет назад и не было понятно что они шиной должны быть, а не звездой. Свободные порты есть, но надеялся именно на шину для экономии портов.

empenoso
Сообщения: 710
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение empenoso » 16 минут назад

Поставил связку InfluxDB+Grafana (https://community.openhab.org/t/influxd ... hing/13761) для хранения данных - весьма приятное решение.
Есть режим тепловой карты (heatmap) - весьма наглядно.
Можно настроить чтобы например смотреть использование выключателей по часам - все включенные вписываются в один бар, и сразу понятно когда и что использовалось.
Grafana.jpg
Grafana.jpg (186.68 КБ) 3 просмотра
Grafana-1.png
Grafana-1.png (16.25 КБ) 3 просмотра
Grafana-2.jpg
Grafana-2.jpg (143.98 КБ) 3 просмотра

Alex_Jet
Сообщения: 574
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: Арендная квартира: MegaD, openHAB, датчик шума и приборы учета

Сообщение Alex_Jet » 10 минут назад

Да уж, с 3-мя параллельными сегментами емкость получается большая - порядка 1500пФ по 1-wire линии. Отсюда и проблемы. Попробуйте выполнить рекомендации, которые я выложил тут - https://www.ab-log.ru/forum/viewtopic.p ... 366#p30183

Ответить