amazonでESP32CAMとUSBシリアルモジュールがセットになっている商品を1680円で購入しました。以前、Raspberry PI用のカメラモジュールを購入して、色々やってみた時には時間を浪費しただけで、期待した成果は得られなかったため、今度はダメ元的な気持ちでチャレンジしてみました。
やってみると、これが意外に超簡単! サンプルプログラムをコンパイルして書き込むだけの簡単さです。一応、書き込むためのツールであるUSBシリアルモジュールの接続などは、ちゃんとやらなければなりません。ESP32DevKitのように、書き込み時に押し釦スイッチを押す順番が微妙に違うとエラーになるなんてことはありませんでした。
サンプルプログラムは、WiFiでネットワークに接続し、HTTPサーバーが起動するというものです。この時、IPアドレスはDHCPで割り当てらるものを使うようになっているので、シリアルポートに出力されるメッセージを見て、IPアドレスを読み取る必要があります。(これは不便なので、固定IPアドレスにプログラムを変更しました。)
HTTPサーバが起動しているので、パソコンなどのブラウザを起動して、http://192.168.x.xというようにしてESP32CAMに接続します。すると、次のような画面が表示されるので、一番上のメニュー項目であるResolutionで、QQVGA(160x120)を選択して、StartStreamボタンを押すと動画が表示されます。QQVGAだと毎秒15フレーム位です。分解能を上げるとフレームレートは下がります。
StopStreamボタンを押して、GetStillボタンを押すと、静止画像が得られます。最高の分解能であるUGXA(1600x1200)でも1秒位で画像が表示されます。
色々試してみると、これが中々良くて、色々使えそうです。
一度プログラムを書き込めば、電源(DC5V)が必要なだけです。解像度の変更や動画、静止画の表示に指示は全部ワイヤレスで指示できます。これを月面反射通信のアンテナ姿勢制御装置に取り付ければ、月の位置をリモートでモニターすることができそうです。
寸法は、ピンヘッダーやカメラを含めてチロルチョコが2つ分位のサイズに収まりそうなので、VP40のパイプに仕込むことができそうです。早速、ケース(ハウジング)を検討して、実験してみようと思います。
以下に、オリジナルのサンプルプログラムを変更して、固定IPアドレスにする方法(箇所)を示します。
const char* ssid = "Buffalo-G-A9E0";
const char* password = "y34ekxxxxxxxxx";
// appended by H.NAMVA, following 4 lines
IPAddress ip(192, 168, 0, 124); // Fixed IP address for this CAMERA server
IPAddress gateway(192, 168, 0, 1);
IPAddress subnet(255, 255, 255, 0);
IPAddress DNS(192, 168, 0, 1);
void startCameraServer();
void setup() {
.
.
.
WiFi.config(ip, gateway, subnet, DNS); // Set fixed IP address appended by H.NAMVA
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
※コメント投稿者のブログIDはブログ作成者のみに通知されます