1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

紙の名刺にその場で「いつどこで」を書き込む

Last updated at Posted at 2025-12-18

紙の名刺を交換するとき、いつどこで交換したかを知りたくなることはありませんか?

今回は、名刺を受け取った人が下の動画のような感じでスマホを名刺にあてると、いつどこで受け取ったのかを確認できるしくみを作ってみました。

しくみ

名刺の裏にあらかじめRFIDタグを貼っておきます。オレンジ色のデバイス(M5StickC Plus2とUnit RFID2)で RFIDタグに NDEF(NFC Data Exchange Format)に従ってURLを書き込んでおくと、対応するスマートフォンをかざすだけで、ブラウザが起動しそのURLにアクセスできます。Android や iPhone はこのフォーマットに対応しているので、追加のアプリをインストールすることなく内容を確認できます。
G0aUjb3awAA9u1C.jpg
URLに時刻や位置情報を含めておき、その内容に応じて表示内容を変えるようなWebページを用意しておけば、サーバー側でデータを保持する必要はなくなります。例えば、

https://ksasao.github.io/MomentStack/?p=%4035%2C135.%2C15z&t=2025-12-18%2012%3A34%3Cbr%3EHello

のようなURLを渡すとこのような感じで表示するものを作ればOKです。
image.png

名刺交換では、GPSの電波が入りにくかったり、メッセージも固定で十分であることが多いので、あらかじめ位置情報とメッセージ(例えばイベント名など)はスマートフォンで設定できるようにしました。一方、交換した時刻はデバイスが持っている RTC (Real Time Clock) の値を参照して、交換した時刻を反映できるようにしています。

位置情報とメッセージの書き換え

以下のような仕組みでデバイスとスマートフォンを接続し設定を書き換えられるようにしました。

  1. スマートフォンのテザリングを有効にし、デバイスからスマートフォンにWi-Fi接続する
  2. デバイス上のボタンを押すとデバイスの画面に設定用のQRコードが表示される。そのQRコードをスマートフォンで読み取るとブラウザが開き、設定画面が表示される
  3. 設定を行いUpdateボタンを押すとデバイスの設定が書き換えられる

位置情報とメッセージを書き換える画面

表示用のファイルと設定用のファイルは同じもので、引数でモードを切り替えられるようにしています。なお、ブラウザ上で現在地を取得できるようにするためには、localhostもしくは https の Webサイトにファイルを配置する必要があるため、次のようなトリッキーなことをしています。

  • デバイスでQRコードを表示するタイミングで、デバイス側でWebサーバーを起動しそのローカルIPアドレスを引数に含めた外部のHTTPSサーバー上のURLを発行
  • ブラウザ上でUpdateボタンを押すと、ローカルIPアドレスに向かってデータをPOST
  • デバイス側のWebサーバーはPOSTされたデータを受け取り、本体の設定情報を更新した後、外部のHTTPSサーバーのURLにリダイレクト

今回使ったデバイスではHTTPSサーバーを立てることはリソース的に困難なためこのような仕組みになっています。

ソースコード

HTTPSサーバーに配置する index.html と、M5StickCPlus2 に書き込む Arduino IDE 向けの RFID2_URL_Writer_StickCPlus2.ino があります。Apache-2.0 license です。
https://github.com/ksasao/MomentStack

用意するもの

利用方法

M5StickC Plus2とM5Stack用WS1850S搭載 RFID 2ユニットを付属のケーブルまたはStickC Bridgeで接続した後、Arduino IDE を利用し、M5StickC Plus2 に RFID2_URL_Writer_StickCPlus2.ino を書き込みます。この際、以下の ssidpassword はご自分のテザリング環境に合わせて修正してください。サーバー上には情報を保持しない(できない)構成のため、kConfigPageUrl の URLは変更せず使っていただいても問題ありません(著者は利用状況を把握できません)。docs/index.html を他のWebサーバーに配置した場合にはそのURLに修正してください。

const char* ssid = "your-ssid";
const char* password = "your-password";
const char* kConfigPageUrl = "https://ksasao.github.io/MomentStack/";
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?