PHP データ処理の必要時間
2023.04.04
ラズパイ 温度計 温度記録 raspberry Pi PHP DS18B20
温度センサー DS18B20を利用して温度を記録 

詳細は 参考サイトにありますが、この通り作成したあと、問題が起きました。

CSVで記述されたデータの温度部分が時々空白になってしまいます。
temp/20230404.csv に書き出す際

'00:03',10.75
'01:03',10.625
'02:03',10.625
'03:03',
'06:03',10.375
'07:03',     
         このように温度が抜けてしまします。

crontab -e で 0分、3分、7分と指定して3つのPHPを動作させていますが
0分は問題なく 次の3分と7分のphp動作時にエラーが出ています。

使用しているラズパイは
$ cat /proc/device-tree/model
 
RaspberryPi Model B Plus Rev 1.2 


で動作は速くは無いはずですが、温度を書き出すだけですから
原因はよく分かりません。今後の学習課題ですが
とりあえず、crontab -e で起動時間を10分づつ離したり、20分離したりして 様子を見ましたが、エラーは起きるので、起動時間は関係ないことが確認できました。
(起動時間じゃないのは当たり前だよね)


以下の短いコードですが、温度取得で引っかかるようです。


$deviceId = '28-000006470bec';
$today = date("Ymd");
$time = date("H:i");
$sensor_path = '/sys/bus/w1/devices/'.$deviceId.'/w1_slave';
$csv_dir = '/var/www/temperature/';
$csv_file = $today.'.csv';
$t = null;
//温度取得
exec("cat ".$sensor_path, $w1_slave);
if(isset($w1_slave[1])){
$tmp = explode('t=', $w1_slave[1]);
if(isset($tmp[1])) $t = $tmp[1] / 1000;
}
//CSV書き込み
if(!file_exists($csv_dir)){
mkdir($csv_dir);
}
if( $handle = fopen( $csv_dir.$csv_file , 'a' ) ){
fputcsv( $handle, Array("'".$time."'", $t) );
fclose($handle);
}
return;



time.png 2023.04.04 08:49 | pmlink.png 固定リンク | folder.png PHP | com.gif コメント (0)

- CafeLog -