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

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

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

2015-12-28 17:35:05 | Linux

TOCOS TWE-LiteとAM2321センサーまるごと冷蔵庫へ

[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
:7889AA0201060304024700CD2F
2015/12/28 17:28:04,20.5℃ 58.3%
[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
-1[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
:7889AA02010603040159009457
2015/12/28 17:28:30,14.8℃ 34.5%
[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
:7889AA0201060304014E008A6C
2015/12/28 17:28:37,13.8℃ 33.4%

このへんから応答が無くなる
[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
-1[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
-1[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
-1[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
-1[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
-1[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
-1[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
-1[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
-1[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
:7889AA02010603040162004A98
2015/12/28 17:29:59,7.4℃ 35.4%

[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
-1[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
-1[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
-1[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
-1[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
-1[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
-1[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
冷蔵庫から取り出すと暫くしてから応答する
-1[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
-1[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
:7889AA0201060304039A004B5D
2015/12/28 17:31:53,7.5℃ 92.2%

 

 


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

2015-12-28 15:02:23 | Linux

 

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

とりあえずマイナスの温度も表示出来たのでデバッグ中コードを書いとこ

ちなみに母艦はRemote-Hand_Raspberry_pi_0.22.zip

Linux raspberrypi 4.1.7+ #817 PREEMPT Sat Sep 19 15:25:36 BST 2015 armv6l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon Dec 28 13:29:57 2015 from dell
[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
:7889AA0201060304021400D857
2015/12/28 15:00:37,21.6℃ 53.2%[root@~]#
[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
-1[root@~]# /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSB0 -c ./am2321_test
:7889AA0201060304021900D753
2015/12/28 15:01:03,21.5℃ 53.7%[root@~]#

 

[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
NOWDATE=`date '+%Y/%m/%d %T'|awk '{printf("%s %s",\$1,\$2)}'`
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))}'`
TMP=""
if [ $((0x$TMPH & 0x80)) != 0 ];then
TMPH=$((0x$TMPH & 0x7F))
TMP="-"
fi
DTMPH=$((0x$TMPH * 256))
DTMPLH=$((0x$TMPLH * 16))
TMP=${TMP}$(($(($(($DTMPH + $DTMPLH)) + 0x$TMPLL)) / 10))
TMPMOD=$(($(($(($DTMPH + $DTMPLH)) + 0x$TMPLL)) % 10))
else
echo -en "-1" >/dev/stderr
exit
fi
fi
echo -en ${NOWDATE},${TMP}.${TMPMOD}℃ ${HUM}.${HUMMOD}% >/dev/stderr

[root@~]#


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

2015-12-28 14:38:37 | Linux

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

無線で温度と湿度が測れるようになったので、マイナス表示が出来るか冷蔵庫の中で測定してみました

乾電池2本でもどうにか動作します

温度:ー16。0℃、湿度36.1%やて

 

 


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℃


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

2015-12-25 12:30:02 | Linux

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

センサーのWakeUP送信
:7888AA015C0000X

温湿度レジスタから4byte読み取り送信
:7888AA015C03020004X

応答
:7889AA01000054

1500ms経過後に読み取り・・・4byteと思って読み取りCountを4にするとダメ
:7888AA025C0006X

応答

:7889AA0201060304022A00F029

何処に温度と湿度があるんやろか

022A湿度=02*256+2*16+10/10⇒55.4%

00F0温度⇒1バイト目80以上でマイナス、2バイト目は2の補数、今回はプラスF⇒15
00*256+15*16+0/10=24.0℃

ほんまかな?