USB PC thermometer
Модератор: immortal
- Amarok
- Сообщения: 1425
- Зарегистрирован: Пт дек 14, 2012 12:24 pm
- Откуда: Россия, Нижняя Тура
- Благодарил (а): 460 раз
- Поблагодарили: 126 раз
- Контактная информация:
USB PC thermometer
Приехала вот такая штучка - http://www.pcsensor.com/index.php?_a=vi ... oductId=41
Может быть, её к Алисе кто прикручивал уже?
Может быть, её к Алисе кто прикручивал уже?
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
-
- Сообщения: 422
- Зарегистрирован: Ср сен 05, 2012 7:30 am
- Откуда: Киров
- Благодарил (а): 0
- Поблагодарили: 70 раз
- Контактная информация:
Re: USB PC thermometer
Если есть возможность запуска из командной строки c выводом текущей температуры,то можно..
Похоже программа ,идущая в комплекте создает какую-то базу ,возможно в виде текстового файла - из его тоже можно читать.
Проще конечно использовать ds18b20 - к нему хоть подводить 2 провода,а не шину USB.Можно так же подключить через USB.
Похоже программа ,идущая в комплекте создает какую-то базу ,возможно в виде текстового файла - из его тоже можно читать.
Проще конечно использовать ds18b20 - к нему хоть подводить 2 провода,а не шину USB.Можно так же подключить через USB.
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: USB PC thermometer
Читать из текстового файла базы программы тоже вариант, да. Если будет пример файла, то сможем накидать сценарий чтения данных и сохранение их в свойство какого-нибудь объекта.
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
- Amarok
- Сообщения: 1425
- Зарегистрирован: Пт дек 14, 2012 12:24 pm
- Откуда: Россия, Нижняя Тура
- Благодарил (а): 460 раз
- Поблагодарили: 126 раз
- Контактная информация:
Re: USB PC thermometer
Вот пример файла:sergejey писал(а):Читать из текстового файла базы программы тоже вариант, да. Если будет пример файла, то сможем накидать сценарий чтения данных и сохранение их в свойство какого-нибудь объекта.
Код: Выделить всё
2,26,00,2013-10-01 06:47:20
2013-9-30 14h58m11s.txt
2013-9-30 15h0m35s.txt
2013-9-30 15h1m35s.txt
2013-9-30 15h2m35s.txt
2013-9-30 15h3m35s.txt
2013-9-30 15h4m35s.txt
2013-9-30 15h5m35s.txt
2013-9-30 15h6m35s.txt
2013-9-30 15h7m35s.txt
2013-9-30 15h8m35s.txt
2013-9-30 15h9m35s.txt
2013-9-30 15h10m35s.txt
2013-9-30 15h11m35s.txt
2013-9-30 15h12m35s.txt
2013-9-30 15h13m35s.txt
2013-9-30 15h14m35s.txt
2013-9-30 15h15m35s.txt
2013-9-30 15h16m35s.txt
2013-9-30 15h17m35s.txt
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
- Amarok
- Сообщения: 1425
- Зарегистрирован: Пт дек 14, 2012 12:24 pm
- Откуда: Россия, Нижняя Тура
- Благодарил (а): 460 раз
- Поблагодарили: 126 раз
- Контактная информация:
Re: USB PC thermometer
Накидайте пример, пожалуйста?
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
-
- Сообщения: 521
- Зарегистрирован: Вс апр 07, 2013 9:30 pm
- Откуда: Moscow
- Благодарил (а): 2 раза
- Поблагодарили: 58 раз
- Контактная информация:
Re: USB PC thermometer
Пожалуйста. Будут вопросы, обращайтесьBlackWarrior писал(а):Накидайте пример, пожалуйста?
Код: Выделить всё
<?php
// набор данных который нужно прочесть:
//2,26,00,2013-10-01 06:47:20
$dataPath = "D:\Temp\USB_PC_thermometer"; // Директория с данными
$separator = ","; // Разделитель данных в файле
// бежим по директории
if ($handle = opendir($dataPath))
{
// Читаем файлы
while (false !== ($entry = readdir($handle)))
{
// путь к файлу
$filePath = $dataPath . "/" . $entry;
// если файл есть и является обычным файлом а не директорией то читаем содержимое
if (file_exists($filePath) && is_file($filePath))
{
echo "Файл: " . $filePath . "<br />"; // для отладки выводим название файла в браузер.
// открываем файл на чтение
$file = @fopen($filePath, "r");
// читаем файл до канца построчно
while (!feof($file))
{
// читаем строку
$currentLine = fgets($file);
echo $currentLine . "<br />";
// разбиваем строку на переменные с данными
list($DataNumber, $TempInteger, $TempRatio, $TempDate) = explode($separator, $currentLine);
// склеиваем целую и дробную часть температуры
$Temp = $TempInteger . "." . $TempRatio;
// удаляем лишние пробелы в начале и в конце
$Date = trim($TempDate);
//Выводим данные в браузер
echo "№: " . $DataNumber . " Температура: " . $Temp . " Дата снятия показаний: " . $Date . "<br />";
echo "<br />";
}
//закрываем файл
fclose($file);
}
echo "<br />";
}
// закрываем директорию
closedir($handle);
}
else
{
echo "Немогу открыть директорию";
}
?>
Что делать дальше с этими данными я не знаю.
Можно например засунуть в массив и потом с ним работать.
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: USB PC thermometer
Денис опередил
добавлю только, что по идее если после
поставить
то в свойство объекта будет записана последняя температура, но нужно проверить. если так, то всё можно оформить в отдельный сценарий и запускать по таймеру. можно даже будет убрать эти строчки, т.к. вывод всё равно не увидит никто
добавлю только, что по идее если после
Код: Выделить всё
closedir($handle);
Код: Выделить всё
setGlobal('myObject.myProperty',$Temp);
Код: Выделить всё
echo "№: " . $DataNumber . " Температура: " . $Temp . " Дата снятия показаний: " . $Date . "<br />";
echo "<br />";
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 521
- Зарегистрирован: Вс апр 07, 2013 9:30 pm
- Откуда: Moscow
- Благодарил (а): 2 раза
- Поблагодарили: 58 раз
- Контактная информация:
Re: USB PC thermometer
Согласен, но не полностью.
1. В конце цикла в переменной $Temp будет температура из последней строки последнего файла в директории.
Если нужна только эта температура, то можно сразу читать последний файл, а не все подряд.
2. Все строки с echo естественно нужно удалить, написал для примера. Ну, чтобы запустить и посмотреть как работает и что выводит.
1. В конце цикла в переменной $Temp будет температура из последней строки последнего файла в директории.
Если нужна только эта температура, то можно сразу читать последний файл, а не все подряд.
2. Все строки с echo естественно нужно удалить, написал для примера. Ну, чтобы запустить и посмотреть как работает и что выводит.
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
- Amarok
- Сообщения: 1425
- Зарегистрирован: Пт дек 14, 2012 12:24 pm
- Откуда: Россия, Нижняя Тура
- Благодарил (а): 460 раз
- Поблагодарили: 126 раз
- Контактная информация:
Re: USB PC thermometer
А как считать сразу последний файл в папке?
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
-
- Сообщения: 521
- Зарегистрирован: Вс апр 07, 2013 9:30 pm
- Откуда: Moscow
- Благодарил (а): 2 раза
- Поблагодарили: 58 раз
- Контактная информация:
Re: USB PC thermometer
ну как самый простой вариант на вскидку это сделать пару изменений в моём коде(см. выше)
Код: Выделить всё
<?php
// набор данных который нужно прочесть:
//2,26,00,2013-10-01 06:47:20
$dataPath = "D:\Temp\USB_PC_thermometer"; // Директория с данными
$separator = ","; // Разделитель данных в файле
$file = ""; // имя файла
// бежим по директории
if ($handle = opendir($dataPath))
{
// Читаем файлы
while (false !== ($entry = readdir($handle)))
{
// путь к файлу
$filePath = $dataPath . "/" . $entry;
// если файл есть и является обычным файлом а не директорией то читаем содержимое
if (file_exists($filePath) && is_file($filePath))
{
$file = $filePath; // файл.
}
}
// закрываем директорию
closedir($handle);
// открываем файл на чтение
$file = @fopen($file, "r");
// читаем файл до конца построчно
while (!feof($file))
{
// читаем строку
$currentLine = fgets($file);
// разбиваем строку на переменные с данными
list($DataNumber, $TempInteger, $TempRatio, $TempDate) = explode($separator, $currentLine);
// склеиваем целую и дробную часть температуры
$Temp = $TempInteger . "." . $TempRatio;
// удаляем лишние пробелы в начале и в конце
$Date = trim($TempDate);
}
//закрываем файл
fclose($file);
}
else
{
echo "Немогу открыть директорию";
}
?>
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch