Подключение цифровых датчиков

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
znachok88
Сообщения: 151
Зарегистрирован: 18 июн 2019, 19:38

Re: Подключение цифровых датчиков

Сообщение znachok88 » 15 окт 2019, 20:16

https://photos.app.goo.gl/VLd1SSoL7YwTyGL19
https://photos.app.goo.gl/iae5nhzzmhqyBHKf9
https://photos.app.goo.gl/yQfAx7BcfgeAwCqw8
что делать ума не приложу...а есть вариант как проверить датчик?

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

Re: Подключение цифровых датчиков

Сообщение Andrey_B » 15 окт 2019, 20:44

У вас к P30 (SCL) ничего не подключено.
Черный провод подключен не к P30, а к GND, судя по обозначениям на модуле.
По поводу расположения джамперов - это к производителю данных модулей. У нас нет информации на этот счет.

znachok88
Сообщения: 151
Зарегистрирован: 18 июн 2019, 19:38

Re: Подключение цифровых датчиков

Сообщение znachok88 » 15 окт 2019, 21:12

может есть датчики менее геморные в подключении?

znachok88
Сообщения: 151
Зарегистрирован: 18 июн 2019, 19:38

Re: Подключение цифровых датчиков

Сообщение znachok88 » 15 окт 2019, 21:14

Alex_Jet писал(а):
15 окт 2019, 13:39
Так вы подключите вначале верно. PЗ0 -> SCL BMx280, P31 -> SDA BMx280. При I2C scan на шине должен быть виден BMx280. Хотя тут не просто реплика MegaD, а еще и прошивка допиленая.
в порте который SCL нет выбора датчика...если выбираешь SCL , то все ничего больше не появляется
https://photos.app.goo.gl/RxTFJKZE7wupTYRt8
насчет допиленой не скажу...Я недавно прошивал, то инструкция и ссылки были с этого сайта. Работает все кроме этого долбаного датчика

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

Re: Подключение цифровых датчиков

Сообщение Andrey_B » 15 окт 2019, 21:48

На тех фотографиях, что вы публиковали, ни разу не было видно корректного подключения к портам P30 и P31.
Очень трудно запутаться в 4-х проводах, но, выходит, возможно...
У порта, настроенного как SCL, ничего и не должно "появляться". Это линия тактирования, и она может быть общей для нескольких I2C-устройств.
Никакой допиленной прошивки не существует. Попробуйте обратиться за саппортом к производителю и продавцу этого модуля. Возможно, вопрос решится быстрее.

Andry
Сообщения: 213
Зарегистрирован: 23 мар 2017, 10:41

Re: Подключение цифровых датчиков

Сообщение Andry » 15 окт 2019, 23:14

По фото ж видно что p30 не подключен.

znachok88
Сообщения: 151
Зарегистрирован: 18 июн 2019, 19:38

Re: Подключение цифровых датчиков

Сообщение znachok88 » 20 окт 2019, 01:11

Доброй ночи. Подключил таки Я BME/BMP280 к моноблоку 2561, показывает температуру и влажность...привязал в мажордомо к свойству в комнате...
Вопрос: как часто MegaD опрашивает датчик?(если вообще опрашивает)
P.S.большое спасибо всем кто тыкал меня носом в мои ошибки, при подключении

amgstone
Сообщения: 47
Зарегистрирован: 28 янв 2019, 19:07

Re: Подключение цифровых датчиков

Сообщение amgstone » 20 окт 2019, 03:26

znachok88 писал(а):
14 окт 2019, 21:44
у меня тоже такое выдает...что вы сделали что бы это победить?
Пока не переулючил все провода заново тоже нічего не получялось, проблема была в контакте.

znachok88
Сообщения: 151
Зарегистрирован: 18 июн 2019, 19:38

Re: Подключение цифровых датчиков

Сообщение znachok88 » 21 окт 2019, 08:38

а как вы опрашиваете эти датчики? Как я понимаю в мажордомо метод и с цыкла потом опрос...но не грузит ли это малину(на которой сервер) и как часто считается адекватным опрашивать?
Или мега сама опрашивает, но как часто? есть где то описание?

