goo blog サービス終了のお知らせ 

pepoとネットワークを語ろう

40年前からこれまでとこれからのネットワークを語る

TOCOS TWE-LiteとToCoStick(トコスティック)で温湿度計AM2321センサーのデバック中

2015-12-28 07:26:50 | Linux

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℃


最新の画像もっと見る

コメントを投稿

サービス終了に伴い、10月1日にコメント投稿機能を終了させていただく予定です。
ブログ作成者から承認されるまでコメントは反映されません。