開発動機:
ある地方都市で、道の駅の生産者コーナーの個別の在庫管理をうまく出来る解決策を募集していたことから起草し、例えば、農家の無人販売の在庫管理や、台風などの自然災害が接近しているときに、危険と思われる場所に一時的に監視のために置くことができるカメラが必要ではないか?と考えて、その仕組みを考えてみた。
要件:
そこで必要となる条件が、電源も無くWifiない場所に設置でき、操作条件もシステムの知識が無い人にも簡単に使えるように乾電池を電源として、特別な操作を必要としないものと考えた。
その一つの解決策としてZigBeeで画像を送る仕組みを考えて実験してみた。テストしたシステム構成は以下のようになります。ArduCamで撮った画像をRaspberry Pi Picoを通して、ZigBeeからRaspberryPi4Bに送ることにしました。
システム構成:
クライアント(カメラ側)
Digi XBee3 Zigbee 3.0 TH
Raspberry Pi Pico
Arducam Mini Module Camera Shield with OV2640 2 Megapixels Lens Compatible with Arduino UNO Mega2560 Board
サーバーサイド
ZigBeeで送られてきた画像を保存。
Raspberry Pi 4B
ZigBee
詳細:
クライアントの実機は以下のようにしました。ブレッドボードだと、持ち運び時に部品が外れたり、振動にも弱いので、PCB基板をJCLで5枚で2どるほどでできるので、Fritzingで作ったブレッドボード図からプリント基板図を利用しては注してみました。できたものが以下のようになります。
このクライアントから320x240のJPEG画像を1パケット80バイト程度にして分割して送ってみました。室内で実験したときには、1画像ごとに2、3件のチェックサムエラーが発生するために、再送機能も必要になりました。
サーバ側で画像の受け取り側は、Pythonを使って画像を受けとり、それを保存しました。
結果:
上記にあるように、障害物がない状態で400メートルまでは画像の送受信ができました。まだ、受け取り側のPythonに少し改善の余地があるように感じたので、今回取れたログを分析して、プログラムの改善や、場所を変えてテストを重ねて実用性を確認したいと思います。