おはようございます。じぇいかわさきです。
さて、PythonでDHT11からデータを取得する方法も確立した。
Pythonが記録するCSVファイルもMariaDBへ取り込むことも出来た。
いよいよ次のステップは、DHT11のデータを取得するプログラムを自動で動かすことだ。
現段階では、Runしたときのみデータを採取するので、所定の時間、または間隔でこのプログラムをRunさせてあげればよい事になる。
簡単なようで、やはり落とし穴がところどころに散らばっていた。

ラズパイに自動運転をさせるには
まず、プログラムを自動で運転させる仕組みが必要になる。Windowsで言うとATコマンドの様なものだ。
ラズパイは基本OSはLinuxなので、Linuxの場合と言うかUnix系のOSでプログラムの自動運転をするには、cronと言うコマンドを使用して自動運転をさせることになる。
このcronであるが、ラズパイの場合は初期値では使えないような設定になっているらしい。
まず、この初期設定を使用できるように変更する必要がある。
方法としては以下の通り。
まず、/etc/rsyslog.confと言うファイルを開いて内容を確認する。このファイルの中でcronの設定がコメントアウトされているようであれば、このコメントを削除すればよいことになる。
ファイルを開いてみると、やはりcronの前に#がついてコメントされている。この#を取り除けばよい事になる。

[ads]

このようにして、保存すれば完了。しかし、このままではcronは未だ起動していないので、cronを起動させるためrsyslogを再起動する。
sudo /etc/init.d/rsyslog restart

次に、cronが動いたときに動作状態をログに記録させるように、cronのログレベル設定をしてあげる。
設定ファイルは/etc/default/cronになるので、このファイルを開いて、「EXTRA_OPT=””」となっている部分があるので、その部分を「EXTRA_OPT=”-L 15″」に修正する。
最後に、cronを再起動させて、今修正した設定ファイルを反映させる。
sudo /etc/init.d/cron restart
ここまでで、ラズパイのcronを起動させる設定が完了しました。いろいろとメンドクサイですね。
所定の時間でプログラムを動かすようにする
cronが起動しただけでは、cronは何を実行すればよいのかが、分からないので、cronが自動運転をするような設定をしてあげなければいけない。
cronに自動運転をさせたい内容は、10分毎にrasptemp.pyと言うプログラムを実行させる事。
まず、cronにこのプログラムを実行させるためにはcrontabと言うファイルに実行内容を書き込まなければいけない。
そのためには、以下のコマンドを実行してcrontabを編集モードで書き込む。
crontab -e

一番最初に立ち上げた時、crontabの編集にどのエディターを使用するのか聞いてくる。自分の好みにすればよいので、自分は使い慣れたvimを指定した。

[ads]
まずは、10分毎に指定したパスにあるプログラムを動かすと言うことから、以下のように設定した。
《設定抜粋》
/10 * * * * ‘/home/pi/rasptemp/rasptemp.py’

そして、cronを再起動すれば完了となる。

動いていると思っていたが
crontab設定を実施して、cronを再起動したので問題なければ10分毎にデータを取得しているはず。
cronをrestartしてから1時間程度して、実際にデータが取得されているのかを確認するために、CSVファイルの中身を開き確認してみた。
しかし、そのCSVファイルは全く更新されておらず、以前に見慣れたデータのみが記述されていた。
結果、cronは動いていないと言うふうに見える。

cronの状態を確認するには、cron statusと言うコマンドで確認することができるらしい。今回設定した内容ではcronが動いていないのか、実際にコマンドを使い確認してみた。
sudo /etc/init.d/cron status
cronの状態は以下のように表示された。

この状態表示から読み取れることは、Active:と言う場所が、active(running)となっているので、このcronはちゃんと動いていることになる。
また何か記述方法か、設定が間違っていると言うことになる。
またまたトラブルシュートをしなければ。
まとめ
今回はPythonで書いたプログラムを、cronを使用して自動運転させる方法を考えて、挑戦してみた。
しかしながら、また最後の最後で躓いたようである。
そもそも、Linux自体をよく理解していない事もあるのだが、それにしても毎回詰めの部分で躓くパターンが増えている。
まあ一筋縄でいかないから、楽しくもあるんですがね。
とりあえず、crontabの設定さえすれば自動運転ができることまでは確認できている。あとは本当に動くか実証すればよいだけである。
もう一度記述方法を確認して、完全に動くようにしよう。
多分、今回も記述方法じゃないかな。
[twt]
