「せばな」は言わない

綱の上を歩き、岩を登るエンジニア

【Paspberry Pi】IoT入門 BME280のデータ取得を定期的に実行


はじめに

前回無事に温度と湿度と気圧が取得できましたね。
でもこのままでは一回一回実行しなければいけないので、もはや苦行ですよね。

ここで cron設定をして取得プログラムを定期的に実行するようにしましょう。
ついでに取得したデータをファイルに書き出しましょう。

プログラム微修正だ!!!

取得したデータをファイルに書き出したいので、ちょっとプログラムを修正しましょう。
スイッチサイエンス様のプログラムに計測結果を書き出す処理を追加するゾイ。

まぁ、書き方はいろいろあると思います。僕のコードで良ければ参考にgitへ上げておきました。
sources/bme280.py at master · HyperTK/sources · GitHub

まずは試しにプログラムを実行。
先にデータを書き込むための「env_data.txt」を実行コードと同じ階層に作っておいてください。
プログラム内にテキストファイルのパスをべた書きしているので、ここも自分の環境に合わせて修正してください。

ファイルを作る

$ sudo touch env_data.txt

プログラムを実行

$ sudo python3 bme_file.py 

2018/02/06 21:53:02 temp : 23.97 ℃ hum : 22.46 % pressure : 1000.87 hPa
2018/02/06 21:54:01 temp : 23.98 ℃ hum : 22.62 % pressure : 1001.03 hPa

上みたいにデータが書き込まれていればまぁOKっすね。

cron設定

お次は定期実行するためのcron設定です。
cronの設定方法はこの記事で。
qiita.com

僕はこんな感じで設定しました。
crontabを開いて

$ sudo crontab -e
*/1 * * * * python3 /home/pi/python/bme280/bme280.py

気前よく1分間隔でデータの取得を実行します。
そして、データを取得したファイルの中身がこちらになります

2018/02/06 23:27:01 temp : 24.83  ℃ hum :  22.87 % pressure : 1001.04 hPa
2018/02/06 23:28:01 temp : 24.81  ℃ hum :  23.12 % pressure : 1000.90 hPa
2018/02/06 23:29:01 temp : 24.75  ℃ hum :  23.12 % pressure : 1000.98 hPa
2018/02/06 23:30:02 temp : 24.83  ℃ hum :  22.95 % pressure : 1001.07 hPa
2018/02/06 23:31:01 temp : 24.85  ℃ hum :  22.87 % pressure : 1000.99 hPa
2018/02/06 23:32:01 temp : 24.89  ℃ hum :  22.76 % pressure : 1001.13 hPa
2018/02/06 23:33:01 temp : 24.89  ℃ hum :  22.75 % pressure : 1001.10 hPa
2018/02/06 23:34:02 temp : 24.86  ℃ hum :  22.85 % pressure : 1001.01 hPa

おぉ〜とれてますね!!
次はDBにでも保存していきたいですねー。