M5Stack Thermal Camera

AMG8833を利用したThermal Camera を 試作しました。

AMG8833:赤外線アレイセンサ Grid-EYE

説明
1. パナソニックのセンサーです。
2. 8 x 8赤外線グリッドアレイ(64ピクセル)。
3. 0℃〜80℃ の 範囲の温度を+ 2.5℃ の精度で測定します。
4. 最大7メートル の距離から人間を検出することができます。
5. 最大フレームレート10Hzで、独自の人感センサーやミニサーマルカメラ作成に最適です。
6. センサーはI2Cを介して通信します。
7. 人の活動を検知して、エアコンや照明を制御。 自動ドアやエレベータで人を検知に最適です。

 

M5Stack

M5Stackは、320 x 240 TFTカラーディスプレイ、microSDカードスロット、スピーカーを備えたコンパクトで便利な開発モジュールです。ESP32を搭載しているため、Wi-FiおよびBluetooth通信を扱え、Arduino環境での開発が可能です。

ソースコード

最初のソースコードはhkoffer / M5Stack-Thermal-Camera-:AMG8833 8×8 を補完し 24×24 で実現。こちらすべて収める3Dケースのデータがあるので、いつかプリントしたい。

実際利用したのは、m600x の機能アップ版 :  https://github.com/m600x/M5Stack-Thermal-Camera

参考記事:

M5Stack Thermal Camera Part 2

ESP32-CAMをテスト

Aliexpressで昨年8月購入した5ドル+送料の激安 ESP32-CAMは放置したまま、冬休み期間テストしてみることに。

配線

ESP32-CAM自体シリアルーUSB通信機能がないので、プログラムを書き込んだりするためにはUSB/TTLシリアルコンバーターが必要になる。300円でAmazonから購入した、Raspberry Pi ラズベリーパイ用の USB-TTLシリアルコンソールのUSB変換COMケーブルモジュールのケーブル を使用した。黒い台はDonkeyCar 車台の不良品を利用。黄色テープも地面にDonkeyCarのトラックを作る際用意したもの。

IMG_3272

配線部分を拡大した写真です。青い線は、書き込み時には、ESP32-CAMのIO0とGNDをショートして行う。

USB-TTL ESP32-CAM
TXD ( 緑 ) UOR
RXD ( 白 ) UOT
( IO0 – GND )
5V 5V
GND GND

 

IMG_3266

プログラム

ボードマネージャーを使用してESP32ボードを追加する必要があります。

これを完了すると、Arduino IDEボードマネージャーにESP32ボードのリストが表示されます。このリストからA-Thinker ESP32-CAMボードを選択します。

使用するサンプルスケッチは、CameraWebServerスケッチです。次のようにロードできます。

  • Arduino IDEを開きます
  • トップメニューバーの[ファイル ]メニュー項目をクリックします。
  • 下にスクロールして、[  ]をクリックします。サブメニューが開きます。
  • サブメニューを下にスクロールして、Example for A-Thinker ESP32-CAMを探します。
  • この下には、ESP32のエントリが表示されます。それをクリックすると、別のサブメニューが開きます。
  • このサブメニューからカメラを選択します。
  • CameraWebServerを選択します

このスケッチはESPO32-CAMをフル機能のオンラインカメラに変え、顔検出機能と豊富なコントロールを完備しています。これは、ESP32-CAM機能の非常に印象的なデモです。

スケッチを使用する前に、ネットワークに合わせてスケッチを修正し、正しいESP32モジュールを選択する必要があります。

  • 「カメラモデルの選択」という行の下で、ボードの正しいエントリを選択する必要があります。私が使用したもの(そして最も人気のあるもの)はCAMERA_MODEL_AI_THINKERです
  • その下に、SSIDの行が表示されます。ここにネットワークのSSIDを入力します。
  • SSIDの下の行にネットワークアクセスパスワードを入力します。

ESP32-CAMは2.4 GHz WiFiネットワークでのみ機能することに注意してください。

スケッチのコンパイルには時間がかかる場合がありますが、これは正常です。完了したら、USBケーブルを取り外し、ジャンパー線を取り外してから、USBケーブルを再接続して、ボードの電源を再びオンにします。

シリアルモニターを開き、ボーレートが115,200 bpsに設定されていることを確認します。次に、ESP32-CAMモジュールのリセットスイッチを押します。

初期化情報に続いて、ボードがネットワークに接続し、IPアドレスを取得したことを示すメッセージが表示されます。IPアドレスは、http://192.168.0.180などのURLの形式になります。

このアドレスをコピーして、Webブラウザーのアドレスバーに貼り付けます。Webブラウザーは、ESP32-CAMが接続されているのと同じネットワーク上にある必要があります。

操作

ブラウザで、いろいろ操作できそう。

これで、カメラのWebページが表示され、いくつかのコントロールが表示されます。 

[ストリームの開始]ボタンをクリックして、ビデオをストリーミングします。画面上部のドロップダウンを使用して、ビデオのサイズとフレームレートを変更できます。

一応、顔の登録と認識までできたが、後日また補足する。

電源

ESP32は非常に低いスタンバイ電流で動作できますが、無線の動作時に大量の電流を消費するため、WiFiとBluetoothの両方のパフォーマンスに影響を与える可能性があります。

電源の問題があるかどうかを判断する1つの方法は、ESP32-CAMの起動時にシリアルモニターを観察することです。「ブラウンアウト状態」が検出されたというメッセージが表示された場合は、ESP32-CAMが供給できる電流よりも多くの電流を引き込もうとしている可能性があります。

参考

ESP32-CAM Video Streaming and Face Recognition with Arduino IDE

M5Stack (1) MultiApp-Advanced

クリスマスの季節に、クリスマスソングが聴きたくなり、ネットラジオがいいかなと、以前から念願のネットラジオため集めった部品とESP8266, ESP32を使って見たけど、うまくいかない。

M5Stackでネットラジオ出来ないかと試して見た。

試してみたのは以下のソフトです。
ネットラジオやゲームやオシロ、Webサーバ、天気予報、WiFiモニタなどM5Stackでできることを一まとめにしたアプリケーションです。

botofancalin/M5Stack-MultiApp-Advanced: A M5Stack firmware made on PlatformIO

結果的に大成功!

PlatformIO IDEのインストール

Visual Studio Code(vscode)にPlatformIO IDEののプラグインをインストールする。

PlatformIO IDEはインストールが完了すると,エディタ上にホーム画面が表示される。

コードダウンロード

cd Documents/PlatformIO/Projects

git clone https://github.com/botofancalin/M5Stack-MultiApp-Advanced

Build

PlatformIO IDEから開いて。

ビルドはウインドウ左下のチェックマーク、M5Stackへの転送はその隣の矢印マークをクリックします。

無事、動作が確認できた。

SDカードの中身

Githubから取得してください。

https://github.com/botofancalin/M5Stack-MultiApp-Advanced/tree/master/SD_Data

 

Wemos (c9) Sinric Switch and Alexa

WEMOS で構成するAlexaで簡単に使えるスイッチを探して、次のページが見つかった。

https://github.com/kakopappa/arduino-esp8266-alexa-wemo-switch

WEMOという製品の真似をするだが、Sinricというフリーのサーバは利用できる。

Alexaから、スイッチとして認識でき、On/Offできた。