Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 10 мар 2017, 17:45

Vadim писал(а):+, -, проблемы можно обсуждать долго, тут более важно видение вопроса Андреем.
Этот вопрос на самом деле уже обсуждался.
Passive PoE добавить можно, но для этого необходимо использовать другой RJ-45 разъем с поддержкой PoE.
Эти разъемы менее распространены и дороже, а требуется эта функция единицам. Если будет возможность сохранить стоимость, но добавить PoE, тогда сделаем.

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

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 10 мар 2017, 17:50

Alex_Jet писал(а):1. Чем в итоге отличается Si7021 от его "аналога" HTU21D в плане опроса температуры и влажности (сам не нашел времени чтобы с этим разобраться)?
2. Как Вы в программе определяете какой из датчиков подключен?
С точки зрения реализации в коде Si7021 мало чем отличается от HTU21D, но все же потребовались небольшие изменения, чтобы прошивка работала и с обоими датчиками.
Программа никак не определяет, какой именно датчик подключен.

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

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

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 10 мар 2017, 19:10

volt писал(а):Не правильно работает MegaD 2561 при пропадании из локальной сети сервера
http://ab-log.ru/files/File/megad-2561/ ... a7-hex.zip

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

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Alex_Jet » 10 мар 2017, 19:31

Andrey_B писал(а):- Добавлена поддержка датчика температуры/влажности Si7021 (в списке I2C-устройств выбрать HTU21D)
Андрей! Обновился. Но перестали адекватно сниматься данные с BMP180, подключенным на одну шину с SSD1306 и SI7021/HTU21D

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

Данные с датчика HTU21D
Температура: 27.28 °
Относительная влажность: 31.17 %
Относительная влажность (комп.): 31.512 %
Данные с датчика BMP180
Температура: 4294966802.4294967238 °
Атмосферное давление: 1.77 мм
Скрипт простой:

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

echo "<b>Данные с датчика HTU21D</b><br>\n";
$temp_htu21d = file_get_contents('http://192.168.12.21/sec/?pt=34&scl=35&i2c_dev=htu21d&i2c_par=1');
echo "Температура: $temp_htu21d &deg;<br>\n";
$hum_htu21d = file_get_contents('http://192.168.12.21/sec/?pt=34&scl=35&i2c_dev=htu21d');
echo "Относительная влажность: $hum_htu21d %<br>\n";
$hum_comp_htu21d = $hum_htu21d + (25 - $temp_htu21d) * -0.15;
echo "Относительная влажность (комп.): $hum_comp_htu21d %<br>\n";

echo "<b>Данные с датчика BMP180</b><br>\n";
$temp_bmp180 = file_get_contents('http://192.168.12.21/sec/?pt=34&scl=35&i2c_dev=bmp180&i2c_par=1');
echo "Температура: $temp_bmp180 &deg;<br>\n";
$pres_bmp180 = file_get_contents('http://192.168.12.21/sec/?pt=34&scl=35&i2c_dev=bmp180');
echo "Атмосферное давление: $pres_bmp180 мм<br>\n";
В iH все то же самое... подключить BMP180 на отдельную шину - не пробовал. MegaD перезагружал, с датчиков питание пробовал снимать.

А еще при сканировании шины вылазит какой-то не понятный адрес 0x0...:

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

0x0
0x72
0x78 - SSD1306
0x80 - HTU21D
0xec
0xee - BMP180
Адрес 0x72 - это TSL2561, а 0xec - BMP280.

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

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 10 мар 2017, 19:57

Alex_Jet, 0x0 - по этому адресу отвечает Si7021. Это, вероятно, нормально.
Все же из вашего сообщения не очень понятно - причина некорректных данных от BMP180 связана с обновлением прошивки или с тем, что вы прицепили на шину Si7021?

Kirill2L
Сообщения: 26
Зарегистрирован: 07 ноя 2016, 09:24

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Kirill2L » 11 мар 2017, 07:30