Ruslan
Сообщения: 2184
Зарегистрирован: 06 янв 2014, 20:44

Re: Подключение цифровых датчиков

Сообщение Ruslan » 21 окт 2019, 10:12

znachok88 писал(а):
21 окт 2019, 08:38
а как вы опрашиваете эти датчики? Как я понимаю в мажордомо метод и с цыкла потом опрос...но не грузит ли это малину(на которой сервер) и как часто считается адекватным опрашивать?
Все правильно понимаете. Опрашивать датчики чаще, чем раз в 5 минут вряд ли имеет смысл. Чтобы, к примеру, получить значение влажности с вашего BMP280, в методе должно быть:

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

$Hum = file_get_contents("http://192.168.0.14/sec/?pt=31&scl=30&i2c_dev=bmx280&i2c_par=2");
setGlobal('Имя_вашего_объекта.Имя_вашего_свойства_для_влажности', $Hum);
Для запуска этого метода раз в 5 минут можете записать в «onNewMinute» (Панель управления --> ОБЪЕКТЫ --> Объекты --> [класс] Timer --> ClockChime --> onNewMinute) такой код (ниже строки «$m=date('i',time());»)

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

if ($m%5 == 0) {callMethod("Имя_вашего_объекта.Имя_метода");}
Для сервера все это не является серьезной нагрузкой. Основная нагрузка будет ложиться на файловую систему и работу СУБД, если датчиков много. Но мало мальски производительный сервер должен легко с этим справиться.
znachok88 писал(а):
21 окт 2019, 08:38
Или мега сама опрашивает, но как часто? есть где то описание?
Мега может быть внутри себя что-то и опрашивает (например, чтобы значение выдать сразу по запросу сервера, не дожидаясь ответа датчика), но для нас главное, что без запроса сервера Мега "вовне" эти значения не передает.

znachok88
Сообщения: 151
Зарегистрирован: 18 июн 2019, 19:38

Re: Подключение цифровых датчиков

Сообщение znachok88 » 21 окт 2019, 10:30

Ruslan писал(а):
21 окт 2019, 10:12
znachok88 писал(а):
21 окт 2019, 08:38
а как вы опрашиваете эти датчики? Как я понимаю в мажордомо метод и с цыкла потом опрос...но не грузит ли это малину(на которой сервер) и как часто считается адекватным опрашивать?
Все правильно понимаете. Опрашивать датчики чаще, чем раз в 5 минут вряд ли имеет смысл. Чтобы, к примеру, получить значение влажности с вашего BMP280, в методе должно быть:

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

$Hum = file_get_contents("http://192.168.0.14/sec/?pt=31&scl=30&i2c_dev=bmx280&i2c_par=2");
setGlobal('Имя_вашего_объекта.Имя_вашего_свойства_для_влажности', $Hum);
Для запуска этого метода раз в 5 минут можете записать в «onNewMinute» (Панель управления --> ОБЪЕКТЫ --> Объекты --> [класс] Timer --> ClockChime --> onNewMinute) такой код (ниже строки «$m=date('i',time());»)

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

if ($m%5 == 0) {callMethod("Имя_вашего_объекта.Имя_метода");}
Для сервера все это не является серьезной нагрузкой. Основная нагрузка будет ложиться на файловую систему и работу СУБД, если датчиков много. Но мало мальски производительный сервер должен легко с этим справиться.
znachok88 писал(а):
21 окт 2019, 08:38
Или мега сама опрашивает, но как часто? есть где то описание?
Мега может быть внутри себя что-то и опрашивает (например, чтобы значение выдать сразу по запросу сервера, не дожидаясь ответа датчика), но для нас главное, что без запроса сервера Мега "вовне" эти значения не передает.
Спасибо за толкование. Вот теперь знаю что делать:) Спасибо!!!

znachok88
Сообщения: 151
Зарегистрирован: 18 июн 2019, 19:38

Re: Подключение цифровых датчиков

Сообщение znachok88 » 21 окт 2019, 10:32

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

znachok88
Сообщения: 151
Зарегистрирован: 18 июн 2019, 19:38

