AM今年はESP8266を使って色々と工作をしている。D1タイプが中華から買うと数ドル程度と安く、USBや5Vもオンボードで使い勝手も良いのだが、技適が無いのが難点だ。Allianceロゴが付いているので90日ルールなら使える(多分)・・・といった細かい事はさておき、今回はシリアルJpegカメラと組み合わせてタイムラプスカメラを作ってみる。ESP8266は信号線の電圧が3.3vだが、Arduino系の周辺デバイスが豊富に使える。ESP8266で何が出来るか模索している時に、Arduinoで使えるシリアルカメラと言う物を見つけた。シリアルカメラは撮影した画像をJpegデータ形式に落とし、シリアル通信形式でJpegデータを転送する事が出来るカメラモジュールである。ArduinoやESP8266等の電子工作用ArduinoやESP8266はカメラの生データを扱える程の処理能力は無いが、シリアルカメラで生成されたJpeg画像データをシリアル経由で読み出しSDカードに保存したりネットワーク経由で転送したりする程度は出来る。シリアルカメラの解像度は最大で640×480と低く画質も良くなくJpeg画像の転送速度も30秒近くかかる等いまいちな点が多いが、難しい画像処理をせずにカメラ撮影を行う事が可能だ。Sleepモードがあり、このモードでは消費電力が約10μA(マイクロアンペア)と殆ど電力を消費しない。Sleepモードに入る際時間を指定しておくと、その時間にリセットがかかり起動し処理を行う事が出来るため、定期的に何かをする動作に使う事が可能だ。このシリアルカメラモジュールとESP8266を組み合わせて1時間毎に写真をサーバーに送信するタイムラプスカメラを作ってみる。Sleepに入るカメラ画像読み出し時直接サーバーに転送する事も可能だが、一度ストレージエリアに読み出した方が消費電力が多いワイヤレス通信が一瞬で済む。OLEDディスプレイ等の表示を付けるとデバッグ時には便利だが、普段は不要のためESP8266についているLEDを光らせて状態が分かるようにした。Sleepの時間を単純に3600秒とした場合インターバルが約3分短かったので、3780秒にしている。Sleepの単位がmsと思っていたので落とした直後に立ちあがり悩んだ(単位はマイクロ秒)。デバッグ用にI2C接続OLEDディスプレイを付けられる様にしている。付ける際はSCL/SDAはD1とD2ピン。I2CLEDのdefineのコメントを外す。シリアルカメラのTXとRXはESP8266のRXとTXに繋いでも使えるが、デバッグの邪魔になるので信号ピンに繋ぎソフトシリアルで通信している。カメラの電源はそのまま電源に繋ぐと待機時も電力消費してしまうため、MOSFETとトランジスタで制御する。最初N型のMOSFETでシリアルカメラのGND側でオフオン制御しようとしたが、GNDを切っているとVCCからシリアル信号に流れてしまうのかESP8266が起動しなくなったため、VCC側のオフオンをP型のMOSFETとNPNのトランジスタで電源制御回路を組んだ。抵抗は手持ちから適当に33kΩを使ったので抵抗値は最適では無いと思う。トランジスタによる電源制御は下記ページの「Pチャネルの場合」を参考に。D1タイプのESP8266とシリアルカメラ、MOSFET、トランジスタ、抵抗と電源オフオン用スイッチ、給電用USBケーブルを取り付け完成。(GPIO16)ピンをショート。プリント基板はESP8266の開発用にEagleでデザインしElecrowに発注したもの。1500円程度で基板10枚程作れるので安くて便利。サーバー側はPHPで簡単にファイル受け用と表示用を準備。サーバーは自前で準備してもいいし、最近は月1000円以下でもサーバーを借りる事が出来る。今回は試していないが、ESP8266からGmailを送る事も出来るので、Gmailで画像を添付して送る事も出来るのではないかと思う。ファイル受け側PHPコードは下記の通り。受けたファイルに日付でファイル名を付けphotoフォルダーに保存。?>受けたファイルの表示用の簡単なスクリプト。最新99ファイルを表示。ファイルソートはここを参考にした。}}?>屋外の簡易ビオトープを定点観察してその後動画に纏めようと思うので、ダイソーで買ってきた蓋付きプラケースに投入しビニールテープで隙間を封印。屋内無線APから4mぐらいの距離に設置。Sleepに入った際消費電力が下がりすぎてオートオフになってしまい切れてしまうので、オートオフしないCheeroのIoT向けモバイルバッテリーを使うか、単三電池からUSB給電する単純タイプのものを使う。単三4本から給電するタイプでトライ。給電表示の青色LEDが消費電力10mAとしてもそれだけで電池を食いつぶしてしまうのでLEDの足を切断。ケースに入れて稼働開始。ビオトープが見える形で固定は強力両面テープ。一ヶ月くらい持つことを期待したのだが、一週間程で動作が不安定になり動かなくなってしまった。テスターで測った所、USBに何も繋いでいなくてもスイッチを入れているだけで単三から5V変換の回路が多少電力を消費している様だ。一週間で電池4本はパフォーマンスが悪いので、IoT用のcheeroモバイルバッテリーで再挑戦。する場合は残量を表示する白色LEDの点灯も勿体ない・・・。結果、Cheeroのモバイルバッテリーだと約17日間(407回撮影)でバッテリーが切れた。cheeroのFAQページを見るとバッテリーの実効容量は6~7割とあるので、LEDインジケータ―分も引いて1600mAh程度が使えた容量とすると1撮影当たり約4mAの消費となる。回路やコードの見直しでさらに消費電力は半分程度に抑えられそうだが・・・。Cheeroのモバイルバッテリーを2個購入し、交互に交換する方法で運営しはじめている。現在2周目に入った所で動作は好調だ。倍程度の容量のIoTモバイルバッテリーを販売してくれると一ヶ月毎のバッテリー交換で済むので助かるのだが・・・。ブラウザで見るとこの様な感じ。屋内では綺麗に色が出るのだが、屋外では色があまり出ていない。シリアルカメラが人気になり、より高画質なシリアルカメラが出てくれる事を期待したい。これから夏場に向けて暑くなるので、炎天下での動作も気になる所である。コメントをキャンセルメールアドレスが公開されることはありません。コメント名前メールアドレスサイト上に表示された文字を入力してください。コメントデータの処理方法の詳細はこちらをご覧ください。