2022年 春期 応用情報技術者試験 問7
ワイヤレス防犯カメラの設計
I社は、有線の防犯カメラを製造している。有線の防犯カメラの設置には通信ケーブルの配線、電源の電気工事などが必要である。そこで、充電可能な電池を内蔵して、太陽電池と接続することで、外部からの電力の供給が不要なワイヤレス防犯カメラ(以下、ワイヤレスカメラという)を設計することになった。
ワイヤレスカメラは、人などの動体を検知したときだけ、一定時間動画を撮影する。撮影の開始時にスマートフォン(以下、スマホという)に通知する。また、スマホから要求することで、現在の状況をスマホで視聴することができる。
[ワイヤレスカメラのシステム構成]
ワイヤレスカメラのシステム構成を図1に示す。ワイヤレスカメラはWi-Fiルータを介してインターネットと接続し、サーバ及びスマホと通信を行う。
・カメラ部はカメラ及びマイクから構成される。動画用のエンコーダを内蔵しており、音声付きの動画データを生成する。
・動体センサは人体などが発する赤外線を計測して、赤外線の量の変化で人などの動体を検知する。
・通信部はWi-FiでWi-Fiルータを介してサーバ及びスマホと通信する。
・制御部は、カメラ部、動体センサ及び通信部を制御する。
[ワイヤレスカメラの機能]
ワイヤレスカメラには、自動撮影及び遠隔撮影の機能がある。
(1) 自動撮影
・動体を検知すると撮影を開始する。撮影を開始したとき、スマホに撮影を開始したことを通知する。
・撮影を開始してからTa秒間撮影する。ここで、Taはパラメタである。
・撮影した動画データは、一時的に制御部のバッファに書き込まれる。このとき、動画データはバッファの先頭から書き込まれる。Ta秒間の撮影が終わるとバッファの動画データはサーバに送信される。
・撮影中に新たに動体を検知すると、バッファにあるその時点までの動画データをサーバに送信し始めると同時に、更にTa秒間撮影を行う。このとき、動画データはバッファの先頭から書き込まれる。
(2) 遠隔撮影
・スマホから遠隔撮影開始が要求されると撮影を開始する。
・撮影した動画データはスマホに送信され、そのままスマホで視聴することができる。
・スマホから遠隔撮影終了が要求される、又は撮影を開始してから60秒経過すると撮影を終了する。
・撮影中に再度、遠隔撮影開始が要求されると、その時点から60秒間又は遠隔撮影終了が要求されるまで、撮影を続ける。
・ワイヤレスカメラとスマホが通信するときに通信障害が発生すると、データの再送は行わず、障害発生中の送受信データは消滅するが、撮影は続ける。
[ワイヤレスカメラの状態遷移]
(1) 状態
ワイヤレスカメラの状態を表1に示す。
状態名 | 説明 |
---|---|
待機状態 | カメラ部には電力が供給されておらず、撮影していない状態 |
自動撮影状態 | 自動撮影だけを行っている状態 |
遠隔撮影状態 | 遠隔撮影だけを行っている状態 |
マルチ撮影状態 | 自動撮影と遠隔撮影を同時に行っている状態 |
(2) イベント
状態遷移のトリガとなるイベントを表2に示す。
イベント名 | 説明 |
---|---|
遠隔撮影開始イベント | スマホから遠隔撮影開始が要求されたときに通知されるイベント |
遠隔撮影終了イベント | スマホから遠隔撮影終了が要求されたときに通知されるイベント |
動体検知通知イベント | 動体センサで動体を検知したときに通知されるイベント |
動画データ通知イベント | カメラ部からのエンコードされた動画データが生成されたときに通知されるイベント |
自動撮影タイマ通知イベント | 自動撮影で使用するタイマでTa秒後に通知されるイベント |
遠隔撮影タイマ通知イベント | 遠隔撮影で使用するタイマで60秒後に通知されるイベント |
(3) 処理
状態遷移したときに行う処理を表3に示す。それぞれのタイマは新たに設定されると、直前のタイマ要求は取り消される。
項番 | 処理名 | 処理内容 |
---|---|---|
① | カメラ初期化 | 撮影を開始するとき、カメラ部に電力を供給して初期化する。 |
② | 撮影終了 | カメラ部の電力の供給を停止して撮影を終了する。 |
③ | 撮影開始 | バッファを初期化して、スマホに撮影を開始したことを通知する。 |
④ | バッファに書込み | 動画データをバッファに書き込む。 |
⑤ | サーバに動画データ送信 | バッファの動画データをサーバに送信する。 |
⑥ | スマホに動画データ送信 | 動画データをスマホに送信する。 |
⑦ | 自動撮影タイマ設定 | 自動撮影時のTa秒のタイマを設定する。 |
⑧ | 遠隔撮影タイマ設定 | 遠隔撮影時の60秒のタイマを設定する。 |
ワイヤレスカメラの状態遷移図を図2に示す。

[サーバに送られた動画データの不具合]
自動撮影のテストを行ったとき、サーバに異常な動画データが送られてくる不具合が発生した。通信及びハードウェアには問題がなかった。
この不具合は、自動撮影中に動体を検知したときに発生しており、バッファの使い方に問題があることが判明した。
そこで、撮影中に新たに動体を検知した時点で、書き込まれているバッファの続きから動画データを書き込み、バッファのdまで書き込んだ場合は、バッファのeに戻る方式のfに変更した。