TOCOS TWE-LiteとToCoStick(トコスティック)で温湿度計AM2321センサーのデバック中
デバック用にとスクリプトをbashで書いた
[root@~]# cat am2321_test
#/bin/sh
#/usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c comnand_file
OK="01"
NG="00"
READ="02"
CMD="00"
RES="00"
RD="-1"
LEN="0"
echo -en ":7888AA015C0000X"\r\n
msleep 20
read -s -t 1 RD || RD="-1"
#echo $RD >/dev/stderr
echo -en ":7888AA015C03020004X"\r\n
msleep 20
read -s -t 1 RD || RD="-1"
#echo $RD >/dev/stderr
msleep 1500
echo -en ":7888AA025C0006X"\r\n
msleep 20
RD="-1"
read -s -t 2 RD || RD="-1"
LEN=`echo -en $RD|awk '{printf(length($0))}'`
if [ $LEN != 28 ];then
echo -en "-1" >/dev/stderr
exit
fi
echo $RD >/dev/stderr
if [ $RD != "X-1" ];then
CMD=`echo -en $RD |awk '{printf(substr($1,8,2))}'`
RES=`echo -en $RD |awk '{printf(substr($1,10,2))}'`
if [ $CMD = $READ -a $RES = $OK ];then
HUMH=`echo -en $RD |awk '{printf(substr($1,18,2))}'`
HUMLH=`echo -en $RD |awk '{printf(substr($1,20,1))}'`
HUMLL=`echo -en $RD |awk '{printf(substr($1,21,1))}'`
DHUMH=$((0x$HUMH * 256))
DHHML=$((0x$HUMLH * 16))
HUM=$(($(($(($DHUMH + $DHHML)) + 0x$HUMLL)) / 10))
HUMMOD=$(($(($(($DHUMH + $DHHML)) + 0x$HUMLL)) % 10))
TMPH=`echo -en $RD |awk '{printf(substr($1,22,2))}'`
TMPLH=`echo -en $RD |awk '{printf(substr($1,24,1))}'`
TMPLL=`echo -en $RD |awk '{printf(substr($1,25,1))}'`
DTMPH=$((0x$TMPH * 256))
DTMPLH=$((0x$TMPLH * 16))
TMP=$(($(($(($DTMPH + $DTMPLH)) + 0x$TMPLL)) / 10))
TMPMOD=$(($(($(($DTMPH + $DTMPLH)) + 0x$TMPLL)) % 10))
else
echo -en "-1" >/dev/stderr
exit
fi
fi
echo "$HUM.$HUMMOD"% >/dev/stderr
echo "$TMP.$TMPMOD"℃ >/dev/stderr
で走らせるともっともらしい湿度と温度を表示
[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
:7889AA0201060304022600E33A
55.0%
22.7℃
冷蔵庫の温度を測定すると
[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
:7889AA0201060304010C0064D42
6.8%
10.0℃
[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
:7889AA02010603040113004EE3
27.5%
7.8℃
[root@~]
あらら温度がマイナスになるとえらいこっちゃ状態に
-1[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
:7889AA02010603040217803D6F
53.5%
3282.9℃
[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
:7889AA02010603040217803E6E
53.5%
3283.0℃