У меня такая же ситуация. Прошивка fw: 4.12b5. Прочитал что на шину i2c можно вешать несколько датчиков. Решил попробовать, посадил два датчика htu21d и bmp180. Получил следующее, если опрашивать с сервера то данные bmp180 не корректные:
pi@raspberrypi:/var/www/my $ php ./mod_dev_htu21d.php
Температура (гр. C): 20.88
Относительная влажность (%): 14.99
Относительная влажность (%, комп.): 14.372
pi@raspberrypi:/var/www/my $ php ./mod_dev_bmp180.php
Атмосферное давление (мм.рт.ст.): 739.43
Температура (гр. C): 12.2
Если спрашивать с контроллера, для bmp180 возвращает число 1.77
http://192.168.0.14/sec/?pt=11&scl=9&i2c_dev=htu21d - 14.36
http://192.168.0.14/sec/?pt=11&scl=9&i2c_dev=bmp180 - 1.77
Порты 9/11 в контроллере сконфигурены как NC, если это важно.
Как было до этого не знаю, поскольку пробовал впервые.

x13dev
Сообщения: 396
Зарегистрирован: 22 окт 2012, 11:40
Откуда: Бавария

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение x13dev » 11 мар 2017, 11:57

Если мне склероз не очень сильно изменяет, SI7021 во время преобразования занимает шину. Общаться в это время с другими датчиками проблематично.

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

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Alex_Jet » 11 мар 2017, 12:09

Andrey_B писал(а):Alex_Jet, 0x0 - по этому адресу отвечает Si7021. Это, вероятно, нормально.
Все же из вашего сообщения не очень понятно - причина некорректных данных от BMP180 связана с обновлением прошивки или с тем, что вы прицепили на шину Si7021?
При подключении si7021 я само собой отключил htu21d - у них ведь адреса совпадают!
Причина - именно в обновлении прошивки, поскольку на одной шине у меня давно сидят все указанные выше устройства. При возвращении на место htu21d - ситуация аналогичная. Поэтому проблема в прошивке.
x13dev писал(а):Если мне склероз не очень сильно изменяет, SI7021 во время преобразования занимает шину. Общаться в это время с другими датчиками проблематично.
Так php формирует синхронные последовательные запросы (запросил, получил ответ, далее запрашивает). Вот ih - да, асинхронный.
Будет время попробую на программной реализации I2C опросить.

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

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 11 мар 2017, 13:51

http://ab-log.ru/files/File/megad-2561/ ... a8-hex.zip

- Кое-что исправлено в работе с I2C-устройствами.

Да, при работе с BMP180 средствами только контроллера, в случае подключения датчика на одну шину с другими устройствами, необходимо обязательно настраивать порт как I2C/BMP180.
Только в этом случае контроллер считывает и записывает в память калибровочные коэффициенты.

Kirill2L
Сообщения: 26
Зарегистрирован: 07 ноя 2016, 09:24

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Kirill2L » 11 мар 2017, 16:29

Проверил, опрос bmp180 заработал корректно. Спасибо!

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

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Alex_Jet » 11 мар 2017, 19:39

Andrey_B писал(а):Да, при работе с BMP180 средствами только контроллера, в случае подключения датчика на одну шину с другими устройствами, необходимо обязательно настраивать порт как I2C/BMP180.
Только в этом случае контроллер считывает и записывает в память калибровочные коэффициенты.
Андрей! А как раньше работало? У меня с прошивкой 411beta6 (было до 412beta6) все датчики были на одной шине (htu21d, bmp180, bmp280, tsl2561, ssd1306), выбран был ssd1306 для его инициализации при старте. Средствами контроллера все правильно считывалось и с bmp180 и htu21d, только была 'моя' проблемка с зависанием контроллера, когда считывал в цикле температуру с htu21d.

Paradoxx_A
Сообщения: 70
Зарегистрирован: 25 июн 2016, 11:57

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Paradoxx_A » 11 мар 2017, 21:27

Коллеги, подскажите пожалуйста, как правильно вычленить значение давления из ответа меги, учитывая что температура меняется и разрядность может уползать (когда с минусом например). Перепробовал разные варианты, но чего то запутался совсем... Можно конечно сделать cut -c18-23, но уползет же...

DS> echo $bmp
temp:24.80/press:750.87


До этого в аналогичном ответе (но от другого датчика) использовал вот так и получал нужное значение...

DS> echo $htu21d
Temperature:4.97 Humidity:70.90 Humidity (compensated)>67.8955 End
DS> hum_out_htu21d=$(echo $htu21d | grep 'Humidity (compensated)' | cut -f2 -d">" | cut -f1 -d"E")
DS> echo $hum_out_htu21d
67.8955



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

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

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 11 мар 2017, 21:43

