2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

太陽光発電の遠隔監視システムを簡単につくってみた

Posted at

太陽光発電の監視システムを簡単に作ってみたお話をまとめてみました。

Google スプレッドシートにセンサーで取得したバッテリーの電圧や電流を送って可視化するものを作っていきます。

chart.png

定期的に電圧が上がって充電できているのが確認できます!

充電しているときは電流がマイナス側に流れて、放電するときには電流がプラス側に流れます。

必要な部材

回路

obniz.jpg

バッテリを制御する端子の+側に電圧、電流計測するためのセンサーを取り付けます。

センサーをobnizにつなげば準備は完了です!

プログラム

全文は下記のgistにあげてありますので簡単に説明します。

下記の関数によって、センサーから電流値と電圧値がそれぞれ取得できます。

let v = Math.round(await getData(INA226PRC_BUSV_REG)* 0.0125) / 10;
let ma = await getData(INA226PRC_SHUNTV_REG) *1.25;

async function getData(command){
    obniz.i2c0.write(0x40, [command]);
    let ret = await obniz.i2c0.readWait(0x40, 2);
    let data =new DataView(new ArrayBuffer(2));
    data.setUint16(0,(ret[0]<<8)|ret[1]);
    return data.getInt16(0);
}

下記のコードによってIFTTTに送信するようにしています。

IFTTTの設定項目として、IFTTT_EVENTIFTTT_KEYがありますが、下記の記事を参考に設定してください。IFTTTからスプレッドシートに記載する方法も載っていますので、こちらの設定に沿っていただければと思います。

https://blog.obniz.io/make/obniz-board-1y-temperature-logger/

//送信データ作成
var formData = new FormData();
formData.append("value1", v);
formData.append("value2", ma);
//IFTTTリクエスト
await fetch(
  `https://maker.ifttt.com/trigger/IFTTT_EVENT/with/key/IFTTT_KEY`,
  {
    method: "POST",
    mode: "no-cors",
    body: formData
  }
);

あと上記の記事を参考にobnizのサーバレスイベントを設定すればサーバを用意することなくobnizとセンサーとIFTTTを設定するだけで定期的にポコポコとセンシングしたデータをあげてくれます。めちゃくちゃ便利なので活用しましょう!

コード全体

まとめ

obnizを活用することで簡単にセンシングして、その結果をスプレッドシートにまとめられます。

ほしいと思っていたデータを活用して、今後にぜひ活用してみませんか!?

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?