Twitterで見たのをきっかけに、TTGO T-CAMERAというカメラ付きボードを買いました。スペックは以下の通り。
レンズ: ノーマル/魚眼 ※魚眼のほうがちょっと高い
マスターチップ: esp32 デュアルコア
ディスプレイタイプ: OLED
Uart チップ: CP2104
カメラ: OV2640
カメラ解像度: 2 メガピクセル
環境センサー: BME280
ESP32なのでArduinoで開発できるのが、ド素人の私にはありがたいです。
これをアリババで初回クーポンを適用して20ドルくらい(送料込み)で購入。梱包状態もよく、アリババ初体験でしたが、好印象。→こちらで買えます
このボード、初期設定ではSOPTAPモードになっています。ボードを電源につなぎ、PCやスマホなどのブラウザで「2.2.2.1」と入力すると、すぐにカメラを起動できます。
ただ、PC(またはスマホ)がボードと直接つながっている状態なので、インターネットからは遮断されます。そこで今回はSTAモードでカメラを起動するところをやってみます。
#やったこと
- サンプルコードをDLしてコンパイル
- サンプルコードを書き換える
- UART通信のドライバをインストール
- ボードにアップロード
むちゃくちゃ難易度は低いはずですが、数か所はまりました。その辺を記録することで、どなたかの役に立てれば幸いです。
#サンプルコードをDLしてコンパイル
サンプルコードはGitHubの→こちらからとってきます。写真の右にある”Download ZIP”をクリックすればよいです。
ArduinoIDEでこれをコンパイルするだけなのですが、なかなかに難しいです。DLしたZIPの中に、README.MDがあります。ここにいろいろ記載されているので、ちゃんとやらないとコンパイルが通りません。
####サンプルコードのZIPを開きフォルダの名前を変更する
ZIPを開くとesp32-camera-bme280-master
というフォルダに解答されると思います。このフォルダ名が、esp32-camera-bme280.ino
と名前が異なるのでフォルダ名の方を、esp32-camera-bme280
に変える。ファイル構成はこんな感じになるはず。
####ボードの最新版をインストールする
→こちらにアクセスし、ESP32 Arduino v1.0.1rc2
以上のバージョンにアップデートします。
ArduinoIDEの[ファイル]→[環境設定]→[追加のボードマネージャのURL]に
https://github.com/espressif/arduino-esp32/releases/download/1.0.2-rc1/package_esp32_dev_index.json
をコピペします。
次に、[ツール]→[ボード]→[ボードマネージャ]を開き、下のほうにあるesp32のバージョンを更新します。
####いくつかのインクルードファイルをインストールする
これは人によって違うかもしれません。私は3つほどインストールしました。すべてコンパイル中に出たアラームから.hファイル
の名前を拾って、GitHubで見つけてこれました。
####Adafruit_BME280.hを一部変更
Adafruit_BME280.h
の29行目、#include <Adafruit_Sensor.h>
をコメントアウトする。
以上をちゃんとやるとコンパイルが通るはず。10分くらいかかります。通れば次のステップです。
#サンプルコードを書き換える
esp32-camera-bme280.ino
の頭の方にある定義文を以下のように書き換えます。
#define ENABLE_SSD1306
//#define SOFTAP_MODE //この行をコメントアウトする
#define ENABLE_BME280
#define ENABLE_SLEEP
#define ENABLE_IP5306
#define WIFI_SSID "SSID" //自分の環境に合わせてWiFiのSSIDを入力
#define WIFI_PASSWD "PassWord" //自分の環境に合わせてWiFiのパスワードを入力
変えるのは3行だけ。簡単です。
#UART通信のドライバをインストール
microUSBケーブルでボードとPCを接続するため、UARTモジュールのドライバをインストールします。→こちらから環境に合わせたドライバをインストールしましょう。
その後はmicroUSBケーブルでボードとPCを接続。写真のようにデバイスマネージャーにて、Silicon Labs CP210x ***
と表示されていればOKです。ここで表示されているポート番号(写真ではCOM4)をArduinoのシリアルポートに設定しましょう。
もしボードが認識されていないようでしたら、ケーブルを疑ってみましょう。microUSBには充電専用というのがあります。見た目にはわかりません。こんなやつを買いましょう。
#ボードにアップロード
ここまでできれば、あとははまらないと思います。[マイコンボードに書き込む]を実行しましょう。書き込み後にボードのRSTボタン
を押してリセットすると、ボードが再起動され、WiFiと接続を開始します。写真のようにIPが表示されると成功です。
ここで表示されたIPをブラウザに入力すると、STAモードでカメラにつながります。このモードならインターネットにつながったままなので、ネットを楽しみながら、ときどきカメラの様子を見る、といった使い方ができます。
#まとめ
以上を通じて、ボードにコードをアップすることができるようになりました。
今後は
- 人感センサをトリガに写真を撮る
- 顔認識してみる
など、いろいろやってみようかと思います。たぶんサーバ構築とかをしないといけないのかな。めっちゃはまる予感です。