92 lines
3.2 KiB
Bash
Executable File
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
|