Alex_Jet писал(а):А как раньше работало?
Также. Для того, чтобы в EEPROM сохранились калибровочные коэффициенты, необходимо хотя бы один раз выбрать Dev: BMP180 и нажать кнопку "Save". Потом тип устройства можно поменять, если на шине висит SSD1306.
При обновлении прошивки с ключом --ee энергонезависимая память очистилась вместе с калибровочными коэффициентами. Поэтому причина не в версии прошивки. Просто установите снова BMP180, а затем верните SSD1306. Да, это нигде не описывалось. Да, можно было бы сканировать шину при старте устройства на предмет определенных датчиков, но этот вариант мне по ряду причин не нравится, хотя получилась бы полная автоматизация.

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

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 11 мар 2017, 21:54

Paradoxx_A писал(а):Коллеги, подскажите пожалуйста, как правильно вычленить значение давления из ответа меги
Командная строка?
Типа того?

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

 curl --silent 'http://192.168.0.14/sec/?pt=31&cmd=get' | awk -F':' '{print $3}'

Paradoxx_A
Сообщения: 70
Зарегистрирован: 25 июн 2016, 11:57

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Paradoxx_A » 11 мар 2017, 22:27

Andrey_B писал(а):
Paradoxx_A писал(а):Коллеги, подскажите пожалуйста, как правильно вычленить значение давления из ответа меги
Командная строка?
Типа того?

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

 curl --silent 'http://192.168.0.14/sec/?pt=31&cmd=get' | awk -F':' '{print $3}'
Вот такая

bmp=$(curl "http://192.168.0.14/sec/?pt=8&cmd=get")

Для температуры использую такие, все норм
heating_pipe_in=$(curl "http://192.168.0.14/sec/?pt=2&cmd=get" | cut -c6-12)

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

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 11 мар 2017, 22:30

Ну и...

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

bmp=$(curl --silent 'http://192.168.0.14/sec/?pt=31&cmd=get' | awk -F':' '{print $3}')
echo $bmp

Paradoxx_A
Сообщения: 70
Зарегистрирован: 25 июн 2016, 11:57

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Paradoxx_A » 11 мар 2017, 22:36

Andrey_B писал(а):Ну и...

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

bmp=$(curl --silent 'http://192.168.0.14/sec/?pt=31&cmd=get' | awk -F':' '{print $3}')
echo $bmp
DS> bmp=$(curl --silent 'http://192.168.0.14/sec/?pt=8&cmd=get' | awk -F':' '{print $3}')
DS> echo $bmp
751.08
DS>

Ого!
А для температуры?
Андрей, спасибо огромное!

PS Пошел гуглить, с такой командой еще не сталкивался...

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

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Andrey_B » 11 мар 2017, 22:43

Типа того?

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

raw=$(curl --silent 'http://192.168.0.14/sec/?pt=31&cmd=get')
bmp=$(echo $raw| awk -F':' '{print $3}')
temp=$(echo $raw| awk -F':' '{print $2}'|awk -F'/' '{print $1}')
echo $bmp
echo $temp

Paradoxx_A
Сообщения: 70
Зарегистрирован: 25 июн 2016, 11:57

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Paradoxx_A » 11 мар 2017, 22:46

Andrey_B писал(а):Типа того?

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

raw=$(curl --silent 'http://192.168.0.14/sec/?pt=31&cmd=get')
bmp=$(echo $raw| awk -F':' '{print $3}')
temp=$(echo $raw| awk -F':' '{print $2}'|awk -F'/' '{print $1}')
echo $bmp
echo $temp
Андрей - спасибо огромное и человеческое! Я 2 часа убил на чтение и пробы, а щас понял что как все просто. Буду изучать дальше...
Щас все что нужно!
СПАСИБО!

Vadim
Сообщения: 122
Зарегистрирован: 04 мар 2017, 17:38

Re: Прошивка MegaD-2561 (релизы, обсуждения, предложения)

Сообщение Vadim » 12 мар 2017, 19:36

MegaD-2561 (fw: 4.07b3)
После нескольких сохранений конфигурации порта на 14-IN контроллер перестал "отдавать" кнопку "Save".
Кнопка "Save" отсутствует только на этом порту.
Перезагрузка контроллера не помогла.
В другом браузере - аналогично.
На порту висит датчик DS18B20.
MD2561_14IN_1.jpg
MD2561_14IN_1.jpg (28.79 КБ) 3671 просмотр

Ответить