IoTに挑戦

【IoTに挑戦】実際にCSVファイルを出力してみる

ファイル

おはようございます。じぇいかわさきです。

スポンサーリンク

 

さて、前回までにCSVファイルで出力する準備を進めてまいりましたので、今回は実際にCSVファイルが出力されるのか、実験をしてみたいと思います。

 

この実験によって、ちゃんと出力ができれば、次はDBに入れ込む方法を考えることになりますので。

 

それでは、今までやって来たことが正しいかの証明に入ります。

 

ファイル

 

 

前回作成ファイルを使ってみる

前回作成したファイルを使って、一定時間毎に温湿度データがファイルに書き出されるかの確認を実施してみる。

 

前回のファイル、rasptemp.pyを呼び出してみる。

ファイル出力

[ads]

 

緑に白三角の実行ボタンを押して、プログラムを実行してみる。

 

連続出力

 

実行する度に、>>> %Run rasptemp.pyという文字が繰り返されるだけで、今までのようにタイムスタンプと温湿度がShellに表示されない。

 

とりあえずは実行をしていることはわかるが、本当に大丈夫なのか?非常に心配になる。

 

ファイルに書き出す前のプログラムの場合は、printコマンドを使って読み込んだデータを表示していたので、Shellの部分に読み込んだデータを表示していた。

 

しかし、今回は読み込んだデータを、そのままCSVファイルに書き込んでいるので、printコマンドが実行されていないため、Shellの表示が無いことが理解できた。

 

最初は、あれ?プログラムを間違えてしまったのか! 

 

そう思ってみたけれど、よくよくソースコードを見ていくと、printコマンドのラインが無くなっているので、表示されなくて当たり前なんだと理解できた。

 

しかし、未だ手動でCSVファイルに書き出している状況なので、このprint文は残しておいても良かったのかもしれない。

 

そうすれば、実行される度にデータが表示されるので、表示されていてCSVファイルに無かったら、ファイルへの書き込みが上手く行っていないということで、問題の切り分けがしやすくなるからね。

 

実際には、10回以上手動で実行を行ってファイルの確認をしてみようと思っている。

 

 

果たしてファイルはできているのか?

print文をなくしてしまったので、本当にファイルができているのかすごく心配であったが、ファイルマネージャーを使用して指定DIRの確認をしてみた。

 

今回、書き込みを指定したパスは、home配下にあるrasptempというDIR内に、temp_humd.csvというファイルを書き出しているはず。

 

最初はなく、指定ファイルが無いので改めて作った形になっている。

 

最初はこのように、モジュールとメインプログラムしか無かった。

 

ファイル

[ads]

 

それが、プログラムが実行されると、このようにプログラムで指定しているtemp_humd.csvというファイルがちゃんとできあがっているではないですか。

 

とりあえず、CSVファイルは書き出しているので、目的の半分は達成できたことになる。

 

 

ファイル確認

 

後は中身が、タイムスタンプと温湿度データがちゃんと入っているかになる。

 

指定したデータが入っていれば、いちようプログラムは正常に動作していることとして判定できる。

 

それでは、ラズパイ用と言うか、Linux用のExcelのようなプログラムで、今回書き出したCSVファイルを開いてみる。

 

 

データ確認

 

CSVファイルを開いてみると、ちゃんとタイムスタンプと温度、湿度の3カラムのデータがきちんと入ってることが確認できた。

 

これで、前回作ったプログラムが、ファイルがない場合にはtemp_humd.csvというファイルを作成し、作成された後は、データを追加していく事が立証された。

 

これで、今回作ったプログラムは100%間違いなく動作しているということになった。

 

大きく前進した。

 

 

まとめ

今回は、DBに読み込ませるためのCSVファイルを、センサーから読み込んだ値に、日時を付加してデータとして保存するということの実験を実施した。

 

非常にかんたんなことかもしれないが、外部センサーのデータを読み込み、加工しやすいようにDBに保管するための、準備データの作成までできたことになる。

 

次に実行しなければいけない事は、まず手動で実施したプログラムの実行を自動で実施することを考えなければいけない。

 

そして、今回出来上がったCSVファイルを使って、DBを作り格納用テーブルを作成し、CSVファイルがちゃんと読み込めるのか、DBの構築と確認の実験をする必要がありますね。

 

こういう動作は、プログラミングと一緒で、一つひとつの動作をモジュール化し、そのモジュールで動作確認と保証をすることにより、連結での作業と確認項目を減らし、完成度を高める方法となる。

 

自動測定の部分は未だ直ぐでなくても良いので、やっぱりDBのテーブル作りを次にしねくてはいけないでしょうね。

 

次はいよいよDBのテーブル作りに挑戦だ。

 

[twt]

ABOUT ME
じぇいかわさき
進撃の社畜/弱小プロブロガー 本ブログは、還暦で定年の世代の筆者が、まだまだやれるという事を証明するために新たな事に挑戦した事を情報発信しているブログです。同世代の人達に対して、まだまだいろいろと頑張れる、第二の人生を楽しく生きていく為に現状維持は退化、失敗の反対は行動しないことを座右の銘とし、思い立ったことにチャレンジした記録です。また、せっかく稼いだ収益を騙し取られないように、毎日来る迷惑メールなどのネットリテラシーについても情報発信をしています。 このブログは ネットリテラシー ブログ 働くこと について書いており、第二の人生で頑張る同世代の心に刺さる記事を目指してます。人生100年、まだまだがんばれます。 >> Twitterをフォローする