[Модуль] MegaD (megad)

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Chainik
Сообщения: 1463
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Модуль "MegaD"

Сообщение Chainik » Вт фев 27, 2018 9:39 pm

Так датчик у вас по факту HTU21D?
condor77
Сообщения: 36
Зарегистрирован: Пн окт 30, 2017 9:54 am
Благодарил (а): 8 раз
Поблагодарили: 2 раза

Re: Модуль "MegaD"

Сообщение condor77 » Вт фев 27, 2018 9:54 pm

Да он самый!
Chainik
Сообщения: 1463
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Модуль "MegaD"

Сообщение Chainik » Вт фев 27, 2018 10:03 pm

Ну тогда никаких проблем нет. Датчик поддерживается на уровне прошивки.

Почитайте ст.82-83 этой ветки. Правда, там мы "боремся" с датчиком BME280. В общем все тоже самое по аналогии (только команды, конечно, должны быть для HTU21D и брать их надо отсюда: https://ab-log.ru/smart-house/ethernet/megad-2561).

Если что не получится, пишите. Победим.
condor77
Сообщения: 36
Зарегистрирован: Пн окт 30, 2017 9:54 am
Благодарил (а): 8 раз
Поблагодарили: 2 раза

Re: Модуль "MegaD"

Сообщение condor77 » Вт фев 27, 2018 10:10 pm

Насколько я понял он поддерживается на уровне прошивки в контроллере MegaD-2561. Но у меня MegaD-328 с прошивкой "3.57_beta"
Chainik
Сообщения: 1463
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Модуль "MegaD"

Сообщение Chainik » Вт фев 27, 2018 10:23 pm

Да, это существенная поправка. Вроде бы MegaD-328 работа с I2C прямыми get-запросами не поддерживается. Тогда надо будет пользоваться библиотекой I2C-PHP и драйвером для I2C-PHP (ссылку я приводил выше). Там же описан механизм использования.

Сам таким макаром датчики не запускал. Попробуйте запустить. Если не "заведется" надо будет поспрашивать у более сведующих, куда и как это хозяйство правильно "засунуть".
condor77
Сообщения: 36
Зарегистрирован: Пн окт 30, 2017 9:54 am
Благодарил (а): 8 раз
Поблагодарили: 2 раза

Re: Модуль "MegaD"

Сообщение condor77 » Вт фев 27, 2018 10:36 pm

Дак вопрос так и стоял - куда и как это хозяйство правильно "засунуть"? Сам я так и не разобрался. Извиняюсь за исходно неверные и не полные данные вопроса.
Chainik
Сообщения: 1463
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Модуль "MegaD"

Сообщение Chainik » Вт фев 27, 2018 10:56 pm

Если я правильно понимаю, запускать надо такой код (порты, конечно, должны быть ваши):

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

define("SCL", "8");
define("SDA", "9");
define("MD", "http://192.168.0.14/sec/?");

require_once("mod_i2c_htu21d.php");

$temperature = get_htu21d_temperature();
echo "Temperature: ".$temperature;

$humidity = get_htu21d_humidity();
echo "Humidity: ".$humidity;

$hum_compensated = $humidity + (25 - $temperature) * -0.15;
echo "Humidity (compensated): ".$hum_compensated;
Внутри скрипта запускается драйвер mod_i2c_htu21d.php.
Вопрос к сообществу №1, куда положить файл драйвера, чтобы происходило обращение к нему из кода?

Внутри файла драйвера происходит обращение к файлу библиотеки I2C mod_i2c_lib.php.
Вопрос к сообществу №2 аналогичен, куда положить файл библиотеки, чтобы происходило обращение к нему из кода файла драйвера?
condor77
Сообщения: 36
Зарегистрирован: Пн окт 30, 2017 9:54 am
Благодарил (а): 8 раз
Поблагодарили: 2 раза

Re: Модуль "MegaD"

Сообщение condor77 » Вт фев 27, 2018 11:03 pm

Да да. Вышеозначенный код я запихнул в сценарий "GetТempHumMegaD" и получил при его выполнении -
Temperature: CRC error - ff Humidity: CRC error - ff Humidity (compensated): -3.75
При этом файлы библиотеки и драйвера положил в ...\_majordomo\htdocs.
Дальше мысли кончились! Тупик!
Chainik
Сообщения: 1463
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Модуль "MegaD"

Сообщение Chainik » Вт фев 27, 2018 11:21 pm

Может быть тогда заменить в коде метода путь к файлу драйвера на:

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

require_once("./htdocs/mod_i2c_htu21d.php"); 
Еще, возможно, в файле драйвера тоже аккуратно поменять путь к фалу библиотеки:

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

require_once("./htdocs/mod_i2c_lib.php"); 
Вдруг поможет.
condor77
Сообщения: 36
Зарегистрирован: Пн окт 30, 2017 9:54 am
Благодарил (а): 8 раз
Поблагодарили: 2 раза

Re: Модуль "MegaD"

Сообщение condor77 » Ср фев 28, 2018 10:42 am

Попробовал и получил:
Warning: require_once(./htdocs/mod_i2c_htu21d.php): failed to open stream: No such file or directory in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(142) : eval()'d code on line 8

Fatal error: require_once(): Failed opening required './htdocs/mod_i2c_htu21d.php' (include_path='.;C:\_majordomo\server\php\PEAR') in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(142) : eval()'d code on line 8
Ответить