📷

macOS上に、ESP32 PSRAM Timer Camera Fの開発環境を構築する方法について

2024/05/07に公開

はじめに

ペットのワンコの様子を外出先から確認するIoTカメラを自作してみたく、スイッチサイエンスさんから ESP32 PSRAM Timer Camera F を購入してみました。
https://www.switch-science.com/products/6786

こちらの環境構築をした際に、いくつかハマったところがありましたので、備忘録として残しておきたく記事を書きました。

環境

私の作業環境は以下の通りです。
マシン: MacBook Air (M1, 2020)
OS: macOS 14.4.1(23E224)

Arduino IDEのインストール

Apple Sillicon対応のArduino IDE 2.3.2をインストールしました。
https://www.arduino.cc/en/software

M5Stack ボードマネージャーの追加

Arduino IDE > 環境設定を開きます。
下記のURLを 追加のボードマネージャーのURL へ記載します。

https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json


次に、ツール > ボード > ボードマネージャーを選択します。
M5Stack を検索し 2.1.1 を選択しインストールを行います。

次に、ツール > ライブラリの管理 > を選択します。
Timer-CAM を検索し 1.0.0 を選択しインストールします。

ArduinoHttpClient も必要であることが分かりましtので、全てをインストール を選択し必要な依存関係をすべて入れることにしました。

ESP32 PSRAM Timer Camera Fの接続

USBケーブルなどで、Macと接続します。
ツール > ボードから、M5Stack > M5TimerCAMを選択します。
ポートは、/dev/cu.usbserial-********を選択します。

以下のような設定になっていることを確認します。

サンプルコードの実行

ファイル > スケッチの例 > Timer-CAMに、いくつかのサンプルコードが格納されています。
wakeup.ino を選択し、書き込んでみます。

#include "M5TimerCAM.h"

void led_breathe(int ms) {
    for (int16_t i = 0; i < 255; i++) {
        TimerCAM.Power.setLed(i);
        vTaskDelay(pdMS_TO_TICKS(ms));
    }

    for (int16_t i = 255; i >= 0; i--) {
        TimerCAM.Power.setLed(i);
        vTaskDelay(pdMS_TO_TICKS(ms));
    }
}

void setup() {
    TimerCAM.begin(true);
    Serial.println("Wake up!!!");
    led_breathe(10);
    // sleep after 5s wakeup!
    TimerCAM.Power.timerSleep(5);
}

void loop() {
}

https://github.com/m5stack/TimerCam-arduino/blob/69ac54e9f8562b07e9ca7de8a9a447d455dc333e/examples/wakeup/wakeup.ino

リセットボタンを押すとコードが実行され、シリアルモニタに Wake up!!! と出力されたのち、LEDが点灯します。
SIMピンでリセットボタンを押そうとしたのですが、ギリギリ長さが足りず針金でなんとか押しました....

TimerCAM WEB CAM STA Modeの実行

カメラが撮影した画像を確認したかったので、サンプルコードの sta.ino を実行します。

下記の ssidpassword を自分の環境の値に変更します。

const char* ssid     = "yourssid";
const char* password = "yourpasswd";

https://github.com/m5stack/TimerCam-arduino/blob/69ac54e9f8562b07e9ca7de8a9a447d455dc333e/examples/web_cam/sta/sta.ino

リセットボタンを押すとWi-Fiへ接続し、IPアドレスを出力します。

Connecting to 自分のWi-FiのSSID
..........
Connected to 自分のWi-FiのSSID
IP address: 192.168.10.135

出力されたアドレスへブラウザからアクセスしてみます。

今回は set_framesizeFRAMESIZE_VGA を設定して実行してみました。
なかなか荒い画像ですね💦

他の解像度も取得できるようですので、別途試してみようと思います。

おわりに

ちいさなカメラデバイスですが、ネットワークに接続でき画像を送信できることがわかりました。
HTTP通信もできるようですので、専用のエンドポイントを用意して、タイムラプス動画を作るサーバーなどを立ててみたいと思います。

参考文献

https://shop.m5stack.com/products/esp32-psram-timer-camera-ov3660
https://docs.m5stack.com/en/guide/wifi_camera/timer_cam/arduino

Discussion