TTGO T-Cameraを買った

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

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

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

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

上記とかが注意が必要で、技適がないので日本では利用できません。M5Cameraの方が複雑でこのボードはたぶん技適が通っていないバージョンです。。。

https://www.switch-science.com/catalog/5207/

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

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

動かしてみた

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

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

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

自分でコンパイルする

https://github.com/Xinyuan-LilyGO/esp32-camera-bme280

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

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

  • 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ポイントってほとんどの商品で使えないので嫌だといったら、返金になりました。戻ってきたお金でまた何か買う予定です。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)