QRコードを大量生産して段ボールの中身を見える化しよう

押し入れの中に段ボールがたくさん入っていて、何が入っているのか分からなくなったことはないだろうか。そこで、QRコードを使って、押し入れの整理を実行しよう。今回は、無料のPython実行環境Google Colaboratoryを使って、大量のQRコードを生成してみよう。

段ボール整理にQRコードを使うアイデア

段ボールなどの整理にQRコードが大活躍する。その方法だが、QRコードには、様々な文字を埋め込むことができる。そのため、段ボールの中身を撮影した写真のURLをQRコードに埋め込むことができるのだ。つまり、段ボールを開けなくても、段ボールに貼り付けたQRコードをスキャンすることで、段ボールの中身の写真を確認できるという訳だ。

なお、写真のURLを得る方法だが、Googleドライブを使うのが簡単だ。段ボールの中をスマートフォンで撮影しておこう。そして、写真をGoogleドライブに保存する。すると、写真の「リンクをコピー」できるようになる。このリンクは、GoogleドライブへのリンクURLだ。このURLをQRコードに埋め込む。

難しくないが、改めて手順を確認してみよう

(1) スマートフォンなどで段ボールの写真を撮影

(2) 写真をGoogleドライブに保存

(3) ドライブでリンク(URL)をコピー

(4) URLをQRコードに変換

(5) 段ボールに印刷したQRコードを貼り付ける

(6) スマホのQRスキャナーでQRコードを読むと写真が確認できる





ところが、生成したURLをもとにQRコードの画像を生成するの面倒な作業だ。そこで、今回は、Pythonを利用して、大量のURLを元にして、QRコード画像を生成する方法を紹介する。

無料のPython環境Colaboratoryでやってみよう

それでは、無料のPython実行環境のColaboratoryにアクセスして作業を開始しよう。

まずは、ColaboratoryのURLにアクセスする。利用には、Googleアカウントが必要だ。ログインすると、ファイル一覧ダイアログが表示される。そこで、画面下にある「PYTHON 3の新しいノートブック」をクリックしよう。

新しいノートブックを作成しよう

qrcodeライブラリのインストール

Pythonには「qrcode」モジュールがあるので、比較的簡単にQRコードを生成することができる。しかし、残念ながら、Colaboratoryには「qrcode」がインストールされていない。だが、心配は無用だ。Colaboratoryで「! (コマンド)」のようなコードを書くと、任意のコマンドを実行できる。

つまり、以下のようなコードを書いて実行すると、Pythonの「qrcode」モジュールをColaboratory上にインストールできる。

!pip install qrcode

QRコードライブラリをインストールしたところ

QRコードを表示しよう

それでは、QRコードを表示してみよう。以下は、Colaboratory上でQRコードを生成する最も簡単な例だ。

# QRコードを生成 import qrcode img = qrcode.make('トイレットペーパー') # 画面に出力 from IPython.display import Image,display_png display_png(img)

プログラムを実行すると、Colaboratory上に、QRコードが表示される。

QRコードを表示したところ

このQRコードを、スマートフォンのQRコードスキャナーで読むと、QRコードに埋め込んだ文字を確認することができる。今回は、URLではなく、適当な文字「トイレットペーパー」を埋め込んだので、それが表示される。

QRコードをスキャンしたところ

プログラムだが、qrcode.make()メソッドを呼ぶと、引数に指定した文字列を元にQRコード画像が生成される。それを、display_png()関数を利用して、Colaboratory上に出力するという流れだ。

大量のURLをQRコードに変換しよう

ところで、上記のプログラムのように、QRコードに何が入っているのか文字で埋め込むくらいなら、直接、マジックで段ボールに品名を書く方が楽だ。Googleドライブに保存した写真のリンク(URL)をQRコードに埋め込んでこそ意味がある。URLの一覧を元にQRコードを生成するプログラムを作ってみよう。

以下は、5個のURLを一気にQRコードに変換するプログラムだ。

# QRコードを作成するURLの一覧 --- (*1) urls = [ "https://drive.google.com/open?id=1zk5mn7hVi5YN2mz81JYK74W2O4WAb92V", "https://drive.google.com/open?id=1tnso4EdyGtMWM5GcbR4bHe1LWfDg2Ype", "https://drive.google.com/open?id=1U56KIP3BivtNUhXMCp1ldtYhrq3ke4Zw", "https://drive.google.com/open?id=1Kd4hELrSQsj5iXbN00iyzHRGgwBLAxkj", "https://drive.google.com/open?id=1XmfCWwBd_1O5vkfzlMrPWac551Ga1_qs" ] import qrcode from IPython.display import Image,display_png # 一気にQRコードを生成 --- (*2) for url in urls: img = qrcode.make(url, box_size=3) display_png(img)

プログラムを実行すると、一気にQRコードが生成される。このようにしてブラウザ上に表示されたQRコードを選択してコピーし、マイクロソフト Wordなどに貼り付けると、印刷することができる。実際に、このプログラムを使う場合は、(＊1)の部分を任意のURLに置き換えて使う。この書式に合わせてカンマで区切ってURLを書いて行くなら、5個と言わず、いくつでもQRコードを生成できる。

QRコードを5個一気に作成したところ

最後に、プログラムを確認してみよう。プログラムの(＊1)の部分で、リスト型変数のurlsに代入した複数のURLに対して、(＊2)の部分で、for構文を利用して繰り返し一つずつQRコードを生成する。先ほどのプログラムとそれほど変わっているわけではないので、それほど難しくはないだろう。

ただし、たくさんのQRコードを生成する場合、Colaboratoryの画面からQRコードがはみ出してしまっていたので、qrcode.make()メソッドを実行する際に、QRコードのサイズを表すキーワード引数のbox_sizeに3を指定した。デフォルトは、10なので、比較的大きな画像が生成されるようになっている。画像をコピーする場合には、スクロールするので問題ないが、それほど大きな画像が不要な場合には、指定すると良いだろう。

まとめ

以上、今回は、無料のPython環境Colaboratoryを利用して、QRコードを大量に出力する方法を紹介した。Pythonのqrcodeモジュールを使えば、このように非常に手軽にQRコードが作成できる。今回紹介したように、段ボールの整理などで、QRコードを一気に生成したい場合に役立つだろう。また、QRコードにURLを埋め込むアイデアは、荷物整理以外にも使えるので、業務に活用できるので試してみよう。