MQTTでIoTデバイスを管理 (ESP-WROOM-02で監視カメラ)

手元に転がっていたESP-WROOM-02とJPEGカメラを使用して監視カメラ(そのベースになるようもの)を作ってみた。
今回は夏に作った↓の機能に追加する形で作成。
MQTTでIoTデバイスを管理

MQTT構成

使用した主なパーツ
・秋月電子通商通販
Wi-Fiモジュール ESP-WROOM-02 DIP化キット
http://akizukidenshi.com/catalog/g/gK-09758/

Grove-シリアルカメラキット
http://akizukidenshi.com/catalog/g/gM-09161/

FT-232RQ USBシリアル変換モジュール
http://akizukidenshi.com/catalog/g/gM-11007/

・スイッチサイエンス
レベルシフト回路搭載 microSDブレークアウト
https://www.switch-science.com/catalog/2653/

・どこかのお店
BOSCH BMP280
その他スイッチや抵抗など…

動作仕様
・定期的に温度と気圧をWEBブラウザに表示。
とりあえず、転がっていたセンサーがこれしかなかったので付けただけ。
・WEBブラウザのボタン操作でカメラ画像を取得
安い振動センサーや赤外線センサーなどがあったら、これらの検知をトリガーにしてカメラ画像を取得すると防犯用途に使用できる。

技術的なキーワード
・MQTT (Message Queue Telemetry Transport)
・HTML5,WebSocket,Ajax…

ESP-WROOM-02, Serial Camera, SD memory, MQTTの実装に使用したライブラリ

#include <ESP8266WiFi.h>
#include <Adafruit_MQTT.h>
#include <Adafruit_MQTT_Client.h>
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>
#include <SD.h>
#include <Ticker.h>

ソースコードはAdafruitやスイッチサイエンスで公開されているもので動作したので、これらを少し改造して使用。

回路
あちこちネットの情報を見ながら…間違っているかもしれへんけど、とりあえず動作している。

※ 2018/09/26 追記 (今更ですが..)
下の回路はBMP280のI2Cアドレスを0x76で使用する場合のものです。
I2Cのアドレスは、SDOをプルダウンすると0x76に、OpenまたはVCCに接続すると0x77になります。
Adafruitのライブラリを使用する場合、デフォルトは0x77になっています。
0x76で使用する場合は、beginの引数に0x76を設定します。

※ 2018/10/19 追記 (今更ですが..)
下の回路ではAE-TTL-232Rの出力電圧を3.3Vと記載していますが、AE-TTL-232Rからの出力は5Vです。
記載を端折ってしまいましたが、三端子レギュレータ(NJU7223など)を使用して5Vを3.3Vに変換してください。
[低損失CMOS三端子レギュレータ 3.3V 500mA NJU7223F33]
http://akizukidenshi.com/catalog/g/gI-00432/

※ 2018/10/22 追記 (今更が続いていますが..)
Cameraの電源は正しくは5Vです。三端子レギュレータの手前の5V(AE-TTL-232Rの出力)を使ってください。

ESP-WROOM-02 カメラ回路図

サーバー
・Linux MINTを使用してMosquittoとApacheを稼働
・MosquittoはBrokerとWebSocketを担当。
・ESP-WROOM-02で撮影したカメラ画像はMQTTで送信されサーバーで受信&保存した後、画像ファイル名をAckとしてMQTTで送信。画像を受信して保存するために処理は、ライブラリ(libmosquitto0-dev)を利用して自作。
・Apacheは保存した画像をWEB Brawserで読み込むために使用。

WEBブラウザ
・MQTTによる通信はmqttws31.jsにお任せ。
・カメラ画像の表示は、画像の保存完了のACKをMQTT(WebSocket)で受信して、httpでサーバーに取りに行っているだけ。
・サーバーに保存した画像をWEBブラウザで一覧する機能を追加すると便利かなぁ。

☆今時のWeb Browser(MS Edge, Firefox, Google Chrome…) やったら動作するんで、端末の依存度が低く導入しやすいのがイイところ!!

WiFi Monitor (Block)

組み上げた状態 (カメラと基板を固定できるようにレゴを使用)

PCとスマフォの両方で制御しているところ。MQTT,WebSocketを使用してるんで、複数の端末でリアルタイムで同期できる。

カメラでの撮影~表示までの時間は3秒程度。

カテゴリー: Arduino, Linux タグ: , パーマリンク

MQTTでIoTデバイスを管理 (ESP-WROOM-02で監視カメラ) への4件のフィードバック

  1. ピンバック: ESP-WROOM-02とJPEGカメラでタイムラプス | IT社会の崖下で...その2

  2. ピンバック: MQTTでIoTデバイスを管理 (ESP-WROOM-02で監視カメラ) その2 | IT社会の崖下で...その2

  3. ピンバック: Lego EV3にシリアルカメラを付ける | IT社会の崖下で...その2

  4. ピンバック: Lego EV3を使用して太陽電池パネルを制御 | IT社会の崖下で...その2

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください