pslaboが試したことの記録

はてなダイヤリーからはてなブログに引っ越してきました

この日記は現在実行中の減量記録を含む個人的なメモとして始めましたが、最近はコンピュータやガジェット、ハック、セキュリティネタのほうがメインになっております。

はてなダイヤリー時代はカテゴリ分けが適当だったのですが、これはそのうち直します。


WiFi接続用のQRコードをGoogle Spreadsheetで作成・管理する

自宅のWi-Fiルータスマートフォンテザリングなど、Wi-Fiは日常的に使用しますが、接続パスフレーズを複雑にすると入力が面倒ですし、かといって簡単すぎるパスフレーズはセキュリティ面で不安があります。

そこで、Wi-Fi接続用のパスフレーズ情報をGoogle Spreadsheetでリスト管理し、さらに接続用のQRコードを表示できるようにして、スマートフォンでの入力の手間を減らすことにしました。

主なポイント

ただし Chart API はすでに非推奨なので、この方法がいつまで使えるかは分からない点に注意が必要です。

実装要件

  • 個人用のWi-Fi接続管理メモとして使用することを想定します。
  • スプレッドシート1枚に複数のWi-Fi接続設定を掲載します。特定のWi-Fi APの接続情報を他の方と共有するには不向きです。特定のSSID接続情報を他の方と共有する場合は、1シートに1つのAP情報だけを掲載するなどして運用すれば良いと思います。

実装サンプル

次のように、A列 = SSID、B列 = パスフレーズを入力するとC列 = QRコードが表示されるようにしてみます。 f:id:pslabo:20200429210427p:plain

この QRコードiOS,Androidのどちらでも利用できますが、読み取り条件に違いがあります。

iOSの場合はiOS 11以降のiPhone, iPad標準カメラアプリで利用できます。

support.apple.com

Androidの場合は機種やAndroid OSのバージョンにより、複数の選択肢があります。

Googleアシスタントが搭載されている場合はこれを使いましょう。画面下に表示されるホームボタンを長押しするとGoogleアシスタントが起動します。ここでGoogleアシスタントと文字入力や音声認識でやりとりする代わりに、Googleレンズを起動してQRコードを撮影すればWiFiの接続がこなえます。

lens.google.com

Androidの標準カメラアプリについては、機種によりQRコードWiFI接続をサポートするものとしないものがあるようです。Google Pixelシリーズでは標準カメラアプリで読めましたが、Sharp SH-M05のカメラアプリはWi-Fi接続用のQRコードを単なる文字列として認識されてしまいます。

Android 9より古いOSでGoogleアシスタントが使えず、標準カメラアプリがQRコードによるWiFi設定をサポートしていない場合はZXing TeamのQRコードスキャナーが仕えます。これは多くの端末で汎用的に使えるので、機種ごとの違いを意識せずに使いたい場合に向くと思います。 play.google.com

Google SpreadsheetにQRコード生成する計算式を記入する

A2にSSID、B2にパスフレーズを記入しているとき、C2セルに次の計算式を入力するとWi-Fi接続のQRコードが生成されます。

=IF(
  AND(A2<>"",B2<>""),
  image("https://chart.apis.google.com/chart?cht=qr&chs=300x300&chld=L&choe=UTF-8&chl=WIFI:S:" & A2 & ";T:WPA;P:" & B2 & ";;")
)

参考:Wi-Fi接続用のQRコードを生成するAPIのURL形式

Google Chart API に次のようにアクセスすると、Wi-Fi接続のQRコードが生成されます。

暗号化方式はWPA、SSID=TestAP、パスフレーズ=TestPassと記述しています。これらの文字列を変更すれば任意のWi-Fi接続のQRコードが生成できます。

https://chart.apis.google.com/chart?cht=qr&chs=300x300&chld=L&choe=UTF-8&chl=WIFI:S:TestAP;T:WPA;P:TestPass;;

注意事項

QRコードによるWi-Fi接続では、残念ながら WPA2-ENT などの企業ネットワーク向けでサポートされる暗号化方式のQRコードは規格化されていないようで、作成できません。

これらの接続設定を手作業での認証情報の入力なしに行いたい場合は、iPhoneの場合は Apple Configurator を用いて構成プロファイル化するのが良いと思います。