ESP-SensorCam

ESP-WROOM-02搭載 WiFi + カメラ + モーション、照度センサ プログラマブルネットワークカメラ基板

カメラモジュールの切り替えについて

製造元の都合により、同梱カメラモジュールがArduCAM-2MPから後継のArduCAM-2MP-Plusへ順次切り替えとなります。

既に2MPをお使いで2MP-Plusへ切り替える場合、ソフトウェアは2箇所修正していただく必要がございます。基板に変更はございません。 カメラモジュールに「Mini-2MP-Plus」の表記があるものがPlus版となります。

(1) ArduCAMライブラリのmemorysaver.hの設定を2MPから2MP-Plusへ変更してください。

(2) ArduCAM-2MPにおいてSPIで画像を読み出す際に、先頭1バイトは無効なデータのため読み飛ばす必要がありました。 2MP-Plusでは先頭から有効なデータが出力されるため、読み飛ばす必要はありません。

主な特徴

同梱品は配布形式 によって異なります。あらかじめご確認ください。

WiFiマイコンモジュール ESP-WROOM-02搭載

WiFi内蔵のESP-WROOM-02マイコンモジュールを搭載しました。 別途WiFi用のモジュールを用意することなく、マイコンとインターネットを接続できます。 手軽にIoTデバイスの開発が可能です。 また、ESP-WROOM-02は世界的に人気の高いArduinoIDEで開発することができます。 既に様々なライブラリが用意されているので、簡単にHTTPアクセスやWebサーバーを実装できます。

カメラ搭載可能

カメラモジュール ArduCAM-Mini-2MP Camera Shieldを接続できます。 一定時間おきに撮影して画像を記録したり、WiFi経由で離れた場所の状況を確認できます。 カメラモジュールはI2CとSPIでコントロールできるインターフェースをもっており、 Arduinoライブラリとサンプルコードが公開されているので、開発が容易です。 また、カメラモジュール側にJPEG圧縮機能とバッファメモリを搭載しているのでマイコンのリソースを圧迫しません。 最大画像サイズは1600x1200(バッファメモリ384KB以内)となります。 周囲を把握するには十分な画質ですが、近すぎたり暗い場合は画質が悪くなることがあります。 ArduCAM-Mini-5MPも同一ピン配列なのでご利用になれますが、動作確認を行っているのは2MPのモデルになります。

モーションセンサー搭載可能

モーションセンサー (赤外線人感センサー)を接続できます。カメラと同じ方向を向いているので、 誰かが通りかかったらカメラで撮影する、といった機能を実現できます。 本機能は室内または日陰での使用を推奨致します。太陽光など強い光が入ると誤検知することがあります。

照度センサー搭載可能

TSL2561照度センサーモジュール を接続できます。場所の明るさをモニタリングしたり、一定以上暗い場合は撮影をしない、といった判定が可能です。 TSL2561は明るさが変化した際に割込みをかけることもできます。

microSDカードスロット付き

microSDカードスロットがついているので、大容量のデータを保存できます。 カメラで撮影した画像や明るさのデータをログとして残したり、インターネットから取得したデータを 保存しておくことができます。

配布形式

配布形式 内容
ミニマムセット
(購入) 公式通販
(購入) スイッチサイエンス
基板とDCジャック、microSDスロットのみのセットです。 他の部品の調達、はんだ付けはご自身で行っていただく必要があります。 手作業ではんだ付けできる部品のみを使っています。

カメラモジュールは付属しません。

完成品カメラ付
(購入) 公式通販
(購入) スイッチサイエンス
既に部品一式を基板に実装したものとArduCAM-Mini-2MPカメラモジュールのセットになります。 ArduCAMは室内などでより広範囲を見渡せる広角レンズLS-20150に換装済のものが付属します。 詳しくはレンズ交換をご覧ください。

モーションセンサーとTSL2561照度センサーは付属しません。 ケース、電源アダプタ、プログラム書き込み用USBシリアル変換モジュールは付属しません。

ArduCAM-Mini-2MP レンズLS-20150装着タイプ
(購入) 公式通販
ArduCAM-Mini-2MPカメラモジュール単品です。 室内などでより広範囲を見渡せる広角レンズLS-20150に換装済のものになります。 詳しくはレンズ交換をご覧ください。

基板本体は付属しません。

ArduCAM-Mini-2MP用レンズロックリング(3個セット)
(購入) 公式通販
ArduCAM-Mini-2MPカメラモジュール用のレンズロックリング3個セットです。 レンズ交換やピント調整後に固定するのに便利です。 詳しくはレンズ交換をご覧ください。

カメラモジュールや基板本体は付属しません。

部品表に複数の推奨型番があるものについてはいずれか1つが付属します。

Rev1.0からRev1.1への変更でmicroSDスロットの型番を変更しました。 いずれのRevも回路に変更はなく、ソフトウェアも完全互換で動作します。

組立例

Arduino holder type UNO純正ケースにて動作中の様子です。基板の大きさはArduino UNOに合わせて 設計しているので、市販のArduino用ケースで運用することができます。 (Arduino holder type UNOケースはかなりきつめに設計されているので、強く押さないと入らない 場合がありますが、基板の不良ではありません。また、全ての市販ケースの対応を保証するものではありません。)

応用アプリケーション例

定期的にカメラで撮影して記録するシステム

外出先から家の様子を確認できるネットワークカメラ

人や動物が近づいたら撮影する監視カメラ

簡易ドライブレコーダー

植物のための明るさモニタ、ロガー

応用例を実現するプログラムはご自身で準備していただく必要があります。

ブラウザから本ボードを制御する応用例 を紹介しています。

ブロックダイアグラム

使い方

開発環境、プログラム書き込み方法についてはこちらをご覧ください。

電源

1A以上、5Vから7VのDC電源をお使いください。(電源は付属しません) 推奨入力電圧範囲は4.6V-7.5Vです。 DCジャックCON1はセンタープラスの2.1mmです。 推奨ACアダプタはこちら。 DCジャックを使わない場合は コネクタP4のVIN, GNDピンより給電することもできます。 DCジャックを使う場合はP4のVINは出力専用です。入力には使用しないでください。 ESP-WROOM-02, microSDなどに必要な3.3VはU2のレギュレータにより生成します。 P4の3V3端子は出力専用です。入力には使用しないでください。

ArduCAMライブラリ

ArduCAMより提供されているArduino用ArduCAMライブラリ をインストールしてご利用ください。GitHub配布ページ右にある"Clone or Download" > "Download ZIP"をクリックしてダウンロードした ファイルを解凍し、その中のArduCAMディレクトリをArduino IDEディレクトリ内のlibrariesディレクトリにコピーして下さい。 Camera-Sampleをお使いいただく場合の構成例は以下のようになります。

Arduino (Arduino IDEスケッチを保存するディレクトリ)
  |--- Camera-Sample --- Camera-Sample.ino
  |--- libraries
         |--- ArduCAM --- memorysaver.h などのファイル
		

また、ArduCAMディレクトリ内のmemorysaver.hの設定を使用カメラモジュールに合わせてください。 ArduCAM-Mini-2MPとArduCAM-Mini-2MP-Plusで設定が異なりますのでご注意下さい。 カメラモジュールに「Mini-2MP-Plus」の表記があるものがPlus版となります。

ArduCAM-Mini-2MPの場合:

//Step 1: select the hardware platform, only one at a time
#define OV2640_MINI_2MP
//#define OV3640_MINI_3MP
//#define OV5642_MINI_5MP
//#define OV5642_MINI_5MP_BIT_ROTATION_FIXED
//#define OV2640_MINI_2MP_PLUS
//#define OV5642_MINI_5MP_PLUS
//#define OV5640_MINI_5MP_PLUS


//#define ARDUCAM_SHIELD_REVC	
//#define ARDUCAM_SHIELD_V2


//Step 2: Select one of the camera module, only one at a time
#if (defined(ARDUCAM_SHIELD_REVC) || defined(ARDUCAM_SHIELD_V2))
	//#define OV7660_CAM
	//#define OV7725_CAM
	//#define OV7670_CAM
	//#define OV7675_CAM
	//#define OV2640_CAM
	//#define OV3640_CAM
	//#define OV5642_CAM
	//#define OV5640_CAM 
	
	//#define MT9D111A_CAM
	//#define MT9D111B_CAM
	//#define MT9M112_CAM
	//#define MT9V111_CAM	
	//#define MT9M001_CAM	
	//#define MT9V034_CAM
	//#define MT9M034_CAM
	//#define MT9T112_CAM
	//#define MT9D112_CAM
#endif

ArduCAM-Mini-2MP-Plusの場合:

//Step 1: select the hardware platform, only one at a time
//#define OV2640_MINI_2MP
//#define OV3640_MINI_3MP
//#define OV5642_MINI_5MP
//#define OV5642_MINI_5MP_BIT_ROTATION_FIXED
#define OV2640_MINI_2MP_PLUS
//#define OV5642_MINI_5MP_PLUS
//#define OV5640_MINI_5MP_PLUS


//#define ARDUCAM_SHIELD_REVC	
//#define ARDUCAM_SHIELD_V2


//Step 2: Select one of the camera module, only one at a time
#if (defined(ARDUCAM_SHIELD_REVC) || defined(ARDUCAM_SHIELD_V2))
	//#define OV7660_CAM
	//#define OV7725_CAM
	//#define OV7670_CAM
	//#define OV7675_CAM
	//#define OV2640_CAM
	//#define OV3640_CAM
	//#define OV5642_CAM
	//#define OV5640_CAM 
	
	//#define MT9D111A_CAM
	//#define MT9D111B_CAM
	//#define MT9M112_CAM
	//#define MT9V111_CAM	
	//#define MT9M001_CAM	
	//#define MT9V034_CAM
	//#define MT9M034_CAM
	//#define MT9T112_CAM
	//#define MT9D112_CAM
#endif

ライブラリに付属するサンプルスケッチを使う際は、ArduCAMのCSを15番、SDカードのCSを2番に変更してください。

LED1とSPI SCK

本ボードでは端子節約のため、LED1とSPI SCK信号が共通になっています。 SPIを使用するとLED1の状態が変わることがありますので、必要に応じて再度LED1を設定して下さい。

カメラ、センサーモジュール接続端子

ArduCAM-MiniカメラモジュールはP2コネクタ、モーションセンサーはP3コネクタ、TSL2561照度センサーモジュールはP5 コネクタに接続して下さい。 カメラモジュール用CS信号(IO15)は起動モード設定のためプルダウンされています。 起動後はIO15を出力にしてHIGHに設定して下さい。ピン配置と向きをよく確認して接続して下さい。 適合しないモジュールや逆向きに接続した場合、部品を痛める恐れがあります。

TSL2561照度センサー割込み信号

TSL2561照度センサー割込み信号INTはIO0に配線されています。割込みが入った場合はLOWが入力されます。 IO0はユーザースイッチSW2と共通で、SW2が押された場合もLOWになりますので、排他利用するなどして 対応してください。 また、IO0はESP-WROOM-02起動時のモード設定にも使われています。TSL2561の割込みが入ったままESP-WROOM-02をリセット するとプログラム書き込みモードに入ってしまいます。リセット時は割込みを無効にしてください。

モーションセンサー入力信号

IO16はモーションセンサーの入力に使用されていますので、DeepSleepからの復帰にはご使用になれません。 ArduinoIDE開発環境で、IO16は割込み設定出来ませんのでポーリングで処理して下さい。

レンズ交換

ArduCAM-Mini-2MPカメラモジュールはレンズ交換が可能です。標準で付属しているレンズはやや望遠より となっております。室内で部屋全体を撮影したい場合など、画角を大きくしたい場合は広角のレンズへの 交換がおすすめです。推奨品はLS-20150など。なお、ArduCAM-Mini-2MPは基本的にM12マウントタイプ ですが、データシート上はCSマウントのものも存在しているようです。 レンズをご購入の際はご注意ください。

標準レンズ装着時

広角レンズLS-20150装着時

ネジでピントが合う位置に調整してください。位置を固定するには M12対応ロックリングが便利です。

標準レンズ撮影時のサンプル画像

広角レンズLS-20150撮影時のサンプル画像(同じ距離から撮影)

部品表

番号 推奨部品 コメント
U1 ESP-WROOM-02 WiFi内蔵ESP-WROOM-02モジュール
U2 AZ1086H-3.3 / AMS1117-3.3 SOT223パッケージ, 3.3VレギュレータIC
LED1 LED緑 GPIOから制御できるLEDです。High出力時にONになります。SPIクロックと共通ですので、 SPI使用後は再度設定する必要があります。
P1 1x3pinヘッダ PCとシリアル通信するためのコネクタです。SERIAL_TX, SERIAL_RX, GNDをそれぞれ USBシリアル変換モジュールの対応ピンに接続して下さい。3.3V信号に対応したものをお使いください。
P2 1x8pinソケット ArduCAM-Mini-2MP Camera Shield を接続するためのコネクタです。 ArduCAM-Mini-5MPも同一ピン配列なのでご利用になれますが、動作確認を行っているのは2MPのモデルになります。 ミニマムセットにはカメラモジュールが含まれませんので、 こちらなどからご購入していただく必要がございます。
P3 1x3pinソケット モーションセンサー を接続するためのコネクタです。
P4 1x4pinヘッダ VIN, 3V3, GNDのモニタと、TOUT入力用の端子です。 DCジャックを使わない場合は、ここのVIN, GND端子に電源をつないで使うことができます。 3V3は出力専用です。外部からの入力には使用しないでください。
P5 1x5pinソケット TSL2561照度センサーモジュール を接続するためのコネクタです。
J1 microSDスロット microSDスロット取付用です。CardDetect信号はマイコンには配線されていません。
CON1 DCジャック 2.1mm センタープラス、5Vの物をご使用ください。推奨入力電圧は4.6V - 7.5Vです。
SW1 6mmタクトスイッチ赤 リセットスイッチです。
SW2 6mmタクトスイッチ黒 ユーザー入力スイッチです。また、SW2を押したままリセットするとESP-WROOM-02が プログラム書き込みモードで起動します。
C1 47uF レギュレータ入力のコンデンサです。 白く印刷されている方がマイナス側です。
C2 100uF レギュレータ出力のコンデンサです。 白く印刷されている方がマイナス側です。
R1 220 / 200 LED1用の抵抗です。
R2 1k IO15プルダウン用抵抗です。IO15はカメラモジュールのCS信号となっていますので、 起動後はOUTPUTにしてHIGHに設定して下さい。
R3, R4, R6 10k ESP-WROOM-02のプルアップ抵抗です。
R5 1k ESP-WROOM-02 EN端子のプルアップ抵抗です。

サンプルプログラム

プログラム 環境 内容
Camera-Sample Arduino カメラモジュールで撮影したデータをmicroSDに書き込むArduino IDE用スケッチです。 ArduCAMライブラリを使用しますので、上記使い方 を参考にインストールしてからご利用ください。
MotionSensor-Sample Arduino モーションセンサーで動体を検知するとLEDを光らせるArduino IDE用スケッチです。
TSL2561-Sample Arduino TSL2561照度センサーで読み取った明るさ(ルクス)を表示するArduino IDE用スケッチです。
SensorCam-Server Arduino ESP-SensorCamをブラウザから制御する応用例です。

回路図、関連資料

注意事項

本製品または当サイトのサンプルプログラムを使用して発生した損害に対する補償は致しかねます。 当サイトの技術情報を読んでいただいた上で、ご自身の責任でご使用下さい。

P2, P3, P5に取り付けるセンサーモジュールは端子、向きがあっていることを確認して接続してください。 誤った向きや適合しないモジュールを取り付けた場合、部品を痛めるおそれがあります。

関連商品