ラズベリーパイ2
FreeBSD
自宅サーバをラズベリーパイ4で作るため、
余ったラズベリーパイ2で
IOT(鯖4猫)を作ります。
その4

2022年
11月23日
水やりに水切れセンサを取り付けました。フォトインタラプタでGPIに入力します。


使ったのは100均の金魚すくい。プラスチックはポリプロピレンで接着剤が効かないので半田ゴテで溶着しました。

11月25日
水切れセンサのフォトインタラプタにケーブルを取り付けました。


11月28日
手持ちのセンサに温湿度とBMP280(温度と気圧)があったのですが、温湿度センサのインターフェースがワンワイヤのため、1つで温湿度と気圧の測れるBME280をアマゾンで購入しました。

I2Cコマンドでスキャンするとアドレス60が現れました。

ネット上にSPI接続のPIC用のコードがあったので、借用してI2C接続に変更して使いました。それらしい値が出てきます。部屋に設置してある湿度計とは大分ずれていますが。


11月29日
手持ちのセンサに照度センサのTSL2561があるのでこれも接続してみます。

I2Cコマンドでスキャンするとアドレス29が現れました。照度を読み出すプログラムはセンサボードを売っているSeeedのアルドウィーノ用のコードです。C++もどきをCに変更してテストプログラムに組込みました。昼間の照明無しで6ルクス、LEDライトの下で1454ルクスです。月明りが数ルクスらしいので低いように思います。

11月30日
照度、温湿度、気圧の環境データは15分に1回ラズベリーパイ4のサーバにソケット通信で送るようにしました。ローカルのSDカードの書き込み回数をなるべく少なくするためです。サーバからPCにコピーしてsedでカンマ区切りに変更できます。


オープンオフィスのCalcでグラフにしてみました。

12月3日
gnuplotを使って15分毎に送られる4つのデータからグラフを作ります。スクリプトで自動的にグラフを生成して、pngイメージも作ります。初めにPC上で細かい設定をして綺麗にグラフが出るようにスクリプトを作成しました。

12月5日
サーバ側にもgnuplotをインストールして、朝一番にcronで前日の24時間分のデータを抽出して上で作成したスクリプトを使ってグラフイメージを作成します。WEBページ内にイメージ入れて、外から参照できるようにしました。この日は曇っていてグラフが平坦でつまらないですが、クリックすると実ページを表示します。

12月6日
パネルスイッチを使って餌を充填する動画です。入口が狭いため、一度に入れると詰まるのでバラけさせて投入します(笑)。送るボタンを押して11回分を充填できます。現在は3種類の餌をローテーションして使っています。クリックすると約4.7Mバイトの動画をダウンロードします。

水やり器の水切れワーニング動画です。1分に1回センスし、水がなければパネルスイッチのハートビートLEDに同期して、他の2つのLED(ビデオとベルLED)を点滅させます。クリックすると約1.4Mバイトの動画をダウンロードします。

パネルスイッチを使って手動で餌を出す動画です。送るボタンを押せば直ぐ餌が出ます。次の指定時間に出したくなければ、戻るボタンを押して1回キャンセルします。クリックすると約2.3Mバイトの動画をダウンロードします。

12月20日
現在、カメラを一番下に向けた状態で餌入れの半分しか映らないので、もう少し下に向くように修正したいです。

コマンドからビデオストリームが送られているかをチェックできるようにします。ストリーム送出中のプロセス表示はraspividが出現するので、コマンドを組み合わせて最後にwcで行数を数えてチェックします。

ストリームを出していない時のプロセス表示は以下のようになります。

スクリプトを作成して、戻り値で判定できるようにします。

’R’コマンドから確認出来るようにしました。ビデオを送出開始するには’V’コマンドを使い、VLC側を終了すると自動的にストリーム用のプロセスは無くなります。


