Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > CyberWrt

Результаты опроса: Как Вам проще и удобней настроить привязку своих датчи
Указать долготу и широту в настройках модуля? 22 59.46%
Настроить привязку на сайте "Народный мониторинг"? 15 40.54%
Голосовавшие: 37. Вы ещё не голосовали в этом опросе

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.01.2015, 15:04   #1
Crazy_Nick
Junior Member
 
Регистрация: 10.12.2014
Сообщений: 12
Вес репутации: 0
Crazy_Nick is an unknown quantity at this point
По умолчанию Re: CyberWrt модуль "Термометр"

например, код
PHP код:
$temperature=shell_exec('digitemp_DS9097 -t 0 -o %.2C -q'); 
получает в переменную значение температуры с датчика №0 с точностью до двух знаков после запятой.

возможно, не сработает получение данных. для нормальной работы надо проинициализировать датчики. тогда код будет следующим:
PHP код:
shell_exec('digitemp_DS9097 -i');
$temperature=shell_exec('digitemp_DS9097 -t 0 -o %.2C -q'); 

Последний раз редактировалось Crazy_Nick; 02.01.2015 в 15:15. Причина: добавил инициализацию
Crazy_Nick вне форума   Ответить с цитированием
Старый 03.01.2015, 00:40   #2
avgaz
Senior Member
 
Регистрация: 05.10.2014
Сообщений: 190
Вес репутации: 0
avgaz is an unknown quantity at this point
По умолчанию Re: CyberWrt модуль "Термометр"

Цитата:
Сообщение от Crazy_Nick Посмотреть сообщение
например, код
PHP код:
$temperature=shell_exec('digitemp_DS9097 -t 0 -o %.2C -q'); 
получает в переменную значение температуры с датчика №0 с точностью до двух знаков после запятой.

возможно, не сработает получение данных. для нормальной работы надо проинициализировать датчики. тогда код будет следующим:
PHP код:
shell_exec('digitemp_DS9097 -i');
$temperature=shell_exec('digitemp_DS9097 -t 0 -o %.2C -q'); 
Что то не срабатывает, через терминал digitemp_DS9097 -t 0 -o %.2C -q выводит температуру, а через php нет, может нужно что то поправит в настройках php что бы shell_exec заработала?
avgaz вне форума   Ответить с цитированием
Старый 03.01.2015, 00:48   #3
Crazy_Nick
Junior Member
 
Регистрация: 10.12.2014
Сообщений: 12
Вес репутации: 0
Crazy_Nick is an unknown quantity at this point
По умолчанию Re: CyberWrt модуль "Термометр"

Цитата:
Сообщение от avgaz Посмотреть сообщение
может нужно что то поправит в настройках php что бы shell_exec заработала?
я ничего не менял в конфигах php, и у меня работает shell_exec.
работу можно проверить, выполнив тестовый скрипт, например
PHP код:
echo (shell_exec('dmesg')) 
этот код должен вывести лог сообщений ядра.

если shell_exec работает, попробуйте перед получением температуры проинициализировать digitemp
PHP код:
shell_exec('digitemp_DS9097 -i'); 
$temperature=shell_exec('digitemp_DS9097 -t 0 -o %.2C -q'); 
Crazy_Nick вне форума   Ответить с цитированием
Старый 03.01.2015, 01:53   #4
avgaz
Senior Member
 
Регистрация: 05.10.2014
Сообщений: 190
Вес репутации: 0
avgaz is an unknown quantity at this point
По умолчанию Re: CyberWrt модуль "Термометр"

Цитата:
Сообщение от Crazy_Nick Посмотреть сообщение
я ничего не менял в конфигах php, и у меня работает shell_exec.
работу можно проверить, выполнив тестовый скрипт, например
PHP код:
echo (shell_exec('dmesg')) 
этот код должен вывести лог сообщений ядра.

если shell_exec работает, попробуйте перед получением температуры проинициализировать digitemp
PHP код:
shell_exec('digitemp_DS9097 -i'); 
$temperature=shell_exec('digitemp_DS9097 -t 0 -o %.2C -q'); 
Вот так только сработало
PHP код:
$temperatureshell_exec("digitemp_DS9097 -t 0 -o %.2C -q -s /dev/ttyUSB0"); 
Кстати а если подключено скажем 5 датчиков как быть для каждого запрос повторять меняя -t 0?
avgaz вне форума   Ответить с цитированием
Старый 03.01.2015, 02:08   #5
Crazy_Nick
Junior Member
 
Регистрация: 10.12.2014
Сообщений: 12
Вес репутации: 0
Crazy_Nick is an unknown quantity at this point
По умолчанию Re: CyberWrt модуль "Термометр"

Цитата:
Сообщение от avgaz Посмотреть сообщение
Вот так только сработало
я понял - у меня это просто уже прописано в конфиге, кроме того, программа инициализирует датчики при загрузке системы.

Цитата:
Сообщение от avgaz Посмотреть сообщение
5 датчиков как быть для каждого запрос повторять меняя -t 0
можно и так. а можно добавить параметр -a вместо -t 0
PHP код:
$temperatureshell_exec("digitemp_DS9097 -a -o %.2C -q -s /dev/ttyUSB0"); 
результатом будет 5 строчек с температурой (по числу датчиков)
Crazy_Nick вне форума   Ответить с цитированием
Старый 03.01.2015, 02:38   #6
avgaz
Senior Member
 
Регистрация: 05.10.2014
Сообщений: 190
Вес репутации: 0
avgaz is an unknown quantity at this point
По умолчанию Re: CyberWrt модуль "Термометр"

Цитата:
Сообщение от Crazy_Nick Посмотреть сообщение
результатом будет 5 строчек с температурой (по числу датчиков)
Остается ещё один вопрос, как привязать датчики к определению?
К примеру 5 датчиков они будут выводится или списком или каждый по переменой. Каждый из датчиков должен обозначать комнату к примеру, и вот если вдруг какой то из датчиков вышел из строя или отключен, как сделать что бы остальные остались привязаны к своим комнатам а не изменились.
avgaz вне форума   Ответить с цитированием
Старый 03.01.2015, 03:01   #7
Crazy_Nick
Junior Member
 
Регистрация: 10.12.2014
Сообщений: 12
Вес репутации: 0
Crazy_Nick is an unknown quantity at this point
По умолчанию Re: CyberWrt модуль "Термометр"

Цитата:
Сообщение от avgaz Посмотреть сообщение
Остается ещё один вопрос, как привязать датчики к определению?
каждый датчик имеет свой серийный номер. этот номер при инициализации сопоставляется с порядковым номером и может быть записан в конфиг программы.
при обращении к датчику по номеру при его отваливании возвратится пустое значение.
как будет выводиться пустое значение при выводе списка датчиков, я не знаю. у меня пока что только один датчик
Crazy_Nick вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 2 (пользователей: 0 , гостей: 2)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 22:36. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика