ESP-SensorCam (ESP-WROOM-02搭載 WiFi/カメラ/明るさ/人感 IoTカメラ基板)

Arduino IDEで動作を自由にプログラミング可能なホームIoTカメラ基板です。WiFi内蔵マイコンであるESP-WROOM-02を採用しました。カメラと人感センサー、明るさセンサー(一部オプション)搭載。人が近づいたら写真を撮影、スマホからモニタリング、明るさの記録、といった使い方が可能です。

カメラモジュールのマイナーチェンジ

製造元の都合により、同梱カメラモジュールがArduCAM-Mini-2MPから後継のArduCAM-Mini-2MP-Plusへ順次切り替えとなります。
既に2MPをお使いで2MP-Plusへ切り替える場合、ソフトウェアは2箇所修正していただく必要がございます。基板に変更はございません。 カメラモジュールに「Mini-2MP-Plus」の表記があるものがPlus版となります。
(1) ArduCAMライブラリのmemorysaver.hの設定を2MPから2MP-Plusへ変更してください。
(2) ArduCAM-Mini-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圧縮機能とバッファメモリを搭載しているのでマイコンのリソースを圧迫しません。 最大画像サイズは1600×1200(バッファメモリ384KB以内)となります。 周囲を把握するには十分な画質ですが、近すぎたり暗い場合は画質が悪くなることがあります。 ArduCAM-Mini-5MPも同一ピン配列なのでご利用になれますが、動作確認を行っているのは2MPのモデルになります。

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

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

照度(明るさ)センサー搭載可能

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

こちらのスイッチサイエンス製TSL2561センサーモジュールは販売終了となりました。

microSDカードスロット付き

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

Revisionの違いについて

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

購入

まとまった数量をご希望の方は、見積もり依頼よりご連絡ください。

1)ミニマムセット

基板とDCジャック、microSDスロットのみのセットです。 他の部品の調達、はんだ付けはご自身で行っていただく必要があります。 手作業ではんだ付けできる部品のみを使っています。カメラモジュールは付属しません。

2) 完成品カメラ付

既に部品一式を基板に実装したものとArduCAM-Mini-2MPカメラモジュールのセットになります。 ArduCAMは室内などでより広範囲を見渡せる広角レンズLS-20150に換装済のものが付属します。 詳しくはレンズ交換をご覧ください。モーションセンサーとTSL2561照度センサーは付属しません。 ケース、電源アダプタ、プログラム書き込み用USBシリアル変換モジュールは付属しません。

3)ArduCAM-Mini-2MP レンズLS-20150装着タイプ

ArduCAM-Mini-2MPカメラモジュール単品です。 室内などでより広範囲を見渡せる広角レンズLS-20150に換装済のものになります。 詳しくはレンズ交換をご覧ください。基板本体は付属しません。

利用例

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マウントのものも存在しているようです。 レンズをご購入の際はご注意ください。

部品表

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

サンプルプログラム

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

環境がArduino1.8となっているものはArduino IDE 2でコンパイルエラーとなります。Arduino IDE 1.8.xをご利用ください。

回路図、関連資料

注意事項

  • P2, P3, P5に取り付けるセンサーモジュールは端子、向きがあっていることを確認して接続してください。 誤った向きや適合しないモジュールを取り付けた場合、部品を痛めるおそれがあります。
  • 利用規約・免責事項および保証をご確認の上、ご利用下さい。

開発依頼

本製品への機能追加などのカスタマイズや、本製品を使ったシステムの開発依頼、その他ハードウェア、ソフトウェアの開発については、有償にて承っております。ハードウェア、ソフトウェア受託開発をご参照下さい。

関連ページ

人感センサーとラズパイで人や動物が通ったら撮影する (RPZ-PIRS)

人感センサー(PIR/焦電赤外線センサー)は、人や動物の動きを検知できます。そこで、Raspberry Pi(ラズパイ)、カメラと組み合わせて、人や動物が通ったら写真や動画を撮影する方法を解説します。実際に動作するプログラムも用意しています。人感センサー搭載のRPZ-PIRS拡張基板を利用します。

ESP-IR+TPH Monitor (ESP-WROOM-02搭載 WiFi/赤外線/温度/湿度/気圧 ホームIoT基板)

Arduino IDEで動作を自由にプログラミング可能なホームIoT基板です。WiFi内蔵マイコンであるESP-WROOM-02を採用しました。温度/湿度/気圧センサーと赤外線送受信機能を搭載。IoT赤外線リモコンとして、温度が上がったらエアコンをオンにする、スマホ経由でテレビの操作をする、気温の記録、といった使い方が可能です。

定期撮影ラズパイカメラをモバイルバッテリーで長期運用 (RPZ-PowerMGR)

Raspberry Pi(ラズパイ)と純正カメラを使用して、定期的に撮影するタイムラプス機能を実装する方法を解説します。RPZ-PowerMGR拡張基板を使うことで、指定時刻に起動し、撮影後は自動的にシャットダウン&電源OFFします。待機時の消費電力をカットすることで、モバイルバッテリーで長期運用が可能になります。