フォト
サイト内検索
ココログ最強検索 by 暴想
2025年10月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
無料ブログはココログ

最近のトラックバック

にほんブログ村

  • にほんブログ村

« 習近平氏訪朝前に共産党系メディアが核問題は北朝鮮の経済発展が前提と言っているらしい | トップページ | 当方の資産増加率は2%弱に »

2019年6月29日 (土)

GrovePi+の温湿度センサー(DHT22)からのデータをmatplotlibでリアルタイムグラフ化(その2)GrovePi+のフリーズへの対応

 GrovePi+から温湿度センサーからのリアルタイムグラフ化でフリーズ(freeze)する問題を本ブログの中(GrovePi+のフリーズ)で述べました。
 色々試行錯誤したところフリーズする原因は突き止められませんでしたが、今後の方向性を書いておきたいので一旦記述することとしました。
 まず、今までの試行錯誤からCSVファイル化するときとMatplotlibでグラフ化するときに起きているようでしたので、その辺を改善したプログラムを作ってみました。
 CSVのファイル化ですが旧プログラム(GrovePi+の温湿度センサーから得たCSVファイルをmatplotlibでグラフ化(その1)で示したもの)ではPython標準のライブラリーにあるCSVを導入して使っていましたが、新しくpandasライブラリーを使ってみました。
pandasをPythonにまず導入するには、端末(LXTerminal)に

sudo apt-get update
sudo apt-get install python3-pandas

です。

 これにより、Matplotlibに使っていた変数をpandasライブラリーにより作ったところGrovePi+は短くて2.6日間(ダウンロード - 20190612temp.csv)から長くて20.6日間(ダウンロード - 20190427temp.csv)ほどと比較的長く動きました。それでも、Matplotlibが含まれたリアルタイムグラフ化プログラムを実用に使うにはチョットという感じです。ソースコードはダウンロード - grove_dht_graph02.pyです。あと、お決まりですがgrove_dht.pyとgrovepi.pyを本プログラムと同じディレクトリ(フォルダー)に入れる必要があります。


20190612071358_644x544_scrot
   グラフ化したところ途中で温度0.0℃、湿度0.0%、水蒸気量0.00mg/m3となりグラフからはずれている。

20190612071522_899x707_scrot

端末にprintしたところ3750行目のtemp=nan C humi=nan % zyouki=nan mg/m^3のあと3751行目以降がtemp=-1.0 C humi=-1.0 % zyouki=-0.05 mg/m^3となっている。


 今度は、端末にprintしCSVファイルをはき出すだけのプログラムを作ったところ温度、湿度でnun表示が出た後-1となりGrovePi+がフリーズする症状は16.5日間(ダウンロード - 20190629temp.csv)ほどで発生してしまいました。ソースコードはダウンロード - grove_dht_csv01.pyです。

20190629100609_899x707_scrot   
端末にprintしたところ23769行目のtemp=nan C humi=nan % zyouki=nan mg/m^3のあと23770行目以降がtemp=-1.0 C humi=-1.0 % zyouki=-0.05 mg/m^3となっている。


 これらのことから、GrovePi+のフリーズはCSVファイルが関係しているものと推察されます。また、pandasライブラリーによる改善は見られた様な気がしますが限定的であることが分かりました。
 この次は、CSVファイルを生成せず端末へのprintとMatplotlibによるグラフ描画のプログラムを作成して試したいと思います。
 さて、もう一つ試したことがありますので記述しておきます。それは、GrovePi+のファームウエアを新しくすることです。ネットで調べたところこのWevページにVersion 1.3.0として載っていたのでで更新しましたがgrove_dht_graph02.pyプログラム自体が作動しませんでしたので元に戻しました。
 プログラムの変更点が他にも2点ほどあるので紹介しておきます。まず1点は、プログラムの終了で以前はPygameにより作った窓の×をマウスで押して終了する様にしていましたが、printで端末に表示するように既にしており表示が重複していますし、キーボードで[Ctrl+c]を押すことで終了する方法が分かったのでチョットでも軽くするために取り入れました。2つめは、グラフ表示を2時間から1日に変更していることです。

<当ブログ参考>
GrovePi+のフリーズほぼ解消(28日分のCSVファイルをmatplotlibでグラフ化)
GrovePi+のフリーズ解消のもよう
GrovePi+の温湿度センサー(DHT22)からのデータをmatplotlibでリアルタイムグラフ化(その5)
GrovePi+の温湿度センサー(DHT22)からのデータをmatplotlibでリアルタイムグラフ化(その4)GrovePi+のフリーズへの対応
GrovePi+の温湿度センサー(DHT22)からのデータをmatplotlibでリアルタイムグラフ化(その3)GrovePi+のフリーズへの対応
GrovePi+のフリーズ
GrovePi+の温湿度センサー(DHT22)からのデータをmatplotlibでリアルタイムグラフ化

« 習近平氏訪朝前に共産党系メディアが核問題は北朝鮮の経済発展が前提と言っているらしい | トップページ | 当方の資産増加率は2%弱に »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« 習近平氏訪朝前に共産党系メディアが核問題は北朝鮮の経済発展が前提と言っているらしい | トップページ | 当方の資産増加率は2%弱に »