Xivelyへ太陽光発電のデーターを記録、とりあえず完成
前の記事で太陽光発電の発生電力とパネル電圧をXivelyに登録出来るようになりました。その後、当日の累積発電量も記録できるようにデーターを追加。さらにあれこれプログラムの修正を行った結果、ほぼ完成状態になりました。
システムの構成は以下のようになっています。
▼システム構成図

30Wのソーラーパネルからの電力をGTIでAC100Vに変換。運転状態のデーターはUSBで抜いてラズベリーパイ経由でxivelyの無料のクラウドサービスに書き込みます。
xivelyに登録してしまえばこっちのもの。どこからでもリアルタイムで参照出来るのでめちゃめちゃ便利、という仕掛けです。
▼Raspberry Pi

GTIの箱の上にテープで仮固定しています。この記事には関係無いですが、sambaを動かしているのでファイルサーバーとしても動作しており、Windowsから写真に写っているUSBメモリを共有しています。
そういえば今月号(2014年7月号)のトラ技はラズベリーパイの特集でした。発売から2年経つのに、いまだに人気が衰えないのは流石です。
▼Xiveryのグラフ

上から電力(W)、パネル電圧(V)、当日の積算電力(Wh)のグラフです。リアルタイムで更新されるので、自宅のベランダの日当たり状態が外にいても判るので面白いです。
こう書くと順調に行ったみたいですが、実はxivelyへのデーターの書き込みがたまに止まってしまう現象が発生してしまい、ちょっとやっかいなことになっていました。
データーの登録はpythonで書いたプログラムで行っていますが、これがネットの書き込みリトライ回数超過エラー(?)でたまに止まることがありました。電力だけ登録している状態ではほとんどエラーが出なかったのですが、データを増やして電圧と積算電力まで記録させると一日に数回止まる状況になっていました。インターネットの混み方にも関係があるかもしれません。
プログラムを再起動させるにはLinuxのコンソールからの操作が必要ですが、いちいちそんなことやってられません。また、そもそもエラーが発生しても大丈夫なようにpythonのプログラムを書くのが正しい対処方法なのでしょうが、まだそんな実力はありません。
そこで泥縄式の対処法になりますが、Linuxのシェルスクリプトで監視(psコマンド)し、プログラムの停止を検出したら自動的に再起動させる仕掛けにしました。また、データーの登録は3種類のデーターをまとめて一度に送信していましたが、これを念のために順番に一つづつ分けて送信する方式に変更しています。
起動用のシェルプログラムrunxi3.sh (拡張子はtxt、文字コードはSJIS、行末はCR+LFになっています)
nohup ./runxi3.sh& と起動すると、pythonのプログラム(xi27.py)を起動。5分周期で監視を行い、もし停止していたら自動的にxi27.pyを再起動します。
pythonoのプログラム、xi27.py (拡張子はtxt、文字コードはSJIS、行末はCR+LFになっています)
5秒間隔で3種のデータを送信、つまり15秒周期でデーターの更新を行っています。 pythonは初心者なので変なところはご容赦を。汗;
この状態でしばらく運転してみる予定です。しばらくは太陽高度が高いので午前中は本格的な発電が出来ない状態です。これが午前も発電するようになっていくのを見るのが楽しみです。
データーは下記URLで公開しています。
https://personal.xively.com/feeds/1297295899
システムの構成は以下のようになっています。
▼システム構成図

30Wのソーラーパネルからの電力をGTIでAC100Vに変換。運転状態のデーターはUSBで抜いてラズベリーパイ経由でxivelyの無料のクラウドサービスに書き込みます。
xivelyに登録してしまえばこっちのもの。どこからでもリアルタイムで参照出来るのでめちゃめちゃ便利、という仕掛けです。
▼Raspberry Pi

GTIの箱の上にテープで仮固定しています。この記事には関係無いですが、sambaを動かしているのでファイルサーバーとしても動作しており、Windowsから写真に写っているUSBメモリを共有しています。
そういえば今月号(2014年7月号)のトラ技はラズベリーパイの特集でした。発売から2年経つのに、いまだに人気が衰えないのは流石です。
▼Xiveryのグラフ

上から電力(W)、パネル電圧(V)、当日の積算電力(Wh)のグラフです。リアルタイムで更新されるので、自宅のベランダの日当たり状態が外にいても判るので面白いです。
こう書くと順調に行ったみたいですが、実はxivelyへのデーターの書き込みがたまに止まってしまう現象が発生してしまい、ちょっとやっかいなことになっていました。
データーの登録はpythonで書いたプログラムで行っていますが、これがネットの書き込みリトライ回数超過エラー(?)でたまに止まることがありました。電力だけ登録している状態ではほとんどエラーが出なかったのですが、データを増やして電圧と積算電力まで記録させると一日に数回止まる状況になっていました。インターネットの混み方にも関係があるかもしれません。
プログラムを再起動させるにはLinuxのコンソールからの操作が必要ですが、いちいちそんなことやってられません。また、そもそもエラーが発生しても大丈夫なようにpythonのプログラムを書くのが正しい対処方法なのでしょうが、まだそんな実力はありません。
そこで泥縄式の対処法になりますが、Linuxのシェルスクリプトで監視(psコマンド)し、プログラムの停止を検出したら自動的に再起動させる仕掛けにしました。また、データーの登録は3種類のデーターをまとめて一度に送信していましたが、これを念のために順番に一つづつ分けて送信する方式に変更しています。
起動用のシェルプログラムrunxi3.sh (拡張子はtxt、文字コードはSJIS、行末はCR+LFになっています)
nohup ./runxi3.sh& と起動すると、pythonのプログラム(xi27.py)を起動。5分周期で監視を行い、もし停止していたら自動的にxi27.pyを再起動します。
pythonoのプログラム、xi27.py (拡張子はtxt、文字コードはSJIS、行末はCR+LFになっています)
5秒間隔で3種のデータを送信、つまり15秒周期でデーターの更新を行っています。 pythonは初心者なので変なところはご容赦を。汗;
この状態でしばらく運転してみる予定です。しばらくは太陽高度が高いので午前中は本格的な発電が出来ない状態です。これが午前も発電するようになっていくのを見るのが楽しみです。
データーは下記URLで公開しています。
https://personal.xively.com/feeds/1297295899
- 関連記事
-
- personal.xively.com への変更通知、来てました
- xivelyの個人ユーザー用のurlが変更されていた
- Xivelyへ太陽光発電のデーターを記録、とりあえず完成
- Xivelyに太陽光発電のデーターを記録
- ベランダ太陽光発電の発電量をxivelyで試験公開開始