TTGO T-Cameraを買った

ESP32でカメラがついているものがほしいなと思っていたら、あったので購入してみました。購入したのは送料無料だったBandgood.comで2,000円ぐらいです。オフィシャルの販売はAliExpressだと思いますが、単品で買うと送料が高いのでご注意を!

表にはカメラ(OV2640)と0.96インチ(128×64ドット)のOLED液晶(SSD1306)、モーションセンサー(AS312)と、環境センサー(BME280)が搭載されています。

ただし環境センサーのBME280はまともに動きません。なので現在販売されているものは最初からついていないみたいです。

裏側には技適マークのついているESP32-WROVER-Bが搭載。これ以外にもカメラデバイスはあるのですが、日本で使えるものは非常に少ないです。

DiyStudio ESP32-CAM デュアルモード開発ボードESP32カメラモジュール モジュール、ESP32小型OV2640 2MPカメラ + 4M PSRAMデュアルコア32ビットCPU、ード開発ボードネ
DiyStudio
✔️【製品の特徴】:DiyStudio ESP32-CAMは、デュアルモード開発ボードで、ESP32チップベースのコアを使用しています。 のカメラモジュールOV26402MP付き。最小限のシステムとして独立して動作できます

上記とかが注意が必要で、技適がないので日本では利用できません。

M5Camera--販売終了
PSRAMとイメージセンサOV2640を搭載した、ESP32ベースの小型カメラユニットです。Arduino IDEを使ってプログラムすることもできます。GROVE互換インターフェイスとレゴ互換の取り付け穴二つを搭載。

スイッチサイエンスさんとかを見ると、ESP WROVERを積んでいますので日本で使えるのはケース付きの方です。

こっちは充電池も内蔵しているので、こっちのほうが良かったかも。。。ただ画面が無いので細かい確認はT-Cameraの方が便利な気がします。

動かしてみた

電源をいれるとアクセスポイントモードで起動しますので、TTGO-CAMERA-??:??というWi-fiに接続して、http://2.2.2.1に接続すると上記画面になります。

ボード上の液晶には、モーションセンサーに反応したかの表示と、IPアドレスが1画面目。2画面目には環境センサーのBME280の数値が表示されています。

ただし、私のボードではセンサーの値がデタラメで使い物になりませんでした。たぶん今から購入するとセンサーが無いバージョンが届くので、2画面目は何も表示されていないと思います、、、

自分でコンパイルする

GitHub - Xinyuan-LilyGO/LilyGo-Camera-Series: 🔰 Compatible with all TTGO camera products
🔰 Compatible with all TTGO camera products. Contribute to Xinyuan-LilyGO/LilyGo-Camera-Series development by creating an...

上記からソースコードをダウンロードしてきます。

必要ライブラリを追加する

  • Adafruit_BME280_Library
  • Adafruit_Unified_Sensor
  • ESP8266_and_ESP32_Oled_Driver_for_SSD1306_display
  • OneButton

最終的に追加したのは上記4つです。ただし、BME280が搭載されていないボードか、ソースコードの変更が面倒な人は以下の2つだけ入れましょう。

  • ESP8266_and_ESP32_Oled_Driver_for_SSD1306_display
  • OneButton

プログラムを修正する(BME280を使う場合)

なんとそのままだとコンパイルエラーになります!

#define sensor_t    sensor_t_
#include <Adafruit_BME280.h>
#undef sensor_t

上記のAdafruit_BME280.hの中で読み込まれているAdafruit_Sensor.hがsensor_tを定義しているのですが、esp_camera.hの中でも定義されているのでエラーになってしまいます。

そのため、上記のようにAdafruit_BME280.hの中のsensor_t構造体を別名に避難してから、消します。Adafruit_BME280.hの中にあるAdafruit_Sensor.hの読み込みを消してもいいのですが、ライブラリに手を入れるのは嫌なので、上記のような黒魔術で乗り切ります。

#define ENABLE_BME280

あと、デフォルトですとBME280を使わないように上記の行がコメントアウトしてあったので、有効にします。

プログラムを修正する(BME280を使わない場合)

//#include <Adafruit_BME280.h>

上記の行をコメントアウトします。ENABLE_BME280は最初からコメントアウトされていますが、上記のライブラリ読み込みでエラーが出るので、消しちゃいます。

Wi-fiに接続させる

デフォルトだとアクセスポイントモードになるので、ちょっとしたテストには便利ですが実際使う場合には他のWi-fiルーターとかに接続したほうが便利です。

//#define SOFTAP_MODE       //The comment will be connected to the specified ssid

上記をコメントアウトして、アクセスポイントモードを無効にします。

#define WIFI_SSID   "your wifi ssid"
#define WIFI_PASSWD "you wifi password"

上記の2行を接続したいWi-fiの情報に変更します。これで接続できるはずです。

まとめ

とりあえず動かすことができました。

が、、、記事を書くために写真とか見ていたら違和感を発見!
買ったのフィッシュアイレンズの方なのに、送られてきたのが安い方のノーマルレンズだった。

箱には鱼眼って書いてあるのにー。

(追記)その後メールのやり取りを経て、返金されました! 最初はポイントをくれると言っていましたが、Bandgood.comポイントってほとんどの商品で使えないので嫌だといったら、返金になりました。戻ってきたお金でまた何か買う予定です。

コメント

  1. もりたく より:

    こんにちは。
    同じボードを購入したのですが、ArduinoIDEから書き込みができません。
    IO34のシルクがあるほうのスイッチを押し続けたりもしましたがNGでした。

    何もせずに書き込み出来たでしょうか?

    • たなかまさゆき より:

      使っている環境はMacでしょうか?
      Macの最新版はシリアル系で書き込めない症状が出やすいみたいです
      私の環境のWindowsであれば、何もしなくても書き込むことができました

      Arduinoを書き込むためには、転送待ちで……..がでているときにリセットをする必要があります。
      ボタンだとおそらくRSTと書かれているボタンでしょうか?
      いまものが手元にないので、確認できないのですみません。。。

      …..と表示されているときにRSTボタンを押して見るか、USBケーブルの抜き出しをしてみるのがいいと思います

      GPIO0をGNDに落とすのが一番確実なのですが、このボードはIOが外にでていないんですよね、、、、