wami

わみめも

NefryやSofmoといった開発者向けボードを作ったり、AndroidやFlutterアプリ作ったり、Webで遊んでみたり、手当たり次第になんでもやっちゃう人のサイト

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

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

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

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

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

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

必要な部材

回路

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

センサーを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からスプレッドシートに記載する方法も載っていますので、こちらの設定に沿っていただければと思います。

//送信データ作成
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を活用することで簡単にセンシングして、その結果をスプレッドシートにまとめられます。

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

comments powered by Disqus

最近の投稿

カテゴリー

About

NefryやSofmoといった開発者向けボードを作ったり、AndroidやFlutterアプリ作ったり、Webで遊んでみたり、手当たり次第になんでもやっちゃう人
やってること
・ IoTデバイスNefryシリーズの開発、販売
・ 基板やファームを含むハードウエアやWeb、Androidアプリの受託開発
・ 専門学校やハンズオンなどの講師
・「同人ハードウェアmeetup」 #dhwmu や名古屋版IoTLTなどイベントの主催