畑にカメラデバイスを設置しています。
一定期間毎に写真を撮影し、Webサーバに送信して保存することで、遠隔地からでも畑の様子を見ることができるようにしています。
数台のカメラを設置し、いろいろな場所の写真を撮影しています。
設置するカメラデバイスとしては、元々は「M5Camera」を使っていたのですが、M5Cameraが販売終了してしまったため、最近設置したものについては、後継の「Timer Camera」を使っています。
この「Timer Camera」は、内蔵バッテリーだけで長期間稼働できるなど、とてもおもしろいデバイスです。
ただ、少々扱いが難しく、同じスケッチを使っていても、個体によっては動作が不安定なことがあります。
気温が低い時に動作が不安定になりがちというような感触は得られていますが、原因や対策については今のところ分かりません。
電源周りの回路構成がちょっと変わっていて、その辺りが原因ではないかと推測しています。
そんな訳で、もっとシンプルなESP32カメラデバイスがないか、探してみました。
しかし現状は、技適のついたカメラデバイスは、あまり存在しないようです。
そんな中、M5Stack社が現在販売していて、スイッチサイエンスでも扱っているカメラデバイスに「Unit Cam Wi-Fiカメラ」というものがあります。
M5CameraやTimer Cameraとは異なり、ケースには入っておらず、基板がむき出しのデバイスです。
搭載されているイメージセンサは、M5Cameraと同じ「OV2640」です。
他のカメラデバイスよりも単純な回路構成になっているのが特徴で、回路図を確認したところ、ESP32、イメージセンサの他には電源レギュレータ、LED、抵抗、コンデンサなどしか使われていません。
USBシリアル変換さえ搭載されていないため、プログラムを書き込むには、別途USBシリアル変換基板を用意する必要があります。
私としては、ケースに入っているデバイスの方が扱いやすくて都合がよいのですが、回路構成がシンプルなのは魅力的です。
他に選択肢もなさそうなので、この「Unit Cam Wi-Fiカメラ」を一度試してみることにしました。
早速購入しました。
カメラ基板のみの製品と、基板に加えて取替用のイメージセンサと組立式のケースがセットになった製品があります。
また、スケッチを書き込むためには「ESP32ダウンローダキット」も必要です。
「ESP32ダウンローダキット」には、端子の並びを「Unit Cam Wi-Fiカメラ」に合わせるための変換基板が付属しているので、この基板にピンヘッダとピンソケットを取り付けます。
本来はこの状態でカメラ基板と接続するのだと思いますが、接触が今ひとつで、うまく書き込みができなかったため、今回はカメラ基板側にもピンソケットを取り付けました。
「Arduino IDE」を使って、サンプルスケッチを書き込んでみます。
実は、「Arduino core for the ESP32」の最新バージョン(2.0.2)を使った場合、スケッチのコンパイル、書き込みはできるものの、カメラデバイスが認識できないという問題が生じました。
情報があまりなかったのですが、どうも「Arduino core for the ESP32」に含まれている「esp32-camera」ライブラリにバグがあるようです(参考にした記事は こちら)。
前バージョンの「esp32-camera」ライブラリならエラーにならないとのことです。
そのため、「Arduino core for the ESP32」のバージョンを落としていき、どのバージョンを使えば大丈夫か試してみました。
その結果、「2.0.0」〜「2.0.2」はNG、「1.0.6」でOKとなりました。
(M5Stack社のボードマネージャを使った場合は、「2.0.0」~「2.0.2」はNG、「1.0.9」でOKでした。)
そのため、以降の作業は「Arduino core for the ESP32」のバージョン「1.0.6」を用いて行います。
「Arduino IDE」のボードマネージャで「esp32 by Espressif Systems」のバージョン「1.0.6」をインストールし、「ツール」>「ボード」>「ESP32 Arduino」>「M5Stack-Timer-CAM」を選択します。
その上で、ボード設定の「PSRAM」の項を「Disable」に変更します。
「ファイル」>「スケッチ例」>「ESP32」>「Camera」>「CameraWebServer」を開きます。
「Select Camera model」で「CAMERA_MODEL_M5STACK_PSRAM」を選択、「ssid」と「password」に使用しているWi-FiルータのSSIDとパスワードを入力して、「Unit Cam Wi-Fiカメラ」に書き込みます。
Webブラウザで、シリアルモニタに表示されるIPアドレスにアクセスすると、「Unit Cam Wi-Fiカメラ」の画像が表示されます。
PSRAMがないためか、画像表示は滑らかではありません。また、「OV2640」の最大画像サイズ「UXGA」は使えず、最大でも「SVGA」のようです。
いずれにしても、これで「Unit Cam Wi-Fiカメラ」の動作確認ができました。
「M5Stamp Pico」のカメラ版のように、低電力でシンプルな使い方ができることを期待しています。