Files
2024-07-11 14:16:35 +02:00

92 lines
3.2 KiB
Bash
Executable File

#!/bin/sh
for d in `ls -d1 /sys/bus/iio/devices/*device*`;
do
# for hts221: Temperature + Humidity
if grep -q hts221 $d/name ;
then
echo "============================="
echo "=== HTS221 ==="
echo "=== (temperature) ==="
echo "============================="
raw=`cat $d/in_temp_raw`
offset=`cat $d/in_temp_offset`
scale=`cat $d/in_temp_scale`
printf "Value read: raw %0f\n" $raw
printf "Value read: offset %0f\n" $offset
printf "Value read: scale %0f\n" $scale
temperature=`echo "scale=2;$raw*$scale + $offset*$scale" | bc`
echo "Temperature $temperature"
printf "Temperature %.02f\n" $temperature
echo "============================="
echo "=== HTS221 ==="
echo "=== (humidity) ==="
echo "============================="
raw=`cat $d/in_humidityrelative_raw`
offset=`cat $d/in_humidityrelative_offset`
scale=`cat $d/in_humidityrelative_scale`
printf "Value read: raw %0f\n" $raw
printf "Value read: offset %0f\n" $offset
printf "Value read: scale %0f\n" $scale
humidity=`echo "scale=2;$raw*$scale + $offset*$scale" | bc`
echo "Humidity $humidity"
printf "Humidity %.02f\n" $humidity
fi
# for lsm6dsl: accelerometer
if grep -q lsm6dsl_accel $d/name ;
then
echo "============================="
echo "=== LSM6DSL ==="
echo "=== (accelerometer) ==="
echo "============================="
rscale=`cat $d/in_accel_scale`
xraw=`cat $d/in_accel_x_raw`
yraw=`cat $d/in_accel_y_raw`
zraw=`cat $d/in_accel_z_raw`
printf "Value read: X (raw/scale) %d / %.06f \n" $xraw $rscale
printf "Value read: Y (raw/scale) %d / %.06f \n" $yraw $rscale
printf "Value read: Z (raw/scale) %d / %.06f \n" $zraw $rscale
factor=`echo "scale=2;256.0 / 9.81" | bc`
xval=`echo "scale=2;$xraw*$rscale*$factor" | bc`
yval=`echo "scale=2;$yraw*$rscale*$factor" | bc`
zval=`echo "scale=2;$zraw*$rscale*$factor" | bc`
printf "Accelerometer value: [ %.02f, %.02f, %.02f ]\n" $xval $yval $zval
fi
# for lsm6dsl: gyroscope
if grep -q lsm6dsl_gyro $d/name ;
then
echo "============================="
echo "=== LSM6DSL ==="
echo "=== (gyroscope) ==="
echo "============================="
rscale=`cat $d/in_anglvel_scale`
xraw=`cat $d/in_anglvel_x_raw`
yraw=`cat $d/in_anglvel_y_raw`
zraw=`cat $d/in_anglvel_z_raw`
printf "Value read: X (raw/scale) %d / %.06f \n" $xraw $rscale
printf "Value read: Y (raw/scale) %d / %.06f \n" $yraw $rscale
printf "Value read: Z (raw/scale) %d / %.06f \n" $zraw $rscale
factor=`echo "scale=2;256.0 / 9.81" | bc`
xval=`echo "scale=2;$xraw*$rscale*$factor" | bc`
yval=`echo "scale=2;$yraw*$rscale*$factor" | bc`
zval=`echo "scale=2;$zraw*$rscale*$factor" | bc`
printf "Gyroscope value: [ %.02f, %.02f, %.02f ]\n" $xval $yval $zval
fi
done