第3回

(カテゴリ: 未設定)

早くも最終回です。今回はサーバ側です。まず、第1回で出てきたさくらの通信モジュールを、さくらのIOTプラットフォームに登録しなければなりません。

ここの資料を参照してさくらIOTプラットフォームに登録します。資料はβ版なのですが、現在でもほぼ変わりありません。8ページまで参照し登録、プロジェクト作成を行います。プロジェクト名は何でもいいです。

9ページから17ページまでサービス追加の話になり、資料ではincoming webhookなどを説明してますが、「DataStore API」を追加してください。今回使うサービスはDataStore APIのみです。

続いて18ページ以降に従い、モジュールを登録します。登録すると、20ページのように登録したモジュールのIDが表示されます。このIDをメモっておいてください。あと、連系サービスにDataStoreがあると思います(先ほど登録しましたね)。ここをクリックすると、Tokenが表示されます。これもメモって下さい。先ほどメモったIDと、このTokenの2つがあればさくらIOTプラットフォームからデータを読み出せるという仕組みになっています。

 

続いて、サーバを用意します。データの流れは電力計本体→さくらIOTプラットフォーム→用意したサーバ→パソコンやスマホ、という流れになります。サーバ側のプログラムはPHPを使いますので、PHPが使えるレンタルサーバを用意してください。無論自前のサーバを持っていればそれでもいいです。今回はさくらのレンタルサーバ・ライトプランを使うことにします。2週間無料お試しできます。なお、日報メールを送ろうとする場合はCRONを使う必要があるのでライトプランではダメです。

パソコンでメモ帳か何かを開き、以下をコピペして、さきほどメモったIDを$module = “*****”の******の部分に入れてください。次に同じくメモったtokenを同様に$token = “******”の******の部分に入れます。終わったら、好きな名前.phpで保存してください(日本語はやめましょう。例:test.php)なお、--------の部分は不要です。

ーーーーーーーーーー

<!DOCTYPE html>
<html lang=”en”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″/>

<?php

$token = “******”; //******のところにtokenを入力します
$module = “******”; //******のところにmoduleを入力します

$x = 1; //調整係数

$url = “https://api.sakura.io/datastore/v1/channels?token=”.$token.”&module=”.$module.”&size=1&before”.date(‘Y-m-d’, strtotime(“+ 1 days”)).”&channel=1″;

$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url);
curl_setopt( $ch, CURLOPT_HEADER, false );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$result = curl_exec( $ch );
curl_close( $ch );
$data = json_decode( $result, true);
$now_power = round(($data[‘results’][‘0′][‘value’] * $x / 500),2);

$url = “https://api.sakura.io/datastore/v1/channels?token=”.$token.”&module=”.$module.”&size=1&before”.date(‘Y-m-d’, strtotime(“+ 1 days”)).”&channel=11″;

$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url);
curl_setopt( $ch, CURLOPT_HEADER, false );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$result = curl_exec( $ch );
curl_close( $ch );
$data = json_decode( $result, true);
$today_power = round(($data[‘results’][‘0′][‘value’] * $x / 500),2);

echo “Now:”.$now_power.”kWh<br>”;
echo “Today:”.$today_power.”kWh”;
?>

</body>
</html>

ーーーーーーーーーーーーーーー

保存したらFTPソフトでさくらのレンタルサーバにアップロードします。その後、先ほどアップロードしたphpファイルをパソコンか携帯から見てみましょう。データは朝5時から夜20時前まで5分おきに送信されています。現在の発電出力と本日の累計発電量が表示されていれば、成功です。私のテスト環境(パネル12.24kW、パワコン5.5kW x 2)では下記のような結果になりました。Nowが現在の発電出力、Todayが本日の累計発電量です。

demo

エラーが出た場合は、サーバ側にトラブルがあります。どこかうまくいっていません。

Now:0kWh

Today:0kWh

と出る場合は、本当に発電してない(夜間とか雨とかパワコンの故障とか)か本体の製作ミスか通信圏外か通信時間外か、他の何かでしょう。原因が究明されることを祈っております。

※表示されるのは最終発信データです。つまり昼に20kW発電している状態で停電となった場合、夜になってもずっとNow:20kWと表示されます。それを見て異常と思ってください。もしくはプログラムを改変してデータ発信時刻を取得するなどの方法もあります。

※実際の発電出力とズレが出る場合は、上記ファイル(*.php)のなかの調整係数を変更してください。私の環境では数%低めに出ましたので、$x = 1.03に変更しました。3相だと1.73にしてください。

お疲れ様でした。

よりそいプラン 太陽光発電ムラ市場メルマガ登録

太陽光発電ムラ市場セカンダリ無料査定



太陽光発電ムラ市場 パワコンの電気代を10分の1に!

コメントを残す