WeeklyとMonthlyのバッチにもTwitter機能を組み込んだ。
一応テスト。
何故か動いていなかった。
原因は単純な記述ミス。かっこわる。
正:
0 1 * * * php /home/pi/www/bat/daily_sum.php
0 2 * * 0 php /home/pi/www/bat/weekly_sum.php
0 3 1 * * php /home/pi/www/bat/monthly_sum.php
昼休みにWEBページのメニューを書いてみた。
5min Report: yyyy/mm/dd Hour
・指定時刻の5分毎
Hour Report: yyyy/mm/dd
・指定日の時間毎
Day Report: yyyy/mm/dd
・指定日から30日間
Weekly Report: yyyy/mm
・指定月から3カ月間の週別
Month Report: yyyy/mm
・指定月の日にち毎
Monthly Report: yyyy
・指定年の月別
5つのDBへデータを蓄積するプログラム3つが一応完成。
下記の感じでCRONに登録してみた。
さて無事動作するかな。。。
毎月のテストは来月にならないと結果がわからないが。。。
さて次は、グラフ作成とTwitter機能ですな。
全体の60%ぐらい終わった感じかな。
0 1 * * * /home/pi/www/bat/php daily_sum.php 毎朝1時
0 2 * * 0 /home/pi/www/bat/php weekly_sum.php 毎日曜2時
0 3 1 * * /home/pi/www/bat/php monthly_sum.php 毎月1日3時
PHPのプログラミング用に、今まではphpStormを使っていたが、
今回からSublime Textにしてみた。良い感じです。
なので支払いを済ませた。価格はphpStormの年間費用と同じぐらい。
From amount ¥8,923 JPY
To amount $70.00 USD
今までが順調過ぎたのか? 行き詰まった。
DB用にPhpMyAdminをインストールしたが、動作しない。
※正確には空白ページが表示
切り分けでMySQLのログインとか、テーブルチェックを行うが問題なし。
3号機でセットアップしたが、試行錯誤もあったので、
帰宅後、1号機で試すが(シンプルインストール)、結果は同じで空白。
無いと困る訳じゃ無いので、諦めた。
その代わり、レンタルサイト(Sakura)のPhpMyAdminを使ってテーブルを作成。
そのSQL文をコピペで転用することにする。
3号機でうまく動作したので(間違いあったけど)、帰宅したら本番(2号機)で試す予定。
ちょとSQLメモ:(受け渡し)
クローン複製後の再設定内容を記録。
※今のクローンが暫くメインとなるため
KB,Mouse,HDMI,LAN接続後、本体起動
※.151が未使用なら、SSHからも設定出来るかな
sudo raspi-config にて、
・ホスト名変更
・パスワード変更
・一応バージョンアップ
sudo nano /etc/network/interfaces にて、
固定IPアドレス(eth0,wlan0)変更
vncパスワード変更
vncpasswd
sambaパスワード変更
sudo pdbedit -a pi
MYSQLパスワード変更
mysql_secure_installation
MYSQL起動
mysql -u root -p
OSバージョンアップ
帰宅後、靴箱兼 機器置き場に2号機を設置。
USB延長ケーブルで接続したら、
実際の温度計とほぼ同じ温度情報が取得出来て一安心。
集計プログラムの仕様をメモ程度に書いて、早速プログラミング。
悩んだあげく、手っ取り早そうなPHPを採用。(単に自分が慣れてるだけ)
PHPをWEB処理以外で作ったのは初めて。こういうことも出来るのね。。。
このPHPプログラムは、翌朝にバッチで実行予定。
前日のデータを絞り込んで、平均、最大、最小温度を集計して書き出し。
もうちょっと仕様をきっちり決めないといけないが、
とりあえず実験も兼ねて作成&実行。
次は集計の仕様をきっちり決めて、残りのバッチを作成。
そしてCRONTABに仕込む。
更にDB化もやってみる予定。
それが終わればグラフ化かな。(ここは初チャレンジ)
色々と調べていたらMQTTというサービスの存在を知った。
ほんと、新しいテクノロジーがどんどん出てきてて、知らない事ばかりだ。。。
もうデータを自分の所に蓄積って時代じゃないのね。
※確かにIOT機器上でデータを貯め込むのもどうかと思うが
メモ:
https://shiguredo.jp/#mqtt
さて、どうやってデータを管理(蓄積)していくべきか、、、。
※当初は下記の1,2コース
1.ローカルCSV管理
2.ローカルDB管理
3.別サーバDB管理
4.MQTT経由別サーバ管理(DB?)
IOT機器側の負荷を考慮したら、4が理想でしょうね。
とりあえず、当初の予定通り上記1,2コースで進めるかな。
※外部公開する訳じゃないから負荷も大きくないだろうし
データの蓄積/管理方法を変更:
・1分毎→5分毎
・ファイル連続→年別フォルダ内に蓄積
いずれもCRONTABの修正で解決できる。
/var/log/temper.log/`date “+\%Y”`/`date “+\%Y_\%m”`.log
温度が30度でレポートされる件は、
恐らくUSBが本体直付けのため、本体の影響を受けていると思われる。
USB温度計を接続。
ググりながらプログラムを実行。
※日付フォーマットを自分好みに変更
権限などで試行錯誤の結果、無事成功。
次はCRONTABを使ってスケジュール化。
存在は昔から知っているが、初めて自分仕込んだかも。
これまた試行錯誤の結果、無事動作。
5分毎の実行だったが1分毎に変更。
更にファイル名をYYYYMMとした。
これまた試行錯誤の結果、無事動作。
ほんと手探りです。。。
とりあえず月単位のファイルにしたので、1ファイル4.4万ラインか、、、。
データの取得タイミングを再検討ですな。
データが落ちてくる仕組みは完成したので次は、
DB化、グラフ化(WEB)ですかね。
温度計合ってるのかな、30度もあると思えない(体感20度ぐらい)。