Raspberry+DS18B20+soracom+20Aバッテリーで実験

RaspberryにDS18B20をつなぎ、10分間隔で温度を計測。
計測した温度をsoracomを使ってサーバにアップロードする。
バッテリーは20Aのモバイルバッテリーを使って、充電なしでどのくらい継続するか実験しました。

この実験の目的は継続時間です。
結果から言うと、37時間、つまり1.5日くらいしか続きませんでした。

<準備事項>
・Raspberryにsoracomをセットし、3G接続状態とします。
・Raspberryに温度センサーをつなぎます。

<温度計測・アップロードプログラム>
・Raspberry側には以下のようなプログラムを仕込み、cronで10分間隔で実行するようにする。

#!/bin/sh
DEVID="28-00000xxxxxxxx"
URL="http://xxx.xxx.xxx/xxx/temperature.php?temperature="

TEMPERATURE=`cat /sys/bus/w1/devices/$DEVID/w1_slave \
| perl -e 'while(<stdin>){ if(/t=([0-9]+)/){print $1/1000,"\n";} }'`

curl $URL$TEMPERATURE

・サーバ側には以下のようなPHPプログラムを仕込む

<html>
<head>
<title>温度管理</title>
</head>
<body>
<?php print(date("Y年m月d日H時i分s秒 : ")); ?>
<?php print($_GET['temperature']); ?>
<?php print("度"); ?>
<?php error_log(date("Y年m月d日H時i分s秒 : "), 3, "temperature.log"); ?>
<?php error_log($_GET['temperature'], 3, "logtemp.log"); ?>
<?php error_log("\n", 3, "logtemp.log"); ?>
</body>
</html>

※我ながら、超テキトーなプログラムと思うのですが、今回は継続時間を確かめたいだけなので、あしからず。

<結果>
サーバ側に以下のような内容のログが出力されました。

<pre>
2015年12月03日09時00分03秒 : 21
2015年12月03日09時10分03秒 : 21
2015年12月03日09時20分03秒 : 21
2015年12月03日09時30分03秒 : 20.937
2015年12月03日09時40分03秒 : 20.812
〜中略〜
2015年12月04日22時20分03秒 : 22.687
2015年12月04日22時30分04秒 : 22.562
2015年12月04日22時40分03秒 : 22.375
2015年12月04日22時50分04秒 : 22.75
↑ここで終了
</pre>

予想よりも短い時間でした。
このままでは実用には耐えられませんね。(20Aだったらもう少しもってほしかったのですけど。。。)
メカトラックス様のslee pyの検討も必要になりそうです。

あと、ちょっと意外だったのは、soracom通信が安定していたこと。
途中で失敗したりするかな、と思ったのですが、1度も失敗ありませんでした。
またつなぎっぱなしの状態ですが、10分ごとに1回の通信のため、
1時間のアップロードでダウンロード5KB,アップロード5KBで、
2日間で約50円くらいとまあ安いと思います。

  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です