RPi-Cam-Web-Interfaceで監視カメラ製作(画面にアノテーション編)

前回Raspberry Pi Zero WにセットアップしたRPi-Cam-Web-Interfaceではデフォルトで画面上側に日付と時刻が表示されていますが、これに加えて文字を表示させることができます。残念ながら現在のところ2バイト文字は表示されませんが、用途によっては役に立ちそうです。

今回は外気を測定して得られた温度・湿度・気圧を表示させます。秋月電子通商から購入したbme280をRaspberry Pi zero W につないで計測する予定だったのですが、Zero W本体の発熱の影響を受けてしまい正確に気温を測ることができませんでした。ESP8266以上に熱を持つようです。センサーは雨などで水に濡れることもNGなので設置場所に相当の工夫が必要です。少々甘く考えていました。残念ですが今回はあきらめます。

代わりに以前作製したESP-WROOM-02使用、温度・湿度・気圧計のMQTTデータを使います。本当はこれをZero Wにリプレースしたかったのでした。

自宅Debian jessie サーバで稼働しているMQTTブローカ Mosquitteに気温,湿度,気圧が約5分間隔でパブリッシュされています。サブクライブするそれぞれのトピックは 気温:/home/garage/Temperature/state 湿度:/home/garage/Humidity/state 気圧:/home/garage/Pressure/stateです。

RPi-Cam-Web-Interfaceでは /dev/shm/mjpeg/user_annotate.txt の内容が画面に表示される仕組みになっています。mosquitte_clients を使ったshell scriptをcronで15分ごとに起動させてMQTTデータを取得しファイル書き込みを行います。

■ Zero Wに最新版のmosquitte_clientsをインストールします

$ wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
$ sudo apt-key add mosquitto-repo.gpg.key

$ cd /etc/apt/sources.list.d/

$ sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list

$ sudo apt-get update
$ sudo apt-get install mosquitto-clients

■ shell script 作製

$ cd ~
$ mkdir scripts
$ cd !$
$ vim.tiny mqtt_get.sh
------------------------------ 以下の内容を作成 ------------------------------
#! /bin/bash

RESULT=`mosquitto_sub -h SERVER_ADDRESS -C 3 -t /home/garage/Temperature/state -t /home/garage/Humidity/state -t /home/garage/Pressure/state`

printf "T:%.1fC H:%.f%% %.fhPa" ${RESULT} > /dev/shm/mjpeg/user_annotate.txt

SERVER_ADDRESSはmosquittoが動いているサーバのアドレスです

■ 実行権を与えてcronに登録します

$ chmod u+x mqtt_get.sh
$ crontab -e
------------------------------ ファイルの最後に追記 ------------------------------
# Edit this file to introduce tasks to be run by cron.
・
・
・
# m h  dom mon dow   command

*/15 * * * * ~/script/mqtt_get.sh

■ RPi-Cam-Web-Interface側の設定

Camera Settings > Annotation (max 127 characters) > %aを記入して OK

文字のsize等も調整できます。

webから情報を取ってきて表示させるなど、応用ができそうです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です