まず、参考1から、bme280_custom.py と bme280.py のソースプログラムを使わせていただく。
bme280.pyは、bme280_custom.pyをインポートしているため、名前はそのままにした方がよい。
上記2つのプログラムをcronに登録する。
cron … Linax上で動的に定期でプログラムを動かすデーモンプロセス
cronへの登録
postfixをインストールする。
postfix…フリーソフトウェア・オープンソースソフトウェアのメール転送エージェント(MTA)である。※メール転送エージェント(MTA)…電子メールを相手方に送信するためのメールサーバ機能に
おける中心的な機能である。
仕様するプログラムに権限を与える
cron設定を変更する
ユーザーにどのようなことをさせたいのか設定するスクリプトを実行できるユーザー名でないとできない。私は面倒だったので、sudo(スーパーユーザ権限)のrootで編集を行王としましたが、うまく行きませんでした。
※参考1には下記のように記述がありましたが、あまり良くない書き方らしいので、上記のコマンドを推奨します。
以下のコマンドで変更を行いました。
参考サイトの情報が少し古かったので自分なりに変更を加えて以下のようにファイルを書き換えました。
最後の#の上に
を追加しました。
パラメータの内容としたは、左から、分、時、日、月、曜日、ユーザー、コマンドです。
参考によるとここで変更を反映させるために再起動をかけた方がよいそうなので、一応再起動させます。
表示用のPHPファイルを作る
手順の流れとして書きますが、プログラム自体は、参考1の bme280.php を流用させていただきました。ラズパイで上phpファイルを実行するためにはapache2 と php5 のインストールが必要です。
インストールのコマンドは以下の通りです。
pi@のままだとlockファイルが開けないのでrootでログインしてから実行しました。
bme280.phpを /var/www/htmlの中へ置く。
ドロップアンドドロップだとファイル操作エラーになってしまうので、コマンドでファイル移動を行いたいと思います。コマンドは以下の通りです。sudoがないと「許可がありません。」とエラーが出るので、sudoで無理矢理移動しました。ちなみに、bme280.phpはDesktopに置いときました。
webURLに http://localhost/bme280.php と入力しローカルサーバーで取得情報を確認できる。
はずですが、画面が真っ白になってしまった。 http://localhost/ と入力し、apache2が動いているか確認したところ、動いていた。他に考えられることは、php5が動いているか?とプログラムのエラーだと考えられます。取りあえず、phpのhellowarldを試してみた。
hello.php
Hello World と表示されたのでphp5は動いていた。
pythonのエラーチェックを行いたいと思う。参考6では、以下のコマンドでチェックを行っていました。
エラーがないと何もおこらない。
bme280.py と bme280_custam.py に文法エラーはなかった。
pi/bme280-data に日付.csv があったので、bme280.py と bme280_custam.py は正常に動いていた。
ということは・・・
bme280.php がおかしいと思われる。
phpの文を見返し以下の項目を確認してみた
今回はここまで
再確認したところ /pi/bme280-data に動的に値をとることに成功していた。
参考