M5Camera Bを試してみる その3:mDNSを設定する
M5Cameraが便利なのは分かりましたが、毎回毎回IPアドレスをコンソールで表示、確認するのも面倒です。
連携するサービスも毎回毎回IPアドレス張替えでは不便ですしね。
こういうときは、mDNSの力を借りましょう。
実際のところ
まずはライブラリのインクルード
#include <ESPmDNS.h>
追記部分はsetupに
void setup() { //... Serial.print("Camera Ready! Use 'http://"); Serial.print(WiFi.localIP()); Serial.println("' to connect"); //mDNSの設定 if (!MDNS.begin("esp32")) { Serial.println("Error setting up MDNS responder!"); while(1) { delay(1000); } } Serial.println("mDNS responder started"); }
これでhttp://esp32.localをいれてやれば表示されます
ipアドレスを毎度毎度調べなくていいですね
M5Camera Bを試してみる その2:GETで画像を入手する
実際のところ
接続先のIPアドレスがhttp://192.168.X.Yのとき
国際標準のタイムスタンプをファイル名に採用して
$ curl http://192.168.X.Y/capture --output "$(date -Iseconds).jpg"
参考もと
imagemagickのsmushオプションでそのまんま画像を繋げる
imagemagickである程度連続した画像を横に繋げる簡単な方法としてsmushオプションがあります。
実際のところ
プラスだと横、マイナスだと縦
引数をつけて多少オーバーラップさせることも可能
$ convert rose: rose: +smush -10 sixel:
gimpを使う方法もあるらしい
とはいえ、この方法だと歪みやズレはどうにもなりません。
この場合、画像処理ソフトの有名ドコロgimpのプラグインが目的を達成するいい方法になるやもしれません。
Pandora: a GIMP Plugin for Making Panoramas
Hugin - Panorama photo stitcher
参考もと
M5Camera Bを試してみる
M5stack兄弟のひとつ、M5CameraのBタイプを使ってみました。
実際のところ
デフォでM5Camera自身がAPになるサンプルが書き込まれていますが……後々自分でいじる事を考え、配信するタイプをコンパイルして書き込んでみることに。
ボードの用意
M5とかついてるのでM5stack系かと思いましたが、実際にはESP32のサブボード情報が必要です。
ボードマネージャーにESP32系を先に認識させておき
"ESP32 Arduino" -> "ESP32 Wrover Module"を選択。
サンプルから
ESP32 -> Camera -> CameraWebServer
14行目辺りを更新
// Select camera model //#define CAMERA_MODEL_WROVER_KIT // Has PSRAM <= コメントアウト //#define CAMERA_MODEL_ESP_EYE // Has PSRAM //#define CAMERA_MODEL_M5STACK_PSRAM // Has PSRAM #define CAMERA_MODEL_M5STACK_V2_PSRAM // M5Camera version B Has PSRAM <= こちらを活かす
24行目の接続先を使っているSSIDに
const char* ssid = "YOURSSID"; const char* password = "YOURPASS";
若干まつと、シリアルの方に自信のIPアドレスがでて使用可能に。
ここ、mDNSとかに出来たら便利なんですがネ
WiFi connected Camera Ready! Use 'http://172.XX.XX.XX' to connect
raspiにもsixel環境をつくる
raspiにもsixel環境を作って少しでも帯域を軽く
実際のところ
導入
特に苦労することもなく……aptでいけます
$ sudo apt install libsixel-bin
みる
mintty等、sixelに対応したクライアントで
$ convert image.jpg sixel: