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

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
empenoso
Сообщения: 1039
Зарегистрирован: 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 КБ) 4278 просмотров
Еще есть три DS18B20: на кухне, на батареи спальни, и в гостиной. Два работают, а когда подключаю в гостиной получаю отрицательные значения температуры (первый похоже на кухне, если в гостиной убрать - он нормально показывает):

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

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

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 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
Сообщения: 1039
Зарегистрирован: 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
Сообщения: 1039
Зарегистрирован: 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
Администратор
Сообщения: 5327
Зарегистрирован: 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
Сообщения: 1039
Зарегистрирован: 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
Администратор
Сообщения: 5327
Зарегистрирован: 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
Сообщения: 1039
Зарегистрирован: 11 ноя 2015, 08:03
Откуда: Пермь

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

Сообщение empenoso » 18 янв 2018, 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 КБ) 4097 просмотров

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

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

Сообщение Andrey_B » 18 янв 2018, 12:24

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

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

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

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

Сообщение empenoso » 18 янв 2018, 22:33

Andrey_B писал(а):
18 янв 2018, 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
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

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

Сообщение Alex_Jet » 18 янв 2018, 23:02

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

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

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

Сообщение empenoso » 19 янв 2018, 07:14

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

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

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

Сообщение empenoso » 19 янв 2018, 07:33

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

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

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

Сообщение Alex_Jet » 19 янв 2018, 07:39

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

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

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

Сообщение Andrey_B » 19 янв 2018, 11:39

empenoso писал(а):
18 янв 2018, 22:33
Три витые пары до трех датчиков DS18B20 звездой.
Ну, теперь понятно.
Вот, что пишет Maxim по поводу звезды.
===
Precautions with Star Topologies
Testing has shown that unswitched star-type network topologies (i.e., those with several branches diverging at the master) are the most difficult to make reliable. The junction of various branches presents highly mismatched impedances; reflections from the end of one branch can travel distances equal to nearly the weight of the network (rather than the radius) and cause data errors. For this reason, the unswitched star topology is not recommended, and no guarantees can be made about its performance.
===

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

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

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

Сообщение empenoso » 26 янв 2018, 15:42

Дисплей корректно заработал https://www.ab-log.ru/forum/viewtopic.p ... 440#p30634 - проблема в контактах как обычно была.
Работающий дисплей в интерьере: https://www.ab-log.ru/forum/viewtopic.p ... 720#p31079
А на проблему "85" DS18B20 думаю подзабить, потому что до опенхаба эта цифра не доходит, поскольку он ее отбрасывает при парсинге.

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

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

Сообщение empenoso » 28 янв 2018, 13:59

Последний раз редактировалось empenoso 24 авг 2018, 08:34, всего редактировалось 1 раз.

OlegJktu84
Сообщения: 651
Зарегистрирован: 16 фев 2016, 19:52

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

Сообщение OlegJktu84 » 29 янв 2018, 12:36

по звуку - по цене интересное решение. Вроде с аурдино у амперки был пример на русском...
Если соберете отпишитесь.

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

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

Сообщение empenoso » 29 янв 2018, 16:00

OlegJktu84 писал(а):
29 янв 2018, 12:36
по звуку - по цене интересное решение. Вроде с аурдино у амперки был пример на русском...
Если соберете отпишитесь.
Подключил снова вот этот датчик к меге: https://www.ab-log.ru/forum/viewtopic.p ... 420#p28412 и рядом микрофон https://www.ab-log.ru/forum/viewtopic.p ... 140#p23749 , но теперь просто пересчитываю по предложенной формуле dB = 20 x log10(Amplitude) - zero_offset ( https://forum.arduino.cc/index.php?topic=376308.0 ) - вроде что-то правдоподобное показывают, но надо пару дней понаблюдать.

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

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

Сообщение empenoso » 31 янв 2018, 07:06

OlegJktu84 писал(а):
29 янв 2018, 12:36
Если соберете отпишитесь.
Вот картинка по звуку с двух этих источников (https://www.ab-log.ru/forum/viewtopic.p ... 170#p31138). с USB микрофона как будто точнее (?) выглядит даже.
chart.png
chart.png (72.53 КБ) 3899 просмотров

Ответить