Re: Подключение цифровых датчиков

Сообщение znachok88 » 22 окт 2019, 18:24

Ruslan писал(а):
21 окт 2019, 10:12
znachok88 писал(а):
21 окт 2019, 08:38
а как вы опрашиваете эти датчики? Как я понимаю в мажордомо метод и с цыкла потом опрос...но не грузит ли это малину(на которой сервер) и как часто считается адекватным опрашивать?
Все правильно понимаете. Опрашивать датчики чаще, чем раз в 5 минут вряд ли имеет смысл. Чтобы, к примеру, получить значение влажности с вашего BMP280, в методе должно быть:

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

$Hum = file_get_contents("http://192.168.0.14/sec/?pt=31&scl=30&i2c_dev=bmx280&i2c_par=2");
setGlobal('Имя_вашего_объекта.Имя_вашего_свойства_для_влажности', $Hum);
Для запуска этого метода раз в 5 минут можете записать в «onNewMinute» (Панель управления --> ОБЪЕКТЫ --> Объекты --> [класс] Timer --> ClockChime --> onNewMinute) такой код (ниже строки «$m=date('i',time());»)

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

if ($m%5 == 0) {callMethod("Имя_вашего_объекта.Имя_метода");}
Для сервера все это не является серьезной нагрузкой. Основная нагрузка будет ложиться на файловую систему и работу СУБД, если датчиков много. Но мало мальски производительный сервер должен легко с этим справиться.
znachok88 писал(а):
21 окт 2019, 08:38
Или мега сама опрашивает, но как часто? есть где то описание?
Мега может быть внутри себя что-то и опрашивает (например, чтобы значение выдать сразу по запросу сервера, не дожидаясь ответа датчика), но для нас главное, что без запроса сервера Мега "вовне" эти значения не передает.
попробывал на основе вашего совета создать общий метод( родительский класс)
Метод родителского класса с кодом:
$Hum = file_get_contents("http://".$this->getProperty('ipAddress')."/".$this->getProperty('Password')."/?pt=".$this->getProperty('pt')."&scl=".$this->getProperty('scl')."&i2c_dev=bmx280&i2c_par=2");
$Temp = file_get_contents("http://".$this->getProperty('ipAddress')."/".$this->getProperty('Password')."/?pt=".$this->getProperty('pt')."&scl=".$this->getProperty('scl')."&i2c_dev=bmx280&i2c_par=1");
$linkr=$this->getProperty('linkedRoom');
sg("$linkr.temperature",$Temp);
sg("$linkr.humidity",$Hum);

в свойствах указаны ip, pass, pt, scl
но эта скотина почему то выводит не 2 значения, а весь интерфейс датчика:(
https://photos.app.goo.gl/EUDKec7MxizyKapT7
где ошибка?

Ruslan
Сообщения: 2184
Зарегистрирован: 06 янв 2014, 20:44

Re: Подключение цифровых датчиков

Сообщение Ruslan » 22 окт 2019, 18:56

znachok88 писал(а):
22 окт 2019, 18:24
...
где ошибка?
На первый беглый взгляд синтаксис вроде правильный. Но есть ощущение, что присутствует ошибка в части строки после параметра "pt". Поэтому и возникает такой эффект, вместо считывания значения с датчика.
Возможно, в свойство "scl" вписаны некорректные данные.
Попробуйте для выяснения причины посмотреть на формируемый запрос, временно добавив say:

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

say("http://".$this->getProperty('ipAddress')."/".$this->getProperty('Password')."/?pt=".$this->getProperty('pt')."&scl=".$this->getProperty('scl')."&i2c_dev=bmx280&i2c_par=2");
В логе Алисы появится полная строка запроса.
Вот эту полную строку запроса нужно выполнить из адресной строки браузера. Сразу будет видно, есть ошибка или нет.
А потом надо сравнить эту строку с эталонной ("http://192.168.0.14/sec/?pt=31&scl=30&i ... &i2c_par=2"), разумеется, с поправкой на значения ваших свойств.
Отладка она такая... Ошибка обязательно куда-нибудь вкрадется....

Ответить