TWELITEのパルスカウントを使用して、ガス使用量を計測する。試作品でデータを取れるところまでやってみる。方法は、ガスメーターから流量毎のパルス発信を計測して、ガス使用量を算出。ガスメーターは、10年目の交換時期にHEMS対応のモノに変更を希望するとガス会社へ依頼。パルス発信機能付きのガスメータに交換している。
準備:ここで使用するモノ
ガスメーターのパルス発信設定は、工場出荷時に設定されている。
出荷後の変更はできないので、
新築や10年毎の交換時期に合わせて、パルス発信機能付きの指定を事前にガス会社へ連絡しておく必要がある。
パルス発信の頻度も連絡する必要がある。
ガスメーターのパルス仕様(LPガス)
E・E4型保安ガスメーター 名称:ETG25MTH
パルス単位:
1L/P(これを選択),10L/P(標準仕様),100L/P,1000L/P
電気的条件
定格容量電圧 DC24V
定格容量電流 10mA
論理的条件
パルス幅 150~250mS
配線
VCC(ピン:28)と、アナログ入力1~4(ピン:22~25)
を接続するのは、
アナログ入力を使用しないときは、VCCと接続するように記載があるために接続。
パルスの受信は、
パルスカウント用PC1(ピン:11)とGND(ピン:14)
を接続して受信。
電源は、CR2032のボタン電池。
HPによると電池の寿命は、
起床のタイミングやパルス発信回数によるが、1~3年程度。
TWELITE 消費電力
ガスメーターとTWELITEの間にリレーを入れようと試したが上手く行かず、直結して使用している。
パルスカウンタ用のサンプルアプリを書き換え
TWELITE Stage で、パルスカウンタのサンプルアプリを編集して使用する。
サンプルアプリの編集は、textエディタでも編集できるが、
Visual Studio Code ※使い方のメモ
を使用すると編集性が向上し使いやすく、見やすくなる。
サンプルアプリの保存場所:
”C:\MWSTAGE\MWSDK\Act_samples\PulseCounter”
※MWSTAGEの場所は、インストール時の設定で変わる。
上記はデフォルトの保存先
ファイル名:PulseCounter.cpp
オリジナルを残すために、PulseCounterフォルダのコピーを残しておく。
編集するほうは、フォルダ名、ファイル名を変更する。
オリジナルを残しておけば、元に戻したり、変更箇所の比較も可能。
編集個所➀ 通信設定
6行目にある下記を変更する。 ”=”の後にある数値を変更。
- // application ID:アプリケーションID
- // channel:周波数チャンネル
- // id:子機ID
/*** Config part */ // application ID const uint32_t APP_ID = 0x67720102; //2.アプリケーションID // channel const uint8_t CHANNEL = 18; //1.周波数チャンネル // id uint8_t u8ID = 0x04; //3.子機のID
1.周波数チャンネル 2.アプリケーションID
周波数チャンネルを合わせておく必要がある。
アプリケーションIDを設定することで、通信グループを作成できる。
同一周波数チャンネルでもグループを分けることで通信を分けることができる。
通信をするには、周波数チャンネルとアプリケーションIDを通信グループ内の端末で合わせる必要がある。
周波数チャンネルとアプリケーションID ※説明のあるメーカーサイトのリンク
3.子機のIDを設定
子機のIDを設定することで、子機を識別できるようになる。
初期値でも運用可能。
論理デバイスID ※説明があるメーカーサイトのリンク
編集個所②
53行目にある下記**の部分を変更する。パルスによる動作の設定
- **// 1 count to wakeup
- PIN_INT_MODE::**// FALLING:RISING edge
/*** begin procedure the first call */ void begin() { // start the pulse counter capturing PulseCounter.begin( 1 // 1 count to wakeup 1.スリープ解除するカウント数 , PIN_INT_MODE::RISING // FALLING:RISING falling edge 2.立上り、立下りの指定 ); sleepNow(); }
1.起床割り込みを発生させるためのカウント数
**// 1 count to wakeup の**にスリープ状態からの起床させるパルスカウント数を入れる。
初期値は、”100”になっているが、細かくしたいので、”1”に変更している。
**= 1にすると、TWELITEはパルスカウント 2カウントでデータを送信してくるが、
**=10にすると、TWELITEはパルスカウント10カウントでデータを送信してくる
**=0は、起床要因にならないとメーカーサイトに記載があり。
どこでカウントが変わるのかなど、まだ試していないことはある。
データとしては、1カウントで欲しいと考えていたが、**=0の時の電池消費量が気になるので、**=1で運用することにした。
ガスメータ パルス発信のタイミング
・1ℓ=1パルス
・1㎥=1000パルス
②2.割り込みの立上り、立下りを指定
PIN_INT_MODE::**// FALLING:RISING edge
割り込みが立上りか立下りを指定する。
違いがよくわからないが、なんとなく立上りを指定した。
初期値は、立下り
立上り…PIN_INT_MODE::RISING
立下り…PIN_INT_MODE::FALLING
TWELITE PAL パルスカウント用のアプリに書き換え
書き換えは、TWELITE R2を接続して行う。
R2 接続ユニットの配線
R2 接続ユニットの配線は上のリンク先で行っています。
PCとは、USBで接続。R2側はC-type。
TWELITE R2に直接ゼロプレッシャーICソケットを取り付けることもできるが、
基盤に取り付け後のTWELITEのデータ書き換えを行う際、
ゼロプレッシャーICソケットの脱着が必要だが、足が折れやすいためこの形にしている。
PCに接続して、TWELITE STAGEを使用してTWELITE PALのアプリ書き換えを行う。
アプリは、上記で設定したPulseCounterアプリ。
アプリの書き換えは、上記のリンク先を参考に行っている。
受信側の準備:Raspberry pi
TWELITE が送信したデータ受信は、Raspberry piに接続したMONOSTICKで受信する。
データの処理は、Node-REDで処理をする。
MONOSTICKの設定
application ID:アプリケーションID
channel:周波数チャンネル
通信を行うTWELITE PALとアプリケーションID,周波数チャンネルを合わせておく必要がある。
設定は、TWELITE STAGEで行う。
MONOSTICKの設定は、上のリンク先を参考に行っている。
パルスカウンタのテスト
パルスカウントのテストとして、スイッチや電池を接続したりしてみたが、思うようなデータが取れなかった。
実際にガスメーターに取り付けてテストしてみたら、パルスのカウントができた。
プログラムでの指示通りに通信できることも確認できた。
送られてくるデータはこんなデータ。次の項目で必要な部分だけに分ける処理をNode-REDで行っていく。
:04AA00810A722E000000004B0008504C5331000D0002A5
電池の電圧を送信データに織り込みたいがうまく行っていない。
Node-REDで受信とデータ処理をする
コード記述無しのNodeフローで作ろうとしたが、下図のように複雑になり過ぎるので、16進数→10進数の変換のみ、3行のコードを記述して簡略化した。
16進数→10進数変換ができるNodeが欲しいところだが、探しても見つからなかった。
抽出するデータ
- 子機のID
- 送信時のパルスカウント数
- 送信回数
3.送信回数は、2Byteで0~65535回まであり、数値化しておいた方が扱いやすい。
2.送信時のパルスカウント数は、10以上になる場合は、数値化しておく必要があるが、
ここでは、2までなので行っていない。
1.子機のIDは、識別するだけなので数値化は不要。
Nodeフローの詳細 ←中身はここから参照してください。
16進数→10進数への変換する関数があるので、それを使えば良いのだが、
関数を使わずに作成するとこのようなNodeフローになった。
TWELITE PAL パルスカウンタの動作
TWELITE PALのPulseCounterは、スリープ中でもパルスカウントを行うことができる。
スリープ中は、省電力化しているため、電池の長寿命化になる。
**// 1 count to wakeup の**に設定したカウント数に達すると起床して、データを送信する。
送信されるデータは、編集個所➀で設定した内容と、送信回数1~65535回、送信毎のパルスカウント数。
パルスカウントは、データ送信後にリセットされる。
ガスメーター パルス発信 | pls1 | pls2 | pls3 | … | pls9 | pls10 | pls11 |
時間 | 1秒 | 2秒 | 3秒 | … | 9秒 | 10秒 | 11秒 |
カウント | 1 | 2 | 3 | … | 9 | 10 | 1 |
TWELITE | sleep | sleep | sleep | … | sleep | wake up | sleep |
データ | ー | ー | ー | … | ー | 送信 | ー |
消費電流 | 1.5μA | 3.0μA | 4.5μA | … | 13.5μA | 44.0μA | 45.5μA |
取得データの処理
ここでは、パルスカウント数を取得するところまで。
データベースへの登録、グラフの作成などは、別記事を作成することにする。
コメント