Страница 1 из 1
MT8057 - Детектор углекислого газа
Добавлено: Вт фев 09, 2016 6:15 pm
sergejey
https://geektimes.ru/company/medgadgets/blog/249750/
Купил в офис детектор, который показывает уровень углекислого газа и температуру. При подключении к компьютеру можно считывать данные по USB с помощью приложения. Написал небольшой сценарий (
co2level), который раз в минуту берёт последнее показание из лога программы и сохраняет в систему. В общем интересный прибор, в будущем на основе показаний планирую принудительно запускать вытяжку, а пока система просто напоминает о необходимости проветривания.
Код: Выделить всё
$path='c:/app/co2/'.date('Y/m/d').'.CSV'; //путь к логу (программа у меня в c:\app\co2\)
if (file_exists($path)) {
$data=LoadFile($path);
$lines=explode("\n",$data);
$latest=$lines[count($lines)-2];
$tmp=explode(',',$latest);
if ($tmp[2]>0) {
echo " Temp: ".$tmp[2];
callMethod('TempSensor03.tempChanged',array('t'=>$tmp[2]));
}
if ($tmp[1]>0) {
echo " CO2: ".$tmp[1];
callMethod('co2.co2Changed',array('c'=>$tmp[1]));
}
echo "<br/>".$latest;
} else {
echo "File $path not found";
}
setTimeout("co2",'runScript("co2level");',30);
Re: MT8057 - Детектор углекислого газа
Добавлено: Чт авг 18, 2016 5:53 pm
Silowar
Сергей, хотел поинтересоваться по поводу этого датчика, хотим купить такой же себе в офис.
Как он показал себя в работе?
Стоит его покупать или нет?
Re: MT8057 - Детектор углекислого газа
Добавлено: Пт авг 19, 2016 11:37 am
sergejey
Silowar писал(а):Сергей, хотел поинтересоваться по поводу этого датчика, хотим купить такой же себе в офис.
Как он показал себя в работе?
Стоит его покупать или нет?
Показал хорошо, уже несколько месяцев выполняет свою функцию -- на офисном дашборде выводит уровень:

Re: MT8057 - Детектор углекислого газа
Добавлено: Пт авг 19, 2016 4:18 pm
Silowar
Сергей,
Сегодня купил такой датчик в офис.
Хотел спросить, А как выглядит у Вас метод co2Changed?
И еще я не понял как правильно запустить сценарий.
Меня смутила вот эта строчка в конце сценария:
setTimeout("co2",'runScript("co2level");',30)
Re: MT8057 - Детектор углекислого газа
Добавлено: Вт авг 23, 2016 1:26 pm
sergejey
Silowar писал(а):Сергей,
Сегодня купил такой датчик в офис.
Хотел спросить, А как выглядит у Вас метод co2Changed?
Код: Выделить всё
//$params['c']
$this->setProperty("updated",time());
$this->setProperty("updatedTime",date("H:i",time()));
$this->setProperty("alive",1);
$ot=$this->object_title;
$alive_timeout=(int)$this->getProperty("aliveTimeOut");
if (!$alive_timeout) {
$alive_timeout=30*60;
}
clearTimeOut($ot."_alive");
setTimeOut($ot."_alive","sg('".$ot.".alive',0);",$alive_timeout);
if (!isset($params['c'])) {
return;
}
$old_temp=$this->getProperty('co2');
$t=round($params['c'],1);
$this->setProperty('co2',$t);
if ($params['uptime']) {
$this->setProperty('uptime',$params['uptime']);
}
if ($t>$old_temp) {
$d=1;
} elseif ($t<$old_temp) {
$d=-1;
} else {
$d=0;
}
$this->setProperty('direction',$d);
$linked_room=$this->getProperty("LinkedRoom");
if ($linked_room) {
setGlobal($linked_room.'.CO2',$t);
}
И еще я не понял как правильно запустить сценарий.
Меня смутила вот эта строчка в конце сценария:
setTimeout("co2",'runScript("co2level");',30)
поставьте его на периодическую запись раз в сутки, а эта строчка как раз для того, чтобы сценарий сам себя запускал через 30 секунд.
Re: MT8057 - Детектор углекислого газа
Добавлено: Вт авг 23, 2016 5:20 pm
Silowar
Сергей, спасибо.
Хотел еще уточнить по поводу запуска раз в сутки, а в этом случае не будут дублироваться выполнение сценария?
Вроде как, если поставить выполнение на раз в сутки, то получается, что каждые сутки будет запускаться еще один таймер на выполнение скрипта?
Re: MT8057 - Детектор углекислого газа
Добавлено: Ср авг 24, 2016 2:49 pm
sergejey
Silowar писал(а):Сергей, спасибо.
Хотел еще уточнить по поводу запуска раз в сутки, а в этом случае не будут дублироваться выполнение сценария?
Вроде как, если поставить выполнение на раз в сутки, то получается, что каждые сутки будет запускаться еще один таймер на выполнение скрипта?
Не совсем так -- таймеры с одним именем не дублируются. Запуск таймера с таким же именем отменяет другие экземпляры того же таймера, так что распараллеливания не будет.
Re: MT8057 - Детектор углекислого газа
Добавлено: Ср мар 29, 2017 1:05 am
VirBy
Отличный датчик.
Имею такой же в распоряжении.
Но не могу сообразить как это можно использовать в Вашей системе на rpi3.
Очень хотелось бы получить график.
Подскажете?
Re: MT8057 - Детектор углекислого газа
Добавлено: Ср мар 29, 2017 9:41 am
sergejey
VirBy писал(а):Отличный датчик.
Имею такой же в распоряжении.
Но не могу сообразить как это можно использовать в Вашей системе на rpi3.
Очень хотелось бы получить график.
Подскажете?
К Linux-системе я его не подключал... попробуйте поискать в интернете код для считывания данных с этого устройства под Linux. Скорее всего, кто-то уже разобрался )
Re: MT8057 - Детектор углекислого газа
Добавлено: Сб апр 01, 2017 10:53 am
VirBy
sergejey писал(а):
Скорее всего, кто-то уже разобрался )
Как использовать в мд не нашёл. А искать я умею...
Пришлось взять непонятный мне скрипт на питоне(ни разу не программер) на гитхабе, который в цикле опрашивает эти данные и рисует графики rrd. Там, кстати, судя по всему ещё и нечто похожее на атмосферное давление. Но так как я хотел графики посредством мажордомо и из его интерфейса - втупую обрезал цикл в конце и заставил выплевывать в консоль только значение СО2. Ну а дальше уже через установку глобальной переменной. Хотелось бы упростить это скрипт и убрать ошмётки от rrd, но это я уже не осилил...
UPD: Разобрался и вроде выкинул все лишнее. Теперь в вывод только CO2 или t.