WebSocket client と TCP client の中継ツールを作った

wstcplink を作った。 <https://github.com/ifritJP/wstcplink> これが何かというと、 WebSocket client と TCP client の中継ツールだ。 次のような感じ。 ⇔⇔⇔⇔⇔⇔⇔⇔ Webブラウザ → このツール ← tcp クライアント ⇔⇔⇔⇔⇔⇔⇔⇔ Web アプリケーションとの双方向通信 Web アプリケーションで双方向通信するには、 web socket を使うのが標準だと思う。 (web socket にも課題はあるが、その辺りはここでは触れない。) で、その場合 web socket に対応したサーバが必要になる。 一方で、web socket に対応するのが困難な環境もある。 イマ

Raspberry pi イメージのバックアップ

家で運用している Raspberry pi サーバイメージのバックアップを shrink するのに どうするのが良いのか調べていたら、 https://github.com/Drewsif/PiShrink を使えばいいだけだということが分かった。 事前に raspi の sdcard イメージファイルを作って、 それを以下のように実行すれば ok. $ sudo pishrink.sh sdcard.img これを実行すると、次が行なわれる。 指定のイメージファイル内の /etc/rc.local が /etc/rc.local.bak にバックアップされる 指定のイメージファイル内の /etc/rc.local に、以下を実行するスクリプトが作成される。 shrink させたファイルシステムを expand する

M5stack(ESP32) で Bluetooth(btstack) の機能を利用する際の注意点

M5stack の公式 Web サイトを見ると、 M5stack の開発環境は以下のものが挙げられています。 <https://docs.m5stack.com/en/platform> UIFlow Arduino Camera Series Micropython .NET nanoFramework これらは、ソフトウェアを簡単に開発することにフォーカスされていて、 Bluetooth を制御する API の充実度は低いようです。 上記の開発環境で提供されていない Bluetooth の機能を利用するには、 ESP32 の official SDK の esp-idf か、 汎用的な Bluetooth Library の btstack を使う必要があります。 M5stack で Bluetooth の機能を利用するアプリを開発する場合、 その機能がどの開発環境で提供されているかを調査し、 その中

OS に依存しない Bluetooth キーボードのキー入れ替え (M5stack版)

前回 Raspberry pi zero w 版の keyboard remapper に引き続き、 M5stack 版の keyboard remapper を作成しました。 M5stack は、 Raspberry pi zero w と比べて以下の長所があります。 モデルによっては小型軽量 基板が剥き出しになっていない 今は Raspberry pi より入手性が良い 消費電力が 1/5 以下 本体に汎用的に使えるボタンが付いている モデルによっては、本体にディスプレイが付いている 一方で、以下の短所があります。 ROM/RAM が圧倒的に少ない 独自 OS で、開発環境が限定的 情報が少ない 環境構築に時間がかかる 動作確認には

HID Keyboard の Key スキャンコード

普段、何気に使っている keyboard。 このキーボードがどのように動いているか。 そして、カスタマイズするにはどうすれば良いかを簡単に説明していく。 キーボードと OS の役割り USB で定義される HID keyboard の各キーには、 スキャンコードという値を割り振られています。 keyboard は、キーが押下された時にこのスキャンコードを PC に通知します。 そして、PC はそのスキャンコードを受け、どのキーが押下されたかを検出します。 ところで、キーボー