WiFiモジュール(6)2017年05月05日

独立型太陽光発電システム

2011年の東日本大震災の後、非常時用にと独立型の太陽光発電システムを設置しました。もちろん今でも稼働しています。2016年9月にバッテリーを交換したくらいで特に何事もなく動作していると言えます。発電状態やバッテリーの状態はUSB経由でPCでも確認できますが、太陽光発電パネルの発電データをThingSpeak(クラウド)にアップロードする仕組みを追加しました。追加機器の構成はESP-01をコントローラーに、INA219電流センサーで電流と電圧を計測し、ThingSpeakサーバーにデータを5分間隔で送信します。INA219電流センサーでは26V3.2Aまでしか計測できませんが、太陽光パネルの増設をしない限りこれでよしとしています。太陽光パネルの増設または、交換時には電流センサーも交換です。
直近2日間の太陽光発電パネルの発電電圧と消費電流をグラフ化しています。
平均の発電電圧は晴天時20V、夜間3V程度です。

通常時は発電した電気はバッテリーの充電に使われているため(バッテリーはほぼ満充電)時々電流が流れるだけです。

はじめてのIoT(2)2017年05月06日

家電製品の連動

家電製品の中にはある機器が動作したら合わせて動作させたい機器があります。連動させるための仕組みが用意されている場合は良いのですがそうでない場合はまず機器Aの動作を監視することで機器Bを動作させるかどうかの判断を行います。簡単には機器Aが接続されたコンセントに電流が流れているかを監視します。電流が想定されるだけ流れていた場合、機器Bの電源をONにするという仕組みで連動させることが可能です。今回はそんな連動ボックスを作成してみました。
電源連動ボックスの心臓部は、AC100Vの電流を検出するセンサーです。電流センサには U-RD社の極小型クランプ式交流電流センサー CTL-6-S32-8F-CLを使用します。このセンサーはAC100Vラインに接続した負荷の消費電流に応じて1/800の電流が出力されるのでその電流を抵抗に流し電圧に変換後、AD変換してESP8266が処理します。
ESP8266には(ESP-12Eでも)ADコンバーターが1CHしかありませんのでADコンバーターはI2Cに接続できるTI社のADS1115 ADコンバーターを使用しました。ADS1115は4チャネルの入力が可能です。今回はそのうちの2チャネルを使用してAC100Vラインの電流を監視します。残りは未使用ですがその他のアナログ入力(センサーなど)に使用できます。アナログ入力に温度センサーとして3Dプリンターで使用している100KΩのNTCサーミスターを使用しました。デジタル出力のセンサーなら値を読み取るだけで済むのですがアナログ入力の場合は電圧を読み取り、ソフトウエア(計算式)で温度への変換を行います。0~50℃で使用するB値を選択しています。

赤外線リモコンでリレーをON/OFFすることもできるように赤外線リモコン受信モジュールを付けて適当なTVリモコンのキーを割り当てるようにしました。バッファロー社のHDMI切替器に赤外線受信機が付いていたのでそれを流用しました。

出力制御にはAC100VをON/OFFするので2回路リレーモジュールを使用しました。温度湿度制御BOXのときとは異なりこのモジュールはリレー回路と制御回路がフォトカプラーでアイソレートされていますのでESP8266の3.3Vロジック電圧で直接動作します。リレー電源は5Vです。


電源連動ボックスの設定WEB画面です。
左側の2つのボックスがリレーのコントロールBOXです。右側はセンサー類を入れているツールBOXです。ツールBOX内のアイコン近くの数値は現在値を1秒間隔で表示しています。コントロールBOX内の電源アイコンは現在のリレーの状態を表示します。このスクリーンショットではコントロール1にAC電流センサー1を割り当ててしきい値は20mA以上になったらリレーをONにする。コントロール2は赤外線リモコンを割り当てるという設定です。
操作は簡単でツールBOXからアイコンをコントロールBOX内にドラッグするとしきい値設定画面が開きますので条件式と値を設定するだけです。AC電流センサーはmA単位、温度センサー(サーミスター温度センサー)は0.1℃単位でしきい値を設定できます。写真ではコントロール1の設定を温度センサーに変更してしきい値を設定しているところです。WEB画面を凝りすぎたため、PCからのみの操作になります。(スマホからではドラッグ操作ができません。)
また、電源投入時の初期値をフラッシュに保存する機能もついていますので保存時の設定で本機を起動することができます。フラッシュメモリーは書き換え限界がありますので手動セーブにしています。